@eaera-com/eaera-widgets-v2 0.1.75 → 0.1.76

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/components/base/EaeraButton.d.ts +3 -1
  2. package/dist/components/base/EaeraButton.mjs +1 -1
  3. package/dist/components/base/EaeraCarousel.mjs +1 -1
  4. package/dist/components/base/EaeraDatePicker.mjs +1 -1
  5. package/dist/components/base/EaeraDateTimePicker.mjs +1 -1
  6. package/dist/components/base/EaeraDrawer.mjs +1 -1
  7. package/dist/components/base/EaeraPopconfirm.mjs +1 -1
  8. package/dist/components/base/EaeraUploadDefault.mjs +1 -1
  9. package/dist/components/chunks/EaeraButton-BPVKRBOn.mjs +1 -0
  10. package/dist/components/chunks/{EaeraButtonGroup-B5wTBG3Y.mjs → EaeraButtonGroup-BROLavKb.mjs} +1 -1
  11. package/dist/components/chunks/{EaeraCalendar-BFZSCkQq.mjs → EaeraCalendar-QOYXhJey.mjs} +1 -1
  12. package/dist/components/chunks/{EaeraCarousel-BV02zb3u.mjs → EaeraCarousel-nVdAknBO.mjs} +1 -1
  13. package/dist/components/chunks/{EaeraDatePicker-CAm9fHms.mjs → EaeraDatePicker-Bwt5r5gk.mjs} +1 -1
  14. package/dist/components/chunks/{EaeraDateTimePicker-DXW1M3R7.mjs → EaeraDateTimePicker-Hv_ma8qU.mjs} +1 -1
  15. package/dist/components/chunks/{EaeraDrawer-C3Pj4wvV.mjs → EaeraDrawer-D7drsvOk.mjs} +1 -1
  16. package/dist/components/chunks/{EaeraDynamicFieldRow-Cv4oclH6.mjs → EaeraDynamicFieldRow-mZ5_nqkn.mjs} +1 -1
  17. package/dist/components/chunks/{EaeraForm-DKeyWXY3.mjs → EaeraForm-DEoXRjat.mjs} +1 -1
  18. package/dist/components/chunks/{EaeraPopconfirm-DxtJgCN5.mjs → EaeraPopconfirm-K_C8Pf9V.mjs} +1 -1
  19. package/dist/components/chunks/{EaeraTableV2-ZUpzVKhm.mjs → EaeraTableV2-CBaM5zp9.mjs} +1 -1
  20. package/dist/components/chunks/{EaeraUploadDefault-Cs4SEmWT.mjs → EaeraUploadDefault-r9WuE9Ri.mjs} +1 -1
  21. package/dist/components/chunks/{EaeraWidgetMarginCalculator-CAZcI1eg.mjs → EaeraWidgetMarginCalculator-BokNy1a7.mjs} +1 -1
  22. package/dist/components/chunks/{EaeraWidgetPositionCalculator-BF6O7ATq.mjs → EaeraWidgetPositionCalculator-D36MGO-E.mjs} +1 -1
  23. package/dist/components/chunks/{index-B_ESts1X.mjs → index-9zJYqMyX.mjs} +1 -1
  24. package/dist/components/chunks/{index-CqpcR_2l.mjs → index-CgcRJ8oq.mjs} +1 -1
  25. package/dist/components/chunks/{index-CS3c4zka.mjs → index-ChWzksXo.mjs} +1 -1
  26. package/dist/components/chunks/{index-iEvfkNT8.mjs → index-Cm-cRnqS.mjs} +1 -1
  27. package/dist/components/chunks/index-Cu4uZ9Nd.mjs +1 -0
  28. package/dist/components/chunks/{index-CP8Qcgp3.mjs → index-DD9Bx0uF.mjs} +1 -1
  29. package/dist/components/chunks/index-DhwN0sRS.mjs +1 -0
  30. package/dist/components/chunks/index-wGZD3Xyh.mjs +1 -0
  31. package/dist/components/composite/EaeraCalendar.mjs +1 -1
  32. package/dist/components/composite/EaeraDynamicFieldRow.mjs +1 -1
  33. package/dist/components/composite/EaeraForm.mjs +1 -1
  34. package/dist/components/composite/EaeraTableV2.mjs +1 -1
  35. package/dist/components/custom/EaeraButtonGroup.mjs +1 -1
  36. package/dist/components/custom/EaeraWidgetMarginCalculator.mjs +1 -1
  37. package/dist/components/custom/EaeraWidgetPositionCalculator.mjs +1 -1
  38. package/dist/components/index.mjs +1 -1
  39. package/dist/components/webtrade/EaeraCfdOrderPlacement.mjs +1 -1
  40. package/dist/components/webtrade/EaeraCfdWatchlist.mjs +1 -1
  41. package/dist/components/webtrade/EaeraLightweightChart.mjs +1 -1
  42. package/dist/components/webtrade/EaeraOrderPlacement.mjs +1 -1
  43. package/dist/components/webtrade/EaeraOrderlineOverlay.mjs +1 -1
  44. package/dist/components/webtrade/EaeraTimeNSales.mjs +1 -1
  45. package/dist/components/webtrade/EaeraTradingTable.mjs +1 -1
  46. package/dist/components/webtrade/EaeraWatchlist.mjs +1 -1
  47. package/dist/design-system/components/_button.scss +48 -46
  48. package/dist/eaera-widgets-v2.es.js +8 -6
  49. package/dist/eaera-widgets-v2.umd.cjs +2 -2
  50. package/package.json +1 -1
  51. package/dist/components/chunks/EaeraButton-DGfjUoa6.mjs +0 -1
  52. package/dist/components/chunks/index-0bXWe0Hv.mjs +0 -1
  53. package/dist/components/chunks/index-uox7lRH5.mjs +0 -1
  54. package/dist/components/chunks/index-xImZAwVl.mjs +0 -1
@@ -1,5 +1,5 @@
1
1
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
- export type ColorType = 'primary' | 'secondary' | 'contrast' | 'tertiary' | 'success' | 'warning' | 'danger' | 'info' | 'light' | 'muted' | 'error' | '';
2
+ export type ColorType = 'primary' | 'contrast' | 'danger' | 'success' | '';
3
3
  type Size = '' | 'lg' | 'sm' | 'xs' | 'md' | 'xl';
