openalgo-charts 1.0.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.
- package/LICENSE +201 -0
- package/README.md +80 -0
- package/dist/index.d.ts +1621 -0
- package/dist/openalgo-charts.mjs +2 -0
- package/dist/openalgo-charts.mjs.map +1 -0
- package/dist/openalgo-charts.profile.mjs +2 -0
- package/dist/openalgo-charts.profile.mjs.map +1 -0
- package/dist/openalgo-charts.standalone.js +2 -0
- package/dist/openalgo-charts.standalone.js.map +1 -0
- package/dist/openalgo-charts.trade.mjs +2 -0
- package/dist/openalgo-charts.trade.mjs.map +1 -0
- package/dist/openalgo-charts.transform.mjs +2 -0
- package/dist/openalgo-charts.transform.mjs.map +1 -0
- package/dist/profile/index.d.ts +558 -0
- package/dist/trade/index.d.ts +680 -0
- package/dist/transform/index.d.ts +178 -0
- package/package.json +71 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e="0.1.0";function t(){return e}const i={None:0,Cursor:1,Light:2,Full:3};class r{constructor(e=i.None){Object.defineProperty(this,"_globalLevel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_panes",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_timeScaleOps",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._globalLevel=e}get globalLevel(){return this._globalLevel}invalidateGlobal(e){e>this._globalLevel&&(this._globalLevel=e)}invalidatePane(e,t){var i,r;this._panes.set(e,(i=this._panes.get(e),r=t,void 0===i?{...r}:{level:Math.max(i.level,r.level),autoScale:i.autoScale||r.autoScale}))}paneInvalidation(e){return this._panes.get(e)}panes(){return this._panes}addTimeScaleOp(e){this._timeScaleOps.push(e)}timeScaleOps(){return this._timeScaleOps}isEmpty(){return this._globalLevel===i.None&&0===this._panes.size&&0===this._timeScaleOps.length}merge(e){this.invalidateGlobal(e._globalLevel);for(const[t,i]of e._panes)this.invalidatePane(t,i);e._timeScaleOps.length>0&&(this._timeScaleOps=this._timeScaleOps.concat(e._timeScaleOps))}}const n=()=>{};class o{constructor(e,t,i){if(Object.defineProperty(this,"_onFrame",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_schedule",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_cancel",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_handle",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._onFrame=e,t)this._schedule=t,this._cancel=i??n;else{const e="function"==typeof requestAnimationFrame?{schedule:e=>requestAnimationFrame(e),cancel:e=>cancelAnimationFrame(e)}:{schedule:e=>setTimeout(e,16),cancel:e=>clearTimeout(e)};this._schedule=e.schedule,this._cancel=e.cancel}}get scheduled(){return null!==this._handle}requestFrame(){null===this._handle&&(this._handle=this._schedule(()=>{this._handle=null,this._onFrame()}))}stop(){null!==this._handle&&(this._cancel(this._handle),this._handle=null)}}function a(e,t,i){return{width:Math.round(e*i),height:Math.round(t*i)}}function s(e,t){return Math.round(e*t)/t}class l{constructor(e,t){Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"ctx",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_mediaWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_mediaHeight",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_dpr",{enumerable:!0,configurable:!0,writable:!0,value:1}),this.element=e.createElement("canvas");const i=this.element.getContext("2d");if(null===i)throw new Error("openalgo-charts: 2D canvas context is not available");this.ctx=i;const r=this.element.style;r.position="absolute",r.top="0",r.left="0",r.width="100%",r.height="100%",r.zIndex=String(t)}get mediaWidth(){return this._mediaWidth}get mediaHeight(){return this._mediaHeight}get pixelRatio(){return this._dpr}resize(e,t,i){if(e===this._mediaWidth&&t===this._mediaHeight&&i===this._dpr)return;this._mediaWidth=e,this._mediaHeight=t,this._dpr=i;const r=a(e,t,i);this.element.width=r.width,this.element.height=r.height,this.element.style.width=`${e}px`,this.element.style.height=`${t}px`}clearBitmap(){this.ctx.setTransform(1,0,0,1,0,0),this.ctx.clearRect(0,0,this.element.width,this.element.height)}}function h(e,t,i){return e<t?t:e>i?i:e}function c(e,t,i){return e+(t-e)*i}function u(e,t){return t<=0?e:Math.round(e/t)*t}function d(e,t){if(e<=0)return 0;const i=Math.floor(Math.log10(e)),r=e/Math.pow(10,i);let n;return n=t?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10,n*Math.pow(10,i)}function p(e,t,i=6){if(!isFinite(e)||!isFinite(t)||t<=e)return[Number.isFinite(e)?e:0];const r=d(t-e,!1),n=d(r/Math.max(1,i-1),!0),o=Math.ceil(e/n)*n,a=Math.floor(t/n)*n,s=[],l=Math.round((a-o)/n)+1;for(let e=0;e<l&&e<1e3;e++){const t=o+e*n;s.push(Math.abs(t)<n/1e6?0:t)}return s}function f(e){return e<=0||!isFinite(e)?2:e>=1?0:Math.min(8,Math.ceil(-Math.log10(e)))}const b={marginTop:.1,marginBottom:.1,minMove:0,mode:"linear",inverted:!1};function _(e,t,i,r){if(!isFinite(e)||!isFinite(t))return{min:0,max:1};if(t<=e){const i=Math.abs(t)>0?.05*Math.abs(t):.5;return{min:e-i,max:t+i}}const n=t-e;return{min:e-n*r,max:t+n*i}}class m{constructor(e={}){Object.defineProperty(this,"_options",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_height",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_min",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_max",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_autoScale",{enumerable:!0,configurable:!0,writable:!0,value:!0}),this._options={...b,...e}}get options(){return this._options}setHeight(e){this._height=e}get height(){return this._height}setPriceRange(e){this._min=e.min,this._max=e.max}priceRange(){return{min:this._min,max:this._max}}get autoScale(){return this._autoScale}setAutoScale(e){this._autoScale=e}scaleAroundCenter(e){const t=(this._min+this._max)/2,i=(this._max-this._min)/2*e;this._min=t-i,this._max=t+i,this._autoScale=!1}panByPixels(e){if(this._height<=0||0===e)return;const t=this._t(this._min),i=this._t(this._max),r=i-t;if(!(r>0))return;const n=r*((this._options.inverted?-e:e)/this._height);this._min=this._tInv(t+n),this._max=this._tInv(i+n),this._autoScale=!1}autoscale(e,t){this.setPriceRange(_(e,t,this._options.marginTop,this._options.marginBottom))}_t(e){return"logarithmic"===this._options.mode?Math.log10(Math.max(1e-10,e)):e}_tInv(e){return"logarithmic"===this._options.mode?Math.pow(10,e):e}priceToY(e){const t=this._t(this._min),i=this._t(this._max)-t;if(i<=0)return this._height/2;const r=(this._t(e)-t)/i;return this._options.inverted?this._height*r:this._height*(1-r)}yToPrice(e){const t=this._t(this._min),i=this._t(this._max)-t,r=this._options.inverted?e/this._height:1-e/this._height;return this._tInv(t+r*i)}precision(){return this._options.minMove>0?f(this._options.minMove):f((this._max-this._min)/100)}snapToTick(e){const t=this._options.minMove;return t<=0?e:Math.round(e/t)*t}format(e){return e.toFixed(this.precision())}clampY(e){return h(e,0,this._height)}}const g={barSpacing:8,minBarSpacing:1,maxBarSpacing:80,rightOffset:4};class v{constructor(e={}){Object.defineProperty(this,"_barSpacing",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_rightOffset",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_minBarSpacing",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_maxBarSpacing",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_width",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_baseIndex",{enumerable:!0,configurable:!0,writable:!0,value:0});const t={...g,...e};this._barSpacing=t.barSpacing,this._rightOffset=t.rightOffset,this._minBarSpacing=t.minBarSpacing,this._maxBarSpacing=t.maxBarSpacing}setWidth(e){this._width=e}get width(){return this._width}get barSpacing(){return this._barSpacing}setBarSpacing(e){this._barSpacing=h(e,this._minBarSpacing,this._maxBarSpacing)}get rightOffset(){return this._rightOffset}setRightOffset(e){this._rightOffset=e}setBaseIndex(e){this._baseIndex=e}_rightEdgeIndex(){return this._baseIndex+this._rightOffset}indexToX(e){return this._width-(this._rightEdgeIndex()-e)*this._barSpacing}xToIndex(e){return this._rightEdgeIndex()-(this._width-e)/this._barSpacing}visibleRange(){const e=this._rightEdgeIndex();return{from:e-this._width/this._barSpacing,to:e}}scrollByPixels(e){this._rightOffset-=e/this._barSpacing}zoomAtX(e,t){const i=this.xToIndex(e),r=this._barSpacing;if(this.setBarSpacing(r*t),this._barSpacing===r)return;const n=i+(this._width-e)/this._barSpacing;this._rightOffset=n-this._baseIndex}fitContent(e){if(e<=0||this._width<=0)return;this._baseIndex=e-1,this._rightOffset=g.rightOffset;const t=this._width/(e+this._rightOffset);this.setBarSpacing(t)}}class y{constructor(){Object.defineProperty(this,"_series",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_sortedTimes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_indexByTime",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_nextId",{enumerable:!0,configurable:!0,writable:!0,value:1})}createSeries(){const e=this._nextId++;return this._series.set(e,{bars:[]}),e}removeSeries(e){this._series.delete(e),this._rebuild()}setSeriesData(e,t){const i=this._series.get(e);if(void 0===i)throw new Error(`openalgo-charts: unknown series ${e}`);i.bars=t.slice().sort((e,t)=>e.time-t.time),this._rebuild()}addBars(e,t){const i=this._series.get(e);if(void 0===i)throw new Error(`openalgo-charts: unknown series ${e}`);if(0===t.length)return;const r=new Map;for(const e of i.bars)r.set(e.time,e);for(const e of t)r.set(e.time,e);i.bars=Array.from(r.values()).sort((e,t)=>e.time-t.time),this._rebuild()}update(e,t){const i=this._series.get(e);if(void 0===i)throw new Error(`openalgo-charts: unknown series ${e}`);const r=i.bars,n=r[r.length-1];if(void 0===n||t.time>n.time)return r.push(t),this._appendTime(t.time),"append";if(t.time===n.time)return r[r.length-1]=t,"replace";const o=r.findIndex(e=>e.time===t.time);return o>=0?(r[o]=t,"replace"):(this.addBars(e,[t]),"insert")}_appendTime(e){this._indexByTime.has(e)||(this._indexByTime.set(e,this._sortedTimes.length),this._sortedTimes.push(e))}get length(){return this._sortedTimes.length}get baseIndex(){return this._sortedTimes.length-1}indexToTime(e){return this._sortedTimes[e]}timeToIndex(e){return this._indexByTime.get(e)}indexedBars(e){const t=this._series.get(e);if(void 0===t)return[];const i=[];for(const e of t.bars){const t=this._indexByTime.get(e.time);void 0!==t&&i.push({index:t,bar:e})}return i}visibleBars(e,t,i){const r=Math.max(0,Math.floor(t)),n=Math.min(this.baseIndex,Math.ceil(i)),o=[];for(const t of this.indexedBars(e))t.index>=r&&t.index<=n&&o.push(t);return o}_rebuild(){const e=new Set;for(const t of this._series.values())for(const i of t.bars)e.add(i.time);this._sortedTimes=Array.from(e).sort((e,t)=>e-t),this._indexByTime.clear();for(let e=0;e<this._sortedTimes.length;e++)this._indexByTime.set(this._sortedTimes[e],e)}}const w={upColor:"#26a69a",downColor:"#ef5350",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickUpColor:"#26a69a",wickDownColor:"#ef5350",borderVisible:!0,wickVisible:!0};function x(e,t){const i=Math.floor(e*t*.8);let r=Math.max(1,i);if(r>=2){r%2!=Math.max(1,Math.floor(t))%2&&(r-=1)}return Math.max(1,r)}function S(e,t,i,r,n,o=w){const a=x(r,n),s=Math.max(1,Math.floor(n));for(const{x:r,bar:l}of t){const t=l.close>=l.open,h=Math.round(r*n),c=Math.round(i(l.open)*n),u=Math.round(i(l.close)*n),d=Math.round(i(l.high)*n),p=Math.round(i(l.low)*n),f=o.widthScale?Math.max(.05,Math.min(1,o.widthScale(l))):1,b=1===f?a:Math.max(1,Math.round(a*f)),_=Math.floor(b/2);o.wickVisible&&(e.fillStyle=t?o.wickUpColor:o.wickDownColor,e.fillRect(h-Math.floor(s/2),d,s,Math.max(1,p-d)));const m=Math.min(c,u),g=Math.max(1,Math.abs(u-c)),v=t?o.upColor:o.downColor;o.hollow&&t?(e.strokeStyle=v,e.lineWidth=Math.max(1,s),e.strokeRect(h-_+.5,m+.5,b-1,g-1)):(e.fillStyle=v,e.fillRect(h-_,m,b,g),o.borderVisible&&b>=3&&!o.hollow&&(e.strokeStyle=t?o.borderUpColor:o.borderDownColor,e.lineWidth=1,e.strokeRect(h-_+.5,m+.5,b-1,g-1)))}}function P(e,t,i){const r=e.bar;return{cx:Math.round(e.x*i),yOpen:Math.round(t(r.open)*i),yClose:Math.round(t(r.close)*i),yHigh:Math.round(t(r.high)*i),yLow:Math.round(t(r.low)*i),up:r.close>=r.open}}function M(e,t,i,r,n,o,a=!1){const s=Math.max(1,Math.floor(x(r,n)/2)),l=Math.max(1,Math.floor(n));e.save();for(const r of t){const t=P(r,i,n);e.fillStyle=t.up?o.upColor??"#26a69a":o.downColor??"#ef5350",e.fillRect(t.cx-Math.floor(l/2),t.yHigh,l,Math.max(1,t.yLow-t.yHigh)),a||(e.fillRect(t.cx-s,t.yOpen,s,l),e.fillRect(t.cx,t.yClose,s,l))}e.restore()}const O=new WeakMap;function T(e,t,i,r){let n=O.get(e);void 0===n&&(n=new Map,O.set(e,n));const o=`${Math.round(t)}|${i}|${r}`;let a=n.get(o);return void 0===a&&(a=e.createLinearGradient(0,0,0,t),a.addColorStop(0,i),a.addColorStop(1,r),n.set(o,a)),a}function C(e,t,i=e=>e.close){return e.map(e=>({x:e.x,y:t(i(e.bar))}))}function j(e,t,i,r,n){const o=C(t,i),a=n.step?function(e){if(0===e.length)return[];const t=[{...e[0]}];for(let i=1;i<e.length;i++)t.push({x:e[i].x,y:e[i-1].y}),t.push({x:e[i].x,y:e[i].y});return t}(o):o;if(e.save(),e.strokeStyle=n.color??"#4f8cff",e.lineWidth=Math.max(1,Math.round((n.lineWidth??1.5)*r)),e.lineJoin="round",function(e,t,i){if(0===t.length)return;e.beginPath();let r=!1;for(const n of t)Number.isFinite(n.x)&&Number.isFinite(n.y)?r?e.lineTo(n.x*i,n.y*i):(e.moveTo(n.x*i,n.y*i),r=!0):r=!1;e.stroke()}(e,a,r),n.markers){const t=(n.markerRadius??2)*r;e.fillStyle=n.color??"#4f8cff";for(const i of o)Number.isFinite(i.x)&&Number.isFinite(i.y)&&(e.beginPath(),e.arc(i.x*r,i.y*r,t,0,2*Math.PI),e.fill())}e.restore()}const k={color:"#3a4666",base:0};function L(e,t,i={}){return{...w,upColor:e.upColor??t.upColor,downColor:e.downColor??t.downColor,borderUpColor:e.borderUpColor??t.upColor,borderDownColor:e.borderDownColor??t.downColor,wickUpColor:e.wickUpColor??t.wickUpColor,wickDownColor:e.wickDownColor??t.wickDownColor,borderVisible:e.borderVisible??w.borderVisible,wickVisible:e.wickVisible??w.wickVisible,...i}}const I=e=>({min:e.low,max:e.high}),B=e=>({min:e.close,max:e.close}),A=(e,t)=>{const i=t.base??0;return{min:Math.min(i,e.close),max:Math.max(i,e.close)}},D=new Map,W=new Set(["point-figure","kagi"]);function H(e,t){D.set(e,t)}function F(e){const t=D.get(e);if(void 0===t){if(W.has(e))throw new Error(`openalgo-charts: series type "${e}" needs the transform tier — import 'openalgo-charts/transform' first`);throw new Error(`openalgo-charts: unknown series type "${e}"`)}return t}function R(){return Array.from(D.keys())}const N=(e,t)=>({...e,upColor:e.upColor??t.upColor,downColor:e.downColor??t.downColor});function z(e,t,i=.5,r=1){const n=e*t;if(n<=0)return 1;const o=i*Math.max(1,r);return n>=o?1:Math.max(1,Math.ceil(o/n))}function E(e){const t=e[0];let i=t.high,r=t.low,n=t.volume??0,o=void 0!==t.volume;for(let t=1;t<e.length;t++){const a=e[t];a.high>i&&(i=a.high),a.low<r&&(r=a.low),void 0!==a.volume&&(n+=a.volume,o=!0)}const a={time:t.time,open:t.open,high:i,low:r,close:e[e.length-1].close};return o&&(a.volume=n),a}function q(e,t){if(t<=1)return e.slice();const i=[];for(let r=0;r<e.length;r+=t)i.push(E(e.slice(r,r+t)));return i}function $(e,t){if(t<=1)return e.map(e=>({x:e.x,bar:e.bar}));const i=[];for(let r=0;r<e.length;r+=t){const n=e.slice(r,r+t),o=n.reduce((e,t)=>e+t.x,0)/n.length;i.push({x:o,bar:E(n.map(e=>e.bar))})}return i}H("candlestick",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>S(e,t,i,r,n,L(o,a.theme)),extents:I}),H("hollow-candle",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>S(e,t,i,r,n,L(o,a.theme,{hollow:!0})),extents:I}),H("volume-candle",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>{const s=a.maxVolume;S(e,t,i,r,n,L(o,a.theme,{widthScale:e=>s>0?(e.volume??0)/s:1}))},extents:I}),H("bar",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>M(e,t,i,r,n,N(o,a.theme)),extents:I}),H("high-low",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>M(e,t,i,r,n,N(o,a.theme),!0),extents:I}),H("line",{defaultStyle:{lineWidth:1.5},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>j(e,t,i,n,{...o,color:o.color??a.theme.lineColor}),extents:B}),H("line-markers",{defaultStyle:{lineWidth:1.5,markers:!0},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>j(e,t,i,n,{...o,color:o.color??a.theme.lineColor,markers:!0}),extents:B}),H("step",{defaultStyle:{lineWidth:1.5,step:!0},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>j(e,t,i,n,{...o,color:o.color??a.theme.lineColor,step:!0}),extents:B}),H("area",{defaultStyle:{lineWidth:1.5},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>function(e,t,i,r,n,o){const a=C(t,i);if(0===a.length)return;const s=n*r;e.save(),e.beginPath(),e.moveTo(a[0].x*r,s);for(const t of a)e.lineTo(t.x*r,t.y*r);e.lineTo(a[a.length-1].x*r,s),e.closePath(),e.fillStyle=T(e,s,o.areaTopColor??"rgba(79,140,255,0.40)",o.areaBottomColor??"rgba(79,140,255,0.00)"),e.fill(),e.restore(),j(e,t,i,r,{color:o.color??"#4f8cff",lineWidth:o.lineWidth??1.5})}(e,t,i,n,a.plotHeight,{...o,color:o.color??a.theme.lineColor,areaTopColor:o.areaTopColor??a.theme.areaTopColor,areaBottomColor:o.areaBottomColor??a.theme.areaBottomColor}),extents:B}),H("hlc-area",{defaultStyle:{lineWidth:1.5},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>function(e,t,i,r,n){if(0===t.length)return;const o=C(t,i,e=>e.high),a=C(t,i,e=>e.low);e.save(),e.beginPath(),e.moveTo(o[0].x*r,o[0].y*r);for(const t of o)e.lineTo(t.x*r,t.y*r);for(let t=a.length-1;t>=0;t--)e.lineTo(a[t].x*r,a[t].y*r);e.closePath(),e.fillStyle=n.areaTopColor??"rgba(79,140,255,0.15)",e.fill(),e.restore(),j(e,t,i,r,{color:n.closeColor??"#4f8cff",lineWidth:n.lineWidth??1.5})}(e,t,i,n,{...o,closeColor:o.closeColor??a.theme.lineColor}),extents:I}),H("baseline",{defaultStyle:{baseValue:0,lineWidth:1.5},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>function(e,t,i,r,n){const o=i(n.baseValue??0)*r,a=C(t,i);if(0===a.length)return;const s=a[0].x*r,l=a[a.length-1].x*r,h=()=>{e.beginPath(),e.moveTo(s,o);for(const t of a)e.lineTo(t.x*r,t.y*r);e.lineTo(l,o),e.closePath()},c=n.areaTopColor??"rgba(38,166,154,0.20)",u=n.areaBottomColor??"rgba(239,83,80,0.20)",d=1e5;e.save(),e.beginPath(),e.rect(s,o-d,l-s,d),e.clip(),h(),e.fillStyle=T(e,o,c,"rgba(0,0,0,0)"),e.fill(),e.restore(),e.save(),e.beginPath(),e.rect(s,o,l-s,d),e.clip(),h(),e.fillStyle=u,e.fill(),e.restore(),e.save();for(let t=1;t<a.length;t++){const i=a[t-1],s=a[t],l=(i.y+s.y)/2<=o/r;e.strokeStyle=l?n.topColor??"#26a69a":n.bottomColor??"#ef5350",e.lineWidth=Math.max(1,Math.round((n.lineWidth??1.5)*r)),e.beginPath(),e.moveTo(i.x*r,i.y*r),e.lineTo(s.x*r,s.y*r),e.stroke()}e.restore()}(e,t,i,n,{...o,topColor:o.topColor??a.theme.baselineTopLine,bottomColor:o.bottomColor??a.theme.baselineBottomLine,areaTopColor:o.areaTopColor??a.theme.baselineTopFill,areaBottomColor:o.areaBottomColor??a.theme.baselineBottomFill}),extents:(e,t)=>{const i=t.baseValue??0;return{min:Math.min(i,e.close),max:Math.max(i,e.close)}}}),H("column",{defaultStyle:{base:0},isPriceSeries:!1,draw:(e,t,i,r,n,o,a)=>function(e,t,i,r,n,o){const a=x(r,n),s=Math.floor(a/2),l=Math.round(i(o.base??0)*n);e.save();for(const r of t){const t=P(r,i,n);e.fillStyle=t.up?o.upColor??"#26a69a":o.downColor??"#ef5350";const h=Math.min(l,t.yClose);e.fillRect(t.cx-s,h,a,Math.max(1,Math.abs(l-t.yClose)))}e.restore()}(e,t,i,r,n,N(o,a.theme)),extents:A}),H("histogram",{defaultStyle:{base:0,color:"#3a4666"},isPriceSeries:!1,draw:(e,t,i,r,n,o)=>{!function(e,t,i,r,n,o=k){const a=x(r,n),s=Math.floor(a/2),l=Math.round(i(o.base)*n);e.fillStyle=o.color;for(const{x:r,bar:o}of t){const t=Math.round(r*n),h=Math.round(i(o.close)*n),c=Math.min(l,h),u=Math.max(1,Math.abs(l-h));e.fillRect(t-s,c,a,u)}}(e,t,i,r,n,{color:o.color??"#3a4666",base:o.base??0})},extents:A});const U=19800;function Y(e){return Math.floor(e/1e3)}function V(e){const t=e.trim(),i=/^(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2})(?::(\d{2}))?)?/.exec(t);if(null===i)throw new Error(`openalgo-charts: unparseable IST time string "${e}"`);const r=Number(i[1]),n=Number(i[2]),o=Number(i[3]),a=void 0!==i[4]?Number(i[4]):0,s=void 0!==i[5]?Number(i[5]):0,l=void 0!==i[6]?Number(i[6]):0,h=Date.UTC(r,n-1,o,a,s,l);return Math.floor(h/1e3)-U}function G(e){const t=new Date(1e3*(e+U));return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),weekday:t.getUTCDay()}}const X=e=>e<10?`0${e}`:String(e);function K(e){const t=G(e);return`${X(t.hour)}:${X(t.minute)}`}function J(e){const t=G(e);return`${X(t.hour)}:${X(t.minute)}:${X(t.second)}`}function Q(e){const t=G(e);return`${t.year}-${X(t.month)}-${X(t.day)}`}const Z=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ee(e){const t=G(e);return`${X(t.day)} ${Z[t.month-1]}`}const te=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function ie(e,t){const i=G(e),r=G(t);return i.year!==r.year||i.month!==r.month||i.day!==r.day}const re={textColor:"#8b91a7",lineColor:"#2a3046",font:"11px system-ui, sans-serif"};function ne(e,t){return e.replace(/(\d+(?:\.\d+)?)px/,(e,i)=>Number(i)*t+"px")}function oe(e,t,i,r,n,o,a,s){e.save(),e.font=11*n+"px system-ui, sans-serif";const l=6*n,h=16*n,c=e.measureText(t).width;if(e.fillStyle=o,e.textBaseline="middle","right"===s)e.fillRect(i+1,r-h/2,c+2*l,h),e.fillStyle=a,e.textAlign="left",e.fillText(t,i+1+l,r);else{const n=c+2*l;e.fillRect(i-n/2,r,n,h),e.fillStyle=a,e.textAlign="center",e.fillText(t,i,r+h/2)}e.restore()}function ae(e){const t={top:2,normal:1,bottom:0};let i=null;for(const r of e)null!==r&&(null===i||r.distance<i.distance||r.distance===i.distance&&t[r.zOrder]>t[i.zOrder])&&(i=r);return i}class se{constructor(e){Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"base",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"top",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"priceScale",{enumerable:!0,configurable:!0,writable:!0,value:new m}),Object.defineProperty(this,"weight",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"_series",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_primitives",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_width",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_height",{enumerable:!0,configurable:!0,writable:!0,value:0}),this.element=e.createElement("div"),this.element.style.position="relative",this.element.style.width="100%",this.element.style.flex="1 1 auto",this.element.style.overflow="hidden",this.base=new l(e,0),this.top=new l(e,1),this.element.appendChild(this.base.element),this.element.appendChild(this.top.element)}addSeries(e){this._series.push(e)}series(){return this._series}addPrimitive(e,t){this._primitives.push(e),e.attached?.(t)}removePrimitive(e){const t=this._primitives.indexOf(e);return!(t<0)&&(this._primitives.splice(t,1),e.detached?.(),!0)}destroy(){for(const e of this._primitives)e.detached?.();this._primitives.length=0,this.element.remove()}_primitiveContext(e){const t=this._layout(e);return{timeScale:e.timeScale,priceScale:this.priceScale,dataLayer:e.dataLayer,plotWidth:t.plotWidth,plotHeight:t.plotHeight,priceAxisWidth:e.priceAxisWidth,dpr:e.dpr,theme:e.theme}}hitTestPrimitives(e,t,i){const r=this._primitiveContext(i);return ae(this._primitives.map(i=>i.hitTest?i.hitTest(e,t,r):null))}resize(e,t,i){this._width=e,this._height=t,this.base.resize(e,t,i),this.top.resize(e,t,i)}_layout(e){return{plotWidth:Math.max(0,this._width-e.priceAxisWidth),plotHeight:Math.max(0,this._height-(e.showTimeAxis?e.timeAxisHeight:0)),priceAxisWidth:e.priceAxisWidth,timeAxisHeight:e.showTimeAxis?e.timeAxisHeight:0}}autoscale(e){const t=this._layout(e);if(this.priceScale.setHeight(t.plotHeight),!this.priceScale.autoScale)return;const i=e.timeScale.visibleRange();let r=1/0,n=-1/0;for(const t of this._series){const o=F(t.type);for(const a of e.dataLayer.visibleBars(t.dataId,i.from,i.to)){const e=o.extents(a.bar,t.style);e.min<r&&(r=e.min),e.max>n&&(n=e.max)}}for(const e of this._primitives){const t=e.autoscaleInfo?.();t&&(t.min<r&&(r=t.min),t.max>n&&(n=t.max))}r<=n&&this.priceScale.autoscale(r,n)}paintBase(e){const t=this._layout(e),i=e.dpr,r=this.base.ctx;this.base.clearBitmap();const n={textColor:e.theme.axisText,lineColor:e.theme.axisLine,font:"11px system-ui, sans-serif"};if(r.fillStyle=e.theme.background,r.fillRect(0,0,Math.round(this._width*i),Math.round(this._height*i)),e.showVertGrid||e.showHorzGrid){const n=function(e,t,i){const r=Math.max(1,i.spacing),n=[];for(let t=r;t<e;t+=r)n.push(t);const o=[];for(let e=r;e<t;e+=r)o.push(e);return{verticals:n,horizontals:o}}(t.plotWidth,t.plotHeight,{spacing:60});!function(e,t,i,r,n,o){e.save(),e.strokeStyle=o.color,e.lineWidth=Math.max(1,Math.round(o.lineWidth*n)),e.beginPath();const a=Math.round(i*n),l=Math.round(r*n);for(const i of t.verticals){const t=Math.round(s(i,n)*n)+0;e.moveTo(t,0),e.lineTo(t,l)}for(const i of t.horizontals){const t=Math.round(s(i,n)*n)+0;e.moveTo(0,t),e.lineTo(a,t)}e.stroke(),e.restore()}(r,{verticals:e.showVertGrid?n.verticals:[],horizontals:e.showHorzGrid?n.horizontals:[]},t.plotWidth,t.plotHeight,i,{color:e.theme.grid,lineWidth:1})}const o=this._primitiveContext(e);for(const e of this._primitives)"bottom"===e.zOrder()&&e.draw(r,o);const a=e.timeScale.visibleRange(),l=e=>this.priceScale.priceToY(e);let h=null,c=!0;const u=e.conflate?z(e.timeScale.barSpacing,i,.5,e.conflationFactor):1;for(const n of this._series){const o=F(n.type);let s=e.dataLayer.visibleBars(n.dataId,a.from,a.to).map(t=>({x:e.timeScale.indexToX(t.index),bar:t.bar}));u>1&&(s=$(s,u));let d=0;for(const e of s)(e.bar.volume??0)>d&&(d=e.bar.volume??0);const p={plotHeight:t.plotHeight,maxVolume:d,theme:e.theme};if(o.draw(r,s,l,e.timeScale.barSpacing,i,n.style,p),o.isPriceSeries){const t=e.dataLayer.indexedBars(n.dataId),i=t[t.length-1];void 0!==i&&(h=i.bar.close,c=i.bar.close>=i.bar.open)}}for(const e of this._primitives)"normal"===e.zOrder()&&e.draw(r,o);!function(e,t,i,r,n=re){const o=t.priceRange(),a=p(o.min,o.max,6),s=Math.round(i.plotWidth*r);e.save(),e.strokeStyle=n.lineColor,e.fillStyle=n.textColor,e.font=ne(n.font,r),e.textAlign="left",e.textBaseline="middle",e.lineWidth=1,e.beginPath(),e.moveTo(s+.5,0),e.lineTo(s+.5,Math.round(i.plotHeight*r)),e.stroke();for(const n of a){const o=Math.round(t.priceToY(n)*r);o<0||o>i.plotHeight*r||e.fillText(t.format(n),s+6*r,o)}e.restore()}(r,this.priceScale,t,i,n),null!==h&&function(e,t,i,r,n,o,a=re,s={up:"#26a69a",down:"#ef5350",text:"#0d0e12"}){const l=Math.round(t.priceToY(i)*o);if(l<0||l>n.plotHeight*o)return;const h=r?s.up:s.down,c=Math.round(n.plotWidth*o);e.save(),e.strokeStyle=h,e.lineWidth=Math.max(1,Math.round(o)),e.setLineDash([3*o,3*o]),e.beginPath(),e.moveTo(0,l+.5),e.lineTo(c,l+.5),e.stroke(),e.setLineDash([]);const u=t.format(i);e.font=ne(a.font,o);const d=6*o,p=16*o,f=e.measureText(u).width;e.fillStyle=h,e.fillRect(c+1,l-p/2,f+2*d,p),e.fillStyle=s.text,e.textAlign="left",e.textBaseline="middle",e.fillText(u,c+1+d,l),e.restore()}(r,this.priceScale,h,c,t,i,n,{up:e.theme.lastPriceUp,down:e.theme.lastPriceDown,text:e.theme.lastPriceText}),e.showTimeAxis&&function(e,t,i,r,n,o=re){const a=t.visibleRange(),s=Math.max(0,Math.floor(a.from)),l=Math.min(i.baseIndex,Math.ceil(a.to));if(l<s)return;const h=Math.max(1,Math.round(80/Math.max(1,t.barSpacing))),c=Math.round(r.plotHeight*n);let u=Number.POSITIVE_INFINITY;{let e=i.indexToTime(s);for(let t=s+1;t<=l;t++){const r=i.indexToTime(t);if(void 0!==r&&void 0!==e){const t=r-e;t>0&&t<u&&(u=t)}void 0!==r&&(e=r)}}const d=u*h,p=Number.isFinite(d)&&d<60;let f;e.save(),e.fillStyle=o.textColor,e.strokeStyle=o.lineColor,e.font=ne(o.font,n),e.textAlign="center",e.textBaseline="top",e.lineWidth=1,e.beginPath(),e.moveTo(0,c+.5),e.lineTo(Math.round(r.plotWidth*n),c+.5),e.stroke();for(let o=s;o<=l;o+=h){const a=i.indexToTime(o);if(void 0===a)continue;const s=Math.round(t.indexToX(o)*n);if(s<0||s>r.plotWidth*n){f=a;continue}const l=void 0===f||ie(f,a)?ee(a):p?J(a):K(a);e.fillText(l,s,c+4*n),f=a}e.restore()}(r,e.timeScale,e.dataLayer,t,i,n)}paintTop(e,t){this.top.clearBitmap();const i=this._primitiveContext(t);for(const e of this._primitives)"top"===e.zOrder()&&e.draw(this.top.ctx,i);if(null===e)return;const r=this._layout(t),n=this.top.ctx,o=t.dpr;if(function(e,t,i,r,n,o,a){if(e.save(),e.strokeStyle=a,e.lineWidth=1,e.setLineDash([4*o,4*o]),t>=0&&t<=r){const i=Math.round(t*o)+.5;e.beginPath(),e.moveTo(i,0),e.lineTo(i,Math.round(n*o)),e.stroke()}if(null!==i&&i>=0&&i<=n){const t=Math.round(i*o)+.5;e.beginPath(),e.moveTo(0,t),e.lineTo(Math.round(r*o),t),e.stroke()}e.setLineDash([]),e.restore()}(n,e.x,e.yLocal,r.plotWidth,r.plotHeight,o,t.theme.crosshair),null!==e.yLocal){const i=this.priceScale.yToPrice(e.yLocal);oe(n,this.priceScale.format(i),r.plotWidth*o,e.yLocal*o,o,t.theme.crosshair,t.theme.lastPriceText,"right")}if(e.showTimeTag&&e.x>=0&&e.x<=r.plotWidth){const i=Math.round(t.timeScale.xToIndex(e.x)),a=t.dataLayer.indexToTime(i);void 0!==a&&oe(n,function(e){const t=G(e);let i=`${te[t.weekday]} ${X(t.day)} ${Z[t.month-1]} '${String(t.year).slice(-2)}`;return 0===t.hour&&0===t.minute&&0===t.second||(i+=` ${X(t.hour)}:${X(t.minute)}`,0!==t.second&&(i+=`:${X(t.second)}`)),i}(a),e.x*o,r.plotHeight*o,o,t.theme.crosshair,t.theme.lastPriceText,"bottom")}}yToPrice(e){return this.priceScale.yToPrice(e)}}const le={background:"#0d0e12",grid:"#161a26",axisText:"#8b91a7",axisLine:"#2a3046",crosshair:"#6b7280",upColor:"#26a69a",downColor:"#ef5350",wickUpColor:"#26a69a",wickDownColor:"#ef5350",lineColor:"#4f8cff",areaTopColor:"rgba(79,140,255,0.40)",areaBottomColor:"rgba(79,140,255,0.00)",baselineTopLine:"#26a69a",baselineTopFill:"rgba(38,166,154,0.20)",baselineBottomLine:"#ef5350",baselineBottomFill:"rgba(239,83,80,0.20)",lastPriceUp:"#26a69a",lastPriceDown:"#ef5350",lastPriceText:"#0d0e12",buy:"#26a69a",sell:"#ef5350",profit:"#26a69a",loss:"#ef5350"},he={background:"#ffffff",grid:"#eef1f6",axisText:"#5b6472",axisLine:"#d4dae3",crosshair:"#9aa3b2",upColor:"#089981",downColor:"#e0473e",wickUpColor:"#089981",wickDownColor:"#e0473e",lineColor:"#2962ff",areaTopColor:"rgba(41,98,255,0.30)",areaBottomColor:"rgba(41,98,255,0.00)",baselineTopLine:"#089981",baselineTopFill:"rgba(8,153,129,0.18)",baselineBottomLine:"#e0473e",baselineBottomFill:"rgba(224,71,62,0.18)",lastPriceUp:"#089981",lastPriceDown:"#e0473e",lastPriceText:"#ffffff",buy:"#089981",sell:"#e0473e",profit:"#089981",loss:"#e0473e"},ce=le;const ue={friction:.0055,minSpeed:.02,triggerSpeed:.08};class de{constructor(e,t={}){Object.defineProperty(this,"_v0",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_k",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_minSpeed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_duration",{enumerable:!0,configurable:!0,writable:!0,value:void 0});const i={...ue,...t};this._v0=e,this._k=i.friction,this._minSpeed=i.minSpeed;const r=Math.abs(this._v0)>0?this._minSpeed/Math.abs(this._v0):1;this._duration=r>=1?0:-Math.log(r)/this._k}static shouldAnimate(e,t={}){const i=t.triggerSpeed??ue.triggerSpeed;return Math.abs(e)>=i}distanceAt(e){const t=Math.min(Math.max(0,e),this._duration);return this._v0/this._k*(1-Math.exp(-this._k*t))}get durationMs(){return this._duration}finished(e){return e>=this._duration}}function pe(e,t){return{dist:Math.hypot(e.x-t.x,e.y-t.y),cx:(e.x+t.x)/2,cy:(e.y+t.y)/2}}class fe{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}get price(){return this._opts.price}setPrice(e){this._opts.price=e,this._host?.requestUpdate()}setLeftLabel(e){this._opts.leftLabel=e,this._host?.requestUpdate()}options(){return this._opts}zOrder(){return"normal"}autoscaleInfo(){return{min:this._opts.price,max:this._opts.price}}draw(e,t){const i=Math.round(t.priceScale.priceToY(this._opts.price)*t.dpr)+.5;if(i<0||i>t.plotHeight*t.dpr)return;const r=Math.round(t.plotWidth*t.dpr),n=Math.max(0,Math.min(1,this._opts.extentFromRight??1)),o=Math.round(t.plotWidth*(1-n)*t.dpr);e.save(),e.strokeStyle=this._opts.color,e.lineWidth=Math.max(1,Math.round(this._opts.lineWidth*t.dpr)),this._opts.dashed&&e.setLineDash([4*t.dpr,4*t.dpr]),e.beginPath(),e.moveTo(o,i),e.lineTo(r,i),e.stroke(),e.setLineDash([]),e.font=11*t.dpr+"px system-ui, sans-serif",e.textBaseline="middle";const a=6*t.dpr,s=16*t.dpr,l=this._opts.label??t.priceScale.format(this._opts.price),h=e.measureText(l).width;if(e.fillStyle=this._opts.color,e.fillRect(r+1,i-s/2,h+2*a,s),e.fillStyle="#0d0e12",e.textAlign="left",e.fillText(l,r+1+a,i),this._opts.leftLabel){const t=e.measureText(this._opts.leftLabel).width;e.fillStyle=this._opts.color,e.fillRect(o,i-s/2,t+2*a,s),e.fillStyle="#0d0e12",e.fillText(this._opts.leftLabel,o+a,i)}if(this._opts.closeButton){const n=14*t.dpr,o=r-n,a=i-n/2;e.fillStyle=this._opts.color,e.fillRect(o,a,n,n),e.strokeStyle="#0d0e12",e.lineWidth=Math.max(1,Math.round(1.5*t.dpr));const s=4*t.dpr;e.beginPath(),e.moveTo(o+s,a+s),e.lineTo(o+n-s,a+n-s),e.moveTo(o+n-s,a+s),e.lineTo(o+s,a+n-s),e.stroke()}e.restore()}hitTest(e,t,i){if(e<0||e>i.plotWidth)return null;const r=i.priceScale.priceToY(this._opts.price),n=Math.abs(t-r);return this._opts.closeButton&&e>=i.plotWidth-14&&n<=8?{externalId:`${this._opts.id}::close`,zOrder:"normal",distance:n,cursor:"pointer"}:n>4?null:{externalId:this._opts.id,zOrder:"normal",distance:n,cursor:this._opts.cursor}}}const be={tiny:6,small:9,medium:12,big:16};function _e(e){return be[e]}function me(e,t){return Math.max(4,Math.min(be[e],Math.floor(t)))}function ge(e,t,i,r,n,o){const a=n/2;switch(e.fillStyle=o,e.strokeStyle=o,e.beginPath(),t){case"arrowUp":case"triangleUp":e.moveTo(i,r-a),e.lineTo(i+a,r+a),e.lineTo(i-a,r+a),e.closePath(),e.fill();break;case"arrowDown":case"triangleDown":e.moveTo(i,r+a),e.lineTo(i+a,r-a),e.lineTo(i-a,r-a),e.closePath(),e.fill();break;case"circle":e.arc(i,r,a,0,2*Math.PI),e.fill();break;case"square":e.fillRect(i-a,r-a,n,n);break;case"diamond":e.moveTo(i,r-a),e.lineTo(i+a,r),e.lineTo(i,r+a),e.lineTo(i-a,r),e.closePath(),e.fill();break;case"flag":e.fillRect(i-1,r-a,Math.max(1,n/8),n),e.fillRect(i,r-a,a,.8*a)}}class ve{constructor(e){Object.defineProperty(this,"_seriesId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_markers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_lastPositions",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._seriesId=e}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}setMarkers(e){this._markers=e.slice().sort((e,t)=>e.time-t.time),this._host?.requestUpdate()}draw(e,t){if(this._lastPositions=[],0===this._markers.length)return;const i=new Map;for(const e of t.dataLayer.indexedBars(this._seriesId))i.set(e.bar.time,e.bar);const r=t.timeScale.visibleRange(),n=new Map;e.save();for(const o of this._markers){const a=t.dataLayer.timeToIndex(o.time);if(void 0===a||a<r.from-1||a>r.to+1)continue;const s=i.get(o.time),l=me(o.size,t.timeScale.barSpacing)*t.dpr,h=t.timeScale.indexToX(a)*t.dpr,c=n.get(o.time)??0,u=(l+4*t.dpr)*c;let d;if("atPrice"===o.position&&void 0!==o.price)d=t.priceScale.priceToY(o.price)*t.dpr;else if(void 0!==s&&"aboveBar"===o.position)d=t.priceScale.priceToY(s.high)*t.dpr-l-u;else if(void 0!==s&&"belowBar"===o.position)d=t.priceScale.priceToY(s.low)*t.dpr+l+u;else{if(void 0===s)continue;d=t.priceScale.priceToY((s.open+s.close)/2)*t.dpr}if(n.set(o.time,c+1),ge(e,o.shape,h,d,l,o.color),void 0!==o.text){e.fillStyle=o.color,e.font=Math.max(9,_e(o.size))*t.dpr+"px system-ui, sans-serif",e.textAlign="center",e.textBaseline="belowBar"===o.position?"top":"bottom";const i="belowBar"===o.position?d+l:d-l;e.fillText(o.text,h,i)}void 0!==o.id&&this._lastPositions.push({id:o.id,x:h/t.dpr,y:d/t.dpr})}e.restore()}hitTest(e,t){let i=null;for(const r of this._lastPositions){const n=Math.hypot(r.x-e,r.y-t);n<=8&&(null===i||n<i.distance)&&(i={externalId:r.id,zOrder:"normal",distance:n,cursor:"pointer"})}return i}}const ye={earnings:"#f0a020",dividend:"#26a69a",split:"#4f8cff",news:"#9aa0b4"};class we{constructor(){Object.defineProperty(this,"_events",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_positions",{enumerable:!0,configurable:!0,writable:!0,value:[]})}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}setEvents(e){this._events=e.slice().sort((e,t)=>e.time-t.time),this._host?.requestUpdate()}draw(e,t){if(this._positions=[],0===this._events.length)return;const i=t.timeScale.visibleRange(),r=8*t.dpr,n=t.plotHeight*t.dpr-r-4*t.dpr;e.save(),e.textAlign="center",e.textBaseline="middle",e.font=10*t.dpr+"px system-ui, sans-serif";for(const o of this._events){const a=t.dataLayer.timeToIndex(o.time);if(void 0===a||a<i.from-1||a>i.to+1)continue;const s=t.timeScale.indexToX(a)*t.dpr,l=o.color??ye[o.type]??"#9aa0b4";e.fillStyle=l,e.beginPath(),e.arc(s,n,r,0,2*Math.PI),e.fill(),e.fillStyle="#0d0e12",e.fillText(o.label.slice(0,2),s,n),void 0!==o.id&&this._positions.push({id:o.id,x:s/t.dpr,y:n/t.dpr,r:r/t.dpr})}e.restore()}hitTest(e,t){let i=null;for(const r of this._positions){const n=Math.hypot(r.x-e,r.y-t);n<=r.r&&(null===i||n<i.distance)&&(i={externalId:r.id,zOrder:"normal",distance:n,cursor:"pointer"})}return i}}function xe(){return"undefined"!=typeof window&&window.devicePixelRatio?window.devicePixelRatio:1}class Se{constructor(e,t={}){Object.defineProperty(this,"_container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_doc",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_pixelRatio",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_theme",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_panes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_loop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dataLayer",{enumerable:!0,configurable:!0,writable:!0,value:new y}),Object.defineProperty(this,"_timeScale",{enumerable:!0,configurable:!0,writable:!0,value:new v}),Object.defineProperty(this,"_priceAxisWidth",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_timeAxisHeight",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_pending",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_width",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_height",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_hasFitContent",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_crosshairMode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_now",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_conflate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_conflationFactor",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_gridVert",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_gridHorz",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"_cursorPane",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_cursor",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_dragging",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_dragStartX",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_dragStartY",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_lastDragY",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_pointers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_pinch",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_pinchPane",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_liveRegion",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_dragStartOffset",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_lastDragX",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_lastDragT",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_dragVelocity",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_kineticHandle",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_firstDataId",{enumerable:!0,configurable:!0,writable:!0,value:{value:null}}),Object.defineProperty(this,"_firstPaneIndex",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_historyLoader",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_loadingHistory",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_clickCb",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_crosshairCb",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_pointerMoved",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_downPane",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_downX",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_downLocalY",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_dragId",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_dragCb",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_dragEndCb",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_axisDrag",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_axisStartCoord",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_axisStartMin",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_axisStartMax",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_axisStartSpacing",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_onPointerDown",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this._stopKinetic();const t=this._localPoint(e);if(this._pointers.set(e.pointerId,{x:t.x,y:t.y,pane:t.pane}),this._container.setPointerCapture?.(e.pointerId),this._pointers.size>=2)return void this._beginPinch();this._downPane=t.pane,this._downX=t.x,this._downLocalY=t.localY;const i=Math.max(0,this._width-this._priceAxisWidth),r=t.x>=i,n=t.pane===this._panes.length-1&&t.localY>=t.paneHeight-this._timeAxisHeight;if(r){this._axisDrag="price",this._axisStartCoord=t.localY;const e=this._panes[t.pane].priceScale.priceRange();return this._axisStartMin=e.min,this._axisStartMax=e.max,void(this._dragging=!1)}if(n)return this._axisDrag="time",this._axisStartCoord=t.x,this._axisStartSpacing=this._timeScale.barSpacing,void(this._dragging=!1);const o=this._panes[t.pane]?.hitTestPrimitives(t.x,t.localY,this._renderContext(t.pane===this._panes.length-1));if(o&&"ns-resize"===o.cursor&&null!==this._dragCb)return this._dragId=o.externalId,this._dragging=!1,void(this._pointerMoved=!1);this._dragging=!0,this._pointerMoved=!1,this._dragStartX=t.x,this._dragStartY=t.y,this._lastDragY=t.y,this._dragStartOffset=this._timeScale.rightOffset,this._lastDragX=t.x,this._lastDragT=this._now(),this._dragVelocity=0}}),Object.defineProperty(this,"_onPointerMove",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=this._localPoint(e);if(this._pointers.has(e.pointerId)&&this._pointers.set(e.pointerId,{x:t.x,y:t.y,pane:t.pane}),null===this._pinch){if("price"===this._axisDrag){const e=t.localY-this._axisStartCoord,r=Math.exp(.005*e),n=(this._axisStartMin+this._axisStartMax)/2,o=(this._axisStartMax-this._axisStartMin)/2*r,a=this._panes[this._downPane].priceScale;return a.setPriceRange({min:n-o,max:n+o}),a.setAutoScale(!1),void this.invalidate(e=>e.invalidatePane(this._downPane,{level:i.Light,autoScale:!1}))}if("time"===this._axisDrag){const e=t.x-this._axisStartCoord;return this._timeScale.setBarSpacing(this._axisStartSpacing*Math.exp(.005*e)),void this.invalidate(e=>e.invalidateGlobal(i.Full))}if(null!==this._dragId){const e=this._panes[this._downPane].priceScale.yToPrice(t.localY);return void this._dragCb?.(this._dragId,e)}if(this._dragging){const e=t.x-this._dragStartX;(Math.abs(e)>3||Math.abs(t.y-this._dragStartY)>3)&&(this._pointerMoved=!0),this._timeScale.setRightOffset(this._dragStartOffset-e/this._timeScale.barSpacing),this._panes[this._downPane]?.priceScale.panByPixels(t.y-this._lastDragY),this._lastDragY=t.y;const r=this._now(),n=r-this._lastDragT;return n>0&&(this._dragVelocity=(t.x-this._lastDragX)/n),this._lastDragX=t.x,this._lastDragT=r,this._maybeLoadHistory(),void this.invalidate(e=>e.invalidateGlobal(i.Full))}this._updateCursor(t.pane,t.x,t.localY,t.y)}else this._updatePinch()}}),Object.defineProperty(this,"_onPointerUp",{enumerable:!0,configurable:!0,writable:!0,value:e=>{if(this._container.releasePointerCapture?.(e.pointerId),this._pointers.delete(e.pointerId),null===this._pinch)if(null===this._axisDrag){if(null!==this._dragId){const t=this._localPoint(e),i=this._panes[this._downPane].priceScale.yToPrice(t.localY);return this._dragEndCb?.(this._dragId,i),void(this._dragId=null)}if(this._dragging=!1,!this._pointerMoved&&null!==this._clickCb){const e=this._downPane===this._panes.length-1,t=this._panes[this._downPane]?.hitTestPrimitives(this._downX,this._downLocalY,this._renderContext(e));return void(t&&this._clickCb(t.externalId))}de.shouldAnimate(this._dragVelocity)&&this._startKinetic(this._dragVelocity)}else this._axisDrag=null;else this._pointers.size<2&&(this._pinch=null,this._dragging=!1)}}),Object.defineProperty(this,"_onPointerLeave",{enumerable:!0,configurable:!0,writable:!0,value:()=>{null!==this._cursor&&(this._cursor=null,this._cursorPane=null,this.invalidate(e=>e.invalidateGlobal(i.Cursor)),this._crosshairCb?.({time:null,index:null,price:null,bar:null,point:null}))}}),Object.defineProperty(this,"_onWheel",{enumerable:!0,configurable:!0,writable:!0,value:e=>{e.preventDefault();const t=this._localPoint(e),r=e.deltaY<0?1.1:1/1.1;this._timeScale.zoomAtX(t.x,r),this._maybeLoadHistory(),this.invalidate(e=>e.invalidateGlobal(i.Full))}}),Object.defineProperty(this,"_onDblClick",{enumerable:!0,configurable:!0,writable:!0,value:()=>this.resetScale()}),Object.defineProperty(this,"_onKeyDown",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=this._timeScale;let r=!0;switch(e.key){case"ArrowLeft":t.setRightOffset(t.rightOffset-2);break;case"ArrowRight":t.setRightOffset(t.rightOffset+2);break;case"ArrowUp":this._panes[0]?.priceScale.panByPixels(20);break;case"ArrowDown":this._panes[0]?.priceScale.panByPixels(-20);break;case"+":case"=":t.zoomAtX(this._width/2,1.1);break;case"-":case"_":t.zoomAtX(this._width/2,1/1.1);break;case"Home":case"0":this.resetScale();break;default:r=!1}r&&(e.preventDefault(),this._maybeLoadHistory(),this.invalidate(e=>e.invalidateGlobal(i.Full)),this._updateAccessibleSummary())}}),this._container=e,this._doc=t.document??e.ownerDocument,this._pixelRatio=t.pixelRatio??xe,this._theme=t.theme??ce,this._priceAxisWidth=t.priceAxisWidth??56,this._timeAxisHeight=t.timeAxisHeight??22,this._crosshairMode=t.crosshairMode??"normal",this._now=t.now??(()=>"undefined"!=typeof performance?performance.now():0),this._conflate=t.conflate??!1,this._conflationFactor=t.conflationFactor??1,this._gridVert=t.grid?.vertLines??!0,this._gridHorz=t.grid?.horzLines??!0;const r="function"==typeof getComputedStyle?getComputedStyle(e).position:e.style.position;r&&"static"!==r||(e.style.position="relative"),e.style.display="flex",e.style.flexDirection="column",e.style.background=this._theme.background,e.style.touchAction="none",e.getAttribute("role")||e.setAttribute("role","application"),e.setAttribute("aria-label",t.ariaLabel??"Interactive financial chart"),e.hasAttribute("tabindex")||(e.tabIndex=0);const n=this._doc.createElement("div");n.setAttribute("aria-live","polite");const a=n.style;a.position="absolute",a.width="1px",a.height="1px",a.overflow="hidden",a.clip="rect(0 0 0 0)",a.whiteSpace="nowrap",a.border="0",a.padding="0",a.margin="-1px",e.appendChild(n),this._liveRegion=n,this._loop=t.raf?new o(()=>this._onFrame(),t.raf.schedule,t.raf.cancel):new o(()=>this._onFrame()),this._addPane(),this._observeSize(),this._attachInput(),this.applySize(e.clientWidth,e.clientHeight)}setHistoryLoader(e){this._historyLoader=e}historyLoadComplete(){this._loadingHistory=!1}get dataLayer(){return this._dataLayer}get timeScale(){return this._timeScale}addSeries(e,t={}){const i=this._dataLayer.createSeries(),r=t.paneIndex??0;return this._ensurePane(r),null===this._firstDataId.value&&F(e).isPriceSeries&&(this._firstDataId.value=i,this._firstPaneIndex=r),this._panes[r].addSeries(function(e,t,i){return{dataId:e,type:t,style:{...F(t).defaultStyle,...i}}}(i,e,t.style)),{setData:e=>this._setData(i,e),prependData:e=>this._prependData(i,e),update:e=>this._updateBar(i,e),createMarkers:()=>{const e=new ve(i);return this._addPrimitive(r,e),e}}}addPriceLine(e,t=0){const i=new fe(e);return this._addPrimitive(t,i),i}addEventMarkers(e=0){const t=new we;return this._addPrimitive(e,t),t}subscribeClick(e){this._clickCb=e}subscribeCrosshairMove(e){this._crosshairCb=e}subscribeDrag(e,t){this._dragCb=e,this._dragEndCb=t??null}addPrimitive(e,t=0){this._addPrimitive(t,e)}priceToCoordinate(e,t=0){const i=this._panes[t];if(void 0===i)return null;return(this._paneLayout()[t]?.top??0)+i.priceScale.priceToY(e)}coordinateToPrice(e,t=0){const i=this._panes[t];if(void 0===i)return null;const r=this._paneLayout()[t]?.top??0;return i.priceScale.yToPrice(e-r)}setGridOptions(e){void 0!==e.vertLines&&(this._gridVert=e.vertLines),void 0!==e.horzLines&&(this._gridHorz=e.horzLines),this.invalidate(e=>e.invalidateGlobal(i.Full))}gridOptions(){return{vertLines:this._gridVert,horzLines:this._gridHorz}}takeScreenshot(){const e=this._pixelRatio(),t=this._doc.createElement("canvas");t.width=Math.max(1,Math.round(this._width*e)),t.height=Math.max(1,Math.round(this._height*e));const i=t.getContext("2d");if(null===i)return t;i.fillStyle=this._theme.background,i.fillRect(0,0,t.width,t.height);const r=this._paneLayout();for(let t=0;t<this._panes.length;t++){const n=Math.round((r[t]?.top??0)*e);i.drawImage(this._panes[t].base.element,0,n),i.drawImage(this._panes[t].top.element,0,n)}return t}_addPrimitive(e,t){this._ensurePane(e);const r={requestUpdate:()=>this.invalidate(t=>t.invalidatePane(e,{level:i.Light,autoScale:!1}))};this._panes[e].addPrimitive(t,r),this.invalidate(t=>t.invalidatePane(e,{level:i.Light,autoScale:!1}))}removePrimitive(e){for(let t=0;t<this._panes.length;t++)if(this._panes[t].removePrimitive(e))return void this.invalidate(e=>e.invalidatePane(t,{level:i.Light,autoScale:!1}))}tradeHost(e=0){return{addPrimitive:t=>this._addPrimitive(e,t),removePrimitive:e=>this.removePrimitive(e)}}_updateBar(e,t){const r=this._timeScale.rightOffset>=0,n=this._dataLayer.update(e,t);this._timeScale.setBaseIndex(this._dataLayer.baseIndex),"append"!==n||r||this._timeScale.setRightOffset(this._timeScale.rightOffset-1),this.invalidate(e=>e.invalidateGlobal(i.Full))}_ensurePane(e){let t=!1;for(;this._panes.length<=e;)this._addPane(0===this._panes.length?1:.32),t=!0;t&&this._relayout()}_setData(e,t){this._dataLayer.setSeriesData(e,t),this._timeScale.setBaseIndex(this._dataLayer.baseIndex),!this._hasFitContent&&this._dataLayer.length>0&&(this._timeScale.setWidth(Math.max(0,this._width-this._priceAxisWidth)),this._timeScale.fitContent(this._dataLayer.length),this._hasFitContent=!0),this.invalidate(e=>e.invalidateGlobal(i.Full)),this._updateAccessibleSummary()}_prependData(e,t){this._dataLayer.addBars(e,t),this._timeScale.setBaseIndex(this._dataLayer.baseIndex),this.invalidate(e=>e.invalidateGlobal(i.Full))}_addPane(e=1){const t=new se(this._doc);return t.weight=e,this._panes.push(t),this._container.appendChild(t.element),t}panes(){return this._panes}invalidate(e){null===this._pending&&(this._pending=new r),e(this._pending),this._loop.requestFrame()}applySize(e,t){e===this._width&&t===this._height||(this._width=e,this._height=t,this._relayout(),this.invalidate(e=>e.invalidateGlobal(i.Full)))}_relayout(){const e=this._pixelRatio(),t=this._weightTotal();for(const i of this._panes)i.element.style.flex=`${i.weight} 1 0`,i.resize(this._width,this._height*i.weight/t,e);this._timeScale.setWidth(Math.max(0,this._width-this._priceAxisWidth))}_weightTotal(){let e=0;for(const t of this._panes)e+=t.weight;return e<=0?1:e}_paneLayout(){const e=this._weightTotal(),t=[];let i=0;for(const r of this._panes){const n=this._height*r.weight/e;t.push({top:i,height:n}),i+=n}return t}_renderContext(e){return{timeScale:this._timeScale,dataLayer:this._dataLayer,dpr:this._pixelRatio(),priceAxisWidth:this._priceAxisWidth,timeAxisHeight:this._timeAxisHeight,showTimeAxis:e,conflate:this._conflate,conflationFactor:this._conflationFactor,theme:this._theme,showVertGrid:this._gridVert,showHorzGrid:this._gridHorz}}_observeSize(){"undefined"!=typeof ResizeObserver&&(this._resizeObserver=new ResizeObserver(e=>{const t=e[0];t&&this.applySize(t.contentRect.width,t.contentRect.height)}),this._resizeObserver.observe(this._container))}_onFrame(){const e=this._pending;if(this._pending=null,null===e||e.isEmpty())return;const t=e.globalLevel;for(let r=0;r<this._panes.length;r++){const n=this._panes[r],o=e.paneInvalidation(r),a=Math.max(t,o?.level??i.None),s=r===this._panes.length-1,l=this._renderContext(s);if((a>=i.Full||o?.autoScale)&&n.autoscale(l),a>=i.Light&&n.paintBase(l),a>=i.Cursor){const e=null===this._cursor?null:{x:this._cursor.x,yLocal:r===this._cursorPane?this._cursor.y:null,showTimeTag:s};n.paintTop(e,l)}}}_attachInput(){if("undefined"==typeof window)return;const e=this._container;e.addEventListener("pointerdown",this._onPointerDown),e.addEventListener("pointermove",this._onPointerMove),e.addEventListener("pointerup",this._onPointerUp),e.addEventListener("pointercancel",this._onPointerUp),e.addEventListener("pointerleave",this._onPointerLeave),e.addEventListener("wheel",this._onWheel,{passive:!1}),e.addEventListener("dblclick",this._onDblClick),e.addEventListener("keydown",this._onKeyDown)}_localPoint(e){const t=this._container.getBoundingClientRect(),i=e.clientX-t.left,r=e.clientY-t.top,n=this._paneLayout();let o=0;for(let e=0;e<n.length;e++)r>=n[e].top&&(o=e);const a=n[o]??{top:0,height:this._height};return{x:i,y:r,pane:o,localY:r-a.top,paneHeight:a.height}}resetScale(){this._dataLayer.length>0&&this._timeScale.fitContent(this._dataLayer.length);for(const e of this._panes)e.priceScale.setAutoScale(!0);this.invalidate(e=>e.invalidateGlobal(i.Full))}_beginPinch(){const e=[...this._pointers.values()];this._pinch=pe(e[0],e[1]),this._pinchPane=e[0].pane,this._dragging=!1,this._axisDrag=null,this._dragId=null,this._pointerMoved=!0}_updatePinch(){const e=[...this._pointers.values()];if(e.length<2||null===this._pinch)return;const t=pe(e[0],e[1]),r=function(e,t){return{factor:e.dist>0?t.dist/e.dist:1,dx:t.cx-e.cx,dy:t.cy-e.cy}}(this._pinch,t);1!==r.factor&&this._timeScale.zoomAtX(t.cx,r.factor),this._timeScale.setRightOffset(this._timeScale.rightOffset-r.dx/this._timeScale.barSpacing),this._panes[this._pinchPane]?.priceScale.panByPixels(r.dy),this._pinch=t,this._maybeLoadHistory(),this.invalidate(e=>e.invalidateGlobal(i.Full))}_updateAccessibleSummary(){if(null===this._liveRegion)return;const e=this._dataLayer.length;let t=`${e} bar${1===e?"":"s"}`;if(null!==this._firstDataId.value&&void 0!==this._panes[0]){const e=this._dataLayer.indexedBars(this._firstDataId.value),i=e[e.length-1];void 0!==i&&(t+=`, latest price ${this._panes[0].priceScale.format(i.bar.close)}`)}this._liveRegion.textContent=`Financial chart, ${t}`}_updateCursor(e,t,r,n=r){if(t>Math.max(0,this._width-this._priceAxisWidth))return void this._onPointerLeave();const o=this._panes[e];let a=r;const s=Math.round(this._timeScale.xToIndex(t));let l=null;if(null!==this._firstDataId.value){const t=this._dataLayer.visibleBars(this._firstDataId.value,s,s);if(t.length>0&&(l=t[0].bar,"magnet"===this._crosshairMode&&e===this._firstPaneIndex)){const e=function(e,t){const i=[t.open,t.high,t.low,t.close];let r=i[0],n=Math.abs(e-r);for(let t=1;t<i.length;t++){const o=Math.abs(e-i[t]);o<n&&(n=o,r=i[t])}return r}(o.yToPrice(r),l);a=o.priceScale.priceToY(e)}}if(this._cursorPane=e,this._cursor={x:t,y:a},this.invalidate(e=>e.invalidateGlobal(i.Cursor)),null!==this._crosshairCb){const e=this._dataLayer.indexToTime(s);this._crosshairCb({time:e??null,index:s,price:o.yToPrice(r),bar:l,point:{x:t,y:n}})}}_maybeLoadHistory(){if(null===this._historyLoader||this._loadingHistory)return;this._timeScale.visibleRange().from<10&&(this._loadingHistory=!0,this._historyLoader())}_startKinetic(e){const t=new de(e);if(t.durationMs<=0)return;const r=this._now();let n=0;const o=()=>{const e=this._now()-r,a=t.distanceAt(e),s=a-n;n=a,this._timeScale.setRightOffset(this._timeScale.rightOffset-s/this._timeScale.barSpacing),this._maybeLoadHistory(),this.invalidate(e=>e.invalidateGlobal(i.Full)),t.finished(e)?this._kineticHandle=null:this._kineticHandle=requestAnimationFrame(o)};this._kineticHandle=requestAnimationFrame(o)}_stopKinetic(){null!==this._kineticHandle&&(cancelAnimationFrame(this._kineticHandle),this._kineticHandle=null)}destroy(){if(this._loop.stop(),this._stopKinetic(),this._resizeObserver?.disconnect(),this._resizeObserver=null,"undefined"!=typeof window){const e=this._container;e.removeEventListener("pointerdown",this._onPointerDown),e.removeEventListener("pointermove",this._onPointerMove),e.removeEventListener("pointerup",this._onPointerUp),e.removeEventListener("pointercancel",this._onPointerUp),e.removeEventListener("pointerleave",this._onPointerLeave),e.removeEventListener("wheel",this._onWheel),e.removeEventListener("dblclick",this._onDblClick),e.removeEventListener("keydown",this._onKeyDown)}this._liveRegion?.remove(),this._liveRegion=null,this._pointers.clear();for(const e of this._panes)e.destroy();this._panes.length=0}}function Pe(e,t={}){return new Se(e,t)}const Me={intervalSec:60,volumeMode:"ltq-sum",lateTickPolicy:"foldIntoBar",sessionAnchorSec:0};class Oe{constructor(e={}){Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_current",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_cumAtBarStart",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_lastCum",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_hasCum",{enumerable:!0,configurable:!0,writable:!0,value:!1}),this._opts={...Me,...e}}seed(e,t){this._current={...e},void 0!==t&&(this._lastCum=t,this._cumAtBarStart=t-(e.volume??0),this._hasCum=!0)}current(){return null===this._current?null:{...this._current}}bucketStart(e){const t=this._opts.sessionAnchorSec,i=this._opts.intervalSec;return t+Math.floor((e-t)/i)*i}onTick(e){const t=this.bucketStart(e.time);if(null!==this._current&&t<this._current.time)return"dropOlderThanPrevBar"===this._opts.lateTickPolicy?null:(this._foldInto(this._current,e),{bar:{...this._current},isNew:!1});if(null===this._current||t>this._current.time){const i=this._volumeForNewBar(e),r={time:t,open:e.price,high:e.price,low:e.price,close:e.price,volume:i};return this._current=r,{bar:{...r},isNew:!0}}return this._foldInto(this._current,e),{bar:{...this._current},isNew:!1}}_foldInto(e,t){t.price>e.high&&(e.high=t.price),t.price<e.low&&(e.low=t.price),e.close=t.price,e.volume=this._volumeForSameBar(e,t)}_volumeForNewBar(e){if("ltq-sum"===this._opts.volumeMode)return e.ltq??0;const t=e.cumDayVolume??0;return this._hasCum?t<this._lastCum?this._cumAtBarStart=0:this._cumAtBarStart=this._lastCum:this._cumAtBarStart=t,this._lastCum=t,this._hasCum=!0,Math.max(0,t-this._cumAtBarStart)}_volumeForSameBar(e,t){if("ltq-sum"===this._opts.volumeMode)return(e.volume??0)+(t.ltq??0);const i=t.cumDayVolume??0;return this._lastCum=i,Math.max(0,i-this._cumAtBarStart)}}function Te(e,t,i,r,n,o){const a=n-t-i,s=o-t-r;switch(e){case"top-left":return{x:t,y:t,w:i,h:r};case"top-right":return{x:a,y:t,w:i,h:r};case"bottom-left":return{x:t,y:s,w:i,h:r};case"center":return{x:(n-i)/2,y:(o-r)/2,w:i,h:r};default:return{x:a,y:s,w:i,h:r}}}class Ce{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}),Object.defineProperty(this,"_img",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_ready",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_tintCanvas",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_tintKey",{enumerable:!0,configurable:!0,writable:!0,value:""}),this._opts={position:e.position??"bottom-right",margin:e.margin??12,height:e.height??28,opacity:e.opacity??.7,zOrder:e.zOrder??"top",src:e.src,image:e.image,tint:e.tint},e.image&&(this._img=e.image,this._ready=!0)}attached(e){if(this._host=e,!this._ready&&this._opts.src&&"undefined"!=typeof Image){const e=new Image;e.onload=()=>{this._img=e,this._ready=!0,this._host?.requestUpdate()},e.decoding="async",e.src=this._opts.src}}detached(){this._host=null}zOrder(){return this._opts.zOrder}autoscaleInfo(){return null}setOptions(e){this._opts={...this._opts,...e},this._tintCanvas=null,e.image?(this._img=e.image,this._ready=!0):void 0!==e.src&&(this._ready=!1,this._img=null,this.attached(this._host)),this._host?.requestUpdate()}draw(e,t){if(!this._ready||null===this._img)return;const i=this._opts,r=this._img.naturalWidth??this._img.width,n=this._img.naturalHeight??this._img.height;if(!r||!n)return;const o=i.height,a=o*(r/n),s=Te(i.position,i.margin,a,o,t.plotWidth,t.plotHeight),l=t.dpr,h=Math.round(s.x*l),c=Math.round(s.y*l),u=Math.round(a*l),d=Math.round(o*l);e.save(),e.globalAlpha=Math.max(0,Math.min(1,i.opacity));const p=i.tint?this._tinted(e,u,d,i.tint):this._img;i.tint&&p?e.drawImage(p,h,c):e.drawImage(this._img,h,c,u,d),e.restore()}_tinted(e,t,i,r){const n=`${t}x${i}:${r}`;if(this._tintCanvas&&this._tintKey===n)return this._tintCanvas;const o=e.canvas.ownerDocument;let a=null;if(o&&"function"==typeof o.createElement&&(a=o.createElement("canvas")),!a)return null;a.width=t,a.height=i;const s=a.getContext("2d");return s&&null!==this._img?(s.clearRect(0,0,t,i),s.drawImage(this._img,0,0,t,i),s.globalCompositeOperation="source-in",s.fillStyle=r,s.fillRect(0,0,t,i),this._tintCanvas=a,this._tintKey=n,a):null}}function je(e,t){if(t<=0)throw new Error("openalgo-charts: EMA period must be > 0");const i=[];if(0===e.length)return i;const r=2/(t+1);let n=e[0];i.push(n);for(let t=1;t<e.length;t++)n=e[t]*r+n*(1-r),i.push(n);return i}function ke(e,t){const i=je(e.map(e=>e.close),t);return e.map((e,t)=>({time:e.time,open:i[t],high:i[t],low:i[t],close:i[t]}))}function Le(e,t=14){if(t<=0)throw new Error("openalgo-charts: RSI period must be > 0");const i=e.length,r=new Array(i).fill(NaN);if(i<=t)return r;let n=0,o=0;for(let i=1;i<=t;i++){const t=e[i]-e[i-1];t>=0?n+=t:o-=t}let a=n/t,s=o/t;r[t]=0===s?100:100-100/(1+a/s);for(let n=t+1;n<i;n++){const i=e[n]-e[n-1];a=(a*(t-1)+(i>0?i:0))/t,s=(s*(t-1)+(i<0?-i:0))/t,r[n]=0===s?100:100-100/(1+a/s)}return r}function Ie(e,t=14){const i=Le(e.map(e=>e.close),t);return e.map((e,t)=>({time:e.time,open:i[t],high:i[t],low:i[t],close:i[t]}))}function Be(e,t,i){const r=e.length,n=new Array(r);if(0===r)return n;n[0]=e[0]-t[0];for(let o=1;o<r;o++){const r=e[o]-t[o],a=Math.abs(e[o]-i[o-1]),s=Math.abs(t[o]-i[o-1]);n[o]=Math.max(r,a,s)}return n}function Ae(e,t,i,r=14){if(r<=0)throw new Error("openalgo-charts: ATR period must be > 0");const n=Be(e,t,i),o=n.length,a=new Array(o).fill(NaN);if(o<r)return a;let s=0;for(let e=0;e<r;e++)s+=n[e];let l=s/r;a[r-1]=l;for(let e=r;e<o;e++)l=(l*(r-1)+n[e])/r,a[e]=l;return a}function De(e,t=10,i=3){const r=e.length,n=e.map(()=>({value:NaN,direction:1})),o=e.map(e=>e.high),a=e.map(e=>e.low),s=e.map(e=>e.close),l=Ae(o,a,s,t);let h=NaN,c=NaN,u=NaN,d=!1;for(let e=0;e<r;e++){if(!Number.isFinite(l[e]))continue;const t=(o[e]+a[e])/2,r=t+i*l[e],p=t-i*l[e],f=d?r<h||s[e-1]>h?r:h:r,b=d?p>c||s[e-1]<c?p:c:p;let _,m;d&&u!==h?s[e]>=b?(_=b,m=-1):(_=f,m=1):s[e]<=f?(_=f,m=1):(_=b,m=-1),n[e]={value:_,direction:m},h=f,c=b,u=_,d=!0}return n}function We(e,t=10,i=3){const r=De(e,t,i),n=(e,t)=>({time:e,open:t,high:t,low:t,close:t}),o=[],a=[];for(let t=0;t<e.length;t++){const i=r[t],s=Number.isFinite(i.value);o.push(n(e[t].time,s&&-1===i.direction?i.value:NaN)),a.push(n(e[t].time,s&&1===i.direction?i.value:NaN))}return{up:o,down:a}}function He(e){return!("open"in e)&&!("value"in e)}function Fe(e){if("number"==typeof e)return e>1e12?Y(e):Math.floor(e);const t=Number(e);return""===e.trim()||Number.isNaN(t)||/[-T :]/.test(e.trim())?V(e):t>1e12?Y(t):Math.floor(t)}function Re(e){const t=e.data??[],i=[];for(const e of t){const t=e.timestamp??e.time;void 0!==t&&i.push({time:Fe(t),open:e.open,high:e.high,low:e.low,close:e.close,volume:e.volume})}return i.sort((e,t)=>e.time-t.time)}class Ne{constructor(e){Object.defineProperty(this,"_config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fetch",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._config=e;const t=e.fetchImpl??("undefined"!=typeof fetch?fetch.bind(globalThis):void 0);if(void 0===t)throw new Error("openalgo-charts: no fetch available; pass config.fetchImpl");this._fetch=t}async getBars(e){if(void 0===e.from||void 0===e.to)throw new Error("openalgo-charts: getBars requires `from` and `to` (UTC seconds) — OpenAlgo history needs a date range");const t=await this._fetch(`${this._config.baseUrl}/api/v1/history`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apikey:this._config.apiKey,symbol:e.symbol,exchange:e.exchange,interval:e.interval,start_date:Q(e.from),end_date:Q(e.to)})});if(!t.ok)throw new Error(`openalgo-charts: history request failed (${t.status})`);return Re(await t.json())}}const ze={LTP:1,Quote:2,Depth:3};function Ee(e,t,i,r){const n={action:"subscribe",symbol:t,exchange:i,mode:ze[e]};return"Depth"===e&&void 0!==r&&(n.depth_level=r),JSON.stringify(n)}function qe(e,t,i){return JSON.stringify({action:"unsubscribe",symbol:t,exchange:i,mode:ze[e]})}function $e(e){if("number"==typeof e)return e>1e12?Y(e):Math.floor(e);if("string"==typeof e&&""!==e.trim()){const t=Date.parse(e);if(!Number.isNaN(t))return Math.floor(t/1e3)}return 0}function Ue(e){if("object"!=typeof e||null===e)return null;const t=e,i=t.data??t,r=i.symbol??"",n=i.exchange??"";if(i.depth&&(i.depth.buy||i.depth.sell)){const e=(i.depth.buy??[]).map(e=>({price:e.price,qty:e.quantity}));return{kind:"depth",symbol:r,exchange:n,depth:{bids:e,asks:(i.depth.sell??[]).map(e=>({price:e.price,qty:e.quantity})),ltp:i.ltp??i.last_price??e[0]?.price??0}}}const o=i.ltp??i.last_price;return"number"==typeof o?{kind:"ltp",event:{symbol:r,exchange:n,ltp:o,ltq:i.last_trade_quantity??i.ltq,volume:i.volume,timeSec:$e(i.timestamp)}}:null}class Ye{constructor(e){Object.defineProperty(this,"_config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_factory",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_sock",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_open",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"_queue",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_ltpCbs",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_depthCbs",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_stateCbs",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_controlCbs",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),this._config=e;const t=e.socketFactory??(e=>new WebSocket(e));this._factory=t}connect(){if(null!==this._sock)return;this._emitState("connecting");const e=this._factory(this._config.url);e.onmessage=e=>this._dispatch(e.data),e.onopen=()=>this._onOpen(),e.onclose=()=>{this._open=!1,this._emitState("closed")},e.onerror=()=>this._emitState("error"),this._sock=e,1===e.readyState&&this._onOpen()}onState(e){return this._stateCbs.add(e),()=>this._stateCbs.delete(e)}onControl(e){return this._controlCbs.add(e),()=>this._controlCbs.delete(e)}_emitState(e){for(const t of this._stateCbs)t(e)}_onOpen(){var e;this._open||(this._open=!0,this._emitState("open"),this._sock?.send((e=this._config.apiKey,JSON.stringify({action:"authenticate",api_key:e}))),this._flush())}_send(e){null!==this._sock&&this._open?this._sock.send(e):this._queue.push(e)}_flush(){if(null!==this._sock){for(const e of this._queue)this._sock.send(e);this._queue.length=0}}onLtp(e){return this._ltpCbs.add(e),()=>this._ltpCbs.delete(e)}onDepth(e){return this._depthCbs.add(e),()=>this._depthCbs.delete(e)}subscribe(e,t,i,r){this._send(Ee(e,t,i,r))}unsubscribe(e,t,i){this._send(qe(e,t,i))}close(){this._sock?.close(),this._sock=null,this._open=!1,this._queue.length=0}_dispatch(e){let t;try{t=JSON.parse(e)}catch{t=e}if(function(e){return"ping"===e||"object"==typeof e&&null!==e&&"ping"===e.type}(t))return void this._sock?.send(JSON.stringify({action:"pong"}));const i=Ue(t);if(null!==i)if("ltp"===i.kind)for(const e of this._ltpCbs)e(i.event);else for(const e of this._depthCbs)e(i.symbol,i.exchange,i.depth);else if("object"==typeof t&&null!==t)for(const e of this._controlCbs)e(t)}}class Ve{constructor(e){Object.defineProperty(this,"_config",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_fetch",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_strategy",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_defaultProduct",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ctx",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this._config=e,this._strategy=e.strategy??"openalgo-charts",this._defaultProduct=e.defaultProduct??"MIS";const t=e.fetchImpl??("undefined"!=typeof fetch?fetch.bind(globalThis):void 0);if(void 0===t)throw new Error("openalgo-charts: no fetch available; pass config.fetchImpl");this._fetch=t}async _post(e,t){const i=await this._fetch(`${this._config.baseUrl}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apikey:this._config.apiKey,...t})});if(!i.ok)throw new Error(`openalgo-charts: ${e} failed (${i.status})`);return i.json()}async place(e){const t={symbol:e.symbol,exchange:e.exchange??"NSE",action:e.side,pricetype:e.type,product:e.product??this._defaultProduct,quantity:e.qty},i=await this._post("/api/v1/placeorder",{strategy:this._strategy,symbol:t.symbol,action:t.action,exchange:t.exchange,pricetype:t.pricetype,product:t.product,quantity:e.qty,price:e.price??0,trigger_price:e.triggerPrice??0,disclosed_quantity:0}),r=i.orderid??i.order_id;if(void 0===r)throw new Error("openalgo-charts: placeorder returned no orderid");return this._ctx.set(r,t),{orderId:r}}async modify(e,t){const i=this._ctx.get(e);if(void 0===i)throw new Error(`openalgo-charts: cannot modify ${e} — unknown order context (place it or load the order book first)`);void 0!==t.qty&&(i.quantity=t.qty),await this._post("/api/v1/modifyorder",{orderid:e,strategy:this._strategy,symbol:i.symbol,action:i.action,exchange:i.exchange,pricetype:i.pricetype,product:i.product,quantity:i.quantity,price:t.price??0,trigger_price:t.triggerPrice??0,disclosed_quantity:0})}async cancel(e){await this._post("/api/v1/cancelorder",{orderid:e,strategy:this._strategy})}async getOrders(){const e=await this._post("/api/v1/orderbook",{}),t=Array.isArray(e.data)?e.data:e.data?.orders??[],i=t.map(Ke);for(const e of t)e.orderid&&this._ctx.set(e.orderid,{symbol:e.symbol??"",exchange:e.exchange??"NSE",action:e.action??"BUY",pricetype:e.pricetype??"LIMIT",product:e.product??this._defaultProduct,quantity:Ge(e.quantity)});return i}async getPositions(){return((await this._post("/api/v1/positionbook",{})).data??[]).map(Je)}}function Ge(e){if("number"==typeof e)return e;if("string"==typeof e&&""!==e.trim()){const t=Number(e);return Number.isNaN(t)?0:t}return 0}const Xe={open:"working",pending:"pending",trigger_pending:"working",complete:"filled",cancelled:"cancelled",rejected:"rejected"};function Ke(e){return{id:e.orderid??"",symbol:e.symbol??"",side:"SELL"===e.action?"SELL":"BUY",type:e.pricetype??"LIMIT",qty:Ge(e.quantity),filledQty:Ge(e.filled_quantity),price:Ge(e.price),triggerPrice:void 0!==e.trigger_price&&Ge(e.trigger_price)>0?Ge(e.trigger_price):void 0,status:Xe[(e.order_status??"").toLowerCase()]??"working"}}function Je(e){return{symbol:e.symbol??"",netQty:Ge(e.quantity),avgPrice:Ge(e.average_price)}}function Qe(e){const t=/^(\d+)\s*([smhdw])$/i.exec(e.trim());if(null===t)return 60;const i=Number(t[1]),r=t[2].toLowerCase();return i*("s"===r?1:"m"===r?60:"h"===r?3600:"d"===r?86400:604800)}class Ze{constructor(e){Object.defineProperty(this,"_rest",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ws",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_volumeMode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this._rest=new Ne(e),this._ws=new Ye({url:e.wsUrl,apiKey:e.apiKey}),this._volumeMode=e.volumeMode??"ltq-sum",this._ws.connect()}getBars(e){return this._rest.getBars(e)}subscribeBars(e,t){const i=new Oe({intervalSec:Qe(e.interval),volumeMode:this._volumeMode}),r=this._ws.onLtp(r=>{if(r.symbol!==e.symbol)return;const n=i.onTick({time:r.timeSec,price:r.ltp,ltq:r.ltq});null!==n&&t(n.bar)});return this._ws.subscribe("LTP",e.symbol,e.exchange),()=>{r(),this._ws.unsubscribe("LTP",e.symbol,e.exchange)}}subscribeDepth(e,t){const i=this._ws.onDepth((i,r,n)=>{i===e.symbol&&t(n)});return this._ws.subscribe("Depth",e.symbol,e.exchange),()=>{i(),this._ws.unsubscribe("Depth",e.symbol,e.exchange)}}close(){this._ws.close()}}class et{constructor(e=60){Object.defineProperty(this,"intervalSec",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.intervalSec=e}async getBars(e){return tt(e.from??17e8,500,this.intervalSec)}subscribeBars(e,t){return()=>{}}}function tt(e,t,i){const r=[];let n=100,o=2654435769;const a=()=>(o^=o<<13,o>>>=0,o^=o>>17,o^=o<<5,o>>>=0,o/4294967295);for(let o=0;o<t;o++){const t=2*(a()-.5),s=n,l=Math.max(1,s+t),h=Math.max(s,l)+a(),c=Math.min(s,l)-a();r.push({time:e+o*i,open:s,high:h,low:c,close:l,volume:Math.round(1e3+9e3*a())}),n=l}return r}function it(e,t){if("interval"===e.mode){const i=e.anchorSec??0;return i+Math.floor((t-i)/e.seconds)*e.seconds}return 0}class rt{constructor(e){Object.defineProperty(this,"_tf",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_cur",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_count",{enumerable:!0,configurable:!0,writable:!0,value:0}),this._tf=e}current(){return null===this._cur?null:{...this._cur}}onTick(e){const t=null===this._cur;let i=t;if(t||null===this._cur||(i="interval"===this._tf.mode?it(this._tf,e.time)!==this._cur.time:"ticks"===this._tf.mode?this._count>=this._tf.count:(this._cur.volume??0)>=this._tf.perBar),i){const t="interval"===this._tf.mode?it(this._tf,e.time):e.time;return this._cur={time:t,open:e.price,high:e.price,low:e.price,close:e.price,volume:e.qty},this._count=1,{bar:{...this._cur},isNew:!0}}const r=this._cur;return e.price>r.high&&(r.high=e.price),e.price<r.low&&(r.low=e.price),r.close=e.price,r.volume=(r.volume??0)+e.qty,this._count+=1,{bar:{...r},isNew:!1}}}export{Oe as CandleBuilder,Se as Chart,Me as DEFAULT_CANDLE_BUILDER_OPTIONS,w as DEFAULT_CANDLE_STYLE,k as DEFAULT_HISTOGRAM_STYLE,b as DEFAULT_PRICE_SCALE_OPTIONS,ce as DEFAULT_THEME,g as DEFAULT_TIME_SCALE_OPTIONS,we as EventMarkers,et as FakeDataFeed,U as IST_OFFSET_SECONDS,i as InvalidationLevel,Ce as LogoWatermark,Ne as OpenAlgoDataFeed,Ze as OpenAlgoLiveDataFeed,Ve as OpenAlgoTradeFeed,Ye as OpenAlgoWsFeed,se as Pane,fe as PriceLine,m as PriceScale,ve as SeriesMarkers,rt as TickBarAggregator,v as TimeScale,e as VERSION,Ae as atr,_ as autoscaleRange,ae as bestHit,a as bitmapSize,h as clamp,q as conflateBars,$ as conflateItems,z as conflationGroupSize,Pe as createChart,le as darkTheme,ge as drawShape,me as effectiveMarkerPx,je as ema,ke as emaSeries,Y as epochMsToUtcSeconds,ee as formatIstDate,K as formatIstTime,J as formatIstTimeSeconds,Ee as formatSubscribe,qe as formatUnsubscribe,tt as generateBars,F as getChartType,Qe as intervalToSeconds,ie as isNewIstDay,He as isWhitespace,V as istStringToUtcSeconds,c as lerp,he as lightTheme,Re as mapHistoryResponse,Ke as mapOrder,Je as mapPosition,_e as markerSizePx,E as mergeBars,p as niceTicks,x as optimalBarWidth,Ue as parseMessage,f as precisionForStep,H as registerChartType,R as registeredChartTypes,u as roundToTick,Fe as rowTimeToUtcSeconds,Le as rsi,Ie as rsiSeries,s as snapToDevicePixel,De as supertrend,We as supertrendSeries,Be as trueRange,Q as utcSecondsToIstDateString,G as utcSecondsToIstParts,t as version,T as verticalGradient,Te as watermarkRect};
|
|
2
|
+
//# sourceMappingURL=openalgo-charts.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openalgo-charts.mjs","sources":["../src/version.ts","../src/core/invalidate-mask.ts","../src/core/render-loop.ts","../src/core/canvas.ts","../src/helpers/math.ts","../src/scale/ticks.ts","../src/scale/price-scale.ts","../src/scale/time-scale.ts","../src/model/data-layer.ts","../src/render/candles.ts","../src/render/bars.ts","../src/render/gradient.ts","../src/render/line.ts","../src/render/histogram.ts","../src/model/chart-type-registry.ts","../src/model/conflation.ts","../src/feed/time.ts","../src/render/axis.ts","../src/render/crosshair.ts","../src/primitives/primitive.ts","../src/core/pane.ts","../src/render/grid.ts","../src/theme.ts","../src/input/kinetic.ts","../src/input/touch.ts","../src/primitives/price-line.ts","../src/primitives/markers.ts","../src/primitives/event-markers.ts","../src/core/chart.ts","../src/model/series.ts","../src/input/crosshair.ts","../src/feed/candle-builder.ts","../src/primitives/watermark.ts","../src/indicators/ema.ts","../src/indicators/rsi.ts","../src/indicators/atr.ts","../src/indicators/supertrend.ts","../src/model/bar.ts","../src/feed/openalgo-rest.ts","../src/feed/openalgo-ws.ts","../src/feed/openalgo-trade.ts","../src/feed/openalgo-live.ts","../src/feed/fake-feed.ts","../src/feed/tick-aggregator.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["VERSION","version","InvalidationLevel","None","Cursor","Light","Full","InvalidateMask","constructor","globalLevel","Object","defineProperty","this","value","Map","_globalLevel","invalidateGlobal","level","invalidatePane","paneIndex","invalidation","prev","next","_panes","set","get","undefined","Math","max","autoScale","paneInvalidation","panes","addTimeScaleOp","op","_timeScaleOps","push","timeScaleOps","isEmpty","size","length","merge","other","index","inv","concat","noopCancel","RenderLoop","onFrame","schedule","cancel","_onFrame","_schedule","_cancel","def","requestAnimationFrame","cb","h","cancelAnimationFrame","setTimeout","clearTimeout","scheduled","_handle","requestFrame","stop","bitmapSize","mediaWidth","mediaHeight","dpr","width","round","height","snapToDevicePixel","mediaCoord","CanvasLayer","doc","zIndex","element","createElement","ctx","getContext","Error","s","style","position","top","left","String","_mediaWidth","_mediaHeight","pixelRatio","_dpr","resize","bmp","clearBitmap","setTransform","clearRect","clamp","min","lerp","a","b","t","roundToTick","step","niceNum","x","exp","floor","log10","f","pow","nf","niceTicks","maxTicks","isFinite","Number","range","start","ceil","end","ticks","count","i","v","abs","precisionForStep","DEFAULT_PRICE_SCALE_OPTIONS","marginTop","marginBottom","minMove","mode","inverted","autoscaleRange","low","high","pad","span","PriceScale","options","_options","setHeight","_height","setPriceRange","_min","_max","priceRange","_autoScale","setAutoScale","on","scaleAroundCenter","factor","centre","half","panByPixels","dy","lo","_t","hi","delta","_tInv","autoscale","c","priceToY","price","r","yToPrice","y","precision","snapToTick","format","toFixed","clampY","DEFAULT_TIME_SCALE_OPTIONS","barSpacing","minBarSpacing","maxBarSpacing","rightOffset","TimeScale","o","_barSpacing","_rightOffset","_minBarSpacing","_maxBarSpacing","setWidth","_width","setBarSpacing","setRightOffset","setBaseIndex","_baseIndex","_rightEdgeIndex","indexToX","xToIndex","visibleRange","to","from","scrollByPixels","dx","zoomAtX","focusX","focusIndex","before","rightEdge","fitContent","barCount","usable","DataLayer","createSeries","id","_nextId","_series","bars","removeSeries","delete","_rebuild","setSeriesData","entry","slice","sort","time","addBars","byTime","Array","values","update","bar","last","_appendTime","findIndex","_indexByTime","has","_sortedTimes","baseIndex","indexToTime","timeToIndex","indexedBars","out","visibleBars","fromIndex","toIndex","ib","times","Set","add","clear","DEFAULT_CANDLE_STYLE","upColor","downColor","borderUpColor","borderDownColor","wickUpColor","wickDownColor","borderVisible","wickVisible","optimalBarWidth","raw","w","drawCandles","items","bodyW","wickW","up","close","open","cx","yOpen","yClose","yHigh","yLow","scale","widthScale","halfW","fillStyle","fillRect","bodyH","color","hollow","strokeStyle","lineWidth","strokeRect","barGeometry","item","toY","drawBars","highLowOnly","tick","lw","save","g","restore","perCtx","WeakMap","verticalGradient","heightPx","topColor","bottomColor","m","key","createLinearGradient","addColorStop","valuePoints","map","it","drawLine","base","pts","stepPoints","lineJoin","beginPath","drawing","p","lineTo","moveTo","stroke","strokePolyline","markers","markerRadius","arc","PI","fill","DEFAULT_HISTOGRAM_STYLE","candleStyle","theme","extra","hiLo","closeOnly","fromBase","registry","TRANSFORM_TIER_TYPES","registerChartType","type","getChartType","e","registeredChartTypes","keys","ud","conflationGroupSize","minPx","widthPx","threshold","mergeBars","group","first","volume","hasVolume","merged","conflateBars","groupSize","conflateItems","reduce","defaultStyle","isPriceSeries","draw","bs","rc","extents","maxVolume","_bs","lineColor","plotHeight","baseY","closePath","areaTopColor","areaBottomColor","drawArea","highs","lows","closeColor","drawHlcArea","baseValue","minX","maxX","buildArea","topFill","botFill","BIG","rect","clip","above","drawBaseline","baselineTopLine","baselineBottomLine","baselineTopFill","baselineBottomFill","drawColumns","valueToY","drawHistogram","IST_OFFSET_SECONDS","epochMsToUtcSeconds","ms","istStringToUtcSeconds","input","trim","dt","exec","year","month","day","hour","sec","asUtcMs","Date","UTC","utcSecondsToIstParts","utcSeconds","d","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","minute","getUTCMinutes","second","getUTCSeconds","weekday","getUTCDay","pad2","n","formatIstTime","formatIstTimeSeconds","utcSecondsToIstDateString","MONTHS","formatIstDate","WEEKDAYS","isNewIstDay","prevUtcSeconds","DEFAULT_AXIS_STYLE","textColor","font","scaleFont","replace","_","px","drawCrosshairTag","text","cy","bg","fg","anchor","padX","tw","measureText","textBaseline","textAlign","fillText","bw","bestHit","hits","order","normal","bottom","best","distance","zOrder","Pane","flex","overflow","appendChild","addSeries","record","series","addPrimitive","primitive","host","_primitives","attached","removePrimitive","indexOf","splice","detached","destroy","remove","_primitiveContext","layout","_layout","timeScale","priceScale","dataLayer","plotWidth","priceAxisWidth","hitTestPrimitives","prc","hitTest","showTimeAxis","timeAxisHeight","Infinity","dataId","ext","autoscaleInfo","paintBase","axisStyle","axisText","axisLine","background","showVertGrid","showHorzGrid","lines","opts","spacing","verticals","horizontals","computeGridLines","py","drawGrid","grid","lastClose","lastUp","conflate","conflationFactor","all","xStart","drawPriceAxis","colors","down","setLineDash","label","boxH","textW","drawLastPriceLabel","lastPriceUp","lastPriceDown","lastPriceText","stride","yBase","barIntervalSec","POSITIVE_INFINITY","labelStepSec","subMinute","prevTime","drawTimeAxis","paintTop","cross","drawCrosshair","yLocal","crosshair","showTimeTag","idx","formatIstCrosshairLabel","darkTheme","buy","sell","profit","loss","lightTheme","DEFAULT_THEME","DEFAULT_KINETIC_OPTIONS","friction","minSpeed","triggerSpeed","KineticAnimation","initialSpeed","_v0","_k","_minSpeed","ratio","_duration","log","shouldAnimate","speed","trigger","distanceAt","elapsedMs","durationMs","finished","pinchState","dist","hypot","PriceLine","_opts","_host","setPrice","requestUpdate","setLeftLabel","leftLabel","xEnd","extent","extentFromRight","dashed","closeButton","bx","by","lineY","CLOSE_BOX","externalId","cursor","SIZE_PX","tiny","small","medium","big","markerSizePx","effectiveMarkerPx","drawShape","shape","SeriesMarkers","seriesId","_seriesId","setMarkers","_markers","_lastPositions","barByTime","stackByTime","stack","gap","ty","TYPE_COLOR","earnings","dividend","split","news","EventMarkers","setEvents","events","_events","_positions","ev","defaultPixelRatio","window","devicePixelRatio","Chart","container","_stopKinetic","_localPoint","_pointers","pointerId","pane","_container","setPointerCapture","_beginPinch","_downPane","_downX","_downLocalY","localY","_priceAxisWidth","onPriceAxis","onTimeAxis","paneHeight","_timeAxisHeight","_axisDrag","_axisStartCoord","_axisStartMin","_axisStartMax","_dragging","_axisStartSpacing","_timeScale","hit","_renderContext","_dragCb","_dragId","_pointerMoved","_dragStartX","_dragStartY","_lastDragY","_dragStartOffset","_lastDragX","_lastDragT","_now","_dragVelocity","_pinch","ps","invalidate","_maybeLoadHistory","_updateCursor","_updatePinch","releasePointerCapture","_dragEndCb","_clickCb","isBottom","_startKinetic","_cursor","_cursorPane","_crosshairCb","point","preventDefault","deltaY","resetScale","ts","handled","_updateAccessibleSummary","_doc","document","ownerDocument","_pixelRatio","_theme","_crosshairMode","crosshairMode","now","performance","_conflate","_conflationFactor","_gridVert","vertLines","_gridHorz","horzLines","computedPos","getComputedStyle","display","flexDirection","touchAction","getAttribute","setAttribute","ariaLabel","hasAttribute","tabIndex","live","whiteSpace","border","padding","margin","_liveRegion","_loop","raf","_addPane","_observeSize","_attachInput","applySize","clientWidth","clientHeight","setHistoryLoader","loader","_historyLoader","historyLoadComplete","_loadingHistory","_dataLayer","_ensurePane","_firstDataId","_firstPaneIndex","createSeriesRecord","setData","_setData","prependData","_prependData","_updateBar","createMarkers","_addPrimitive","addPriceLine","line","addEventMarkers","em","subscribeClick","subscribeCrosshairMove","subscribeDrag","onDrag","onDragEnd","priceToCoordinate","_paneLayout","coordinateToPrice","setGridOptions","gridOptions","takeScreenshot","drawImage","tradeHost","wasAtRight","kind","changed","_relayout","_hasFitContent","weight","build","_pending","total","_weightTotal","ResizeObserver","_resizeObserver","entries","contentRect","observe","mask","global","perPane","el","addEventListener","_onPointerDown","_onPointerMove","_onPointerUp","_onPointerLeave","_onWheel","passive","_onDblClick","_onKeyDown","getBoundingClientRect","clientX","clientY","pl","_pinchPane","cur","pinchDelta","txt","textContent","containerY","hoveredBar","snapped","candidates","bestDist","magnetSnapPrice","velocity","anim","lastDist","elapsed","_kineticHandle","disconnect","removeEventListener","createChart","DEFAULT_CANDLE_BUILDER_OPTIONS","intervalSec","volumeMode","lateTickPolicy","sessionAnchorSec","CandleBuilder","seed","lastBar","cumDayVolumeSoFar","_current","_lastCum","_cumAtBarStart","_hasCum","current","bucketStart","onTick","_foldInto","isNew","vol","_volumeForNewBar","_volumeForSameBar","ltq","cum","cumDayVolume","watermarkRect","plotW","plotH","right","LogoWatermark","opacity","src","image","tint","_img","_ready","Image","img","onload","decoding","setOptions","patch","_tintCanvas","iw","naturalWidth","ih","naturalHeight","dw","dh","globalAlpha","_tinted","_tintKey","canvas","off","globalCompositeOperation","ema","period","k","emaSeries","rsi","NaN","gain","avgGain","avgLoss","rsiSeries","trueRange","tr","hl","hc","lc","atr","sum","supertrend","multiplier","direction","prevUpper","prevLower","prevST","started","hl2","basicUpper","basicLower","finalUpper","finalLower","st","dir","supertrendSeries","active","isWhitespace","rowTimeToUtcSeconds","asNum","isNaN","test","mapHistoryResponse","json","rows","data","timestamp","OpenAlgoDataFeed","config","_config","fetchImpl","fetch","bind","globalThis","_fetch","getBars","req","res","baseUrl","method","headers","body","JSON","stringify","apikey","apiKey","symbol","exchange","interval","start_date","end_date","ok","status","MODE_NUMBER","LTP","Quote","Depth","formatSubscribe","depthLevel","msg","action","depth_level","formatUnsubscribe","toSec","parse","parseMessage","depth","bids","qty","quantity","asks","ltp","last_price","event","last_trade_quantity","timeSec","OpenAlgoWsFeed","socketFactory","url","WebSocket","_factory","connect","_sock","_emitState","sock","onmessage","_dispatch","onopen","_onOpen","onclose","_open","onerror","readyState","onState","_stateCbs","onControl","_controlCbs","send","api_key","_flush","_send","_queue","onLtp","_ltpCbs","onDepth","_depthCbs","subscribe","unsubscribe","isPing","parsed","OpenAlgoTradeFeed","_strategy","strategy","_defaultProduct","defaultProduct","_post","path","place","side","pricetype","product","trigger_price","triggerPrice","disclosed_quantity","orderId","orderid","order_id","_ctx","modify","getOrders","isArray","orders","mapOrder","num","getPositions","mapPosition","STATUS_MAP","pending","trigger_pending","complete","cancelled","rejected","filledQty","filled_quantity","order_status","toLowerCase","netQty","avgPrice","average_price","intervalToSeconds","unit","OpenAlgoLiveDataFeed","_rest","_ws","wsUrl","_volumeMode","subscribeBars","onBar","builder","u","subscribeDepth","_ex","FakeDataFeed","generateBars","_req","_onBar","startTime","drift","bucketKey","tf","anchorSec","seconds","TickBarAggregator","_tf","_cur","startNew","_count","perBar"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function e(e,t){return Math.round(Math.round(e/t)*t*1e8)/1e8}function t(t,o,i){const r=e(t,i),l=e(o,i),n=[];for(let t=r;t<=l+i/2;t+=i)n.push(e(t,i));return n}function o(e,o,i=.7){const r=new Map;for(const i of e){const e=t(i.low,i.high,o),l=(i.volume??0)/e.length;for(const t of e)r.set(t,(r.get(t)??0)+l)}const l=Array.from(r.entries()).map(([e,t])=>({price:e,volume:t})).sort((e,t)=>t.price-e.price);if(0===l.length)return{buckets:l,poc:0,vah:0,val:0,totalVolume:0};const n=l.reduce((e,t)=>e+t.volume,0);let s=0;for(let e=1;e<l.length;e++)l[e].volume>l[s].volume&&(s=e);let c=s,a=s,h=l[s].volume;const u=n*i;for(;h<u&&(c>0||a<l.length-1);){(c>0?l[c-1].volume:-1)>=(a<l.length-1?l[a+1].volume:-1)?(c-=1,h+=l[c].volume):(a+=1,h+=l[a].volume)}return{buckets:l,poc:l[s].price,vah:l[c].price,val:l[a].price,totalVolume:n}}function i(e,o,i,r=.7,l=2){const n=Math.max(1,o),s=new Map;let c=-1/0,a=1/0;const h=Math.ceil(e.length/n);for(let o=0;o<h;o++){const r=e.slice(o*n,(o+1)*n);if(0===r.length)continue;let h=-1/0,u=1/0;for(const e of r)h=Math.max(h,e.high),u=Math.min(u,e.low);o<l&&(c=Math.max(c,h),a=Math.min(a,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 p=u.reduce((e,t)=>e+t.count,0);let f=0;for(let e=1;e<u.length;e++)u[e].count>u[f].count&&(f=e);let d=f,m=f,b=u[f].count;const g=p*r;for(;b<g&&(d>0||m<u.length-1);){(d>0?u[d-1].count:-1)>=(m<u.length-1?u[m+1].count:-1)?(d-=1,b+=u[d].count):(m+=1,b+=u[m].count)}return{buckets:u,poc:u[f].price,vah:u[d].price,val:u[m].price,ib:{high:c,low:a}}}function r(e){const t=e.trim(),o=/^(\d{4})-(\d{2})-(\d{2})(?:[ T](\d{2}):(\d{2})(?::(\d{2}))?)?/.exec(t);if(null===o)throw new Error(`openalgo-charts: unparseable IST time string "${e}"`);const i=Number(o[1]),r=Number(o[2]),l=Number(o[3]),n=void 0!==o[4]?Number(o[4]):0,s=void 0!==o[5]?Number(o[5]):0,c=void 0!==o[6]?Number(o[6]):0,a=Date.UTC(i,r-1,l,n,s,c);return Math.floor(a/1e3)-19800}const l={tickSize:.05,session:"day",blockMinutes:30,valueAreaPercent:.7,initialBalancePeriods:2};function n(e){const t=(e%52+52)%52;return t<26?String.fromCharCode(65+t):String.fromCharCode(t-26+97)}const s=e=>e<10?`0${e}`:`${e}`;function c(e,t){if("composite"===t)return 0;const o=function(e){const t=new Date(1e3*(e+19800));return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),weekday:t.getUTCDay()}}(e);if("month"===t)return r(`${o.year}-${s(o.month)}-01`);const i=r(`${o.year}-${s(o.month)}-${s(o.day)}`);if("day"===t)return i;return i-(o.weekday+6)%7*86400}function a(e,o={}){const i={...l,...o},r=i.tickSize>0?i.tickSize:l.tickSize,s=Math.max(1,Math.round(60*i.blockMinutes)),a=Math.min(1,Math.max(0,i.valueAreaPercent)),h=Math.max(1,Math.floor(i.initialBalancePeriods)),u=new Map,p=[];for(const t of e){const e=c(t.time,i.session);let o=u.get(e);void 0===o&&(o=[],u.set(e,o),p.push(e)),o.push(t)}const f=[];for(const e of p){const o=u.get(e);if(0===o.length)continue;const i=o[0].time,l=new Map;let c=0,p=-1/0,d=1/0,m=0;for(const e of o){const o=Math.max(0,Math.floor((e.time-i)/s));o>c&&(c=o),o<h&&(p=Math.max(p,e.high),d=Math.min(d,e.low));const n=t(e.low,e.high,r),a=(e.volume??0)/Math.max(1,n.length);m+=e.volume??0;for(const e of n){let t=l.get(e);void 0===t&&(t={count:0,periods:new Set,volume:0},l.set(e,t)),t.periods.has(o)||(t.periods.add(o),t.count+=1),t.volume+=a}}const b=Array.from(l.entries()).map(([e,t])=>({price:e,count:t.count,volume:t.volume,letters:Array.from(t.periods).sort((e,t)=>e-t).map(n).join("")})).sort((e,t)=>t.price-e.price);if(0===b.length)continue;const g=b.reduce((e,t)=>e+t.count,0);let v=0;for(let e=1;e<b.length;e++)b[e].count>b[v].count&&(v=e);let _=v,M=v,y=b[v].count;const k=g*a;for(;y<k&&(_>0||M<b.length-1);){(_>0?b[_-1].count:-1)>=(M<b.length-1?b[M+1].count:-1)?(_-=1,y+=b[_].count):(M+=1,y+=b[M].count)}const S=[];for(let e=1;e<b.length-1;e++)1===b[e].count&&S.push(b[e].price);f.push({startTime:i,endTime:o[o.length-1].time,levels:b,poc:b[v].price,vah:b[_].price,val:b[M].price,periods:c+1,initialBalance:{high:Number.isFinite(p)?p:b[0].price,low:Number.isFinite(d)?d:b[b.length-1].price},singlePrints:S,poorHigh:b[0].count>1,poorLow:b[b.length-1].count>1,totalVolume:m})}return{sessions:f,options:i}}function h(t,o,i){const r=new Map;for(const t of o){const o=e(t.price,i);let l=r.get(o);void 0===l&&(l={price:o,bidVol:0,askVol:0},r.set(o,l)),"bid"===t.side?l.bidVol+=t.qty:l.askVol+=t.qty}const l=Array.from(r.values()).sort((e,t)=>t.price-e.price),n=l.reduce((e,t)=>e+(t.askVol-t.bidVol),0);return{time:t,cells:l,delta:n}}function u(e,t=3){const o=[];for(let i=0;i<e.length;i++){const r=e[i],l=e[i+1],n=e[i-1];l&&r.askVol>=t*Math.max(1,l.bidVol)&&o.push({price:r.price,side:"buy"}),n&&r.bidVol>=t*Math.max(1,n.askVol)&&o.push({price:r.price,side:"sell"})}return o}function p(e){const t=[];let o=0;for(const i of e)o+=i.delta,t.push(o);return t}function f(e,t=3,o=3){const i=u(e,t),r=new Map;for(const e of i)r.set(e.price,e.side);const l=[];let n=null;for(const t of e){const e=r.get(t.price);void 0===e||null!==n&&n.side!==e?(n&&n.prices.length>=o&&l.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&&l.push({startPrice:n.prices[0],endPrice:n.prices[n.prices.length-1],side:n.side,count:n.prices.length}),l}class d{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,r=o.buckets.reduce((e,t)=>Math.max(e,t.value),0)||1,l=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 c of o.buckets){const a=t.priceScale.priceToY(c.price)*i,h=l*(c.value/r),u=c.price<=o.vah&&c.price>=o.val;e.fillStyle=c.price===o.poc?"#f0a020":u?o.vaColor:o.barColor;const p="left"===o.side?n:n-h;e.fillRect(p,a-s/2,h,s)}for(const[r,l]of[[o.poc,"#f0a020"],[o.vah,"#5a6b8c"],[o.val,"#5a6b8c"]]){const o=Math.round(t.priceScale.priceToY(r)*i)+.5;e.strokeStyle=l,e.lineWidth=Math.max(1,Math.round(i)),e.beginPath(),e.moveTo(0,o),e.lineTo(t.plotWidth*i,o),e.stroke()}e.restore()}}class m{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}),this._opts={cellWidth:46,imbalanceRatio:3,font:10,footer:!0,...e}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}autoscaleInfo(){return null}setBars(e){this._bars=e,this._host?.requestUpdate()}_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,r=o>0?Math.abs(t.priceScale.priceToY(i)-t.priceScale.priceToY(i+o))*t.dpr:0;return Math.max(r>1?r:16*t.dpr,9*t.dpr)}draw(e,t){if(0===this._bars.length)return;const o=t.dpr,i=t.timeScale.visibleRange(),r=this._opts.cellWidth*o/2,l=this._opts.imbalanceRatio,n=t.plotHeight*o,s=this._opts.footer?30*o:0;e.save(),e.font=this._opts.font*o+"px ui-monospace, SFMono-Regular, Menlo, monospace",e.textBaseline="middle";for(const c of this._bars){if(0===c.cells.length)continue;const a=t.dataLayer.timeToIndex(c.time);if(void 0===a||a<i.from-1||a>i.to+1)continue;const h=Math.round(t.timeScale.indexToX(a)*o),u=this._rowHeight(c.cells,t);let p=1,f=0,d=0,m=-1,b=c.cells[0].price;for(const e of c.cells){p=Math.max(p,e.bidVol,e.askVol),f+=e.bidVol,d+=e.askVol;const t=e.bidVol+e.askVol;t>m&&(m=t,b=e.price)}const g=t.priceScale.priceToY(c.cells[0].price)*o,v=t.priceScale.priceToY(c.cells[c.cells.length-1].price)*o;e.strokeStyle="#46506b",e.lineWidth=Math.max(1,Math.round(o)),e.beginPath(),e.moveTo(h+.5,g-u/2),e.lineTo(h+.5,v+u/2),e.stroke();for(let i=0;i<c.cells.length;i++){const n=c.cells[i],s=t.priceScale.priceToY(n.price)*o,a=Math.round(s-u/2),f=Math.max(1,Math.round(u)-1),d=.08+n.bidVol/p*.82,m=.08+n.askVol/p*.82;e.fillStyle=`rgba(239,83,80,${d.toFixed(3)})`,e.fillRect(h-r,a,r-1,f),e.fillStyle=`rgba(38,166,154,${m.toFixed(3)})`,e.fillRect(h+1,a,r-1,f);const b=c.cells[i+1],g=c.cells[i-1];b&&n.askVol>=l*Math.max(1,b.bidVol)&&(e.strokeStyle="#39d0b4",e.lineWidth=Math.max(1,Math.round(1.5*o)),e.strokeRect(h+1.5,a+.5,r-2,f-1)),g&&n.bidVol>=l*Math.max(1,g.askVol)&&(e.strokeStyle="#ff6b6b",e.lineWidth=Math.max(1,Math.round(1.5*o)),e.strokeRect(h-r+.5,a+.5,r-2,f-1)),e.fillStyle="#eef1f6",e.textAlign="right",e.fillText(String(n.bidVol),h-4*o,s),e.textAlign="left",e.fillText(String(n.askVol),h+4*o,s)}e.strokeStyle="#0d0e12",e.lineWidth=Math.max(1,Math.round(o)),e.beginPath(),e.moveTo(h+.5,g-u/2),e.lineTo(h+.5,v+u/2),e.stroke();const _=t.priceScale.priceToY(b)*o;if(e.fillStyle="#f0a020",e.fillRect(h-r-3*o,Math.round(_-u/2),2*o,Math.max(1,Math.round(u)-1)),this._opts.footer){const t=d-f,o=n-s;e.fillStyle="#0d0e12",e.fillRect(h-r,o,2*r,s),e.fillStyle=t>=0?"rgba(38,166,154,0.30)":"rgba(239,83,80,0.30)",e.fillRect(h-r,o,2*r,s/2),e.textAlign="center",e.fillStyle=t>=0?"#7fe3d3":"#ff9b9b",e.fillText(`${t>=0?"+":""}${t}`,h,o+s/4),e.fillStyle="#c7ccd8",e.fillText(String(f+d),h,o+3*s/4)}}e.restore()}}class b{constructor(e,t){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}_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 r=this._cells.get(i);return void 0===r&&(r={price:i,bidVol:0,askVol:0},this._cells.set(i,r)),"bid"===t.side?(r.bidVol+=t.qty,this._delta-=t.qty):(r.askVol+=t.qty,this._delta+=t.qty),this._count+=1,this._volume+=t.qty,{bar:this._snapshot(),isNew:o}}}const g="profile";export{l as DEFAULT_MARKET_PROFILE_OPTIONS,m as Footprint,b as FootprintAggregator,d as HorizontalProfile,g as PROFILE_TIER,e as bucketPrice,h as computeFootprint,a as computeMarketProfile,i as computeTpo,o as computeVolumeProfile,p as cumulativeDelta,u as diagonalImbalances,t as priceBuckets,f as stackedImbalances,n as tpoLetter};
|
|
2
|
+
//# sourceMappingURL=openalgo-charts.profile.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openalgo-charts.profile.mjs","sources":["../src/profile/profile-model.ts","../src/profile/volume-profile.ts","../src/profile/tpo.ts","../src/feed/time.ts","../src/profile/market-profile.ts","../src/profile/footprint.ts","../src/profile/profile-primitive.ts","../src/profile/footprint-aggregator.ts","../src/profile/index.ts"],"sourcesContent":[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","computeTpo","periodBars","ibPeriods","period","max","count","ibHigh","Infinity","ibLow","numPeriods","ceil","slice","pHigh","pLow","min","bkt","c","ib","istStringToUtcSeconds","input","trim","dt","exec","Error","year","Number","month","day","hour","undefined","sec","asUtcMs","Date","UTC","floor","DEFAULT_MARKET_PROFILE_OPTIONS","session","blockMinutes","initialBalancePeriods","tpoLetter","m","String","fromCharCode","pad2","n","sessionKey","utcSeconds","mode","d","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","minute","getUTCMinutes","second","getUTCSeconds","weekday","getUTCDay","utcSecondsToIstParts","dayStart","computeMarketProfile","options","o","tick","blockSec","vaPct","groups","order","k","time","g","sessions","first","maxPeriod","vShare","periods","Set","has","add","levels","letters","x","y","join","l","targetVa","singlePrints","startTime","endTime","initialBalance","isFinite","poorHigh","poorLow","computeFootprint","trades","t","cell","bidVol","askVol","side","qty","cells","values","delta","diagonalImbalances","ratio","here","below","above","cumulativeDelta","stackedImbalances","minStack","imb","bySide","run","prices","startPrice","endPrice","HorizontalProfile","constructor","opts","Object","defineProperty","this","_opts","attached","host","_host","detached","zOrder","autoscaleInfo","setData","requestUpdate","draw","ctx","rc","dpr","maxVal","value","stripW","width","baseX","plotWidth","rowH","plotHeight","save","priceScale","priceToY","w","inVa","fillStyle","vaColor","barColor","fillRect","color","strokeStyle","lineWidth","beginPath","moveTo","lineTo","stroke","restore","Footprint","cellWidth","imbalanceRatio","font","footer","setBars","_bars","_rowHeight","abs","p0","rh","range","timeScale","visibleRange","half","plotH","footerH","textBaseline","fb","index","dataLayer","timeToIndex","to","cx","indexToX","maxV","totBid","totAsk","pocVol","pocPrice","tv","yHi","yLo","top","h","aBid","aAsk","toFixed","strokeRect","textAlign","fillText","yp","fTop","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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"}
|