PageSourceSearch

https://www.dn.no/investor/_pulse/BD0xkjFI.js

js dn.no collected 2026-09-24 08:46:19 UTC 65,496 bytes, 1 lines download raw bytes

1import{_ as Zt}from"./BbTHIdhe.js";import{_ as ea}from"./JojsxdA5.js";import{_ as ta}from"./DXG5Rk3N.js";import{a as kt,s as ht,_ as aa}from"./Ds5Wa3Ru.js";import xt from"./D4G_9L3Y.js";import{_ as na}from"./LMNrmiDI.js";import{t as sa,r as ra,b as ia,a as oa,_ as la,u as ca,g as ua}from"./CbNLj99q.js";import{f as Tt}from"./DF97k95f.js";import{u as st}from"./BCy0515n.js";import{u as dt}from"./CRk_Kew1.js";import{u as Et}from"./c6zGQ4MN.js";import{n as Dt,u as $t,o as Bt,p as It,v as Ht,q as Rt,r as da}from"./B-t7Qo1N.js";import{s as qt}from"./6GKZDNpu.js";import{l as et}from"./Dp3eVIj_.js";import{l as Ot,c as ma}from"./DxvwD7dX.js";import{a as vt,d as pa}from"./Bsth_Dv9.js";import{i as Xe,j as Vt,w as He,ag as jt,d as ze,o as _,e as Z,f as q,n as Fe,a as n,c as Se,g as V,W as _t,u as rt,b as f,_ as fa,t as pe,h as T,l as Ce,m as Ke,a7 as ha,F as at,r as nt,a9 as va,at as ga,I as Oe,B as tt,aq as ya,y as Kt,bJ as ka,ay as xa,am as Ut,s as Ft,x as Ge,ab as _a,k as Ca,E as Qe,p as Sa,a4 as ba,aQ as ct,T as wa}from"./DjRoh7cm.js";import{_ as Ct}from"./CUw4pbXj.js";import{_ as Ma}from"./C85-L6gv.js";import{_ as La}from"./B9ZxzQGR.js";import{_ as Aa}from"./8SbNjzgV.js";import{B as Pa,T as St,n as Ta,a as Ea,u as Da}from"./C-bldVLz.js";import{o as Gt,a as bt,d as wt,s as ut,c as Ne,e as Mt,l as $a}from"./CDweA_u0.js";import{u as Ba}from"./BjRwfRbM.js";import{u as Ia,_ as Ha}from"./DuOfCX-Z.js";import{_ as Ra}from"./ATsOHq9R.js";const Lt=["var(--color-accent-amber)","var(--color-accent-blue)","var(--color-accent-green)","var(--color-accent-indigo)","var(--color-accent-orange)","var(--color-accent-pink)","var(--color-accent-red)","var(--color-accent-teal)","var(--color-accent-lime)"];function mt(){function t(e){return Lt[e%Lt.length]??"var(--color-accent-blue)"}return{getCompareLineColor:t}}const{getCompareLineColor:qa}=mt(),Nt=(t,e)=>100*(t/e)-100;function Oa(t,e,a){let s=null,i=null,d=null,x=null;function m(l,v,c){if(v.length===0)return null;const p=v[0].firstValue,E=v.map(b=>{const B=Nt(b.firstValue,p);(s===null||B<s)&&(s=B),(i===null||B>i)&&(i=B);const A=b.time.getTime();return(d===null||A<d)&&(d=A),(x===null||A>x)&&(x=A),{time:b.time,percent:B}});return{basePrice:p,percentages:E,color:l,key:c}}const o=m(e,t,null),u=a.map((l,v)=>l.groupedTicks&&m(l.color||qa(v),l.groupedTicks,l.key??l.quant??"")).filter(l=>l!==null);if(o===null)throw new Error("Empty comparison data");return{mainLine:o,compLines:u,percentExtent:s===null||i===null?null:[s,i],timeExtent:d===null||x===null?null:[new Date(d),new Date(x)]}}function Va(t,e){return e.mainLine.percentages=[...e.mainLine.percentages,...t.map(a=>({time:a.time,percent:Nt(a.firstValue,e.mainLine.basePrice)}))],{...e}}function ja(){return{createCompareData:Oa,updateLast:Va}}const it={yAxis:"tchart-yaxis",xAxis:"axis xaxis",closeLine:"tchart-closeline",compareLine:"tchart-compare-line"},At="var(--color-primary-solid-base)";function Ka(t,e,a){const{p:s}=st(),i=dt(),{chartContainerRef:d,widthRef:x}=Et(t),{estimateRightMargin:m}=Bt({minMargin:60}),{calculateChartSize:o,getChartHeight:u}=$t(),{formatSignedDisplay:l}=Rt(),{createIntradayTimeXAxis:v,createRightGridAxis:c}=It(),{createCompareData:p,updateLast:E}=ja();let b=null,B=null;const A=Xe(!0),F={lastMinutesFilter:e.lastMinutesFilter??null};function w(P,G){if(G){const ae=e.mainQuant??e.quant;return e.mainModel?.displayName??(ae?i.getModel(ae)?.value?.displayName:void 0)??"Main"}return P?i.getModel(P)?.value?.displayName??P:""}function O(P){const G=d.value;if(!G)return null;const ae=qt(G);ae.text("");const D=u(P),oe=ae.append("svg").attr("width",P).attr("height",D),S={top:15,bottom:35,left:12,right:m(P,[s.dynamicPercentStr(-1),s.dynamicPercentStr(1)])},H=o(P,D,S),R=oe.append("g").attr("transform",`translate(${S.left}, ${S.top})`),N=R.append("g"),ye=R.append("g");let Le=!1,le=!1;const ke=400,ne=Tt,Ie=R.append("g"),Re=R.append("g");let Y=sa().range([0,H.areaWidth]),Ae=v(Y,H.areaWidth),W=et().range([H.areaHeight,0]),be=c(W,H.areaWidth,{ticks:5,tickFormat:C=>s.dynamicPercentStr(C/100)});const Te={xScale:Y,yScale:W},De=R.append("path").attr("class",it.closeLine).datum([]),z=Ie.append("g");let he=z.selectAll("path").data([]);const K=Ot().curve(ma).y(C=>
1W(C.percent)).x(C=>Y(C.time)).defined(C=>C!==null),j=(()=>{let C=null,re=null,X=!0,L=null;const Q=Dt(Re,Math.round(H.areaHeight+8),H.height,H.areaWidth),y=function(){C!==null&&Me(C,re)};let M=null;function I(fe,ie){let _e=0,me=0,Ve=-new Date(0,0,0).valueOf();for(let r=0;r<fe.length;r++)_e=Math.abs(fe[r].time.getTime()-ie),_e<Ve&&(me=r,Ve=_e);return me}function $e(fe,ie){let _e=0,me=null,Ve=-new Date(0,0,0).valueOf();for(let r=0;r<fe.length;r++){const h=fe[r].time.getTime();if(h>ie)return me;_e=Math.abs(h-ie),_e<Ve&&(me=r,Ve=_e)}return me}function we(fe,ie){M=ie;const _e=Te.xScale.invert(fe).getTime(),me=I(L[0].percentages,_e);me!==C?Me(C=me,re=L[0].percentages[me].time.getTime()):Me(me,L[0].percentages[me].time.getTime())}function ve(){C=null,Q.hide(),a("hoverChanged",null)}function Me(fe,ie){const _e=Te.xScale(ie);X&&(X=!1,Q.show(_e,null));const me=k=>l(k/100,s.dynamicPercentStr),Ve=new Date(ie),r=L.map(k=>{const ue=$e(k.percentages,ie),g=ue===null?void 0:k.percentages[ue];return{percentage:g?.percent,color:k.color,key:k.key,time:Ve,valueTime:g?.time}}),h=[{text:s.timeMinutesTodayOrDateStr(Ve)}];for(const k of r){const ue=k.key===null,g=w(k.key,ue);if(!g)continue;if(k.percentage===void 0){h.push({label:g,markerColor:k.color,value:"—"});continue}const $=Ht(k.percentage);h.push({label:g,markerColor:k.color,value:me(k.percentage),change:$})}Q.move(_e,null,h,null,!1,M,"side"),a("hoverChanged",{index:fe,items:r})}const de=Re.append("rect").attr("width",H.areaWidth+10).attr("height",H.height*1.5).attr("x",0).attr("y",-H.height*.1).attr("fill","none").attr("pointer-events","all");let xe=!1,Pe=!1,qe=null,ee=null;function Ue(fe,ie){qe=fe,ee=ie,!Pe&&(Pe=!0,requestAnimationFrame(()=>{Pe=!1,qe!==null&&we(qe,ee)}))}return de.on("mouseenter",()=>{xe=!0}),de.on("mousemove",fe=>{if(!xe)return;const ie=de.node();if(!ie)return;const[_e,me]=vt(fe,ie);Ue(_e,me)}),de.on("mouseout",()=>{xe=!1,ve(),X=!0}),H.width<450&&(de.on("mouseup",()=>{xe=!1,ve(),X=!0}),de.on("click",()=>{xe=!1,ve(),X=!0})),de.style("touch-action","none"),de.on("touchstart",fe=>{xe=!0;const ie=de.node()?.getBoundingClientRect();if(!ie)return;const _e=fe.touches[0].clientX-ie.left,me=fe.touches[0].clientY-ie.top;Ue(_e,me)},{passive:!0}),de.on("touchmove",fe=>{if(!xe)return;const ie=de.node()?.getBoundingClientRect();if(!ie)return;const _e=fe.touches[0].clientX-ie.left,me=fe.touches[0].clientY-ie.top;Ue(_e,me)},{passive:!0}),de.on("touchend",()=>{xe=!1,ve(),X=!0},{passive:!0}),fe=>{L=fe,y()}})(),se=C=>{if(C.percentExtent===null)return;const re=C.mainLine.percentages;if(!re||re.length<=1)return;let X=null,L=C.percentExtent;if(F.lastMinutesFilter!==null){X=re[re.length-1].time.getTime()-F.lastMinutesFilter*1e3*60;let M=null,I=null;for(const $e of[C.mainLine,...C.compLines])for(const we of $e.percentages)we.time.getTime()<X||((M===null||M<we.percent)&&(M=we.percent),(I===null||I>we.percent)&&(I=we.percent));L=[I,M]}be=be.scale(W=W.domain(L)),De.datum(re),le?le.transition().duration(ke).ease(ne).call(be):le=ye.append("g").attr("transform",`translate(${H.areaWidth},0)`).attr("class",it.yAxis).call(be);const Q=[X?new Date(X):C.timeExtent[0],C.timeExtent[1]],y=re[re.length-1].time;y.getTime()>Q[1].getTime()&&(Q[1]=y),Ae=Ae.scale(Y=Y.domain(Q)),Le?Le.transition().duration(ke).ease(ne).call(Ae):Le=N.append("g").attr("transform",`translate(0, ${H.areaHeight+5})`).attr("class",it.xAxis).call(Ae),De.attr("d",K),he.attr("stroke",M=>M.color).attr("fill","none").attr("d",M=>K(M.percentages)),Te.yScale=W,Te.xScale=Y,j([C.mainLine,...C.compLines])};function ce(C){he=z.selectAll("path").data(C),he.enter().append("path").attr("class",it.compareLine),he.exit().remove(),he=z.selectAll("path").data(C)}return{initialize:(C,re)=>{let X=p(C.groupedTicks,At,re);ce(X.compLines);let L=C.groupedTicks;return se(X),{detailsHubUpdate:Q=>{const y=Q.groupedTicks.length-L.length;if(L=Q.groupedTicks,y===0){se(X);return}se(X=E(Q.groupedTicks.slice(-y),X))},setCompareEntities:Q=>{X=p(L,At,Q),ce(X.compLines),se(X)}}}}}return Vt(()=>{He(()=>e.compareEntities,P=>{B?.setCompareEntities(P),e.data&&B?.detailsHubUpdate(e.data)},{immediate:!0,deep:!0}),He(()=>e.lastMinutesFilter,P=>{F.lastMinutesFilter=P||null,e.data&&B?.detailsHubUpdate(e.data)},{immediate:!0,deep:!0}),He(x,P=>{P&&(B=null,b?.(),b=He(()=>e.data,G=>{if(G){if(B)B.detailsHubUpdate(G);else{const ae=O(P);if(!ae)return;B=ae.initialize(G,e.compareEntities)}A.value=!1}},{immediate:!0,deep:!0}))})}),jt(()=>{b?.()}),{widthRef:x,isLoading:A}}const Ua={class:"pulse-chart-loadable"},Fa=ze({__name:"PulseChartsIntradayTickerCompare",props:{data:{},quant:{},mainQuant:{},mainModel:{},compareEntities:{},lastMinutesFilter:{},isDarkMode:{type:Boolean}},emits:["hoverChanged"],setup(t,{emit:e}){const a=t,s=e,i=Xe(),{isLoading:d}=Ka(i,a,s);return(x,m)=>{const o=kt;return _(),Z("div",Ua,[q("div",{class:"relative",style:_t(n(d)?{minHeight:"clamp(180px, 51.75cqw, 450px)"}:void 0)},[q("div",{ref_key:"chartContainerRef",ref:i,class:Fe(["ticker-compare-intra",a.isDarkMode?"dark-mode":"light-mode"])},null,2),n(d)?(_(),Se(o,{key:0,class:"absolute inset-0","is-dark-mode":a.isDarkMode},null,8,["is-dark-mode"])):V("",!0)],4)])}}}),Ga=Object.assign(Fa,{__name:"PulseChartsIntradayTickerCompare"}),{getCompareLineColor:Na}=mt(),Wt=(t,e)=>100*(t/e)-100;function Pt(t){if(!t?.length)return[];const e=t.filter(i=>Array.isArray(i)&&i.length>1);if(!e.length)return[];const a=[...e].sort((i,d)=>i[0]-d[0]),s=new Map;for(const i of a)s.set(i[0],i);return Array.from(s.values()).sort((i,d)=>i[0]-d[0])}function zt(t,e){const a=Pt(t);if(!a.length)return{mainXts:[],entities:[]};const s=a[0][0],i=new Set,d=[];for(const[x,m]of(e??[]).entries()){const o=(m.key??m.quant??"").toString();if(!o||i.has(o))continue;i.add(o);const u=Pt(m.xtsWithLast??[]).filter(l=>l[0]>=s);u.length&&d.push({...m,key:o,color:m.color||Na(x),xtsWithLast:u})}return{mainXts:a,entities:d}}function Xt(t,e,a){const s=zt(t,a);if(!s.mainXts.length)throw new Error("Chart data: Missing main xt history.");const i=s.mainXts,d=s.entities,x=i[0][0],m=new Map;
1i.forEach(b=>m.set(b[0],!0)),d.forEach(b=>b.xtsWithLast?.forEach(B=>{B[0]>=x&&m.set(B[0],!0)}));const o=Array.from(m.keys()).sort((b,B)=>b-B),u=new Map(o.map((b,B)=>[b,B]));let l=null,v=null;function c(b,B,A){if(B.length===0||B[0].length===1)return null;let F=B,w=u.get(F[0][0])??-1;if(w===-1&&(F=F.filter(S=>S[0]>=x),F.length===0||F[0].length===1||(w=u.get(F[0][0])??-1,w===-1)))return null;const O=F[0][4],P=[],G=[],ae=w;for(const S of F){const H=S[0];if(u.has(H)){for(;w<o.length&&o[w]<H;)P.push(null),G.push(null),w++;if(!(w>=o.length||o[w]!==H)){if(S.length!==1){const R=S[4],N=Wt(R,O);(l===null||N<l)&&(l=N),(v===null||N>v)&&(v=N),P.push(N),G.push(R)}w++}}}for(;w<o.length;)P.push(null),G.push(null),w++;const D=Array.from({length:P.length});let oe=-1;for(let S=0;S<P.length;S++)P[S]!==null&&(oe=S),D[S]=oe;return{basePrice:O,percentages:P,prices:G,prevNonNullIndex:D,color:b,quant:A,xOffset:ae}}const p=c(e,i),E=d.map(b=>b.xtsWithLast&&c(b.color,b.xtsWithLast,b.quant)).filter(b=>b!==null);if(p===null)throw new Error("Chart data: Unable to create main line.");return{dates:o.map(b=>new Date(b*1e3)),mainLine:p,compLines:E,percentExtent:l===null||v===null?null:[l,v],xts:i}}function Wa(t,e){const a=e.mainLine.percentages.length-1;return e.mainLine.prices[a]=t[4],e.mainLine.percentages[a]=Wt(t[4],e.mainLine.basePrice),e.mainLine.prevNonNullIndex[a]=a,{...e}}function za(t,e,a,s){const i=s?.xts??[...t.historyWithoutLast,t.xt];return Xt(ht(e,i),"currentColor",a)}function Xa(){return{createCompareData:Xt,normalizeCompareEntities:zt,sliceHistoryFromDetails:za,updateLast:Wa}}const Je={yAxis:"tchart-yaxis",xAxis:"axis xaxis",closeLine:"tchart-closeline",compareLine:"tchart-compare-line"},Ya="var(--color-primary-solid-base)",Qa=30;function Ja(t,e,a){const{p:s}=st(),i=rt(),d=dt(),{chartContainerRef:x,widthRef:m}=Et(t),{estimateRightMargin:o}=Bt({minMargin:60}),{createHistoricalXAxis:u}=da(),{calculateChartSize:l,getChartHeight:v}=$t(),{formatSignedDisplay:c}=Rt(),{createRightGridAxis:p}=It(),{createCompareData:E,updateLast:b}=Xa();let B=null,A=null,F=null;const w=Xe(!0),O=f(()=>e.mainColor||Ya);function P(D,oe){if(oe)return e.mainModel?.displayName||"Unknown";if(!D)return"Unknown";const S=d.modelsRecord?.[D];return S?S.displayName:e.compareEntities.find(R=>R.quant===D)?.model?.displayName||"Unknown"}function G(D,oe,S,H,R){let N=null,ye=!0,Le=null,le=null;const ke=Dt(D,Math.round(S.areaHeight+8),S.height*3,S.areaWidth),ne=function(){N!==null&&Ae(N)};let Ie=null;function Re(K,j){Ie=j;const se=Le;if(!se?.length)return;const ce=se.length,C=Math.max(0,Math.min(S.areaWidth,K));let re=Math.round((ce-1)*C/S.areaWidth);re>=ce&&(re=ce-1),re<0&&(re=0),Ae(re!==N?N=re:re)}function Y(){N=null,ke.hide(),R(null,null)}function Ae(K){const j=Le;if(!j)return;const se=H.xScale(K),ce=L=>c(L/100,s.dynamicPercentStr),C=j[K],re=(le??[]).map(L=>{const Q=K-L.xOffset;if(Q<0)return{percentage:void 0,percentageExact:void 0,percentageCarried:void 0,isCarried:!1,valueDate:void 0,price:void 0,basePrice:L.basePrice,color:L.color,quant:L.quant,date:C,isMain:!L.quant};const y=L.percentages[Q]===null?void 0:L.percentages[Q],M=L.prevNonNullIndex?.[Q]??-1,I=M>=0?L.percentages[M]:void 0,$e=y===void 0&&I!==void 0,we=y!==void 0?Q:M,ve=we>=0?j[L.xOffset+we]:void 0,Me=we>=0?L.prices?.[we]??void 0:void 0;return{percentage:y??I,percentageExact:y,percentageCarried:I,isCarried:$e,valueDate:ve,price:Me,basePrice:L.basePrice,color:L.color,quant:L.quant,date:C,isMain:!L.quant}}),X=[{text:oe(C)}];for(const L of re){const Q=P(L.quant,!!L.isMain);if(Q){if(L.percentageExact!==void 0){X.push({label:Q,markerColor:L.color,value:ce(L.percentageExact),change:Ht(L.percentageExact)});continue}X.push({label:Q,markerColor:L.color,value:"—"})}}ye&&(ye=!1,ke.show(se,null)),ke.move(se,null,X,null,!1,Ie,"side"),R(K,re,C)}const W=D.append("rect").attr("width",S.areaWidth+10).attr("height",S.height*1.5).attr("x",0).attr("y",-S.height*.1).attr("fill","none").attr("pointer-events","all");let be=!1,Te=!1,De=null,z=null;function he(K,j){De=K,z=j,!Te&&(Te=!0,requestAnimationFrame(()=>{Te=!1,De!==null&&Re(De,z)}))}return W.on("mouseenter",()=>{be=!0}),W.on("mousemove",K=>{if(!be)return;const j=W.node();if(!j)return;const[se,ce]=vt(K,j);he(se,ce)}),W.on("mouseout",()=>{be=!1,Y(),ye=!0}),S.width<450&&(W.on("mouseup",()=>{be=!1,Y(),ye=!0}),W.on("click",()=>{be=!1,Y(),ye=!0})),W.style("touch-action","none"),W.on("touchstart",K=>{be=!0;const j=W.node()?.getBoundingClientRect();if(!j)return;const se=K.touches[0].clientX-j.left,ce=K.touches[0].clientY-j.top;he(se,ce)},{passive:!0}),W.on("touchmove",K=>{if(!be)return;const j=W.node()?.getBoundingClientRect();if(!j)return;const se=K.touches[0].clientX-j.left,ce=K.touches[0].clientY-j.top;he(se,ce)},{passive:!0}),W.on("touchend",()=>{be=!1,Y(),ye=!0},{passive:!0}),{setInteractive(K){W.style("pointer-events",K?"all":"none")},update(K,j){Le=K,le=j,ne()}}}function ae(D,oe,S,H=Qa,R){const N=v(S),ye=x.value;if(!ye)return null;const Le=qt(ye);Le.text("");const le=Le.append("svg").attr("width",S).attr("height",N),ke={top:15,bottom:35,left:12,right:o(S,[s.dynamicPercentStr(-1),s.dynamicPercentStr(1)])},ne=l(S,N,ke),Ie=le.append("g").attr("transform",`translate(${ke.left}, ${ke.top})`);let Re=null;const Y=Ie.append("g"),Ae=Ie.append("g");let W=!1,be=!1;const Te=400,De=Tt;function z(g){const $=p(g,ne.areaWidth,{ticks:4,tickFormat:te=>s.dynamicPercentStr(te/100)});W?W.interrupt().transition().duration(Te).ease(De).call($):W=Ae.append("g").attr("transform",`translate(${ne.areaWidth},0)`).attr("class",Je.yAxis).call($)}function he(g,$,te="en-US"){Y.text("").attr("opacity",0),be?Y.transition().delay(200).duration(Te).ease(De).attr("opacity",1):Y.attr("opacity",1);const ge=u($,g,ne.areaWidth,te);be=Y.append("g").attr("transform",`translate(0, ${ne.areaHeight+5})`).attr("class",Je.xAxis).call(ge)}const K=Ie.append("g"),j=Ie.append("g");
1let se=null,ce=et().range([0,ne.areaWidth]),C;function re(){let g=!1;C?g=!0:C=et().range([ne.areaHeight,ke.top]).domain([0,0]),K.text("");const $=K.append("g").attr("class","tchart-compare-lines"),te=(J,je)=>Ot().y(C).x((Ye,Jt)=>ce(Jt+je)).defined(Ye=>Ye!==null)(J),ge=K.append("path").attr("class",Je.closeLine).attr("fill","none").attr("stroke",O.value).style("stroke",O.value,"important").datum([]);let Ee=$.selectAll("path").data([],J=>J.quant??J.color),Be;return(J,je)=>{if(Be!==J.dates.length||je)ge.datum(J.mainLine.percentages),C=C.domain(J.percentExtent),g&&(g=!1,ge.attr("stroke",O.value).style("stroke",O.value,"important").attr("d",te(J.mainLine.percentages,J.mainLine.xOffset)),Ee=$.selectAll("path").data(J.compLines,U=>U.quant??U.color),Ee.join(U=>U.append("path").attr("class",Je.compareLine).attr("fill","none"),U=>U,U=>U.remove()).attr("stroke",U=>U.color).style("stroke",U=>U.color,"important").attr("d",U=>te(U.percentages,U.xOffset))),z(C);else{const U=C.domain(),Ye=J.percentExtent;(U[0]>Ye[0]||U[1]<Ye[1])&&(C=C.domain(Ye),z(C))}ge.attr("stroke",O.value).style("stroke",O.value,"important").interrupt().transition().duration(Te).ease(De).attr("d",te(J.mainLine.percentages,J.mainLine.xOffset)),Ee=$.selectAll("path").data(J.compLines,U=>U.quant??U.color),Ee.join(U=>U.append("path").attr("class",Je.compareLine).attr("fill","none"),U=>U,U=>U.remove()).attr("stroke",U=>U.color).style("stroke",U=>U.color,"important").interrupt().transition().duration(Te).ease(De).attr("d",U=>te(U.percentages,U.xOffset)),Be=J.dates.length}}let X=0;const L={xScale:et(),yScale:et()},Q=G(j,s.dateStr,ne,L,(g,$,te)=>{g!==null&&$!==null?a("hoverChanged",{index:g,items:$,date:te}):a("hoverChanged",null)});let y=null,M=null,I=[],$e=!1,we=null;const ve=2,Me="currentColor";let de=null,xe=null,Pe=null;function qe(g){return g<0?0:g>I.length-1?I.length-1:g}function ee(){if(y!==null&&M!==null&&y>M){const g=y;y=M,M=g}}const Ue=()=>{y===null||M===null||!I.length||a("rangeChanged",{start:I[y],end:I[M]})};function fe(){se||(se=Ie.append("g").attr("class","tchart-range-group").style("pointer-events","all")),Q.setInteractive(!1)}function ie(){if(!$e||y===null||M===null||!I.length)return;fe();const g=ce(y),$=ce(M),te=Math.min(g,$),ge=Math.max(g,$),Ee=Math.max(1,ge-te);de||(de=se.append("rect").attr("class","tchart-range-rect").attr("fill","currentColor").attr("fill-opacity",.08).attr("stroke","currentColor").attr("stroke-opacity",.25).attr("shape-rendering","crispEdges").style("pointer-events","none")),de.attr("x",te).attr("y",0).attr("width",Ee).attr("height",ne.areaHeight),xe||(xe=se.append("g").attr("class","tchart-range-handle start").style("cursor","ew-resize"),xe.append("rect").attr("class","tchart-range-handle-hitbox").attr("x",-12).attr("width",24).attr("height",ne.areaHeight).attr("fill","transparent").style("pointer-events","all"),xe.append("rect").attr("class","tchart-range-handle-bar").attr("width",ve).attr("height",ne.areaHeight).attr("fill",Me).attr("fill-opacity",.55).style("pointer-events","none"),xe.append("circle").attr("class","tchart-range-handle-grip").attr("r",6).attr("cy",ne.areaHeight/2).attr("fill",Me).attr("fill-opacity",.9).attr("stroke","#fff").attr("stroke-width",1.5).style("pointer-events","none")),Pe||(Pe=se.append("g").attr("class","tchart-range-handle end").style("cursor","ew-resize"),Pe.append("rect").attr("class","tchart-range-handle-hitbox").attr("x",-12).attr("width",24).attr("height",ne.areaHeight).attr("fill","transparent").style("pointer-events","all"),Pe.append("rect").attr("class","tchart-range-handle-bar").attr("width",ve).attr("height",ne.areaHeight).attr("fill",Me).attr("fill-opacity",.55).style("pointer-events","none"),Pe.append("circle").attr("class","tchart-range-handle-grip").attr("r",6).attr("cy",ne.areaHeight/2).attr("fill",Me).attr("fill-opacity",.9).attr("stroke","#fff").attr("stroke-width",1.5).style("pointer-events","none")),xe.attr("transform",`translate(${g-ve/2},0)`),Pe.attr("transform",`translate(${$-ve/2},0)`)}function _e(){if(!$e||!xe||!Pe)return;const g=()=>{if(y!==null&&M!==null&&y>M){const Ee=y;y=M,M=Ee,ie()}},$=Ee=>pa().on("drag",Be=>{if(y===null||M===null||!se)return;const[J]=vt(Be.sourceEvent,se.node()),je=qe(Math.round(ce.invert(J)));Ee==="start"?y=je:M=je,ie()}).on("end",()=>{g(),Ue()}),te=$("start"),ge=$("end");xe.call(te),Pe.call(ge)}function me(g,$="en-US"){if(g.percentExtent!==null&&(X!==g.dates.length&&(X=g.dates.length,ce=ce.domain([0,X-1]),he(ce,g.dates,$),Re=re(),L.xScale=ce),L.yScale=C,Re(g,!1),Q.update(g.dates,[g.mainLine,...g.compLines]),I=g.dates,$e))if(we){const te=we.start.getTime(),ge=we.end.getTime();let Ee=0,Be=I.length-1;for(let J=0;J<I.length;J++){const je=I[J].getTime();je<=te&&(Ee=J),je<=ge&&(Be=J)}y=qe(Ee),M=qe(Be),we=null,ie(),_e()}else y!==null&&(y=qe(y)),M!==null&&(M=qe(M)),ee(),ie()}let Ve=[];R?.xts?.length?Ve=R.xts:D.historyWithoutLast?.length?Ve=D.historyWithoutLast:console.warn("Historical ticker compare chart: Missing historyWithoutLast data in initial data, using empty array");const r=[...Ve];D.xt&&r.push(D.xt);let h=E(ht(H,r),O.value,oe),k,ue=oe;return me(h,i.locale.value),{detailsHubUpdate:g=>{g.xt&&me(h=b(k=g.xt,h))},setCompareEntities:g=>{h=E(h.xts,O.value,ue=g),k!==void 0&&(h=b(k,h)),me(h)},sliceHistoryFromDetails:(g=H,$)=>{const te=$?.xts??R?.xts??[...D.historyWithoutLast,D.xt];h=E(ht(g,te),O.value,ue),k!==void 0&&(h=b(k,h)),me(h)},setRange:(g,$)=>{if($e=!0,Q.setInteractive(!1),!I.length){we={start:g,end:$};return}const te=g.getTime(),ge=$.getTime();let Ee=0,Be=I.length-1;for(let J=0;J<I.length;J++){const je=I[J].getTime();je<=te&&(Ee=J),je<=ge&&(Be=J)}y=qe(Ee),M=qe(Be),ee(),ie(),_e()}}}return Vt(()=>{He([()=>e.backtrack,()=>e.historicalData],([D,oe])=>{F?.sliceHistoryFromDetails(D?D+1:void 0,oe)},{immediate:!0}),He(()=>e.compareEntities,D=>{F?.setCompareEntities(D)},{immediate:!0,deep:!0}),He(m,D=>
1{D&&(F=null,B?.(),A?.(),B=He(()=>e.data,oe=>{oe&&(F?F.detailsHubUpdate(oe):F=ae(oe,e.compareEntities,D,e.backtrack?e.backtrack+1:void 0,e.historicalData),w.value=!1,A?.(),A=He(()=>[e.rangeStart,e.rangeEnd],([S,H])=>{S&&H&&F?.setRange&&F.setRange(S,H)},{immediate:!0}))},{immediate:!0}))})}),jt(()=>{B?.(),A?.()}),{widthRef:m,isLoading:w}}const Za={class:"pulse-chart-loadable"},en=ze({__name:"PulseChartsHistoricalTickerCompare",props:{data:{},mainModel:{},mainColor:{},compareEntities:{},backtrack:{},historicalData:{},isDarkMode:{type:Boolean},rangeStart:{},rangeEnd:{}},emits:["hoverChanged","rangeChanged"],setup(t,{emit:e}){const a=t,s=e,i=Xe(),{isLoading:d}=Ja(i,a,s);return(x,m)=>{const o=kt;return _(),Z("div",Za,[q("div",{class:"relative",style:_t(n(d)?{minHeight:"clamp(180px, 51.75cqw, 450px)"}:void 0)},[q("div",{ref_key:"chartContainerRef",ref:i,class:Fe(["ticker-compare-hist",a.isDarkMode?"dark-mode":"light-mode"])},null,2),n(d)?(_(),Se(o,{key:0,class:"absolute inset-0","is-dark-mode":a.isDarkMode},null,8,["is-dark-mode"])):V("",!0)],4)])}}}),tn=Object.assign(en,{__name:"PulseChartsHistoricalTickerCompare"}),an={},nn={class:"absolute inset-0 size-full backdrop-blur-xs"};function sn(t,e){return _(),Z("div",nn)}const rn=Object.assign(fa(an,[["render",sn]]),{__name:"PulseTickerChartBlurOverlay"}),on={class:"flex flex-col"},ln={class:"flex items-center justify-between border-b border-basic-border pb-2 align-middle"},cn={class:"flex justify-center gap-2 pt-2 text-success font-bold"},un=["number","value"],dn={class:"flex items-center align-middle"},mn=["value"],pn={class:"cursor-pointer pl-2 text-sm"},fn=ze({__name:"PulseTickerChartSMAInput",props:{sma:{}},emits:["updateSma","removeSma"],setup(t){const e=t;return(a,s)=>{const i=xt,d=Ct;return _(),Z("div",on,[q("div",ln,[q("span",null,pe(a.$t("pulse.ticker.chart.settings.sma.title")),1),T(d,{type:"secondary",size:"small",onClick:s[0]||(s[0]=x=>a.$emit("removeSma",e.sma))},{default:Ce(()=>[Ke(pe(a.$t("pulse.ticker.chart.settings.sma.remove"))+" ",1),T(i,{name:"mdi:delete-outline"})]),_:1})]),q("div",cn,pe(e.sma.period),1),q("input",{number:e.sma.period,value:e.sma.period,type:"range",min:"1",max:"500",class:"mb-4",onInput:s[1]||(s[1]=x=>a.$emit("updateSma",{...e.sma,period:parseInt(x.target?.value,10)}))},null,40,un),q("div",dn,[q("input",{value:e.sma.color,type:"color",class:"size-8 cursor-pointer bg-transparent",onInput:s[2]||(s[2]=x=>{a.$emit("updateSma",{...e.sma,color:x.target?.value})})},null,40,mn),q("label",pn,pe(a.$t("pulse.ticker.chart.settings.sma.pick-color")),1)])])}}}),hn=Object.assign(fn,{__name:"PulseTickerChartSMAInput"}),vn={class:"form-control space-y-4"},gn=["onClick"],yn={class:"flex-1"},kn={class:"font-semibold text-basic-text"},xn={class:"text-xs text-basic-sub-text"},_n={class:"flex items-center"},Cn=["checked","onChange"],Sn=ze({__name:"PulseRadio",props:va({options:{},selectedValue:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const e=t,a=ha(t,"modelValue");return(s,i)=>(_(),Z("div",vn,[(_(!0),Z(at,null,nt(e.options,d=>(_(),Z("div",{key:d.value,class:"flex items-start justify-between py-2 border-b cursor-pointer",onClick:x=>a.value=d.value},[q("div",yn,[q("div",kn,pe(d.label),1),q("div",xn,pe(d.description),1)]),q("div",_n,[q("input",{type:"radio",checked:a.value===d.value,class:Fe(["form-radio h-5 w-5",{"bg-success-solid-base":a.value===d.value}]),onChange:x=>a.value=d.value},null,42,Cn)])],8,gn))),128))]))}}),bn=Object.assign(Sn,{__name:"PulseRadio"});function ot(t,e){return`${t}::${e}`}function Yt(){const t=ga();t._pulseChartSettingsCache??={userSettingsLoadPromises:new Map,pendingCompareAddTokens:new Map};const e=t._pulseChartSettingsCache;function a(m,o){const u=Symbol(o);return e.pendingCompareAddTokens.set(ot(m,o),u),u}function s(m,o,u){return e.pendingCompareAddTokens.get(ot(m,o))===u}function i(m,o){e.pendingCompareAddTokens.delete(ot(m,o))}function d(m,o){e.pendingCompareAddTokens.delete(ot(m,o))}function x(m){const o=`${m}::`;for(const u of e.pendingCompareAddTokens.keys())u.startsWith(o)&&e.pendingCompareAddTokens.delete(u)}return{userSettingsLoadPromises:e.userSettingsLoadPromises,registerPendingCompareAdd:a,isCurrentCompareAdd:s,resolvePendingCompareAdd:i,cancelPendingCompareAdd:d,cancelPendingCompareAdds:x}}const wn=["intraday","intraday-compare","historical","historical-compare"],Mn=Gt({quant:ut(),c
1olor:ut().optional()}),Ln=Gt({version:$a(2),activeChart:Mt(wn).optional().catch(void 0),selectedBacktrackKey:Mt(Pa).optional().catch(void 0),isHoveredValueMode:Ne().optional().catch(void 0),isLogScale:Ne().optional().catch(void 0),isAdvanced:Ne().optional().catch(void 0),isDrawMode:Ne().optional().catch(void 0),newLineColor:ut().optional().catch(void 0),isRsi:Ne().optional().catch(void 0),isAdx:Ne().optional().catch(void 0),isStochastic:Ne().optional().catch(void 0),isMacd:Ne().optional().catch(void 0),adjustmentMode:ut().optional().catch(void 0),smaInfos:bt(wt()).optional().catch(void 0),drawingState:wt().optional().catch(void 0),compareEntities:bt(Mn).optional().catch(void 0)});function An(t){if(!t||typeof t!="object")return;const e=t;if(e.version!==1&&e.version!==2)return;const a={version:2,activeChart:e.activeChart,selectedBacktrackKey:e.selectedBacktrackKey,isHoveredValueMode:e.isHoveredValueMode??e.hoveredValueMode,isLogScale:e.isLogScale??e.logScale,isAdvanced:e.isAdvanced??e.advanced,isDrawMode:e.isDrawMode??e.drawMode,newLineColor:e.newLineColor,isRsi:e.isRsi??e.rsi,isAdx:e.isAdx??e.adx,isStochastic:e.isStochastic??e.stochastic,isMacd:e.isMacd??e.macd,adjustmentMode:e.adjustmentMode,smaInfos:e.smaInfos,drawingState:e.drawingState,compareEntities:e.compareEntities},s=Ln.safeParse(a);if(s.success)return s.data}function gt(t){const e=t.compareEntities??[];return{version:2,activeChart:t.activeChart,selectedBacktrackKey:t.selectedBacktrackKey,isHoveredValueMode:t.isHoveredValueMode,isLogScale:t.isLogScale,isAdvanced:t.isAdvanced,isDrawMode:t.isDrawMode,newLineColor:t.newLineColor,isRsi:t.isRsi,isAdx:t.isAdx,isStochastic:t.isStochastic,isMacd:t.isMacd,adjustmentMode:t.adjustmentMode,smaInfos:t.smaInfos,drawingState:t.drawingState,compareEntities:e}}function Pn(t,e,a={}){e.activeChart&&!(a.preserveActiveChart&&t.activeChart!==void 0)&&(t.activeChart=e.activeChart),e.selectedBacktrackKey&&!(a.preserveSelectedBacktrackKey&&t.selectedBacktrackKey!==void 0)&&(t.selectedBacktrackKey=e.selectedBacktrackKey),typeof e.isHoveredValueMode=="boolean"&&(t.isHoveredValueMode=e.isHoveredValueMode),typeof e.isLogScale=="boolean"&&(t.isLogScale=e.isLogScale),typeof e.isAdvanced=="boolean"&&(t.isAdvanced=e.isAdvanced),typeof e.isDrawMode=="boolean"&&(t.isDrawMode=e.isDrawMode),typeof e.newLineColor=="string"&&(t.newLineColor=e.newLineColor),typeof e.isRsi=="boolean"&&(t.isRsi=e.isRsi),typeof e.isAdx=="boolean"&&(t.isAdx=e.isAdx),typeof e.isStochastic=="boolean"&&(t.isStochastic=e.isStochastic),typeof e.isMacd=="boolean"&&(t.isMacd=e.isMacd),e.adjustmentMode&&(t.adjustmentMode=e.adjustmentMode),Array.isArray(e.smaInfos)&&(t.smaInfos=e.smaInfos),e.drawingState&&(t.drawingState=e.drawingState)}const Tn=["isHoveredValueMode","isLogScale","isAdvanced","isDrawMode","newLineColor","isRsi","isAdx","isStochastic","isMacd","adjustmentMode","smaInfos","drawingState","compareEntities"];function Ze(t){const e=gt(t),a={};for(const s of Tn)a[s]=e[s];return JSON.stringify(a)}function En(t,e){t.isHoveredValueMode=!1,t.isLogScale=!1,t.isAdvanced=!1,t.isDrawMode=!1,t.isRsi=!1,t.isAdx=!1,t.isStochastic=!1,t.isMacd=!1,t.adjustmentMode="xts",t.smaInfos=[],t.compareEntities=[],t.drawingState={version:1,lines:[]},t.newLineColor=e}function pt(t){return!!(t.isHoveredValueMode||t.isLogScale||t.isAdvanced||t.isDrawMode||t.isRsi||t.isAdx||t.isStochastic||t.isMacd||t.adjustmentMode&&t.adjustmentMode!=="xts"||t.smaInfos?.length||t.compareEntities?.length||t.drawingState?.lines?.length)}function yt(t){t.isAdvanced=!1,t.isDrawMode=!1,t.isRsi=!1,t.isAdx=!1,t.isStochastic=!1,t.isMacd=!1}const We={"5m":{time:"minute",amount:5},"30m":{time:"minute",amount:30},"2h":{time:"hour",amount:2},intraday:{time:"intraday"},day:{time:"day"},"1w":{time:"week",amount:1},"1m":{time:"month",amount:1},"3m":{time:"month",amount:3},"6m":{time:"month",amount:6},"1y":{time:"year",amount:1},"3y":{time:"year",amount:3},"5y":{time:"year",amount:5},"10y":{time:"year",amount:10},ytd:{time:"ytd"},total:{time:"total"}};function Dn(t){const{t:e}=rt(),{p:a,pTailwind:s}=st(),i=f(()=>Oe(t.data)),d=f(()=>Oe(t.isInterest)===!0),x=f(()=>Oe(t.backtrackOptionKeys)),m=[{key:"5m",backtrack:5,threshold:5,label:()=>e("pulse.data-range.minute",5)},{key:"30m",backtrack:30,threshold:30,label:()=>e("pulse.data-range.minute",30)},{key:"2h",backtrack:120,threshold:120,label:()=>e("pulse.data-range.hour",2)},{key:"intraday",backtrack:void 0,threshold:0,fromStart:!0,label:()=>e("pulse.data-range.intraday")}],o=f(()=>{const l=i.value;if(!l)return[];const v=[];
1if(l.groupedTicks?.length){const c=l.groupedTicks.length-1;for(const p of m){const E=p.fromStart?0:c-(c>=p.threshold?p.threshold:0),b=l.groupedTicks[E]?.firstValue;v.push({key:p.key,label:p.label(),backtrack:p.backtrack,intraday:!0,description:d.value?a.calculateChangeStr(l,b):a.calculatePercentStr(l,b),descriptionClass:s.textClass(a.calculateChange(l,b))})}}if(!l.backtracks)return v;for(const[c,p]of Object.entries(l.backtracks)){if(c==="total"){v.push({key:"total",label:e("pulse.data-range.total"),backtrack:p,intraday:!1});continue}const E=l.backtracksComp?.[c];if(E==null){v.push({key:c,label:We[c]?.amount?e(`pulse.data-range.${We[c]?.time}`,We[c].amount):e(`pulse.data-range.${We[c]?.time}`),backtrack:p,intraday:!1});continue}const b=d.value?a.calculateChange(l,E,!0):a.calculatePercent(l,E,!0);v.push({key:c,label:We[c]?.amount?e(`pulse.data-range.${We[c]?.time}`,We[c].amount):e(`pulse.data-range.${We[c]?.time}`),backtrack:p,change:b,description:d.value?a.calculateChangeStr(l,E,!0):a.calculatePercentStr(l,E,!0),intraday:!1,descriptionClass:s.textClass(b)})}return v}),u=f(()=>{const l=x.value;return o.value.filter(v=>v.key&&l?.includes(v.key))});return{backtrackOptions:o,backtrackOptionsShortcuts:u}}function $n(t){const{settings:e,scopeKey:a,getLineColor:s}=t,{registerPendingCompareAdd:i,isCurrentCompareAdd:d,resolvePendingCompareAdd:x,cancelPendingCompareAdd:m,cancelPendingCompareAdds:o}=Yt(),u=tt("pulse-chart-v2-hydrated-compare-entities",()=>({})),l=f(()=>u.value[a()]??[]),v=f(()=>e.value.compareEntities??[]);function c(w){w?.quant&&m(a(),w.quant),e.value.compareEntities=e.value.compareEntities.filter(O=>O.quant!==w?.quant),u.value[a()]=l.value.filter(O=>O.quant!==w?.quant)}function p(){o(a()),e.value.compareEntities=[],u.value[a()]=[]}function E(){o(a())}function b(w=a()){u.value[w]=[]}async function B(w,O){const P=e.value;if(P.compareEntities?.length||(P.compareEntities=[]),!P.compareEntities.some(G=>G.quant===w.quant))return F(w,O,P,a(),!1)}function A(w,O,P,G){if(P.compareEntities.some(ae=>ae.quant===w.quant))return F(w,O,P,G,!0)}async function F(w,O,P,G,ae){const D=i(G,w.quant),oe=(R,N)=>{if(!d(G,w.quant,D))return;const ye=u.value[G]??[];if(P.compareEntities.some(ne=>ne.quant===w.quant)!==ae||ye.some(ne=>ne.quant===w.quant)){x(G,w.quant);return}ae||yt(P);const ke=O??s(P.compareEntities.length)??"hotpink";u.value[G]=[...ye,{quant:w.quant,color:ke,xtsWithLast:N,groupedTicks:R.groupedTicks,model:w}],ae||P.compareEntities.push({quant:w.quant,color:ke}),x(G,w.quant)},S=async R=>{if(R){if(R.historyUrl)try{const{xts:N}=await ia(R.historyUrl);if(N){oe(R,N);return}}catch{}oe(R,R.historyWithoutLast?[...R.historyWithoutLast,R.xt]:[R.xt])}},{data:H}=ra(w.quant,1e4);if(H.value){await S(H.value);return}ya(H,R=>{S(R)})}return{compareEntities:v,hydratedCompareEntities:l,addCompareEntity:B,hydrateCompareEntity:A,removeCompareEntity:c,clearComparison:p,cancelPendingAdds:E,clearHydratedCompareEntities:b}}function Bn(){const{isDark:t}=Ba(),e=(i,d,x=!0)=>{const m=Kt("");if(typeof window>"u"||typeof document>"u")return m.value="#fff",m;const o=f(()=>{if(d!==void 0){const l=Oe(d);return l instanceof HTMLElement?l:null}return document.body||document.documentElement}),u=()=>{const l=o.value;if(!l||!l.isConnected)return;const c=getComputedStyle(l).getPropertyValue(i)?.trim();c&&(m.value=c)};if(u(),!m.value){const l=[50,150,300,500,1e3],v=()=>{m.value||u()};l.forEach(c=>setTimeout(v,c))}if(x){let l=null;const v=ka(u,20),c=()=>{l&&(l.disconnect(),l=null)},p=E=>{c(),l=new MutationObserver(v),l.observe(E,{attributes:!0,attributeFilter:["class","style"]})};He(o,E=>{E?(u(),p(E)):c()},{immediate:!0}),He(t,async()=>{await Ut(),u(),setTimeout(u,100),setTimeout(u,250)}),xa(c)}return m};function a(i){return i?i>0?"bg-success-solid-base":i<0?"bg-error-solid-base":"bg-neutral-solid-base":"bg-neutral-solid-base"}function s(i){return i?i>0?"text-success-solid-content":i<0?"text-error-solid-content":"text-neutral-solid-content":"text-neutral-solid-content"}return{getStyle:e,getUpOrDownClassBackground:a,getUpOrDownClassText:s}}function ft(t){return`pulse_chart_settings_${t}`}function lt(t,e=!1){return e?`${t}::stateless`:`${t}`}const In=["1m","3m","1y","total"];function Qt(t,e={}){const a=Ft(),s=dt(),{getStyle:i}=Bn(),{getCompareLineColor:d}=mt(),x=i("--color-primary-solid-base").value,m=()=>Oe(t);function o(){return Oe(e.isStateless)===!0}function u(){return!o()}function l(){return lt(m(),o())}const v=tt("pulse-chart-settings-v2",()=>({})),c=tt("pulse-chart-settings-v2-loaded-user-settings",()=>({})),p=tt("pulse-chart-settings-v2-saved-signature",()=>({})),E=tt("pulse-chart-settings-v2-applied-linked",()=>({}));function b(r){return d(r)}function B(r){const h=lt(r,o()),k=v.value[h];if(k)return k;const ue={activeChart:void 0,selectedBacktrackKey:void 0,isHoveredValueMode:!1,isLogScale:!1,isAdvanced:!1,isDrawMode:!1,newLineColor:x,isRsi:!1,isAdx:!1,isStochastic:!1,isMacd:!1,smaInfos:[],compareEntities:[],drawingState:{ver
1sion:1,lines:[]},adjustmentMode:"xts",isSettingsOpen:!1};return v.value[h]=ue,v.value[h]}const A=f(()=>B(m())),{userSettingsLoadPromises:F}=Yt(),{compareEntities:w,hydratedCompareEntities:O,addCompareEntity:P,hydrateCompareEntity:G,removeCompareEntity:ae,clearComparison:D,clearHydratedCompareEntities:oe,cancelPendingAdds:S}=$n({settings:A,scopeKey:l,getLineColor:b}),{backtrackOptions:H,backtrackOptionsShortcuts:R}=Dn({data:()=>Oe(e.data),isInterest:()=>A.value.isInterest,backtrackOptionKeys:()=>Oe(e.backtrackOptionKeys)});function N(){return!!a.userData?.jwt}function ye(){return N()}async function Le(r){if(N())try{return await a.getState(r)}catch(h){console.warn("[PulseChartSettings] Failed to read user state",{key:r,err:h});return}}function le(r,h){return f({get(){const k=A.value[r];return k===void 0?h:k},set(k){const ue=A.value;Object.is(ue[r],k)||(ue[r]=k)}})}async function ke(){const r=m(),h=l(),k=B(r);if(!u()||!N())return!1;if(c.value[h])return k.hasPersistedSettings===!0;const ue=`${a.userId??"anonymous"}::${h}`,g=F.get(ue);if(g)return g;const $=(async()=>{const te=await Le(ft(r));c.value[h]=!0;const ge=An(te);if(!ge)return k.isLoadedFromUserState=!0,k.hasPersistedSettings=!1,p.value[h]=Ze(k),!1;Pn(k,ge,{preserveActiveChart:k.activeChart!==void 0,preserveSelectedBacktrackKey:k.selectedBacktrackKey!==void 0});const Ee=pt(ge);if(k.isLoadedFromUserState=!0,k.hasPersistedSettings=Ee,k.compareEntities=(ge.compareEntities??[]).map(Be=>({...Be})),p.value[h]=Ze(k),ge.compareEntities?.length)try{for(const Be of ge.compareEntities){if(!Be?.quant)continue;const J=await s.getModelAsync(Be.quant);J&&await G(J,Be.color,k,h)}}catch(Be){console.warn("[PulseChartSettings] Failed to hydrate compare entities",{err:Be})}return Ee})().finally(()=>{F.delete(ue)});return F.set(ue,$),$}function ne(){const r=l();v.value[r]=void 0,c.value[r]=void 0,p.value[r]=void 0,oe()}async function Ie(){const r=m(),h=l();if(!u()||!ye())return;const k=lt(r,!1);c.value[k]||await ke(),c.value[k]=!0;const ue=B(r),g=gt(ue),$=Ze(ue),te=pt(g);await a.setState(ft(r),g),p.value[h]=$,ue.hasPersistedSettings=te}async function Re(){const r=m(),h=l(),k=B(r);S(),u()&&ye()&&(await a.removeStateKeys([ft(r),`drawing_${r}`,`drawings_${r}`,`csma_${r}`]),c.value[lt(r,!1)]=!0),En(k,x),oe(h),k.hasPersistedSettings=!1,p.value[h]=Ze(k)}async function Y(r,h){if(o())return;const k=m(),ue=l();if(E.value[ue]===h)return;E.value[ue]=h,await ke();const g=B(k);if(r.periodKey){const $=H.value.find(te=>te.key===r.periodKey);$&&($.intraday&&yt(g),g.selectedBacktrackKey=$.key)}if(r.indicators){const $=new Set(r.indicators);for(const[te,ge]of Object.entries(St))g[ge]=$.has(te)}for(const $ of r.compareQuants??[]){if(!$||$===k||g.compareEntities.some(ge=>ge.quant===$))continue;const te=await s.getModelAsync($);te&&await P(te)}}const Ae=le("activeChart",void 0),W=le("selectedBacktrackKey",void 0),be=le("isSettingsOpen",!1),Te=le("isAdx",!1),De=le("isRsi",!1),z=le("isStochastic",!1),he=le("isMacd",!1),K=le("isDrawMode",!1),j=le("isLogScale",!1),se=le("isAdvanced",!1),ce=le("isHoveredValueMode",!1),C=le("adjustmentMode","xts"),re=le("newLineColor",x),X=f(()=>A.value.smaInfos??[]),L=f(()=>A.value.drawingState),Q=f(()=>A.value.hasPersistedSettings??!1),y=f(()=>A.value.isLoadedFromUserState??!1),M=f(()=>pt(gt(A.value))),I=f(()=>{const r=p.value[l()];return r===void 0?!1:Ze(A.value)!==r}),$e=f(()=>!!a.userData?.jwt&&!o());function we(r){A.value.isInterest=r}function ve(r){Ae.value=r}function Me(r){r?.intraday&&yt(A.value),W.value=r?.key}function de(){const r=A.value.selectedBacktrackKey,h=H.value.find(ue=>ue.key===r);if(h&&!h.intraday)return;const k=In.map(ue=>H.value.find(g=>g.key===ue)).find(Boolean);W.value=k?.key}function xe(r,h){const k=A.value;Object.is(k[r],h)||(k[r]=h,h&&(de(),D()))}function Pe(r,h){xe(St[r],h)}function qe(r){xe("isAdvanced",r)}function ee(r){xe("isDrawMode",r)}function Ue(r){const h=A.value;Object.is(h.isHoveredValueMode,r)||(h.isHoveredValueMode=r,r&&D())}function fe(r){const h=A.value;Object.is(h.adjustmentMode,r)||(h.adjustmentMode=r),de(),D()}async function ie(){const r=A.value,h={id:Math.random().toString(16).substring(2),color:`#${Math.floor(Math.random()*16777215).toString(16)}`,period:50};r.smaInfos.push(h)}async function _e(r){const k=A.value.smaInfos.find(ue=>ue.id===r.id);k&&(k.color=r.color,k.period=r.period)}function me(r){A.value.smaInfos=A.value.smaInfos.filter(h=>h.id!==r.id)}async function Ve(r){A.value.drawingState=r}return He([()=>m(),()=>a.userData?.jwt,()=>Oe(e.isStateless)],([,r,h])=>{!r||h||ke()},{immediate:!0}),{loadUserSettings:ke,clearSettings:ne,applyLinkedSettings:Y,saveSettings:Ie,clearSavedSettings:Re,settings:A,activeChart:Ae,selectedBacktrackKey:W,isSettingsOpen:be,isAdx:Te,isRsi:De,isStochastic:z,isMacd:he,isDrawMode:K,isLogScale:j,isAdvanced:se,isHoveredValueMode:ce,adjustmentMode:C,newLineColor:re,compareEntities:w,hydratedCompareEntities:O,smaInfos:X,drawingState:L,hasPersistedSettings:Q,isLoadedFromUserState:y,hasSavableSettings:M,hasUnsavedChanges:I,canSaveSettings:$e,backtrackOptions:H,backtrackOptionsShortcuts:R,setIsInterest:we,setActiveChart:ve,setSelectedBacktrack:Me,selectHistoricalDefault:de,setIndicator:Pe,setAdvancedMode:qe,setDrawMode:ee,setHoveredValueMode:Ue,setAdjustmentMode:fe,addCustomSMA:ie,updateCustomSMA:_e,removeCustomSMA:me,addCompareEntity:P,removeCompareEntity:ae,clearComparison:D,setDrawingState:Ve}}function Hn(t){const{getCompareLineColor:e}=mt(),a=f(()=>Oe(t.hydratedCompareEntities)??[]),s=f(()=>a.value.filter(o=>!!o.model).map((o,u)=>({color:o.color||e(u),model:o.model,quant:o.quant}))),i=f(()=>s.value.map(o=>o.model)),d=f(()=>i.value.map(o=>o.quant));function x(o){return t.addCompareEntity?.(o)}function m(o){t.removeCompareEntity?.(o)}return{addComparedInstrument:x,comparedEntries:s,comparedInstruments:i,comparedInstrumentQuants:d,removeComparedInstrument:m}}const Rn={key:0,class:"mt-6 *:relative"},qn={class:"flex items-center align-middle"},On={for:"draw-mode-color-selector",class:"cursor-pointer pl-2 text-sm text-basic-text"},Vn={class:"flex flex-col flex-wrap gap-2 py-4 text-xs sm:flex-row"},jn={key:0,class:"mt-4 grid grid-cols-1 gap-4 md:grid-cols-3"},Kn={key:1,class:"mt-4"},Un={class:"grid grid-cols-1 gap-8 lg:grid-cols-3"},Fn={class:"[&>div]:border-b [&>div]:border-basic-border [&>div]:pb-1 [&>div]:mb-1 last:[&>div]:border-none"},Gn={class:"[&>div>div]:border-b [&>div>div]:border-basic-border [&>div>div]:pb-padding-3 last:[&>div>div]:border-none"},Nn={class:"[&>div]:border-b [&>div]:border-basic-border [&>div]:pb-1 [&>div]:mb-1 last:[&>div]:border-none"},Wn={key:2,class:"mt-6 flex flex-wrap justify-end gap-2"},zn=ze({__name:"PulseTickerSettings",props:{quant:{},data:{},isStateless:{type:Boolean},drawControls:{}},setup(t){const e=t,{t:a}=rt(),{settings:s,isAdx:i,isRsi:d,isStochastic:x,isMacd:m,isDrawMode:o,isLogScale:u,isAdvanced:l,isHoveredValueMode:v,adjustmentMode:c,newLineColor:p,addCustomSMA:E,updateCustomSMA:b,removeCustomSMA:B,addCompareEntity:A,hydratedCompareEntities:F,removeCompareEntity:w,clearComparison:O,saveSettings:P,clearSavedSettings:G,setAdvancedMode:ae,setDrawMode:D,setHoveredValueMode:oe,setIndicator:S,setAdjustmentMode:H,hasSavableSettings:R,hasUnsavedChanges:N,canSaveSettings:ye,hasPersistedSettings:Le}
1=Qt(Ge(e,"quant"),{isStateless:Ge(e,"isStateless"),data:Ge(e,"data")}),le=f({get:()=>i.value,set:M=>S("adx",M)}),ke=f({get:()=>d.value,set:M=>S("rsi",M)}),ne=f({get:()=>x.value,set:M=>S("stochastic",M)}),Ie=f({get:()=>m.value,set:M=>S("macd",M)}),Re=f({get:()=>l.value,set:ae}),Y=f({get:()=>o.value,set:D}),Ae=f({get:()=>v.value,set:oe}),W=f({get:()=>c.value,set:H}),{addComparedInstrument:be,comparedEntries:Te,comparedInstruments:De,comparedInstrumentQuants:z,removeComparedInstrument:he}=Hn({hydratedCompareEntities:F,addCompareEntity:A,removeCompareEntity:w}),K=f(()=>[e.quant,...z.value]),j=f(()=>(s.value?.compareEntities?.length??0)>0),se=f(()=>(s.value?.smaInfos?.length??0)>0),ce=f(()=>!e.isStateless&&(N.value&&ye.value||R.value||Le.value));function C(){e.drawControls?.createNormalLine()}function re(){e.drawControls?.createHorizontalLine()}function X(){e.drawControls?.createVerticalLine()}function L(){e.drawControls?.clearDrawings()}const Q=_a([{model:le,label:a("pulse.ticker.chart.settings.technical.adx")},{model:ke,label:a("pulse.ticker.chart.settings.technical.rsi")},{model:ne,label:a("pulse.ticker.chart.settings.technical.stochastic")},{model:Ie,label:a("pulse.ticker.chart.settings.technical.macd")}]),y=[{label:a("pulse.ticker.chart.settings.adjustments.full.name"),description:a("pulse.ticker.chart.settings.adjustments.full.description"),value:"xts"},{label:a("pulse.ticker.chart.settings.adjustments.partial.name"),description:a("pulse.ticker.chart.settings.adjustments.partial.description"),value:"splitAdjustedXts"},{label:a("pulse.ticker.chart.settings.adjustments.none.name"),description:a("pulse.ticker.chart.settings.adjustments.none.description"),value:"rawXts"}];return(M,I)=>{const $e=rn,we=hn,ve=xt,Me=Ct,de=Ma,xe=La,Pe=Aa,qe=bn;return n(s)?(_(),Z("div",Rn,[n(se)?(_(),Se(de,{key:0,condensed:"",class:"mb-4"},{default:Ce(()=>[n(j)?(_(),Se($e,{key:0})):V("",!0),(_(!0),Z(at,null,nt(n(s)?.smaInfos,ee=>(_(),Se(we,{key:ee.id,sma:ee,onUpdateSma:n(b),onRemoveSma:n(B)},null,8,["sma","onUpdateSma","onRemoveSma"]))),128)),T(Me,{class:"mt-4",type:"primary",size:"small",onClick:n(E)},{default:Ce(()=>[T(ve,{name:"mdi:plus"}),Ke(" "+pe(n(a)("pulse.ticker.chart.settings.technical.sma.button")),1)]),_:1},8,["onClick"])]),_:1})):V("",!0),n(o)?(_(),Se(de,{key:1,title:n(a)("pulse.ticker.chart.settings.alternatives.draw-mode.title"),class:"mb-4",condensed:""},{default:Ce(()=>[n(j)?(_(),Se($e,{key:0})):V("",!0),q("div",qn,[Ca(q("input",{id:"draw-mode-color-selector","onUpdate:modelValue":I[0]||(I[0]=ee=>Qe(p)?p.value=ee:null),type:"color",class:"size-8 cursor-pointer bg-transparent"},null,512),[[Sa,n(p)]]),q("label",On,pe(n(a)("pulse.ticker.chart.settings.draw-mode.choose-color")),1)]),q("section",Vn,[T(Me,{type:"primary",onClick:C},{default:Ce(()=>[Ke(pe(n(a)("pulse.ticker.chart.settings.alternatives.draw-mode.add-line"))+" ",1),T(ve,{name:"mdi:plus"})]),_:1}),T(Me,{type:"primary",onClick:re},{default:Ce(()=>[Ke(pe(n(a)("pulse.ticker.chart.settings.alternatives.draw-mode.add-horizontal-line"))+" ",1),T(ve,{name:"mdi:arrow-left-right"})]),_:1}),T(Me,{type:"primary",onClick:X},{default:Ce(()=>[Ke(pe(n(a)("pulse.ticker.chart.settings.alternatives.draw-mode.add-vertical-line"))+" ",1),T(ve,{name:"mdi:arrow-up-down"})]),_:1}),T(Me,{type:"secondary",onClick:L},{default:Ce(()=>[Ke(pe(n(a)("pulse.ticker.chart.settings.alternatives.draw-mode.remove-all"))+" ",1),T(ve,{name:"mdi:delete-outline"})]),_:1})])]),_:1},8,["title"])):V("",!0),T(de,{title:n(a)("pulse.ticker.chart.settings.compare.title"),class:"mb-6",condensed:""},{default:Ce(()=>[T(xe,{placeholder:n(a)("pulse.ticker.chart.settings.compare.input.placeholder"),"omit-list":n(K),onSelected:n(be)},null,8,["placeholder","omit-list","onSelected"]),n(De).length?(_(),Z("div",jn,[(_(!0),Z(at,null,nt(n(Te),ee=>(_(),Z("div",{key:ee.quant,class:"flex items-center gap-2 rounded-radius-base border border-basic-border px-3 py-1 text-basic-text"},[q("span",{class:"size-2 rounded-full",style:_t({backgroundColor:ee.color})},null,4),Ke(" "+pe(ee.model.displayName)+" ",1),T(ve,{class:"cursor-pointer",name:"mdi:trash-can-outline",onClick:Ue=>n(he)(ee.model)},null,8,["onClick"])]))),128))])):V("",!0),n(De).length?(_(),Z("div",Kn,[T(Me,{type:"secondary",onClick:n(O)},{default:Ce(()=>[T(ve,{name:"mdi:trash-can-outline"}),Ke(" "+pe(n(a)("pulse.ticker.chart.settings.alternatives.draw-mode.remove-all")),1)]),_:1},8,["onClick"])])):V("",!0)]),_:1},8,["title"]),q("div",Un,[T(de,{title:n(a)("pulse.ticker.chart.settings.technical.title"),condensed:""},{default:Ce(()=>[n(j)?(_(),Se($e,{key:0})):V("",!0),q("div",Fn,[(_(!0),Z(at,null,nt(n(Q),ee=>(_(),Se(Pe,{key:ee.label,modelValue:ee.model,"onUpdate:modelValue":Ue=>ee.model=Ue,text:ee.label},null,8,["modelValue","onUpdate:modelValue","text"]))),128))]),n(se)?V("",!0):(_(),Se(Me,{key:1,class:"mt-4",type:"primary",size:"small",onClick:n(E)},{default:Ce(()=>[T(ve,{name:"mdi:plus"}),Ke(" "+pe(n(a)("pulse.ticker.chart.settings.technical.sma.button")),1
1)]),_:1},8,["onClick"]))]),_:1},8,["title"]),T(de,{title:n(a)("pulse.ticker.chart.settings.adjustments.title"),condensed:""},{default:Ce(()=>[n(j)?(_(),Se($e,{key:0})):V("",!0),q("div",Gn,[T(qe,{modelValue:n(W),"onUpdate:modelValue":I[1]||(I[1]=ee=>Qe(W)?W.value=ee:null),options:y},null,8,["modelValue"])])]),_:1},8,["title"]),T(de,{title:n(a)("pulse.ticker.chart.settings.alternatives.title"),condensed:""},{default:Ce(()=>[n(j)?(_(),Se($e,{key:0})):V("",!0),q("div",Nn,[T(Pe,{modelValue:n(u),"onUpdate:modelValue":I[2]||(I[2]=ee=>Qe(u)?u.value=ee:null),text:n(a)("pulse.ticker.chart.settings.alternatives.logarithmic-scale")},null,8,["modelValue","text"]),T(Pe,{modelValue:n(Re),"onUpdate:modelValue":I[3]||(I[3]=ee=>Qe(Re)?Re.value=ee:null),text:n(a)("pulse.ticker.chart.settings.alternatives.advanced")},null,8,["modelValue","text"]),T(Pe,{modelValue:n(Ae),"onUpdate:modelValue":I[4]||(I[4]=ee=>Qe(Ae)?Ae.value=ee:null),text:n(a)("pulse.ticker.chart.settings.alternatives.free-hand-mode")},null,8,["modelValue","text"]),T(Pe,{modelValue:n(Y),"onUpdate:modelValue":I[5]||(I[5]=ee=>Qe(Y)?Y.value=ee:null),text:n(a)("pulse.ticker.chart.settings.alternatives.draw-mode.title")},null,8,["modelValue","text"])])]),_:1},8,["title"])]),n(ce)?(_(),Z("div",Wn,[n(R)||n(Le)?(_(),Se(Me,{key:0,type:"secondary",onClick:n(G)},{default:Ce(()=>[T(ve,{name:"mdi:backup-restore"}),Ke(" "+pe(n(a)("pulse.ticker.chart.settings.clear")),1)]),_:1},8,["onClick"])):V("",!0),n(N)&&n(ye)?(_(),Se(Me,{key:1,type:"primary",onClick:n(P)},{default:Ce(()=>[T(ve,{name:"mdi:content-save-outline"}),Ke(" "+pe(n(a)("pulse.ticker.chart.settings.save")),1)]),_:1},8,["onClick"])):V("",!0)])):V("",!0)])):V("",!0)}}}),Xn=Object.assign(zn,{__name:"PulseTickerSettings"});function Yn({intradayChartHoverData:t,historicalChartHoverData:e}){if(t)return{type:"intraday",time:t.time,close:t.firstValue,volume:t.barGroup?.volume,turnover:t.turnover};if(e)return{type:"historical",index:e.index,indexFromLast:e.indexFromLast,time:e.timePoint[0],open:e.xt?.[1],high:e.xt?.[2],low:e.xt?.[3],close:e.timePoint[1],volume:e.xt?.[5],turnover:e.xt?.[6],prev:e.prev}}function Qn(){return{prepareHoverChartData:Yn}}function Jn(t){const e=f(()=>Oe(t.backtrackOptions)??[]),a=f(()=>Oe(t.selectedBacktrackKey)),s=t.historicalFallbackKeys??["1m","3m","1y","total"];function i(c){if(c)return e.value.find(p=>p.key===c)}function d(c,p){return e.value.find(E=>E.intraday===p&&E.backtrack===c)}const x=f(()=>i(a.value)),m=f(()=>x.value?.intraday?x.value.backtrack:void 0),o=f(()=>x.value?.intraday?void 0:x.value?.backtrack);function u(){x.value&&!x.value.intraday||t.setSelectedBacktrack(s.map(c=>i(c)).find(Boolean))}function l(c){t.setSelectedBacktrack(i(c))}function v(c,p){t.setSelectedBacktrack(d(c,p))}return{findBacktrackByKey:i,findBacktrackByRange:d,historicalBacktrack:o,intradayBacktrack:m,selectHistoricalDefault:u,selectedBacktrack:x,selectedBacktrackKey:a,setSelectedBacktrackByKey:l,setSelectedBacktrackByRange:v}}function Zn(t){const e=f(()=>Oe(t.data)),a=f(()=>Oe(t.chartSettings)),{selectedBacktrack:s,selectedBacktrackKey:i,setSelectedBacktrackByKey:d,setSelectedBacktrackByRange:x}=Jn({backtrackOptions:t.backtrackOptions,selectedBacktrackKey:f(()=>a.value?.selectedBacktrackKey),setSelectedBacktrack:t.setSelectedBacktrack,historicalFallbackKeys:t.historicalFallbackKeys}),m=f(()=>!!e.value?.groupedTicks&&e.value.groupedTicks.length>1),o=f(()=>{const c=a.value;return c?c.isAdvanced||c.isDrawMode||c.isRsi||c.isAdx||c.isStochastic||c.isMacd?"historical":c.compareEntities?.length?s.value?.intraday?"intraday-compare":"historical-compare":s.value&&!s.value.intraday?"historical":m.value?"intraday":"historical":m.value?"intraday":"historical"}),u=f(()=>!m.value&&(o.value==="intraday"||o.value==="intraday-compare"));He(e,async c=>{if(!c)return;await t.loadUserSettings(),await Ut();const p=a.value;if(!!p&&(p.isAdvanced||p.isDrawMode||p.isRsi||p.isAdx||p.isStochastic||p.isMacd)&&(!s.value||s.value.intraday)){t.selectHistoricalDefault();return}if(!p?.selectedBacktrackKey){if(s.value?.intraday&&s.value.backtrack===void 0){t.setSelectedBacktrack(s.value);return}if(Oe(t.backtrackOptions)?.some(b=>b.intraday&&b.backtrack===void 0)){x(void 0,!0);return}t.selectHistoricalDefault()}},{immediate:!0}),He(o,c=>t.setActiveChart(c),{immediate:!0});const l=f(()=>o.value==="historical"||o.value==="historical-compare"),{historicalData:v}=oa({historyUrl:f(()=>e.value?.historyUrl),adjustmentMode:f(()=>a.value?.adjustmentMode),isEnabled:l});return{activeChart:o,historicalData:v,selectedBacktrack:s,selectedBacktrackKey:i,setSelectedBacktrackByKey:d,showIntradayUnavailableState:u}}const es={class:"flex flex-col bg-background-base"},ts={key:0},as={key:0,class:"flex items-start justify-between gap-4 py-4 lg:p-4"},ns={key:0,class:"hidden lg:flex flex-wrap grow min-w-0 gap-px"},ss=["aria-pressed","onClick"],rs={class:"whitespace-nowrap text-sm leading-none text-basic-text"},is={key:0,class:"flex w-full min-w-0 items-center justify-between gap-4 pr-2 text-sm"},os={class:"truncate font-semibold"},ls={class:"flex min-h-8 items-center gap-3 px-1 text-sm"},cs={class:"grow font-medium"},us={key:1,class:"flex w-full grow items-center justify-center"},ds={key:6,class:"py-4 lg:p-4"},ms={class:"flex w-full flex-row justify-end"}
1,ps={key:0,"aria-hidden":"true",class:"absolute -right-1 -top-1 size-2 rounded-full bg-accent-blue"},fs={class:"flex items-center"},hs=ze({__name:"PulseTickerChart",props:{quant:{},model:{},data:{},isLoading:{type:Boolean},isShowingChartSettings:{type:Boolean,default:!0},isStateless:{type:Boolean},isSimple:{type:Boolean},showPrevLine:{type:Boolean},backtrackShortcuts:{},maxHeight:{},isFontMono:{type:Boolean},isDarkChart:{type:Boolean},isInterest:{type:Boolean},priceMultiplier:{}},emits:["hoverDataChanged","settingsAutoOpened"],setup(t,{emit:e}){const a=t,s=e,{p:i,pTailwind:d}=st(),{t:x}=rt(),{prepareHoverChartData:m}=Qn(),o=ba(),u=Ge(a,"data"),l=Ge(a,"backtrackShortcuts"),{settings:v,isSettingsOpen:c,hasPersistedSettings:p,hasSavableSettings:E,loadUserSettings:b,setActiveChart:B,setSelectedBacktrack:A,selectHistoricalDefault:F,hydratedCompareEntities:w,setDrawingState:O,setIsInterest:P,applyLinkedSettings:G,backtrackOptions:ae,backtrackOptionsShortcuts:D}=Qt(Ge(a,"quant"),{isStateless:Ge(a,"isStateless"),data:u,backtrackOptionKeys:l});He(()=>a.isInterest,z=>P(z??!1),{immediate:!0});const oe=f(()=>{if(!u.value||ae.value.length===0)return!1;const z=Ta(o.query[Ea]);return!(z&&!ae.value.some(he=>he.key===z))});Da({isReady:oe,selectedCompareQuants:f(()=>v.value.compareEntities.map(z=>z.quant)),applyLinkedSettings:G});const S=Kt(),H=f(()=>x("pulse.ticker.chart.state.no-intraday")),R=f(()=>x("pulse.ticker.chart.settings.button")),{activeChart:N,historicalData:ye,selectedBacktrack:Le,selectedBacktrackKey:le,setSelectedBacktrackByKey:ke,showIntradayUnavailableState:ne}=Zn({data:u,chartSettings:v,backtrackOptions:ae,loadUserSettings:b,selectHistoricalDefault:F,setSelectedBacktrack:A,setActiveChart:B}),Ie=Xe(),Re=f(()=>!a.isSimple&&(a.isShowingChartSettings||!!a.backtrackShortcuts)&&ae.value.length>0),Y=f(()=>Object.fromEntries(ae.value.map(z=>[z.key,{changeText:z.description??(z.change!==void 0?i.dynamicPercentStr(z.change):void 0),descriptionClass:z.descriptionClass,change:z.change}]))),Ae=f(()=>E.value||p.value),W=f(()=>c.value?"mdi:chevron-up":"mdi:chevron-down");He(N,()=>s("hoverDataChanged",void 0)),He([Ae,()=>a.quant,()=>a.isShowingChartSettings],([z,he,K])=>{!z||!K||(c.value=!0,Ie.value!==he&&(Ie.value=he,s("settingsAutoOpened",he)))},{immediate:!0});function be(){c.value=!c.value}function Te(z){s("hoverDataChanged",m({intradayChartHoverData:z}))}function De(z){s("hoverDataChanged",m({historicalChartHoverData:z}))}return(z,he)=>{const K=kt,j=xt,se=na,ce=la,C=Ga,re=aa,X=tn,L=Ct,Q=Xn;return _(),Z("div",es,[a.isLoading||!t.data?(_(),Se(K,{key:0,class:"min-h-100.25 md:min-
1h-143.5"})):V("",!0),T(ct,{"enter-from-class":"opacity-0","enter-active-class":"transition transform duration-200 ease-out","enter-to-class":"opacity-100"},{default:Ce(()=>[a.isLoading?V("",!0):(_(),Z("div",ts,[n(Re)?(_(),Z("div",as,[a.backtrackShortcuts?(_(),Z("div",ns,[(_(!0),Z(at,null,nt(n(D),y=>(_(),Z("button",{key:y.key,type:"button",class:Fe(["pulse-backtrack-shortcut flex flex-col gap-1 px-padding-4 py-padding-2 cursor-pointer bg-neutral-solid hover:bg-neutral-solid-hover active:bg-neutral-solid-clicked duration-150 transition-all select-none rounded-radius-xs w-fit",{"bg-neutral-solid-clicked":y.key===n(le)}]),"aria-pressed":y.key===n(le),onClick:M=>n(A)(y)},[q("span",rs,pe(y.label),1),n(Y)[y.key].changeText?(_(),Z("span",{key:0,class:Fe(["text-base leading-none whitespace-nowrap tabular-nums",[y.descriptionClass??n(d).textClass(y.change),{"font-mono":a.isFontMono}]])},pe(n(Y)[y.key].changeText),3)):V("",!0)],10,ss))),128))])):V("",!0),T(se,{class:"w-full md:w-72 md:ml-auto shrink-0 rounded-radius-base bg-surface-base shadow-sm",big:"",options:n(ae),"selected-key":n(le),onSelected:n(ke)},{selected:Ce(({selected:y})=>[y?(_(),Z("span",is,[q("span",os,pe(y.label),1),n(Y)[y.key].changeText?(_(),Z("span",{key:0,class:Fe(["shrink-0 font-semibold tabular-nums",[n(Y)[y.key].descriptionClass??n(d).textClass(n(Y)[y.key].change),{"font-mono":a.isFontMono}]])},pe(n(Y)[y.key].changeText),3)):V("",!0)])):V("",!0)]),option:Ce(({option:y,selected:M})=>[q("span",ls,[T(j,{name:"mdi:check",class:Fe(["size-4 shrink-0",{invisible:!M}]),"aria-hidden":"true"},null,8,["class"]),q("span",cs,pe(y.label),1),n(Y)[y.key].changeText?(_(),Z("span",{key:0,class:Fe(["shrink-0 font-semibold tabular-nums",[n(Y)[y.key].descriptionClass??n(d).textClass(n(Y)[y.key].change),{"font-mono":a.isFontMono}]])},pe(n(Y)[y.key].changeText),3)):V("",!0)])]),_:1},8,["options","selected-key","onSelected"])])):V("",!0),n(ne)?(_(),Z("div",us,pe(n(H)),1)):V("",!0),n(N)==="intraday"&&!n(ne)?(_(),Se(ce,{key:2,class:"w-full",data:t.data,backtrack:n(Le)?.backtrack,"log-scale":n(v)?.isLogScale,"hovered-value-mode":n(v)?.isHoveredValueMode,"show-prev-line":a.showPrevLine,quant:a.quant,"price-multiplier":a.priceMultiplier,"is-interest":a.isInterest,"is-dark-mode":a.isDarkChart,"max-height":a.maxHeight,onHoverChanged:Te},null,8,["data","backtrack","log-scale","hovered-value-mode","show-prev-line","quant","price-multiplier","is-interest","is-dark-mode","max-height"])):V("",!0),n(N)==="intraday-compare"&&!n(ne)?(_(),Se(C,{key:3,data:t.data,"main-quant":a.quant,"main-model":a.model,"last-minutes-filter":n(Le)?.backtrack,"compare-entities":n(w),"is-dark-mode":a.isDarkChart},null,8,["data","main-quant","main-model","last-minutes-filter","compare-entities","is-dark-mode"])):V("",!0),n(N)==="historical"?(_(),Se(re,{key:4,data:t.data,backtrack:n(Le)?.backtrack,"historical-data":n(ye),adx:n(v)?.isAdx,rsi:n(v)?.isRsi,stochastic:n(v)?.isStochastic,macd:n(v)?.isMacd,"log-scale":n(v)?.isLogScale,advanced:n(v)?.isAdvanced,"hovered-value-mode":n(v)?.isHoveredValueMode,"initial-drawing-state":n(v)?.drawingState,"draw-mode":n(v)?.isDrawMode,"sma-infos":n(v)?.smaInfos,"new-line-color":n(v).newLineColor,"price-multiplier":a.priceMultiplier,"is-interest":a.isInterest,"is-dark-mode":a.isDarkChart,"max-height":a.maxHeight,onHoverChanged:De,onDrawingsChanged:n(O),onDrawControlsReady:he[0]||(he[0]=y=>S.value=y)},null,8,["data","backtrack","historical-data","adx","rsi","stochastic","macd","log-scale","advanced","hovered-value-mode","initial-drawing-state","draw-mode","sma-infos","new-line-color","price-multiplier","is-interest","is-dark-mode","max-height","onDrawingsChanged"])):V("",!0),n(N)==="historical-compare"?(_(),Se(X,{key:5,data:t.data,"main-model":a.model,backtrack:n(Le)?.backtrack,"historical-data":n(ye),"compare-entities":n(w),"main-quant":a.quant,"is-dark-mode":a.isDarkChart},null,8,["data","main-model","backtrack","historical-data","compare-entities","main-quant","is-dark-mode"])):V("",!0),a.isShowingChartSettings?(_(),Z("div",ds,[q("div",ms,[T(L,{class:"relative w-full text-sm md:w-fit",type:"outlined","aria-expanded":n(c),onClick:be},{default:Ce(()=>[n(Ae)?(_(),Z("span",ps)):V("",!0),q("span",fs,[T(j,{name:"mdi:tune-variant",class:"mr-2"}),Ke(" "+pe(n(R))+" ",1),T(j,{name:n(W),class:"ml-2",size:"20"},null,8,["name"])])]),_:1},8,["aria-expanded"])]),n(c)&&a.isShowingChartSettings?(_(),Se(Q,{key:0,data:t.data,quant:a.quant,"is-stateless":a.isStateless,"draw-controls":n(S)},null,8,["data","quant","is-stateless","draw-controls"])):V("",!0)])):V("",!0)]))]),_:1})])}}}),vs=Object.assign(hs,{__name:"PulseTickerChart"}),gs={class:"w-full pr-3"},ys={key:0,class:"p-4 flex gap-3"},ks={class:"shrink-0"},xs={class:"text-sm text-pretty"},_s=ze({__name:"PulseAiTickerMiniReport",props:{quant:{}},setup(t){const e=t,{locale:a}=rt(),{instrumentReportSlimUrl:s}=Ia(),i=f(()=>e.quant?s(e.quant,a.value):void 0),{data:d}=wa(()=>`pulse-ai-instrument-report-slim-${e.quant}-${a.value}`,async()=>!e.quant||!i.value?null:await $fetch(i.value),{watch:[()=>e.quant,i],immediate:!0}),x=f(()=>d.value?._t==="generated"),m=f(()=>d.value?.sentence??"");return(o,u)=>{const l=Ha,v=Ra;return _(),Z("div",gs,[n(x)?(_(),Z("div",ys,[q("div",ks,[T(l,{size:"22"})]),q("p",xs,[T(v,{text:n(m)},null,8,["text"])])])):V("",!0)])}}}),Cs=Object.assign(_s,{__name:"PulseAiTickerMiniReport"}
1),Ss={class:"bg-surface-base p-padding-2 rounded-radius-base text-basic-text shadow-card-shadow border border-neutral-border"},bs={class:"p-padding-2 text-lg"},ws={key:0,class:"mb-8 flex items-center justify-center"},Ms={class:"rounded-md bg-surface-base px-padding-2 py-1 text-center text-basic-sub-text"},Ls={key:0,class:"flex flex-col"},As={class:"w-full p-2"},Ps={class:"flex flex-row justify-between border-y border-basic-border py-1.5 *:w-[80px]"},Ts=1,Es=ze({__name:"PulseTickerMini",props:{quant:{},maxChartHeight:{},hideTimeslots:{type:Boolean},isShowingSettings:{type:Boolean},isSimple:{type:Boolean},isDark:{type:Boolean},isDarkChart:{type:Boolean},showPrevLine:{type:Boolean},streamKeySuffix:{},isStateless:{type:Boolean}},setup(t){const e=t,a=Xe(),s=Xe(),{p:i,pTailwind:d}=st(),{getModel:x}=dt(),m=Ge(e,"quant"),o=Ge(e,"streamKeySuffix"),{data:u,isLoading:l}=ca(m,!1,ua(m),o),v=Ft(),c=x(e.quant),p=f(()=>{if(a.value)return{time:a.value.time,close:a.value.firstValue,volume:a.value.barGroup?.volume,turnover:a.value.turnover};if(s.value)return{index:s.value.index,indexFromLast:s.value.indexFromLast,time:s.value.timePoint[0],open:s.value.xt?.[1],high:s.value.xt?.[2],low:s.value.xt?.[3],close:s.value.xt?.[4],volume:s.value.xt?.[5],turnover:s.value.xt?.[6],prev:s.value.prev}}),E=f(()=>{if(u.value)return p.value?i.calculateChange(p.value.close,p.value.prev??u.value?.prev):i.calculateChange(u.value,u.value?.prev)}),b=f(()=>{if(u.value)return p.value?i.calculatePercent(p.value.close,p.value.prev??u.value?.prev):i.calculatePercent(u.value,u.value?.prev)}),B=f(()=>i.dynamicPercentStr(b.value)),A=f(()=>E.value!==void 0?i.dynamicDecimalsStr(E.value*Ts):"-"),F=f(()=>i.timeSecondsTodayOrDateStr(p.value?p.value.time:i.lastActivity(u.value)));function w(O){}return(O,P)=>{const G=Zt,ae=ea,D=ta,oe=vs,S=Cs;return _(),Z("div",Ss,[q("div",bs,[(_(),Se(G,{key:e.quant,quant:e.quant},null,8,["quant"]))]),T(ct,{"enter-from-class":"opacity-0 -translate-y-2","enter-active-class":"transition duration-400 ease-out","enter-to-class":"opacity-100 translate-y-0","leave-from-class":"hidden"},{default:Ce(()=>[n(l)?(_(),Se(ae,{key:0,class:"min-h-80"})):V("",!0)]),_:1}),T(ct,{"enter-from-class":"opacity-0 -translate-y-2","enter-active-class":"transition duration-400 ease-out","enter-to-class":"opacity-100 translate-y-0","leave-from-class":"hidden"},{default:Ce(()=>[!n(l)&&!n(u)?(_(),Z("div",ws,[q("p",Ms,pe(O.$t("pulse.ticker.state.error"))+". ",1)])):V("",!0)]),_:1}),T(ct,{"enter-from-class":"opacity-0 -translate-y-2","enter-active-class":"transition duration-400 ease-out","enter-to-class":"opacity-100 translate-y-0","leave-from-class":"hidden"},{default:Ce(()=>[n(u)?(_(),Z("div",Ls,[q("div",As,[q("div",Ps,[T(D,{mini:"",label:O.$t("pulse.ticker.statistics.close"),value:n(i).closeStr(n(p)?n(p).close:n(u)),classes:n(d).textClass(n(E))},null,8,["label","value","classes"]),T(D,{mini:"",label:O.$t("pulse.ticker.statistics.change"),value:n(A),classes:n(d).textClass(n(E))},null,8,["label","value","classes"]),T(D,{mini:"",label:O.$t("pulse.ticker.statistics.change-percent"),value:n(B),classes:n(d).textClass(n(E))},null,8,["label","value","classes"]),T(D,{mini:"",label:O.$t("pulse.ticker.statistics.time"),value:n(F),class:Fe({"text-neutral-invert-content":n(p)?.time})},null,8,["label","value","class"])])]),q("div",{class:Fe(["flex w-full justify-center bg-background-base text-basic-text",[{dark:e.isDarkChart}]])},[T(oe,{class:"w-full",quant:e.quant,model:n(c),"max-height":e.maxChartHeight,data:n(u),"is-showing-chart-settings":e.isShowingSettings,"is-stateless":e.isStateless,"is-simple":e.isSimple,"is-dark":e.isDark,"show-prev-line":e.showPrevLine,onHoverDataChanged:w},null,8,["quant","model","max-height","data","is-showing-chart-settings","is-stateless","is-simple","is-dark","show-prev-line"])],2),n(u)&&n(v).isBeakonTickerReportEnabled?(_(),Se(S,{key:0,quant:e.quant},null,8,["quant"])):V("",!0)])):V("",!0)]),_:1})])}}}),sr=Object.assign(Es,{__name:"PulseTickerMini"});export{sr as _,vs as a,Cs as b,Qt as u};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.