@eaera-com/eaera-widgets-v2 0.1.86 → 0.1.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/base/EaeraDescriptions.d.ts +1 -1
- package/dist/components/base/EaeraTooltip.d.ts +12 -12
- package/dist/components/chunks/EaeraChatBox-BizsNzpv.mjs +7 -0
- package/dist/components/chunks/{index-9V1MulD6.mjs → index-BWt-XZ6U.mjs} +1 -1
- package/dist/components/chunks/{index-Bi7fGqMj.mjs → index-COzBGvhd.mjs} +1 -1
- package/dist/components/chunks/{index-ocf8b0Fd.mjs → index-CcNULtBu.mjs} +1 -1
- package/dist/components/chunks/{index-IeLjCes0.mjs → index-Cq-BW1_s.mjs} +1 -1
- package/dist/components/chunks/{index-B97jyUEn.mjs → index-CqkcXehS.mjs} +1 -1
- package/dist/components/composite/EaeraDropdownV2.d.ts +6 -6
- package/dist/components/custom/{EaeraChatBox/index.d.ts → EaeraChatBox.d.ts} +5 -3
- package/dist/components/custom/EaeraChatBox.mjs +1 -0
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.mjs +1 -7
- package/dist/components/webtrade/EaeraLightweightChart.mjs +1 -1
- package/dist/components/webtrade/EaeraMarketDepth.mjs +1 -1
- package/dist/components/webtrade/EaeraOrderPlacement.mjs +1 -1
- package/dist/components/webtrade/EaeraTimeNSales.mjs +1 -1
- package/dist/components/webtrade/EaeraWatchlist.mjs +1 -1
- package/dist/design-system/components/_chatbox.scss +1176 -0
- package/dist/design-system/themes/aurora/index.scss +1 -0
- package/dist/design-system/themes/core/index.scss +1 -0
- package/dist/design-system/themes/netr/index.scss +1 -0
- package/dist/eaera-widgets-v2.es.js +4979 -4925
- package/dist/eaera-widgets-v2.umd.cjs +20 -20
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -40,8 +40,8 @@ declare const __VLS_component: DefineComponent<__VLS_Props, {}, {}, {}, {}, Comp
|
|
|
40
40
|
size: "" | "large" | "default" | "small";
|
|
41
41
|
title: string;
|
|
42
42
|
direction: "vertical" | "horizontal";
|
|
43
|
-
border: boolean;
|
|
44
43
|
extra: string;
|
|
44
|
+
border: boolean;
|
|
45
45
|
column: number;
|
|
46
46
|
itemList: any[];
|
|
47
47
|
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
|
|
@@ -30,7 +30,7 @@ declare function __VLS_template(): {
|
|
|
30
30
|
$props: {
|
|
31
31
|
readonly showArrow?: boolean | undefined;
|
|
32
32
|
readonly "onUpdate:visible"?: (((value: boolean) => void) & ((...args: any[]) => any)) | undefined;
|
|
33
|
-
readonly role?: ("dialog" | "menu" | "
|
|
33
|
+
readonly role?: ("dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree") | undefined;
|
|
34
34
|
readonly appendTo?: (string | HTMLElement) | undefined;
|
|
35
35
|
readonly content?: string | undefined;
|
|
36
36
|
readonly rawContent?: boolean | undefined;
|
|
@@ -172,7 +172,7 @@ declare function __VLS_template(): {
|
|
|
172
172
|
"before-hide": (...args: any[]) => void;
|
|
173
173
|
}, string, {
|
|
174
174
|
style: string | false | CSSProperties | StyleValue[] | null;
|
|
175
|
-
role: "dialog" | "menu" | "
|
|
175
|
+
role: "dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree";
|
|
176
176
|
visible: boolean | null;
|
|
177
177
|
content: string;
|
|
178
178
|
teleported: boolean;
|
|
@@ -220,7 +220,7 @@ declare function __VLS_template(): {
|
|
|
220
220
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
|
|
221
221
|
} & Readonly<{
|
|
222
222
|
style: string | false | CSSProperties | StyleValue[] | null;
|
|
223
|
-
role: "dialog" | "menu" | "
|
|
223
|
+
role: "dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree";
|
|
224
224
|
visible: boolean | null;
|
|
225
225
|
content: string;
|
|
226
226
|
teleported: boolean;
|
|
@@ -280,7 +280,7 @@ declare const __VLS_component: DefineComponent<TooltipProps, {
|
|
|
280
280
|
$props: {
|
|
281
281
|
readonly showArrow?: boolean | undefined;
|
|
282
282
|
readonly "onUpdate:visible"?: (((value: boolean) => void) & ((...args: any[]) => any)) | undefined;
|
|
283
|
-
readonly role?: ("dialog" | "menu" | "
|
|
283
|
+
readonly role?: ("dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree") | undefined;
|
|
284
284
|
readonly appendTo?: (string | HTMLElement) | undefined;
|
|
285
285
|
readonly content?: string | undefined;
|
|
286
286
|
readonly rawContent?: boolean | undefined;
|
|
@@ -422,7 +422,7 @@ declare const __VLS_component: DefineComponent<TooltipProps, {
|
|
|
422
422
|
"before-hide": (...args: any[]) => void;
|
|
423
423
|
}, string, {
|
|
424
424
|
style: string | false | CSSProperties | StyleValue[] | null;
|
|
425
|
-
role: "dialog" | "menu" | "
|
|
425
|
+
role: "dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree";
|
|
426
426
|
visible: boolean | null;
|
|
427
427
|
content: string;
|
|
428
428
|
teleported: boolean;
|
|
@@ -470,7 +470,7 @@ declare const __VLS_component: DefineComponent<TooltipProps, {
|
|
|
470
470
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
|
|
471
471
|
} & Readonly<{
|
|
472
472
|
style: string | false | CSSProperties | StyleValue[] | null;
|
|
473
|
-
role: "dialog" | "menu" | "
|
|
473
|
+
role: "dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree";
|
|
474
474
|
visible: boolean | null;
|
|
475
475
|
content: string;
|
|
476
476
|
teleported: boolean;
|
|
@@ -524,7 +524,7 @@ declare const __VLS_component: DefineComponent<TooltipProps, {
|
|
|
524
524
|
$props: {
|
|
525
525
|
readonly showArrow?: boolean | undefined;
|
|
526
526
|
readonly "onUpdate:visible"?: (((value: boolean) => void) & ((...args: any[]) => any)) | undefined;
|
|
527
|
-
readonly role?: ("dialog" | "menu" | "
|
|
527
|
+
readonly role?: ("dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree") | undefined;
|
|
528
528
|
readonly appendTo?: (string | HTMLElement) | undefined;
|
|
529
529
|
readonly content?: string | undefined;
|
|
530
530
|
readonly rawContent?: boolean | undefined;
|
|
@@ -666,7 +666,7 @@ declare const __VLS_component: DefineComponent<TooltipProps, {
|
|
|
666
666
|
"before-hide": (...args: any[]) => void;
|
|
667
667
|
}, string, {
|
|
668
668
|
style: string | false | CSSProperties | StyleValue[] | null;
|
|
669
|
-
role: "dialog" | "menu" | "
|
|
669
|
+
role: "dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree";
|
|
670
670
|
visible: boolean | null;
|
|
671
671
|
content: string;
|
|
672
672
|
teleported: boolean;
|
|
@@ -714,7 +714,7 @@ declare const __VLS_component: DefineComponent<TooltipProps, {
|
|
|
714
714
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
|
|
715
715
|
} & Readonly<{
|
|
716
716
|
style: string | false | CSSProperties | StyleValue[] | null;
|
|
717
|
-
role: "dialog" | "menu" | "
|
|
717
|
+
role: "dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree";
|
|
718
718
|
visible: boolean | null;
|
|
719
719
|
content: string;
|
|
720
720
|
teleported: boolean;
|
|
@@ -788,7 +788,7 @@ declare const __VLS_component: DefineComponent<TooltipProps, {
|
|
|
788
788
|
$props: {
|
|
789
789
|
readonly showArrow?: boolean | undefined;
|
|
790
790
|
readonly "onUpdate:visible"?: (((value: boolean) => void) & ((...args: any[]) => any)) | undefined;
|
|
791
|
-
readonly role?: ("dialog" | "menu" | "
|
|
791
|
+
readonly role?: ("dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree") | undefined;
|
|
792
792
|
readonly appendTo?: (string | HTMLElement) | undefined;
|
|
793
793
|
readonly content?: string | undefined;
|
|
794
794
|
readonly rawContent?: boolean | undefined;
|
|
@@ -930,7 +930,7 @@ declare const __VLS_component: DefineComponent<TooltipProps, {
|
|
|
930
930
|
"before-hide": (...args: any[]) => void;
|
|
931
931
|
}, string, {
|
|
932
932
|
style: string | false | CSSProperties | StyleValue[] | null;
|
|
933
|
-
role: "dialog" | "menu" | "
|
|
933
|
+
role: "dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree";
|
|
934
934
|
visible: boolean | null;
|
|
935
935
|
content: string;
|
|
936
936
|
teleported: boolean;
|
|
@@ -978,7 +978,7 @@ declare const __VLS_component: DefineComponent<TooltipProps, {
|
|
|
978
978
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
|
|
979
979
|
} & Readonly<{
|
|
980
980
|
style: string | false | CSSProperties | StyleValue[] | null;
|
|
981
|
-
role: "dialog" | "menu" | "
|
|
981
|
+
role: "dialog" | "menu" | "grid" | "group" | "listbox" | "navigation" | "tooltip" | "tree";
|
|
982
982
|
visible: boolean | null;
|
|
983
983
|
content: string;
|
|
984
984
|
teleported: boolean;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
function __vite__mapDeps(indexes) {
|
|
2
|
+
if (!__vite__mapDeps.viteFileDeps) {
|
|
3
|
+
__vite__mapDeps.viteFileDeps = []
|
|
4
|
+
}
|
|
5
|
+
return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
|
|
6
|
+
}
|
|
7
|
+
import{inject as t,defineComponent as e,computed as a,openBlock as o,createElementBlock as n,createElementVNode as s,toDisplayString as c,createBlock as l,withCtx as i,createTextVNode as r,unref as d,createCommentVNode as u,Fragment as b,renderList as m,withKeys as p,withModifiers as v,normalizeClass as x,createVNode as y,ref as g,watch as _,onBeforeUnmount as k,nextTick as f,onMounted as w,Transition as C,normalizeStyle as S}from"vue";import{Trash2 as T,Download as E,Check as L,Copy as M,FileText as j,Bot as A,CircleCheck as z,CircleAlert as B,ArrowUp as I,List as R,ArrowDown as O,X as H,Paperclip as D,ChevronDown as P,Square as $,Menu as N,Plus as V,RefreshCw as U}from"@lucide/vue";import{useI18n as W}from"vue-i18n";import{_ as K}from"./EaeraButton-BPVKRBOn.mjs";import{d as q}from"./vendor-dayjs-BwyIiGHg.mjs";import{_ as F}from"./EaeraTag-DsDZxISm.mjs";import{_ as J}from"./iconSvg-B2wrn2gi.mjs";import{_ as X}from"./EaeraInput-CkbcAxy0.mjs";const Y=Symbol("eaera-chat-box-labels"),G={appTitle:"AI Assistant",history:"History",newChat:"New chat",close:"Close",retry:"Retry",delete:"Delete conversation",empty:"No conversations yet",loading:"Working…",sync:"Sync conversations",copy:"Copy",copied:"Copied!",download:"Download",thinking:"Thinking…",turnCompleted:"Completed",turnError:"Failed",navPrev:"Previous message",navList:"Back to current message",navNext:"Next message",placeholder:"Ask anything…",attach:"Attach files",attachRemove:"Remove file",stop:"Stop",send:"Send",autoMode:"AUTO",footer:"AI can make mistakes. Verify important details.",connectLead:"Connecting to your AI agent…",errorTitle:"Connection failed",errorLead:"The AI agent is unreachable right now. Try again in a moment.",noAgentTitle:"No AI agent assigned",noAgentLead:"Ask an administrator to assign you a personal AI agent.",notConfiguredTitle:"AI chat is not configured",notConfiguredLead:"The AI agent workspace is not set up for your account yet."},Q=()=>{const e=t(Y,void 0),{t:a,te:o}=W();return new Proxy({},{get(t,n){if("string"!=typeof n)return"";if(e&&n in e)return e[n];const s=`chatBox.${n}`;return o(s)?a(s):G[n]??n}})},Z={class:"chat-box-blocked","data-testid":"chat-box-blocked"},tt={class:"chat-box-blocked__title","data-testid":"chat-box-blocked-title"},et={class:"chat-box-blocked__lead","data-testid":"chat-box-blocked-lead"},at=e({__name:"EaeraChatBoxBlockedState",props:{chat:{}},emits:["retry"],setup(t,{emit:e}){const b=t,m=e,p=Q(),v={connecting:{title:"connectLead",lead:"connectLead"},"no-agent":{title:"noAgentTitle",lead:"noAgentLead"},"not-configured":{title:"notConfiguredTitle",lead:"notConfiguredLead"},error:{title:"errorTitle",lead:"errorLead"}},x=a(()=>{const t=v[b.chat.connectState];return{title:p[t.title],lead:p[t.lead]}}),y=a(()=>"error"===b.chat.connectState||"connecting"===b.chat.connectState);return(e,a)=>(o(),n("div",Z,[s("p",tt,c(x.value.title),1),s("p",et,c(x.value.lead),1),y.value?(o(),l(K,{key:0,size:"sm",color:"primary",class:"chat-box-blocked__retry",loading:"connecting"===t.chat.connectState,disabled:"connecting"===t.chat.connectState,"data-testid":"chat-box-blocked-retry",onClick:a[0]||(a[0]=t=>m("retry"))},{default:i(()=>[r(c(d(p).retry),1)]),_:1},8,["loading","disabled"])):u("",!0)]))}}),ot={class:"chat-box-history","data-testid":"eaera-chat-box-history"},nt={key:0,class:"chat-box-history__empty"},st=["onClick","onKeydown"],ct={class:"chat-box-history__name"},lt=["title","onClick"],it={key:1,class:"chat-box-history__loading"},rt=e({__name:"EaeraChatBoxHistoryList",props:{chat:{}},emits:["open","delete"],setup(t,{emit:e}){const a=e,l=Q();return(e,i)=>(o(),n("div",ot,[t.chat.chats.length||t.chat.isLoadingChats?u("",!0):(o(),n("p",nt,c(d(l).empty),1)),(o(!0),n(b,null,m(t.chat.chats,e=>(o(),n("div",{key:e.id,role:"button",tabindex:"0",class:x(["chat-box-history__item",{"chat-box-history__item--active":e.id===t.chat.activeSession?.id}]),onClick:t=>a("open",e),onKeydown:[p(v(t=>a("open",e),["prevent"]),["enter"]),p(v(t=>a("open",e),["prevent"]),["space"])]},[s("span",{class:x(["chat-box-history__dot",{"chat-box-history__dot--idle":"idle"===e.status}])},null,2),s("span",ct,c(e.name),1),s("button",{type:"button",class:"chat-box-history__delete",title:d(l).delete,onClick:v(t=>a("delete",e.id),["stop"])},[y(d(T),{class:"chat-box-history__delete-icon"})],8,lt)],42,st))),128)),t.chat.isLoadingChats?(o(),n("p",it,c(d(l).loading),1)):u("",!0)]))}}),dt={js:"javascript",jsx:"jsx",mjs:"javascript",cjs:"javascript",ts:"typescript",tsx:"tsx",vue:"vue",html:"html",xml:"xml",css:"css",scss:"scss",json:"json",json5:"json",yml:"yaml",yaml:"yaml",sh:"bash",shell:"bash",zsh:"bash",md:"markdown",py:"python",python:"python",sql:"sql",go:"go",rs:"rust",rust:"rust",java:"java",kt:"kotlin",php:"php",rb:"ruby",diff:"diff",dockerfile:"dockerfile",docker:"dockerfile"},ht=t=>dt[t.toLowerCase().trim()]??"",ut=async t=>{if("undefined"==typeof document)return"";const[{marked:e},{default:a}]=await Promise.all([J(()=>import("marked"),__vite__mapDeps([])),J(()=>import("dompurify"),__vite__mapDeps([]))]),o=e.parse(t??"",{async:!1});return a.sanitize(o,{ADD_ATTR:["target"]})},bt=async t=>{try{return await navigator.clipboard.writeText(t),!0}catch{return!1}},mt={class:"chat-box-code-card","data-testid":"eaera-chat-box-code-block"},pt={class:"chat-box-code-bar"},vt={class:"chat-box-code-lang"},xt={class:"chat-box-code-actions"},yt=["title"],gt=["title"],_t=["innerHTML"],kt=e({__name:"EaeraChatBoxCodeBlock",props:{code:{},lang:{}},setup(t){const e=t,i=Q(),r=g(""),u=g(!1);let b=null;const m=a(()=>e.lang||"text");let p=null;const v=async()=>{const t=e.code;if(t)try{const a=(await(p??=J(()=>import("shiki"),__vite__mapDeps([])).then(({createHighlighter:t})=>t({themes:["github-dark","github-light"],langs:["javascript","typescript","tsx","jsx","vue","html","css","scss","json","yaml","markdown","bash","python","sql","go","rust","java","php","ruby","diff","dockerfile"]})),p)).codeToHtml(t,{lang:e.lang||"text",theme:"github-light"});e.code===t&&(r.value=a)}catch{e.code===t&&(r.value="")}else r.value=""},f=()=>((t,e,a)=>{const o=new Blob([t],{type:"text/plain"}),n=URL.createObjectURL(o),s=document.createElement("a");s.href=n,s.download=`snippet.${e||"txt"}`,s.title=a.download,s.click(),URL.revokeObjectURL(n)})(e.code,e.lang,i),w=async()=>{await bt(e.code)&&(u.value=!0,b&&clearTimeout(b),b=setTimeout(()=>u.value=!1,1500))};return _(()=>[e.code,e.lang],()=>{v()},{immediate:!0}),k(()=>{b&&clearTimeout(b)}),(t,e)=>(o(),n("div",mt,[s("div",pt,[s("span",vt,c(m.value),1),s("div",xt,[s("button",{type:"button",class:"chat-box-code-btn",title:d(i).download,onClick:f},[y(d(E),{class:"chat-box-code-btn-icon"})],8,yt),s("button",{type:"button",class:x(["chat-box-code-btn",u.value?"chat-box-code-btn--ok":""]),title:d(i).copy,onClick:w},[u.value?(o(),l(d(L),{key:0,class:"chat-box-code-btn-icon"})):(o(),l(d(M),{key:1,class:"chat-box-code-btn-icon"}))],10,gt)])]),s("div",{class:"chat-box-code-body",innerHTML:r.value},null,8,_t)]))}}),ft=["innerHTML"],wt=e({__name:"EaeraChatBoxMarkdown",props:{content:{}},setup(t){const e=t,s=g(null),c=a(()=>(t=>{const e=[],a="```";let o=t??"";for(;o.length;){const t=o.indexOf(a);if(-1===t){e.push({type:"md",content:o});break}t>0&&e.push({type:"md",content:o.slice(0,t)});const n=o.indexOf("\n",t),s=-1===n?o.slice(t+3):o.slice(t+3,n),c=-1===n?o.length:n+1,l=o.indexOf(a,c);if(-1===l){e.push({type:"code",content:o.slice(c),lang:ht(s)});break}e.push({type:"code",content:o.slice(c,l).replace(/\n$/,""),lang:ht(s)}),o=o.slice(l+3).replace(/^\n/,"")}return e.filter(t=>t.content.length>0||"code"===t.type)})(e.content??"")),i=new Map,r=g(new Map);return _(c,()=>{(async()=>{const t=new Map;for(let e=0;e<c.value.length;e++){const a=c.value[e];if("md"!==a.type)continue;const o=i.get(a.content);if(void 0!==o){t.set(e,o);continue}const n=await ut(a.content);i.size>64&&i.clear(),i.set(a.content,n),t.set(e,n)}r.value=t})()},{immediate:!0}),(t,e)=>(o(),n("div",{ref_key:"rootEl",ref:s,class:"chat-box-md"},[(o(!0),n(b,null,m(c.value,(t,e)=>(o(),n(b,{key:e},["code"===t.type?(o(),l(kt,{key:0,code:t.content,lang:t.lang??""},null,8,["code","lang"])):(o(),n("div",{key:1,class:"chat-box-md__inner",innerHTML:r.value.get(e)},null,8,ft))],64))),128))],512))}}),Ct=["aria-label"],St=e({__name:"EaeraChatBoxTypingIndicator",setup(t){const e=Q();return(t,a)=>(o(),n("div",{class:"chat-box-typing","aria-label":d(e).thinking},[...a[0]||(a[0]=[s("span",{class:"chat-box-typing__dot"},null,-1),s("span",{class:"chat-box-typing__dot"},null,-1),s("span",{class:"chat-box-typing__dot"},null,-1)])],8,Ct))}}),Tt=["data-msg-id"],Et={key:0,class:"chat-box-msg__files"},Lt=["title"],Mt={key:1,class:"chat-box-user-bubble"},jt={key:2,class:"chat-box-msg__meta"},At=["title"],zt={key:0},Bt={class:"chat-box-msg__head"},It={class:"chat-box-msg__avatar"},Rt={key:0,class:"chat-box-msg__state-spinner"},Ot={key:0,class:"chat-box-assistant-card"},Ht={key:1,class:"chat-box-msg__foot"},Dt=["title"],Pt={key:0},$t={key:3,class:"chat-box-msg__error"},Nt=e({__name:"EaeraChatBoxMessageBubble",props:{turn:{}},setup(t){const e=t,p=Q(),v=a(()=>e.turn.streaming?"working":e.turn.error?"error":"completed"),_=a(()=>"working"===v.value?p.thinking:"error"===v.value?p.turnError:p.turnCompleted),k=async()=>{await bt(e.turn.text)&&(f.value=!0,w&&clearTimeout(w),w=setTimeout(()=>f.value=!1,1500))},f=g(!1);let w=null;const C=async()=>{await bt(e.turn.text)&&(f.value=!0,w&&clearTimeout(w),w=setTimeout(()=>f.value=!1,1500))};return(e,a)=>{return o(),n("div",{class:x(["chat-box-msg",["user"===t.turn.role?"eaera-chat-box-message-bubble--user chat-box-msg--user":"eaera-chat-box-message-bubble--assistant chat-box-msg--assistant"]]),"data-msg-id":t.turn.id,"data-testid":"eaera-chat-box-message"},["user"===t.turn.role?(o(),n(b,{key:0},[t.turn.files?.length?(o(),n("div",Et,[(o(!0),n(b,null,m(t.turn.files,(t,e)=>(o(),n("span",{key:`${t.name}-${e}`,class:"chat-box-attachment"},[y(d(j),{class:"chat-box-attachment-icon"}),s("span",{class:"chat-box-attachment-name",title:t.name},c(t.name),9,Lt)]))),128))])):u("",!0),t.turn.text?(o(),n("div",Mt,c(t.turn.text),1)):u("",!0),t.turn.ts?(o(),n("div",jt,[s("span",null,c((g=t.turn.ts,q(g).format("HH:mm:ss"))),1),s("button",{type:"button",class:"chat-box-msg__copy-btn",title:f.value?d(p).copied:d(p).copy,onClick:k},[f.value?(o(),l(d(L),{key:0,class:"chat-box-msg__copy-icon chat-box-msg__copy-icon--ok"})):(o(),l(d(M),{key:1,class:"chat-box-msg__copy-icon"}))],8,At),f.value?(o(),n("span",zt,c(d(p).copied),1)):u("",!0)])):u("",!0)],64)):(o(),n(b,{key:1},[s("div",Bt,[s("span",It,[y(d(A),{class:"chat-box-msg__avatar-icon"})]),a[0]||(a[0]=s("span",{class:"chat-box-msg__name"},"AI",-1))]),y(F,{class:"chat-box-msg__state",color:"error"===v.value?"error":"completed"===v.value?"success":"info",effect:"plain",size:"sm",round:""},{default:i(()=>["working"===v.value?(o(),n("span",Rt)):"completed"===v.value?(o(),l(d(z),{key:1,class:"chat-box-msg__state-icon-ok"})):(o(),l(d(B),{key:2,class:"chat-box-msg__state-icon-alert"})),r(" "+c(_.value),1)]),_:1},8,["color"]),t.turn.text?(o(),n("div",Ot,[y(wt,{content:t.turn.text},null,8,["content"])])):u("",!0),t.turn.text&&!t.turn.streaming?(o(),n("div",Ht,[s("button",{type:"button",class:"chat-box-msg__copy-btn",title:f.value?d(p).copied:d(p).copy,"data-testid":"chat-box-assistant-copy",onClick:C},[f.value?(o(),l(d(L),{key:0,class:"chat-box-msg__copy-icon chat-box-msg__copy-icon--ok"})):(o(),l(d(M),{key:1,class:"chat-box-msg__copy-icon"}))],8,Dt),f.value?(o(),n("span",Pt,c(d(p).copied),1)):u("",!0)])):u("",!0),t.turn.streaming&&!t.turn.text?(o(),l(St,{key:2})):u("",!0),t.turn.error?(o(),n("p",$t,c(t.turn.error),1)):u("",!0)],64))],10,Tt);var g}}}),Vt={class:"chat-box-msg-nav","data-testid":"chat-box-msg-nav"},Ut={key:0,class:"chat-box-nav-badge"},Wt=e({__name:"EaeraChatBoxMessageNav",props:{userCount:{},container:{}},setup(t){const e=t,a=Q(),s=g(0),l=g(!1),r=g(!1),b=t=>{const a=e.container?Array.from(e.container.querySelectorAll("[data-msg-id].eaera-chat-box-message-bubble--user")):[],o=a[Math.min(Math.max(t,0),a.length-1)];o&&o.scrollIntoView({behavior:"smooth",block:"start"})},m=t=>{const a=s.value+t;a<0||a>e.userCount-1||(s.value=a,l.value=s.value<=0,r.value=s.value>=e.userCount-1,b(s.value))},p=()=>b(s.value);return(e,s)=>(o(),n("div",Vt,[y(K,{isIconOnly:"",size:"md",plain:"",color:"contrast",class:x(["chat-box-nav-btn",{"chat-box-nav-btn--dim":l.value}]),disabled:l.value,title:d(a).navPrev,onClick:s[0]||(s[0]=t=>m(-1))},{default:i(()=>[y(d(I),{class:"chat-box-nav-icon"})]),_:1},8,["class","disabled","title"]),y(K,{isIconOnly:"",size:"md",plain:"",color:"contrast",class:"chat-box-nav-btn chat-box-nav-btn--active",title:d(a).navList,onClick:p},{default:i(()=>[y(d(R),{class:"chat-box-nav-icon chat-box-nav-icon--list"}),t.userCount?(o(),n("span",Ut,c(t.userCount),1)):u("",!0)]),_:1},8,["title"]),y(K,{isIconOnly:"",size:"md",plain:"",color:"contrast",class:x(["chat-box-nav-btn",{"chat-box-nav-btn--dim":r.value}]),disabled:r.value,title:d(a).navNext,onClick:s[1]||(s[1]=t=>m(1))},{default:i(()=>[y(d(O),{class:"chat-box-nav-icon"})]),_:1},8,["class","disabled","title"])]))}}),Kt={class:"chat-box-msglist"},qt={class:"chat-box-msglist__inner"},Ft={key:0,class:"chat-box-msglist__empty","data-testid":"chat-box-empty"},Jt=e({__name:"EaeraChatBoxMessageList",props:{turns:{},isStreaming:{type:Boolean}},setup(t){const e=t,i=Q(),r=g(null),p=g(!0),v=a(()=>e.turns.filter(t=>"user"===t.role).length),x=()=>{const t=r.value;t&&(p.value=t.scrollHeight-t.scrollTop-t.clientHeight<90)},y=(t=!1)=>{const e=r.value;e&&e.scrollTo({top:e.scrollHeight,behavior:t?"smooth":"auto"})};return _(()=>e.turns.map(t=>t.text.length+(t.streaming?1:0)).join("|"),()=>{p.value&&f(()=>y())}),_(()=>e.turns.length,(t,e)=>{(t??0)>(e??0)&&(p.value=!0,f(()=>y(!0)))}),w(()=>f(()=>y())),(e,a)=>(o(),n("div",Kt,[s("div",{ref_key:"scrollEl",ref:r,class:"chat-box-msglist__scroll","data-testid":"eaera-chat-box-messages",onScrollPassive:x},[s("div",qt,[t.turns.length?u("",!0):(o(),n("p",Ft,c(d(i).empty),1)),(o(!0),n(b,null,m(t.turns,t=>(o(),l(Nt,{key:t.id,turn:t},null,8,["turn"]))),128))])],544),t.turns.length?(o(),l(Wt,{key:0,"user-count":v.value,container:r.value},null,8,["user-count","container"])):u("",!0)]))}}),Xt={class:"chat-box-composer"},Yt={class:"chat-box-composer__card","data-testid":"eaera-chat-box-composer"},Gt={key:0,class:"chat-box-composer__files","data-testid":"chat-box-files"},Qt=["title"],Zt={class:"chat-box-attachment-size"},te=["title","onClick"],ee={class:"chat-box-composer__toolbar"},ae={class:"chat-box-composer__toolbar-left"},oe=["disabled","title"],ne={class:"chat-box-composer__agent"},se={class:"chat-box-composer__toolbar-right"},ce={class:"chat-box-composer__mode"},le={class:"chat-box-composer__footer"},ie=e({__name:"EaeraChatBoxComposer",props:{isStreaming:{type:Boolean}},emits:["send","stop"],setup(t,{expose:e,emit:a}){const p=t,v=a,_=Q(),k=g(""),f=g([]),w=g(null),C=g(null),S=t=>{const e=t.target;e.files?.length&&(t=>{for(const e of t){if(f.value.length>=5)break;e.size>20971520||f.value.push(e)}})([...e.files]),e.value=""},T=()=>{const t=k.value.trim();!t&&!f.value.length||p.isStreaming||(v("send",t,[...f.value]),k.value="",f.value=[])},E=t=>{"Enter"!==t.key||t.shiftKey||(t.preventDefault(),T())};return e({focus:()=>w.value?.focus()}),(e,a)=>(o(),n("div",Xt,[s("div",Yt,[f.value.length?(o(),n("div",Gt,[(o(!0),n(b,null,m(f.value,(t,e)=>{return o(),n("span",{key:`${t.name}-${e}`,class:"chat-box-attachment"},[y(d(j),{class:"chat-box-attachment-icon"}),s("span",{class:"chat-box-attachment-name",title:t.name},c(t.name),9,Qt),s("span",Zt,c((a=t.size,a>=1048576?`${(a/1048576).toFixed(1)} MB`:a>=1024?`${Math.round(a/1024)} KB`:`${a} B`)),1),s("button",{type:"button",class:"chat-box-composer__file-remove",title:d(_).attachRemove,"data-testid":"chat-box-file-remove",onClick:t=>(t=>{f.value.splice(t,1)})(e)},[y(d(H),{class:"chat-box-composer__remove-icon"})],8,te)]);var a}),128))])):u("",!0),y(X,{ref_key:"inputEl",ref:w,modelValue:k.value,"onUpdate:modelValue":a[0]||(a[0]=t=>k.value=t),type:"textarea",rows:1,autosize:{minRows:1,maxRows:8},maxlength:"10000",placeholder:d(_).placeholder,"data-testid":"chat-box-input",class:"chat-box-composer-input",onKeydown:E},null,8,["modelValue","placeholder"]),s("div",ee,[s("div",ae,[s("button",{type:"button",class:"chat-box-tool-btn",disabled:t.isStreaming,title:d(_).attach,"data-testid":"chat-box-attach",onClick:a[1]||(a[1]=t=>C.value?.click())},[y(d(D),{class:"chat-box-tool-icon"})],8,oe),s("input",{ref_key:"fileInputEl",ref:C,type:"file",multiple:"",hidden:"","data-testid":"chat-box-file-input",onChange:S},null,544),s("span",ne,[y(d(A),{class:"chat-box-tool-icon--sm chat-box-tool-icon"}),a[3]||(a[3]=s("span",{class:"chat-box-composer__agent-name"},"Default",-1)),y(d(P),{class:"chat-box-composer__agent-chevron"})])]),s("div",se,[s("span",{class:x(["chat-box-composer__counter",{"chat-box-composer__counter--limit":k.value.length>=1e4}])},c(k.value.length)+"/10000 ",3),s("span",ce,[a[4]||(a[4]=s("span",{class:"chat-box-composer__mode-dot"},null,-1)),r(" "+c(d(_).autoMode)+" ",1),y(d(P),{class:"chat-box-composer__mode-chevron"})]),t.isStreaming?(o(),l(K,{key:0,size:"sm",color:"danger","data-testid":"chat-box-stop",title:d(_).stop,onClick:a[2]||(a[2]=t=>v("stop"))},{default:i(()=>[y(d($),{class:"chat-box-tool-icon--sm chat-box-tool-icon"})]),_:1},8,["title"])):(o(),l(K,{key:1,size:"sm",color:"primary",disabled:!k.value.trim()&&!f.value.length||t.isStreaming,"data-testid":"chat-box-send",title:d(_).send,onClick:T},{default:i(()=>[y(d(I),{class:"chat-box-tool-icon"})]),_:1},8,["disabled","title"]))])])]),s("p",le,c(d(_).footer),1)]))}}),re={width:640,height:780},de=360,he=420,ue="eaera:chat-box-size",be=32,me=110,pe=()=>{const t=g((()=>{if("undefined"==typeof window)return{...re};try{const t=localStorage.getItem(ue);if(!t)return{...re};const e=JSON.parse(t);return{width:Math.min(Math.max(Number(e.width)||re.width,de),window.innerWidth-be),height:Math.min(Math.max(Number(e.height)||re.height,he),window.innerHeight-me)}}catch{return{...re}}})()),e=a(()=>({width:`${t.value.width}px`,height:`${t.value.height}px`}));let o=null,n={x:0,y:0,width:0,height:0};const s=e=>{if(!o)return;const a=e.clientX-n.x,s=e.clientY-n.y,c=window.innerWidth-be,l=window.innerHeight-me;let{width:i,height:r}=n;"w"!==o&&"nw"!==o||(i=Math.min(Math.max(n.width-a,de),c)),"n"!==o&&"nw"!==o||(r=Math.min(Math.max(n.height-s,he),l)),t.value={width:Math.round(i),height:Math.round(r)}},c=()=>{o=null,window.removeEventListener("pointermove",s);try{localStorage.setItem(ue,JSON.stringify(t.value))}catch{}};return k(()=>window.removeEventListener("pointermove",s)),{size:t,style:e,onResizeStart:(e,a)=>{e.preventDefault(),o=a,n={x:e.clientX,y:e.clientY,width:t.value.width,height:t.value.height},window.addEventListener("pointermove",s),window.addEventListener("pointerup",c,{once:!0})}}},ve=["data-mode"],xe={class:"chat-box-main"},ye={class:"chat-box-header"},ge=["title"],_e={class:"chat-box-header__title"},ke=["title"],fe=["title"],we=["title"],Ce={key:0,class:"chat-box-error","data-testid":"chat-box-error"},Se={key:2,class:"chat-box-fab__ping"},Te=e({__name:"EaeraChatBox",props:{chat:{},mode:{default:"floating"},open:{type:Boolean,default:!0}},emits:["update:open"],setup(t,{expose:e,emit:r}){const m=t,p=r,v=Q(),f=g("embedded"===m.mode||m.open),T=g("chat"),E=g(!1),L=g(null),M=g(!0),{isWide:j}=((t,e=640)=>{const a=g(!1);let o=null;const n=()=>{const o=t.value;o&&(a.value=o.clientWidth>=e)},s=()=>n();return w(()=>{n(),window.addEventListener("resize",s,{passive:!0}),"undefined"!=typeof ResizeObserver&&t.value&&(o=new ResizeObserver(n),o.observe(t.value))}),k(()=>{window.removeEventListener("resize",s),o?.disconnect()}),{isWide:a}})(L),z=a(()=>"embedded"===m.mode&&j.value),B=()=>{z.value?M.value=!M.value:T.value="history"===T.value?"chat":"history"},{style:I,onResizeStart:R}=pe(),O=a(()=>"floating"===m.mode?I.value:void 0),D=()=>{T.value="connected"===m.chat.connectState?"chat":"blocked"},P=async()=>{E.value=!0,await m.chat.ensureConnection(),D(),"chat"===T.value&&(await m.chat.loadChats(),m.chat.activeSession||m.chat.newChat())},$=t=>{f.value=t,p("update:open",t)};_(()=>m.open,t=>{t!==f.value&&(f.value=t,t&&!E.value&&P())});const W=async()=>{$(!f.value),f.value&&!E.value&&await P()},K=async t=>{await m.chat.openChat(t),T.value="chat"},q=async t=>{await m.chat.deleteChat(t)},F=async()=>{await m.chat.connect(),D(),"chat"===T.value&&(await m.chat.loadChats(),m.chat.activeSession||m.chat.newChat())},J=()=>{m.chat.newChat(),T.value="chat"},X=g(!1),Y=async()=>{if(!X.value){X.value=!0;try{await m.chat.loadChats()}finally{X.value=!1}}},G=async(t,e)=>{T.value="chat",await m.chat.send(t,e)};return _(()=>m.chat.connectState,t=>{"connected"===t&&"blocked"===T.value&&(T.value="chat"),"connected"!==t&&"connecting"!==t&&(T.value="blocked")}),w(()=>D()),e({open:f,view:T}),(e,a)=>(o(),n("div",{ref_key:"rootEl",ref:L,"data-testid":"eaera-chat-box",class:x("embedded"===t.mode&&"chat-box-embedded")},[y(C,{name:"chat-box-panel"},{default:i(()=>[f.value?(o(),n("div",{key:0,class:x(["chat-box-panel",["floating"===t.mode?"chat-box-panel--floating":"chat-box-panel--embedded",z.value&&"chat-box-panel--sidebar"]]),style:S(O.value),"data-mode":t.mode},["floating"===t.mode?(o(),n(b,{key:0},[s("div",{class:"chat-box-resize-n",onPointerdown:a[0]||(a[0]=t=>d(R)(t,"n"))},null,32),s("div",{class:"chat-box-resize-w",onPointerdown:a[1]||(a[1]=t=>d(R)(t,"w"))},null,32),s("div",{class:"chat-box-resize-nw",onPointerdown:a[2]||(a[2]=t=>d(R)(t,"nw"))},null,32)],64)):u("",!0),z.value?(o(),n("aside",{key:1,class:x(["chat-box-sidebar",{"chat-box-sidebar--open":M.value}]),"data-testid":"chat-box-widget-sidebar"},[y(rt,{chat:t.chat,onOpen:K,onDelete:q},null,8,["chat"])],2)):u("",!0),s("div",xe,[s("div",ye,["blocked"!==T.value?(o(),n("button",{key:0,type:"button",class:"chat-box-head-btn",title:d(v).history,"data-testid":"chat-box-widget-history",onClick:B},[y(d(N),{class:"chat-box-icon"})],8,ge)):u("",!0),s("span",_e,c("history"!==T.value||z.value?d(v).appTitle:d(v).history),1),"blocked"!==T.value?(o(),n("button",{key:1,type:"button",class:"chat-box-head-btn",title:d(v).newChat,"data-testid":"chat-box-widget-new",onClick:J},[y(d(V),{class:"chat-box-icon"})],8,ke)):u("",!0),s("button",{type:"button",class:x(["chat-box-head-btn",{"chat-box-head-btn--spin":X.value}]),title:d(v).sync,"data-testid":"chat-box-widget-sync",onClick:Y},[y(d(U),{class:"chat-box-icon"})],10,fe),"floating"===t.mode?(o(),n("button",{key:2,type:"button",class:"chat-box-head-btn",title:d(v).close,"data-testid":"chat-box-widget-close",onClick:a[3]||(a[3]=t=>$(!1))},[y(d(H),{class:"chat-box-icon"})],8,we)):u("",!0)]),"blocked"===T.value?(o(),l(at,{key:0,chat:t.chat,onRetry:F},null,8,["chat"])):"history"!==T.value||z.value?(o(),n(b,{key:2},[y(Jt,{turns:t.chat.turns,"is-streaming":t.chat.isStreaming},null,8,["turns","is-streaming"]),t.chat.errorMessage&&!t.chat.isStreaming?(o(),n("p",Ce,c(t.chat.errorMessage),1)):u("",!0),y(ie,{"is-streaming":t.chat.isStreaming,onSend:G,onStop:t.chat.stop},null,8,["is-streaming","onStop"])],64)):(o(),l(rt,{key:1,chat:t.chat,onOpen:K,onDelete:q},null,8,["chat"]))])],14,ve)):u("",!0)]),_:1}),"floating"===t.mode?(o(),n("button",{key:0,type:"button",class:x(["chat-box-fab",{"chat-box-fab--open":f.value}]),"data-testid":"chat-box-widget-toggle","aria-label":"AI chat",onClick:W},[f.value?(o(),l(d(H),{key:0,class:"chat-box-fab-icon"})):(o(),l(d(A),{key:1,class:"chat-box-fab-icon"})),t.chat.isStreaming?(o(),n("span",Se)):u("",!0)],2)):u("",!0)],2))}});export{Y as C,G as D,Te as _,pe as a,Q as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{computed as e,provide as t,inject as l,defineComponent as o,shallowRef as s,ref as a,watch as i,resolveComponent as r,openBlock as c,createElementBlock as n,createElementVNode as m,createVNode as u,unref as d,createSlots as p,withCtx as v,toDisplayString as y,normalizeClass as b,normalizeStyle as g,Fragment as w,renderList as _,createBlock as f,withDirectives as S,withModifiers as k}from"vue";import{a as C}from"./vendor-vueuse-core-B96HGhR7.mjs";import x from"../composite/EaeraDropdownV2.mjs";import{_ as I}from"./EaeraInput-CkbcAxy0.mjs";import{useI18n as E}from"vue-i18n";import"element-plus";import{ElLoadingDirective as H}from"element-plus/es";import"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import{_ as R}from"./EaeraTableV2-CIeL4xlB.mjs";import{_ as D}from"./EaeraTooltip-BIlULHv4.mjs";const G=Symbol("EAERA_WATCHLIST_CONTEXT_KEY"),T=(l,o)=>{const s={inputPlaceholder:e(()=>l.inputPlaceholder),searchData:e(()=>l.searchData),categories:e(()=>l.categories),selectedCategory:e(()=>l.selectedCategory),isFiltered:e(()=>l.isFiltered),tableHeight:e(()=>l.tableHeight),viewingSymbols:e(()=>l.viewingSymbols),viewingSymbolGroups:e(()=>l.viewingSymbolGroups),listSymbols:e(()=>l.listSymbols),groupLoadingRowIds:e(()=>l.groupLoadingRowIds),favoriteSymbolIds:e(()=>l.favoriteSymbolIds),viewingSymbolId:e(()=>l.viewingSymbolId),listSymbolsLoading:e(()=>l.listSymbolsLoading),sorting:e(()=>l.sorting),onResize:(e,t)=>o("resize",e,t),onSelectCategory:e=>o("selectCategory",e),onSearchDataUpdate:e=>o("update:searchData",e),onGroupExpandChange:e=>o("groupExpandChange",e),onGroupRowClick:e=>o("groupRowClick",e),onGroupSortChanged:e=>o("groupSortChanged",e),onItemSortChanged:e=>o("itemSortChanged",e),onSelectSymbol:e=>o("selectSymbol",e),onToggleFavorite:e=>o("toggleFavorite",e),onShowSymbolInfo:e=>o("showSymbolInfo",e)};return t(G,s),s},j=()=>{const e=l(G);if(!e)throw new Error("useEaeraWatchlist must be used inside EaeraWatchlist");return e},W={class:"custom-watchlist-filter"},F={class:"custom-watchlist-filter__row"},L={class:"custom-watchlist-filter__field"},z={class:"custom-watchlist-filter__field"},U=["onClick"],A={class:"custom-watchlist-filter__category-count"},N={class:"custom-watchlist-filter__dropdown-trigger-content"},B={key:0,class:"custom-watchlist-filter__selected"},V={key:1,class:"custom-watchlist-filter__placeholder"},P=o({__name:"EaeraWatchlistFilter",setup(e){const{inputPlaceholder:t,searchData:l,categories:o,selectedCategory:f,onSelectCategory:S,onSearchDataUpdate:k}=j(),C=s(),E=a(!1),H=a(!1),R=a(""),D=a(!1);i(l,e=>{e!==R.value&&(R.value=e)},{immediate:!0});const G=e=>{D.value||k(e)},T=()=>D.value=!0,P=e=>k(e.data),K=e=>{D.value=!1;const t=e.data??R.value;k(t)};return(e,s)=>{const a=r("eaera-icon"),i=I,k=x;return c(),n("div",W,[m("div",F,[m("div",L,[u(i,{modelValue:R.value,"onUpdate:modelValue":s[0]||(s[0]=e=>R.value=e),class:"watchlist-input",placeholder:d(t),clearable:"",onInput:G,onCompositionstart:T,onCompositionupdate:P,onCompositionend:K},p({_:2},[d(l)?void 0:{name:"suffix",fn:v(()=>[u(a,{icon:"Search2",size:"16",class:"icon-primary"})]),key:"0"}]),1032,["modelValue","placeholder"])]),m("div",z,[u(k,{class:"custom-watchlist-filter__dropdown","popper-class":"with-border",onVisibleChange:s[4]||(s[4]=e=>E.value=e)},{dropdown:v(()=>[m("div",{class:"custom-watchlist-filter__dropdown-menu",style:g({width:`${C.value?.clientWidth??100}px`})},[(c(!0),n(w,null,_(d(o),e=>(c(),n("div",{key:e.id,class:"custom-watchlist-filter__category"},[m("div",{class:"custom-watchlist-filter__category-content label-md",onClick:t=>d(S)(e)},[m("div",null,y(e.name),1),m("div",A,y(e.count),1)],8,U)]))),128))],4)]),default:v(()=>[m("div",{ref_key:"dropdownRef",ref:C,class:"custom-watchlist-filter__dropdown-trigger"},[m("div",N,[d(f)?.name?(c(),n("span",B,y(d(f).name),1)):(c(),n("span",V,y(e.$t("watch-list.filter.categories")),1)),m("div",{class:"custom-watchlist-filter__icon-wrapper",onMouseenter:s[1]||(s[1]=e=>H.value=!0),onMouseleave:s[2]||(s[2]=e=>H.value=!1),onClick:s[3]||(s[3]=e=>d(S)(null))},[u(a,{icon:H.value&&d(f)?"XCircle":"ChevronDown",size:"16",class:b(["icon-primary","custom-watchlist-filter__dropdown-icon",E.value&&"is-open"])},null,8,["icon","class"])],32)])],512)]),_:1})])])])}}}),K={class:"custom-watchlist-table"},M={key:0,class:"custom-watchlist-table__group"},O={key:1,class:"custom-watchlist-table__items"},$=o({__name:"EaeraWatchlistTable",setup(e){const{isFiltered:t,tableHeight:l,viewingSymbols:o,listSymbolsLoading:s}=j();return(e,a)=>(c(),n("div",K,[d(t)?(c(),n("div",O,[u(d(de),{symbols:d(o),"max-height":d(l),loading:d(s),"show-header":""},null,8,["symbols","max-height","loading"])])):(c(),n("div",M,[u(d(te))]))]))}}),X={class:"custom-watchlist-group-table__symbol-cell"},Y={class:"custom-watchlist-group-table__symbol body-md__w"},q={class:"custom-watchlist-group-table__name body-sm"},J={key:0},Q={class:"custom-watchlist-group-table__empty"},Z={class:"custom-watchlist-group-table__empty-content"},ee={class:"custom-watchlist-group-table__empty-text body-sm"},te=o({__name:"EaeraWatchlistGroupTable",setup(t){const{tableHeight:l,viewingSymbolGroups:o,listSymbols:s,groupLoadingRowIds:p,sorting:b,onGroupExpandChange:g,onGroupRowClick:w,onGroupSortChanged:_}=j(),{t:S}=E(),k=a(),C=({columnIndex:e})=>0===e?[1,1]:1===e?[1,4]:[0,0],x=e=>{g(e)},I=async e=>{await w(e),k.value?.rowExpansion(e)},H=e(()=>[{key:"expand",type:"expand",width:30},{key:"ticker_symbol",label:S("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",cellClass:"py-0",minWidth:100},{key:"last",label:S("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",minWidth:110},{key:"volume",label:S("watch-list.table.volume"),sortable:!0,sort_key:"volume",align:"right",minWidth:100}]),D=e(()=>k.value?.sort),G=e=>{_(e)},T=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2",W=({row:e})=>p.value.includes(e.id)?"loading-row":"";return i(b,e=>{e||k.value?.sortTable("",null)}),(e,t)=>{const a=r("NoData"),i=r("eaera-icon");return c(),f(d(R),{ref_key:"watchListTableRef",ref:k,class:"watchlist-table","max-height":d(l),items:d(o),fields:H.value,"span-method":C,stripe:!1,"hide-footer":"","row-class-name":W,onRowClick:I,onExpandChange:x,"onUpdate:onSortChanged":G},{"cell(ticker_symbol)":v(({item:e})=>[m("div",X,[m("div",Y,y(e.host_exchange)+":"+y(e.base_symbol),1),m("div",q,y(e.name),1)])]),"cell(expand)":v(({row:e})=>[d(p).includes(e.id)?(c(),n("div",J)):(c(),f(d(de),{key:1,symbols:d(s)[e.id]||[],"inside-group":""},null,8,["symbols"]))]),empty:v(()=>[m("div",Q,[m("div",Z,[u(a),m("span",ee,y(d(S)("watch-list.table.empty.group")),1)])])]),"sort-icon":v(({sortKey:e,direction:t})=>[u(i,{icon:T(e,t,D.value),size:"14",class:"custom-watchlist-group-table__sort-icon","active-color":"var(--primary-green)"},null,8,["icon"])]),_:1},8,["max-height","items","fields"])}}});var le=(e=>(e.Active="active",e.MarketClosed="market-closed",e.Expired="expired",e.NotTradableYet="not-tradable-yet",e))(le||{});const oe={class:"custom-watchlist-item-table__symbol-cell"},se={class:"custom-watchlist-item-table__symbol-main body-md__w"},ae=["onClick"],ie={class:"custom-watchlist-item-table__description-row body-sm"},re={style:{width:"100%"}},ce={style:{width:"100%"}},ne={key:0},me={class:"custom-watchlist-item-table__empty-content"},ue={class:"custom-watchlist-item-table__empty-text body-sm"},de=o({__name:"EaeraWatchlistItemTable",props:{insideGroup:{type:Boolean},symbols:{},maxHeight:{},showHeader:{type:Boolean},loading:{type:Boolean}},setup(t){const{favoriteSymbolIds:l,viewingSymbolId:o,sorting:s,selectedCategory:p,listSymbolsLoading:w,onItemSortChanged:_,onSelectSymbol:C,onToggleFavorite:x,onShowSymbolInfo:I}=j(),{t:G}=E(),T=t,W=a(),F=a(null),L=e(()=>[{key:"",label:"",width:30},{key:"ticker_symbol",label:G("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",align:"left",minWidth:100},{key:"last",label:G("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",customHeaderClass:"flex justify-end items-center",minWidth:110},{key:"volume",label:G("watch-list.table.volume"),sortable:!0,sort_key:"volume",customHeaderClass:"flex justify-end items-center",minWidth:100,align:"right"}]),z=e(()=>F.value?"ticker_symbol"===F.value.key?[...T.symbols].sort((e,t)=>{const l=e.ticker_symbol.toUpperCase(),o=t.ticker_symbol.toUpperCase();return l<o?"desc"===F.value?.direction?-1:1:l>o?"desc"===F.value?.direction?1:-1:0}):"volume"===F.value.key?[...T.symbols].sort((e,t)=>e.volume<t.volume?"asc"===F.value?.direction?-1:1:e.volume>t.volume?"asc"===F.value?.direction?1:-1:0):"last"===F.value.key?[...T.symbols].sort((e,t)=>{const l=Number(e.last),o=Number(t.last);return l<o?"asc"===F.value?.direction?-1:1:l>o?"asc"===F.value?.direction?1:-1:0}):T.symbols:T.symbols),U=e(()=>e=>l.value.includes(e.id)?{icon:"Star3",color:"#FFD700"}:{icon:"StarOutline",color:"var(--primary-green)"}),A=e(()=>W.value?.sort),N=e(()=>T.insideGroup?T.loading:w.value),B=e=>e!==le.Active,V=({key:e,direction:t})=>{e&&t?(F.value={key:e,direction:t,selfSort:!0},_({key:e,direction:t})):(F.value?.selfSort&&_(null),F.value=null)},P=e=>{C(e)},K=({row:e})=>e.id===o.value?"active-row":"",M=(e,t)=>{if(t&&t!==le.Active)return"var(--text-disabled)";const l=Number(e);return l>0?"var(--text-green)":l<0?"var(--text-red)":"var(--text-primary)"},O=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2";return i(W,e=>{e&&(T.insideGroup||s.value&&(e.sortTable("",s.value.sort_by),F.value={key:s.value.sort_by,direction:s.value.order,selfSort:!1}))}),i(()=>p.value?.id,()=>F.value=null),(e,t)=>{const l=r("eaera-icon"),o=D,s=r("client-only"),a=H;return c(),f(s,null,{default:v(()=>[S((c(),n("div",null,[u(d(R),{ref_key:"watchListTableRef",ref:W,class:b(["expanding-rows-table watchlist-table expanded",[!z.value?.length&&!T.insideGroup&&"empty",T.insideGroup&&"inside-group"]]),"allow-sort-reset":"","hide-footer":"","max-height":T.maxHeight,height:T.maxHeight,"show-header":T.showHeader,items:z.value,fields:L.value,stripe:!1,"row-class-name":K,loading:N.value,"onUpdate:onSortChanged":V,onOnRowClick:P},{"cell()":v(({item:e})=>[m("div",null,[u(l,{icon:"Info",size:"16",class:b(["custom-watchlist-item-table__info-icon",B(e.state)&&"is-disabled"]),onClick:k(t=>(async e=>{const t=T.symbols.find(t=>t.id===e);t&&await I(t)})(e.id),["stop"])},null,8,["class","onClick"])])]),"cell(ticker_symbol)":v(({item:e})=>[m("div",oe,[m("div",se,[m("span",{class:b(["custom-watchlist-item-table__symbol-text",B(e.state)&&"is-inactive"])},y(e.ticker_symbol),3),m("div",{class:"custom-watchlist-item-table__favorite",onClick:k(t=>{return l=e.id,void x(l);var l},["stop"])},[u(l,{icon:U.value(e).icon,color:U.value(e).color,size:"16"},null,8,["icon","color"])],8,ae)]),m("div",ie,[u(o,{content:e.description,placement:"right"},{default:v(()=>[m("span",{class:b(["custom-watchlist-item-table__description-text",B(e.state)&&"is-inactive"])},y(e.description),3)]),_:2},1032,["content"])])])]),"cell(last)":v(({item:e})=>[m("div",{style:g({color:M(e.last,e.state),width:"100%"})},[m("div",re,[m("div",null,y(e.last),1)])],4)]),"cell(volume)":v(({item:e})=>[m("div",{style:g({color:M(e.volume,e.state),width:"100%"})},[m("div",ce,[m("div",null,y(e.volume),1)])],4)]),empty:v(()=>[N.value?(c(),n("div",ne)):(c(),n("div",{key:1,class:"custom-watchlist-item-table__empty",style:g({height:T.maxHeight?`calc(${T.maxHeight} - 32px)`:"auto"})},[m("div",me,[m("span",ue,y(d(G)("watch-list.table.empty.symbol")),1)])],4))]),"sort-icon":v(({sortKey:e,direction:t})=>[u(l,{icon:O(e,t,A.value),size:"14",class:"custom-watchlist-item-table__sort-icon","active-color":"var(--icon-success)"},null,8,["icon"])]),_:1},8,["class","max-height","height","show-header","items","fields","loading"])])),[[a,N.value]])]),_:1})}}}),pe={class:"custom-watchlist__table"},he=o({__name:"index",props:{inputPlaceholder:{},searchData:{},categories:{},selectedCategory:{},isFiltered:{type:Boolean},tableHeight:{},viewingSymbols:{},viewingSymbolGroups:{},listSymbols:{},groupLoadingRowIds:{},favoriteSymbolIds:{},viewingSymbolId:{},listSymbolsLoading:{type:Boolean},sorting:{}},emits:["resize","selectCategory","update:searchData","groupExpandChange","groupRowClick","groupSortChanged","itemSortChanged","selectSymbol","toggleFavorite","showSymbolInfo"],setup(e,{emit:t}){const l=s(null),o=s(null),{width:a,height:r}=C(l),p=T(e,t);return i([a,r],()=>{l.value&&o.value&&p.onResize(a.value,r.value-o.value.clientHeight)}),(e,t)=>(c(),n("div",{ref_key:"watchlistRef",ref:l,class:"custom-watchlist"},[m("div",{ref_key:"watchlistFilterRef",ref:o,class:"custom-watchlist__filter"},[u(d(P))],512),m("div",pe,[u(d($))])],512))}});export{le as S,he as _,T as p,j as u};
|
|
1
|
+
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"@lucide/vue";import"element-plus";import{ElLoadingDirective as H}from"element-plus/es";import"./vendor-email-misspelled-0hsXkSSK.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import{_ as R}from"./EaeraTableV2-CIeL4xlB.mjs";import{_ as D}from"./EaeraTooltip-BIlULHv4.mjs";const G=Symbol("EAERA_WATCHLIST_CONTEXT_KEY"),T=(l,o)=>{const s={inputPlaceholder:e(()=>l.inputPlaceholder),searchData:e(()=>l.searchData),categories:e(()=>l.categories),selectedCategory:e(()=>l.selectedCategory),isFiltered:e(()=>l.isFiltered),tableHeight:e(()=>l.tableHeight),viewingSymbols:e(()=>l.viewingSymbols),viewingSymbolGroups:e(()=>l.viewingSymbolGroups),listSymbols:e(()=>l.listSymbols),groupLoadingRowIds:e(()=>l.groupLoadingRowIds),favoriteSymbolIds:e(()=>l.favoriteSymbolIds),viewingSymbolId:e(()=>l.viewingSymbolId),listSymbolsLoading:e(()=>l.listSymbolsLoading),sorting:e(()=>l.sorting),onResize:(e,t)=>o("resize",e,t),onSelectCategory:e=>o("selectCategory",e),onSearchDataUpdate:e=>o("update:searchData",e),onGroupExpandChange:e=>o("groupExpandChange",e),onGroupRowClick:e=>o("groupRowClick",e),onGroupSortChanged:e=>o("groupSortChanged",e),onItemSortChanged:e=>o("itemSortChanged",e),onSelectSymbol:e=>o("selectSymbol",e),onToggleFavorite:e=>o("toggleFavorite",e),onShowSymbolInfo:e=>o("showSymbolInfo",e)};return t(G,s),s},j=()=>{const e=l(G);if(!e)throw new Error("useEaeraWatchlist must be used inside EaeraWatchlist");return e},W={class:"custom-watchlist-filter"},F={class:"custom-watchlist-filter__row"},L={class:"custom-watchlist-filter__field"},z={class:"custom-watchlist-filter__field"},U=["onClick"],A={class:"custom-watchlist-filter__category-count"},N={class:"custom-watchlist-filter__dropdown-trigger-content"},B={key:0,class:"custom-watchlist-filter__selected"},V={key:1,class:"custom-watchlist-filter__placeholder"},P=o({__name:"EaeraWatchlistFilter",setup(e){const{inputPlaceholder:t,searchData:l,categories:o,selectedCategory:f,onSelectCategory:S,onSearchDataUpdate:k}=j(),C=s(),E=a(!1),H=a(!1),R=a(""),D=a(!1);i(l,e=>{e!==R.value&&(R.value=e)},{immediate:!0});const G=e=>{D.value||k(e)},T=()=>D.value=!0,P=e=>k(e.data),K=e=>{D.value=!1;const t=e.data??R.value;k(t)};return(e,s)=>{const a=r("eaera-icon"),i=I,k=x;return c(),n("div",W,[m("div",F,[m("div",L,[u(i,{modelValue:R.value,"onUpdate:modelValue":s[0]||(s[0]=e=>R.value=e),class:"watchlist-input",placeholder:d(t),clearable:"",onInput:G,onCompositionstart:T,onCompositionupdate:P,onCompositionend:K},p({_:2},[d(l)?void 0:{name:"suffix",fn:v(()=>[u(a,{icon:"Search2",size:"16",class:"icon-primary"})]),key:"0"}]),1032,["modelValue","placeholder"])]),m("div",z,[u(k,{class:"custom-watchlist-filter__dropdown","popper-class":"with-border",onVisibleChange:s[4]||(s[4]=e=>E.value=e)},{dropdown:v(()=>[m("div",{class:"custom-watchlist-filter__dropdown-menu",style:g({width:`${C.value?.clientWidth??100}px`})},[(c(!0),n(w,null,_(d(o),e=>(c(),n("div",{key:e.id,class:"custom-watchlist-filter__category"},[m("div",{class:"custom-watchlist-filter__category-content label-md",onClick:t=>d(S)(e)},[m("div",null,y(e.name),1),m("div",A,y(e.count),1)],8,U)]))),128))],4)]),default:v(()=>[m("div",{ref_key:"dropdownRef",ref:C,class:"custom-watchlist-filter__dropdown-trigger"},[m("div",N,[d(f)?.name?(c(),n("span",B,y(d(f).name),1)):(c(),n("span",V,y(e.$t("watch-list.filter.categories")),1)),m("div",{class:"custom-watchlist-filter__icon-wrapper",onMouseenter:s[1]||(s[1]=e=>H.value=!0),onMouseleave:s[2]||(s[2]=e=>H.value=!1),onClick:s[3]||(s[3]=e=>d(S)(null))},[u(a,{icon:H.value&&d(f)?"XCircle":"ChevronDown",size:"16",class:b(["icon-primary","custom-watchlist-filter__dropdown-icon",E.value&&"is-open"])},null,8,["icon","class"])],32)])],512)]),_:1})])])])}}}),K={class:"custom-watchlist-table"},M={key:0,class:"custom-watchlist-table__group"},O={key:1,class:"custom-watchlist-table__items"},$=o({__name:"EaeraWatchlistTable",setup(e){const{isFiltered:t,tableHeight:l,viewingSymbols:o,listSymbolsLoading:s}=j();return(e,a)=>(c(),n("div",K,[d(t)?(c(),n("div",O,[u(d(de),{symbols:d(o),"max-height":d(l),loading:d(s),"show-header":""},null,8,["symbols","max-height","loading"])])):(c(),n("div",M,[u(d(te))]))]))}}),X={class:"custom-watchlist-group-table__symbol-cell"},Y={class:"custom-watchlist-group-table__symbol body-md__w"},q={class:"custom-watchlist-group-table__name body-sm"},J={key:0},Q={class:"custom-watchlist-group-table__empty"},Z={class:"custom-watchlist-group-table__empty-content"},ee={class:"custom-watchlist-group-table__empty-text body-sm"},te=o({__name:"EaeraWatchlistGroupTable",setup(t){const{tableHeight:l,viewingSymbolGroups:o,listSymbols:s,groupLoadingRowIds:p,sorting:b,onGroupExpandChange:g,onGroupRowClick:w,onGroupSortChanged:_}=j(),{t:S}=E(),k=a(),C=({columnIndex:e})=>0===e?[1,1]:1===e?[1,4]:[0,0],x=e=>{g(e)},I=async e=>{await w(e),k.value?.rowExpansion(e)},H=e(()=>[{key:"expand",type:"expand",width:30},{key:"ticker_symbol",label:S("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",cellClass:"py-0",minWidth:100},{key:"last",label:S("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",minWidth:110},{key:"volume",label:S("watch-list.table.volume"),sortable:!0,sort_key:"volume",align:"right",minWidth:100}]),D=e(()=>k.value?.sort),G=e=>{_(e)},T=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2",W=({row:e})=>p.value.includes(e.id)?"loading-row":"";return i(b,e=>{e||k.value?.sortTable("",null)}),(e,t)=>{const a=r("NoData"),i=r("eaera-icon");return c(),f(d(R),{ref_key:"watchListTableRef",ref:k,class:"watchlist-table","max-height":d(l),items:d(o),fields:H.value,"span-method":C,stripe:!1,"hide-footer":"","row-class-name":W,onRowClick:I,onExpandChange:x,"onUpdate:onSortChanged":G},{"cell(ticker_symbol)":v(({item:e})=>[m("div",X,[m("div",Y,y(e.host_exchange)+":"+y(e.base_symbol),1),m("div",q,y(e.name),1)])]),"cell(expand)":v(({row:e})=>[d(p).includes(e.id)?(c(),n("div",J)):(c(),f(d(de),{key:1,symbols:d(s)[e.id]||[],"inside-group":""},null,8,["symbols"]))]),empty:v(()=>[m("div",Q,[m("div",Z,[u(a),m("span",ee,y(d(S)("watch-list.table.empty.group")),1)])])]),"sort-icon":v(({sortKey:e,direction:t})=>[u(i,{icon:T(e,t,D.value),size:"14",class:"custom-watchlist-group-table__sort-icon","active-color":"var(--primary-green)"},null,8,["icon"])]),_:1},8,["max-height","items","fields"])}}});var le=(e=>(e.Active="active",e.MarketClosed="market-closed",e.Expired="expired",e.NotTradableYet="not-tradable-yet",e))(le||{});const oe={class:"custom-watchlist-item-table__symbol-cell"},se={class:"custom-watchlist-item-table__symbol-main body-md__w"},ae=["onClick"],ie={class:"custom-watchlist-item-table__description-row body-sm"},re={style:{width:"100%"}},ce={style:{width:"100%"}},ne={key:0},me={class:"custom-watchlist-item-table__empty-content"},ue={class:"custom-watchlist-item-table__empty-text body-sm"},de=o({__name:"EaeraWatchlistItemTable",props:{insideGroup:{type:Boolean},symbols:{},maxHeight:{},showHeader:{type:Boolean},loading:{type:Boolean}},setup(t){const{favoriteSymbolIds:l,viewingSymbolId:o,sorting:s,selectedCategory:p,listSymbolsLoading:w,onItemSortChanged:_,onSelectSymbol:C,onToggleFavorite:x,onShowSymbolInfo:I}=j(),{t:G}=E(),T=t,W=a(),F=a(null),L=e(()=>[{key:"",label:"",width:30},{key:"ticker_symbol",label:G("watch-list.table.symbol"),sortable:!0,sort_key:"ticker_symbol",customHeaderClass:"flex justify-start items-center",align:"left",minWidth:100},{key:"last",label:G("watch-list.table.last-price"),sortable:!0,sort_key:"last",align:"right",customHeaderClass:"flex justify-end items-center",minWidth:110},{key:"volume",label:G("watch-list.table.volume"),sortable:!0,sort_key:"volume",customHeaderClass:"flex justify-end items-center",minWidth:100,align:"right"}]),z=e(()=>F.value?"ticker_symbol"===F.value.key?[...T.symbols].sort((e,t)=>{const l=e.ticker_symbol.toUpperCase(),o=t.ticker_symbol.toUpperCase();return l<o?"desc"===F.value?.direction?-1:1:l>o?"desc"===F.value?.direction?1:-1:0}):"volume"===F.value.key?[...T.symbols].sort((e,t)=>e.volume<t.volume?"asc"===F.value?.direction?-1:1:e.volume>t.volume?"asc"===F.value?.direction?1:-1:0):"last"===F.value.key?[...T.symbols].sort((e,t)=>{const l=Number(e.last),o=Number(t.last);return l<o?"asc"===F.value?.direction?-1:1:l>o?"asc"===F.value?.direction?1:-1:0}):T.symbols:T.symbols),U=e(()=>e=>l.value.includes(e.id)?{icon:"Star3",color:"#FFD700"}:{icon:"StarOutline",color:"var(--primary-green)"}),A=e(()=>W.value?.sort),N=e(()=>T.insideGroup?T.loading:w.value),B=e=>e!==le.Active,V=({key:e,direction:t})=>{e&&t?(F.value={key:e,direction:t,selfSort:!0},_({key:e,direction:t})):(F.value?.selfSort&&_(null),F.value=null)},P=e=>{C(e)},K=({row:e})=>e.id===o.value?"active-row":"",M=(e,t)=>{if(t&&t!==le.Active)return"var(--text-disabled)";const l=Number(e);return l>0?"var(--text-green)":l<0?"var(--text-red)":"var(--text-primary)"},O=(e,t,l)=>e!==l?.key?"SortDefault2":"asc"===t?"SortUp2":"SortDown2";return i(W,e=>{e&&(T.insideGroup||s.value&&(e.sortTable("",s.value.sort_by),F.value={key:s.value.sort_by,direction:s.value.order,selfSort:!1}))}),i(()=>p.value?.id,()=>F.value=null),(e,t)=>{const l=r("eaera-icon"),o=D,s=r("client-only"),a=H;return c(),f(s,null,{default:v(()=>[S((c(),n("div",null,[u(d(R),{ref_key:"watchListTableRef",ref:W,class:b(["expanding-rows-table watchlist-table expanded",[!z.value?.length&&!T.insideGroup&&"empty",T.insideGroup&&"inside-group"]]),"allow-sort-reset":"","hide-footer":"","max-height":T.maxHeight,height:T.maxHeight,"show-header":T.showHeader,items:z.value,fields:L.value,stripe:!1,"row-class-name":K,loading:N.value,"onUpdate:onSortChanged":V,onOnRowClick:P},{"cell()":v(({item:e})=>[m("div",null,[u(l,{icon:"Info",size:"16",class:b(["custom-watchlist-item-table__info-icon",B(e.state)&&"is-disabled"]),onClick:k(t=>(async e=>{const t=T.symbols.find(t=>t.id===e);t&&await I(t)})(e.id),["stop"])},null,8,["class","onClick"])])]),"cell(ticker_symbol)":v(({item:e})=>[m("div",oe,[m("div",se,[m("span",{class:b(["custom-watchlist-item-table__symbol-text",B(e.state)&&"is-inactive"])},y(e.ticker_symbol),3),m("div",{class:"custom-watchlist-item-table__favorite",onClick:k(t=>{return l=e.id,void x(l);var l},["stop"])},[u(l,{icon:U.value(e).icon,color:U.value(e).color,size:"16"},null,8,["icon","color"])],8,ae)]),m("div",ie,[u(o,{content:e.description,placement:"right"},{default:v(()=>[m("span",{class:b(["custom-watchlist-item-table__description-text",B(e.state)&&"is-inactive"])},y(e.description),3)]),_:2},1032,["content"])])])]),"cell(last)":v(({item:e})=>[m("div",{style:g({color:M(e.last,e.state),width:"100%"})},[m("div",re,[m("div",null,y(e.last),1)])],4)]),"cell(volume)":v(({item:e})=>[m("div",{style:g({color:M(e.volume,e.state),width:"100%"})},[m("div",ce,[m("div",null,y(e.volume),1)])],4)]),empty:v(()=>[N.value?(c(),n("div",ne)):(c(),n("div",{key:1,class:"custom-watchlist-item-table__empty",style:g({height:T.maxHeight?`calc(${T.maxHeight} - 32px)`:"auto"})},[m("div",me,[m("span",ue,y(d(G)("watch-list.table.empty.symbol")),1)])],4))]),"sort-icon":v(({sortKey:e,direction:t})=>[u(l,{icon:O(e,t,A.value),size:"14",class:"custom-watchlist-item-table__sort-icon","active-color":"var(--icon-success)"},null,8,["icon"])]),_:1},8,["class","max-height","height","show-header","items","fields","loading"])])),[[a,N.value]])]),_:1})}}}),pe={class:"custom-watchlist__table"},he=o({__name:"index",props:{inputPlaceholder:{},searchData:{},categories:{},selectedCategory:{},isFiltered:{type:Boolean},tableHeight:{},viewingSymbols:{},viewingSymbolGroups:{},listSymbols:{},groupLoadingRowIds:{},favoriteSymbolIds:{},viewingSymbolId:{},listSymbolsLoading:{type:Boolean},sorting:{}},emits:["resize","selectCategory","update:searchData","groupExpandChange","groupRowClick","groupSortChanged","itemSortChanged","selectSymbol","toggleFavorite","showSymbolInfo"],setup(e,{emit:t}){const l=s(null),o=s(null),{width:a,height:r}=C(l),p=T(e,t);return i([a,r],()=>{l.value&&o.value&&p.onResize(a.value,r.value-o.value.clientHeight)}),(e,t)=>(c(),n("div",{ref_key:"watchlistRef",ref:l,class:"custom-watchlist"},[m("div",{ref_key:"watchlistFilterRef",ref:o,class:"custom-watchlist__filter"},[u(d(P))],512),m("div",pe,[u(d($))])],512))}});export{le as S,he as _,T as p,j as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ref as e,watch as o,computed as s,provide as r,inject as a,defineComponent as t,unref as l,openBlock as i,createElementBlock as d,createElementVNode as n,toDisplayString as c,createVNode as u,normalizeClass as m,withCtx as p,createCommentVNode as _,shallowRef as v,createTextVNode as b,isRef as y,resolveComponent as f,createBlock as g}from"vue";import{a as k}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as S}from"vue-i18n";import"element-plus";import"element-plus/es";import{Plus as P,Minus as C,Info as j}from"@lucide/vue";import"./vendor-email-misspelled-0hsXkSSK.mjs";import{_ as w}from"./EaeraSelect-C-sln89V.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as O}from"./EaeraInput-CkbcAxy0.mjs";import{_ as E}from"./EaeraButton-BPVKRBOn.mjs";const $={Market:"MARKET",Limit:"LIMIT",Stop:"STOP",StopLimit:"STOP_LIMIT"},A={Day:"DAY",GTC:"GTC"},T={Buy:"BUY",Sell:"SELL"},L={JoinBid:"join-bid",Reverse:"reverse",JoinAsk:"join-ask",CloseAllPositions:"close-all-positions",FlattenAll:"flatten-all",CancelOrders:"cancel-orders"},z=Symbol("EAERA_ORDER_PLACEMENT_CONTEXT_KEY"),D=(a,t)=>{const l=e(a.orderType),i=e(a.orderDuration),d=e({...a.orderPrices});o(()=>a.orderType,e=>{l.value=e}),o(()=>a.orderDuration,e=>{i.value=e}),o(()=>a.orderPrices,e=>{d.value={...e}},{deep:!0});const n=s(()=>({disabledState:a.disabledState,viewingSymbol:a.viewingSymbol,position:a.position,orderType:l.value,orderDuration:i.value,orderPrices:{...d.value},invalidPrice:a.invalidPrice,loading:a.loading}));o(n,e=>{t("stateChange",e)},{immediate:!0});const c={disabledState:s(()=>a.disabledState),viewingSymbol:s(()=>a.viewingSymbol),position:s(()=>a.position),orderType:s({get:()=>l.value,set:e=>{l.value=e,t("update:orderType",e)}}),orderDuration:s({get:()=>i.value,set:e=>{i.value=e,t("update:orderDuration",e)}}),orderPrices:s(()=>d.value),invalidPrice:s(()=>a.invalidPrice),loading:s(()=>a.loading),state:n,setOrderPrice:(e,o)=>{d.value={...d.value,[e]:o},t("update:orderPrice",e,o)},submitSideOrder:(e,o)=>t("submit-side-order",e,o),joinBid:e=>t("join-bid",e),joinAsk:e=>t("join-ask",e),reverse:()=>t("reverse"),closeAllPositions:()=>t("close-all-positions"),flattenAll:()=>t("flatten-all"),cancelOrders:()=>t("cancel-orders"),onSymbolInfo:()=>t("symbol-info"),onResize:(e,o)=>t("resize",e,o)};return r(z,c),c},V=()=>{const e=a(z);if(!e)throw new Error("useEaeraOrderPlacement must be used inside EaeraOrderPlacement");return e},I={key:0,class:"custom-order-advanced"},N={class:"custom-order-advanced__price-row"},R={key:0,class:"custom-order-advanced__field"},x={class:"custom-order-advanced__label"},M={class:"custom-order-advanced__control"},B={key:0,class:"custom-order-advanced__error"},U={key:1,class:"custom-order-advanced__field"},F={class:"custom-order-advanced__label"},J={class:"custom-order-advanced__control"},G={key:0,class:"custom-order-advanced__error"},K={class:"custom-order-advanced__duration"},Y={class:"custom-order-advanced__label"},q={class:"custom-order-advanced__control"},X=t({__name:"EaeraOrderPlacementAdvanced",props:{invalidOrderPriceLabel:{}},setup(e){const o=e,{t:r}=S(),{viewingSymbol:a,orderType:t,orderDuration:v,orderPrices:b,invalidPrice:y,disabledState:f,setOrderPrice:g}=V(),k=s(()=>Object.values(A).map(e=>({label:r(`orders.durations.${e}`),value:e}))),E=s(()=>o.invalidOrderPriceLabel||r("orders.invalid-order-price")),T=s({get:()=>v.value,set:e=>{v.value=e}}),L=s({get:()=>b.value[$.Limit],set:e=>g($.Limit,e)}),z=s({get:()=>b.value[$.Stop],set:e=>g($.Stop,e)}),D=(e,o)=>{f.value.disabled||g(o,(e=>{const o=String(e??"").replace(/,/g,"").replace(/[^0-9.]/g,""),[s="",...r]=o.split("."),a=r.join("");return a.length?`${s}.${a}`:s})(e))},X=(e,o)=>{if(f.value.disabled)return;const s=Number(a.value?.tickSize)||0;if(!s)return;const r=(String(s).split(".")[1]??"").length,t=Number(b.value[e]||0),l=Number((t+o*s).toFixed(r));g(e,l)};return(e,o)=>l(t)?(i(),d("div",I,[n("div",N,[l($).Stop!==l(t)?(i(),d("div",R,[n("div",x,c(e.$t("orders.limit-price")),1),n("div",M,[u(l(O),{modelValue:L.value,"onUpdate:modelValue":o[2]||(o[2]=e=>L.value=e),class:m(["custom-order-advanced__input order-input",{"is-error":l(y).limit}]),disabled:l(f).disabled,onInput:o[3]||(o[3]=e=>D(e,l($).Limit))},{prefix:p(()=>[u(l(C),{size:20,onClick:o[0]||(o[0]=e=>X(l($).Limit,-1))})]),suffix:p(()=>[u(l(P),{size:20,onClick:o[1]||(o[1]=e=>X(l($).Limit,1))})]),_:1},8,["modelValue","class","disabled"])]),l(y).limit?(i(),d("div",B,[u(l(j),{size:18}),n("span",null,c(E.value),1)])):_("",!0)])):_("",!0),l($).Limit!==l(t)?(i(),d("div",U,[n("div",F,c(e.$t("orders.stop-price")),1),n("div",J,[u(l(O),{modelValue:z.value,"onUpdate:modelValue":o[6]||(o[6]=e=>z.value=e),class:m(["custom-order-advanced__input order-input",{"is-error":l(y).stop}]),controls:"",min:1,disabled:l(f).disabled,onInput:o[7]||(o[7]=e=>D(e,l($).Stop))},{prefix:p(()=>[u(l(C),{size:20,onClick:o[4]||(o[4]=e=>X(l($).Stop,-1))})]),suffix:p(()=>[u(l(P),{size:20,onClick:o[5]||(o[5]=e=>X(l($).Stop,1))})]),_:1},8,["modelValue","class","disabled"])]),l(y).stop?(i(),d("div",G,[u(l(j),{size:18}),n("span",null,c(E.value),1)])):_("",!0)])):_("",!0)]),n("div",K,[n("div",Y,c(e.$t("orders.duration")),1),n("div",q,[u(l(w),{modelValue:T.value,"onUpdate:modelValue":o[8]||(o[8]=e=>T.value=e),class:"custom-order-advanced__select",options:k.value,placeholder:"Select",disabled:l(f).disabled},null,8,["modelValue","options","disabled"])])])])):_("",!0)}}),H={key:0,class:"custom-order-actions__position-row"},Q={key:0,class:"custom-order-actions__position"},W={key:1,class:"custom-order-actions__empty"},Z={class:"custom-order-actions__actions"},ee={class:"custom-order-actions__row custom-order-actions__row--primary"},oe={class:"custom-order-actions__row custom-order-actions__row--secondary"},se={class:"custom-order-actions__row custom-order-actions__row--tertiary"},re=t({__name:"EaeraOrderPlacementActions",setup(o){const{t:r}=S(),{viewingSymbol:a,position:t,loading:y,orderType:f,disabledState:g,submitSideOrder:P,joinBid:C,joinAsk:j,reverse:w,closeAllPositions:A,flattenAll:z,cancelOrders:D}=V(),I=e(1),N=v(null),{width:R}=k(N),x=s(()=>r(`orders.types.${f.value||$.Market}`)),M=()=>Math.max(1,Number(I.value)||1),B=e=>{P(e,M())},U=()=>{C(M())},F=()=>{j(M())},J=e=>((e,o)=>{const s=Number(e??0);if(!Number.isFinite(s))return"0";if(!o)return s.toLocaleString();try{return new Intl.NumberFormat(void 0,{style:"currency",currency:o,currencyDisplay:"narrowSymbol",maximumFractionDigits:6}).format(s)}catch{return`${s.toLocaleString()} ${o}`}})(e,a.value?.currency),G=e=>{const o=Number(e);return o>0?"custom-order-actions__upl custom-order-actions__upl--positive":o<0?"custom-order-actions__upl custom-order-actions__upl--negative":"custom-order-actions__upl"};return(e,o)=>(i(),d("div",{ref_key:"orderActionsRef",ref:N,class:"custom-order-actions"},[l(a)?(i(),d("div",H,[l(t)?(i(),d("span",Q,[n("span",null,"+"+c(l(t).quantity),1),o[4]||(o[4]=n("span",null,"@",-1)),n("span",null,c(l(t).entryPrice),1),n("span",{class:m(G(l(t).unrealizedPnl))},[o[3]||(o[3]=b(" UP&L ",-1)),n("span",null,c(J(l(t).unrealizedPnl)),1)],2)])):(i(),d("span",W,c(e.$t("orders.no-active-position")),1))])):_("",!0),n("div",Z,[n("div",ee,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",color:"success",loading:l(y)[l(T).Buy],disabled:l(g).disabled,onClick:o[0]||(o[0]=e=>B(l(T).Buy))},{default:p(()=>[n("span",{class:m(["custom-order-actions__button-label",{"is-compact":l(R)<330}])},c(e.$t("orders.actions.buy",{count:I.value,type:x.value})),3)]),_:1},8,["loading","disabled"]),u(l(O),{modelValue:I.value,"onUpdate:modelValue":o[1]||(o[1]=e=>I.value=e),modelModifiers:{number:!0},type:"number",class:"custom-order-actions__volume-input order-input-number",controls:"",min:1,step:1,"step-strictly":"",precision:0,disabled:l(g).disabled},null,8,["modelValue","disabled"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",color:"danger",loading:l(y)[l(T).Sell],disabled:l(g).disabled,onClick:o[2]||(o[2]=e=>B(l(T).Sell))},{default:p(()=>[n("span",{class:m(["custom-order-actions__button-label",{"is-compact":l(R)<330}])},c(e.$t("orders.actions.sell",{count:I.value,type:x.value})),3)]),_:1},8,["loading","disabled"])]),n("div",oe,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--half",loading:l(y)[l(L).JoinBid],disabled:l(g).disabled,onClick:U},{default:p(()=>[n("span",null,c(e.$t("orders.actions.join-bid")),1)]),_:1},8,["loading","disabled"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--third",loading:l(y)[l(L).Reverse],disabled:l(g).disabled,onClick:l(w)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.reverse")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--half",loading:l(y)[l(L).JoinAsk],disabled:l(g).disabled,onClick:F},{default:p(()=>[n("span",null,c(e.$t("orders.actions.join-ask")),1)]),_:1},8,["loading","disabled"])]),n("div",se,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).CloseAllPositions],disabled:l(g).disabled,onClick:l(A)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.close-position")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).FlattenAll],disabled:l(g).disabled,onClick:l(z)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.flatten-all")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).CancelOrders],disabled:l(g).disabled,onClick:l(D)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.cancel-orders")),1)]),_:1},8,["loading","disabled","onClick"])])])],512))}}),ae={class:"custom-order-info"},te={class:"custom-order-info__select-type"},le={key:0,class:"custom-order-info__symbol"},ie={class:"custom-order-info__symbol-text"},de={key:1,class:"custom-order-info__inactive-message"},ne=t({__name:"EaeraOrderPlacementInfo",setup(e){const{locale:o,t:r}=S(),{disabledState:a,orderType:t,viewingSymbol:p,onSymbolInfo:v}=V(),b=s(()=>(o.value,Object.values($).filter(e=>e!==$.Market).map(e=>({label:r(`orders.types.${e}`),value:e})))),f=()=>{a.value.disabled||(t.value="")},g=()=>{p.value&&v()},k=s(()=>a.value.isMissingUser?r("watch-list.symbol-info.state.no-account-selected"):p.value&&"active"!==p.value.state?r(`watch-list.symbol-info.state.${p.value.state}`):"");return(e,o)=>(i(),d("div",ae,[n("div",te,[n("div",{class:m(["custom-order-info__select-item","custom-order-info__select-item--market",{"is-active":!l(t),"is-disabled":l(a).disabled}]),onClick:f},c(e.$t("orders.types.MARKET")),3),u(l(w),{modelValue:l(t),"onUpdate:modelValue":o[0]||(o[0]=e=>y(t)?t.value=e:null),class:m(["custom-order-info__select-item borderless-select","custom-order-info__select-item--select",{"is-active":!!l(t)}]),options:b.value,placeholder:e.$t("orders.types.PENDING_ORDER"),clearable:"",disabled:l(a).disabled},null,8,["modelValue","class","options","placeholder","disabled"])]),l(p)?(i(),d("div",le,[n("div",{class:"custom-order-info__symbol-link",onClick:g},[n("span",ie,c(l(p).tickerSymbol),1),u(l(j),{size:16,class:"custom-order-info__symbol-icon"})])])):_("",!0),k.value?(i(),d("div",de,[u(l(j),{size:16}),n("span",null,c(k.value),1)])):_("",!0)]))}}),ce={class:"custom-order-placement__content"},ue=t({__name:"index",props:{disabledState:{},viewingSymbol:{},position:{},orderType:{},orderDuration:{},orderPrices:{},invalidPrice:{},loading:{},invalidOrderPriceLabel:{}},emits:["resize","update:orderType","update:orderDuration","update:orderPrice","submit-side-order","join-bid","join-ask","reverse","close-all-positions","flatten-all","cancel-orders","symbol-info","stateChange"],setup(e,{expose:s,emit:r}){const a=v(null),{width:t,height:d}=k(a),c=e,m=D(c,r);return s({state:m.state}),o([t,d],()=>{a.value&&m.onResize(t.value,d.value)}),(e,o)=>{const s=f("client-only");return i(),g(s,null,{default:p(()=>[n("div",{ref_key:"orderRef",ref:a,class:"custom-order-placement__wrapper"},[n("div",ce,[u(l(ne)),u(l(X),{"invalid-order-price-label":c.invalidOrderPriceLabel},null,8,["invalid-order-price-label"]),u(l(re))])],512)]),_:1})}}});export{L as E,ue as _,A as a,T as b,$ as c,D as p,V as u};
|
|
1
|
+
import{ref as e,watch as o,computed as s,provide as r,inject as a,defineComponent as t,unref as l,openBlock as i,createElementBlock as d,createElementVNode as n,toDisplayString as c,createVNode as u,normalizeClass as m,withCtx as p,createCommentVNode as _,shallowRef as v,createTextVNode as b,isRef as y,resolveComponent as f,createBlock as g}from"vue";import{a as k}from"./vendor-vueuse-core-B96HGhR7.mjs";import{useI18n as S}from"vue-i18n";import{Plus as P,Minus as C,Info as j}from"@lucide/vue";import"element-plus";import"element-plus/es";import"./vendor-email-misspelled-0hsXkSSK.mjs";import{_ as w}from"./EaeraSelect-C-sln89V.mjs";import"./vendor-unorm-DkILX5Kw.mjs";import"./useEaeraInputPhoneNumber-B72aLnQs.mjs";import"@element-plus/icons-vue";import"echarts/core";import"echarts/renderers";import"echarts/charts";import"echarts/components";import"vue-echarts";import"./vendor-currency-symbol-map-3_wzZimq.mjs";import"./vendor-sortablejs-D3DyHO5Y.mjs";import{_ as O}from"./EaeraInput-CkbcAxy0.mjs";import{_ as E}from"./EaeraButton-BPVKRBOn.mjs";const $={Market:"MARKET",Limit:"LIMIT",Stop:"STOP",StopLimit:"STOP_LIMIT"},A={Day:"DAY",GTC:"GTC"},T={Buy:"BUY",Sell:"SELL"},L={JoinBid:"join-bid",Reverse:"reverse",JoinAsk:"join-ask",CloseAllPositions:"close-all-positions",FlattenAll:"flatten-all",CancelOrders:"cancel-orders"},z=Symbol("EAERA_ORDER_PLACEMENT_CONTEXT_KEY"),D=(a,t)=>{const l=e(a.orderType),i=e(a.orderDuration),d=e({...a.orderPrices});o(()=>a.orderType,e=>{l.value=e}),o(()=>a.orderDuration,e=>{i.value=e}),o(()=>a.orderPrices,e=>{d.value={...e}},{deep:!0});const n=s(()=>({disabledState:a.disabledState,viewingSymbol:a.viewingSymbol,position:a.position,orderType:l.value,orderDuration:i.value,orderPrices:{...d.value},invalidPrice:a.invalidPrice,loading:a.loading}));o(n,e=>{t("stateChange",e)},{immediate:!0});const c={disabledState:s(()=>a.disabledState),viewingSymbol:s(()=>a.viewingSymbol),position:s(()=>a.position),orderType:s({get:()=>l.value,set:e=>{l.value=e,t("update:orderType",e)}}),orderDuration:s({get:()=>i.value,set:e=>{i.value=e,t("update:orderDuration",e)}}),orderPrices:s(()=>d.value),invalidPrice:s(()=>a.invalidPrice),loading:s(()=>a.loading),state:n,setOrderPrice:(e,o)=>{d.value={...d.value,[e]:o},t("update:orderPrice",e,o)},submitSideOrder:(e,o)=>t("submit-side-order",e,o),joinBid:e=>t("join-bid",e),joinAsk:e=>t("join-ask",e),reverse:()=>t("reverse"),closeAllPositions:()=>t("close-all-positions"),flattenAll:()=>t("flatten-all"),cancelOrders:()=>t("cancel-orders"),onSymbolInfo:()=>t("symbol-info"),onResize:(e,o)=>t("resize",e,o)};return r(z,c),c},V=()=>{const e=a(z);if(!e)throw new Error("useEaeraOrderPlacement must be used inside EaeraOrderPlacement");return e},I={key:0,class:"custom-order-advanced"},N={class:"custom-order-advanced__price-row"},R={key:0,class:"custom-order-advanced__field"},x={class:"custom-order-advanced__label"},M={class:"custom-order-advanced__control"},B={key:0,class:"custom-order-advanced__error"},U={key:1,class:"custom-order-advanced__field"},F={class:"custom-order-advanced__label"},J={class:"custom-order-advanced__control"},G={key:0,class:"custom-order-advanced__error"},K={class:"custom-order-advanced__duration"},Y={class:"custom-order-advanced__label"},q={class:"custom-order-advanced__control"},X=t({__name:"EaeraOrderPlacementAdvanced",props:{invalidOrderPriceLabel:{}},setup(e){const o=e,{t:r}=S(),{viewingSymbol:a,orderType:t,orderDuration:v,orderPrices:b,invalidPrice:y,disabledState:f,setOrderPrice:g}=V(),k=s(()=>Object.values(A).map(e=>({label:r(`orders.durations.${e}`),value:e}))),E=s(()=>o.invalidOrderPriceLabel||r("orders.invalid-order-price")),T=s({get:()=>v.value,set:e=>{v.value=e}}),L=s({get:()=>b.value[$.Limit],set:e=>g($.Limit,e)}),z=s({get:()=>b.value[$.Stop],set:e=>g($.Stop,e)}),D=(e,o)=>{f.value.disabled||g(o,(e=>{const o=String(e??"").replace(/,/g,"").replace(/[^0-9.]/g,""),[s="",...r]=o.split("."),a=r.join("");return a.length?`${s}.${a}`:s})(e))},X=(e,o)=>{if(f.value.disabled)return;const s=Number(a.value?.tickSize)||0;if(!s)return;const r=(String(s).split(".")[1]??"").length,t=Number(b.value[e]||0),l=Number((t+o*s).toFixed(r));g(e,l)};return(e,o)=>l(t)?(i(),d("div",I,[n("div",N,[l($).Stop!==l(t)?(i(),d("div",R,[n("div",x,c(e.$t("orders.limit-price")),1),n("div",M,[u(l(O),{modelValue:L.value,"onUpdate:modelValue":o[2]||(o[2]=e=>L.value=e),class:m(["custom-order-advanced__input order-input",{"is-error":l(y).limit}]),disabled:l(f).disabled,onInput:o[3]||(o[3]=e=>D(e,l($).Limit))},{prefix:p(()=>[u(l(C),{size:20,onClick:o[0]||(o[0]=e=>X(l($).Limit,-1))})]),suffix:p(()=>[u(l(P),{size:20,onClick:o[1]||(o[1]=e=>X(l($).Limit,1))})]),_:1},8,["modelValue","class","disabled"])]),l(y).limit?(i(),d("div",B,[u(l(j),{size:18}),n("span",null,c(E.value),1)])):_("",!0)])):_("",!0),l($).Limit!==l(t)?(i(),d("div",U,[n("div",F,c(e.$t("orders.stop-price")),1),n("div",J,[u(l(O),{modelValue:z.value,"onUpdate:modelValue":o[6]||(o[6]=e=>z.value=e),class:m(["custom-order-advanced__input order-input",{"is-error":l(y).stop}]),controls:"",min:1,disabled:l(f).disabled,onInput:o[7]||(o[7]=e=>D(e,l($).Stop))},{prefix:p(()=>[u(l(C),{size:20,onClick:o[4]||(o[4]=e=>X(l($).Stop,-1))})]),suffix:p(()=>[u(l(P),{size:20,onClick:o[5]||(o[5]=e=>X(l($).Stop,1))})]),_:1},8,["modelValue","class","disabled"])]),l(y).stop?(i(),d("div",G,[u(l(j),{size:18}),n("span",null,c(E.value),1)])):_("",!0)])):_("",!0)]),n("div",K,[n("div",Y,c(e.$t("orders.duration")),1),n("div",q,[u(l(w),{modelValue:T.value,"onUpdate:modelValue":o[8]||(o[8]=e=>T.value=e),class:"custom-order-advanced__select",options:k.value,placeholder:"Select",disabled:l(f).disabled},null,8,["modelValue","options","disabled"])])])])):_("",!0)}}),H={key:0,class:"custom-order-actions__position-row"},Q={key:0,class:"custom-order-actions__position"},W={key:1,class:"custom-order-actions__empty"},Z={class:"custom-order-actions__actions"},ee={class:"custom-order-actions__row custom-order-actions__row--primary"},oe={class:"custom-order-actions__row custom-order-actions__row--secondary"},se={class:"custom-order-actions__row custom-order-actions__row--tertiary"},re=t({__name:"EaeraOrderPlacementActions",setup(o){const{t:r}=S(),{viewingSymbol:a,position:t,loading:y,orderType:f,disabledState:g,submitSideOrder:P,joinBid:C,joinAsk:j,reverse:w,closeAllPositions:A,flattenAll:z,cancelOrders:D}=V(),I=e(1),N=v(null),{width:R}=k(N),x=s(()=>r(`orders.types.${f.value||$.Market}`)),M=()=>Math.max(1,Number(I.value)||1),B=e=>{P(e,M())},U=()=>{C(M())},F=()=>{j(M())},J=e=>((e,o)=>{const s=Number(e??0);if(!Number.isFinite(s))return"0";if(!o)return s.toLocaleString();try{return new Intl.NumberFormat(void 0,{style:"currency",currency:o,currencyDisplay:"narrowSymbol",maximumFractionDigits:6}).format(s)}catch{return`${s.toLocaleString()} ${o}`}})(e,a.value?.currency),G=e=>{const o=Number(e);return o>0?"custom-order-actions__upl custom-order-actions__upl--positive":o<0?"custom-order-actions__upl custom-order-actions__upl--negative":"custom-order-actions__upl"};return(e,o)=>(i(),d("div",{ref_key:"orderActionsRef",ref:N,class:"custom-order-actions"},[l(a)?(i(),d("div",H,[l(t)?(i(),d("span",Q,[n("span",null,"+"+c(l(t).quantity),1),o[4]||(o[4]=n("span",null,"@",-1)),n("span",null,c(l(t).entryPrice),1),n("span",{class:m(G(l(t).unrealizedPnl))},[o[3]||(o[3]=b(" UP&L ",-1)),n("span",null,c(J(l(t).unrealizedPnl)),1)],2)])):(i(),d("span",W,c(e.$t("orders.no-active-position")),1))])):_("",!0),n("div",Z,[n("div",ee,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",color:"success",loading:l(y)[l(T).Buy],disabled:l(g).disabled,onClick:o[0]||(o[0]=e=>B(l(T).Buy))},{default:p(()=>[n("span",{class:m(["custom-order-actions__button-label",{"is-compact":l(R)<330}])},c(e.$t("orders.actions.buy",{count:I.value,type:x.value})),3)]),_:1},8,["loading","disabled"]),u(l(O),{modelValue:I.value,"onUpdate:modelValue":o[1]||(o[1]=e=>I.value=e),modelModifiers:{number:!0},type:"number",class:"custom-order-actions__volume-input order-input-number",controls:"",min:1,step:1,"step-strictly":"",precision:0,disabled:l(g).disabled},null,8,["modelValue","disabled"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",color:"danger",loading:l(y)[l(T).Sell],disabled:l(g).disabled,onClick:o[2]||(o[2]=e=>B(l(T).Sell))},{default:p(()=>[n("span",{class:m(["custom-order-actions__button-label",{"is-compact":l(R)<330}])},c(e.$t("orders.actions.sell",{count:I.value,type:x.value})),3)]),_:1},8,["loading","disabled"])]),n("div",oe,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--half",loading:l(y)[l(L).JoinBid],disabled:l(g).disabled,onClick:U},{default:p(()=>[n("span",null,c(e.$t("orders.actions.join-bid")),1)]),_:1},8,["loading","disabled"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--third",loading:l(y)[l(L).Reverse],disabled:l(g).disabled,onClick:l(w)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.reverse")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--half",loading:l(y)[l(L).JoinAsk],disabled:l(g).disabled,onClick:F},{default:p(()=>[n("span",null,c(e.$t("orders.actions.join-ask")),1)]),_:1},8,["loading","disabled"])]),n("div",se,[u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).CloseAllPositions],disabled:l(g).disabled,onClick:l(A)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.close-position")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).FlattenAll],disabled:l(g).disabled,onClick:l(z)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.flatten-all")),1)]),_:1},8,["loading","disabled","onClick"]),u(l(E),{class:"custom-order-actions__button custom-order-actions__button--fill custom-order-actions__button--padded",loading:l(y)[l(L).CancelOrders],disabled:l(g).disabled,onClick:l(D)},{default:p(()=>[n("span",null,c(e.$t("orders.actions.cancel-orders")),1)]),_:1},8,["loading","disabled","onClick"])])])],512))}}),ae={class:"custom-order-info"},te={class:"custom-order-info__select-type"},le={key:0,class:"custom-order-info__symbol"},ie={class:"custom-order-info__symbol-text"},de={key:1,class:"custom-order-info__inactive-message"},ne=t({__name:"EaeraOrderPlacementInfo",setup(e){const{locale:o,t:r}=S(),{disabledState:a,orderType:t,viewingSymbol:p,onSymbolInfo:v}=V(),b=s(()=>(o.value,Object.values($).filter(e=>e!==$.Market).map(e=>({label:r(`orders.types.${e}`),value:e})))),f=()=>{a.value.disabled||(t.value="")},g=()=>{p.value&&v()},k=s(()=>a.value.isMissingUser?r("watch-list.symbol-info.state.no-account-selected"):p.value&&"active"!==p.value.state?r(`watch-list.symbol-info.state.${p.value.state}`):"");return(e,o)=>(i(),d("div",ae,[n("div",te,[n("div",{class:m(["custom-order-info__select-item","custom-order-info__select-item--market",{"is-active":!l(t),"is-disabled":l(a).disabled}]),onClick:f},c(e.$t("orders.types.MARKET")),3),u(l(w),{modelValue:l(t),"onUpdate:modelValue":o[0]||(o[0]=e=>y(t)?t.value=e:null),class:m(["custom-order-info__select-item borderless-select","custom-order-info__select-item--select",{"is-active":!!l(t)}]),options:b.value,placeholder:e.$t("orders.types.PENDING_ORDER"),clearable:"",disabled:l(a).disabled},null,8,["modelValue","class","options","placeholder","disabled"])]),l(p)?(i(),d("div",le,[n("div",{class:"custom-order-info__symbol-link",onClick:g},[n("span",ie,c(l(p).tickerSymbol),1),u(l(j),{size:16,class:"custom-order-info__symbol-icon"})])])):_("",!0),k.value?(i(),d("div",de,[u(l(j),{size:16}),n("span",null,c(k.value),1)])):_("",!0)]))}}),ce={class:"custom-order-placement__content"},ue=t({__name:"index",props:{disabledState:{},viewingSymbol:{},position:{},orderType:{},orderDuration:{},orderPrices:{},invalidPrice:{},loading:{},invalidOrderPriceLabel:{}},emits:["resize","update:orderType","update:orderDuration","update:orderPrice","submit-side-order","join-bid","join-ask","reverse","close-all-positions","flatten-all","cancel-orders","symbol-info","stateChange"],setup(e,{expose:s,emit:r}){const a=v(null),{width:t,height:d}=k(a),c=e,m=D(c,r);return s({state:m.state}),o([t,d],()=>{a.value&&m.onResize(t.value,d.value)}),(e,o)=>{const s=f("client-only");return i(),g(s,null,{default:p(()=>[n("div",{ref_key:"orderRef",ref:a,class:"custom-order-placement__wrapper"},[n("div",ce,[u(l(ne)),u(l(X),{"invalid-order-price-label":c.invalidOrderPriceLabel},null,8,["invalid-order-price-label"]),u(l(re))])],512)]),_:1})}}});export{L as E,ue as _,A as a,T as b,$ as c,D as p,V as u};
|