openalgo-charts 2.0.2 → 2.1.0

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.
@@ -1,2 +1,2 @@
1
- function e(e,t){return Math.round(Math.round(e/t)*t*1e8)/1e8}function t(t,o,i){const l=e(t,i),r=e(o,i),n=[];for(let t=l;t<=r+i/2;t+=i)n.push(e(t,i));return n}function o(e,o,i=.7){const l=new Map;for(const i of e){const e=t(i.low,i.high,o),r=(i.volume??0)/e.length;for(const t of e)l.set(t,(l.get(t)??0)+r)}const r=Array.from(l.entries()).map(([e,t])=>({price:e,volume:t})).sort((e,t)=>t.price-e.price);if(0===r.length)return{buckets:r,poc:0,vah:0,val:0,totalVolume:0};const n=r.reduce((e,t)=>e+t.volume,0);let s=0;for(let e=1;e<r.length;e++)r[e].volume>r[s].volume&&(s=e);let a=s,c=s,h=r[s].volume;const u=n*i;for(;h<u&&(a>0||c<r.length-1);){(a>0?r[a-1].volume:-1)>=(c<r.length-1?r[c+1].volume:-1)?(a-=1,h+=r[a].volume):(c+=1,h+=r[c].volume)}return{buckets:r,poc:r[s].price,vah:r[a].price,val:r[c].price,totalVolume:n}}const i=19800;function l(e){const t=new Date(1e3*(e+i));return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),weekday:t.getUTCDay()}}const r="Asia/Kolkata",n=new Map,s={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};function a(e,t){const o=function(e){let t=n.get(e);if(void 0===t){let o;try{o=new Intl.DateTimeFormat("en-US",{timeZone:e,hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",weekday:"short"})}catch{throw new Error(`openalgo-charts: unknown IANA time zone "${e}"`)}t={format:o,parts:new Map,lastSecond:Number.NaN,lastParts:null},n.set(e,t)}return t}(t);if(e===o.lastSecond&&null!==o.lastParts)return o.lastParts;let i=o.parts.get(e);return void 0===i&&(i=function(e,t){let o=1970,i=1,l=1,r=0,n=0,a=0,c=4;for(const h of e.formatToParts(new Date(1e3*t)))switch(h.type){case"year":o=Number(h.value);break;case"month":i=Number(h.value);break;case"day":l=Number(h.value);break;case"hour":r=Number(h.value)%24;break;case"minute":n=Number(h.value);break;case"second":a=Number(h.value);break;case"weekday":c=s[h.value]??0}return{year:o,month:i,day:l,hour:r,minute:n,second:a,weekday:c,dayIndex:Math.floor(Date.UTC(o,i-1,l)/864e5)}}(o.format,e),o.parts.size>=4096&&o.parts.clear(),o.parts.set(e,i)),o.lastSecond=e,o.lastParts=i,i}function c(e,t=r){const o=a(e,t);return{year:o.year,month:o.month,day:o.day,hour:o.hour,minute:o.minute,second:o.second,weekday:o.weekday}}function h(e,t=r){return a(e,t).dayIndex}function u(e,t=r){const o=a(e,t);return Math.floor(Date.UTC(o.year,o.month-1,o.day,o.hour,o.minute,o.second)/1e3)-e}const d={tickSize:.05,session:"composite",valueAreaPercent:.7,deltaFromBarDirection:!0,timezone:r};function p(e,t,o){if("composite"===t)return 0;if("month"===t){const t=o===r?l(e):c(e,o);return 12*t.year+(t.month-1)}const n=o===r?Math.floor((e+i)/86400):h(e,o);return"day"===t?n:Math.floor((n+3)/7)}function f(e,o={}){const i={...d,...o},l=i.tickSize>0?i.tickSize:d.tickSize,n=Math.min(1,Math.max(0,i.valueAreaPercent)),s=i.timezone??r,a=new Map,c=[];for(const t of e){const e=p(t.time,i.session,s);let o=a.get(e);void 0===o&&(o=[],a.set(e,o),c.push(e)),o.push(t)}const h=[];for(const e of c){const o=a.get(e);if(0===o.length)continue;const r=new Map;let s=0,c=0,u=0;for(const e of o){const o=e.volume??0;s+=o;const n=e.close>=e.open,a=i.deltaFromBarDirection&&n?o:0,h=i.deltaFromBarDirection?n?0:o:0;c+=a,u+=h;const d=t(e.low,e.high,l),p=Math.max(1,d.length),f=o/p,m=a/p,b=h/p;for(const e of d){let t=r.get(e);void 0===t&&(t={volume:0,buy:0,sell:0},r.set(e,t)),t.volume+=f,t.buy+=m,t.sell+=b}}const d=Array.from(r.entries()).map(([e,t])=>({price:e,volume:t.volume,buyVolume:t.buy,sellVolume:t.sell,delta:t.buy-t.sell})).sort((e,t)=>t.price-e.price);if(0===d.length)continue;let p=0;for(let e=1;e<d.length;e++)d[e].volume>d[p].volume&&(p=e);let f=p,m=p,b=d[p].volume;const g=s*n;for(;b<g&&(f>0||m<d.length-1);){(f>0?d[f-1].volume:-1)>=(m<d.length-1?d[m+1].volume:-1)?(f-=1,b+=d[f].volume):(m+=1,b+=d[m].volume)}h.push({startTime:o[0].time,endTime:o[o.length-1].time,levels:d,poc:d[p].price,vah:d[f].price,val:d[m].price,totalVolume:s,buyVolume:c,sellVolume:u,delta:c-u})}return{sessions:h,options:{...i,timezone:s}}}const m={displayMode:"total",side:"right",width:90,opacity:.85,barColor:"#3b5168",buyColor:"#26a69a",sellColor:"#ef5350",showPoc:!0,pocColor:"#f0a020",showPocLabel:!0,showValueArea:!0,vahColor:"#8892a6",valColor:"#8892a6",showValueAreaLabels:!0,highlightValueArea:!0,valueAreaFillColor:"#4a6fa5",valueAreaFillOpacity:.08,valueAreaOpacityDim:.4,labelSide:"right",zOrder:"bottom"};class b{constructor(e=null,t={}){Object.defineProperty(this,"_result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._result=e,this._opts={...m,...t}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return this._opts.zOrder}autoscaleInfo(){if(null===this._result)return null;let e=1/0,t=-1/0;for(const o of this._result.sessions)0!==o.levels.length&&(t=Math.max(t,o.levels[0].price),e=Math.min(e,o.levels[o.levels.length-1].price));return Number.isFinite(e)?{min:e,max:t}:null}setData(e){this._result=e,this._host?.requestUpdate()}setOptions(e){this._opts={...this._opts,...e},this._host?.requestUpdate()}draw(e,t){if(null===this._result||0===this._result.sessions.length)return;const o=this._result.options.tickSize;for(const i of this._result.sessions)this._drawSession(e,t,i,o)}_segments(e,t,o){const i=this._opts;if("delta"===i.displayMode){const l=Math.abs(e.delta)/t*o;return[{color:e.delta>=0?i.buyColor:i.sellColor,len:l}]}const l=e.volume/t*o;if("buySell"===i.displayMode&&e.volume>0){const t=l*(e.buyVolume/e.volume);return[{color:i.buyColor,len:t},{color:i.sellColor,len:l-t}]}return[{color:i.barColor,len:l}]}_drawSession(e,t,o,i){const l=this._opts,r=t.dpr,n=t.dataLayer.timeToIndex(o.startTime),s=t.dataLayer.timeToIndex(o.endTime);if(void 0===n||void 0===s)return;const a=Math.round(t.timeScale.indexToX(n)*r),c=Math.max(a+1,Math.round(t.timeScale.indexToX(s)*r)),h=e=>t.priceScale.priceToY(e)*r,u=Math.max(1,Math.abs(t.priceScale.priceToY(o.poc)-t.priceScale.priceToY(o.poc+i))*r),d=l.width*r,p="right"===l.side?c:a;let f=0;for(const e of o.levels){const t="delta"===l.displayMode?Math.abs(e.delta):e.volume;t>f&&(f=t)}if(f<=0&&(f=1),e.save(),l.highlightValueArea){const t=h(o.vah)-u/2,i=h(o.val)+u/2,r="right"===l.side?c-d:a;e.globalAlpha=l.valueAreaFillOpacity,e.fillStyle=l.valueAreaFillColor,e.fillRect(r,t,d,i-t),e.globalAlpha=1}for(const t of o.levels){const i=t.price<=o.vah&&t.price>=o.val,r=l.opacity*(i?1:l.valueAreaOpacityDim),n=h(t.price)-u/2,s=Math.max(1,u-1);let a=p;e.globalAlpha=r;for(const o of this._segments(t,f,d)){if(o.len<=0)continue;const t="right"===l.side?a-o.len:a;e.fillStyle=o.color,e.fillRect(t,n,o.len,s),a="right"===l.side?a-o.len:a+o.len}}e.globalAlpha=1;const m=(t,o,i)=>{const n=Math.round(h(t))+.5;e.strokeStyle=o,e.lineWidth=Math.max(1,Math.round(r)),e.beginPath(),e.moveTo(a,n),e.lineTo(c,n),e.stroke(),""!==i&&(e.font=9*r+"px ui-sans-serif, system-ui, sans-serif",e.textBaseline="middle",e.fillStyle=o,"right"===l.labelSide?(e.textAlign="left",e.fillText(i,c+3*r,n)):(e.textAlign="right",e.fillText(i,a-3*r,n)))};l.showValueArea&&(m(o.vah,l.vahColor,l.showValueAreaLabels?`VAH ${t.priceScale.format(o.vah)}`:""),m(o.val,l.valColor,l.showValueAreaLabels?`VAL ${t.priceScale.format(o.val)}`:"")),l.showPoc&&m(o.poc,l.pocColor,l.showPocLabel?`POC ${t.priceScale.format(o.poc)}`:""),e.restore()}}function g(e,o,i,l=.7,r=2){const n=Math.max(1,o),s=new Map;let a=-1/0,c=1/0;const h=Math.ceil(e.length/n);for(let o=0;o<h;o++){const l=e.slice(o*n,(o+1)*n);if(0===l.length)continue;let h=-1/0,u=1/0;for(const e of l)h=Math.max(h,e.high),u=Math.min(u,e.low);o<r&&(a=Math.max(a,h),c=Math.min(c,u));for(const e of t(u,h,i))s.set(e,(s.get(e)??0)+1)}const u=Array.from(s.entries()).map(([e,t])=>({price:e,count:t})).sort((e,t)=>t.price-e.price);if(0===u.length)return{buckets:u,poc:0,vah:0,val:0,ib:{high:0,low:0}};const d=u.reduce((e,t)=>e+t.count,0);let p=0;for(let e=1;e<u.length;e++)u[e].count>u[p].count&&(p=e);let f=p,m=p,b=u[p].count;const g=d*l;for(;b<g&&(f>0||m<u.length-1);){(f>0?u[f-1].count:-1)>=(m<u.length-1?u[m+1].count:-1)?(f-=1,b+=u[f].count):(m+=1,b+=u[m].count)}return{buckets:u,poc:u[p].price,vah:u[f].price,val:u[m].price,ib:{high:a,low:c}}}const v={"all-hours":{startMinute:0,endMinute:0,name:"All Hours"},india:{startMinute:555,endMinute:930,zone:"Asia/Kolkata",name:"India"},asia:{startMinute:540,endMinute:900,zone:"Asia/Tokyo",name:"Asia"},london:{startMinute:420,endMinute:780,zone:"Europe/London",name:"London"},"new-york":{startMinute:480,endMinute:930,zone:"America/New_York",name:"New York"},"us-regular":{startMinute:570,endMinute:960,zone:"America/New_York",name:"US Regular"}},M={tickSize:.05,rowTicks:1,session:"day",blockMinutes:30,valueAreaPercent:.7,initialBalancePeriods:2,compositeSessions:1,tailEdges:0,timezone:r};function _(e,t){return e>0&&t>0?Math.max(1,Math.round(e/t)):1}function w(e){const t=(e%52+52)%52;return t<26?String.fromCharCode(65+t):String.fromCharCode(t-26+97)}const y=86400;function x(e,t){return e?.zone??t}function T(e,t){return t===r?l(e):c(e,t)}function S(e,t){if(t===r){const t=((e+i)%y+y)%y;return Math.floor(t/60)}const o=c(e,t);return 60*o.hour+o.minute}function k(e,t,o=r){if(t.startMinute===t.endMinute)return!0;const i=S(e,x(t,o));return t.startMinute<t.endMinute?i>=t.startMinute&&i<t.endMinute:i>=t.startMinute||i<t.endMinute}function P(e,t,o,i){const l=T(e,o),n=new Date(Date.UTC(l.year,l.month-1,l.day+i));return function(e,t,o,i=0,l=0,n=0,s=r){const a=Math.floor(Date.UTC(e,t-1,o,i,l,n)/1e3),c=a-u(a,s);return a-u(c,s)}(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),Math.floor(t.startMinute/60),t.startMinute%60,0,o)}function C(e,t,o,l){if("composite"===t)return 0;if("month"===t){const t=T(e,o);return 12*t.year+(t.month-1)}let n=function(e,t){return t===r?Math.floor((e+i)/y):h(e,t)}(e,o);return void 0!==l&&l.startMinute>l.endMinute&&S(e,o)<l.endMinute&&(n-=1),"day"===t?n:Math.floor((n+3)/7)}function A(e,t){const o=e.reduce((e,t)=>e+t.count,0);let i=0;for(let t=1;t<e.length;t++)e[t].count>e[i].count&&(i=t);let l=i,r=i,n=e[i].count;const s=o*t;for(;n<s&&(l>0||r<e.length-1);){(l>0?e[l-1].count:-1)>=(r<e.length-1?e[r+1].count:-1)?(l-=1,n+=e[l].count):(r+=1,n+=e[r].count)}return{poc:e[i].price,vah:e[l].price,val:e[r].price}}function V(e,t,o){let i=0;for(let l=t;l>=0&&l<e.length&&1===e[l].count;l+=o)i++;return i}function O(e,t,o,i,l,r){const n=e.high-e.low,s=t-o;if(s<=0||n<=0)return"normal";if(i.up>0&&i.down>0)return"neutral";const a=l.findIndex(e=>e.price===r);if(a>=0&&l.length>=5){const e=l[a].count;let t=1/0,o=0;for(let e=0;e<l.length;e++){const i=Math.abs(e-a);i>1&&(o=Math.max(o,l[e].count)),i>0&&i<=Math.max(2,Math.floor(l.length/4))&&(t=Math.min(t,l[e].count))}if(o>=.7*e&&t<=.35*e)return"double-distribution"}const c=s/n;return c>=2.5?"trend":c>=1.4?"normal-variation":"normal"}function D(e,t,o,i,l){if(void 0===t)return"auction";const r=i-l;if(r<=0)return"auction";const n=t.high-t.low,s=(e-l)/r;if((s>.7||s<.3)&&n<=.35*r)return"drive";if(void 0!==o){const i=t.low<e-.25*n,l=t.high>e+.25*n;if(i&&o.high>t.high||l&&o.low<t.low)return"test-drive";if(l&&o.low<e||i&&o.high>e)return"rejection-reverse"}return"auction"}function N(e,o={}){const i={...M,...o},l=i.tickSize>0?i.tickSize:M.tickSize,n=Math.max(1,Math.floor(i.rowTicks)),s=l*n,a=Math.max(1,Math.round(60*i.blockMinutes)),c=Math.min(1,Math.max(0,i.valueAreaPercent)),h=Math.max(1,Math.floor(i.initialBalancePeriods)),u=Math.max(1,Math.floor(i.compositeSessions)),d=i.window,p=i.timezone??r,f=x(d,p),m=new Map,b=[];for(const t of e){if(void 0!==d&&!k(t.time,d,p))continue;const e=C(t.time,i.session,f,d);let o=m.get(e);void 0===o&&(o=[],m.set(e,o),b.push(e)),o.push(t)}const g=[];if(u>1&&"composite"!==i.session)for(let e=0;e<b.length;e+=u){const t=[];for(let o=e;o<Math.min(e+u,b.length);o++)t.push(...m.get(b[o]));g.push(t)}else for(const e of b)g.push(m.get(e));const v=[];for(const e of g){if(0===e.length)continue;const o=e[0].time;let l=o;if(void 0!==d&&d.startMinute!==d.endMinute){const e=P(o,d,f,0);l=e<=o?e:P(o,d,f,-1)}const r=new Map,n=new Map;let u=0,p=-1/0,m=1/0,b=0,g=-1/0,M=1/0;for(const o of e){const e=Math.max(0,Math.floor((o.time-l)/a));e>u&&(u=e),e<h&&(p=Math.max(p,o.high),m=Math.min(m,o.low)),g=Math.max(g,o.high),M=Math.min(M,o.low);const i=o.volume??0;b+=i;let c=n.get(e);void 0===c&&(c={index:e,letter:w(e),startTime:o.time,endTime:o.time,high:o.high,low:o.low,volume:0},n.set(e,c)),c.endTime=o.time,c.high=Math.max(c.high,o.high),c.low=Math.min(c.low,o.low),c.volume+=i;const d=t(o.low,o.high,s),f=i/Math.max(1,d.length);for(const t of d){let o=r.get(t);void 0===o&&(o={periods:new Set,volume:0},r.set(t,o)),o.periods.add(e),o.volume+=f}}const _=Array.from(n.values()).sort((e,t)=>e.index-t.index),y=Array.from(r.entries()).map(([e,t])=>{const o=Array.from(t.periods).sort((e,t)=>e-t);return{price:e,count:o.length,periods:o,volume:t.volume,letters:o.map(w).join("")}}).sort((e,t)=>t.price-e.price);if(0===y.length)continue;const x=A(y,c),T=[];for(const e of _){const t=[];for(const o of y){let i=0;for(const t of o.periods)t<=e.index&&i++;i>0&&t.push({price:o.price,count:i})}0!==t.length&&T.push({periodIndex:e.index,time:e.endTime,...A(t,c)})}const S=[];for(let e=1;e<y.length-1;e++)1===y[e].count&&S.push(y[e].price);let k=null,C=null;if(i.tailEdges>0){const e=V(y,0,1);e>=i.tailEdges&&(C={high:y[0].price,low:y[e-1].price});const t=V(y,y.length-1,-1);t>=i.tailEdges&&(k={high:y[y.length-t].price,low:y[y.length-1].price})}const N={high:Number.isFinite(p)?p:y[0].price,low:Number.isFinite(m)?m:y[y.length-1].price},z={up:Math.max(0,g-N.high),down:Math.max(0,N.low-M)};let F=y[0].price,L=-1;for(const e of y)e.volume>L&&(L=e.volume,F=e.price);v.push({startTime:o,endTime:e[e.length-1].time,label:d?.name,levels:y,poc:x.poc,vah:x.vah,val:x.val,high:g,low:M,open:e[0].open,close:e[e.length-1].close,periods:u+1,periodDetail:_,initialBalance:N,rangeExtension:z,singlePrints:S,buyingTail:k,sellingTail:C,poorHigh:y[0].count>1,poorLow:y[y.length-1].count>1,developing:T,dayType:O(N,g,M,z,y,x.poc),openType:D(e[0].open,_[0],_[1],g,M),volumePoc:F,totalVolume:b})}return{sessions:v,options:{...i,rowTicks:n,timezone:p}}}function z(e){const t=[],o=e.sessions,i=["poc","vah","val"];for(let e=0;e<o.length;e++)for(const l of i){const i=o[e][l];let r=!1;for(let t=e+1;t<o.length&&!r;t++)i<=o[t].high&&i>=o[t].low&&(r=!0);r||t.push({time:o[e].startTime,price:i,kind:l})}return t}function F(t,o){return e(t,o.tickSize*Math.max(1,Math.floor(o.rowTicks)))}const L=["#e05555","#e08a3c","#d9c341","#8cc44a","#3fb96b","#38b2a3","#3b9fd1","#5a7fe0","#8a68d9","#c05fc4","#d1508f","#9b7b5a"],j={blockDisplay:"auto",minLetterHeight:7,letterFade:4,letterWidth:8,font:10,colorMode:"period",periodColors:L,color:"#5a6b8c",vaColor:"#4a8f7a",opacity:.92,outsideVaOpacity:.45,zOrder:"top",split:!1,profileSpacing:4,showPoc:!0,pocColor:"#f0a020",pocThickness:2,showPocLabel:!0,showValueArea:!0,vahColor:"#8892a6",valColor:"#8892a6",showValueAreaLabels:!0,fillValueArea:!0,valueAreaFillColor:"#4a8f7a",valueAreaFillOpacity:.07,showInitialBalance:!0,ibColor:"#c8853a",showSinglePrints:!0,singlePrintColor:"#e0556b",showTails:!0,buyTailColor:"#3fb96b",sellTailColor:"#e05555",showPoorHighLow:!1,poorColor:"#ffd966",showNakedLevels:!1,nakedColor:"#b0b0b0",showDevelopingPoc:!1,developingPocColor:"#ffffff",showDevelopingVa:!1,developingVaColor:"#888888",showTpoCounts:!1,countColor:"#8892a6",showSessionLabel:!0,showDayType:!1,showOpenType:!1,labelColor:"#cccccc",showVolumeProfile:!1,volumeProfileWidth:60,volumeProfileSide:"right",volumeColor:"#3b5168",showVolumeValues:!1},H={normal:"Normal","normal-variation":"Normal Var",trend:"Trend","double-distribution":"Double Dist",neutral:"Neutral"},I={drive:"Open-Drive","test-drive":"Open-Test-Drive","rejection-reverse":"Open-Rej-Rev",auction:"Open-Auction"};class R{constructor(e=null,t={}){Object.defineProperty(this,"_result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_boxes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_rowH",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_rc",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._result=e,this._opts={...j,...t}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return this._opts.zOrder}options(){return this._opts}autoscaleInfo(){if(null===this._result)return null;let e=1/0,t=-1/0;for(const o of this._result.sessions)0!==o.levels.length&&(t=Math.max(t,o.levels[0].price),e=Math.min(e,o.levels[o.levels.length-1].price));return Number.isFinite(e)?{min:e,max:t}:null}setData(e){this._result=e,this._host?.requestUpdate()}setOptions(e){this._opts={...this._opts,...e},this._host?.requestUpdate()}hitTest(e,t){const o=this._boxes.find(t=>e>=t.x0&&e<=t.x1);return void 0===o?null:{externalId:`mp:${o.index}`,zOrder:"normal",distance:0,cursor:"crosshair"}}hoverAt(e,t,o){const i=o??this._rc;if(null===i||null===this._result)return null;const l=this._boxes.find(t=>e>=t.x0&&e<=t.x1);if(void 0===l)return null;const r=this._result.sessions[l.index];if(void 0===r)return null;let n=null,s=1/0;for(const e of r.levels){const o=Math.abs(i.priceScale.priceToY(e.price)-t);o<s&&o<=Math.max(4,this._rowH)&&(s=o,n=e)}return null===n?null:{sessionIndex:l.index,price:n.price,level:n,session:r,isPoc:n.price===r.poc,inValueArea:n.price<=r.vah&&n.price>=r.val,isSinglePrint:r.singlePrints.includes(n.price)}}draw(e,t){if(this._rc=t,this._boxes=[],null===this._result||0===this._result.sessions.length)return;const o=this._result.options,i=o.tickSize*Math.max(1,Math.floor(o.rowTicks));for(let o=0;o<this._result.sessions.length;o++)this._drawSession(e,t,this._result.sessions[o],i,o);this._opts.showNakedLevels&&this._drawNaked(e,t)}_letterAlpha(e){const t=this._opts;if("letters"===t.blockDisplay||"blocks+letters"===t.blockDisplay)return 1;if("blocks"===t.blockDisplay)return 0;const o=Math.max(1,t.letterFade);return Math.max(0,Math.min(1,(e-t.minLetterHeight)/o))}_blockColor(e,t,o){const i=this._opts;return"period"===i.colorMode?i.periodColors[t%i.periodColors.length]:"valueArea"===i.colorMode&&e.price<=o.vah&&e.price>=o.val?i.vaColor:i.color}_drawSession(e,t,o,i,l){const r=this._opts,n=t.dpr,s=t.dataLayer.timeToIndex(o.startTime),a=t.dataLayer.timeToIndex(o.endTime);if(void 0===s||void 0===a)return;const c=r.profileSpacing*n,h=Math.round(t.timeScale.indexToX(s)*n)+c/2,u=Math.max(h+1,Math.round(t.timeScale.indexToX(a)*n)-c/2);this._boxes.push({index:l,x0:h/n,x1:u/n});const d=e=>t.priceScale.priceToY(e)*n,p=Math.max(1,Math.abs(t.priceScale.priceToY(o.poc)-t.priceScale.priceToY(o.poc+i))*n);this._rowH=p/n;const f=r.letterWidth*n,m=this._letterAlpha(p/n),b="letters"!==r.blockDisplay||m<1;if(e.save(),r.fillValueArea){const t=d(o.vah)-p/2,i=d(o.val)+p/2;e.globalAlpha=r.valueAreaFillOpacity,e.fillStyle=r.valueAreaFillColor,e.fillRect(h,t,u-h,i-t),e.globalAlpha=1}let g=1,v=0;for(const e of o.levels)e.count>g&&(g=e.count),e.volume>v&&(v=e.volume);r.showVolumeProfile&&v>0&&this._drawVolume(e,t,o,h,u,p,v);const M=Math.min(r.font*n,.95*p);m>0&&(e.font=`${M}px ui-monospace, SFMono-Regular, Menlo, monospace`,e.textBaseline="middle",e.textAlign="center");const _=Math.max(1,p-Math.min(1.5*n,.15*p)),w="count"===r.colorMode||"volume"===r.colorMode;for(const t of o.levels){const i=d(t.price),l=t.price<=o.vah&&t.price>=o.val?1:r.outsideVaOpacity,n="count"===r.colorMode?t.count/g:"volume"===r.colorMode&&v>0?t.volume/v:1,s=r.opacity*l*(w?.3+.7*n:1);for(let l=0;l<t.periods.length;l++){const n=r.split?t.periods[l]:l,a=h+n*f;if(a>u)break;const c=this._blockColor(t,t.periods[l],o);b&&(e.globalAlpha=s,e.fillStyle=c,e.fillRect(a,i-_/2,Math.max(1,f-Math.min(1,.12*f)),_)),m>0&&(e.globalAlpha=m*(b?.95:s),e.fillStyle=b?"#12151c":c,e.fillText(t.letters[l]??"",a+f/2,i))}}if(e.globalAlpha=1,r.showTpoCounts){e.font=`${Math.min((r.font-1)*n,p)}px ui-monospace, monospace`,e.textAlign="left",e.textBaseline="middle",e.fillStyle=r.countColor;const t=h+(r.split?o.periods:g)*f+3*n;for(const i of o.levels)e.fillText(String(i.count),t,d(i.price))}if(r.showSinglePrints&&o.singlePrints.length>0){e.strokeStyle=r.singlePrintColor,e.lineWidth=Math.max(1,Math.round(n));for(const t of o.singlePrints){const o=Math.round(d(t))+.5;e.beginPath(),e.moveTo(h,o),e.lineTo(h+6*n,o),e.stroke()}}if(r.showTails){const t=(t,o)=>{if(null===t)return;e.fillStyle=o,e.globalAlpha=.75;const i=d(t.high)-p/2,l=d(t.low)+p/2;e.fillRect(h-4*n,i,3*n,l-i),e.globalAlpha=1};t(o.sellingTail,r.sellTailColor),t(o.buyingTail,r.buyTailColor)}if(r.showInitialBalance&&Number.isFinite(o.initialBalance.high)){const t=d(o.initialBalance.high),i=d(o.initialBalance.low),l=h-2*n;e.strokeStyle=r.ibColor,e.lineWidth=Math.max(1,Math.round(1.5*n)),e.beginPath(),e.moveTo(l,t),e.lineTo(l,i),e.moveTo(l,t),e.lineTo(l+5*n,t),e.moveTo(l,i),e.lineTo(l+5*n,i),e.stroke()}const y=(t,o,i,l=1)=>{const s=Math.round(d(t))+.5;e.strokeStyle=o,e.lineWidth=Math.max(1,Math.round(l*n)),e.beginPath(),e.moveTo(h,s),e.lineTo(u,s),e.stroke(),""!==i&&(e.font=(r.font-1)*n+"px ui-sans-serif, system-ui, sans-serif",e.textBaseline="middle",e.textAlign="left",e.fillStyle=o,e.fillText(i,u+3*n,s))};r.showValueArea&&(y(o.vah,r.vahColor,r.showValueAreaLabels?`VAH ${t.priceScale.format(o.vah)}`:""),y(o.val,r.valColor,r.showValueAreaLabels?`VAL ${t.priceScale.format(o.val)}`:"")),r.showPoc&&y(o.poc,r.pocColor,r.showPocLabel?`POC ${t.priceScale.format(o.poc)}`:"",r.pocThickness),r.showPoorHighLow&&(o.poorHigh&&y(o.high,r.poorColor,"Poor High"),o.poorLow&&y(o.low,r.poorColor,"Poor Low")),r.showDevelopingPoc&&this._drawDeveloping(e,t,o,"poc",r.developingPocColor),r.showDevelopingVa&&(this._drawDeveloping(e,t,o,"vah",r.developingVaColor),this._drawDeveloping(e,t,o,"val",r.developingVaColor));const x=[];r.showSessionLabel&&void 0!==o.label&&x.push(o.label),r.showDayType&&x.push(H[o.dayType]??o.dayType),r.showOpenType&&x.push(I[o.openType]??o.openType),x.length>0&&(e.font=(r.font-1)*n+"px ui-sans-serif, system-ui, sans-serif",e.textAlign="left",e.textBaseline="bottom",e.fillStyle=r.labelColor,e.fillText(x.join(" · "),h,d(o.high)-p)),e.restore()}_drawVolume(e,t,o,i,l,r,n){const s=this._opts,a=t.dpr,c=s.volumeProfileWidth*a,h="right"===s.volumeProfileSide;e.globalAlpha=.55,e.fillStyle=s.volumeColor;for(const s of o.levels){const o=c*(s.volume/n),u=t.priceScale.priceToY(s.price)*a-r/2;e.fillRect(h?l-o:i,u,o,Math.max(1,r-1))}if(e.globalAlpha=1,s.showVolumeValues&&r>=7*a){e.font=`${Math.min(9*a,.9*r)}px ui-monospace, monospace`,e.textBaseline="middle",e.textAlign=h?"right":"left",e.fillStyle=s.countColor;for(const r of o.levels)e.fillText(Math.round(r.volume).toString(),h?l-2*a:i+2*a,t.priceScale.priceToY(r.price)*a)}}_drawDeveloping(e,t,o,i,l){if(0===o.developing.length)return;const r=t.dpr;e.save(),e.strokeStyle=l,e.lineWidth=Math.max(1,Math.round(r)),e.beginPath();let n=!1;for(const l of o.developing){const o=t.dataLayer.timeToIndex(l.time);if(void 0===o)continue;const s=t.timeScale.indexToX(o)*r,a=Math.round(t.priceScale.priceToY(l[i])*r)+.5;n?e.lineTo(s,a):(e.moveTo(s,a),n=!0)}n&&e.stroke(),e.restore()}_drawNaked(e,t){const o=this._opts,i=t.dpr,l=z(this._result);if(0===l.length)return;e.save(),e.strokeStyle=o.nakedColor,e.lineWidth=Math.max(1,Math.round(i)),e.setLineDash([4*i,3*i]);const r=t.plotWidth*i;for(const o of l){const l=t.dataLayer.timeToIndex(o.time);if(void 0===l)continue;const n=Math.round(t.priceScale.priceToY(o.price)*i)+.5;e.beginPath(),e.moveTo(t.timeScale.indexToX(l)*i,n),e.lineTo(r,n),e.stroke()}e.setLineDash([]),e.restore()}}function Y(t,o,i,l=1){const r=i*Math.max(1,Math.floor(l)),n=new Map;for(const t of o){const o=e(t.price,r);let i=n.get(o);void 0===i&&(i={price:o,bidVol:0,askVol:0},n.set(o,i)),"bid"===t.side?i.bidVol+=t.qty:i.askVol+=t.qty}const s=Array.from(n.values()).sort((e,t)=>t.price-e.price),a=s.reduce((e,t)=>e+(t.askVol-t.bidVol),0);return{time:t,cells:s,delta:a}}function $(e,t=3){const o=[];for(let i=0;i<e.length;i++){const l=e[i],r=e[i+1],n=e[i-1];r&&l.askVol>=t*Math.max(1,r.bidVol)&&o.push({price:l.price,side:"buy"}),n&&l.bidVol>=t*Math.max(1,n.askVol)&&o.push({price:l.price,side:"sell"})}return o}function U(e){const t=[];let o=0;for(const i of e)o+=i.delta,t.push(o);return t}function W(e,t=3,o=3){const i=$(e,t),l=new Map;for(const e of i)l.set(e.price,e.side);const r=[];let n=null;for(const t of e){const e=l.get(t.price);void 0===e||null!==n&&n.side!==e?(n&&n.prices.length>=o&&r.push({startPrice:n.prices[0],endPrice:n.prices[n.prices.length-1],side:n.side,count:n.prices.length}),n=void 0!==e?{side:e,prices:[t.price]}:null):(n=n??{side:e,prices:[]},n.prices.push(t.price))}return n&&n.prices.length>=o&&r.push({startPrice:n.prices[0],endPrice:n.prices[n.prices.length-1],side:n.side,count:n.prices.length}),r}class B{constructor(e){Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._opts=e}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"bottom"}autoscaleInfo(){return null}setData(e){this._opts=e,this._host?.requestUpdate()}draw(e,t){const o=this._opts;if(0===o.buckets.length)return;const i=t.dpr,l=o.buckets.reduce((e,t)=>Math.max(e,t.value),0)||1,r=o.width*i,n="left"===o.side?0:t.plotWidth*i,s=Math.max(2*i,t.plotHeight*i/Math.max(1,o.buckets.length)-i);e.save();for(const a of o.buckets){const c=t.priceScale.priceToY(a.price)*i,h=r*(a.value/l),u=a.price<=o.vah&&a.price>=o.val;e.fillStyle=a.price===o.poc?"#f0a020":u?o.vaColor:o.barColor;const d="left"===o.side?n:n-h;e.fillRect(d,c-s/2,h,s)}for(const[l,r]of[[o.poc,"#f0a020"],[o.vah,"#5a6b8c"],[o.val,"#5a6b8c"]]){const o=Math.round(t.priceScale.priceToY(l)*i)+.5;e.strokeStyle=r,e.lineWidth=Math.max(1,Math.round(i)),e.beginPath(),e.moveTo(0,o),e.lineTo(t.plotWidth*i,o),e.stroke()}e.restore()}}function q(e){const t=e.trim();if(t.startsWith("#")){const e=t.slice(1);if(3===e.length||4===e.length){const[t,o,i,l]=[...e].map(e=>parseInt(e+e,16));return[t,o,i].some(Number.isNaN)?null:{r:t,g:o,b:i,a:4===e.length?l/255:1}}if(6===e.length||8===e.length){const t=parseInt(e.slice(0,6),16);if(Number.isNaN(t))return null;const o=8===e.length?parseInt(e.slice(6,8),16)/255:1;return{r:t>>16&255,g:t>>8&255,b:255&t,a:Number.isNaN(o)?1:o}}return null}const o=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(t);return null===o?null:{r:Number(o[1]),g:Number(o[2]),b:Number(o[3]),a:void 0===o[4]?1:Number(o[4])}}function E(e,t){const o=q(e);return null===o?e:`rgba(${o.r},${o.g},${o.b},${t})`}const X={widthFactor:.9,font:10,minTextHeight:11,textFade:4,displayMode:"bidask",imbalanceRatio:3,imbalanceThreshold:0,stackedImbalances:3,statsRows:["volume","delta","deltaPct","cvd"],statsRowHeight:15,showCandle:!0,showPoc:!0,pocColor:"#f0a020",radius:2};function K(e){const t=Math.abs(e),[o,i]=t>=1e9?["B",1e9]:t>=1e6?["M",1e6]:t>=1e3?["K",1e3]:["",1],l=e/i,r=Math.abs(l);return(r>=100||1===i?l.toFixed(0):r>=10?l.toFixed(1):l.toFixed(2)).replace(/\.0+$/,"").replace(/(\.\d*?)0+$/,"$1")+o}function Z(e,t,o){const i=q(e),l=q(t);if(null===i||null===l)return t;const r=o<0?0:o>1?1:o;return`rgb(${Math.round(i.r+(l.r-i.r)*r)},${Math.round(i.g+(l.g-i.g)*r)},${Math.round(i.b+(l.b-i.b)*r)})`}class G{constructor(e={}){Object.defineProperty(this,"_bars",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_stats",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_cols",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_rowH",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_rc",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_plotH",{enumerable:!0,configurable:!0,writable:!0,value:0}),this._opts={...X,...e}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}autoscaleInfo(){let e=1/0,t=-1/0;for(const o of this._bars)0!==o.cells.length&&(t=Math.max(t,o.cells[0].price),e=Math.min(e,o.cells[o.cells.length-1].price));return Number.isFinite(e)?{min:e,max:t}:null}setBars(e){this._bars=e,this._recomputeStats(),this._host?.requestUpdate()}setOptions(e){this._opts={...this._opts,...e},this._host?.requestUpdate()}options(){return this._opts}stats(){return this._stats}_recomputeStats(){let e=0;this._stats=this._bars.map(t=>{let o=0,i=0,l=-1,r=t.cells.length>0?t.cells[0].price:0;for(const e of t.cells){const t=e.bidVol+e.askVol;o+=t,i+=1,t>l&&(l=t,r=e.price)}return e+=t.delta,{time:t.time,volume:o,delta:t.delta,deltaPct:o>0?t.delta/o*100:0,cvd:e,trades:i,poc:r}})}_rowHeight(e,t){let o=this._opts.tickSize??0;if(o<=0){let t=1/0;for(let o=1;o<e.length;o++){const i=Math.abs(e[o-1].price-e[o].price);i>0&&(t=Math.min(t,i))}o=Number.isFinite(t)?t:0}const i=e[0].price,l=o>0?Math.abs(t.priceScale.priceToY(i)-t.priceScale.priceToY(i+o))*t.dpr:0;return Math.max(l>1?l:16*t.dpr,6*t.dpr)}_columnWidth(e){const t=this._opts;return void 0!==t.cellWidth&&t.cellWidth>0?t.cellWidth*e.dpr:Math.max(24*e.dpr,e.timeScale.barSpacing*t.widthFactor*e.dpr)}draw(e,t){if(this._rc=t,0===this._bars.length)return;const o=this._opts,i=t.dpr,l=o.buyColor??t.theme.upColor,r=o.sellColor??t.theme.downColor,n=t.theme.background,s=t.timeScale.visibleRange(),a=this._columnWidth(t),c=t.plotHeight*i,h=o.statsRows.length*o.statsRowHeight*i;this._plotH=t.plotHeight,this._cols=[];const u=[];for(let e=0;e<this._bars.length;e++){const o=this._bars[e];if(0===o.cells.length)continue;const l=t.dataLayer.timeToIndex(o.time);void 0===l||l<s.from-1||l>s.to+1||u.push({bar:o,x:Math.round(t.timeScale.indexToX(l)*i),stats:this._stats[e]})}if(0===u.length)return;e.save(),e.textBaseline="middle";const d=c-h;for(const o of u)this._drawColumn(e,t,o,a,l,r,n,d);o.statsRows.length>0&&this._drawStats(e,t,u,a,l,r,n,c,h),e.restore()}_drawColumn(e,t,o,i,l,r,n,s){const a=this._opts,c=t.dpr,{bar:h,stats:u}=o,d=h.cells,p=this._rowHeight(d,t);this._rowH=p/c;const f=i/2,m=o.x-f;this._cols.push({time:h.time,x0:m/c,x1:(m+i)/c});let b=1;for(const e of d)b=Math.max(b,e.bidVol,e.askVol);if(a.showCandle){const o=t.priceScale.priceToY(d[0].price)*c-p/2,i=t.priceScale.priceToY(d[d.length-1].price)*c+p/2,n=u.delta>=0;e.fillStyle=E(n?l:r,.5),e.fillRect(m-5*c,o,3*c,i-o)}const g=this._imbalances(d),v=Math.max(0,Math.min(1,(p/c-a.minTextHeight)/Math.max(1,a.textFade)+1));v>0&&(e.font=a.font*c+"px ui-monospace, SFMono-Regular, Menlo, monospace",e.textAlign="center");for(let h=0;h<d.length;h++){const M=d[h],_=t.priceScale.priceToY(M.price)*c,w=Math.round(_-p/2),y=Math.max(1,Math.round(p)-1);if(w+y<0||w>s)continue;const x=g.get(M.price);if("bidask"===a.displayMode)this._cell(e,m,w,f-c,y,M.bidVol,b,r,n,"sell"===x,v,c),this._cell(e,o.x+c,w,f-c,y,M.askVol,b,l,n,"buy"===x,v,c);else{const t="delta"===a.displayMode?M.askVol-M.bidVol:M.bidVol+M.askVol,o="delta"===a.displayMode?t>=0?l:r:Z(r,l,.5);this._cell(e,m,w,i-c,y,Math.abs(t),b,o,n,!1,v,c,t)}a.showPoc&&M.price===u.poc&&(e.fillStyle=a.pocColor,e.fillRect(m-2*c,w,2*c,y))}if(a.stackedImbalances>0)for(const i of this._runs(d,g,a.stackedImbalances)){const n=t.priceScale.priceToY(i.from)*c-p/2,s=t.priceScale.priceToY(i.to)*c+p/2,a="buy"===i.side?o.x+f+2*c:m-8*c;e.strokeStyle="buy"===i.side?l:r,e.lineWidth=Math.max(1,Math.round(1.5*c)),e.beginPath(),e.moveTo(a,n),e.lineTo(a,s),e.moveTo(a,n),e.lineTo(a+("buy"===i.side?3:-3)*c,n),e.moveTo(a,s),e.lineTo(a+("buy"===i.side?3:-3)*c,s),e.stroke()}}_cell(e,t,o,i,l,r,n,s,a,c,h,u,d){if(i<=0)return;const p=n>0?r/n:0;e.fillStyle=c?s:Z(a,s,.08+.62*Math.sqrt(p));const f=Math.min(this._opts.radius*u,l/2,i/2);e.beginPath(),e.roundRect(t,o,i,l,f),e.fill(),h<=0||(e.fillStyle=c?E("#0d0f14",h):E("#ffffff",.9*h),e.fillText(K(d??r),t+i/2,o+l/2))}_imbalances(e){const t=this._opts,o=new Map;for(let i=0;i<e.length;i++){const l=e[i],r=e[i+1],n=e[i-1];r&&l.askVol>=t.imbalanceThreshold&&l.askVol>=t.imbalanceRatio*Math.max(1,r.bidVol)&&o.set(l.price,"buy"),n&&l.bidVol>=t.imbalanceThreshold&&l.bidVol>=t.imbalanceRatio*Math.max(1,n.askVol)&&o.set(l.price,"sell")}return o}_runs(e,t,o){const i=[];let l=null;const r=()=>{l&&l.prices.length>=o&&i.push({from:l.prices[0],to:l.prices[l.prices.length-1],side:l.side})};for(const o of e){const e=t.get(o.price);void 0===e||null!==l&&l.side!==e?(r(),l=void 0!==e?{side:e,prices:[o.price]}:null):(l=l??{side:e,prices:[]},l.prices.push(o.price))}return r(),i}_drawStats(e,t,o,i,l,r,n,s,a){const c=this._opts,h=t.dpr,u=c.statsRowHeight*h,d=s-a,p=new Map;for(const e of c.statsRows){let t=0;for(const i of o)t=Math.max(t,Math.abs(this._metric(i.stats,e)));p.set(e,t||1)}e.save(),e.fillStyle=E(n,.92),e.fillRect(0,d,t.plotWidth*h,a),e.font=(c.font-.5)*h+"px ui-monospace, SFMono-Regular, Menlo, monospace",e.textAlign="center",e.textBaseline="middle",c.statsRows.forEach((s,a)=>{const c=d+a*u;for(const a of o){const o=this._metric(a.stats,s),d=Math.abs(o)/p.get(s),f=a.x-i/2,m=i-h,b="volume"===s||"trades"===s?Z(n,t.theme.axisText,.1+.16*d):"cvd"===s?Z(n,"#4f8cff",.1+.5*d):Z(n,o>=0?l:r,.1+.55*d);e.fillStyle=b,e.beginPath(),e.roundRect(f,c+h,m,u-2*h,2*h),e.fill(),e.fillStyle=E("#ffffff",.92),e.fillText(this._statText(o,s),a.x,c+u/2)}}),e.restore()}_metric(e,t){switch(t){case"volume":return e.volume;case"delta":return e.delta;case"deltaPct":return e.deltaPct;case"cvd":return e.cvd;default:return e.trades}}_statText(e,t){return"deltaPct"===t?`${e>=0?"+":""}${e.toFixed(1)}%`:"volume"===t||"trades"===t?K(e):(e=>(e>=0?"+":"")+K(e))(e)}hitTest(e,t){const o=this._cols.find(t=>e>=t.x0&&e<=t.x1);return void 0===o||t<0||t>this._plotH?null:{externalId:`footprint:${o.time}`,zOrder:"normal",distance:0,cursor:"crosshair"}}hoverAt(e,t,o){const i=o??this._rc;if(null===i)return null;const l=this._cols.find(t=>e>=t.x0&&e<=t.x1);if(void 0===l)return null;const r=this._bars.findIndex(e=>e.time===l.time);if(r<0)return null;const n=this._bars[r],s=i.priceScale.yToPrice(t);let a=null,c=1/0;for(const e of n.cells){const o=Math.abs(i.priceScale.priceToY(e.price)-t);o<c&&o<=Math.max(4,this._rowH)&&(c=o,a=e)}return{time:n.time,price:null===a?null:s,cell:a,stats:this._stats[r]}}}class J{constructor(e,t,o=1){Object.defineProperty(this,"_tf",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tickSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_time",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_cells",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_delta",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_count",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_volume",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_open",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this._tf=e,this._tickSize=t*Math.max(1,Math.floor(o))}_snapshot(){const e=Array.from(this._cells.values()).sort((e,t)=>t.price-e.price);return{time:this._time,cells:e,delta:this._delta}}current(){return this._open?this._snapshot():null}_intervalKey(e){if("interval"!==this._tf.mode)return 0;const t=this._tf.anchorSec??0;return t+Math.floor((e-t)/this._tf.seconds)*this._tf.seconds}onTick(t){let o=!this._open;this._open&&(o="interval"===this._tf.mode?this._intervalKey(t.time)!==this._time:"ticks"===this._tf.mode?this._count>=this._tf.count:this._volume>=this._tf.perBar),o&&(this._cells=new Map,this._delta=0,this._count=0,this._volume=0,this._open=!0,this._time="interval"===this._tf.mode?this._intervalKey(t.time):t.time);const i=e(t.price,this._tickSize);let l=this._cells.get(i);return void 0===l&&(l={price:i,bidVol:0,askVol:0},this._cells.set(i,l)),"bid"===t.side?(l.bidVol+=t.qty,this._delta-=t.qty):(l.askVol+=t.qty,this._delta+=t.qty),this._count+=1,this._volume+=t.qty,{bar:this._snapshot(),isNew:o}}}const Q="profile";export{X as DEFAULT_FOOTPRINT_OPTIONS,M as DEFAULT_MARKET_PROFILE_OPTIONS,j as DEFAULT_MARKET_PROFILE_PRIMITIVE_OPTIONS,d as DEFAULT_VOLUME_PROFILE_FAMILY_OPTIONS,m as DEFAULT_VOLUME_PROFILE_PRIMITIVE_OPTIONS,G as Footprint,J as FootprintAggregator,B as HorizontalProfile,R as MarketProfile,Q as PROFILE_TIER,L as TPO_PERIOD_COLORS,v as TRADING_HOURS,b as VolumeProfile,e as bucketPrice,K as compactVol,Y as computeFootprint,N as computeMarketProfile,g as computeTpo,o as computeVolumeProfile,f as computeVolumeProfileSessions,U as cumulativeDelta,$ as diagonalImbalances,k as inWindow,z as nakedLevels,t as priceBuckets,F as rowOf,_ as rowTicksFor,W as stackedImbalances,w as tpoLetter};
1
+ function e(e,t){return Math.round(Math.round(e/t)*t*1e8)/1e8}function t(t,o,i){const l=e(t,i),s=e(o,i),n=[];for(let t=l;t<=s+i/2;t+=i)n.push(e(t,i));return n}function o(e,o,i=.7){const l=new Map;for(const i of e){const e=t(i.low,i.high,o),s=(i.volume??0)/e.length;for(const t of e)l.set(t,(l.get(t)??0)+s)}const s=Array.from(l.entries()).map(([e,t])=>({price:e,volume:t})).sort((e,t)=>t.price-e.price);if(0===s.length)return{buckets:s,poc:0,vah:0,val:0,totalVolume:0};const n=s.reduce((e,t)=>e+t.volume,0);let r=0;for(let e=1;e<s.length;e++)s[e].volume>s[r].volume&&(r=e);let a=r,c=r,h=s[r].volume;const u=n*i;for(;h<u&&(a>0||c<s.length-1);){(a>0?s[a-1].volume:-1)>=(c<s.length-1?s[c+1].volume:-1)?(a-=1,h+=s[a].volume):(c+=1,h+=s[c].volume)}return{buckets:s,poc:s[r].price,vah:s[a].price,val:s[c].price,totalVolume:n}}const i=19800;function l(e){const t=new Date(1e3*(e+i));return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),weekday:t.getUTCDay()}}const s="Asia/Kolkata",n=new Map,r={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};function a(e,t){const o=function(e){let t=n.get(e);if(void 0===t){let o;try{o=new Intl.DateTimeFormat("en-US",{timeZone:e,hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",weekday:"short"})}catch{throw new Error(`openalgo-charts: unknown IANA time zone "${e}"`)}t={format:o,parts:new Map,lastSecond:Number.NaN,lastParts:null},n.set(e,t)}return t}(t);if(e===o.lastSecond&&null!==o.lastParts)return o.lastParts;let i=o.parts.get(e);return void 0===i&&(i=function(e,t){let o=1970,i=1,l=1,s=0,n=0,a=0,c=4;for(const h of e.formatToParts(new Date(1e3*t)))switch(h.type){case"year":o=Number(h.value);break;case"month":i=Number(h.value);break;case"day":l=Number(h.value);break;case"hour":s=Number(h.value)%24;break;case"minute":n=Number(h.value);break;case"second":a=Number(h.value);break;case"weekday":c=r[h.value]??0}return{year:o,month:i,day:l,hour:s,minute:n,second:a,weekday:c,dayIndex:Math.floor(Date.UTC(o,i-1,l)/864e5)}}(o.format,e),o.parts.size>=4096&&o.parts.clear(),o.parts.set(e,i)),o.lastSecond=e,o.lastParts=i,i}function c(e,t=s){const o=a(e,t);return{year:o.year,month:o.month,day:o.day,hour:o.hour,minute:o.minute,second:o.second,weekday:o.weekday}}function h(e,t=s){return a(e,t).dayIndex}function u(e,t=s){const o=a(e,t);return Math.floor(Date.UTC(o.year,o.month-1,o.day,o.hour,o.minute,o.second)/1e3)-e}const p={tickSize:.05,session:"composite",valueAreaPercent:.7,deltaFromBarDirection:!0,timezone:s};function d(e,t,o){if("composite"===t)return 0;if("month"===t){const t=o===s?l(e):c(e,o);return 12*t.year+(t.month-1)}const n=o===s?Math.floor((e+i)/86400):h(e,o);return"day"===t?n:Math.floor((n+3)/7)}function f(e,o={}){const i={...p,...o},l=i.tickSize>0?i.tickSize:p.tickSize,n=Math.min(1,Math.max(0,i.valueAreaPercent)),r=i.timezone??s,a=new Map,c=[];for(const t of e){const e=d(t.time,i.session,r);let o=a.get(e);void 0===o&&(o=[],a.set(e,o),c.push(e)),o.push(t)}const h=[];for(const e of c){const o=a.get(e);if(0===o.length)continue;const s=new Map;let r=0,c=0,u=0;for(const e of o){const o=e.volume??0;r+=o;const n=e.close>=e.open,a=i.deltaFromBarDirection&&n?o:0,h=i.deltaFromBarDirection?n?0:o:0;c+=a,u+=h;const p=t(e.low,e.high,l),d=Math.max(1,p.length),f=o/d,m=a/d,b=h/d;for(const e of p){let t=s.get(e);void 0===t&&(t={volume:0,buy:0,sell:0},s.set(e,t)),t.volume+=f,t.buy+=m,t.sell+=b}}const p=Array.from(s.entries()).map(([e,t])=>({price:e,volume:t.volume,buyVolume:t.buy,sellVolume:t.sell,delta:t.buy-t.sell})).sort((e,t)=>t.price-e.price);if(0===p.length)continue;let d=0;for(let e=1;e<p.length;e++)p[e].volume>p[d].volume&&(d=e);let f=d,m=d,b=p[d].volume;const g=r*n;for(;b<g&&(f>0||m<p.length-1);){(f>0?p[f-1].volume:-1)>=(m<p.length-1?p[m+1].volume:-1)?(f-=1,b+=p[f].volume):(m+=1,b+=p[m].volume)}h.push({startTime:o[0].time,endTime:o[o.length-1].time,levels:p,poc:p[d].price,vah:p[f].price,val:p[m].price,totalVolume:r,buyVolume:c,sellVolume:u,delta:c-u})}return{sessions:h,options:{...i,timezone:r}}}const m={displayMode:"total",side:"right",width:90,opacity:.85,barColor:"#3b5168",buyColor:"#26a69a",sellColor:"#ef5350",showPoc:!0,pocColor:"#f0a020",showPocLabel:!0,showValueArea:!0,vahColor:"#8892a6",valColor:"#8892a6",showValueAreaLabels:!0,highlightValueArea:!0,valueAreaFillColor:"#4a6fa5",valueAreaFillOpacity:.08,valueAreaOpacityDim:.4,labelSide:"right",zOrder:"bottom"};class b{constructor(e=null,t={}){Object.defineProperty(this,"_result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._result=e,this._opts={...m,...t}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return this._opts.zOrder}autoscaleInfo(){if(null===this._result)return null;let e=1/0,t=-1/0;for(const o of this._result.sessions)0!==o.levels.length&&(t=Math.max(t,o.levels[0].price),e=Math.min(e,o.levels[o.levels.length-1].price));return Number.isFinite(e)?{min:e,max:t}:null}setData(e){this._result=e,this._host?.requestUpdate()}setOptions(e){this._opts={...this._opts,...e},this._host?.requestUpdate()}draw(e,t){if(null===this._result||0===this._result.sessions.length)return;const o=this._result.options.tickSize;for(const i of this._result.sessions)this._drawSession(e,t,i,o)}_segments(e,t,o){const i=this._opts;if("delta"===i.displayMode){const l=Math.abs(e.delta)/t*o;return[{color:e.delta>=0?i.buyColor:i.sellColor,len:l}]}const l=e.volume/t*o;if("buySell"===i.displayMode&&e.volume>0){const t=l*(e.buyVolume/e.volume);return[{color:i.buyColor,len:t},{color:i.sellColor,len:l-t}]}return[{color:i.barColor,len:l}]}_drawSession(e,t,o,i){const l=this._opts,s=t.dpr,n=t.dataLayer.timeToIndex(o.startTime),r=t.dataLayer.timeToIndex(o.endTime);if(void 0===n||void 0===r)return;const a=Math.round(t.timeScale.indexToX(n)*s),c=Math.max(a+1,Math.round(t.timeScale.indexToX(r)*s)),h=e=>t.priceScale.priceToY(e)*s,u=Math.max(1,Math.abs(t.priceScale.priceToY(o.poc)-t.priceScale.priceToY(o.poc+i))*s),p=l.width*s,d="right"===l.side?c:a;let f=0;for(const e of o.levels){const t="delta"===l.displayMode?Math.abs(e.delta):e.volume;t>f&&(f=t)}if(f<=0&&(f=1),e.save(),l.highlightValueArea){const t=h(o.vah)-u/2,i=h(o.val)+u/2,s="right"===l.side?c-p:a;e.globalAlpha=l.valueAreaFillOpacity,e.fillStyle=l.valueAreaFillColor,e.fillRect(s,t,p,i-t),e.globalAlpha=1}for(const t of o.levels){const i=t.price<=o.vah&&t.price>=o.val,s=l.opacity*(i?1:l.valueAreaOpacityDim),n=h(t.price)-u/2,r=Math.max(1,u-1);let a=d;e.globalAlpha=s;for(const o of this._segments(t,f,p)){if(o.len<=0)continue;const t="right"===l.side?a-o.len:a;e.fillStyle=o.color,e.fillRect(t,n,o.len,r),a="right"===l.side?a-o.len:a+o.len}}e.globalAlpha=1;const m=(t,o,i)=>{const n=Math.round(h(t))+.5;e.strokeStyle=o,e.lineWidth=Math.max(1,Math.round(s)),e.beginPath(),e.moveTo(a,n),e.lineTo(c,n),e.stroke(),""!==i&&(e.font=9*s+"px ui-sans-serif, system-ui, sans-serif",e.textBaseline="middle",e.fillStyle=o,"right"===l.labelSide?(e.textAlign="left",e.fillText(i,c+3*s,n)):(e.textAlign="right",e.fillText(i,a-3*s,n)))};l.showValueArea&&(m(o.vah,l.vahColor,l.showValueAreaLabels?`VAH ${t.priceScale.format(o.vah)}`:""),m(o.val,l.valColor,l.showValueAreaLabels?`VAL ${t.priceScale.format(o.val)}`:"")),l.showPoc&&m(o.poc,l.pocColor,l.showPocLabel?`POC ${t.priceScale.format(o.poc)}`:""),e.restore()}}function g(e,o,i,l=.7,s=2){const n=Math.max(1,o),r=new Map;let a=-1/0,c=1/0;const h=Math.ceil(e.length/n);for(let o=0;o<h;o++){const l=e.slice(o*n,(o+1)*n);if(0===l.length)continue;let h=-1/0,u=1/0;for(const e of l)h=Math.max(h,e.high),u=Math.min(u,e.low);o<s&&(a=Math.max(a,h),c=Math.min(c,u));for(const e of t(u,h,i))r.set(e,(r.get(e)??0)+1)}const u=Array.from(r.entries()).map(([e,t])=>({price:e,count:t})).sort((e,t)=>t.price-e.price);if(0===u.length)return{buckets:u,poc:0,vah:0,val:0,ib:{high:0,low:0}};const p=u.reduce((e,t)=>e+t.count,0);let d=0;for(let e=1;e<u.length;e++)u[e].count>u[d].count&&(d=e);let f=d,m=d,b=u[d].count;const g=p*l;for(;b<g&&(f>0||m<u.length-1);){(f>0?u[f-1].count:-1)>=(m<u.length-1?u[m+1].count:-1)?(f-=1,b+=u[f].count):(m+=1,b+=u[m].count)}return{buckets:u,poc:u[d].price,vah:u[f].price,val:u[m].price,ib:{high:a,low:c}}}const v={"all-hours":{startMinute:0,endMinute:0,name:"All Hours"},india:{startMinute:555,endMinute:930,zone:"Asia/Kolkata",name:"India"},asia:{startMinute:540,endMinute:900,zone:"Asia/Tokyo",name:"Asia"},london:{startMinute:420,endMinute:780,zone:"Europe/London",name:"London"},"new-york":{startMinute:480,endMinute:930,zone:"America/New_York",name:"New York"},"us-regular":{startMinute:570,endMinute:960,zone:"America/New_York",name:"US Regular"}},M={tickSize:.05,rowTicks:1,session:"day",blockMinutes:30,valueAreaPercent:.7,initialBalancePeriods:2,compositeSessions:1,tailEdges:0,timezone:s};function _(e,t){return e>0&&t>0?Math.max(1,Math.round(e/t)):1}function w(e){const t=(e%52+52)%52;return t<26?String.fromCharCode(65+t):String.fromCharCode(t-26+97)}const y=86400;function x(e,t){return e?.zone??t}function T(e,t){return t===s?l(e):c(e,t)}function S(e,t){if(t===s){const t=((e+i)%y+y)%y;return Math.floor(t/60)}const o=c(e,t);return 60*o.hour+o.minute}function k(e,t,o=s){if(t.startMinute===t.endMinute)return!0;const i=S(e,x(t,o));return t.startMinute<t.endMinute?i>=t.startMinute&&i<t.endMinute:i>=t.startMinute||i<t.endMinute}function P(e,t,o,i){const l=T(e,o),n=new Date(Date.UTC(l.year,l.month-1,l.day+i));return function(e,t,o,i=0,l=0,n=0,r=s){const a=Math.floor(Date.UTC(e,t-1,o,i,l,n)/1e3),c=a-u(a,r);return a-u(c,r)}(n.getUTCFullYear(),n.getUTCMonth()+1,n.getUTCDate(),Math.floor(t.startMinute/60),t.startMinute%60,0,o)}function C(e,t,o,l){if("composite"===t)return 0;if("month"===t){const t=T(e,o);return 12*t.year+(t.month-1)}let n=function(e,t){return t===s?Math.floor((e+i)/y):h(e,t)}(e,o);return void 0!==l&&l.startMinute>l.endMinute&&S(e,o)<l.endMinute&&(n-=1),"day"===t?n:Math.floor((n+3)/7)}function A(e,t){const o=e.reduce((e,t)=>e+t.count,0);let i=0;for(let t=1;t<e.length;t++)e[t].count>e[i].count&&(i=t);let l=i,s=i,n=e[i].count;const r=o*t;for(;n<r&&(l>0||s<e.length-1);){(l>0?e[l-1].count:-1)>=(s<e.length-1?e[s+1].count:-1)?(l-=1,n+=e[l].count):(s+=1,n+=e[s].count)}return{poc:e[i].price,vah:e[l].price,val:e[s].price}}function V(e,t,o){let i=0;for(let l=t;l>=0&&l<e.length&&1===e[l].count;l+=o)i++;return i}function O(e,t,o,i,l,s){const n=e.high-e.low,r=t-o;if(r<=0||n<=0)return"normal";if(i.up>0&&i.down>0)return"neutral";const a=l.findIndex(e=>e.price===s);if(a>=0&&l.length>=5){const e=l[a].count;let t=1/0,o=0;for(let e=0;e<l.length;e++){const i=Math.abs(e-a);i>1&&(o=Math.max(o,l[e].count)),i>0&&i<=Math.max(2,Math.floor(l.length/4))&&(t=Math.min(t,l[e].count))}if(o>=.7*e&&t<=.35*e)return"double-distribution"}const c=r/n;return c>=2.5?"trend":c>=1.4?"normal-variation":"normal"}function D(e,t,o,i,l){if(void 0===t)return"auction";const s=i-l;if(s<=0)return"auction";const n=t.high-t.low,r=(e-l)/s;if((r>.7||r<.3)&&n<=.35*s)return"drive";if(void 0!==o){const i=t.low<e-.25*n,l=t.high>e+.25*n;if(i&&o.high>t.high||l&&o.low<t.low)return"test-drive";if(l&&o.low<e||i&&o.high>e)return"rejection-reverse"}return"auction"}function N(e,o={}){const i={...M,...o},l=i.tickSize>0?i.tickSize:M.tickSize,n=Math.max(1,Math.floor(i.rowTicks)),r=l*n,a=Math.max(1,Math.round(60*i.blockMinutes)),c=Math.min(1,Math.max(0,i.valueAreaPercent)),h=Math.max(1,Math.floor(i.initialBalancePeriods)),u=Math.max(1,Math.floor(i.compositeSessions)),p=i.window,d=i.timezone??s,f=x(p,d),m=new Map,b=[];for(const t of e){if(void 0!==p&&!k(t.time,p,d))continue;const e=C(t.time,i.session,f,p);let o=m.get(e);void 0===o&&(o=[],m.set(e,o),b.push(e)),o.push(t)}const g=[];if(u>1&&"composite"!==i.session)for(let e=0;e<b.length;e+=u){const t=[];for(let o=e;o<Math.min(e+u,b.length);o++)t.push(...m.get(b[o]));g.push(t)}else for(const e of b)g.push(m.get(e));const v=[];for(const e of g){if(0===e.length)continue;const o=e[0].time;let l=o;if(void 0!==p&&p.startMinute!==p.endMinute){const e=P(o,p,f,0);l=e<=o?e:P(o,p,f,-1)}const s=new Map,n=new Map;let u=0,d=-1/0,m=1/0,b=0,g=-1/0,M=1/0;for(const o of e){const e=Math.max(0,Math.floor((o.time-l)/a));e>u&&(u=e),e<h&&(d=Math.max(d,o.high),m=Math.min(m,o.low)),g=Math.max(g,o.high),M=Math.min(M,o.low);const i=o.volume??0;b+=i;let c=n.get(e);void 0===c&&(c={index:e,letter:w(e),startTime:o.time,endTime:o.time,high:o.high,low:o.low,volume:0},n.set(e,c)),c.endTime=o.time,c.high=Math.max(c.high,o.high),c.low=Math.min(c.low,o.low),c.volume+=i;const p=t(o.low,o.high,r),f=i/Math.max(1,p.length);for(const t of p){let o=s.get(t);void 0===o&&(o={periods:new Set,volume:0},s.set(t,o)),o.periods.add(e),o.volume+=f}}const _=Array.from(n.values()).sort((e,t)=>e.index-t.index),y=Array.from(s.entries()).map(([e,t])=>{const o=Array.from(t.periods).sort((e,t)=>e-t);return{price:e,count:o.length,periods:o,volume:t.volume,letters:o.map(w).join("")}}).sort((e,t)=>t.price-e.price);if(0===y.length)continue;const x=A(y,c),T=[];for(const e of _){const t=[];for(const o of y){let i=0;for(const t of o.periods)t<=e.index&&i++;i>0&&t.push({price:o.price,count:i})}0!==t.length&&T.push({periodIndex:e.index,time:e.endTime,...A(t,c)})}const S=[];for(let e=1;e<y.length-1;e++)1===y[e].count&&S.push(y[e].price);let k=null,C=null;if(i.tailEdges>0){const e=V(y,0,1);e>=i.tailEdges&&(C={high:y[0].price,low:y[e-1].price});const t=V(y,y.length-1,-1);t>=i.tailEdges&&(k={high:y[y.length-t].price,low:y[y.length-1].price})}const N={high:Number.isFinite(d)?d:y[0].price,low:Number.isFinite(m)?m:y[y.length-1].price},z={up:Math.max(0,g-N.high),down:Math.max(0,N.low-M)};let F=y[0].price,L=-1;for(const e of y)e.volume>L&&(L=e.volume,F=e.price);v.push({startTime:o,endTime:e[e.length-1].time,label:p?.name,levels:y,poc:x.poc,vah:x.vah,val:x.val,high:g,low:M,open:e[0].open,close:e[e.length-1].close,periods:u+1,periodDetail:_,initialBalance:N,rangeExtension:z,singlePrints:S,buyingTail:k,sellingTail:C,poorHigh:y[0].count>1,poorLow:y[y.length-1].count>1,developing:T,dayType:O(N,g,M,z,y,x.poc),openType:D(e[0].open,_[0],_[1],g,M),volumePoc:F,totalVolume:b})}return{sessions:v,options:{...i,rowTicks:n,timezone:d}}}function z(e){const t=[],o=e.sessions,i=["poc","vah","val"];for(let e=0;e<o.length;e++)for(const l of i){const i=o[e][l];let s=!1;for(let t=e+1;t<o.length&&!s;t++)i<=o[t].high&&i>=o[t].low&&(s=!0);s||t.push({time:o[e].startTime,price:i,kind:l})}return t}function F(t,o){return e(t,o.tickSize*Math.max(1,Math.floor(o.rowTicks)))}const L=["25755","65656","34443","65556","74747","74744","34553","55755","72227","11152","55655","44447","57755","57555","25552","65644","25573","65655","34216","72222","55557","55552","55775","55255","55222","71247","03137","44656","03443","11353","02743","32722","03531","44655","20223","10152","44565","62223","07755","06555","02552","06564","03511","03444","03216","27223","05553","05552","05577","05225","05531","07127","75557","26227","61247","61216","55711","74616","34752","71222","25252","25716","57575"],j=new Map(Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789#",(e,t)=>{const o=[];for(let e=0;e<5;e++){const i=Number(L[t][e]);for(let t=0;t<3;t++){if(!(i&4>>t))continue;const l=t;for(;t+1<3&&i&4>>t+1;)t++;o.push([l,e,t-l+1])}}return[e,o]}));function H(e,t,o,i,l,s,n="center"){if(0===t.length||!Number.isFinite(l)||!Number.isFinite(s))return!1;const r=4*t.length-1,a=Math.floor(Math.min(l/5,s/r)+1e-7);if(a<1)return!1;const c=r*a,h=Math.round(o-("center"===n?c/2:"right"===n?c:0)),u=Math.round(i-5*a/2);for(let o=0;o<t.length;o++){const i=j.get(t[o]);if(void 0!==i)for(const[t,l,s]of i)e.fillRect(h+(4*o+t)*a,u+l*a,s*a,a)}return!0}const R=["#e05555","#e08a3c","#d9c341","#8cc44a","#3fb96b","#38b2a3","#3b9fd1","#5a7fe0","#8a68d9","#c05fc4","#d1508f","#9b7b5a"],I={blockDisplay:"auto",minLetterHeight:7,letterFade:4,letterWidth:8,font:10,colorMode:"period",periodColors:R,color:"#5a6b8c",vaColor:"#4a8f7a",opacity:.92,outsideVaOpacity:.45,zOrder:"top",split:!1,showSessionOpen:!1,sessionOpenColor:"#5ca8ff",showLastPrice:!1,lastPriceColor:"#ff6b5e",profileSpacing:4,showPoc:!0,pocColor:"#f0a020",pocThickness:2,showPocLabel:!0,showValueArea:!0,vahColor:"#8892a6",valColor:"#8892a6",showValueAreaLabels:!0,fillValueArea:!0,valueAreaFillColor:"#4a8f7a",valueAreaFillOpacity:.07,showInitialBalance:!0,ibColor:"#c8853a",showSinglePrints:!0,singlePrintColor:"#e0556b",showTails:!0,buyTailColor:"#3fb96b",sellTailColor:"#e05555",showPoorHighLow:!1,poorColor:"#ffd966",showNakedLevels:!1,nakedColor:"#b0b0b0",showDevelopingPoc:!1,developingPocColor:"#ffffff",showDevelopingVa:!1,developingVaColor:"#888888",showTpoCounts:!1,countColor:"#8892a6",showSessionLabel:!0,showDayType:!1,showOpenType:!1,labelColor:"#cccccc",showVolumeProfile:!1,volumeProfileWidth:60,volumeProfileSide:"right",volumeColor:"#3b5168",showVolumeValues:!1},W={normal:"Normal","normal-variation":"Normal Var",trend:"Trend","double-distribution":"Double Dist",neutral:"Neutral"},Y={drive:"Open-Drive","test-drive":"Open-Test-Drive","rejection-reverse":"Open-Rej-Rev",auction:"Open-Auction"};class ${constructor(e=null,t={}){Object.defineProperty(this,"_result",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_boxes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_rowH",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_rc",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_sessionSplits",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this._result=e,this._opts={...I,...t}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return this._opts.zOrder}options(){return this._opts}autoscaleInfo(){if(null===this._result)return null;let e=1/0,t=-1/0;for(const o of this._result.sessions)0!==o.levels.length&&(t=Math.max(t,o.levels[0].price),e=Math.min(e,o.levels[o.levels.length-1].price));return Number.isFinite(e)?{min:e,max:t}:null}setData(e){this._result=e,this._boxes=[],this._host?.requestUpdate()}setOptions(e){this._opts={...this._opts,...e},void 0!==e.split&&this._sessionSplits.clear(),this._host?.requestUpdate()}isSessionSplit(e){const t=this._sessionKey(e);return null!==t&&(this._sessionSplits.get(t)??this._opts.split)}setSessionSplit(e,t){const o=this._sessionKey(e);return null!==o&&(null===t?this._sessionSplits.delete(o):this._sessionSplits.set(o,t),this._host?.requestUpdate(),!0)}_sessionKey(e){if(!Number.isInteger(e)||e<0||null===this._result)return null;const t=this._result.sessions[e];return void 0===t?null:function(e,t){const o=x(t.window,t.timezone??s);return[t.session,t.compositeSessions,o,t.window?.startMinute??"",t.window?.endMinute??"",C(e,t.session,o,t.window)].join("|")}(t.startTime,this._result.options)}hitTest(e,t){const o=this._boxes.find(t=>e>=t.x0&&e<=t.x1);return void 0===o?null:{externalId:`mp:${o.index}`,zOrder:"normal",distance:0,cursor:"crosshair"}}hoverAt(e,t,o){const i=o??this._rc;if(null===i||null===this._result)return null;const l=this._boxes.find(t=>e>=t.x0&&e<=t.x1);if(void 0===l)return null;const s=this._result.sessions[l.index];if(void 0===s)return null;let n=null,r=1/0;for(const e of s.levels){const o=Math.abs(i.priceScale.priceToY(e.price)-t);o<r&&o<=Math.max(4,this._rowH)&&(r=o,n=e)}return null===n?null:{sessionIndex:l.index,price:n.price,level:n,session:s,isPoc:n.price===s.poc,inValueArea:n.price<=s.vah&&n.price>=s.val,isSinglePrint:s.singlePrints.includes(n.price)}}draw(e,t){if(this._rc=t,this._boxes=[],null===this._result||0===this._result.sessions.length)return;const o=this._result.options,i=o.tickSize*Math.max(1,Math.floor(o.rowTicks)),l="compact"===this._opts.blockDisplay;l&&(e.save(),e.beginPath(),e.rect(0,0,Math.floor(t.plotWidth*t.dpr),Math.floor(t.plotHeight*t.dpr)),e.clip());for(let o=0;o<this._result.sessions.length;o++)this._drawSession(e,t,this._result.sessions[o],i,o);this._opts.showNakedLevels&&this._drawNaked(e,t),l&&e.restore()}_letterAlpha(e){const t=this._opts;if("compact"===t.blockDisplay||"letters"===t.blockDisplay||"blocks+letters"===t.blockDisplay)return 1;if("blocks"===t.blockDisplay)return 0;const o=Math.max(1,t.letterFade);return Math.max(0,Math.min(1,(e-t.minLetterHeight)/o))}_blockColor(e,t,o){const i=this._opts;return"period"===i.colorMode?i.periodColors[t%i.periodColors.length]:"valueArea"===i.colorMode&&e.price<=o.vah&&e.price>=o.val?i.vaColor:i.color}_drawSession(e,t,o,i,l){const s=this._opts,n=t.dpr,r="compact"===s.blockDisplay,a=this.isSessionSplit(l),c=t.dataLayer.timeToIndex(o.startTime),h=t.dataLayer.timeToIndex(o.endTime);if(void 0===c||void 0===h)return;const u=s.profileSpacing*n;let p=Math.round(t.timeScale.indexToX(c)*n)+u/2;const d=Math.max(p+1,Math.round(t.timeScale.indexToX(h)*n)-u/2),f=p<=t.plotWidth*n&&d>=0;this._boxes.push({index:l,x0:p/n,x1:d/n});const m=e=>t.priceScale.priceToY(e)*n,b=Math.max(1,Math.abs(t.priceScale.priceToY(o.poc)-t.priceScale.priceToY(o.poc+i))*n);this._rowH=b/n;const g=r&&b<12*n,v=Math.floor(Math.min(b,s.font*n)+1e-7),M=g?Math.max(1,Math.min(Math.round(s.letterWidth*n),4*Math.max(1,Math.floor(v/5)))):s.letterWidth*n;s.showSessionOpen&&(p+=M+3*n);const _=s.showLastPrice&&l===this._result.sessions.length-1,w=this._letterAlpha(b/n),y=!r&&("letters"!==s.blockDisplay||w<1);if(e.save(),s.fillValueArea&&d>p){const t=m(o.vah)-b/2,i=m(o.val)+b/2;e.globalAlpha=s.valueAreaFillOpacity,e.fillStyle=s.valueAreaFillColor,e.fillRect(p,t,d-p,i-t),e.globalAlpha=1}let x=1,T=0;for(const e of o.levels)e.count>x&&(x=e.count),e.volume>T&&(T=e.volume);s.showVolumeProfile&&T>0&&this._drawVolume(e,t,o,p,d,b,T);const S=Math.min(s.font*n,.95*b);w>0&&(e.font=`${S}px ui-monospace, SFMono-Regular, Menlo, monospace`,e.textBaseline="middle",e.textAlign="center");const k=Math.max(1,b-Math.min(1.5*n,.15*b)),P="count"===s.colorMode||"volume"===s.colorMode;for(const i of o.levels){const l=m(i.price);if(r&&(l+b/2<0||l-b/2>t.plotHeight*n))continue;const c=i.price<=o.vah&&i.price>=o.val?1:s.outsideVaOpacity,h="count"===s.colorMode?i.count/x:"volume"===s.colorMode&&T>0?i.volume/T:1,u=s.opacity*c*(P?.3+.7*h:1);for(let c=0;c<i.periods.length;c++){const f=a?i.periods[c]:c,m=p+f*M;if(m>d)break;if(r&&(m+M>d||m+M<0||m>t.plotWidth*n))continue;const b=this._blockColor(i,i.periods[c],o);y&&(e.globalAlpha=u,e.fillStyle=b,e.fillRect(m,l-k/2,Math.max(1,M-Math.min(1,.12*M)),k)),w>0&&(e.globalAlpha=r?s.opacity*(P?.3+.7*h:1):w*(y?.95:u),e.fillStyle=y?"#12151c":b,g?H(e,i.letters[c]??"",m+M/2,l,v,M-1)||e.fillRect(Math.round(m),Math.round(l),Math.max(1,Math.floor(M-1)),1):e.fillText(i.letters[c]??"",r?Math.round(m+M/2):m+M/2,r?Math.round(l):l))}}if(e.globalAlpha=1,s.showTpoCounts){e.font=`${Math.min((s.font-1)*n,b)}px ui-monospace, monospace`,e.textAlign="left",e.textBaseline="middle",e.fillStyle=s.countColor;const i=p+((a?o.periods:x)+(_?1:0))*M+3*n;for(const l of o.levels){const o=m(l.price);if(g){if(o+b/2<0||o-b/2>t.plotHeight*n)continue;H(e,String(l.count),i,o,v,Math.max(0,d-i),"left")}else e.fillText(String(l.count),i,o)}}if(s.showSinglePrints&&o.singlePrints.length>0){e.strokeStyle=s.singlePrintColor,e.lineWidth=Math.max(1,Math.round(n));for(const t of o.singlePrints){const o=Math.round(m(t))+.5;e.beginPath(),e.moveTo(p,o),e.lineTo(p+6*n,o),e.stroke()}}if(s.showTails){const t=(t,o)=>{if(null===t)return;e.fillStyle=o,e.globalAlpha=.75;const i=m(t.high)-b/2,l=m(t.low)+b/2;e.fillRect(p-4*n,i,3*n,l-i),e.globalAlpha=1};t(o.sellingTail,s.sellTailColor),t(o.buyingTail,s.buyTailColor)}if(s.showInitialBalance&&Number.isFinite(o.initialBalance.high)){const t=m(o.initialBalance.high),i=m(o.initialBalance.low),l=p-2*n;e.strokeStyle=s.ibColor,e.lineWidth=Math.max(1,Math.round(1.5*n)),e.beginPath(),e.moveTo(l,t),e.lineTo(l,i),e.moveTo(l,t),e.lineTo(l+5*n,t),e.moveTo(l,i),e.lineTo(l+5*n,i),e.stroke()}const C=(t,o,i,l=1)=>{const r=Math.round(m(t))+.5;e.strokeStyle=o,e.lineWidth=Math.max(1,Math.round(l*n)),e.beginPath(),e.moveTo(p,r),e.lineTo(d,r),e.stroke(),""!==i&&(e.font=(s.font-1)*n+"px ui-sans-serif, system-ui, sans-serif",e.textBaseline="middle",e.textAlign="left",e.fillStyle=o,e.fillText(i,d+3*n,r))};s.showValueArea&&(C(o.vah,s.vahColor,s.showValueAreaLabels?`VAH ${t.priceScale.format(o.vah)}`:""),C(o.val,s.valColor,s.showValueAreaLabels?`VAL ${t.priceScale.format(o.val)}`:"")),s.showPoc&&C(o.poc,s.pocColor,s.showPocLabel?`POC ${t.priceScale.format(o.poc)}`:"",s.pocThickness),s.showPoorHighLow&&(o.poorHigh&&C(o.high,s.poorColor,"Poor High"),o.poorLow&&C(o.low,s.poorColor,"Poor Low")),s.showDevelopingPoc&&this._drawDeveloping(e,t,o,"poc",s.developingPocColor),s.showDevelopingVa&&(this._drawDeveloping(e,t,o,"vah",s.developingVaColor),this._drawDeveloping(e,t,o,"val",s.developingVaColor));const A=this._result;if(s.showSessionOpen&&this._drawPriceMarker(e,t,"o",p-M/2-3*n,m(F(o.open,A.options)),b,s.sessionOpenColor),_&&f){const i=F(o.close,A.options),l=o.levels.find(e=>e.price===i);if(void 0!==l){const o=a?(l.periods[l.periods.length-1]??0)+1:l.count,r=Math.max(2,M/2),c=Math.max(r,Math.min(p+(o+.5)*M,t.plotWidth*n-r));this._drawPriceMarker(e,t,"#",c,m(i),b,s.lastPriceColor)}}const V=[];s.showSessionLabel&&void 0!==o.label&&V.push(o.label),s.showDayType&&V.push(W[o.dayType]??o.dayType),s.showOpenType&&V.push(Y[o.openType]??o.openType),V.length>0&&(e.font=(s.font-1)*n+"px ui-sans-serif, system-ui, sans-serif",e.textAlign="left",e.textBaseline="bottom",e.fillStyle=s.labelColor,e.fillText(V.join(" · "),p,m(o.high)-b)),e.restore()}_drawPriceMarker(e,t,o,i,l,s,n){const r=Math.max(5,Math.min(s,this._opts.font*t.dpr));e.save(),e.globalAlpha=this._opts.opacity,e.fillStyle=n,s<12*t.dpr?H(e,o,i,l,r,Math.max(3,r)):(e.font=`${r}px ui-monospace, SFMono-Regular, Menlo, monospace`,e.textAlign="center",e.textBaseline="middle",e.fillText(o,Math.round(i),l)),e.restore()}_drawVolume(e,t,o,i,l,s,n){const r=this._opts,a=t.dpr,c=r.volumeProfileWidth*a,h="right"===r.volumeProfileSide,u="compact"===r.blockDisplay,p=e=>!u||e+s/2>=0&&e-s/2<=t.plotHeight*a;e.globalAlpha=.55,e.fillStyle=r.volumeColor;for(const r of o.levels){if(!p(t.priceScale.priceToY(r.price)*a))continue;const o=c*(r.volume/n),u=t.priceScale.priceToY(r.price)*a-s/2;e.fillRect(h?l-o:i,u,o,Math.max(1,s-1))}if(e.globalAlpha=1,r.showVolumeValues&&s>=(u?5-1e-7:7*a)){e.font=`${Math.min(9*a,.9*s)}px ui-monospace, monospace`,e.textBaseline="middle",e.textAlign=h?"right":"left",e.fillStyle=r.countColor;for(const n of o.levels){const o=t.priceScale.priceToY(n.price)*a;if(!p(o))continue;const r=Math.round(n.volume).toString(),d=h?l-2*a:i+2*a;u&&s<12*a?H(e,r,d,o,Math.min(s,9*a),Math.max(0,c-4*a),h?"right":"left"):e.fillText(r,d,o)}}}_drawDeveloping(e,t,o,i,l){if(0===o.developing.length)return;const s=t.dpr;e.save(),e.strokeStyle=l,e.lineWidth=Math.max(1,Math.round(s)),e.beginPath();let n=!1;for(const l of o.developing){const o=t.dataLayer.timeToIndex(l.time);if(void 0===o)continue;const r=t.timeScale.indexToX(o)*s,a=Math.round(t.priceScale.priceToY(l[i])*s)+.5;n?e.lineTo(r,a):(e.moveTo(r,a),n=!0)}n&&e.stroke(),e.restore()}_drawNaked(e,t){const o=this._opts,i=t.dpr,l=z(this._result);if(0===l.length)return;e.save(),e.strokeStyle=o.nakedColor,e.lineWidth=Math.max(1,Math.round(i)),e.setLineDash([4*i,3*i]);const s=t.plotWidth*i;for(const o of l){const l=t.dataLayer.timeToIndex(o.time);if(void 0===l)continue;const n=Math.round(t.priceScale.priceToY(o.price)*i)+.5;e.beginPath(),e.moveTo(t.timeScale.indexToX(l)*i,n),e.lineTo(s,n),e.stroke()}e.setLineDash([]),e.restore()}}function U(t,o,i,l=1){const s=i*Math.max(1,Math.floor(l)),n=new Map;for(const t of o){const o=e(t.price,s);let i=n.get(o);void 0===i&&(i={price:o,bidVol:0,askVol:0},n.set(o,i)),"bid"===t.side?i.bidVol+=t.qty:i.askVol+=t.qty}const r=Array.from(n.values()).sort((e,t)=>t.price-e.price),a=r.reduce((e,t)=>e+(t.askVol-t.bidVol),0);return{time:t,cells:r,delta:a}}function B(e,t=3){const o=[];for(let i=0;i<e.length;i++){const l=e[i],s=e[i+1],n=e[i-1];s&&l.askVol>=t*Math.max(1,s.bidVol)&&o.push({price:l.price,side:"buy"}),n&&l.bidVol>=t*Math.max(1,n.askVol)&&o.push({price:l.price,side:"sell"})}return o}function q(e){const t=[];let o=0;for(const i of e)o+=i.delta,t.push(o);return t}function K(e,t=3,o=3){const i=B(e,t),l=new Map;for(const e of i)l.set(e.price,e.side);const s=[];let n=null;for(const t of e){const e=l.get(t.price);void 0===e||null!==n&&n.side!==e?(n&&n.prices.length>=o&&s.push({startPrice:n.prices[0],endPrice:n.prices[n.prices.length-1],side:n.side,count:n.prices.length}),n=void 0!==e?{side:e,prices:[t.price]}:null):(n=n??{side:e,prices:[]},n.prices.push(t.price))}return n&&n.prices.length>=o&&s.push({startPrice:n.prices[0],endPrice:n.prices[n.prices.length-1],side:n.side,count:n.prices.length}),s}class E{constructor(e){Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._opts=e}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"bottom"}autoscaleInfo(){return null}setData(e){this._opts=e,this._host?.requestUpdate()}draw(e,t){const o=this._opts;if(0===o.buckets.length)return;const i=t.dpr,l=o.buckets.reduce((e,t)=>Math.max(e,t.value),0)||1,s=o.width*i,n="left"===o.side?0:t.plotWidth*i,r=Math.max(2*i,t.plotHeight*i/Math.max(1,o.buckets.length)-i);e.save();for(const a of o.buckets){const c=t.priceScale.priceToY(a.price)*i,h=s*(a.value/l),u=a.price<=o.vah&&a.price>=o.val;e.fillStyle=a.price===o.poc?"#f0a020":u?o.vaColor:o.barColor;const p="left"===o.side?n:n-h;e.fillRect(p,c-r/2,h,r)}for(const[l,s]of[[o.poc,"#f0a020"],[o.vah,"#5a6b8c"],[o.val,"#5a6b8c"]]){const o=Math.round(t.priceScale.priceToY(l)*i)+.5;e.strokeStyle=s,e.lineWidth=Math.max(1,Math.round(i)),e.beginPath(),e.moveTo(0,o),e.lineTo(t.plotWidth*i,o),e.stroke()}e.restore()}}function X(e){const t=e.trim();if(t.startsWith("#")){const e=t.slice(1);if(3===e.length||4===e.length){const[t,o,i,l]=[...e].map(e=>parseInt(e+e,16));return[t,o,i].some(Number.isNaN)?null:{r:t,g:o,b:i,a:4===e.length?l/255:1}}if(6===e.length||8===e.length){const t=parseInt(e.slice(0,6),16);if(Number.isNaN(t))return null;const o=8===e.length?parseInt(e.slice(6,8),16)/255:1;return{r:t>>16&255,g:t>>8&255,b:255&t,a:Number.isNaN(o)?1:o}}return null}const o=/^rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)$/i.exec(t);return null===o?null:{r:Number(o[1]),g:Number(o[2]),b:Number(o[3]),a:void 0===o[4]?1:Number(o[4])}}function Z(e,t){const o=X(e);return null===o?e:`rgba(${o.r},${o.g},${o.b},${t})`}const G={widthFactor:.9,font:10,minTextHeight:11,textFade:4,displayMode:"bidask",imbalanceRatio:3,imbalanceThreshold:0,stackedImbalances:3,statsRows:["volume","delta","deltaPct","cvd"],statsRowHeight:15,showCandle:!0,showPoc:!0,pocColor:"#f0a020",radius:2};function J(e){const t=Math.abs(e),[o,i]=t>=1e9?["B",1e9]:t>=1e6?["M",1e6]:t>=1e3?["K",1e3]:["",1],l=e/i,s=Math.abs(l);return(s>=100||1===i?l.toFixed(0):s>=10?l.toFixed(1):l.toFixed(2)).replace(/\.0+$/,"").replace(/(\.\d*?)0+$/,"$1")+o}function Q(e,t,o){const i=X(e),l=X(t);if(null===i||null===l)return t;const s=o<0?0:o>1?1:o;return`rgb(${Math.round(i.r+(l.r-i.r)*s)},${Math.round(i.g+(l.g-i.g)*s)},${Math.round(i.b+(l.b-i.b)*s)})`}class ee{constructor(e={}){Object.defineProperty(this,"_bars",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_stats",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_cols",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_rowH",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_rc",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_plotH",{enumerable:!0,configurable:!0,writable:!0,value:0}),this._opts={...G,...e}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}autoscaleInfo(){let e=1/0,t=-1/0;for(const o of this._bars)0!==o.cells.length&&(t=Math.max(t,o.cells[0].price),e=Math.min(e,o.cells[o.cells.length-1].price));return Number.isFinite(e)?{min:e,max:t}:null}setBars(e){this._bars=e,this._recomputeStats(),this._host?.requestUpdate()}setOptions(e){this._opts={...this._opts,...e},this._host?.requestUpdate()}options(){return this._opts}stats(){return this._stats}_recomputeStats(){let e=0;this._stats=this._bars.map(t=>{let o=0,i=0,l=-1,s=t.cells.length>0?t.cells[0].price:0;for(const e of t.cells){const t=e.bidVol+e.askVol;o+=t,i+=1,t>l&&(l=t,s=e.price)}return e+=t.delta,{time:t.time,volume:o,delta:t.delta,deltaPct:o>0?t.delta/o*100:0,cvd:e,trades:i,poc:s}})}_rowHeight(e,t){let o=this._opts.tickSize??0;if(o<=0){let t=1/0;for(let o=1;o<e.length;o++){const i=Math.abs(e[o-1].price-e[o].price);i>0&&(t=Math.min(t,i))}o=Number.isFinite(t)?t:0}const i=e[0].price,l=o>0?Math.abs(t.priceScale.priceToY(i)-t.priceScale.priceToY(i+o))*t.dpr:0;return Math.max(l>1?l:16*t.dpr,6*t.dpr)}_columnWidth(e){const t=this._opts;return void 0!==t.cellWidth&&t.cellWidth>0?t.cellWidth*e.dpr:Math.max(24*e.dpr,e.timeScale.barSpacing*t.widthFactor*e.dpr)}draw(e,t){if(this._rc=t,0===this._bars.length)return;const o=this._opts,i=t.dpr,l=o.buyColor??t.theme.upColor,s=o.sellColor??t.theme.downColor,n=t.theme.background,r=t.timeScale.visibleRange(),a=this._columnWidth(t),c=t.plotHeight*i,h=o.statsRows.length*o.statsRowHeight*i;this._plotH=t.plotHeight,this._cols=[];const u=[];for(let e=0;e<this._bars.length;e++){const o=this._bars[e];if(0===o.cells.length)continue;const l=t.dataLayer.timeToIndex(o.time);void 0===l||l<r.from-1||l>r.to+1||u.push({bar:o,x:Math.round(t.timeScale.indexToX(l)*i),stats:this._stats[e]})}if(0===u.length)return;e.save(),e.textBaseline="middle";const p=c-h;for(const o of u)this._drawColumn(e,t,o,a,l,s,n,p);o.statsRows.length>0&&this._drawStats(e,t,u,a,l,s,n,c,h),e.restore()}_drawColumn(e,t,o,i,l,s,n,r){const a=this._opts,c=t.dpr,{bar:h,stats:u}=o,p=h.cells,d=this._rowHeight(p,t);this._rowH=d/c;const f=i/2,m=o.x-f;this._cols.push({time:h.time,x0:m/c,x1:(m+i)/c});let b=1;for(const e of p)b=Math.max(b,e.bidVol,e.askVol);if(a.showCandle){const o=t.priceScale.priceToY(p[0].price)*c-d/2,i=t.priceScale.priceToY(p[p.length-1].price)*c+d/2,n=u.delta>=0;e.fillStyle=Z(n?l:s,.5),e.fillRect(m-5*c,o,3*c,i-o)}const g=this._imbalances(p),v=Math.max(0,Math.min(1,(d/c-a.minTextHeight)/Math.max(1,a.textFade)+1));v>0&&(e.font=a.font*c+"px ui-monospace, SFMono-Regular, Menlo, monospace",e.textAlign="center");for(let h=0;h<p.length;h++){const M=p[h],_=t.priceScale.priceToY(M.price)*c,w=Math.round(_-d/2),y=Math.max(1,Math.round(d)-1);if(w+y<0||w>r)continue;const x=g.get(M.price);if("bidask"===a.displayMode)this._cell(e,m,w,f-c,y,M.bidVol,b,s,n,"sell"===x,v,c),this._cell(e,o.x+c,w,f-c,y,M.askVol,b,l,n,"buy"===x,v,c);else{const t="delta"===a.displayMode?M.askVol-M.bidVol:M.bidVol+M.askVol,o="delta"===a.displayMode?t>=0?l:s:Q(s,l,.5);this._cell(e,m,w,i-c,y,Math.abs(t),b,o,n,!1,v,c,t)}a.showPoc&&M.price===u.poc&&(e.fillStyle=a.pocColor,e.fillRect(m-2*c,w,2*c,y))}if(a.stackedImbalances>0)for(const i of this._runs(p,g,a.stackedImbalances)){const n=t.priceScale.priceToY(i.from)*c-d/2,r=t.priceScale.priceToY(i.to)*c+d/2,a="buy"===i.side?o.x+f+2*c:m-8*c;e.strokeStyle="buy"===i.side?l:s,e.lineWidth=Math.max(1,Math.round(1.5*c)),e.beginPath(),e.moveTo(a,n),e.lineTo(a,r),e.moveTo(a,n),e.lineTo(a+("buy"===i.side?3:-3)*c,n),e.moveTo(a,r),e.lineTo(a+("buy"===i.side?3:-3)*c,r),e.stroke()}}_cell(e,t,o,i,l,s,n,r,a,c,h,u,p){if(i<=0)return;const d=n>0?s/n:0;e.fillStyle=c?r:Q(a,r,.08+.62*Math.sqrt(d));const f=Math.min(this._opts.radius*u,l/2,i/2);e.beginPath(),e.roundRect(t,o,i,l,f),e.fill(),h<=0||(e.fillStyle=c?Z("#0d0f14",h):Z("#ffffff",.9*h),e.fillText(J(p??s),t+i/2,o+l/2))}_imbalances(e){const t=this._opts,o=new Map;for(let i=0;i<e.length;i++){const l=e[i],s=e[i+1],n=e[i-1];s&&l.askVol>=t.imbalanceThreshold&&l.askVol>=t.imbalanceRatio*Math.max(1,s.bidVol)&&o.set(l.price,"buy"),n&&l.bidVol>=t.imbalanceThreshold&&l.bidVol>=t.imbalanceRatio*Math.max(1,n.askVol)&&o.set(l.price,"sell")}return o}_runs(e,t,o){const i=[];let l=null;const s=()=>{l&&l.prices.length>=o&&i.push({from:l.prices[0],to:l.prices[l.prices.length-1],side:l.side})};for(const o of e){const e=t.get(o.price);void 0===e||null!==l&&l.side!==e?(s(),l=void 0!==e?{side:e,prices:[o.price]}:null):(l=l??{side:e,prices:[]},l.prices.push(o.price))}return s(),i}_drawStats(e,t,o,i,l,s,n,r,a){const c=this._opts,h=t.dpr,u=c.statsRowHeight*h,p=r-a,d=new Map;for(const e of c.statsRows){let t=0;for(const i of o)t=Math.max(t,Math.abs(this._metric(i.stats,e)));d.set(e,t||1)}e.save(),e.fillStyle=Z(n,.92),e.fillRect(0,p,t.plotWidth*h,a),e.font=(c.font-.5)*h+"px ui-monospace, SFMono-Regular, Menlo, monospace",e.textAlign="center",e.textBaseline="middle",c.statsRows.forEach((r,a)=>{const c=p+a*u;for(const a of o){const o=this._metric(a.stats,r),p=Math.abs(o)/d.get(r),f=a.x-i/2,m=i-h,b="volume"===r||"trades"===r?Q(n,t.theme.axisText,.1+.16*p):"cvd"===r?Q(n,"#4f8cff",.1+.5*p):Q(n,o>=0?l:s,.1+.55*p);e.fillStyle=b,e.beginPath(),e.roundRect(f,c+h,m,u-2*h,2*h),e.fill(),e.fillStyle=Z("#ffffff",.92),e.fillText(this._statText(o,r),a.x,c+u/2)}}),e.restore()}_metric(e,t){switch(t){case"volume":return e.volume;case"delta":return e.delta;case"deltaPct":return e.deltaPct;case"cvd":return e.cvd;default:return e.trades}}_statText(e,t){return"deltaPct"===t?`${e>=0?"+":""}${e.toFixed(1)}%`:"volume"===t||"trades"===t?J(e):(e=>(e>=0?"+":"")+J(e))(e)}hitTest(e,t){const o=this._cols.find(t=>e>=t.x0&&e<=t.x1);return void 0===o||t<0||t>this._plotH?null:{externalId:`footprint:${o.time}`,zOrder:"normal",distance:0,cursor:"crosshair"}}hoverAt(e,t,o){const i=o??this._rc;if(null===i)return null;const l=this._cols.find(t=>e>=t.x0&&e<=t.x1);if(void 0===l)return null;const s=this._bars.findIndex(e=>e.time===l.time);if(s<0)return null;const n=this._bars[s],r=i.priceScale.yToPrice(t);let a=null,c=1/0;for(const e of n.cells){const o=Math.abs(i.priceScale.priceToY(e.price)-t);o<c&&o<=Math.max(4,this._rowH)&&(c=o,a=e)}return{time:n.time,price:null===a?null:r,cell:a,stats:this._stats[s]}}}class te{constructor(e,t,o=1){Object.defineProperty(this,"_tf",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_tickSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_time",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_cells",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_delta",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_count",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_volume",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_open",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this._tf=e,this._tickSize=t*Math.max(1,Math.floor(o))}_snapshot(){const e=Array.from(this._cells.values()).sort((e,t)=>t.price-e.price);return{time:this._time,cells:e,delta:this._delta}}current(){return this._open?this._snapshot():null}_intervalKey(e){if("interval"!==this._tf.mode)return 0;const t=this._tf.anchorSec??0;return t+Math.floor((e-t)/this._tf.seconds)*this._tf.seconds}onTick(t){let o=!this._open;this._open&&(o="interval"===this._tf.mode?this._intervalKey(t.time)!==this._time:"ticks"===this._tf.mode?this._count>=this._tf.count:this._volume>=this._tf.perBar),o&&(this._cells=new Map,this._delta=0,this._count=0,this._volume=0,this._open=!0,this._time="interval"===this._tf.mode?this._intervalKey(t.time):t.time);const i=e(t.price,this._tickSize);let l=this._cells.get(i);return void 0===l&&(l={price:i,bidVol:0,askVol:0},this._cells.set(i,l)),"bid"===t.side?(l.bidVol+=t.qty,this._delta-=t.qty):(l.askVol+=t.qty,this._delta+=t.qty),this._count+=1,this._volume+=t.qty,{bar:this._snapshot(),isNew:o}}}const oe="profile";export{G as DEFAULT_FOOTPRINT_OPTIONS,M as DEFAULT_MARKET_PROFILE_OPTIONS,I as DEFAULT_MARKET_PROFILE_PRIMITIVE_OPTIONS,p as DEFAULT_VOLUME_PROFILE_FAMILY_OPTIONS,m as DEFAULT_VOLUME_PROFILE_PRIMITIVE_OPTIONS,ee as Footprint,te as FootprintAggregator,E as HorizontalProfile,$ as MarketProfile,oe as PROFILE_TIER,R as TPO_PERIOD_COLORS,v as TRADING_HOURS,b as VolumeProfile,e as bucketPrice,J as compactVol,U as computeFootprint,N as computeMarketProfile,g as computeTpo,o as computeVolumeProfile,f as computeVolumeProfileSessions,q as cumulativeDelta,B as diagonalImbalances,k as inWindow,z as nakedLevels,t as priceBuckets,F as rowOf,_ as rowTicksFor,K as stackedImbalances,w as tpoLetter};
2
2
  //# sourceMappingURL=openalgo-charts.profile.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"openalgo-charts.profile.mjs","sources":["../src/profile/profile-model.ts","../src/profile/volume-profile.ts","../src/feed/time.ts","../src/profile/volume-profile-family.ts","../src/profile/volume-profile-primitive.ts","../src/profile/tpo.ts","../src/profile/market-profile.ts","../src/profile/market-profile-primitive.ts","../src/profile/footprint.ts","../src/profile/profile-primitive.ts","../src/render/pill.ts","../src/profile/footprint-primitive.ts","../src/profile/footprint-aggregator.ts","../src/profile/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["bucketPrice","price","step","Math","round","priceBuckets","low","high","lo","hi","out","p","push","computeVolumeProfile","bars","tickSize","valueAreaPercent","vol","Map","bar","buckets","share","volume","length","b","set","get","Array","from","entries","map","sort","a","poc","vah","val","totalVolume","total","reduce","s","pocIdx","i","upper","lower","acc","target","IST_OFFSET_SECONDS","utcSecondsToIstParts","utcSeconds","d","Date","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hour","getUTCHours","minute","getUTCMinutes","second","getUTCSeconds","weekday","getUTCDay","DEFAULT_TIMEZONE","ZONE_CACHES","WEEKDAY_INDEX","Sun","Mon","Tue","Wed","Thu","Fri","Sat","resolveParts","zone","cache","undefined","format","Intl","DateTimeFormat","timeZone","hourCycle","Error","parts","lastSecond","Number","NaN","lastParts","zoneCache","part","formatToParts","type","value","dayIndex","floor","UTC","buildParts","size","clear","utcSecondsToZonedParts","zonedDayIndex","zoneOffsetSeconds","DEFAULT_VOLUME_PROFILE_FAMILY_OPTIONS","session","deltaFromBarDirection","timezone","sessionKey","mode","computeVolumeProfileSessions","options","o","tick","vaPct","min","max","groups","order","k","time","g","sessions","buyVolume","sellVolume","up","close","open","barBuy","barSell","n","vShare","buyShare","sellShare","buy","sell","levels","delta","x","y","startTime","endTime","DEFAULT_VOLUME_PROFILE_PRIMITIVE_OPTIONS","displayMode","side","width","opacity","barColor","buyColor","sellColor","showPoc","pocColor","showPocLabel","showValueArea","vahColor","valColor","showValueAreaLabels","highlightValueArea","valueAreaFillColor","valueAreaFillOpacity","valueAreaOpacityDim","labelSide","zOrder","VolumeProfile","constructor","result","opts","Object","defineProperty","this","_result","_opts","attached","host","_host","detached","autoscaleInfo","Infinity","isFinite","setData","requestUpdate","setOptions","patch","draw","ctx","rc","_drawSession","_segments","l","maxMetric","widthDev","len","abs","color","buyLen","dpr","i0","dataLayer","timeToIndex","i1","x0","timeScale","indexToX","x1","yOf","priceScale","priceToY","rowH","anchor","m","save","yTop","yBot","fx","globalAlpha","fillStyle","fillRect","inVa","alpha","top","h","cursor","seg","hline","label","strokeStyle","lineWidth","beginPath","moveTo","lineTo","stroke","font","textBaseline","textAlign","fillText","restore","computeTpo","periodBars","ibPeriods","period","count","ibHigh","ibLow","numPeriods","ceil","slice","pHigh","pLow","bkt","c","ib","TRADING_HOURS","startMinute","endMinute","name","india","asia","london","DEFAULT_MARKET_PROFILE_OPTIONS","rowTicks","blockMinutes","initialBalancePeriods","compositeSessions","tailEdges","rowTicksFor","rowSize","tpoLetter","String","fromCharCode","DAY_SECONDS","windowZone","w","partsIn","minuteOfDay","inWindow","windowOpenOn","dayOffset","civil","wall","first","zonedWallClockToUtcSeconds","dayIndexIn","pocAndValueArea","tailRun","classifyDay","ext","ibRange","range","down","findIndex","peak","minMid","ratio","classifyOpen","firstRange","pos","probedDown","probedUp","computeMarketProfile","baseTick","row","blockSec","merge","win","window","cal","bucketsOfBars","j","byPeriod","maxPeriod","index","letter","cells","periods","Set","add","periodDetail","values","ps","letters","join","va","developing","upto","q","periodIndex","singlePrints","buyingTail","sellingTail","bot","rangeExtension","volumePoc","maxVol","initialBalance","poorHigh","poorLow","dayType","openType","nakedLevels","kinds","kind","touched","rowOf","TPO_PERIOD_COLORS","DEFAULT_MARKET_PROFILE_PRIMITIVE_OPTIONS","blockDisplay","minLetterHeight","letterFade","letterWidth","colorMode","periodColors","vaColor","outsideVaOpacity","split","profileSpacing","pocThickness","fillValueArea","showInitialBalance","ibColor","showSinglePrints","singlePrintColor","showTails","buyTailColor","sellTailColor","showPoorHighLow","poorColor","showNakedLevels","nakedColor","showDevelopingPoc","developingPocColor","showDevelopingVa","developingVaColor","showTpoCounts","countColor","showSessionLabel","showDayType","showOpenType","labelColor","showVolumeProfile","volumeProfileWidth","volumeProfileSide","volumeColor","showVolumeValues","DAY_TYPE_TEXT","normal","trend","neutral","OPEN_TYPE_TEXT","drive","auction","MarketProfile","hitTest","box","_boxes","find","externalId","distance","hoverAt","_rc","level","best","_rowH","sessionIndex","isPoc","inValueArea","isSinglePrint","includes","_drawNaked","_letterAlpha","rowHpx","fade","_blockColor","periodIdx","spacing","lw","drawBlock","maxCount","_drawVolume","fontPx","blockH","heatMode","dim","heat","baseAlpha","slot","bx","cx","tail","t","yH","yL","xb","_drawDeveloping","bits","right","bw","toString","key","started","idx","setLineDash","xEnd","plotWidth","computeFootprint","trades","cell","bidVol","askVol","qty","diagonalImbalances","here","below","above","cumulativeDelta","stackedImbalances","minStack","imb","bySide","run","prices","startPrice","endPrice","HorizontalProfile","maxVal","stripW","baseX","plotHeight","parseColor","trim","startsWith","hex","r","parseInt","some","isNaN","exec","withAlpha","DEFAULT_FOOTPRINT_OPTIONS","widthFactor","minTextHeight","textFade","imbalanceRatio","imbalanceThreshold","statsRows","statsRowHeight","showCandle","radius","compactVol","v","suffix","div","toFixed","replace","mix","ca","cb","Footprint","_bars","setBars","_recomputeStats","stats","_stats","cvd","pocVol","deltaPct","_rowHeight","p0","rh","_columnWidth","cellWidth","barSpacing","theme","upColor","downColor","bg","background","visibleRange","plotH","statsH","_plotH","_cols","cols","to","cellBottom","col","_drawColumn","_drawStats","half","yHi","yLo","imbalanced","_imbalances","textAlpha","flag","_cell","_runs","hot","display","sqrt","roundRect","fill","flags","flush","_metric","forEach","strength","tint","axisText","_statText","signed","yToPrice","FootprintAggregator","tf","_tf","_tickSize","_snapshot","_cells","_time","_delta","current","_open","_intervalKey","anchorSec","seconds","onTick","startNew","_count","_volume","perBar","isNew","PROFILE_TIER"],"mappings":"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"}
1
+ {"version":3,"file":"openalgo-charts.profile.mjs","sources":["../src/profile/profile-model.ts","../src/profile/volume-profile.ts","../src/feed/time.ts","../src/profile/volume-profile-family.ts","../src/profile/volume-profile-primitive.ts","../src/profile/tpo.ts","../src/profile/market-profile.ts","../src/profile/compact-text.ts","../src/profile/market-profile-primitive.ts","../src/profile/footprint.ts","../src/profile/profile-primitive.ts","../src/render/pill.ts","../src/profile/footprint-primitive.ts","../src/profile/footprint-aggregator.ts","../src/profile/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["bucketPrice","price","step","Math","round","priceBuckets","low","high","lo","hi","out","p","push","computeVolumeProfile","bars","tickSize","valueAreaPercent","vol","Map","bar","buckets","share","volume","length","b","set","get","Array","from","entries","map","sort","a","poc","vah","val","totalVolume","total","reduce","s","pocIdx","i","upper","lower","acc","target","IST_OFFSET_SECONDS","utcSecondsToIstParts","utcSeconds","d","Date","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","hour","getUTCHours","minute","getUTCMinutes","second","getUTCSeconds","weekday","getUTCDay","DEFAULT_TIMEZONE","ZONE_CACHES","WEEKDAY_INDEX","Sun","Mon","Tue","Wed","Thu","Fri","Sat","resolveParts","zone","cache","undefined","format","Intl","DateTimeFormat","timeZone","hourCycle","Error","parts","lastSecond","Number","NaN","lastParts","zoneCache","part","formatToParts","type","value","dayIndex","floor","UTC","buildParts","size","clear","utcSecondsToZonedParts","zonedDayIndex","zoneOffsetSeconds","DEFAULT_VOLUME_PROFILE_FAMILY_OPTIONS","session","deltaFromBarDirection","timezone","sessionKey","mode","computeVolumeProfileSessions","options","o","tick","vaPct","min","max","groups","order","k","time","g","sessions","buyVolume","sellVolume","up","close","open","barBuy","barSell","n","vShare","buyShare","sellShare","buy","sell","levels","delta","x","y","startTime","endTime","DEFAULT_VOLUME_PROFILE_PRIMITIVE_OPTIONS","displayMode","side","width","opacity","barColor","buyColor","sellColor","showPoc","pocColor","showPocLabel","showValueArea","vahColor","valColor","showValueAreaLabels","highlightValueArea","valueAreaFillColor","valueAreaFillOpacity","valueAreaOpacityDim","labelSide","zOrder","VolumeProfile","constructor","result","opts","Object","defineProperty","this","_result","_opts","attached","host","_host","detached","autoscaleInfo","Infinity","isFinite","setData","requestUpdate","setOptions","patch","draw","ctx","rc","_drawSession","_segments","l","maxMetric","widthDev","len","abs","color","buyLen","dpr","i0","dataLayer","timeToIndex","i1","x0","timeScale","indexToX","x1","yOf","priceScale","priceToY","rowH","anchor","m","save","yTop","yBot","fx","globalAlpha","fillStyle","fillRect","inVa","alpha","top","h","cursor","seg","hline","label","strokeStyle","lineWidth","beginPath","moveTo","lineTo","stroke","font","textBaseline","textAlign","fillText","restore","computeTpo","periodBars","ibPeriods","period","count","ibHigh","ibLow","numPeriods","ceil","slice","pHigh","pLow","bkt","c","ib","TRADING_HOURS","startMinute","endMinute","name","india","asia","london","DEFAULT_MARKET_PROFILE_OPTIONS","rowTicks","blockMinutes","initialBalancePeriods","compositeSessions","tailEdges","rowTicksFor","rowSize","tpoLetter","String","fromCharCode","DAY_SECONDS","windowZone","w","partsIn","minuteOfDay","inWindow","windowOpenOn","dayOffset","civil","wall","first","zonedWallClockToUtcSeconds","dayIndexIn","pocAndValueArea","tailRun","classifyDay","ext","ibRange","range","down","findIndex","peak","minMid","ratio","classifyOpen","firstRange","pos","probedDown","probedUp","computeMarketProfile","baseTick","row","blockSec","merge","win","window","cal","bucketsOfBars","j","byPeriod","maxPeriod","index","letter","cells","periods","Set","add","periodDetail","values","ps","letters","join","va","developing","upto","q","periodIndex","singlePrints","buyingTail","sellingTail","bot","rangeExtension","volumePoc","maxVol","initialBalance","poorHigh","poorLow","dayType","openType","nakedLevels","kinds","kind","touched","rowOf","PATTERNS","GLYPHS","runs","bits","start","drawCompactText","text","maxHeight","maxWidth","align","units","scale","left","gx","gy","TPO_PERIOD_COLORS","DEFAULT_MARKET_PROFILE_PRIMITIVE_OPTIONS","blockDisplay","minLetterHeight","letterFade","letterWidth","colorMode","periodColors","vaColor","outsideVaOpacity","split","showSessionOpen","sessionOpenColor","showLastPrice","lastPriceColor","profileSpacing","pocThickness","fillValueArea","showInitialBalance","ibColor","showSinglePrints","singlePrintColor","showTails","buyTailColor","sellTailColor","showPoorHighLow","poorColor","showNakedLevels","nakedColor","showDevelopingPoc","developingPocColor","showDevelopingVa","developingVaColor","showTpoCounts","countColor","showSessionLabel","showDayType","showOpenType","labelColor","showVolumeProfile","volumeProfileWidth","volumeProfileSide","volumeColor","showVolumeValues","DAY_TYPE_TEXT","normal","trend","neutral","OPEN_TYPE_TEXT","drive","auction","MarketProfile","_boxes","_sessionSplits","isSessionSplit","sessionIndex","key","_sessionKey","setSessionSplit","delete","isInteger","profileSessionIdentity","hitTest","box","find","externalId","distance","hoverAt","_rc","level","best","_rowH","isPoc","inValueArea","isSinglePrint","includes","compact","rect","plotWidth","plotHeight","clip","_drawNaked","_letterAlpha","rowHpx","fade","_blockColor","periodIdx","spacing","visibleSession","smallText","textHeight","lw","lastPrice","drawBlock","maxCount","_drawVolume","fontPx","blockH","heatMode","dim","heat","baseAlpha","slot","bx","cx","tail","t","yH","yL","xb","_drawDeveloping","_drawPriceMarker","columns","half","height","right","visible","bw","toString","started","idx","setLineDash","xEnd","computeFootprint","trades","cell","bidVol","askVol","qty","diagonalImbalances","here","below","above","cumulativeDelta","stackedImbalances","minStack","imb","bySide","run","prices","startPrice","endPrice","HorizontalProfile","maxVal","stripW","baseX","parseColor","trim","startsWith","hex","r","parseInt","some","isNaN","exec","withAlpha","DEFAULT_FOOTPRINT_OPTIONS","widthFactor","minTextHeight","textFade","imbalanceRatio","imbalanceThreshold","statsRows","statsRowHeight","showCandle","radius","compactVol","v","suffix","div","toFixed","replace","mix","ca","cb","Footprint","_bars","setBars","_recomputeStats","stats","_stats","cvd","pocVol","deltaPct","_rowHeight","p0","rh","_columnWidth","cellWidth","barSpacing","theme","upColor","downColor","bg","background","visibleRange","plotH","statsH","_plotH","_cols","cols","to","cellBottom","col","_drawColumn","_drawStats","yHi","yLo","imbalanced","_imbalances","textAlpha","flag","_cell","_runs","hot","display","sqrt","roundRect","fill","flags","flush","_metric","forEach","strength","tint","axisText","_statText","signed","yToPrice","FootprintAggregator","tf","_tf","_tickSize","_snapshot","_cells","_time","_delta","current","_open","_intervalKey","anchorSec","seconds","onTick","startNew","_count","_volume","perBar","isNew","PROFILE_TIER"],"mappings":"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"}