1import{q as ce,b3 as pe,u as _e,b as _,r as w,w as me,z as ue,bL as ye,b5 as A,b6 as r,b7 as n,b9 as e,ba as i,bb as g,bd as y,bI as m,bc as l,b8 as o,a6 as p,bA as S,bB as M,ac as be,bT as F,bC as D,bN as ve,B as fe,f as he,C as ge,E as we,b2 as ke,F as Te}from"./index-ZTZX6O4r.js";import{Q as De}from"./QSpinnerBars-nArDBDfF.js";import{Q as L}from"./QSelect-LJn4rxVI.js";import{Q as u}from"./QTd-CfsMlHO6.js";import{Q as Pe}from"./QTable-CBiO25T1.js";import{Q as xe}from"./QPage-OM5JgPVG.js";import{u as Ae}from"./useMarketProfileAccess-SOdlcc2T.js";import{D as Se}from"./DayTypeProfileSvg-Bz4Ph2aB.js";import{M as Me,S as Le,D as b,P as N}from"./marketProfile-0CS-QhPC.js";import{_ as Oe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./QChip-QkbYP07w.js";import"./QItem-Cmm75ClS.js";import"./QItemLabel-DJJTFmpY.js";import"./QMenu-DeogY-KU.js";import"./position-engine-BaRtYBUc.js";import"./selection-DUEPnI6d.js";import"./format-DyQxkAtJ.js";import"./QList-DnIjH5wq.js";import"./QMarkupTable-CiCrTXHQ.js";import"./QLinearProgress-UY9rcHYn.js";const Ie={class:"mp-hero"},Ee={class:"mp-hero__content"},Ce={key:0,class:"mp-hero__stats"},Re={class:"mp-stat"},je={class:"mp-stat__value"},Be={class:"mp-stat mp-stat--trend"},Ve={class:"mp-stat__value"},ze={class:"mp-stat__pct"},Fe={class:"mp-stat mp-stat--normal"},Ne={class:"mp-stat__value"},Qe={class:"mp-stat__pct"},Ue={class:"mp-stat"},qe={class:"mp-stat__value"},Ye={class:"mp-stat__pct"},He={key:0,class:"mp-hero__visual"},$e={class:"mp-floating-profile"},Ge={key:1,class:"mp-floating-profile__label"},Ke={class:"mp-floating-profile__date"},We={key:0,class:"mp-access-denied"},Je={class:"mp-access-card"},Xe={class:"mp-access-card__icon"},Ze={class:"mp-access-card__text"},et={class:"mp-access-card__preview"},tt={class:"mp-feature-grid"},at={class:"mp-feature__emoji"},st={class:"mp-feature__label"},lt={key:1,class:"mp-loading"},ot={class:"mp-loading__spinner"},nt={key:2,class:"mp-content"},rt={class:"mp-nav-cards"},it={class:"mp-nav-card__icon-wrap"},dt={class:"mp-nav-card__icons"},ct={class:"mp-nav-card__icon-wrap"},pt={class:"mp-nav-card__icon-wrap"},_t={class:"mp-distribution"},mt={class:"mp-section-title"},ut={class:"mp-distribution__chart"},yt={class:"mp-distribution__emoji"},bt={class:"mp-distribution__label"},vt={class:"mp-distribution__count"},ft={class:"mp-filters"},ht={class:"mp-section-title"},gt={class:"mp-filters__row"},wt={class:"mp-table-wrap"},kt={class:"mp-section-title"},Tt={class:"mp-section-title__count"},Dt={class:"mp-table__date"},Pt={class:"mp-table__date-day"},xt={class:"mp-table__date-full"},At={class:"mp-table__symbol"},St={class:"mp-table__daytype-emoji"},Mt={class:"mp-table__daytype-label"},Lt={class:"mp-table__pattern-emoji"},Ot={class:"mp-table__pattern-label"},It={key:1,class:"mp-table__empty"},Et={class:"mp-table__ib"},Ct={class:"mp-table__ib-value"},Rt={key:1,class:"mp-table__empty"},jt={key:0,class:"mp-table__ext"},Bt={class:"mp-table__ext-up"},Vt={class:"mp-table__ext-down"},zt={key:1,class:"mp-table__empty"},Ft={class:"mp-table__close-vs"},Nt={key:1,class:"mp-table__empty"},Qt={key:0,class:"mp-table__gap"},Ut={key:1,class:"mp-table__empty"},qt={class:"mp-table__empty-state"},Yt={key:0,class:"mp-admin-link"},Ht=ce({__name:"MarketProfileDashboard",setup($t){const Q=pe(),U=_e(),{hasAccess:v,accessDeniedReason:q,isLoading:P}=Ae(),Y=_(()=>U.isAdmin),c=w([]),O=w(!1),k=w("all"),T=w(null),x=w(30),H=[{label:"All Symbols",value:"all"},...Me.map(s=>({label:Le[s].displayName,value:s}))],$=Object.values(b).map(s=>({label:`${s.emoji} ${s.label}`,value:s.type})),G=[{label:"Last 7 days",value:7},{label:"Last 30 days",value:30},{label:"Last 90 days",value:90},{label:"All time",value:365}],K=Object.values(b),W=[{name:"date",label:"Date",field:"date",align:"left",sortable:!0},{name:"symbol",label:"Symbol",field:"symbol",align:"left",sortable:!0},{name:"dayType",label:"Day Type",field:"dayType",align:"left",sortable:!0},{name:"profilePattern",label:"Pattern",field:"profilePattern",align:"center",sortable:!0},{name:"ibRange",label:"IB Range",field:"ibRange",align:"right",sortable:!0},{name:"ibPctOfAtr",label:"IB % ATR",field:"ibPctOfAtr",align:"right",sortable:!0},{name:"extensions",label:"Extensions",field:"ibExtensions",align:"center"},{name:"closeLocation",label:"Close",field:"closeLocation",align:"center",sortable:!0},{name:"gap",label:"Gap",field:"gap",align:"center"}],I=_(()=>{let s=[...c.value];k.value!=="all"&&(s=s.filter(a=>a.symbol===k.value)),T.value&&(s=s.filter(a=>a.dayType===T.value));const t=new Date;t.setDate(t.getDate()-x.value);const d=t.toISOString().split("T")[0]??"";return s=s.filter(a=>a.date>=d),s.sort((a,h)=>h.date.localeCompare(a.date))}),E=_(()=>c.value.filter(s=>s.dayType==="trend").length),C=_(()=>c.value.filter(s=>s.dayType==="normal"||s.dayType==="normal_variation").length),R=_(()=>c.value.filter(s=>!["trend","normal","normal_variation"].includes(s.dayType)).length),J=_(()=>c.value.length>0?Math.round(E.value/c.value.length*100):0),X=_(()=>c.value.length>0?Math.round(C.value/c.value.length*100):0),Z=_(()=>c.value.length>0?Math.round(R.value/c.value.length*100):0),f=_(()=>{if(c.value.length===0)return null;const s=c.value[0];return s?c.value.reduce((t,d)=>d.date>t.date?d:t,s):null}),j=_(()=>f.value?.dayType??null),ee=_(()=>{const s={};return Object.keys(b).forEach(t=>{s[t]=0}),c.value.forEach(t=>{s[t.dayType]!==void 0&&s[t.dayType]++}),Object.entries(b).map(([t,d])=>({type:t,label:d.label,emoji:d.emoji,color:d.color,count:s[t],pct:c.value.length>0?Math.round(s[t]/c.value.length*100):0})).filter(t=>t.count>0).sort((t,d)=>d.count-t.count)}),te=s=>b[s]?.color||"#888888",B=s=>b[s]?.emoji||"",V=s=>b[s]?.label||s,ae=s=>N[s]?.emoji||"",se=s=>N[s]?.label||s,le=s=>s<33?"mp-table__atr--narrow":s<67?"mp-table__atr--medium":"mp-table__atr--wide",oe=s=>s>=.8?"mp-table__close--high":s<=.2?"mp-table__close--low":"mp-table__close--mid",ne=s=>new Date(s+"T12:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"}),re=s=>new Date(s+"T12:00:00").toLocaleDateString("en-US",{month:"short",day:"numeric"}),ie=s=>new Date(s+"T12:00:00").toLocaleDateString("en-US",{weekday:"short"}),de=(s,t)=>{Q.push({name:"market-profile-day-detail",params:{date:t.date,symbol:t.symbol}})},z=async()=>
1{if(v.value){O.value=!0;try{const s=fe(he,"marketDays"),t=ge(s,we("date","desc"),ke(2e3)),d=await Te(t);c.value=d.docs.map(a=>{const h=a.data();return{id:a.id,...h,createdAt:h.createdAt,updatedAt:h.updatedAt,dayTypeIdentifiedAt:h.dayTypeIdentifiedAt}})}catch(s){console.error("Error fetching market days:",s)}finally{O.value=!1}}};return me(v,s=>{s&&z()}),ue(()=>{v.value&&z()}),(s,t)=>{const d=ye("router-link");return r(),A(xe,{class:"mp-dashboard"},{default:n(()=>[t[25]||(t[25]=e("div",{class:"mp-grid-bg"},null,-1)),e("section",Ie,[e("div",Ee,[t[8]||(t[8]=e("div",{class:"mp-hero__badge"},[e("span",{class:"mp-hero__badge-dot"}),y(" MARKET PROFILE ")],-1)),t[9]||(t[9]=e("h1",{class:"mp-hero__title"},[y(" Master the"),e("br"),e("span",{class:"mp-hero__title-accent"},"Auction Process")],-1)),t[10]||(t[10]=e("p",{class:"mp-hero__subtitle"}," Day type analysis powered by TradersEdge classification. Understand market structure. Trade with conviction. ",-1)),m(v)&&!m(P)?(r(),i("div",Ce,[e("div",Re,[e("div",je,l(c.value.length),1),t[4]||(t[4]=e("div",{class:"mp-stat__label"},"Days Analyzed",-1))]),e("div",Be,[e("div",Ve,l(E.value),1),t[5]||(t[5]=e("div",{class:"mp-stat__label"},"Trend Days",-1)),e("div",ze,l(J.value)+"%",1)]),e("div",Fe,[e("div",Ne,l(C.value),1),t[6]||(t[6]=e("div",{class:"mp-stat__label"},"Normal Days",-1)),e("div",Qe,l(X.value)+"%",1)]),e("div",Ue,[e("div",qe,l(R.value),1),t[7]||(t[7]=e("div",{class:"mp-stat__label"},"Special Types",-1)),e("div",Ye,l(Z.value)+"%",1)])])):g("",!0)]),m(v)?(r(),i("div",He,[e("div",$e,[j.value?(r(),A(Se,{key:0,"day-type":j.value,width:280,height:220},null,8,["day-type"])):g("",!0),f.value?(r(),i("div",Ge,[e("span",Ke,l(ne(f.value.date)),1),o(d,{to:{name:"market-profile-day-type-detail",params:{dayTypeId:f.value.dayType}},class:"mp-floating-profile__type"},{default:n(()=>[y(l(B(f.value.dayType))+" "+l(V(f.value.dayType)),1)]),_:1},8,["to"])])):g("",!0)])])):g("",!0)]),!m(P)&&!m(v)?(r(),i("section",We,[e("div",Je,[e("div",Xe,[o(p,{name:"lock",size:"3rem"})]),t[12]||(t[12]=e("h2",{class:"mp-access-card__title"},"Unlock Market Profile",-1)),e("p",Ze,l(m(q)),1),e("div",et,[t[11]||(t[11]=e("h3",null,"What You'll Get Access To:",-1)),e("div",tt,[(r(!0),i(S,null,M(m(K).slice(0,4),a=>(r(),i("div",{class:"mp-feature",key:a.type},[e("span",at,l(a.emoji),1),e("span",st,l(a.label),1)]))),128))])]),o(be,{unelevated:"",color:"primary",label:"Request Access",icon:"group",to:{name:"mentorship"},class:"mp-access-card__btn"})])])):m(P)?(r(),i("section",lt,[e("div",ot,[o(De,{size:"60px",color:"primary"})]),t[13]||(t[13]=e("p",{class:"mp-loading__text"},"Analyzing market structure...",-1))])):(r(),i("section",nt,[e("div",rt,[o(d,{to:{name:"market-profile-day-types"},class:"mp-nav-card mp-nav-card--types"},{default:n(()=>[e("div",it,[e("div",dt,[(r(),i(S,null,M(["ð","âï¸","âï¸","ð"],a=>e("span",{key:a},l(a),1)),64))])]),t[14]||(t[14]=e("div",{class:"mp-nav-card__content"},[e("h3",{class:"mp-nav-card__title"},"Day Types"),e("p",{class:"mp-nav-card__desc"},"Master all 8 market profile patterns")],-1)),o(p,{name:"arrow_forward",class:"mp-nav-card__arrow"})]),_:1}),o(d,{to:{name:"market-profile-strategies"},class:"mp-nav-card mp-nav-card--strategies"},{default:n(()=>[e("div",ct,[o(p,{name:"auto_graph",size:"2.5rem"})]),t[15]||(t[15]=e("div",{class:"mp-nav-card__content"},[e("h3",{class:"mp-nav-card__title"},"Strategies"),e("p",{class:"mp-nav-card__desc"},"Proven setups for each day type")],-1)),o(p,{name:"arrow_forward",class:"mp-nav-card__arrow"})]),_:1}),o(d,{to:{name:"market-profile-methodology"},class:"mp-nav-card mp-nav-card--methodology"},{default:n(()=>[e("div",pt,[o(p,{name:"school",size:"2.5rem"})]),t[16]||(t[16]=e("div",{class:"mp-nav-card__content"},[e("h3",{class:"mp-nav-card__title"},"Methodology"),e("p",{class:"mp-nav-card__desc"},"Learn the classification system")],-1)),o(p,{name:"arrow_forward",class:"mp-nav-card__arrow"})]),_:1})]),e("div",_t,[e("h2",mt,[o(p,{name:"donut_large"}),t[17]||(t[17]=y(" Day Type Distribution ",-1))]),e("div",ut,[(r(!0),i(S,null,M(ee.value,a=>(r(),i("div",{key:a.type,class:"mp-distribution__bar",style:F({"--bar-width":a.pct+"%","--bar-color":a.color})},[o(d,{to:{name:"market-profile-day-type-detail",params:{dayTypeId:a.type}},class:"mp-distribution__bar-inner"},{default:n(()=>[e("span",yt,l(a.emoji),1),e("span",bt,l(a.label),1),e("span",vt,l(a.count),1)]),_:2},1032,["to"])],4))),128))])]),e("div",ft,[e("h2",ht,[o(p,{name:"filter_list"}),t[18]||(t[18]=y(" Filter History ",-1))]),e("div",gt,[o(L,{modelValue:k.value,"onUpdate:modelValue":t[0]||(t[0]=a=>k.value=a),options:H,label:"Symbol",outlined:"",dense:"",dark:"","emit-value":"","map-options":"",class:"mp-filter"},null,8,["modelValue"]),o(L,{modelValue:T.value,"onUpdate:modelValue":t[1]||(t[1]=a=>T.value=a),options:m($),label:"Day Type",outlined:"",dense:"",dark:"","emit-value":"","map-options":"",clearable:"",class:"mp-filter"},null,8,["modelValue","options"]),o(L,{modelValue:x.value,"onUpdate:modelValue":t[2]||(t[2]=a=>x.value=a),options:G,label:"Period",outlined:"",dense:"",dark:"","emit-value":"","map-options":"",class:"mp-filter"},null,8,["modelValue"])])]),e("div",wt,[e("h2",kt,[o(p,{name:"calendar_month"}),t[19]||(t[19]=y(" Day Type History ",-1)),e("span",Tt,l(I.value.length)+" days",1)]),o(Pe,{rows:I.value,columns:W,"row-key":"id",flat:"",dark:"","rows-per-page-options":[10,25,50],pagination:{rowsPerPage:15},onRowClick:de,class:"mp-table"},{"body-cell-date":n(a=>[o(u,{props:a},{default:n(()=>[e("div",Dt,[e("span",Pt,l(ie(a.row.date)),1),e("span",xt,l(re(a.row.date)),1)])]),_:2},1032,["props"])]),"body-cell-symbol":n(a=>[o(u,{props:a},{default:n(()=>[e("span",At,l(a.row.symbol),1)]),_:2},1032,["props"])]),"body-cell-dayType":n(a=>[o(u,{props:a},{default:n(()=>[o(d,{to:{name:"market-profile-day-type-detail",params:{dayTypeId:a.row.dayType}},class:"mp-table__daytype",style:F({"--daytype-color":te(a.row.dayType)}),onClick:t[3]||(t[3]=ve(()=>{},["stop"]))},{default:n(()=>[e("span",St,l(B(a.row.dayType)),1),e("span",Mt,l(V(a.row.dayType)),1)]),_:2},1032,["to","style"])]),_:2},1032,["props"])]),"body-cell-profilePattern":n(a=>[o(u,{props:a},{default:n(()=>[a.row.profilePattern?(r(),i("div",{key:0,class:D(["mp-table__pattern",`mp-table__pattern--${a.row.profilePattern}`])},[e("span",Lt,l(ae(a.row.profilePattern)),1),e("span",Ot,l(se(a.row.profilePattern)),1)],2)):(r(),i("span",It,"-"))]),_:2},1032,["props"])]),"body-cell-ibRange":n(a=>[o(u,{props:a},{default:n(()=>[e("div",Et,[e("span",Ct,l(a.row.ibRange?.toFixed(1)||"-"),1),t[20]||(t[20]=e("span",{class:"mp-table__ib-unit"},"pts",-1))])]),_:2},1032,["props"])]),"body-cell-ibPctOfAtr":n(a=>[o(u,{props:a},{default:n(()=>[a.row.ibPctOfAtr?(r(),i("div",{key:0,class:D(["mp-table__atr",le(a.row.ibPctOfAtr)])},l(a.row.ibPctOfAtr.toFixed(0))+"% ",3)):(r(),i("span",Rt,"-"))]),_:2},1032,["props"])]),"body-cell-extensions":n(a=>[o(u,{props:a},{default:n(()=>[a.row.ibExtensions?(r(),i("div",jt,[e("span",Bt," +"+l(a.row.ibExtensions.aboveMultiple?.toFixed(1)||"0")+"x ",1),t[21]||(t[21]=e("span",{class:"mp-table__ext-sep"},"/",-1)),e("span",Vt," -"+l(a.row.ibExtensions.belowMultiple?.toFixed(1)||"0")+"x ",1)])):(r(),i("span",zt,"-"))]),_:2},1032,["props"])]),"body-cell-closeLocation":n(a=>[o(u,{props:a},{default:n(()=>[a.row.closeLocation!==void 0?(r(),i("div",{key:0,class:D(["mp-table__close",oe(a.row.closeLocation)])},[y(l(Math.round(a.row.closeLocation*100))+"% ",1),e("span",Ft,l(a.row.closeVsIB==="above"?"â":a.row.closeVsIB==="below"?"â":"â"),1)],2)):(r(),i("span",Nt,"-"))]),_:2},1032,["props"])]),"body-cell-gap":n(a=>[o(u,{props:a},{default:n(()=>[a.row.gap?(r(),i("div",Qt,[e("span",{class:D(a.row.gap.gapSize>0?"text-positive":"text-negative")},l(a.row.gap.gapSize>0?"+":"")+l(a.row.gap.gapSize.toFixed(1)),3),a.row.gap.gapFilled?(r(),A(p,{key:0,name:"check_circle",size:"xs",color:"grey-6",class:"q-ml-xs"})):g("",!0)])):(r(),i("span",Ut,"-"))]),_:2},1032,["props"])]),"no-data":n(()=>[e("div",qt,[o(p,{name:"event_busy",size:"4rem",color:"grey-7"}),t[22]||(t[22]=e("p",{class:"mp-table__empty-title"}
1,"No market days found",-1)),t[23]||(t[23]=e("p",{class:"mp-table__empty-text"}," Adjust your filters or wait for market data to be processed. ",-1))])]),_:1},8,["rows"])]),Y.value?(r(),i("div",Yt,[o(d,{to:{name:"admin-backfill-market-days"},class:"mp-admin-btn"},{default:n(()=>[o(p,{name:"cloud_download"}),t[24]||(t[24]=e("span",null,"Backfill Historical Data",-1))]),_:1})])):g("",!0)]))]),_:1})}}}),ua=Oe(Ht,[["__scopeId","data-v-dfeb335c"]]);export{ua as default};
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.