4
4
  type Props = {
5
5
  className?: string;
@@ -12,6 +12,7 @@ type Props = {
12
12
  plain?: boolean;
13
13
  link?: boolean;
14
14
  ghost?: boolean;
15
+ round?: boolean;
15
16
  unsetWidth?: boolean;
16
17
  isIconOnly?: boolean;
17
18
  };
@@ -36,6 +37,7 @@ declare const __VLS_component: DefineComponent<Props, {}, {}, {}, {}, ComponentO
36
37
  background: boolean;
37
38
  plain: boolean;
38
39
  ghost: boolean;
40
+ round: boolean;
39
41
  isIconOnly: boolean;
40
42
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
41
43
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
@@ -1 +1 @@
1
- import{_ as t}from"../chunks/EaeraButton-DGfjUoa6.mjs";import"vue";import"element-plus";export{t as default};
1
+ import{_ as t}from"../chunks/EaeraButton-BPVKRBOn.mjs";import"vue";import"element-plus";export{t as default};
@@ -1 +1 @@
1
- import{_ as e}from"../chunks/EaeraCarousel-BV02zb3u.mjs";import"vue";import"element-plus";import"../chunks/EaeraButton-DGfjUoa6.mjs";import"@lucide/vue";import"../chunks/iconSvg-BrZD7vO3.mjs";export{e as default};
1
+ import{_ as e}from"../chunks/EaeraCarousel-nVdAknBO.mjs";import"vue";import"element-plus";import"../chunks/EaeraButton-BPVKRBOn.mjs";import"@lucide/vue";import"../chunks/iconSvg-BrZD7vO3.mjs";export{e as default};
@@ -1 +1 @@
1
- import{_ as e}from"../chunks/EaeraDatePicker-CAm9fHms.mjs";import"../chunks/EaeraButton-DGfjUoa6.mjs";import"vue";import"element-plus";import"@lucide/vue";export{e as default};
1
+ import{_ as e}from"../chunks/EaeraDatePicker-Bwt5r5gk.mjs";import"../chunks/EaeraButton-BPVKRBOn.mjs";import"vue";import"element-plus";import"@lucide/vue";export{e as default};
@@ -1 +1 @@
1
- import{_ as e}from"../chunks/EaeraDateTimePicker-DXW1M3R7.mjs";import"element-plus/es";import"../chunks/EaeraButton-DGfjUoa6.mjs";import"vue";import"element-plus";import"@lucide/vue";export{e as default};
1
+ import{_ as e}from"../chunks/EaeraDateTimePicker-Hv_ma8qU.mjs";import"element-plus/es";import"../chunks/EaeraButton-BPVKRBOn.mjs";import"vue";import"element-plus";import"@lucide/vue";export{e as default};
@@ -1 +1 @@
1
- import{_ as e}from"../chunks/EaeraDrawer-C3Pj4wvV.mjs";import"element-plus/es";import"../chunks/EaeraButton-DGfjUoa6.mjs";import"vue";import"element-plus";export{e as default};
1
+ import{_ as e}from"../chunks/EaeraDrawer-D7drsvOk.mjs";import"element-plus/es";import"../chunks/EaeraButton-BPVKRBOn.mjs";import"vue";import"element-plus";export{e as default};
@@ -1 +1 @@
1
- import{_ as e}from"../chunks/EaeraPopconfirm-DxtJgCN5.mjs";import"element-plus/es";import"vue";import"../chunks/EaeraButton-DGfjUoa6.mjs";import"element-plus";export{e as default};
1
+ import{_ as e}from"../chunks/EaeraPopconfirm-K_C8Pf9V.mjs";import"element-plus/es";import"vue";import"../chunks/EaeraButton-BPVKRBOn.mjs";import"element-plus";export{e as default};
@@ -1 +1 @@
1
- import{_ as e}from"../chunks/EaeraUploadDefault-Cs4SEmWT.mjs";import"element-plus/es";import"vue";import"@lucide/vue";import"../chunks/EaeraButton-DGfjUoa6.mjs";import"element-plus";export{e as default};
1
+ import{_ as e}from"../chunks/EaeraUploadDefault-r9WuE9Ri.mjs";import"element-plus/es";import"vue";import"@lucide/vue";import"../chunks/EaeraButton-BPVKRBOn.mjs";import"element-plus";export{e as default};
@@ -0,0 +1 @@
1
+ import{defineComponent as o,computed as e,openBlock as l,createBlock as a,unref as t,normalizeClass as s,withCtx as n,createElementBlock as i,renderSlot as d,createCommentVNode as u}from"vue";import{ElButton as p}from"element-plus";const f={key:0,class:"button-prefix"},r={key:1,class:"button-suffix"},c=o({__name:"EaeraButton",props:{className:{},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},box:{type:Boolean,default:!1},color:{default:"primary"},size:{default:"md"},background:{type:Boolean,default:!0},plain:{type:Boolean,default:!1},link:{type:Boolean,default:!1},ghost:{type:Boolean,default:!1},round:{type:Boolean,default:!1},unsetWidth:{type:Boolean},isIconOnly:{type:Boolean,default:!1}},setup(o){const c=o,y=e(()=>[c.className,c.size,c.color,c.box&&"is-box",!c.background&&"no-background",c.ghost&&"is-ghost",c.round&&"is-round",c.unsetWidth&&"unset-width",c.isIconOnly&&"is-icon-only"]);return(e,c)=>(l(),a(t(p),{class:s(["custom-button",y.value]),loading:o.loading,disabled:o.disabled,plain:o.plain,link:o.link},{default:n(()=>[e.$slots.prefix?(l(),i("span",f,[d(e.$slots,"prefix")])):u("",!0),d(e.$slots,"default"),e.$slots.suffix?(l(),i("span",r,[d(e.$slots,"suffix")])):u("",!0)]),_:3},8,["class","loading","disabled","plain","link"]))}});export{c as _};
@@ -1 +1 @@
1
- import{ElButtonGroup as e}from"element-plus/es";import{_ as a}from"./EaeraButton-DGfjUoa6.mjs";import{defineComponent as l,computed as t,openBlock as s,createBlock as u,normalizeClass as c,withCtx as o,createElementBlock as i,Fragment as r,renderList as m,renderSlot as n,createTextVNode as p,toDisplayString as d}from"vue";const f=l({__name:"EaeraButtonGroup",props:{className:{},groupSchema:{default:()=>[]},value:{default:""},handleClick:{type:Function,default:()=>{}},size:{},type:{default:"primary"}},emits:["click"],setup(l,{emit:f}){const v=l,k=f,_=t(()=>v.value),C=t(()=>[v.className,v.type]);return(t,f)=>{const y=a,z=e;return s(),u(z,{class:c(["custom-button-group",C.value])},{default:o(()=>[(s(!0),i(r,null,m(l.groupSchema,(e,a)=>(s(),u(y,{class:c([e.className,_.value===e.activeValue&&"active",e.activeClass?.(_.value===e.activeValue)]),onClick:l=>{k("click",e,a),v.handleClick(e,a)},size:l.size},{default:o(()=>[n(t.$slots,"default",{btn:e,idx:a},()=>[p(d(e.label),1)])]),_:2},1032,["class","onClick","size"]))),256))]),_:3},8,["class"])}}});export{f as _};
1
+ import{ElButtonGroup as e}from"element-plus/es";import{_ as a}from"./EaeraButton-BPVKRBOn.mjs";import{defineComponent as l,computed as t,openBlock as s,createBlock as u,normalizeClass as c,withCtx as o,createElementBlock as i,Fragment as r,renderList as m,renderSlot as n,createTextVNode as p,toDisplayString as d}from"vue";const f=l({__name:"EaeraButtonGroup",props:{className:{},groupSchema:{default:()=>[]},value:{default:""},handleClick:{type:Function,default:()=>{}},size:{},type:{default:"primary"}},emits:["click"],setup(l,{emit:f}){const v=l,k=f,_=t(()=>v.value),C=t(()=>[v.className,v.type]);return(t,f)=>{const y=a,z=e;return s(),u(z,{class:c(["custom-button-group",C.value])},{default:o(()=>[(s(!0),i(r,null,m(l.groupSchema,(e,a)=>(s(),u(y,{class:c([e.className,_.value===e.activeValue&&"active",e.activeClass?.(_.value===e.activeValue)]),onClick:l=>{k("click",e,a),v.handleClick(e,a)},size:l.size},{default:o(()=>[n(t.$slots,"default",{btn:e,idx:a},()=>[p(d(e.label),1)])]),_:2},1032,["class","onClick","size"]))),256))]),_:3},8,["class"])}}});export{f as _};
@@ -1 +1 @@
1
- import{defineComponent as e,computed as a,ref as t,watch as l,openBlock as r,createBlock as o,unref as d,mergeProps as n,withCtx as s,renderSlot as c,createElementVNode as i,normalizeClass as u,createElementBlock as m,toDisplayString as p,createVNode as f,createCommentVNode as v}from"vue";import{ElCalendar as y}from"element-plus";import{_ as $}from"./EaeraButtonGroup-B5wTBG3Y.mjs";import{ChevronDown as g,ChevronLeft as D,ChevronRight as w}from"@lucide/vue";function V(e,a="year-month",t="en-US"){const l="string"==typeof e?new Date(e):e;if(isNaN(l.getTime()))throw new Error("Invalid date provided");switch(a){case"month-year":return l.toLocaleDateString(t,{month:"long",year:"numeric"});case"year-month":return l.toLocaleDateString(t,{year:"numeric",month:"long"});case"custom":return l.toLocaleDateString(t,{month:"2-digit",year:"numeric"});default:return l.toISOString()}}const k={class:"calendar-header-wrapper"},x={class:"calendar-header-left"},b={class:"calendar-header-right"},F={class:"calendar-header-month"},N=["onClick"],S={key:0,class:"calendar-cell-content"},C={class:"cell-content-left"},_={class:"cell-price"},L={class:"cell-trade"},I={key:0,class:"cell-icon"},E={class:"calendar-cell-day"},M=e({__name:"EaeraCalendar",props:{modelValue:{},headerTitle:{default:"Calendar"},data:{default:()=>[]},dayFormat:{default:"ordinal"},className:{},showIcon:{type:Boolean,default:!0},monthLabelFormat:{default:"month-year"}},emits:["update:modelValue","cell-click"],setup(e,{emit:M}){const T=e,z=M,B=a(()=>[{label:"",activeValue:"prev",icon:"ChevronLeft",calendarValue:"prev-month"},{label:"",activeValue:"next",icon:"ChevronRight",calendarValue:"next-month"}]),j=t(),U=t(T.modelValue||new Date),G=a(()=>[T.className]);l(()=>T.modelValue,e=>{e&&(U.value=e)}),l(U,e=>{z("update:modelValue",e)});const K=e=>"ordinal"===T.dayFormat?function(e){const a="string"==typeof e?new Date(e):e;if(isNaN(a.getTime()))throw new Error("Invalid date provided");return function(e){if(e>=11&&e<=13)return`${e}th`;switch(e%10){case 1:return`${e}st`;case 2:return`${e}nd`;case 3:return`${e}rd`;default:return`${e}th`}}(a.getDate())}(e):e.split("-").slice(1).join("-"),O=a(()=>new Map(T.data.map(e=>[e.day,e]))),R=e=>O.value.get(e),q=e=>!!R(e),A=e=>({...R(e.day),...e,formattedDay:K(e.day)}),H=e=>{const a=R(e);if(void 0===a)return"";if(void 0!==a.trades&&void 0!==a.profit&&"number"==typeof a.profit){if(a.profit>0)return"profit";if(a.profit<=0)return"lost"}return""},J=e=>{j.value&&j.value.selectDate(e)},P=e=>{e.calendarValue&&J(e.calendarValue)},Q=e=>{if(null==e||isNaN(e))return"";const a=Math.abs(e);let t="",l="";a>=1e9?(t=(a/1e9).toFixed(3),l="B"):a>=1e6?(t=(a/1e6).toFixed(2),l="M"):a>=1e3?(t=(a/1e3).toFixed(3),l="K"):t=a.toString(),t=parseFloat(t).toString();return`${e>0?"+$":e<0?"-$":""}${t}${l}`};return(a,t)=>(r(),o(d(y),n({ref_key:"calendar",ref:j,class:"custom-calendar",modelValue:U.value,"onUpdate:modelValue":t[0]||(t[0]=e=>U.value=e)},a.$attrs,{class:G.value}),{header:s(({date:t})=>[c(a.$slots,"header",{date:t},()=>[i("div",k,[c(a.$slots,"header-left",{date:t},()=>[i("div",x,[i("span",null,p(e.headerTitle),1)])]),c(a.$slots,"header-center",{date:t}),c(a.$slots,"header-right",{date:t},()=>[i("div",b,[c(a.$slots,"header-btn",{date:t,selectDate:J},()=>[f($,{"group-schema":B.value,value:"1",onClick:P},{default:s(({idx:e})=>[0===e?(r(),o(d(D),{key:0,size:14})):(r(),o(d(w),{key:1,size:14}))]),_:1},8,["group-schema"])]),c(a.$slots,"header-month",{date:t,formattedMonth:d(V)},()=>[i("div",F,[i("span",null,p(d(V)(t,e.monthLabelFormat)),1)])])])])])])]),"date-cell":s(({data:t})=>[c(a.$slots,"date-cell",{data:A(t)},()=>[i("div",{class:"calendar-cell-wrapper",onClick:e=>(e=>{z("cell-click",e)})(A(t))},[c(a.$slots,"cell-wrapper",{data:A(t)},()=>[i("div",{class:u(["calendar-cell",H(t.day)])},[c(a.$slots,"calendar-cell-top",{data:A(t),hasData:q(t.day)}),c(a.$slots,"calendar-cell-center",{data:A(t),hasData:q(t.day)},()=>[c(a.$slots,"cell-center-header",{data:A(t),hasData:q(t.day)},()=>[q(t.day)?(r(),m("div",S,[c(a.$slots,"cell-content",{data:A(t)},()=>[i("div",C,[c(a.$slots,"cell-content-left",{data:A(t),extraData:R(t.day)},()=>[i("div",_,p(Q(R(t.day)?.profit)),1),i("div",L,p(R(t.day)?.trades)+" trades",1)])]),c(a.$slots,"cell-content-right",{data:A(t)},()=>[e.showIcon?(r(),m("div",I,[c(a.$slots,"cell-icon",{data:A(t)},()=>[f(d(g),{size:14})])])):v("",!0)])])])):v("",!0)]),c(a.$slots,"cell-center-footer",{data:A(t),extraData:R(t.day)},()=>[i("div",E,p(K(t.day)),1)])]),c(a.$slots,"calendar-cell-bottom",{data:A(t),hasData:q(t.day)})],2)])],8,N)])]),_:3},16,["modelValue","class"]))}});export{M as _};
1
+ import{defineComponent as e,computed as a,ref as t,watch as l,openBlock as r,createBlock as o,unref as d,mergeProps as n,withCtx as s,renderSlot as c,createElementVNode as i,normalizeClass as u,createElementBlock as m,toDisplayString as p,createVNode as f,createCommentVNode as v}from"vue";import{ElCalendar as y}from"element-plus";import{_ as $}from"./EaeraButtonGroup-BROLavKb.mjs";import{ChevronDown as g,ChevronLeft as D,ChevronRight as w}from"@lucide/vue";function V(e,a="year-month",t="en-US"){const l="string"==typeof e?new Date(e):e;if(isNaN(l.getTime()))throw new Error("Invalid date provided");switch(a){case"month-year":return l.toLocaleDateString(t,{month:"long",year:"numeric"});case"year-month":return l.toLocaleDateString(t,{year:"numeric",month:"long"});case"custom":return l.toLocaleDateString(t,{month:"2-digit",year:"numeric"});default:return l.toISOString()}}const k={class:"calendar-header-wrapper"},x={class:"calendar-header-left"},b={class:"calendar-header-right"},F={class:"calendar-header-month"},N=["onClick"],S={key:0,class:"calendar-cell-content"},C={class:"cell-content-left"},_={class:"cell-price"},L={class:"cell-trade"},I={key:0,class:"cell-icon"},E={class:"calendar-cell-day"},M=e({__name:"EaeraCalendar",props:{modelValue:{},headerTitle:{default:"Calendar"},data:{default:()=>[]},dayFormat:{default:"ordinal"},className:{},showIcon:{type:Boolean,default:!0},monthLabelFormat:{default:"month-year"}},emits:["update:modelValue","cell-click"],setup(e,{emit:M}){const T=e,z=M,B=a(()=>[{label:"",activeValue:"prev",icon:"ChevronLeft",calendarValue:"prev-month"},{label:"",activeValue:"next",icon:"ChevronRight",calendarValue:"next-month"}]),j=t(),U=t(T.modelValue||new Date),G=a(()=>[T.className]);l(()=>T.modelValue,e=>{e&&(U.value=e)}),l(U,e=>{z("update:modelValue",e)});const K=e=>"ordinal"===T.dayFormat?function(e){const a="string"==typeof e?new Date(e):e;if(isNaN(a.getTime()))throw new Error("Invalid date provided");return function(e){if(e>=11&&e<=13)return`${e}th`;switch(e%10){case 1:return`${e}st`;case 2:return`${e}nd`;case 3:return`${e}rd`;default:return`${e}th`}}(a.getDate())}(e):e.split("-").slice(1).join("-"),O=a(()=>new Map(T.data.map(e=>[e.day,e]))),R=e=>O.value.get(e),q=e=>!!R(e),A=e=>({...R(e.day),...e,formattedDay:K(e.day)}),H=e=>{const a=R(e);if(void 0===a)return"";if(void 0!==a.trades&&void 0!==a.profit&&"number"==typeof a.profit){if(a.profit>0)return"profit";if(a.profit<=0)return"lost"}return""},J=e=>{j.value&&j.value.selectDate(e)},P=e=>{e.calendarValue&&J(e.calendarValue)},Q=e=>{if(null==e||isNaN(e))return"";const a=Math.abs(e);let t="",l="";a>=1e9?(t=(a/1e9).toFixed(3),l="B"):a>=1e6?(t=(a/1e6).toFixed(2),l="M"):a>=1e3?(t=(a/1e3).toFixed(3),l="K"):t=a.toString(),t=parseFloat(t).toString();return`${e>0?"+$":e<0?"-$":""}${t}${l}`};return(a,t)=>(r(),o(d(y),n({ref_key:"calendar",ref:j,class:"custom-calendar",modelValue:U.value,"onUpdate:modelValue":t[0]||(t[0]=e=>U.value=e)},a.$attrs,{class:G.value}),{header:s(({date:t})=>[c(a.$slots,"header",{date:t},()=>[i("div",k,[c(a.$slots,"header-left",{date:t},()=>[i("div",x,[i("span",null,p(e.headerTitle),1)])]),c(a.$slots,"header-center",{date:t}),c(a.$slots,"header-right",{date:t},()=>[i("div",b,[c(a.$slots,"header-btn",{date:t,selectDate:J},()=>[f($,{"group-schema":B.value,value:"1",onClick:P},{default:s(({idx:e})=>[0===e?(r(),o(d(D),{key:0,size:14})):(r(),o(d(w),{key:1,size:14}))]),_:1},8,["group-schema"])]),c(a.$slots,"header-month",{date:t,formattedMonth:d(V)},()=>[i("div",F,[i("span",null,p(d(V)(t,e.monthLabelFormat)),1)])])])])])])]),"date-cell":s(({data:t})=>[c(a.$slots,"date-cell",{data:A(t)},()=>[i("div",{class:"calendar-cell-wrapper",onClick:e=>(e=>{z("cell-click",e)})(A(t))},[c(a.$slots,"cell-wrapper",{data:A(t)},()=>[i("div",{class:u(["calendar-cell",H(t.day)])},[c(a.$slots,"calendar-cell-top",{data:A(t),hasData:q(t.day)}),c(a.$slots,"calendar-cell-center",{data:A(t),hasData:q(t.day)},()=>[c(a.$slots,"cell-center-header",{data:A(t),hasData:q(t.day)},()=>[q(t.day)?(r(),m("div",S,[c(a.$slots,"cell-content",{data:A(t)},()=>[i("div",C,[c(a.$slots,"cell-content-left",{data:A(t),extraData:R(t.day)},()=>[i("div",_,p(Q(R(t.day)?.profit)),1),i("div",L,p(R(t.day)?.trades)+" trades",1)])]),c(a.$slots,"cell-content-right",{data:A(t)},()=>[e.showIcon?(r(),m("div",I,[c(a.$slots,"cell-icon",{data:A(t)},()=>[f(d(g),{size:14})])])):v("",!0)])])])):v("",!0)]),c(a.$slots,"cell-center-footer",{data:A(t),extraData:R(t.day)},()=>[i("div",E,p(K(t.day)),1)])]),c(a.$slots,"calendar-cell-bottom",{data:A(t),hasData:q(t.day)})],2)])],8,N)])]),_:3},16,["modelValue","class"]))}});export{M as _};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as a,computed as r,onMounted as t,onUnmounted as l,openBlock as o,createElementBlock as i,mergeProps as s,createVNode as n,unref as c,normalizeClass as u,withCtx as d,Fragment as p,renderList as v,createBlock as m,renderSlot as f,createElementVNode as y,createCommentVNode as _}from"vue";import{ElCarousel as g,ElCarouselItem as S}from"element-plus";import{_ as w}from"./EaeraButton-DGfjUoa6.mjs";import{ChevronLeft as b,ChevronRight as k}from"@lucide/vue";import{g as C}from"./iconSvg-BrZD7vO3.mjs";const B={key:0,class:"carousel-nav-bar"},x={class:"carousel-nav-bar__indicators"},I=["onClick"],z={class:"carousel-nav-bar__controls"},A=e({inheritAttrs:!1,__name:"EaeraCarousel",props:{className:{},list:{},height:{default:""},trigger:{default:"click"},direction:{default:"horizontal"},arrow:{default:"never"},autoplay:{type:Boolean,default:!1},interval:{},type:{default:"card"},motionBlur:{type:Boolean,default:!1},cardScale:{},arrowSeparate:{type:Boolean,default:!1}},emits:["handleChange"],setup(e,{expose:A,emit:L}){let M=null;const N=e,O=L,$=a(),j=a(0),q=r(()=>[N.className]),E=()=>$.value?.next(),H=()=>$.value?.prev(),T=e=>$.value?.setActiveItem(e),R=(e,a)=>{j.value=e,O("handleChange",e)},D=e=>{const a=e.querySelector(".el-carousel__arrow--left"),r=e.querySelector(".el-carousel__arrow--right");a&&(a.innerHTML=C(b,16)),r&&(r.innerHTML=C(k,16))};return t(()=>{if(N.arrowSeparate)return;const e=$.value?.$el;e&&(D(e),M=new MutationObserver(()=>D(e)),M.observe(e,{childList:!0,subtree:!0}))}),l(()=>M?.disconnect()),A({nextSlide:E,prevSlide:H,setActiveItem:T}),(a,r)=>(o(),i("div",s(a.$attrs,{class:"custom-carousel-wrapper"}),[n(c(g),{ref_key:"carouselRef",ref:$,class:u(["custom-carousel",q.value]),height:e.height,trigger:e.trigger,direction:e.direction,autoplay:e.autoplay,type:e.type,interval:e.interval,arrow:e.arrowSeparate?"never":e.arrow,"motion-blur":e.motionBlur,cardScale:e.cardScale,"indicator-position":e.arrowSeparate?"none":void 0,onChange:R},{default:d(()=>[(o(!0),i(p,null,v(e.list,(e,r)=>(o(),m(c(S),{key:r,id:e.currency??r,class:u(e.className)},{default:d(()=>[f(a.$slots,"item",{item:e,idx:r})]),_:2},1032,["id","class"]))),128))]),_:3},8,["class","height","trigger","direction","autoplay","type","interval","arrow","motion-blur","cardScale","indicator-position"]),e.arrowSeparate?(o(),i("div",B,[y("div",x,[(o(!0),i(p,null,v(e.list,(e,a)=>(o(),i("span",{key:a,class:u(["carousel-nav-bar__dot",{"is-active":j.value===a}]),onClick:e=>(e=>{T(e),j.value=e})(a)},null,10,I))),128))]),y("div",z,[n(w,{color:"contrast",isIconOnly:"",plain:"",circle:"",size:"sm",onClick:H},{default:d(()=>[n(c(b))]),_:1}),n(w,{color:"contrast",isIconOnly:"",plain:"",circle:"",size:"sm",onClick:E},{default:d(()=>[n(c(k))]),_:1})])])):_("",!0)],16))}});export{A as _};
1
+ import{defineComponent as e,ref as a,computed as r,onMounted as t,onUnmounted as l,openBlock as o,createElementBlock as i,mergeProps as s,createVNode as n,unref as c,normalizeClass as u,withCtx as d,Fragment as p,renderList as v,createBlock as m,renderSlot as f,createElementVNode as y,createCommentVNode as _}from"vue";import{ElCarousel as g,ElCarouselItem as S}from"element-plus";import{_ as w}from"./EaeraButton-BPVKRBOn.mjs";import{ChevronLeft as b,ChevronRight as k}from"@lucide/vue";import{g as C}from"./iconSvg-BrZD7vO3.mjs";const B={key:0,class:"carousel-nav-bar"},x={class:"carousel-nav-bar__indicators"},I=["onClick"],z={class:"carousel-nav-bar__controls"},A=e({inheritAttrs:!1,__name:"EaeraCarousel",props:{className:{},list:{},height:{default:""},trigger:{default:"click"},direction:{default:"horizontal"},arrow:{default:"never"},autoplay:{type:Boolean,default:!1},interval:{},type:{default:"card"},motionBlur:{type:Boolean,default:!1},cardScale:{},arrowSeparate:{type:Boolean,default:!1}},emits:["handleChange"],setup(e,{expose:A,emit:L}){let M=null;const N=e,O=L,$=a(),j=a(0),q=r(()=>[N.className]),E=()=>$.value?.next(),H=()=>$.value?.prev(),T=e=>$.value?.setActiveItem(e),R=(e,a)=>{j.value=e,O("handleChange",e)},D=e=>{const a=e.querySelector(".el-carousel__arrow--left"),r=e.querySelector(".el-carousel__arrow--right");a&&(a.innerHTML=C(b,16)),r&&(r.innerHTML=C(k,16))};return t(()=>{if(N.arrowSeparate)return;const e=$.value?.$el;e&&(D(e),M=new MutationObserver(()=>D(e)),M.observe(e,{childList:!0,subtree:!0}))}),l(()=>M?.disconnect()),A({nextSlide:E,prevSlide:H,setActiveItem:T}),(a,r)=>(o(),i("div",s(a.$attrs,{class:"custom-carousel-wrapper"}),[n(c(g),{ref_key:"carouselRef",ref:$,class:u(["custom-carousel",q.value]),height:e.height,trigger:e.trigger,direction:e.direction,autoplay:e.autoplay,type:e.type,interval:e.interval,arrow:e.arrowSeparate?"never":e.arrow,"motion-blur":e.motionBlur,cardScale:e.cardScale,"indicator-position":e.arrowSeparate?"none":void 0,onChange:R},{default:d(()=>[(o(!0),i(p,null,v(e.list,(e,r)=>(o(),m(c(S),{key:r,id:e.currency??r,class:u(e.className)},{default:d(()=>[f(a.$slots,"item",{item:e,idx:r})]),_:2},1032,["id","class"]))),128))]),_:3},8,["class","height","trigger","direction","autoplay","type","interval","arrow","motion-blur","cardScale","indicator-position"]),e.arrowSeparate?(o(),i("div",B,[y("div",x,[(o(!0),i(p,null,v(e.list,(e,a)=>(o(),i("span",{key:a,class:u(["carousel-nav-bar__dot",{"is-active":j.value===a}]),onClick:e=>(e=>{T(e),j.value=e})(a)},null,10,I))),128))]),y("div",z,[n(w,{color:"contrast",isIconOnly:"",plain:"",circle:"",size:"sm",onClick:H},{default:d(()=>[n(c(b))]),_:1}),n(w,{color:"contrast",isIconOnly:"",plain:"",circle:"",size:"sm",onClick:E},{default:d(()=>[n(c(k))]),_:1})])])):_("",!0)],16))}});export{A as _};
@@ -1 +1 @@
1
- import{_ as e}from"./EaeraButton-DGfjUoa6.mjs";import{defineComponent as a,h,ref as o,useModel as l,computed as r,openBlock as t,createBlock as n,unref as p,normalizeClass as s,withCtx as d,createVNode as c,mergeModels as u}from"vue";import{ElDatePicker as f}from"element-plus";import{CalendarDays as m,X as i,ChevronsRight as y,ChevronRight as v,ChevronLeft as Y,ChevronsLeft as _}from"@lucide/vue";const b=a({__name:"EaeraDatePicker",props:u({placeholder:{default:"DD/MM/YYYY"},className:{},type:{default:"date"},valueFormat:{default:"DD-MM-YYYY"},format:{default:"DD/MM/YYYY"},rangeSeparator:{default:"-"},startPlaceholder:{default:""},endPlaceholder:{default:""},size:{default:"md"},borderType:{default:""},borderThin:{type:Boolean,default:!1},noIcon:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},popperClass:{default:"custom-date-picker__popper"},popperStyle:{},keyComponent:{},offset:{default:4},showArrow:{type:Boolean,default:!1},isError:{type:Boolean,default:!1}},{modelValue:{default:""},modelModifiers:{}}),emits:u(["change"],["update:modelValue"]),setup(u,{expose:b,emit:C}){const g=a({name:"PrefixCalendarIcon",render:()=>h(m)}),w=a({name:"ClearXIcon",render:()=>h(i)}),I=o(null),k=u,x=C,D=l(u,"modelValue"),M=r(()=>[k.className,k.size,k.borderThin&&"border-thin",k.borderType,k.noIcon&&"no-icon",k.isError&&"danger"]);return b({focus:()=>{I.value?.focus()},blur:()=>{I.value?.blur()},handleOpen:()=>{I.value?.handleOpen()},handleClose:()=>{I.value?.handleClose()}}),(a,o)=>{const l=e;return t(),n(p(f),{ref_key:"datePickerRef",ref:I,modelValue:D.value,"onUpdate:modelValue":o[0]||(o[0]=e=>D.value=e),type:u.type,placeholder:u.placeholder,"start-placeholder":u.startPlaceholder,"end-placeholder":u.endPlaceholder,"range-separator":u.rangeSeparator,class:s([M.value,"custom-date-picker"]),format:u.format,"value-format":u.valueFormat,"prefix-icon":p(g),clearable:u.clearable,"clear-icon":p(w),"popper-class":u.popperClass,"popper-style":u.popperStyle,id:u.keyComponent,offset:u.offset,"show-arrow":u.showArrow,onChange:o[1]||(o[1]=e=>x("change",e))},{"prev-year":d(()=>[c(l,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:d(()=>[c(p(_))]),_:1})]),"prev-month":d(()=>[c(l,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:d(()=>[c(p(Y))]),_:1})]),"next-month":d(()=>[c(l,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:d(()=>[c(p(v))]),_:1})]),"next-year":d(()=>[c(l,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:d(()=>[c(p(y))]),_:1})]),_:1},8,["modelValue","type","placeholder","start-placeholder","end-placeholder","range-separator","class","format","value-format","prefix-icon","clearable","clear-icon","popper-class","popper-style","id","offset","show-arrow"])}}});export{b as _};
1
+ import{_ as e}from"./EaeraButton-BPVKRBOn.mjs";import{defineComponent as a,h,ref as o,useModel as l,computed as r,openBlock as t,createBlock as n,unref as p,normalizeClass as s,withCtx as d,createVNode as c,mergeModels as u}from"vue";import{ElDatePicker as f}from"element-plus";import{CalendarDays as m,X as i,ChevronsRight as y,ChevronRight as v,ChevronLeft as Y,ChevronsLeft as _}from"@lucide/vue";const b=a({__name:"EaeraDatePicker",props:u({placeholder:{default:"DD/MM/YYYY"},className:{},type:{default:"date"},valueFormat:{default:"DD-MM-YYYY"},format:{default:"DD/MM/YYYY"},rangeSeparator:{default:"-"},startPlaceholder:{default:""},endPlaceholder:{default:""},size:{default:"md"},borderType:{default:""},borderThin:{type:Boolean,default:!1},noIcon:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},popperClass:{default:"custom-date-picker__popper"},popperStyle:{},keyComponent:{},offset:{default:4},showArrow:{type:Boolean,default:!1},isError:{type:Boolean,default:!1}},{modelValue:{default:""},modelModifiers:{}}),emits:u(["change"],["update:modelValue"]),setup(u,{expose:b,emit:C}){const g=a({name:"PrefixCalendarIcon",render:()=>h(m)}),w=a({name:"ClearXIcon",render:()=>h(i)}),I=o(null),k=u,x=C,D=l(u,"modelValue"),M=r(()=>[k.className,k.size,k.borderThin&&"border-thin",k.borderType,k.noIcon&&"no-icon",k.isError&&"danger"]);return b({focus:()=>{I.value?.focus()},blur:()=>{I.value?.blur()},handleOpen:()=>{I.value?.handleOpen()},handleClose:()=>{I.value?.handleClose()}}),(a,o)=>{const l=e;return t(),n(p(f),{ref_key:"datePickerRef",ref:I,modelValue:D.value,"onUpdate:modelValue":o[0]||(o[0]=e=>D.value=e),type:u.type,placeholder:u.placeholder,"start-placeholder":u.startPlaceholder,"end-placeholder":u.endPlaceholder,"range-separator":u.rangeSeparator,class:s([M.value,"custom-date-picker"]),format:u.format,"value-format":u.valueFormat,"prefix-icon":p(g),clearable:u.clearable,"clear-icon":p(w),"popper-class":u.popperClass,"popper-style":u.popperStyle,id:u.keyComponent,offset:u.offset,"show-arrow":u.showArrow,onChange:o[1]||(o[1]=e=>x("change",e))},{"prev-year":d(()=>[c(l,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:d(()=>[c(p(_))]),_:1})]),"prev-month":d(()=>[c(l,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:d(()=>[c(p(Y))]),_:1})]),"next-month":d(()=>[c(l,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:d(()=>[c(p(v))]),_:1})]),"next-year":d(()=>[c(l,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:d(()=>[c(p(y))]),_:1})]),_:1},8,["modelValue","type","placeholder","start-placeholder","end-placeholder","range-separator","class","format","value-format","prefix-icon","clearable","clear-icon","popper-class","popper-style","id","offset","show-arrow"])}}});export{b as _};
@@ -1 +1 @@
1
- import{ElDatePicker as e}from"element-plus/es";import{_ as a}from"./EaeraButton-DGfjUoa6.mjs";import{defineComponent as o,useModel as t,computed as l,openBlock as r,createBlock as m,unref as n,normalizeClass as s,withCtx as i,createVNode as u,mergeModels as c}from"vue";import{Clock as d,X as p,ChevronsRight as f,ChevronRight as v,ChevronLeft as y,ChevronsLeft as Y}from"@lucide/vue";const F=o({__name:"EaeraDateTimePicker",props:c({placeholder:{default:"DD/MM/YYYY"},className:{},type:{default:"date"},format:{default:"DD/MM/YYYY"},timeFormat:{default:"HH:mm"},valueFormat:{default:"DD-MM-YYYY"},keyComponent:{},noIcon:{type:Boolean,default:!1},size:{default:"md"},isError:{type:Boolean,default:!1},singlePanel:{type:Boolean,default:!0},offset:{default:4},clearable:{type:Boolean,default:!0},showArrow:{type:Boolean,default:!1},timePickerPlacement:{default:"bottom"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const c=o,F=t(o,"modelValue"),_=l(()=>c.type?.includes("datetime")),w=l(()=>!_.value||c.format.includes("H")||c.format.includes("h")?c.format:`${c.format} ${c.timeFormat}`),D=l(()=>!_.value||c.valueFormat.includes("H")||c.valueFormat.includes("h")?c.valueFormat:`${c.valueFormat} ${c.timeFormat}`),M=l(()=>[c.className,c.noIcon&&"no-icon",c.size,c.isError&&"danger"]);return(t,l)=>{const c=a,_=e;return r(),m(_,{id:o.keyComponent,modelValue:F.value,"onUpdate:modelValue":l[0]||(l[0]=e=>F.value=e),placeholder:o.placeholder,class:s(["custom-date-time-picker",M.value]),type:o.type,format:w.value,"time-format":o.timeFormat,valueFormat:D.value,"clear-icon":n(p),"prefix-icon":n(d),"popper-class":"custom-date-time-picker__popper",offset:o.offset,"show-arrow":o.showArrow,"single-panel":o.singlePanel,clearable:o.clearable},{"prev-year":i(()=>[u(c,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:i(()=>[u(n(Y))]),_:1})]),"prev-month":i(()=>[u(c,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:i(()=>[u(n(y))]),_:1})]),"next-month":i(()=>[u(c,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:i(()=>[u(n(v))]),_:1})]),"next-year":i(()=>[u(c,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:i(()=>[u(n(f))]),_:1})]),_:1},8,["id","modelValue","placeholder","class","type","format","time-format","valueFormat","clear-icon","prefix-icon","offset","show-arrow","single-panel","clearable"])}}});export{F as _};
1
+ import{ElDatePicker as e}from"element-plus/es";import{_ as a}from"./EaeraButton-BPVKRBOn.mjs";import{defineComponent as o,useModel as t,computed as l,openBlock as r,createBlock as m,unref as n,normalizeClass as s,withCtx as i,createVNode as u,mergeModels as c}from"vue";import{Clock as d,X as p,ChevronsRight as f,ChevronRight as v,ChevronLeft as y,ChevronsLeft as Y}from"@lucide/vue";const F=o({__name:"EaeraDateTimePicker",props:c({placeholder:{default:"DD/MM/YYYY"},className:{},type:{default:"date"},format:{default:"DD/MM/YYYY"},timeFormat:{default:"HH:mm"},valueFormat:{default:"DD-MM-YYYY"},keyComponent:{},noIcon:{type:Boolean,default:!1},size:{default:"md"},isError:{type:Boolean,default:!1},singlePanel:{type:Boolean,default:!0},offset:{default:4},clearable:{type:Boolean,default:!0},showArrow:{type:Boolean,default:!1},timePickerPlacement:{default:"bottom"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const c=o,F=t(o,"modelValue"),_=l(()=>c.type?.includes("datetime")),w=l(()=>!_.value||c.format.includes("H")||c.format.includes("h")?c.format:`${c.format} ${c.timeFormat}`),D=l(()=>!_.value||c.valueFormat.includes("H")||c.valueFormat.includes("h")?c.valueFormat:`${c.valueFormat} ${c.timeFormat}`),M=l(()=>[c.className,c.noIcon&&"no-icon",c.size,c.isError&&"danger"]);return(t,l)=>{const c=a,_=e;return r(),m(_,{id:o.keyComponent,modelValue:F.value,"onUpdate:modelValue":l[0]||(l[0]=e=>F.value=e),placeholder:o.placeholder,class:s(["custom-date-time-picker",M.value]),type:o.type,format:w.value,"time-format":o.timeFormat,valueFormat:D.value,"clear-icon":n(p),"prefix-icon":n(d),"popper-class":"custom-date-time-picker__popper",offset:o.offset,"show-arrow":o.showArrow,"single-panel":o.singlePanel,clearable:o.clearable},{"prev-year":i(()=>[u(c,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:i(()=>[u(n(Y))]),_:1})]),"prev-month":i(()=>[u(c,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:i(()=>[u(n(y))]),_:1})]),"next-month":i(()=>[u(c,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:i(()=>[u(n(v))]),_:1})]),"next-year":i(()=>[u(c,{isIconOnly:"",size:"sm",plain:"",color:"contrast"},{default:i(()=>[u(n(f))]),_:1})]),_:1},8,["id","modelValue","placeholder","class","type","format","time-format","valueFormat","clear-icon","prefix-icon","offset","show-arrow","single-panel","clearable"])}}});export{F as _};
@@ -1 +1 @@
1
- import{ElDrawer as e}from"element-plus/es";import{_ as o}from"./EaeraButton-DGfjUoa6.mjs";import{defineComponent as l,useModel as s,computed as a,openBlock as t,createBlock as r,mergeProps as d,withCtx as n,renderSlot as c,createVNode as i,createTextVNode as p,mergeModels as m}from"vue";const u=l({__name:"EaeraDrawer",props:m({appendBody:{type:Boolean},showClose:{type:Boolean},destroyOnClose:{type:Boolean,default:!0},modalClass:{default:""},lockScroll:{type:Boolean},size:{},direction:{default:"rtl"},handleClose:{},className:{},appendTo:{},resizable:{type:Boolean,default:!1}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:m(["resize-start","resize","resize-end","cancel","save"],["update:modelValue"]),setup(l,{emit:m}){const u=s(l,"modelValue"),z=m,f=l,y=a(()=>[f.className]),C=e=>{z("resize-start",e)},B=e=>{z("resize",e)},b=e=>{z("resize-end",e)};return(s,a)=>{const m=o,f=e;return t(),r(f,d({modelValue:u.value,"onUpdate:modelValue":a[2]||(a[2]=e=>u.value=e),size:l.size,"append-to-body":l.appendBody,"show-close":l.showClose,"destroy-on-close":l.destroyOnClose,"modal-class":`${l.modalClass}`,"lock-scroll":l.lockScroll,resizable:l.resizable},s.$attrs,{"before-close":l.handleClose,direction:l.direction,class:["custom-drawer",y.value],"append-to":l.appendTo,onResizeStart:C,onResize:B,onResizeEnd:b}),{header:n(()=>[c(s.$slots,"header")]),default:n(()=>[c(s.$slots,"default")]),footer:n(()=>[c(s.$slots,"footer",{},()=>[i(m,{onClick:a[0]||(a[0]=e=>z("cancel")),plain:"",color:"contrast"},{default:n(()=>[...a[3]||(a[3]=[p("Cancel",-1)])]),_:1}),i(m,{onClick:a[1]||(a[1]=e=>z("save"))},{default:n(()=>[...a[4]||(a[4]=[p("Save",-1)])]),_:1})])]),_:3},16,["modelValue","size","append-to-body","show-close","destroy-on-close","modal-class","lock-scroll","resizable","before-close","direction","class","append-to"])}}});export{u as _};
1
+ import{ElDrawer as e}from"element-plus/es";import{_ as o}from"./EaeraButton-BPVKRBOn.mjs";import{defineComponent as l,useModel as s,computed as a,openBlock as t,createBlock as r,mergeProps as d,withCtx as n,renderSlot as c,createVNode as i,createTextVNode as p,mergeModels as m}from"vue";const u=l({__name:"EaeraDrawer",props:m({appendBody:{type:Boolean},showClose:{type:Boolean},destroyOnClose:{type:Boolean,default:!0},modalClass:{default:""},lockScroll:{type:Boolean},size:{},direction:{default:"rtl"},handleClose:{},className:{},appendTo:{},resizable:{type:Boolean,default:!1}},{modelValue:{type:Boolean},modelModifiers:{}}),emits:m(["resize-start","resize","resize-end","cancel","save"],["update:modelValue"]),setup(l,{emit:m}){const u=s(l,"modelValue"),z=m,f=l,y=a(()=>[f.className]),C=e=>{z("resize-start",e)},B=e=>{z("resize",e)},b=e=>{z("resize-end",e)};return(s,a)=>{const m=o,f=e;return t(),r(f,d({modelValue:u.value,"onUpdate:modelValue":a[2]||(a[2]=e=>u.value=e),size:l.size,"append-to-body":l.appendBody,"show-close":l.showClose,"destroy-on-close":l.destroyOnClose,"modal-class":`${l.modalClass}`,"lock-scroll":l.lockScroll,resizable:l.resizable},s.$attrs,{"before-close":l.handleClose,direction:l.direction,class:["custom-drawer",y.value],"append-to":l.appendTo,onResizeStart:C,onResize:B,onResizeEnd:b}),{header:n(()=>[c(s.$slots,"header")]),default:n(()=>[c(s.$slots,"default")]),footer:n(()=>[c(s.$slots,"footer",{},()=>[i(m,{onClick:a[0]||(a[0]=e=>z("cancel")),plain:"",color:"contrast"},{default:n(()=>[...a[3]||(a[3]=[p("Cancel",-1)])]),_:1}),i(m,{onClick:a[1]||(a[1]=e=>z("save"))},{default:n(()=>[...a[4]||(a[4]=[p("Save",-1)])]),_:1})])]),_:3},16,["modelValue","size","append-to-body","show-close","destroy-on-close","modal-class","lock-scroll","resizable","before-close","direction","class","append-to"])}}});export{u as _};
@@ -1 +1 @@
1
- import{defineComponent as e,ref as a,computed as l,watch as o,resolveComponent as t,openBlock as n,createElementBlock as r,Fragment as d,renderList as i,normalizeClass as s,renderSlot as u,normalizeStyle as m,createElementVNode as p,toDisplayString as c,createBlock as f,resolveDynamicComponent as y,mergeProps as w,withKeys as v,withModifiers as k,createCommentVNode as _,createVNode as b,withCtx as C,createTextVNode as g}from"vue";import{_ as R}from"./EaeraButton-DGfjUoa6.mjs";import{_ as x}from"./EaeraInput-CkbcAxy0.mjs";import{_ as D}from"./EaeraInputNumber-COC6rdNn.mjs";import{_ as $}from"./EaeraSelect-BxZRZofe.mjs";import{_ as E}from"./EaeraRadio-Dz6nSJu0.mjs";import{_ as F}from"./EaeraCheckbox-C_faN0pV.mjs";import{_ as S}from"./EaeraCountryField-BAUKKPoc.mjs";import{_ as P}from"./EaeraInputPhoneNumber-CDZnyaLx.mjs";import{_ as j}from"./EaeraDateTimePicker-DXW1M3R7.mjs";import{_ as I}from"./EaeraSwitch-BI3E0zPf.mjs";const B=["for"],V={class:"custom-dynamic-field-row__wrapbox"},K={class:"custom-dynamic-field-row__component"},M={class:"custom-dynamic-field-row__component__wrap"},N={class:"custom-dynamic-field-row__component__item"},T=["onClick"],z={class:"custom-dynamic-field-row__additional"},A=e({__name:"EaeraDynamicFieldRow",props:{fieldRowSchema:{default:()=>[[{nameComponent:"input",key:"examplev1",label:"Example1"},{nameComponent:"input",key:"examplev2",label:"Example2"}]]},fieldRowData:{default:()=>[]},rowAddDefault:{default:()=>[{nameComponent:"input",key:"examplev1",label:"Example1"},{nameComponent:"input",key:"examplev2",label:"Example2"}]},isShowDelete:{type:Boolean,default:!0},className:{},sizeFormItems:{default:"md"}},emits:["addField","deleteField","updatePropFieldRowData"],setup(e,{expose:A,emit:U}){const L={select:$,selectCountry:S,input:x,inputNumber:D,radio:E,checkbox:F,inputPhoneNumber:P,dateTimePicker:j,switch:I},q=e,W=U,G=a([...q.fieldRowData||[]]),H=a(!1),J=l(()=>[q.className]),O=(e,a=!1)=>{switch(e){case"number":return a?null:0;case"checkbox":return!1;default:return""}},Q=()=>{0==q.fieldRowSchema.length?G.value.push(q.rowAddDefault.reduce((e,a)=>(e[a.key]=a.valueDefault??O(a.type,null==a.valueDefault),e),{})):G.value.push(q.fieldRowSchema[q.fieldRowSchema.length-1].reduce((e,a)=>(e[a.key]=a.valueDefault??O(a.type,null==a.valueDefault),e),{})),W("addField",q.fieldRowSchema.length>0?q.fieldRowSchema[q.fieldRowSchema.length-1]:q.rowAddDefault)};return o(()=>q.fieldRowData,e=>{G.value=e},{deep:!0}),o(()=>G.value,()=>{W("updatePropFieldRowData",G.value)},{deep:!0}),o(()=>q.fieldRowSchema,()=>{q.fieldRowData&&0==q.fieldRowData.length&&(H.value||(G.value=q.fieldRowSchema.map(e=>e.reduce((e,a)=>(e[a.key]=a.valueDefault||"",e),{})),H.value=!0))},{immediate:!0,deep:!0}),A({onClickAddField:Q}),(a,l)=>{const o=t("Delete");return n(),r(d,null,[(n(!0),r(d,null,i(e.fieldRowSchema,(l,t)=>(n(),r("div",{class:s(["custom-dynamic-field-row__container",J.value]),key:t},[u(a.$slots,"header",{data:l,index:t}),u(a.$slots,"body",{},()=>[(n(!0),r(d,null,i(l,(d,i)=>{return n(),r("div",{key:i,class:s(["custom-dynamic-field-row__wrap",d.classField]),style:m({gridColumn:`span ${d.col??12}`})},[p("label",{for:d.id,class:s(d.classLabel)},c(d.label?`${a.$t(d.label)}${d.required?"*":""}`:""),11,B),p("div",V,[p("div",K,[p("div",M,[p("div",N,[u(a.$slots,`prepend_item_${d.key}`,{data:G.value[t],field:d,index:t}),(n(),f(y(L[d.nameComponent]),w({id:d.id,modelValue:G.value[t][d.key],"onUpdate:modelValue":e=>G.value[t][d.key]=e,value:G.value[t][d.key],class:d.classComponent,formatter:d.formatter,parser:d.parser,valueKey:d.valueKey,disabled:d.disabled??!1,options:d.options||[],type:d.type,filterable:d.filterable||!1,rows:d.rows,allowCreate:d.allowCreate||!1,placeholder:d.placeholder?a.$t(`${d.placeholder}`):" ",placeholderCountry:d.placeholderCountry?a.$t(`${d.placeholderCountry}`):"",autocomplete:d.autocomplete,multiple:d.multiple||!1,props:d.props,remote:d.remote||!1,"remote-method":d.remoteMethod,loading:d.loading||!1,clearable:d.clearable||!1,"value-format":d.valueFormat,isRadioButton:d.isRadioButton||!1,"fit-input-width":d.fitInputWidth||!1,collapseTags:d.collapseTags||!1,"max-collapse-tags":d.maxCollapseTags||1,treeProps:d.treeProps,keyComponent:d.key,defaultValue:d.defaultValue,"show-password":d.showPassword,size:(b=d.size,b&&b.length>0?b:q.sizeFormItems),hiddenLabel:d.hiddenLabel||!1,"is-money-input":d.isMoneyInput,label:d.label?a.$t(d.label):""},{ref_for:!0},d.componentProps||{},{onClear:e=>d.onClear?.(e,d.key),onUpdateValueProp:e=>G.value[t][d.key]=e,onChange:e=>d.onChange?.(e,d.key),onMouseover:e=>d.mouseover?.(e,d.key),onMouseout:e=>d.mouseout?.(e,d.key),onFocus:e=>d.onFocus?.(e,d.key),onBlur:e=>d.onBlur?.(e,d.key),onInput:e=>d.onInput?.(e,d.key,d,t,G.value[t]),onKeydown:v(k(e=>d.keyDownEnter?.(e,d.key),["prevent"]),["enter","native"]),onKeyup:v(k(e=>d.keyUpEnter?.(e,d.key),["prevent"]),["enter","native"])}),null,16,["id","modelValue","onUpdate:modelValue","value","class","formatter","parser","valueKey","disabled","options","type","filterable","rows","allowCreate","placeholder","placeholderCountry","autocomplete","multiple","props","remote","remote-method","loading","clearable","value-format","isRadioButton","fit-input-width","collapseTags","max-collapse-tags","treeProps","keyComponent","defaultValue","show-password","size","hiddenLabel","is-money-input","label","onClear","onUpdateValueProp","onChange","onMouseover","onMouseout","onFocus","onBlur","onInput","onKeydown","onKeyup"])),u(a.$slots,`append_item_${d.key}`,{data:G.value[t],field:d,index:t})]),u(a.$slots,`bottom_item_${d.key}`,{data:G.value[t],field:d,index:t})]),!e.isShowDelete||l.length>=2&&i!==l.length-1?_("",!0):(n(),r("div",{key:0,class:"custom-dynamic-field-row__deleteBtn",onClick:e=>(e=>{G.value.splice(e,1),W("deleteField",e)})(t)},[i==l.length-1&&e.fieldRowSchema.length>1?(n(),f(o,{key:0,class:"cursor-pointer"})):_("",!0)],8,T))]),p("div",z,[u(a.$slots,"additional",{index:t,field:d})])])],6);var b}),128))])],2))),128)),p("div",null,[u(a.$slots,"footer",{},()=>[b(R,{onClick:Q},{default:C(()=>[...l[0]||(l[0]=[g("Add field",-1)])]),_:1})])])],64)}}});export{A as _};
1
+ import{defineComponent as e,ref as a,computed as l,watch as o,resolveComponent as t,openBlock as n,createElementBlock as r,Fragment as d,renderList as i,normalizeClass as s,renderSlot as u,normalizeStyle as m,createElementVNode as p,toDisplayString as c,createBlock as f,resolveDynamicComponent as y,mergeProps as w,withKeys as v,withModifiers as k,createCommentVNode as _,createVNode as b,withCtx as C,createTextVNode as g}from"vue";import{_ as R}from"./EaeraButton-BPVKRBOn.mjs";import{_ as x}from"./EaeraInput-CkbcAxy0.mjs";import{_ as D}from"./EaeraInputNumber-COC6rdNn.mjs";import{_ as $}from"./EaeraSelect-BxZRZofe.mjs";import{_ as E}from"./EaeraRadio-Dz6nSJu0.mjs";import{_ as F}from"./EaeraCheckbox-C_faN0pV.mjs";import{_ as S}from"./EaeraCountryField-BAUKKPoc.mjs";import{_ as P}from"./EaeraInputPhoneNumber-CDZnyaLx.mjs";import{_ as j}from"./EaeraDateTimePicker-Hv_ma8qU.mjs";import{_ as I}from"./EaeraSwitch-BI3E0zPf.mjs";const B=["for"],V={class:"custom-dynamic-field-row__wrapbox"},K={class:"custom-dynamic-field-row__component"},M={class:"custom-dynamic-field-row__component__wrap"},N={class:"custom-dynamic-field-row__component__item"},T=["onClick"],z={class:"custom-dynamic-field-row__additional"},A=e({__name:"EaeraDynamicFieldRow",props:{fieldRowSchema:{default:()=>[[{nameComponent:"input",key:"examplev1",label:"Example1"},{nameComponent:"input",key:"examplev2",label:"Example2"}]]},fieldRowData:{default:()=>[]},rowAddDefault:{default:()=>[{nameComponent:"input",key:"examplev1",label:"Example1"},{nameComponent:"input",key:"examplev2",label:"Example2"}]},isShowDelete:{type:Boolean,default:!0},className:{},sizeFormItems:{default:"md"}},emits:["addField","deleteField","updatePropFieldRowData"],setup(e,{expose:A,emit:U}){const L={select:$,selectCountry:S,input:x,inputNumber:D,radio:E,checkbox:F,inputPhoneNumber:P,dateTimePicker:j,switch:I},q=e,W=U,G=a([...q.fieldRowData||[]]),H=a(!1),J=l(()=>[q.className]),O=(e,a=!1)=>{switch(e){case"number":return a?null:0;case"checkbox":return!1;default:return""}},Q=()=>{0==q.fieldRowSchema.length?G.value.push(q.rowAddDefault.reduce((e,a)=>(e[a.key]=a.valueDefault??O(a.type,null==a.valueDefault),e),{})):G.value.push(q.fieldRowSchema[q.fieldRowSchema.length-1].reduce((e,a)=>(e[a.key]=a.valueDefault??O(a.type,null==a.valueDefault),e),{})),W("addField",q.fieldRowSchema.length>0?q.fieldRowSchema[q.fieldRowSchema.length-1]:q.rowAddDefault)};return o(()=>q.fieldRowData,e=>{G.value=e},{deep:!0}),o(()=>G.value,()=>{W("updatePropFieldRowData",G.value)},{deep:!0}),o(()=>q.fieldRowSchema,()=>{q.fieldRowData&&0==q.fieldRowData.length&&(H.value||(G.value=q.fieldRowSchema.map(e=>e.reduce((e,a)=>(e[a.key]=a.valueDefault||"",e),{})),H.value=!0))},{immediate:!0,deep:!0}),A({onClickAddField:Q}),(a,l)=>{const o=t("Delete");return n(),r(d,null,[(n(!0),r(d,null,i(e.fieldRowSchema,(l,t)=>(n(),r("div",{class:s(["custom-dynamic-field-row__container",J.value]),key:t},[u(a.$slots,"header",{data:l,index:t}),u(a.$slots,"body",{},()=>[(n(!0),r(d,null,i(l,(d,i)=>{return n(),r("div",{key:i,class:s(["custom-dynamic-field-row__wrap",d.classField]),style:m({gridColumn:`span ${d.col??12}`})},[p("label",{for:d.id,class:s(d.classLabel)},c(d.label?`${a.$t(d.label)}${d.required?"*":""}`:""),11,B),p("div",V,[p("div",K,[p("div",M,[p("div",N,[u(a.$slots,`prepend_item_${d.key}`,{data:G.value[t],field:d,index:t}),(n(),f(y(L[d.nameComponent]),w({id:d.id,modelValue:G.value[t][d.key],"onUpdate:modelValue":e=>G.value[t][d.key]=e,value:G.value[t][d.key],class:d.classComponent,formatter:d.formatter,parser:d.parser,valueKey:d.valueKey,disabled:d.disabled??!1,options:d.options||[],type:d.type,filterable:d.filterable||!1,rows:d.rows,allowCreate:d.allowCreate||!1,placeholder:d.placeholder?a.$t(`${d.placeholder}`):" ",placeholderCountry:d.placeholderCountry?a.$t(`${d.placeholderCountry}`):"",autocomplete:d.autocomplete,multiple:d.multiple||!1,props:d.props,remote:d.remote||!1,"remote-method":d.remoteMethod,loading:d.loading||!1,clearable:d.clearable||!1,"value-format":d.valueFormat,isRadioButton:d.isRadioButton||!1,"fit-input-width":d.fitInputWidth||!1,collapseTags:d.collapseTags||!1,"max-collapse-tags":d.maxCollapseTags||1,treeProps:d.treeProps,keyComponent:d.key,defaultValue:d.defaultValue,"show-password":d.showPassword,size:(b=d.size,b&&b.length>0?b:q.sizeFormItems),hiddenLabel:d.hiddenLabel||!1,"is-money-input":d.isMoneyInput,label:d.label?a.$t(d.label):""},{ref_for:!0},d.componentProps||{},{onClear:e=>d.onClear?.(e,d.key),onUpdateValueProp:e=>G.value[t][d.key]=e,onChange:e=>d.onChange?.(e,d.key),onMouseover:e=>d.mouseover?.(e,d.key),onMouseout:e=>d.mouseout?.(e,d.key),onFocus:e=>d.onFocus?.(e,d.key),onBlur:e=>d.onBlur?.(e,d.key),onInput:e=>d.onInput?.(e,d.key,d,t,G.value[t]),onKeydown:v(k(e=>d.keyDownEnter?.(e,d.key),["prevent"]),["enter","native"]),onKeyup:v(k(e=>d.keyUpEnter?.(e,d.key),["prevent"]),["enter","native"])}),null,16,["id","modelValue","onUpdate:modelValue","value","class","formatter","parser","valueKey","disabled","options","type","filterable","rows","allowCreate","placeholder","placeholderCountry","autocomplete","multiple","props","remote","remote-method","loading","clearable","value-format","isRadioButton","fit-input-width","collapseTags","max-collapse-tags","treeProps","keyComponent","defaultValue","show-password","size","hiddenLabel","is-money-input","label","onClear","onUpdateValueProp","onChange","onMouseover","onMouseout","onFocus","onBlur","onInput","onKeydown","onKeyup"])),u(a.$slots,`append_item_${d.key}`,{data:G.value[t],field:d,index:t})]),u(a.$slots,`bottom_item_${d.key}`,{data:G.value[t],field:d,index:t})]),!e.isShowDelete||l.length>=2&&i!==l.length-1?_("",!0):(n(),r("div",{key:0,class:"custom-dynamic-field-row__deleteBtn",onClick:e=>(e=>{G.value.splice(e,1),W("deleteField",e)})(t)},[i==l.length-1&&e.fieldRowSchema.length>1?(n(),f(o,{key:0,class:"cursor-pointer"})):_("",!0)],8,T))]),p("div",z,[u(a.$slots,"additional",{index:t,field:d})])])],6);var b}),128))])],2))),128)),p("div",null,[u(a.$slots,"footer",{},()=>[b(R,{onClick:Q},{default:C(()=>[...l[0]||(l[0]=[g("Add field",-1)])]),_:1})])])],64)}}});export{A as _};
@@ -1 +1 @@
1
- import{ElForm as e,ElFormItem as t,ElIcon as o}from"element-plus/es";import{reactive as a,ref as r,computed as l,watch as s,nextTick as n,toRaw as i,defineComponent as m,openBlock as u,createBlock as d,mergeProps as p,unref as c,withCtx as f,renderSlot as v,createElementVNode as _,normalizeClass as b,createElementBlock as y,Fragment as g,renderList as C,resolveDynamicComponent as k,withKeys as F,withModifiers as S,toHandlers as w,createSlots as E,createTextVNode as P,toDisplayString as $,createVNode as j,createCommentVNode as x}from"vue";import{_ as O}from"./EaeraButton-DGfjUoa6.mjs";import{_ as I}from"./EaeraEmailSuggestion-DyhqpIEZ.mjs";import{_ as T}from"./EaeraTooltip-BIlULHv4.mjs";import{e as V,t as N}from"./vendor-email-misspelled-0hsXkSSK.mjs";import{_ as B}from"./EaeraCascadeSelect-CoSX_ACV.mjs";import{_ as R}from"./EaeraCheckbox-C_faN0pV.mjs";import{_ as D}from"./EaeraCheckBoxList-ZKnHu1T9.mjs";import{_ as z}from"./EaeraDatePicker-CAm9fHms.mjs";import{_ as G}from"./EaeraDateTimePicker-DXW1M3R7.mjs";import{_ as U}from"./EaeraRadio-Dz6nSJu0.mjs";import{_ as L}from"./EaeraSelect-BxZRZofe.mjs";import{_ as A}from"./EaeraSwitch-BI3E0zPf.mjs";import{_ as K}from"./EaeraTimePicker-B4e4R3pD.mjs";import{_ as M}from"./EaeraTree-CwZK7lqG.mjs";import{_ as q}from"./EaeraTreeSelect-mLNgcoOv.mjs";import{_ as W}from"./EaeraAutoComplete-DLjCHpAH.mjs";import{_ as X}from"./EaeraInputTag-BIYG3daA.mjs";import{_ as H}from"./EaeraCountryField-BAUKKPoc.mjs";import{_ as J}from"./EaeraInputPhone-BAfQ9DpC.mjs";import{_ as Q}from"./EaeraInputPhoneNumber-CDZnyaLx.mjs";import{_ as Y}from"./EaeraSelectGroup-DxK2CWYf.mjs";import{_ as Z}from"./EaeraSelectOther-BICVMrjI.mjs";import{_ as ee}from"./EaeraInput-CkbcAxy0.mjs";import{_ as te}from"./EaeraInputNumber-COC6rdNn.mjs";import{Check as oe,TriangleAlert as ae}from"@lucide/vue";import{InfoFilled as re}from"@element-plus/icons-vue";var le=(e=>(e.Select="select",e.Input="input",e.InputNumber="inputNumber",e.Radio="radio",e.Checkbox="checkbox",e.InputPhoneNumber="inputPhoneNumber",e.InputPhone="inputPhone",e.DateTimePicker="dateTimePicker",e.SelectCascade="selectCascade",e.TreeSelect="treeSelect",e.Tree="tree",e.SelectOther="selectOther",e.SelectCountry="selectCountry",e.SelectGroup="selectGroup",e.CheckBoxList="checkboxList",e.TimePicker="timePicker",e.Switch="switch",e.DatePicker="datePicker",e.InputTag="inputTag",e.AutoComplete="autoComplete",e))(le||{});const se={select:L,selectOther:Z,selectCountry:H,selectGroup:Y,input:ee,inputNumber:te,radio:U,checkbox:R,inputPhoneNumber:Q,inputPhone:J,dateTimePicker:G,selectCascade:B,treeSelect:q,tree:M,checkboxList:D,timePicker:K,switch:A,datePicker:z,inputTag:X,autoComplete:W},ne=(e,t)=>{const o=V({domains:N}),m=a({}),u=r(!1),d=r(),p=r({}),c=r("idle"),f=r(!0),v=a({}),_=a({}),b=a({}),y=a({}),g=e.formData||{},C=a(g);Object.assign(C,(()=>{const t={},o=e.formSchema;for(const e in o)void 0!==o[e].defaultValue&&(t[e]=o[e].defaultValue);return t})(),g);const k=r({}),F=l(()=>{const t=Object.create({});return Object.entries(e.formSchema).sort(([,e],[,t])=>(e.order??0)-(t.order??0)).forEach(([e,o])=>{const a=o.group||e;t[a]||(t[a]={}),t[a][e]=o}),t}),S=l(()=>[e.className,e.prefixLabel&&"is-prefix-label"]),w=l(()=>{const t=new Set(["switch","radio"]),o=e.formSchema;return d.value?.fields.map(e=>({label:e.label,key:e.prop,component:o[e.prop]?.nameComponent,state:e.validateState||"idle"})).filter(e=>!t.has(e.component))}),E=e=>{const t={};for(const o of e)Array.isArray(o.value)?t[o.key]=t[o.key]?[...t[o.key],...o.value]:[...o.value]:t[o.key]=t[o.key]?[...t[o.key],o.value]:[o.value];return Object.entries(t).map(([e,t])=>({key:e,value:t}))},P=e=>{if(!e.condition)return!0;const t=E(e.condition);return"or"===e.typeCondition?t.some(e=>e.value.includes(C[e.key])):t.every(e=>e.value.includes(C[e.key]))},$=e=>{const t=[];for(const o in e)if(Object.hasOwn(e,o)){const a=e[o];a.condition&&!j(a)&&t.push(o)}return t},j=e=>{const t=E(e.condition);return"or"===e.typeCondition?t.some(e=>e.value.includes(C[e.key])):t.every(e=>e.value.includes(C[e.key]))},x=(e,t)=>{e?(u.value=!1,c.value="valid"):(u.value=!0,c.value="invalid")},O=async e=>{d.value&&(c.value="validating",await d.value.validateField(e,x))},I=e=>e&&"object"==typeof e?{...e}:e,T=(e=[])=>e.map(I),B=e=>{const t=[];for(const o in e){if(!Object.hasOwn(e,o))continue;const a=Array.isArray(e[o])?e[o]:[];t.push(...a)}return t},R=()=>{const t=e.formSchema,o={};for(const e in t)if(Object.hasOwn(t,e)){const a=t[e],r=a?.rule||{};for(const e in r)Object.hasOwn(r,e)&&(o[e]=T(r[e]||[]));const l="inputPhoneNumber"===a?.nameComponent,s=b[e]||[];if(!l||0===s.length)continue;const n=B(r),i=o[e]||[];if(0===n.length)continue;o[e]=[...i,...T(s)]}k.value=o};R();return s(()=>e.formData,e=>Object.assign(C,e||{}),{deep:!0}),s(C,t=>{e.formData&&e.formData!==C&&Object.assign(e.formData,t)},{deep:!0}),s(()=>e.formSchema,R),s(w,e=>{e&&(e.some(e=>"validating"===e.state)?c.value="validating":e.some(e=>"error"===e.state)?c.value="invalid":e.every(e=>"success"===e.state)?c.value="valid":c.value="idle")}),{Component:le,suggestionEmails:m,isErrorValidateForm:u,ruleFormRef:d,rowItemComponentRefs:p,rules:k,formState:c,isValidPhoneNumber:f,isValidEmails:v,ruleForm:C,sortedGroupFormSchema:F,computedClass:S,fieldsState:w,getSizeFormItems:t=>t?.length>0?t:e.sizeFormItems,getTypeComponent:(e,t)=>"password"===e?_[t]?"text":"password":e,getNameComponent:(e="")=>se[e]??null,getFieldsByCondition:e=>{if(0===Object.keys(e).length)return{};const t=Object.create({});for(const o in e)if(Object.hasOwn(e,o)){const a=e[o];P(a)&&!a.hidden&&(t[o]=a)}return t},submitForm:()=>{d.value&&(c.value="submitting",d.value.validate((e,o)=>{if(e&&f.value){u.value=!1,c.value="submitted";const e=structuredClone(i(C));for(const t of(()=>{let e=[];for(const t in F.value)Object.hasOwn(F.value,t)&&(e=e.concat($(F.value[t])));return e})())delete e[t];t("submit",e)}else u.value=!0,c.value="invalid",f.value?console.log("error submit!",o):console.log("error submit!","Phone number is invalid")}))},validateForm:async()=>{d.value&&(c.value="validating",await d.value.validate(x))},validateField:O,onValidate:(t,o,a)=>{y[t]=!o;const r=e.formSchema;"email"===r[t]?.type&&(v[t]=o)},fieldErrors:y,resetForm:()=>{d.value&&(d.value.resetFields(),Object.keys(y).forEach(e=>delete y[e]),Object.values(p.value).forEach(e=>{e?.resetField?.()}))},resetFields:e=>{d.value&&(d.value.resetFields(e),e.forEach(e=>{delete y[e];const t=p.value[e];t?.resetField?.()}))},handleKeyUpEnter:(t,o)=>{const a=t.target;"textarea"===a?.tagName.toLowerCase()&&(C[o]=C[o]+"\n"),e.keyUpEnter(t,o)},onInputComponent:(t,a,r)=>{"email"===r&&(m[a]=o(C[a])?.slice(0,3)??[]),e.onInput(t,a)},onClickSuggestion:(e,t)=>{C[t]=C[t].replace(/@.*/,`@${e}`),m[t]=[]},onUpdateValueProp:(e,t,o)=>{C[t]=e;"inputPhoneNumber"===o&&(""===e||null==e)&&n(()=>{O(String(t))})},registerComponentRef:(e,t,o)=>{if(""===t||null==t)return;const a=String(t);if(!e)return;if(p.value[a]===e)return;if(p.value[a]=e,"inputPhoneNumber"!==o)return;if((b[a]||[]).length>0)return;((e,t)=>{if(""===e||null==e||!t)return;const o=String(e),a=Array.isArray(t)?t:[t];b[o]=T(a),R()})(a,e.defaultRule)}}},ie={key:0,class:"required-field"},me={class:"custom-form-item__error"},ue={class:"text-error-validate"},de={class:"custom-form-item__success"},pe={class:"custom-form-item__info"},ce={class:"el-form-item__label-bottom"},fe={key:0},ve=m({__name:"EaeraForm",props:{className:{},classNameParentGroup:{default:""},labelPosition:{default:"top"},labelWidth:{default:"auto"},textBtnSave:{default:"Save"},textBtnClose:{default:"Close"},scrollToError:{type:Boolean,default:!0},formData:{default:()=>({})},formSchema:{default:()=>({})},formGroupRenderOptions:{default:()=>({})},onChange:{type:Function,default:()=>{}},mouseover:{type:Function,default:()=>{}},onBlur:{type:Function,default:()=>{}},onFocus:{type:Function,default:()=>{}},mouseout:{type:Function,default:()=>{}},onInput:{type:Function,default:()=>{}},keyDownEnter:{type:Function,default:()=>{}},keyUpEnter:{type:Function,default:()=>{}},onClear:{type:Function,default:()=>{}},validateOnRuleChange:{type:Boolean,default:!0},sizeFormItems:{default:"md"},labelSize:{default:"md"},prefixLabel:{type:Boolean},isMoneyInput:{type:Boolean}},emits:["submit"],setup(a,{expose:r,emit:l}){const s=a,n=l,{Component:i,suggestionEmails:m,isErrorValidateForm:V,ruleFormRef:N,rowItemComponentRefs:B,rules:R,formState:D,isValidPhoneNumber:z,isValidEmails:G,ruleForm:U,sortedGroupFormSchema:L,computedClass:A,fieldsState:K,getSizeFormItems:M,getTypeComponent:q,getNameComponent:W,getFieldsByCondition:X,submitForm:H,validateForm:J,validateField:Q,onValidate:Y,fieldErrors:Z,resetForm:ee,resetFields:te,handleKeyUpEnter:le,onInputComponent:se,onClickSuggestion:ve,onUpdateValueProp:he,registerComponentRef:_e}=ne(s,n);return r({submitForm:H,resetForm:ee,resetFields:te,validateForm:J,validateField:Q,isErrorValidateForm:V,formState:D,fieldsState:K,rowItemComponentRefs:B}),(r,l)=>{const n=o,V=t,B=e;return u(),d(B,p({ref_key:"ruleFormRef",ref:N,model:c(U),rules:c(R),labelPosition:"bottom"===s.labelPosition?void 0:s.labelPosition,onValidate:c(Y),class:["custom-form",c(A)],"scroll-to-error":a.scrollToError,"validate-on-rule-change":a.validateOnRuleChange,"label-width":"bottom"===s.labelPosition?0:s.labelWidth||"auto"},r.$attrs),{default:f(()=>[v(r.$slots,"header"),v(r.$slots,"body",{},()=>[_("div",{class:b(["custom-form__parent-group",s.classNameParentGroup])},[(u(!0),y(g,null,C(c(L),(e,t)=>(u(),y("div",{key:t},[v(r.$slots,"top_row_group_"+t),(u(),d(k(a.formGroupRenderOptions?.[t]?.tag??"div"),{class:b(a.formGroupRenderOptions?.[t]?.class??"form-group-default")},{default:f(()=>[(u(!0),y(g,null,C(c(X)(e),(e,t)=>(u(),d(V,p({key:t,class:["custom-form-item",[e.classFormItem,e.nameComponent&&`custom-form-item__${e.nameComponent}`,"bottom"===a.labelPosition&&"no-label",e.disabled&&"is-disabled",s.labelSize&&`label-size--${s.labelSize}`]],prop:t},{ref_for:!0},e.formItemProps||{}),{label:f(()=>[_("span",null,$(r.$t(e.label)),1),e.rule?.required?(u(),y("span",ie,"*")):x("",!0),e.labelTooltip?(u(),d(T,{key:1,content:r.$t(e.labelTooltip),placement:"right"},{default:f(()=>[j(n,{class:"label-tooltip"},{default:f(()=>[j(c(re))]),_:1})]),_:1},8,["content"])):x("",!0)]),error:f(({error:e})=>[v(r.$slots,"row_item_error_"+t,{error:e},()=>[_("div",me,[j(c(ae)),_("span",ue,$(r.$t(`${e}`)),1)])])]),default:f(()=>[v(r.$slots,"row_item_"+t,{data:c(U)},()=>[(u(),d(k(c(W)(e.nameComponent)),p({ref_for:!0,ref:o=>c(_e)(o,t,e.nameComponent),id:t,formatter:e.formatter,parser:e.parser,valueKey:e.valueKey,className:`${e.classComponent||""}`,modelValue:c(U)[t],"onUpdate:modelValue":e=>c(U)[t]=e,disabled:e.disabled??!1,value:c(U)[t],options:e.options||[],type:c(q)(e.type,t),filterable:e.filterable||!1,rows:e.rows,allowCreate:e.allowCreate||!1,placeholder:e.placeholder?r.$t(`${e.placeholder}`):" ",placeholderCountry:e.placeholderCountry?r.$t(`${e.placeholderCountry}`):"",autocomplete:e.autocomplete,multiple:e.multiple||!1,props:e.props,remote:e.remote||!1,"remote-method":e.remoteMethod,loading:e.loading||!1,clearable:e.clearable||!1,"value-format":e.valueFormat,isRadioButton:e.isRadioButton||!1,"fit-input-width":e.fitInputWidth||!1,collapseTags:e.collapseTags||!1,"max-collapse-tags":e.maxCollapseTags||1,treeProps:e.treeProps,keyComponent:t,defaultValue:e.defaultValue,"show-password":e.showPassword,size:c(M)(e.size),hiddenLabel:e.hiddenLabel||!1,"is-money-input":e.isMoneyInput||s.isMoneyInput,label:e.label},{ref_for:!0},e.componentProps||{},{onClear:e=>a.onClear(e,t),onUpdateValueProp:o=>c(he)(o,t,e.nameComponent),"onUpdate:isValidPhoneNumber":l[0]||(l[0]=e=>z.value=e),onChange:e=>a.onChange(e,t),onMouseover:e=>a.mouseover(e,t),onMouseout:e=>a.mouseout(e,t),onFocus:e=>a.onFocus(e,t),onBlur:e=>a.onBlur(e,t),onInput:o=>c(se)(o,t,e.type),onKeydown:F(S(e=>a.keyDownEnter(e,t),["prevent"]),["enter","native"]),onKeyup:F(S(e=>c(le)(e,t),["prevent"]),["enter","native"])},w(e.componentEvents||{})),E({default:f(()=>[v(r.$slots,"body_row_item_"+t,{data:c(U)})]),_:2},[[c(i).Select,c(i).SelectOther].includes(e.nameComponent)&&e.header?{name:"header",fn:f(()=>[v(r.$slots,"header_item_"+t,{data:c(U)},()=>[P($(e.header),1)])]),key:"0"}:e.header?{name:"header",fn:f(()=>[v(r.$slots,"header_item_"+t,{data:c(U)})]),key:"1"}:void 0,r.$slots["suffix_item_"+t]?{name:"suffix",fn:f(()=>[v(r.$slots,"suffix_item_"+t,{data:c(U)})]),key:"2"}:void 0,r.$slots["prefix_item_"+t]?{name:"prefix",fn:f(()=>[v(r.$slots,"prefix_item_"+t,{data:c(U)})]),key:"3"}:void 0,r.$slots["prepend_item_"+t]?{name:"prepend",fn:f(()=>[v(r.$slots,"prepend_item_"+t,{data:c(U)})]),key:"4"}:void 0,r.$slots["append_item_"+t]?{name:"append",fn:f(()=>[v(r.$slots,"append_item_"+t,{data:c(U)})]),key:"5"}:void 0,r.$slots["option_default_item_"+t]?{name:"option_default",fn:f(({data:e})=>[v(r.$slots,"option_default_item_"+t,{data:e})]),key:"6"}:void 0]),1040,["id","formatter","parser","valueKey","className","modelValue","onUpdate:modelValue","disabled","value","options","type","filterable","rows","allowCreate","placeholder","placeholderCountry","autocomplete","multiple","props","remote","remote-method","loading","clearable","value-format","isRadioButton","fit-input-width","collapseTags","max-collapse-tags","treeProps","keyComponent","defaultValue","show-password","size","hiddenLabel","is-money-input","label","onClear","onUpdateValueProp","onChange","onMouseover","onMouseout","onFocus","onBlur","onInput","onKeydown","onKeyup"]))]),!0!==c(Z)[String(t)]?(u(),y(g,{key:0},[!1===c(Z)[String(t)]&&e.successText?v(r.$slots,"row_item_success_"+t,{},()=>[_("div",de,[j(c(oe)),_("span",null,$(r.$t(`${e.successText}`)),1)])],void 0,0):e.infoText?v(r.$slots,"row_item_info_"+t,{},()=>[_("div",pe,[j(n,null,{default:f(()=>[j(c(re))]),_:1}),_("span",null,$(r.$t(`${e.infoText}`)),1)])],void 0,1):x("",!0)],64)):x("",!0),j(I,{suggestions:c(m)[t]??[],"is-valid":c(G)[t],show:e.showSuggestionEmail,onSelect:e=>c(ve)(e,t)},null,8,["suggestions","is-valid","show","onSelect"]),v(r.$slots,"bottom_row_item_"+t),"bottom"===a.labelPosition?v(r.$slots,"row_item_label_bottom_"+t,{},()=>[_("div",ce,$(r.$t(`${e.label}`)),1),e.required?(u(),y("span",fe,"*")):x("",!0)],void 0,1):x("",!0)]),_:2},1040,["class","prop"]))),128))]),_:2},1032,["class"])),v(r.$slots,"bottom_row_group_"+t)]))),128))],2)]),v(r.$slots,"footer",{},()=>[j(V,null,{default:f(()=>[j(O,{onClick:c(J),color:"primary"},{default:f(()=>[P($(a.textBtnSave),1)]),_:1},8,["onClick"]),j(O,{color:"primary",plain:""},{default:f(()=>[P($(a.textBtnClose),1)]),_:1})]),_:1})])]),_:3},16,["model","rules","labelPosition","onValidate","class","scroll-to-error","validate-on-rule-change","label-width"])}}});export{le as C,ve as _};
1
+ import{ElForm as e,ElFormItem as t,ElIcon as o}from"element-plus/es";import{reactive as a,ref as r,computed as l,watch as s,nextTick as n,toRaw as i,defineComponent as m,openBlock as u,createBlock as d,mergeProps as p,unref as c,withCtx as f,renderSlot as v,createElementVNode as _,normalizeClass as b,createElementBlock as y,Fragment as g,renderList as C,resolveDynamicComponent as k,withKeys as F,withModifiers as S,toHandlers as w,createSlots as E,createTextVNode as P,toDisplayString as $,createVNode as j,createCommentVNode as x}from"vue";import{_ as O}from"./EaeraButton-BPVKRBOn.mjs";import{_ as I}from"./EaeraEmailSuggestion-DyhqpIEZ.mjs";import{_ as T}from"./EaeraTooltip-BIlULHv4.mjs";import{e as V,t as N}from"./vendor-email-misspelled-0hsXkSSK.mjs";import{_ as B}from"./EaeraCascadeSelect-CoSX_ACV.mjs";import{_ as R}from"./EaeraCheckbox-C_faN0pV.mjs";import{_ as D}from"./EaeraCheckBoxList-ZKnHu1T9.mjs";import{_ as z}from"./EaeraDatePicker-Bwt5r5gk.mjs";import{_ as G}from"./EaeraDateTimePicker-Hv_ma8qU.mjs";import{_ as U}from"./EaeraRadio-Dz6nSJu0.mjs";import{_ as L}from"./EaeraSelect-BxZRZofe.mjs";import{_ as A}from"./EaeraSwitch-BI3E0zPf.mjs";import{_ as K}from"./EaeraTimePicker-B4e4R3pD.mjs";import{_ as M}from"./EaeraTree-CwZK7lqG.mjs";import{_ as q}from"./EaeraTreeSelect-mLNgcoOv.mjs";import{_ as W}from"./EaeraAutoComplete-DLjCHpAH.mjs";import{_ as X}from"./EaeraInputTag-BIYG3daA.mjs";import{_ as H}from"./EaeraCountryField-BAUKKPoc.mjs";import{_ as J}from"./EaeraInputPhone-BAfQ9DpC.mjs";import{_ as Q}from"./EaeraInputPhoneNumber-CDZnyaLx.mjs";import{_ as Y}from"./EaeraSelectGroup-DxK2CWYf.mjs";import{_ as Z}from"./EaeraSelectOther-BICVMrjI.mjs";import{_ as ee}from"./EaeraInput-CkbcAxy0.mjs";import{_ as te}from"./EaeraInputNumber-COC6rdNn.mjs";import{Check as oe,TriangleAlert as ae}from"@lucide/vue";import{InfoFilled as re}from"@element-plus/icons-vue";var le=(e=>(e.Select="select",e.Input="input",e.InputNumber="inputNumber",e.Radio="radio",e.Checkbox="checkbox",e.InputPhoneNumber="inputPhoneNumber",e.InputPhone="inputPhone",e.DateTimePicker="dateTimePicker",e.SelectCascade="selectCascade",e.TreeSelect="treeSelect",e.Tree="tree",e.SelectOther="selectOther",e.SelectCountry="selectCountry",e.SelectGroup="selectGroup",e.CheckBoxList="checkboxList",e.TimePicker="timePicker",e.Switch="switch",e.DatePicker="datePicker",e.InputTag="inputTag",e.AutoComplete="autoComplete",e))(le||{});const se={select:L,selectOther:Z,selectCountry:H,selectGroup:Y,input:ee,inputNumber:te,radio:U,checkbox:R,inputPhoneNumber:Q,inputPhone:J,dateTimePicker:G,selectCascade:B,treeSelect:q,tree:M,checkboxList:D,timePicker:K,switch:A,datePicker:z,inputTag:X,autoComplete:W},ne=(e,t)=>{const o=V({domains:N}),m=a({}),u=r(!1),d=r(),p=r({}),c=r("idle"),f=r(!0),v=a({}),_=a({}),b=a({}),y=a({}),g=e.formData||{},C=a(g);Object.assign(C,(()=>{const t={},o=e.formSchema;for(const e in o)void 0!==o[e].defaultValue&&(t[e]=o[e].defaultValue);return t})(),g);const k=r({}),F=l(()=>{const t=Object.create({});return Object.entries(e.formSchema).sort(([,e],[,t])=>(e.order??0)-(t.order??0)).forEach(([e,o])=>{const a=o.group||e;t[a]||(t[a]={}),t[a][e]=o}),t}),S=l(()=>[e.className,e.prefixLabel&&"is-prefix-label"]),w=l(()=>{const t=new Set(["switch","radio"]),o=e.formSchema;return d.value?.fields.map(e=>({label:e.label,key:e.prop,component:o[e.prop]?.nameComponent,state:e.validateState||"idle"})).filter(e=>!t.has(e.component))}),E=e=>{const t={};for(const o of e)Array.isArray(o.value)?t[o.key]=t[o.key]?[...t[o.key],...o.value]:[...o.value]:t[o.key]=t[o.key]?[...t[o.key],o.value]:[o.value];return Object.entries(t).map(([e,t])=>({key:e,value:t}))},P=e=>{if(!e.condition)return!0;const t=E(e.condition);return"or"===e.typeCondition?t.some(e=>e.value.includes(C[e.key])):t.every(e=>e.value.includes(C[e.key]))},$=e=>{const t=[];for(const o in e)if(Object.hasOwn(e,o)){const a=e[o];a.condition&&!j(a)&&t.push(o)}return t},j=e=>{const t=E(e.condition);return"or"===e.typeCondition?t.some(e=>e.value.includes(C[e.key])):t.every(e=>e.value.includes(C[e.key]))},x=(e,t)=>{e?(u.value=!1,c.value="valid"):(u.value=!0,c.value="invalid")},O=async e=>{d.value&&(c.value="validating",await d.value.validateField(e,x))},I=e=>e&&"object"==typeof e?{...e}:e,T=(e=[])=>e.map(I),B=e=>{const t=[];for(const o in e){if(!Object.hasOwn(e,o))continue;const a=Array.isArray(e[o])?e[o]:[];t.push(...a)}return t},R=()=>{const t=e.formSchema,o={};for(const e in t)if(Object.hasOwn(t,e)){const a=t[e],r=a?.rule||{};for(const e in r)Object.hasOwn(r,e)&&(o[e]=T(r[e]||[]));const l="inputPhoneNumber"===a?.nameComponent,s=b[e]||[];if(!l||0===s.length)continue;const n=B(r),i=o[e]||[];if(0===n.length)continue;o[e]=[...i,...T(s)]}k.value=o};R();return s(()=>e.formData,e=>Object.assign(C,e||{}),{deep:!0}),s(C,t=>{e.formData&&e.formData!==C&&Object.assign(e.formData,t)},{deep:!0}),s(()=>e.formSchema,R),s(w,e=>{e&&(e.some(e=>"validating"===e.state)?c.value="validating":e.some(e=>"error"===e.state)?c.value="invalid":e.every(e=>"success"===e.state)?c.value="valid":c.value="idle")}),{Component:le,suggestionEmails:m,isErrorValidateForm:u,ruleFormRef:d,rowItemComponentRefs:p,rules:k,formState:c,isValidPhoneNumber:f,isValidEmails:v,ruleForm:C,sortedGroupFormSchema:F,computedClass:S,fieldsState:w,getSizeFormItems:t=>t?.length>0?t:e.sizeFormItems,getTypeComponent:(e,t)=>"password"===e?_[t]?"text":"password":e,getNameComponent:(e="")=>se[e]??null,getFieldsByCondition:e=>{if(0===Object.keys(e).length)return{};const t=Object.create({});for(const o in e)if(Object.hasOwn(e,o)){const a=e[o];P(a)&&!a.hidden&&(t[o]=a)}return t},submitForm:()=>{d.value&&(c.value="submitting",d.value.validate((e,o)=>{if(e&&f.value){u.value=!1,c.value="submitted";const e=structuredClone(i(C));for(const t of(()=>{let e=[];for(const t in F.value)Object.hasOwn(F.value,t)&&(e=e.concat($(F.value[t])));return e})())delete e[t];t("submit",e)}else u.value=!0,c.value="invalid",f.value?console.log("error submit!",o):console.log("error submit!","Phone number is invalid")}))},validateForm:async()=>{d.value&&(c.value="validating",await d.value.validate(x))},validateField:O,onValidate:(t,o,a)=>{y[t]=!o;const r=e.formSchema;"email"===r[t]?.type&&(v[t]=o)},fieldErrors:y,resetForm:()=>{d.value&&(d.value.resetFields(),Object.keys(y).forEach(e=>delete y[e]),Object.values(p.value).forEach(e=>{e?.resetField?.()}))},resetFields:e=>{d.value&&(d.value.resetFields(e),e.forEach(e=>{delete y[e];const t=p.value[e];t?.resetField?.()}))},handleKeyUpEnter:(t,o)=>{const a=t.target;"textarea"===a?.tagName.toLowerCase()&&(C[o]=C[o]+"\n"),e.keyUpEnter(t,o)},onInputComponent:(t,a,r)=>{"email"===r&&(m[a]=o(C[a])?.slice(0,3)??[]),e.onInput(t,a)},onClickSuggestion:(e,t)=>{C[t]=C[t].replace(/@.*/,`@${e}`),m[t]=[]},onUpdateValueProp:(e,t,o)=>{C[t]=e;"inputPhoneNumber"===o&&(""===e||null==e)&&n(()=>{O(String(t))})},registerComponentRef:(e,t,o)=>{if(""===t||null==t)return;const a=String(t);if(!e)return;if(p.value[a]===e)return;if(p.value[a]=e,"inputPhoneNumber"!==o)return;if((b[a]||[]).length>0)return;((e,t)=>{if(""===e||null==e||!t)return;const o=String(e),a=Array.isArray(t)?t:[t];b[o]=T(a),R()})(a,e.defaultRule)}}},ie={key:0,class:"required-field"},me={class:"custom-form-item__error"},ue={class:"text-error-validate"},de={class:"custom-form-item__success"},pe={class:"custom-form-item__info"},ce={class:"el-form-item__label-bottom"},fe={key:0},ve=m({__name:"EaeraForm",props:{className:{},classNameParentGroup:{default:""},labelPosition:{default:"top"},labelWidth:{default:"auto"},textBtnSave:{default:"Save"},textBtnClose:{default:"Close"},scrollToError:{type:Boolean,default:!0},formData:{default:()=>({})},formSchema:{default:()=>({})},formGroupRenderOptions:{default:()=>({})},onChange:{type:Function,default:()=>{}},mouseover:{type:Function,default:()=>{}},onBlur:{type:Function,default:()=>{}},onFocus:{type:Function,default:()=>{}},mouseout:{type:Function,default:()=>{}},onInput:{type:Function,default:()=>{}},keyDownEnter:{type:Function,default:()=>{}},keyUpEnter:{type:Function,default:()=>{}},onClear:{type:Function,default:()=>{}},validateOnRuleChange:{type:Boolean,default:!0},sizeFormItems:{default:"md"},labelSize:{default:"md"},prefixLabel:{type:Boolean},isMoneyInput:{type:Boolean}},emits:["submit"],setup(a,{expose:r,emit:l}){const s=a,n=l,{Component:i,suggestionEmails:m,isErrorValidateForm:V,ruleFormRef:N,rowItemComponentRefs:B,rules:R,formState:D,isValidPhoneNumber:z,isValidEmails:G,ruleForm:U,sortedGroupFormSchema:L,computedClass:A,fieldsState:K,getSizeFormItems:M,getTypeComponent:q,getNameComponent:W,getFieldsByCondition:X,submitForm:H,validateForm:J,validateField:Q,onValidate:Y,fieldErrors:Z,resetForm:ee,resetFields:te,handleKeyUpEnter:le,onInputComponent:se,onClickSuggestion:ve,onUpdateValueProp:he,registerComponentRef:_e}=ne(s,n);return r({submitForm:H,resetForm:ee,resetFields:te,validateForm:J,validateField:Q,isErrorValidateForm:V,formState:D,fieldsState:K,rowItemComponentRefs:B}),(r,l)=>{const n=o,V=t,B=e;return u(),d(B,p({ref_key:"ruleFormRef",ref:N,model:c(U),rules:c(R),labelPosition:"bottom"===s.labelPosition?void 0:s.labelPosition,onValidate:c(Y),class:["custom-form",c(A)],"scroll-to-error":a.scrollToError,"validate-on-rule-change":a.validateOnRuleChange,"label-width":"bottom"===s.labelPosition?0:s.labelWidth||"auto"},r.$attrs),{default:f(()=>[v(r.$slots,"header"),v(r.$slots,"body",{},()=>[_("div",{class:b(["custom-form__parent-group",s.classNameParentGroup])},[(u(!0),y(g,null,C(c(L),(e,t)=>(u(),y("div",{key:t},[v(r.$slots,"top_row_group_"+t),(u(),d(k(a.formGroupRenderOptions?.[t]?.tag??"div"),{class:b(a.formGroupRenderOptions?.[t]?.class??"form-group-default")},{default:f(()=>[(u(!0),y(g,null,C(c(X)(e),(e,t)=>(u(),d(V,p({key:t,class:["custom-form-item",[e.classFormItem,e.nameComponent&&`custom-form-item__${e.nameComponent}`,"bottom"===a.labelPosition&&"no-label",e.disabled&&"is-disabled",s.labelSize&&`label-size--${s.labelSize}`]],prop:t},{ref_for:!0},e.formItemProps||{}),{label:f(()=>[_("span",null,$(r.$t(e.label)),1),e.rule?.required?(u(),y("span",ie,"*")):x("",!0),e.labelTooltip?(u(),d(T,{key:1,content:r.$t(e.labelTooltip),placement:"right"},{default:f(()=>[j(n,{class:"label-tooltip"},{default:f(()=>[j(c(re))]),_:1})]),_:1},8,["content"])):x("",!0)]),error:f(({error:e})=>[v(r.$slots,"row_item_error_"+t,{error:e},()=>[_("div",me,[j(c(ae)),_("span",ue,$(r.$t(`${e}`)),1)])])]),default:f(()=>[v(r.$slots,"row_item_"+t,{data:c(U)},()=>[(u(),d(k(c(W)(e.nameComponent)),p({ref_for:!0,ref:o=>c(_e)(o,t,e.nameComponent),id:t,formatter:e.formatter,parser:e.parser,valueKey:e.valueKey,className:`${e.classComponent||""}`,modelValue:c(U)[t],"onUpdate:modelValue":e=>c(U)[t]=e,disabled:e.disabled??!1,value:c(U)[t],options:e.options||[],type:c(q)(e.type,t),filterable:e.filterable||!1,rows:e.rows,allowCreate:e.allowCreate||!1,placeholder:e.placeholder?r.$t(`${e.placeholder}`):" ",placeholderCountry:e.placeholderCountry?r.$t(`${e.placeholderCountry}`):"",autocomplete:e.autocomplete,multiple:e.multiple||!1,props:e.props,remote:e.remote||!1,"remote-method":e.remoteMethod,loading:e.loading||!1,clearable:e.clearable||!1,"value-format":e.valueFormat,isRadioButton:e.isRadioButton||!1,"fit-input-width":e.fitInputWidth||!1,collapseTags:e.collapseTags||!1,"max-collapse-tags":e.maxCollapseTags||1,treeProps:e.treeProps,keyComponent:t,defaultValue:e.defaultValue,"show-password":e.showPassword,size:c(M)(e.size),hiddenLabel:e.hiddenLabel||!1,"is-money-input":e.isMoneyInput||s.isMoneyInput,label:e.label},{ref_for:!0},e.componentProps||{},{onClear:e=>a.onClear(e,t),onUpdateValueProp:o=>c(he)(o,t,e.nameComponent),"onUpdate:isValidPhoneNumber":l[0]||(l[0]=e=>z.value=e),onChange:e=>a.onChange(e,t),onMouseover:e=>a.mouseover(e,t),onMouseout:e=>a.mouseout(e,t),onFocus:e=>a.onFocus(e,t),onBlur:e=>a.onBlur(e,t),onInput:o=>c(se)(o,t,e.type),onKeydown:F(S(e=>a.keyDownEnter(e,t),["prevent"]),["enter","native"]),onKeyup:F(S(e=>c(le)(e,t),["prevent"]),["enter","native"])},w(e.componentEvents||{})),E({default:f(()=>[v(r.$slots,"body_row_item_"+t,{data:c(U)})]),_:2},[[c(i).Select,c(i).SelectOther].includes(e.nameComponent)&&e.header?{name:"header",fn:f(()=>[v(r.$slots,"header_item_"+t,{data:c(U)},()=>[P($(e.header),1)])]),key:"0"}:e.header?{name:"header",fn:f(()=>[v(r.$slots,"header_item_"+t,{data:c(U)})]),key:"1"}:void 0,r.$slots["suffix_item_"+t]?{name:"suffix",fn:f(()=>[v(r.$slots,"suffix_item_"+t,{data:c(U)})]),key:"2"}:void 0,r.$slots["prefix_item_"+t]?{name:"prefix",fn:f(()=>[v(r.$slots,"prefix_item_"+t,{data:c(U)})]),key:"3"}:void 0,r.$slots["prepend_item_"+t]?{name:"prepend",fn:f(()=>[v(r.$slots,"prepend_item_"+t,{data:c(U)})]),key:"4"}:void 0,r.$slots["append_item_"+t]?{name:"append",fn:f(()=>[v(r.$slots,"append_item_"+t,{data:c(U)})]),key:"5"}:void 0,r.$slots["option_default_item_"+t]?{name:"option_default",fn:f(({data:e})=>[v(r.$slots,"option_default_item_"+t,{data:e})]),key:"6"}:void 0]),1040,["id","formatter","parser","valueKey","className","modelValue","onUpdate:modelValue","disabled","value","options","type","filterable","rows","allowCreate","placeholder","placeholderCountry","autocomplete","multiple","props","remote","remote-method","loading","clearable","value-format","isRadioButton","fit-input-width","collapseTags","max-collapse-tags","treeProps","keyComponent","defaultValue","show-password","size","hiddenLabel","is-money-input","label","onClear","onUpdateValueProp","onChange","onMouseover","onMouseout","onFocus","onBlur","onInput","onKeydown","onKeyup"]))]),!0!==c(Z)[String(t)]?(u(),y(g,{key:0},[!1===c(Z)[String(t)]&&e.successText?v(r.$slots,"row_item_success_"+t,{},()=>[_("div",de,[j(c(oe)),_("span",null,$(r.$t(`${e.successText}`)),1)])],void 0,0):e.infoText?v(r.$slots,"row_item_info_"+t,{},()=>[_("div",pe,[j(n,null,{default:f(()=>[j(c(re))]),_:1}),_("span",null,$(r.$t(`${e.infoText}`)),1)])],void 0,1):x("",!0)],64)):x("",!0),j(I,{suggestions:c(m)[t]??[],"is-valid":c(G)[t],show:e.showSuggestionEmail,onSelect:e=>c(ve)(e,t)},null,8,["suggestions","is-valid","show","onSelect"]),v(r.$slots,"bottom_row_item_"+t),"bottom"===a.labelPosition?v(r.$slots,"row_item_label_bottom_"+t,{},()=>[_("div",ce,$(r.$t(`${e.label}`)),1),e.required?(u(),y("span",fe,"*")):x("",!0)],void 0,1):x("",!0)]),_:2},1040,["class","prop"]))),128))]),_:2},1032,["class"])),v(r.$slots,"bottom_row_group_"+t)]))),128))],2)]),v(r.$slots,"footer",{},()=>[j(V,null,{default:f(()=>[j(O,{onClick:c(J),color:"primary"},{default:f(()=>[P($(a.textBtnSave),1)]),_:1},8,["onClick"]),j(O,{color:"primary",plain:""},{default:f(()=>[P($(a.textBtnClose),1)]),_:1})]),_:1})])]),_:3},16,["model","rules","labelPosition","onValidate","class","scroll-to-error","validate-on-rule-change","label-width"])}}});export{le as C,ve as _};
@@ -1 +1 @@
1
- import{ElPopconfirm as o}from"element-plus/es";import{defineComponent as e,useSlots as t,computed as n,openBlock as r,createBlock as c,mergeProps as i,createSlots as a,withCtx as l,renderSlot as s,createVNode as p,createTextVNode as f,toDisplayString as m,normalizeProps as u,guardReactiveProps as d}from"vue";import{_ as w}from"./EaeraButton-DGfjUoa6.mjs";const C=e({__name:"EaeraPopconfirm",props:{title:{default:"Are you sure?"},confirmButtonText:{default:"Confirm"},cancelButtonText:{default:"Cancel"},icon:{type:[String,Function],default:"Warning"},iconColor:{default:"#f90"},teleported:{type:Boolean,default:!0},width:{default:"auto"},popperOptions:{default:{modifiers:[{name:"offset",options:{offset:[0,4]}}]}},showArrow:{type:Boolean,default:!1}},emits:["confirm","cancel"],setup(e,{emit:C}){const y=t();n(()=>Object.keys(y));const B=C,_=()=>{B("confirm")},k=()=>{B("cancel")};return(t,n)=>{const C=o;return r(),c(C,i(t.$attrs,{class:"custom-popconfirm",title:e.title,icon:"function"==typeof e.icon?e.icon():e.icon,"icon-color":e.iconColor,teleported:e.teleported,width:e.width,"popper-options":e.popperOptions,"popper-class":"custom-popper",onConfirm:_,onCancel:k,"show-arrow":e.showArrow}),a({reference:l(()=>[s(t.$slots,"reference")]),actions:l(({confirm:o,cancel:n})=>[s(t.$slots,"actions",{confirm:o,cancel:n},()=>[p(w,{size:"sm",color:"contrast",plain:"",onClick:n},{default:l(()=>[f(m(e.cancelButtonText),1)]),_:1},8,["onClick"]),p(w,{size:"sm",color:"primary",onClick:o},{default:l(()=>[f(m(e.confirmButtonText),1)]),_:1},8,["onClick"])])]),_:2},["reference"!==name&&"actions"!==name?{name:name,fn:l(o=>[s(t.$slots,name,u(d(o||{})))]),key:"0"}:void 0]),1040,["title","icon","icon-color","teleported","width","popper-options","show-arrow"])}}});export{C as _};
1
+ import{ElPopconfirm as o}from"element-plus/es";import{defineComponent as e,useSlots as t,computed as n,openBlock as r,createBlock as c,mergeProps as i,createSlots as a,withCtx as l,renderSlot as s,createVNode as p,createTextVNode as f,toDisplayString as m,normalizeProps as u,guardReactiveProps as d}from"vue";import{_ as w}from"./EaeraButton-BPVKRBOn.mjs";const C=e({__name:"EaeraPopconfirm",props:{title:{default:"Are you sure?"},confirmButtonText:{default:"Confirm"},cancelButtonText:{default:"Cancel"},icon:{type:[String,Function],default:"Warning"},iconColor:{default:"#f90"},teleported:{type:Boolean,default:!0},width:{default:"auto"},popperOptions:{default:{modifiers:[{name:"offset",options:{offset:[0,4]}}]}},showArrow:{type:Boolean,default:!1}},emits:["confirm","cancel"],setup(e,{emit:C}){const y=t();n(()=>Object.keys(y));const B=C,_=()=>{B("confirm")},k=()=>{B("cancel")};return(t,n)=>{const C=o;return r(),c(C,i(t.$attrs,{class:"custom-popconfirm",title:e.title,icon:"function"==typeof e.icon?e.icon():e.icon,"icon-color":e.iconColor,teleported:e.teleported,width:e.width,"popper-options":e.popperOptions,"popper-class":"custom-popper",onConfirm:_,onCancel:k,"show-arrow":e.showArrow}),a({reference:l(()=>[s(t.$slots,"reference")]),actions:l(({confirm:o,cancel:n})=>[s(t.$slots,"actions",{confirm:o,cancel:n},()=>[p(w,{size:"sm",color:"contrast",plain:"",onClick:n},{default:l(()=>[f(m(e.cancelButtonText),1)]),_:1},8,["onClick"]),p(w,{size:"sm",color:"primary",onClick:o},{default:l(()=>[f(m(e.confirmButtonText),1)]),_:1},8,["onClick"])])]),_:2},["reference"!==name&&"actions"!==name?{name:name,fn:l(o=>[s(t.$slots,name,u(d(o||{})))]),key:"0"}:void 0]),1040,["title","icon","icon-color","teleported","width","popper-options","show-arrow"])}}});export{C 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-quCx0w35.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-Hv_ma8qU.mjs";import{_ as D}from"./EaeraInput-CkbcAxy0.mjs";import{_ as H}from"./EaeraSelect-BxZRZofe.mjs";import{_ as R}from"./EaeraDatePicker-Bwt5r5gk.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-BPVKRBOn.mjs";import{_ as K}from"./EaeraEmpty-CnGp7eaH.mjs";import{_ as O}from"./EaeraDataCard-quCx0w35.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{ElUpload as e}from"element-plus/es";import{defineComponent as l,useSlots as i,computed as t,ref as a,openBlock as s,createElementBlock as o,createVNode as d,mergeProps as n,createSlots as p,withCtx as f,renderSlot as u,Fragment as r,createElementVNode as c,withModifiers as m,unref as _,normalizeClass as y,createBlock as b,toDisplayString as g,normalizeProps as v,guardReactiveProps as k,createTextVNode as z,renderList as $}from"vue";import{Trash2 as S,Image as x,FileText as w,ImageUp as C,Upload as j}from"@lucide/vue";import{_ as B}from"./EaeraButton-DGfjUoa6.mjs";const R={class:"custom-upload-default"},L={class:"upload-field__icon"},U={class:"upload-field__content"},D={class:"upload-field__title"},E={style:{display:"flex","flex-direction":"column","align-items":"flex-start",gap:"4px"}},M={class:"upload-field__tip"},O=["src"],F={class:"el-upload-list__item-actions"},I=["onClick"],K={class:"upload-file-item__name"},W={class:"upload-file-item__size"},q=l({__name:"EaeraUploadDefault",props:{type:{default:"file"},title:{default:"Upload"},description:{},fileStyle:{default:"block"},buttonSize:{default:"md"},buttonLabel:{default:"Upload"},disabled:{type:Boolean,default:!1}},setup(l,{expose:q}){const A=i(),G=t(()=>Object.keys(A).filter(e=>!["default","icon","file","trigger"].includes(e))),H=new Set(["jpg","jpeg","png","gif","webp","svg","bmp","ico","tiff","avif"]),J=e=>{if(e.raw?.type)return e.raw.type.startsWith("image/");const l=e.name.split(".").pop()?.toLowerCase()??"";return H.has(l)},N=a();return q({uploadRef:N}),(i,t)=>{const a=e;return s(),o("div",R,[d(a,n({ref_key:"uploadRef",ref:N,disabled:l.disabled},i.$attrs),p({file:f(({file:e})=>[u(i.$slots,"file",{file:e},()=>{return["image"===l.type?(s(),o(r,{key:0},[c("img",{class:"el-upload-list__item-thumbnail",src:e.url,alt:""},null,8,O),c("span",F,[c("span",{class:"el-upload-list__item-delete",onClick:m(l=>N.value?.handleRemove(e),["stop"])},[d(_(S),{size:16})],8,I)])],64)):(s(),o("div",{key:1,class:y(["upload-file-item",l.fileStyle])},[c("div",{class:y(["upload-file-item__icon",[l.fileStyle,J(e)?"image":"file"]])},[J(e)?(s(),b(_(x),{key:0,size:"compact"===l.fileStyle?20:24},null,8,["size"])):(s(),b(_(w),{key:1,size:"compact"===l.fileStyle?20:24},null,8,["size"]))],2),c("div",{class:y(["upload-file-item__info",l.fileStyle])},[c("span",K,g(e.name),1),c("span",W,g((i=e.size,i?i<1048576?`${Math.round(i/1024)}KB`:`${(i/1048576).toFixed(1)}MB`:"")),1)],2),d(B,{color:"danger",size:"sm",ghost:"",isIconOnly:"",disabled:l.disabled,onClick:m(l=>N.value?.handleRemove(e),["stop"])},{default:f(()=>[d(_(S),{size:16})]),_:1},8,["disabled","onClick"])],2))];var i})]),_:2},["image"===l.type?{name:"default",fn:f(e=>[u(i.$slots,"default",v(k(e)),()=>[u(i.$slots,"icon",{},()=>[d(_(C))])])]),key:"0"}:"file"===l.type?{name:"default",fn:f(e=>[u(i.$slots,"default",v(k(e)),()=>[c("div",L,[u(i.$slots,"icon",{},()=>[d(_(j),{size:20})])]),c("div",U,[c("p",D,g(l.title),1),t[0]||(t[0]=c("p",{class:"upload-field__description"},"Drop file here or click to upload",-1))])])]),key:"1"}:"button"===l.type?{name:"trigger",fn:f(()=>[u(i.$slots,"trigger",{},()=>[c("div",E,[d(B,{size:l.buttonSize,plain:"",color:"contrast",disabled:l.disabled},{prefix:f(()=>[d(_(j))]),default:f(()=>[z(" "+g(l.buttonLabel),1)]),_:1},8,["size","disabled"])])])]),key:"2"}:void 0,$(G.value,e=>({name:e,fn:f(l=>[u(i.$slots,e,v(k(l)))])})),l.description?{name:"tip",fn:f(()=>[c("p",M,g(l.description),1)]),key:"3"}:void 0]),1040,["disabled"])])}}});export{q as _};
1
+ import{ElUpload as e}from"element-plus/es";import{defineComponent as l,useSlots as i,computed as t,ref as a,openBlock as s,createElementBlock as o,createVNode as d,mergeProps as n,createSlots as p,withCtx as f,renderSlot as u,Fragment as r,createElementVNode as c,withModifiers as m,unref as _,normalizeClass as y,createBlock as b,toDisplayString as g,normalizeProps as v,guardReactiveProps as k,createTextVNode as z,renderList as $}from"vue";import{Trash2 as S,Image as x,FileText as w,ImageUp as C,Upload as j}from"@lucide/vue";import{_ as B}from"./EaeraButton-BPVKRBOn.mjs";const R={class:"custom-upload-default"},L={class:"upload-field__icon"},U={class:"upload-field__content"},D={class:"upload-field__title"},E={style:{display:"flex","flex-direction":"column","align-items":"flex-start",gap:"4px"}},M={class:"upload-field__tip"},O=["src"],F={class:"el-upload-list__item-actions"},I=["onClick"],K={class:"upload-file-item__name"},W={class:"upload-file-item__size"},q=l({__name:"EaeraUploadDefault",props:{type:{default:"file"},title:{default:"Upload"},description:{},fileStyle:{default:"block"},buttonSize:{default:"md"},buttonLabel:{default:"Upload"},disabled:{type:Boolean,default:!1}},setup(l,{expose:q}){const A=i(),G=t(()=>Object.keys(A).filter(e=>!["default","icon","file","trigger"].includes(e))),H=new Set(["jpg","jpeg","png","gif","webp","svg","bmp","ico","tiff","avif"]),J=e=>{if(e.raw?.type)return e.raw.type.startsWith("image/");const l=e.name.split(".").pop()?.toLowerCase()??"";return H.has(l)},N=a();return q({uploadRef:N}),(i,t)=>{const a=e;return s(),o("div",R,[d(a,n({ref_key:"uploadRef",ref:N,disabled:l.disabled},i.$attrs),p({file:f(({file:e})=>[u(i.$slots,"file",{file:e},()=>{return["image"===l.type?(s(),o(r,{key:0},[c("img",{class:"el-upload-list__item-thumbnail",src:e.url,alt:""},null,8,O),c("span",F,[c("span",{class:"el-upload-list__item-delete",onClick:m(l=>N.value?.handleRemove(e),["stop"])},[d(_(S),{size:16})],8,I)])],64)):(s(),o("div",{key:1,class:y(["upload-file-item",l.fileStyle])},[c("div",{class:y(["upload-file-item__icon",[l.fileStyle,J(e)?"image":"file"]])},[J(e)?(s(),b(_(x),{key:0,size:"compact"===l.fileStyle?20:24},null,8,["size"])):(s(),b(_(w),{key:1,size:"compact"===l.fileStyle?20:24},null,8,["size"]))],2),c("div",{class:y(["upload-file-item__info",l.fileStyle])},[c("span",K,g(e.name),1),c("span",W,g((i=e.size,i?i<1048576?`${Math.round(i/1024)}KB`:`${(i/1048576).toFixed(1)}MB`:"")),1)],2),d(B,{color:"danger",size:"sm",ghost:"",isIconOnly:"",disabled:l.disabled,onClick:m(l=>N.value?.handleRemove(e),["stop"])},{default:f(()=>[d(_(S),{size:16})]),_:1},8,["disabled","onClick"])],2))];var i})]),_:2},["image"===l.type?{name:"default",fn:f(e=>[u(i.$slots,"default",v(k(e)),()=>[u(i.$slots,"icon",{},()=>[d(_(C))])])]),key:"0"}:"file"===l.type?{name:"default",fn:f(e=>[u(i.$slots,"default",v(k(e)),()=>[c("div",L,[u(i.$slots,"icon",{},()=>[d(_(j),{size:20})])]),c("div",U,[c("p",D,g(l.title),1),t[0]||(t[0]=c("p",{class:"upload-field__description"},"Drop file here or click to upload",-1))])])]),key:"1"}:"button"===l.type?{name:"trigger",fn:f(()=>[u(i.$slots,"trigger",{},()=>[c("div",E,[d(B,{size:l.buttonSize,plain:"",color:"contrast",disabled:l.disabled},{prefix:f(()=>[d(_(j))]),default:f(()=>[z(" "+g(l.buttonLabel),1)]),_:1},8,["size","disabled"])])])]),key:"2"}:void 0,$(G.value,e=>({name:e,fn:f(l=>[u(i.$slots,e,v(k(l)))])})),l.description?{name:"tip",fn:f(()=>[c("p",M,g(l.description),1)]),key:"3"}:void 0]),1040,["disabled"])])}}});export{q as _};
@@ -1 +1 @@
1
- import{ElFormItem as e,ElLoadingDirective as r}from"element-plus/es";import{defineComponent as a,ref as t,reactive as c,computed as l,watch as u,openBlock as o,createElementBlock as n,createVNode as i,withCtx as s,renderSlot as m,withDirectives as _,createElementVNode as p,createBlock as d,createTextVNode as v,toDisplayString as g,createCommentVNode as f}from"vue";import y from"../custom/EaeraWidgetHeader.mjs";import{C as b,_ as w}from"./EaeraForm-DKeyWXY3.mjs";import{useI18n as F}from"vue-i18n";import{_ as C}from"./EaeraButton-DGfjUoa6.mjs";const z={class:"calculator__content"},I={class:"calculator__container"},S={class:"mb-0 w-full"},$={class:"mt-4"},x={class:"mb-8 md:mb-0 text-base font-semibold"},k={key:0,class:"ml-4"},q={class:"calculator-button__wrapper"},E=a({__name:"EaeraWidgetMarginCalculator",props:{currency_pairs:{default:()=>[]},filterOptions:{default:()=>[]},getRate:{type:Function,default:()=>{}},isLoading:{type:Boolean,default:!1}},setup(a){const{t:E}=F(),N=a,U=t(),D=c({margin_ratio:void 0,currency_pair:"",account_currency:"",trade_size:void 0}),R=t(null),j=t(""),B=c({}),A=t(["USD","EUR","GBP","JPY","CHF","CAD","NZD","AUD","USC"]),H={required:!0,message:E("common.validate.required_field"),trigger:"change"},L=l(()=>{const e=N.currency_pairs.map(e=>e.symbol);return[...new Set(e)]}),M=l(()=>D.account_currency+D.currency_pair),O=l(()=>null!==R.value&&D.account_currency?B?.[R.value]?.[D.account_currency]:null),P=l(()=>[...new Set(N.filterOptions.map(e=>e?.currency)?.concat(A.value))]),W=l(()=>L.value.map(e=>({label:e,value:e}))),G=l(()=>P.value.map(e=>({label:e,value:e}))),J=l(()=>j.value&&D.account_currency?`${Intl.NumberFormat("en-US",{style:"currency",currency:D.account_currency}).format(Number(j.value))}`:""),Y=l(()=>({currency_pair:{label:E("widget.margin-calculator.currency-pair"),nameComponent:b.Select,placeholder:" ",required:!0,options:W.value,classFormItem:"is-m-auto calculator-form__wrapper",order:1,group:"left",rule:{currency_pair:[H]}},account_currency:{label:E("widget.margin-calculator.account-currency"),nameComponent:b.Select,placeholder:" ",required:!0,filterable:!0,options:G.value,classFormItem:"is-m-auto calculator-form__wrapper",order:2,group:"left",rule:{account_currency:[H]}},margin_ratio:{label:E("widget.margin-calculator.margin-raito"),nameComponent:b.Input,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:1,group:"right",rule:{margin_ratio:[H]}},trade_size:{label:E("widget.margin-calculator.trade-size"),nameComponent:b.Input,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:2,group:"right",rule:{trade_size:[H]}}})),Z={left:{tag:"div",class:"calculator__leftForm"},right:{tag:"div",class:"calculator__rightForm"}},K=()=>{U.value?.validateForm().then(()=>{if(R.value&&B?.[R.value]?.[D.account_currency]){const e=N.currency_pairs.find(e=>e.symbol==D.currency_pair),r=e.contract_size,a=Number(D.trade_size)*r/Number(D.margin_ratio),t=[0,5].includes(e?.calc_mode)?1:e?.symbol_price;j.value=(t*a*B?.[R.value]?.[D.account_currency]).toString()}})},Q=()=>{U.value?.resetForm(),D.margin_ratio=void 0,D.currency_pair="",D.account_currency="",D.trade_size=void 0,R.value=null,j.value=""};return u(()=>M.value,async()=>{if(D.account_currency&&R.value&&!B?.[R.value]?.[D.account_currency]){let e=await N.getRate(R.value,D.account_currency);null!==R.value&&(B[R.value]||(B[R.value]={}),B[R.value][D.account_currency]=e)}}),(t,c)=>{const l=e,u=r;return o(),n("div",null,[i(y,{title:t.$t("widget.margin-calculator.title"),showFilter:!1},{header:s(()=>[m(t.$slots,"header1")]),_:3},8,["title"]),_((o(),n("div",z,[p("div",I,[i(w,{ref_key:"ruleFormRef",ref:U,"form-data":D,"form-schema":Y.value,"form-group-render-options":Z,"class-name-parent-group":"calculator__wrapper","label-position":"top","scroll-to-error":!1,sizeFormItems:"sm"},{prefix_item_margin_ratio:s(()=>[...c[0]||(c[0]=[p("span",{class:"text-base text-black"},"1:",-1)])]),footer:s(()=>[p("div",S,[R.value&&D?.account_currency&&R.value!=D?.account_currency?(o(),d(l,{key:0,label:`${R.value}${D?.account_currency}:`,class:"form--item--custom is-m-auto calculator-form__wrapper"},{default:s(()=>[v(g(O.value),1)]),_:1},8,["label"])):f("",!0),p("div",$,[p("div",x,[v(g(t.$t("widget.margin-calculator.result"))+": ",1),j.value?(o(),n("span",k,g(J.value),1)):f("",!0)]),p("div",q,[i(C,{onClick:Q,class:"btn-custom-sm btn-success-outline text-base btn_calculator"},{default:s(()=>[v(g(t.$t("widget.margin-calculator.reset")),1)]),_:1}),i(C,{type:"success",class:"btn-custom-sm text-base btn_calculator",onClick:K},{default:s(()=>[v(g(t.$t("widget.margin-calculator.calculate")),1)]),_:1})])])])]),_:1},8,["form-data","form-schema"])])])),[[u,a.isLoading]])])}}});export{E as _};
1
+ import{ElFormItem as e,ElLoadingDirective as r}from"element-plus/es";import{defineComponent as a,ref as t,reactive as c,computed as l,watch as u,openBlock as o,createElementBlock as n,createVNode as i,withCtx as s,renderSlot as m,withDirectives as _,createElementVNode as p,createBlock as d,createTextVNode as v,toDisplayString as g,createCommentVNode as f}from"vue";import y from"../custom/EaeraWidgetHeader.mjs";import{C as b,_ as w}from"./EaeraForm-DEoXRjat.mjs";import{useI18n as F}from"vue-i18n";import{_ as C}from"./EaeraButton-BPVKRBOn.mjs";const z={class:"calculator__content"},I={class:"calculator__container"},S={class:"mb-0 w-full"},$={class:"mt-4"},x={class:"mb-8 md:mb-0 text-base font-semibold"},k={key:0,class:"ml-4"},q={class:"calculator-button__wrapper"},E=a({__name:"EaeraWidgetMarginCalculator",props:{currency_pairs:{default:()=>[]},filterOptions:{default:()=>[]},getRate:{type:Function,default:()=>{}},isLoading:{type:Boolean,default:!1}},setup(a){const{t:E}=F(),N=a,U=t(),D=c({margin_ratio:void 0,currency_pair:"",account_currency:"",trade_size:void 0}),R=t(null),j=t(""),B=c({}),A=t(["USD","EUR","GBP","JPY","CHF","CAD","NZD","AUD","USC"]),H={required:!0,message:E("common.validate.required_field"),trigger:"change"},L=l(()=>{const e=N.currency_pairs.map(e=>e.symbol);return[...new Set(e)]}),M=l(()=>D.account_currency+D.currency_pair),O=l(()=>null!==R.value&&D.account_currency?B?.[R.value]?.[D.account_currency]:null),P=l(()=>[...new Set(N.filterOptions.map(e=>e?.currency)?.concat(A.value))]),W=l(()=>L.value.map(e=>({label:e,value:e}))),G=l(()=>P.value.map(e=>({label:e,value:e}))),J=l(()=>j.value&&D.account_currency?`${Intl.NumberFormat("en-US",{style:"currency",currency:D.account_currency}).format(Number(j.value))}`:""),Y=l(()=>({currency_pair:{label:E("widget.margin-calculator.currency-pair"),nameComponent:b.Select,placeholder:" ",required:!0,options:W.value,classFormItem:"is-m-auto calculator-form__wrapper",order:1,group:"left",rule:{currency_pair:[H]}},account_currency:{label:E("widget.margin-calculator.account-currency"),nameComponent:b.Select,placeholder:" ",required:!0,filterable:!0,options:G.value,classFormItem:"is-m-auto calculator-form__wrapper",order:2,group:"left",rule:{account_currency:[H]}},margin_ratio:{label:E("widget.margin-calculator.margin-raito"),nameComponent:b.Input,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:1,group:"right",rule:{margin_ratio:[H]}},trade_size:{label:E("widget.margin-calculator.trade-size"),nameComponent:b.Input,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:2,group:"right",rule:{trade_size:[H]}}})),Z={left:{tag:"div",class:"calculator__leftForm"},right:{tag:"div",class:"calculator__rightForm"}},K=()=>{U.value?.validateForm().then(()=>{if(R.value&&B?.[R.value]?.[D.account_currency]){const e=N.currency_pairs.find(e=>e.symbol==D.currency_pair),r=e.contract_size,a=Number(D.trade_size)*r/Number(D.margin_ratio),t=[0,5].includes(e?.calc_mode)?1:e?.symbol_price;j.value=(t*a*B?.[R.value]?.[D.account_currency]).toString()}})},Q=()=>{U.value?.resetForm(),D.margin_ratio=void 0,D.currency_pair="",D.account_currency="",D.trade_size=void 0,R.value=null,j.value=""};return u(()=>M.value,async()=>{if(D.account_currency&&R.value&&!B?.[R.value]?.[D.account_currency]){let e=await N.getRate(R.value,D.account_currency);null!==R.value&&(B[R.value]||(B[R.value]={}),B[R.value][D.account_currency]=e)}}),(t,c)=>{const l=e,u=r;return o(),n("div",null,[i(y,{title:t.$t("widget.margin-calculator.title"),showFilter:!1},{header:s(()=>[m(t.$slots,"header1")]),_:3},8,["title"]),_((o(),n("div",z,[p("div",I,[i(w,{ref_key:"ruleFormRef",ref:U,"form-data":D,"form-schema":Y.value,"form-group-render-options":Z,"class-name-parent-group":"calculator__wrapper","label-position":"top","scroll-to-error":!1,sizeFormItems:"sm"},{prefix_item_margin_ratio:s(()=>[...c[0]||(c[0]=[p("span",{class:"text-base text-black"},"1:",-1)])]),footer:s(()=>[p("div",S,[R.value&&D?.account_currency&&R.value!=D?.account_currency?(o(),d(l,{key:0,label:`${R.value}${D?.account_currency}:`,class:"form--item--custom is-m-auto calculator-form__wrapper"},{default:s(()=>[v(g(O.value),1)]),_:1},8,["label"])):f("",!0),p("div",$,[p("div",x,[v(g(t.$t("widget.margin-calculator.result"))+": ",1),j.value?(o(),n("span",k,g(J.value),1)):f("",!0)]),p("div",q,[i(C,{onClick:Q,class:"btn-custom-sm btn-success-outline text-base btn_calculator"},{default:s(()=>[v(g(t.$t("widget.margin-calculator.reset")),1)]),_:1}),i(C,{type:"success",class:"btn-custom-sm text-base btn_calculator",onClick:K},{default:s(()=>[v(g(t.$t("widget.margin-calculator.calculate")),1)]),_:1})])])])]),_:1},8,["form-data","form-schema"])])])),[[u,a.isLoading]])])}}});export{E as _};
@@ -1 +1 @@
1
- import{ElLoadingDirective as e}from"element-plus/es";import{defineComponent as r,ref as t,reactive as a,computed as o,watch as c,openBlock as l,createElementBlock as u,createVNode as i,withCtx as s,renderSlot as n,withDirectives as m,createElementVNode as p,createTextVNode as _,toDisplayString as d,createCommentVNode as v,unref as y}from"vue";import g from"../custom/EaeraWidgetHeader.mjs";import{C as f,_ as b}from"./EaeraForm-DKeyWXY3.mjs";import{f as w}from"./formatMoney-CbiPk6ER.mjs";import{useI18n as z}from"vue-i18n";import{_ as k}from"./EaeraButton-DGfjUoa6.mjs";const N={class:"calculator__content"},F={class:"calculator__container"},$={class:"calculator-button__wrapper"},C={class:"calculator__results mt-8"},q={class:"calculator__money"},I={key:0,class:"mb-0 font-normal"},S={key:1,class:"mb-0 font-normal"},x={key:2,class:"mb-0 font-semibold"},E={key:3,class:"mb-0 font-semibold"},M={class:"calculator__units"},U={class:"mb-0 font-normal"},j={class:"mb-0 font-semibold"},D={class:"calculator__sizing"},R={class:"mb-0 font-normal"},B={class:"mb-0 font-semibold"},H=r({__name:"EaeraWidgetPositionCalculator",props:{currency_pairs:{default:()=>[]},filterOptions:{default:()=>[]},getRate:{type:Function,default:()=>{}},isLoading:{type:Boolean,default:!1}},setup(r){const{t:H}=z(),P=r,A=t(""),L=t({}),O=t("percent"),W=a({}),G=t(["USD","EUR","GBP","JPY","CHF","CAD","NZD","AUD","USC"]),J=t(),Y=a({currency_pair:"",account_currency:"",account_size:0,risk_ratio:0,risk_money:0,stop_loss:0,trade_size:0}),Z={validator:(e,r,t)=>{r?r&&!/^\d+(\.\d+)?$/.test(r)?t(new Error(H("common.validate.input_valid_number"))):t():t(new Error(H("common.validate.required_field")))},required:!0,trigger:"change"},K={required:!0,message:H("common.validate.required_field"),trigger:"change"},Q=o(()=>Y.account_currency+Y.currency_pair),T=o(()=>{const e=P.currency_pairs.map(e=>e.symbol);return[...new Set(e)]}),V=o(()=>[...new Set(P.filterOptions.map(e=>e?.currency)?.concat(G.value))]),X=o(()=>T.value.map(e=>({label:e,value:e}))),ee=o(()=>V.value.map(e=>({label:e,value:e}))),re=o(()=>({currency_pair:{label:H("widget.position-calculator.currency-pair"),nameComponent:f.Select,placeholder:" ",required:!0,filterable:!0,options:X.value,classFormItem:"is-m-auto calculator-form__wrapper",order:1,group:"left",rule:{currency_pair:[K]},size:"sm"},account_currency:{label:H("widget.position-calculator.account-currency"),nameComponent:f.Select,placeholder:" ",required:!0,filterable:!0,options:ee.value,classFormItem:"is-m-auto calculator-form__wrapper",order:2,group:"left",rule:{account_currency:[K]},size:"sm"},account_size:{label:H("widget.position-calculator.account-size"),nameComponent:f.InputNumber,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:3,group:"left",rule:{account_size:[Z]},size:"sm"},risk_value:{label:"percent"===O.value?`${H("widget.position-calculator.risk-raito")}, %`:`${H("widget.position-calculator.money")}, ${Y.account_currency}`,nameComponent:f.InputNumber,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:1,group:"right",rule:{risk_ratio:"percent"===O.value?[Z]:[{validator:()=>!0,required:!1,trigger:"change"}],risk_money:"money"===O.value?[Z]:[{validator:()=>!0,required:!1,trigger:"change"}]},size:"sm"},stop_loss:{label:H("widget.position-calculator.stop-loss-pip"),nameComponent:f.InputNumber,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:2,group:"right",rule:{stop_loss:[Z]},size:"sm"},trade_size:{label:H("widget.position-calculator.trade-size"),nameComponent:f.InputNumber,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:3,group:"right",rule:{trade_size:[Z]},size:"sm"}})),te={left:{tag:"div",class:"calculator__leftForm"},right:{tag:"div",class:"calculator__rightForm"}},ae=()=>{J.value?.resetForm(),Y.currency_pair="",Y.risk_ratio=0,Y.risk_money=0,Y.stop_loss=0,Y.account_size=0,Y.account_currency="",Y.trade_size=0,L.value={},O.value="percent"},oe=()=>{J.value?.validateForm().then(()=>{if(W?.[A.value]?.[Y.account_currency]){const e=P.currency_pairs.find(e=>e.symbol==Y.currency_pair),r=e.contract_size,t=e.digits;"percent"==O.value?(L.value.money=Number(Y.account_size)*Number(Y.risk_ratio)/100,e.path?.includes("Commodities")?L.value.unit=L.value.money/(Number(Y.stop_loss)*Math.pow(10,-2))/W?.[A.value]?.[Y.account_currency]:L.value.unit=L.value.money/(Number(Y.stop_loss)*Math.pow(10,1-t))/W?.[A.value]?.[Y.account_currency],L.value.sizing=L.value.unit/r/Number(Y.trade_size)):(L.value.risk_ratio=Y.risk_money/Number(Y.account_size)*100,e.path?.includes("Commodities")?L.value.unit=L.value.money/(Number(Y.stop_loss)*Math.pow(10,-2))/W?.[A.value]?.[Y.account_currency]:L.value.unit=Y.risk_money/(Number(Y.stop_loss)*Math.pow(10,1-t))/W?.[A.value]?.[Y.account_currency],L.value.sizing=L.value.unit/r/Number(Y.trade_size))}})};return c(()=>Q.value,async()=>{if(Y.account_currency&&A.value&&!W?.[A.value]?.[Y.account_currency]){let e=await P.getRate(A.value,Y.account_currency);W[A.value]||(W[A.value]={}),W[A.value][Y.account_currency]=e}},{immediate:!0,deep:!0}),(t,a)=>{const o=e;return l(),u("div",null,[i(g,{title:t.$t("widget.position-calculator.title"),showFilter:!1},{header:s(()=>[n(t.$slots,"header1")]),_:3},8,["title"]),m((l(),u("div",N,[p("div",F,[i(b,{ref_key:"ruleFormRef",ref:J,"form-data":Y,"form-schema":re.value,"form-group-render-options":te,"text-btn-save":t.$t("widget.position-calculator.calculate"),"text-btn-close":t.$t("widget.margin-calculator.reset"),"label-position":"top","scroll-to-error":!1,"item-size":"sm"},{footer:s(()=>[p("div",$,[i(k,{onClick:ae,class:"custom-button sm btn-success-outline text-base btn_calculator"},{default:s(()=>[_(d(t.$t("widget.margin-calculator.reset")),1)]),_:1}),i(k,{type:"success",class:"custom-button sm text-base btn_calculator",onClick:oe},{default:s(()=>[_(d(t.$t("widget.position-calculator.calculate")),1)]),_:1})])]),_:1},8,["form-data","form-schema","text-btn-save","text-btn-close"]),p("div",C,[p("div",q,["money"==O.value?(l(),u("p",I,d(t.$t("widget.position-calculator.risk-raito"))+", % ",1)):(l(),u("p",S,d(t.$t("widget.position-calculator.money"))+", "+d(Y.account_currency),1)),"money"==O.value?(l(),u("p",x,d(L.value.risk_ratio)+"% ",1)):Y.account_currency?(l(),u("p",E,d(isNaN(L.value.money)?`${Intl.NumberFormat("en-US",{style:"currency",currency:Y.account_currency}).format(0)}`:`${Intl.NumberFormat("en-US",{style:"currency",currency:Y.account_currency}).format(L.value.money)}`),1)):v("",!0)]),p("div",M,[p("p",U,d(t.$t("widget.position-calculator.units")),1),p("p",j,d(y(w)(L.value.unit,2)),1)]),p("div",D,[p("p",R,d(t.$t("widget.position-calculator.sizing")),1),p("p",B,d(y(w)(L.value.sizing,2)),1)])])])])),[[o,r.isLoading]])])}}});export{H as _};
1
+ import{ElLoadingDirective as e}from"element-plus/es";import{defineComponent as r,ref as t,reactive as a,computed as o,watch as c,openBlock as l,createElementBlock as u,createVNode as i,withCtx as s,renderSlot as n,withDirectives as m,createElementVNode as p,createTextVNode as _,toDisplayString as d,createCommentVNode as v,unref as y}from"vue";import g from"../custom/EaeraWidgetHeader.mjs";import{C as f,_ as b}from"./EaeraForm-DEoXRjat.mjs";import{f as w}from"./formatMoney-CbiPk6ER.mjs";import{useI18n as z}from"vue-i18n";import{_ as k}from"./EaeraButton-BPVKRBOn.mjs";const N={class:"calculator__content"},F={class:"calculator__container"},$={class:"calculator-button__wrapper"},C={class:"calculator__results mt-8"},q={class:"calculator__money"},I={key:0,class:"mb-0 font-normal"},S={key:1,class:"mb-0 font-normal"},x={key:2,class:"mb-0 font-semibold"},E={key:3,class:"mb-0 font-semibold"},M={class:"calculator__units"},U={class:"mb-0 font-normal"},j={class:"mb-0 font-semibold"},D={class:"calculator__sizing"},R={class:"mb-0 font-normal"},B={class:"mb-0 font-semibold"},H=r({__name:"EaeraWidgetPositionCalculator",props:{currency_pairs:{default:()=>[]},filterOptions:{default:()=>[]},getRate:{type:Function,default:()=>{}},isLoading:{type:Boolean,default:!1}},setup(r){const{t:H}=z(),P=r,A=t(""),L=t({}),O=t("percent"),W=a({}),G=t(["USD","EUR","GBP","JPY","CHF","CAD","NZD","AUD","USC"]),J=t(),Y=a({currency_pair:"",account_currency:"",account_size:0,risk_ratio:0,risk_money:0,stop_loss:0,trade_size:0}),Z={validator:(e,r,t)=>{r?r&&!/^\d+(\.\d+)?$/.test(r)?t(new Error(H("common.validate.input_valid_number"))):t():t(new Error(H("common.validate.required_field")))},required:!0,trigger:"change"},K={required:!0,message:H("common.validate.required_field"),trigger:"change"},Q=o(()=>Y.account_currency+Y.currency_pair),T=o(()=>{const e=P.currency_pairs.map(e=>e.symbol);return[...new Set(e)]}),V=o(()=>[...new Set(P.filterOptions.map(e=>e?.currency)?.concat(G.value))]),X=o(()=>T.value.map(e=>({label:e,value:e}))),ee=o(()=>V.value.map(e=>({label:e,value:e}))),re=o(()=>({currency_pair:{label:H("widget.position-calculator.currency-pair"),nameComponent:f.Select,placeholder:" ",required:!0,filterable:!0,options:X.value,classFormItem:"is-m-auto calculator-form__wrapper",order:1,group:"left",rule:{currency_pair:[K]},size:"sm"},account_currency:{label:H("widget.position-calculator.account-currency"),nameComponent:f.Select,placeholder:" ",required:!0,filterable:!0,options:ee.value,classFormItem:"is-m-auto calculator-form__wrapper",order:2,group:"left",rule:{account_currency:[K]},size:"sm"},account_size:{label:H("widget.position-calculator.account-size"),nameComponent:f.InputNumber,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:3,group:"left",rule:{account_size:[Z]},size:"sm"},risk_value:{label:"percent"===O.value?`${H("widget.position-calculator.risk-raito")}, %`:`${H("widget.position-calculator.money")}, ${Y.account_currency}`,nameComponent:f.InputNumber,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:1,group:"right",rule:{risk_ratio:"percent"===O.value?[Z]:[{validator:()=>!0,required:!1,trigger:"change"}],risk_money:"money"===O.value?[Z]:[{validator:()=>!0,required:!1,trigger:"change"}]},size:"sm"},stop_loss:{label:H("widget.position-calculator.stop-loss-pip"),nameComponent:f.InputNumber,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:2,group:"right",rule:{stop_loss:[Z]},size:"sm"},trade_size:{label:H("widget.position-calculator.trade-size"),nameComponent:f.InputNumber,required:!0,classFormItem:"is-m-auto calculator-form__wrapper",order:3,group:"right",rule:{trade_size:[Z]},size:"sm"}})),te={left:{tag:"div",class:"calculator__leftForm"},right:{tag:"div",class:"calculator__rightForm"}},ae=()=>{J.value?.resetForm(),Y.currency_pair="",Y.risk_ratio=0,Y.risk_money=0,Y.stop_loss=0,Y.account_size=0,Y.account_currency="",Y.trade_size=0,L.value={},O.value="percent"},oe=()=>{J.value?.validateForm().then(()=>{if(W?.[A.value]?.[Y.account_currency]){const e=P.currency_pairs.find(e=>e.symbol==Y.currency_pair),r=e.contract_size,t=e.digits;"percent"==O.value?(L.value.money=Number(Y.account_size)*Number(Y.risk_ratio)/100,e.path?.includes("Commodities")?L.value.unit=L.value.money/(Number(Y.stop_loss)*Math.pow(10,-2))/W?.[A.value]?.[Y.account_currency]:L.value.unit=L.value.money/(Number(Y.stop_loss)*Math.pow(10,1-t))/W?.[A.value]?.[Y.account_currency],L.value.sizing=L.value.unit/r/Number(Y.trade_size)):(L.value.risk_ratio=Y.risk_money/Number(Y.account_size)*100,e.path?.includes("Commodities")?L.value.unit=L.value.money/(Number(Y.stop_loss)*Math.pow(10,-2))/W?.[A.value]?.[Y.account_currency]:L.value.unit=Y.risk_money/(Number(Y.stop_loss)*Math.pow(10,1-t))/W?.[A.value]?.[Y.account_currency],L.value.sizing=L.value.unit/r/Number(Y.trade_size))}})};return c(()=>Q.value,async()=>{if(Y.account_currency&&A.value&&!W?.[A.value]?.[Y.account_currency]){let e=await P.getRate(A.value,Y.account_currency);W[A.value]||(W[A.value]={}),W[A.value][Y.account_currency]=e}},{immediate:!0,deep:!0}),(t,a)=>{const o=e;return l(),u("div",null,[i(g,{title:t.$t("widget.position-calculator.title"),showFilter:!1},{header:s(()=>[n(t.$slots,"header1")]),_:3},8,["title"]),m((l(),u("div",N,[p("div",F,[i(b,{ref_key:"ruleFormRef",ref:J,"form-data":Y,"form-schema":re.value,"form-group-render-options":te,"text-btn-save":t.$t("widget.position-calculator.calculate"),"text-btn-close":t.$t("widget.margin-calculator.reset"),"label-position":"top","scroll-to-error":!1,"item-size":"sm"},{footer:s(()=>[p("div",$,[i(k,{onClick:ae,class:"custom-button sm btn-success-outline text-base btn_calculator"},{default:s(()=>[_(d(t.$t("widget.margin-calculator.reset")),1)]),_:1}),i(k,{type:"success",class:"custom-button sm text-base btn_calculator",onClick:oe},{default:s(()=>[_(d(t.$t("widget.position-calculator.calculate")),1)]),_:1})])]),_:1},8,["form-data","form-schema","text-btn-save","text-btn-close"]),p("div",C,[p("div",q,["money"==O.value?(l(),u("p",I,d(t.$t("widget.position-calculator.risk-raito"))+", % ",1)):(l(),u("p",S,d(t.$t("widget.position-calculator.money"))+", "+d(Y.account_currency),1)),"money"==O.value?(l(),u("p",x,d(L.value.risk_ratio)+"% ",1)):Y.account_currency?(l(),u("p",E,d(isNaN(L.value.money)?`${Intl.NumberFormat("en-US",{style:"currency",currency:Y.account_currency}).format(0)}`:`${Intl.NumberFormat("en-US",{style:"currency",currency:Y.account_currency}).format(L.value.money)}`),1)):v("",!0)]),p("div",M,[p("p",U,d(t.$t("widget.position-calculator.units")),1),p("p",j,d(y(w)(L.value.unit,2)),1)]),p("div",D,[p("p",R,d(t.$t("widget.position-calculator.sizing")),1),p("p",B,d(y(w)(L.value.sizing,2)),1)])])])])),[[o,r.isLoading]])])}}});export{H as _};
@@ -1 +1 @@
1
- import{computed as e,provide as t,inject as l,defineComponent as o,shallowRef as s,ref as a,watch as i,resolveComponent as r,openBlock as c,createElementBlock as n,createElementVNode as m,createVNode as u,unref as d,createSlots as p,withCtx as v,toDisplayString as y,normalizeClass as b,normalizeStyle as g,Fragment as w,renderList as _,createBlock as f,withDirectives as S,withModifiers as k}from"vue";import{a as C}from"./vendor-vueuse-core-B96HGhR7.mjs";import x from"../composite/EaeraDropdownV2.mjs";import{_ as I}from"./EaeraInput-CkbcAxy0.mjs";import{useI18n as E}from"vue-i18n";import"element-plus";import{ElLoadingDirective as H}from"element-plus/es";import"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import"./vendor-unorm-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 R}from"./EaeraTableV2-ZUpzVKhm.mjs";import{_ as D}from"./EaeraTooltip-BIlULHv4.mjs";const G=Symbol("EAERA_WATCHLIST_CONTEXT_KEY"),T=(l,o)=>{const s={inputPlaceholder:e(()=>l.inputPlaceholder),searchData:e(()=>l.searchData),categories:e(()=>l.categories),selectedCategory:e(()=>l.selectedCategory),isFiltered:e(()=>l.isFiltered),tableHeight:e(()=>l.tableHeight),viewingSymbols:e(()=>l.viewingSymbols),viewingSymbolGroups:e(()=>l.viewingSymbolGroups),listSymbols:e(()=>l.listSymbols),groupLoadingRowIds:e(()=>l.groupLoadingRowIds),favoriteSymbolIds:e(()=>l.favoriteSymbolIds),viewingSymbolId:e(()=>l.viewingSymbolId),listSymbolsLoading:e(()=>l.listSymbolsLoading),sorting:e(()=>l.sorting),onResize:(e,t)=>o("resize",e,t),onSelectCategory:e=>o("selectCategory",e),onSearchDataUpdate:e=>o("update:searchData",e),onGroupExpandChange:e=>o("groupExpandChange",e),onGroupRowClick:e=>o("groupRowClick",e),onGroupSortChanged:e=>o("groupSortChanged",e),onItemSortChanged:e=>o("itemSortChanged",e),onSelectSymbol:e=>o("selectSymbol",e),onToggleFavorite:e=>o("toggleFavorite",e),onShowSymbolInfo:e=>o("showSymbolInfo",e)};return t(G,s),s},j=()=>{const e=l(G);if(!e)throw new Error("useEaeraWatchlist must be used inside EaeraWatchlist");return e},W={class:"custom-watchlist-filter"},F={class:"custom-watchlist-filter__row"},L={class:"custom-watchlist-filter__field"},z={class:"custom-watchlist-filter__field"},U=["onClick"],A={class:"custom-watchlist-filter__category-count"},N={class:"custom-watchlist-filter__dropdown-trigger-content"},B={key:0,class:"custom-watchlist-filter__selected"},V={key:1,class:"custom-watchlist-filter__placeholder"},P=o({__name:"EaeraWatchlistFilter",setup(e){const{inputPlaceholder:t,searchData:l,categories:o,selectedCategory:f,onSelectCategory:S,onSearchDataUpdate:k}=j(),C=s(),E=a(!1),H=a(!1),R=a(""),D=a(!1);i(l,e=>{e!==R.value&&(R.value=e)},{immediate:!0});const G=e=>{D.value||k(e)},T=()=>D.value=!0,P=e=>k(e.data),K=e=>{D.value=!1;const t=e.data??R.value;k(t)};return(e,s)=>{const a=r("eaera-icon"),i=I,k=x;return c(),n("div",W,[m("div",F,[m("div",L,[u(i,{modelValue:R.value,"onUpdate:modelValue":s[0]||(s[0]=e=>R.value=e),class:"watchlist-input",placeholder:d(t),clearable:"",onInput:G,onCompositionstart:T,onCompositionupdate:P,onCompositionend:K},p({_:2},[d(l)?void 0:{name:"suffix",fn:v(()=>[u(a,{icon:"Search2",size:"16",class:"icon-primary"})]),key:"0"}]),1032,["modelValue","placeholder"])]),m("div",z,[u(k,{class:"custom-watchlist-filter__dropdown","popper-class":"with-border",onVisibleChange:s[4]||(s[4]=e=>E.value=e)},{dropdown:v(()=>[m("div",{class:"custom-watchlist-filter__dropdown-menu",style:g({width:`${C.value?.clientWidth??100}px`})},[(c(!0),n(w,null,_(d(o),e=>(c(),n("div",{key:e.id,class:"custom-watchlist-filter__category"},[m("div",{class:"custom-watchlist-filter__category-content label-md",onClick:t=>d(S)(e)},[m("div",null,y(e.name),1),m("div",A,y(e.count),1)],8,U)]))),128))],4)]),default:v(()=>[m("div",{ref_key:"dropdownRef",ref:C,class:"custom-watchlist-filter__dropdown-trigger"},[m("div",N,[d(f)?.name?(c(),n("span",B,y(d(f).name),1)):(c(),n("span",V,y(e.$t("watch-list.filter.categories")),1)),m("div",{class:"custom-watchlist-filter__icon-wrapper",onMouseenter:s[1]||(s[1]=e=>H.value=!0),onMouseleave:s[2]||(s[2]=e=>H.value=!1),onClick:s[3]||(s[3]=e=>d(S)(null))},[u(a,{icon:H.value&&d(f)?"XCircle":"ChevronDown",size:"16",class:b(["icon-primary","custom-watchlist-filter__dropdown-icon",E.value&&"is-open"])},null,8,["icon","class"])],32)])],512)]),_:1})])])])}}}),K={class:"custom-watchlist-table"},M={key:0,class:"custom-watchlist-table__group"},O={key:1,class:"custom-watchlist-table__items"},$=o({__name:"EaeraWatchlistTable",setup(e){const{isFiltered:t,tableHeight:l,viewingSymbols:o,listSymbolsLoading:s}=j();return(e,a)=>(c(),n("div",K,[d(t)?(c(),n("div",O,[u(d(de),{symbols:d(o),"max-height":d(l),loading:d(s),"show-header":""},null,8,["symbols","max-height","loading"])])):(c(),n("div",M,[u(d(te))]))]))}}),X={class:"custom-watchlist-group-table__symbol-cell"},Y={class:"custom-watchlist-group-table__symbol body-md__w"},q={class:"custom-watchlist-group-table__name body-sm"},J={key:0},Q={class:"custom-watchlist-group-table__empty"},Z={class:"custom-watchlist-group-table__empty-content"},ee={class:"custom-watchlist-group-table__empty-text body-sm"},te=o({__name:"EaeraWatchlistGroupTable",setup(t){const{tableHeight:l,viewingSymbolGroups:o,listSymbols:s,groupLoadingRowIds:p,sorting:b,onGroupExpandChange:g,onGroupRowClick:w,onGroupSortChanged:_}=j(),{t:S}=E(),k=a(),C=({columnIndex:e})=>0===e?[1,1]:1===e?[1,4]:[0,0],x=e=>{g(e)},I=async e=>{await w(e),k.value?.rowExpansion(e)},H=e(()=>[{key:"expand",type:"expand",width:30},{key:"ticker_symbol",label:S("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",cellClass:"py-0",minWidth:100},{key:"last",label:S("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",minWidth:110},{key:"volume",label:S("watch-list.table.volume"),sortable:!0,sort_key:"volume",align:"right",minWidth:100}]),D=e(()=>k.value?.sort),G=e=>{_(e)},T=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2",W=({row:e})=>p.value.includes(e.id)?"loading-row":"";return i(b,e=>{e||k.value?.sortTable("",null)}),(e,t)=>{const a=r("NoData"),i=r("eaera-icon");return c(),f(d(R),{ref_key:"watchListTableRef",ref:k,class:"watchlist-table","max-height":d(l),items:d(o),fields:H.value,"span-method":C,stripe:!1,"hide-footer":"","row-class-name":W,onRowClick:I,onExpandChange:x,"onUpdate:onSortChanged":G},{"cell(ticker_symbol)":v(({item:e})=>[m("div",X,[m("div",Y,y(e.host_exchange)+":"+y(e.base_symbol),1),m("div",q,y(e.name),1)])]),"cell(expand)":v(({row:e})=>[d(p).includes(e.id)?(c(),n("div",J)):(c(),f(d(de),{key:1,symbols:d(s)[e.id]||[],"inside-group":""},null,8,["symbols"]))]),empty:v(()=>[m("div",Q,[m("div",Z,[u(a),m("span",ee,y(d(S)("watch-list.table.empty.group")),1)])])]),"sort-icon":v(({sortKey:e,direction:t})=>[u(i,{icon:T(e,t,D.value),size:"14",class:"custom-watchlist-group-table__sort-icon","active-color":"var(--primary-green)"},null,8,["icon"])]),_:1},8,["max-height","items","fields"])}}});var le=(e=>(e.Active="active",e.MarketClosed="market-closed",e.Expired="expired",e.NotTradableYet="not-tradable-yet",e))(le||{});const oe={class:"custom-watchlist-item-table__symbol-cell"},se={class:"custom-watchlist-item-table__symbol-main body-md__w"},ae=["onClick"],ie={class:"custom-watchlist-item-table__description-row body-sm"},re={style:{width:"100%"}},ce={style:{width:"100%"}},ne={key:0},me={class:"custom-watchlist-item-table__empty-content"},ue={class:"custom-watchlist-item-table__empty-text body-sm"},de=o({__name:"EaeraWatchlistItemTable",props:{insideGroup:{type:Boolean},symbols:{},maxHeight:{},showHeader:{type:Boolean},loading:{type:Boolean}},setup(t){const{favoriteSymbolIds:l,viewingSymbolId:o,sorting:s,selectedCategory:p,listSymbolsLoading:w,onItemSortChanged:_,onSelectSymbol:C,onToggleFavorite:x,onShowSymbolInfo:I}=j(),{t:G}=E(),T=t,W=a(),F=a(null),L=e(()=>[{key:"",label:"",width:30},{key:"ticker_symbol",label:G("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",align:"left",minWidth:100},{key:"last",label:G("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",customHeaderClass:"flex justify-end items-center",minWidth:110},{key:"volume",label:G("watch-list.table.volume"),sortable:!0,sort_key:"volume",customHeaderClass:"flex justify-end items-center",minWidth:100,align:"right"}]),z=e(()=>F.value?"ticker_symbol"===F.value.key?[...T.symbols].sort((e,t)=>{const l=e.ticker_symbol.toUpperCase(),o=t.ticker_symbol.toUpperCase();return l<o?"desc"===F.value?.direction?-1:1:l>o?"desc"===F.value?.direction?1:-1:0}):"volume"===F.value.key?[...T.symbols].sort((e,t)=>e.volume<t.volume?"asc"===F.value?.direction?-1:1:e.volume>t.volume?"asc"===F.value?.direction?1:-1:0):"last"===F.value.key?[...T.symbols].sort((e,t)=>{const l=Number(e.last),o=Number(t.last);return l<o?"asc"===F.value?.direction?-1:1:l>o?"asc"===F.value?.direction?1:-1:0}):T.symbols:T.symbols),U=e(()=>e=>l.value.includes(e.id)?{icon:"Star3",color:"#FFD700"}:{icon:"StarOutline",color:"var(--primary-green)"}),A=e(()=>W.value?.sort),N=e(()=>T.insideGroup?T.loading:w.value),B=e=>e!==le.Active,V=({key:e,direction:t})=>{e&&t?(F.value={key:e,direction:t,selfSort:!0},_({key:e,direction:t})):(F.value?.selfSort&&_(null),F.value=null)},P=e=>{C(e)},K=({row:e})=>e.id===o.value?"active-row":"",M=(e,t)=>{if(t&&t!==le.Active)return"var(--text-disabled)";const l=Number(e);return l>0?"var(--text-green)":l<0?"var(--text-red)":"var(--text-primary)"},O=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2";return i(W,e=>{e&&(T.insideGroup||s.value&&(e.sortTable("",s.value.sort_by),F.value={key:s.value.sort_by,direction:s.value.order,selfSort:!1}))}),i(()=>p.value?.id,()=>F.value=null),(e,t)=>{const l=r("eaera-icon"),o=D,s=r("client-only"),a=H;return c(),f(s,null,{default:v(()=>[S((c(),n("div",null,[u(d(R),{ref_key:"watchListTableRef",ref:W,class:b(["expanding-rows-table watchlist-table expanded",[!z.value?.length&&!T.insideGroup&&"empty",T.insideGroup&&"inside-group"]]),"allow-sort-reset":"","hide-footer":"","max-height":T.maxHeight,height:T.maxHeight,"show-header":T.showHeader,items:z.value,fields:L.value,stripe:!1,"row-class-name":K,loading:N.value,"onUpdate:onSortChanged":V,onOnRowClick:P},{"cell()":v(({item:e})=>[m("div",null,[u(l,{icon:"Info",size:"16",class:b(["custom-watchlist-item-table__info-icon",B(e.state)&&"is-disabled"]),onClick:k(t=>(async e=>{const t=T.symbols.find(t=>t.id===e);t&&await I(t)})(e.id),["stop"])},null,8,["class","onClick"])])]),"cell(ticker_symbol)":v(({item:e})=>[m("div",oe,[m("div",se,[m("span",{class:b(["custom-watchlist-item-table__symbol-text",B(e.state)&&"is-inactive"])},y(e.ticker_symbol),3),m("div",{class:"custom-watchlist-item-table__favorite",onClick:k(t=>{return l=e.id,void x(l);var l},["stop"])},[u(l,{icon:U.value(e).icon,color:U.value(e).color,size:"16"},null,8,["icon","color"])],8,ae)]),m("div",ie,[u(o,{content:e.description,placement:"right"},{default:v(()=>[m("span",{class:b(["custom-watchlist-item-table__description-text",B(e.state)&&"is-inactive"])},y(e.description),3)]),_:2},1032,["content"])])])]),"cell(last)":v(({item:e})=>[m("div",{style:g({color:M(e.last,e.state),width:"100%"})},[m("div",re,[m("div",null,y(e.last),1)])],4)]),"cell(volume)":v(({item:e})=>[m("div",{style:g({color:M(e.volume,e.state),width:"100%"})},[m("div",ce,[m("div",null,y(e.volume),1)])],4)]),empty:v(()=>[N.value?(c(),n("div",ne)):(c(),n("div",{key:1,class:"custom-watchlist-item-table__empty",style:g({height:T.maxHeight?`calc(${T.maxHeight} - 32px)`:"auto"})},[m("div",me,[m("span",ue,y(d(G)("watch-list.table.empty.symbol")),1)])],4))]),"sort-icon":v(({sortKey:e,direction:t})=>[u(l,{icon:O(e,t,A.value),size:"14",class:"custom-watchlist-item-table__sort-icon","active-color":"var(--icon-success)"},null,8,["icon"])]),_:1},8,["class","max-height","height","show-header","items","fields","loading"])])),[[a,N.value]])]),_:1})}}}),pe={class:"custom-watchlist__table"},he=o({__name:"index",props:{inputPlaceholder:{},searchData:{},categories:{},selectedCategory:{},isFiltered:{type:Boolean},tableHeight:{},viewingSymbols:{},viewingSymbolGroups:{},listSymbols:{},groupLoadingRowIds:{},favoriteSymbolIds:{},viewingSymbolId:{},listSymbolsLoading:{type:Boolean},sorting:{}},emits:["resize","selectCategory","update:searchData","groupExpandChange","groupRowClick","groupSortChanged","itemSortChanged","selectSymbol","toggleFavorite","showSymbolInfo"],setup(e,{emit:t}){const l=s(null),o=s(null),{width:a,height:r}=C(l),p=T(e,t);return i([a,r],()=>{l.value&&o.value&&p.onResize(a.value,r.value-o.value.clientHeight)}),(e,t)=>(c(),n("div",{ref_key:"watchlistRef",ref:l,class:"custom-watchlist"},[m("div",{ref_key:"watchlistFilterRef",ref:o,class:"custom-watchlist__filter"},[u(d(P))],512),m("div",pe,[u(d($))])],512))}});export{le as S,he as _,T as p,j as u};
1
+ import{computed as e,provide as t,inject as l,defineComponent as o,shallowRef as s,ref as a,watch as i,resolveComponent as r,openBlock as c,createElementBlock as n,createElementVNode as m,createVNode as u,unref as d,createSlots as p,withCtx as v,toDisplayString as y,normalizeClass as b,normalizeStyle as g,Fragment as w,renderList as _,createBlock as f,withDirectives as S,withModifiers as k}from"vue";import{a as C}from"./vendor-vueuse-core-B96HGhR7.mjs";import x from"../composite/EaeraDropdownV2.mjs";import{_ as I}from"./EaeraInput-CkbcAxy0.mjs";import{useI18n as E}from"vue-i18n";import"element-plus";import{ElLoadingDirective as H}from"element-plus/es";import"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import"./vendor-unorm-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 R}from"./EaeraTableV2-CBaM5zp9.mjs";import{_ as D}from"./EaeraTooltip-BIlULHv4.mjs";const G=Symbol("EAERA_WATCHLIST_CONTEXT_KEY"),T=(l,o)=>{const s={inputPlaceholder:e(()=>l.inputPlaceholder),searchData:e(()=>l.searchData),categories:e(()=>l.categories),selectedCategory:e(()=>l.selectedCategory),isFiltered:e(()=>l.isFiltered),tableHeight:e(()=>l.tableHeight),viewingSymbols:e(()=>l.viewingSymbols),viewingSymbolGroups:e(()=>l.viewingSymbolGroups),listSymbols:e(()=>l.listSymbols),groupLoadingRowIds:e(()=>l.groupLoadingRowIds),favoriteSymbolIds:e(()=>l.favoriteSymbolIds),viewingSymbolId:e(()=>l.viewingSymbolId),listSymbolsLoading:e(()=>l.listSymbolsLoading),sorting:e(()=>l.sorting),onResize:(e,t)=>o("resize",e,t),onSelectCategory:e=>o("selectCategory",e),onSearchDataUpdate:e=>o("update:searchData",e),onGroupExpandChange:e=>o("groupExpandChange",e),onGroupRowClick:e=>o("groupRowClick",e),onGroupSortChanged:e=>o("groupSortChanged",e),onItemSortChanged:e=>o("itemSortChanged",e),onSelectSymbol:e=>o("selectSymbol",e),onToggleFavorite:e=>o("toggleFavorite",e),onShowSymbolInfo:e=>o("showSymbolInfo",e)};return t(G,s),s},j=()=>{const e=l(G);if(!e)throw new Error("useEaeraWatchlist must be used inside EaeraWatchlist");return e},W={class:"custom-watchlist-filter"},F={class:"custom-watchlist-filter__row"},L={class:"custom-watchlist-filter__field"},z={class:"custom-watchlist-filter__field"},U=["onClick"],A={class:"custom-watchlist-filter__category-count"},N={class:"custom-watchlist-filter__dropdown-trigger-content"},B={key:0,class:"custom-watchlist-filter__selected"},V={key:1,class:"custom-watchlist-filter__placeholder"},P=o({__name:"EaeraWatchlistFilter",setup(e){const{inputPlaceholder:t,searchData:l,categories:o,selectedCategory:f,onSelectCategory:S,onSearchDataUpdate:k}=j(),C=s(),E=a(!1),H=a(!1),R=a(""),D=a(!1);i(l,e=>{e!==R.value&&(R.value=e)},{immediate:!0});const G=e=>{D.value||k(e)},T=()=>D.value=!0,P=e=>k(e.data),K=e=>{D.value=!1;const t=e.data??R.value;k(t)};return(e,s)=>{const a=r("eaera-icon"),i=I,k=x;return c(),n("div",W,[m("div",F,[m("div",L,[u(i,{modelValue:R.value,"onUpdate:modelValue":s[0]||(s[0]=e=>R.value=e),class:"watchlist-input",placeholder:d(t),clearable:"",onInput:G,onCompositionstart:T,onCompositionupdate:P,onCompositionend:K},p({_:2},[d(l)?void 0:{name:"suffix",fn:v(()=>[u(a,{icon:"Search2",size:"16",class:"icon-primary"})]),key:"0"}]),1032,["modelValue","placeholder"])]),m("div",z,[u(k,{class:"custom-watchlist-filter__dropdown","popper-class":"with-border",onVisibleChange:s[4]||(s[4]=e=>E.value=e)},{dropdown:v(()=>[m("div",{class:"custom-watchlist-filter__dropdown-menu",style:g({width:`${C.value?.clientWidth??100}px`})},[(c(!0),n(w,null,_(d(o),e=>(c(),n("div",{key:e.id,class:"custom-watchlist-filter__category"},[m("div",{class:"custom-watchlist-filter__category-content label-md",onClick:t=>d(S)(e)},[m("div",null,y(e.name),1),m("div",A,y(e.count),1)],8,U)]))),128))],4)]),default:v(()=>[m("div",{ref_key:"dropdownRef",ref:C,class:"custom-watchlist-filter__dropdown-trigger"},[m("div",N,[d(f)?.name?(c(),n("span",B,y(d(f).name),1)):(c(),n("span",V,y(e.$t("watch-list.filter.categories")),1)),m("div",{class:"custom-watchlist-filter__icon-wrapper",onMouseenter:s[1]||(s[1]=e=>H.value=!0),onMouseleave:s[2]||(s[2]=e=>H.value=!1),onClick:s[3]||(s[3]=e=>d(S)(null))},[u(a,{icon:H.value&&d(f)?"XCircle":"ChevronDown",size:"16",class:b(["icon-primary","custom-watchlist-filter__dropdown-icon",E.value&&"is-open"])},null,8,["icon","class"])],32)])],512)]),_:1})])])])}}}),K={class:"custom-watchlist-table"},M={key:0,class:"custom-watchlist-table__group"},O={key:1,class:"custom-watchlist-table__items"},$=o({__name:"EaeraWatchlistTable",setup(e){const{isFiltered:t,tableHeight:l,viewingSymbols:o,listSymbolsLoading:s}=j();return(e,a)=>(c(),n("div",K,[d(t)?(c(),n("div",O,[u(d(de),{symbols:d(o),"max-height":d(l),loading:d(s),"show-header":""},null,8,["symbols","max-height","loading"])])):(c(),n("div",M,[u(d(te))]))]))}}),X={class:"custom-watchlist-group-table__symbol-cell"},Y={class:"custom-watchlist-group-table__symbol body-md__w"},q={class:"custom-watchlist-group-table__name body-sm"},J={key:0},Q={class:"custom-watchlist-group-table__empty"},Z={class:"custom-watchlist-group-table__empty-content"},ee={class:"custom-watchlist-group-table__empty-text body-sm"},te=o({__name:"EaeraWatchlistGroupTable",setup(t){const{tableHeight:l,viewingSymbolGroups:o,listSymbols:s,groupLoadingRowIds:p,sorting:b,onGroupExpandChange:g,onGroupRowClick:w,onGroupSortChanged:_}=j(),{t:S}=E(),k=a(),C=({columnIndex:e})=>0===e?[1,1]:1===e?[1,4]:[0,0],x=e=>{g(e)},I=async e=>{await w(e),k.value?.rowExpansion(e)},H=e(()=>[{key:"expand",type:"expand",width:30},{key:"ticker_symbol",label:S("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",cellClass:"py-0",minWidth:100},{key:"last",label:S("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",minWidth:110},{key:"volume",label:S("watch-list.table.volume"),sortable:!0,sort_key:"volume",align:"right",minWidth:100}]),D=e(()=>k.value?.sort),G=e=>{_(e)},T=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2",W=({row:e})=>p.value.includes(e.id)?"loading-row":"";return i(b,e=>{e||k.value?.sortTable("",null)}),(e,t)=>{const a=r("NoData"),i=r("eaera-icon");return c(),f(d(R),{ref_key:"watchListTableRef",ref:k,class:"watchlist-table","max-height":d(l),items:d(o),fields:H.value,"span-method":C,stripe:!1,"hide-footer":"","row-class-name":W,onRowClick:I,onExpandChange:x,"onUpdate:onSortChanged":G},{"cell(ticker_symbol)":v(({item:e})=>[m("div",X,[m("div",Y,y(e.host_exchange)+":"+y(e.base_symbol),1),m("div",q,y(e.name),1)])]),"cell(expand)":v(({row:e})=>[d(p).includes(e.id)?(c(),n("div",J)):(c(),f(d(de),{key:1,symbols:d(s)[e.id]||[],"inside-group":""},null,8,["symbols"]))]),empty:v(()=>[m("div",Q,[m("div",Z,[u(a),m("span",ee,y(d(S)("watch-list.table.empty.group")),1)])])]),"sort-icon":v(({sortKey:e,direction:t})=>[u(i,{icon:T(e,t,D.value),size:"14",class:"custom-watchlist-group-table__sort-icon","active-color":"var(--primary-green)"},null,8,["icon"])]),_:1},8,["max-height","items","fields"])}}});var le=(e=>(e.Active="active",e.MarketClosed="market-closed",e.Expired="expired",e.NotTradableYet="not-tradable-yet",e))(le||{});const oe={class:"custom-watchlist-item-table__symbol-cell"},se={class:"custom-watchlist-item-table__symbol-main body-md__w"},ae=["onClick"],ie={class:"custom-watchlist-item-table__description-row body-sm"},re={style:{width:"100%"}},ce={style:{width:"100%"}},ne={key:0},me={class:"custom-watchlist-item-table__empty-content"},ue={class:"custom-watchlist-item-table__empty-text body-sm"},de=o({__name:"EaeraWatchlistItemTable",props:{insideGroup:{type:Boolean},symbols:{},maxHeight:{},showHeader:{type:Boolean},loading:{type:Boolean}},setup(t){const{favoriteSymbolIds:l,viewingSymbolId:o,sorting:s,selectedCategory:p,listSymbolsLoading:w,onItemSortChanged:_,onSelectSymbol:C,onToggleFavorite:x,onShowSymbolInfo:I}=j(),{t:G}=E(),T=t,W=a(),F=a(null),L=e(()=>[{key:"",label:"",width:30},{key:"ticker_symbol",label:G("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",align:"left",minWidth:100},{key:"last",label:G("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",customHeaderClass:"flex justify-end items-center",minWidth:110},{key:"volume",label:G("watch-list.table.volume"),sortable:!0,sort_key:"volume",customHeaderClass:"flex justify-end items-center",minWidth:100,align:"right"}]),z=e(()=>F.value?"ticker_symbol"===F.value.key?[...T.symbols].sort((e,t)=>{const l=e.ticker_symbol.toUpperCase(),o=t.ticker_symbol.toUpperCase();return l<o?"desc"===F.value?.direction?-1:1:l>o?"desc"===F.value?.direction?1:-1:0}):"volume"===F.value.key?[...T.symbols].sort((e,t)=>e.volume<t.volume?"asc"===F.value?.direction?-1:1:e.volume>t.volume?"asc"===F.value?.direction?1:-1:0):"last"===F.value.key?[...T.symbols].sort((e,t)=>{const l=Number(e.last),o=Number(t.last);return l<o?"asc"===F.value?.direction?-1:1:l>o?"asc"===F.value?.direction?1:-1:0}):T.symbols:T.symbols),U=e(()=>e=>l.value.includes(e.id)?{icon:"Star3",color:"#FFD700"}:{icon:"StarOutline",color:"var(--primary-green)"}),A=e(()=>W.value?.sort),N=e(()=>T.insideGroup?T.loading:w.value),B=e=>e!==le.Active,V=({key:e,direction:t})=>{e&&t?(F.value={key:e,direction:t,selfSort:!0},_({key:e,direction:t})):(F.value?.selfSort&&_(null),F.value=null)},P=e=>{C(e)},K=({row:e})=>e.id===o.value?"active-row":"",M=(e,t)=>{if(t&&t!==le.Active)return"var(--text-disabled)";const l=Number(e);return l>0?"var(--text-green)":l<0?"var(--text-red)":"var(--text-primary)"},O=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2";return i(W,e=>{e&&(T.insideGroup||s.value&&(e.sortTable("",s.value.sort_by),F.value={key:s.value.sort_by,direction:s.value.order,selfSort:!1}))}),i(()=>p.value?.id,()=>F.value=null),(e,t)=>{const l=r("eaera-icon"),o=D,s=r("client-only"),a=H;return c(),f(s,null,{default:v(()=>[S((c(),n("div",null,[u(d(R),{ref_key:"watchListTableRef",ref:W,class:b(["expanding-rows-table watchlist-table expanded",[!z.value?.length&&!T.insideGroup&&"empty",T.insideGroup&&"inside-group"]]),"allow-sort-reset":"","hide-footer":"","max-height":T.maxHeight,height:T.maxHeight,"show-header":T.showHeader,items:z.value,fields:L.value,stripe:!1,"row-class-name":K,loading:N.value,"onUpdate:onSortChanged":V,onOnRowClick:P},{"cell()":v(({item:e})=>[m("div",null,[u(l,{icon:"Info",size:"16",class:b(["custom-watchlist-item-table__info-icon",B(e.state)&&"is-disabled"]),onClick:k(t=>(async e=>{const t=T.symbols.find(t=>t.id===e);t&&await I(t)})(e.id),["stop"])},null,8,["class","onClick"])])]),"cell(ticker_symbol)":v(({item:e})=>[m("div",oe,[m("div",se,[m("span",{class:b(["custom-watchlist-item-table__symbol-text",B(e.state)&&"is-inactive"])},y(e.ticker_symbol),3),m("div",{class:"custom-watchlist-item-table__favorite",onClick:k(t=>{return l=e.id,void x(l);var l},["stop"])},[u(l,{icon:U.value(e).icon,color:U.value(e).color,size:"16"},null,8,["icon","color"])],8,ae)]),m("div",ie,[u(o,{content:e.description,placement:"right"},{default:v(()=>[m("span",{class:b(["custom-watchlist-item-table__description-text",B(e.state)&&"is-inactive"])},y(e.description),3)]),_:2},1032,["content"])])])]),"cell(last)":v(({item:e})=>[m("div",{style:g({color:M(e.last,e.state),width:"100%"})},[m("div",re,[m("div",null,y(e.last),1)])],4)]),"cell(volume)":v(({item:e})=>[m("div",{style:g({color:M(e.volume,e.state),width:"100%"})},[m("div",ce,[m("div",null,y(e.volume),1)])],4)]),empty:v(()=>[N.value?(c(),n("div",ne)):(c(),n("div",{key:1,class:"custom-watchlist-item-table__empty",style:g({height:T.maxHeight?`calc(${T.maxHeight} - 32px)`:"auto"})},[m("div",me,[m("span",ue,y(d(G)("watch-list.table.empty.symbol")),1)])],4))]),"sort-icon":v(({sortKey:e,direction:t})=>[u(l,{icon:O(e,t,A.value),size:"14",class:"custom-watchlist-item-table__sort-icon","active-color":"var(--icon-success)"},null,8,["icon"])]),_:1},8,["class","max-height","height","show-header","items","fields","loading"])])),[[a,N.value]])]),_:1})}}}),pe={class:"custom-watchlist__table"},he=o({__name:"index",props:{inputPlaceholder:{},searchData:{},categories:{},selectedCategory:{},isFiltered:{type:Boolean},tableHeight:{},viewingSymbols:{},viewingSymbolGroups:{},listSymbols:{},groupLoadingRowIds:{},favoriteSymbolIds:{},viewingSymbolId:{},listSymbolsLoading:{type:Boolean},sorting:{}},emits:["resize","selectCategory","update:searchData","groupExpandChange","groupRowClick","groupSortChanged","itemSortChanged","selectSymbol","toggleFavorite","showSymbolInfo"],setup(e,{emit:t}){const l=s(null),o=s(null),{width:a,height:r}=C(l),p=T(e,t);return i([a,r],()=>{l.value&&o.value&&p.onResize(a.value,r.value-o.value.clientHeight)}),(e,t)=>(c(),n("div",{ref_key:"watchlistRef",ref:l,class:"custom-watchlist"},[m("div",{ref_key:"watchlistFilterRef",ref:o,class:"custom-watchlist__filter"},[u(d(P))],512),m("div",pe,[u(d($))])],512))}});export{le as S,he as _,T as p,j as u};