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.
@@ -0,0 +1,2 @@
1
+ var OpenAlgoCharts=function(e){"use strict";const t="0.1.0";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){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 u(e,t,i=6){if(!isFinite(e)||!isFinite(t)||t<=e)return[Number.isFinite(e)?e:0];const r=c(t-e,!1),n=c(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 d(e){return e<=0||!isFinite(e)?2:e>=1?0:Math.min(8,Math.ceil(-Math.log10(e)))}const p={marginTop:.1,marginBottom:.1,minMove:0,mode:"linear",inverted:!1};function f(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 b{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={...p,...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(f(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?d(this._options.minMove):d((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 _={barSpacing:8,minBarSpacing:1,maxBarSpacing:80,rightOffset:4};class m{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={..._,...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=_.rightOffset;const t=this._width/(e+this._rightOffset);this.setBarSpacing(t)}}class g{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 v={upColor:"#26a69a",downColor:"#ef5350",borderUpColor:"#26a69a",borderDownColor:"#ef5350",wickUpColor:"#26a69a",wickDownColor:"#ef5350",borderVisible:!0,wickVisible:!0};function y(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 w(e,t,i,r,n,o=v){const a=y(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 x(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 S(e,t,i,r,n,o,a=!1){const s=Math.max(1,Math.floor(y(r,n)/2)),l=Math.max(1,Math.floor(n));e.save();for(const r of t){const t=x(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 P=new WeakMap;function M(e,t,i,r){let n=P.get(e);void 0===n&&(n=new Map,P.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 T(e,t,i=e=>e.close){return e.map(e=>({x:e.x,y:t(i(e.bar))}))}function O(e,t,i,r,n){const o=T(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 C={color:"#3a4666",base:0};function k(e,t,i={}){return{...v,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??v.borderVisible,wickVisible:e.wickVisible??v.wickVisible,...i}}const L=e=>({min:e.low,max:e.high}),j=e=>({min:e.close,max:e.close}),I=(e,t)=>{const i=t.base??0;return{min:Math.min(i,e.close),max:Math.max(i,e.close)}},B=new Map,A=new Set(["point-figure","kagi"]);function D(e,t){B.set(e,t)}function F(e){const t=B.get(e);if(void 0===t){if(A.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}const E=(e,t)=>({...e,upColor:e.upColor??t.upColor,downColor:e.downColor??t.downColor});function W(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 R(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 N(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:R(n.map(e=>e.bar))})}return i}D("candlestick",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>w(e,t,i,r,n,k(o,a.theme)),extents:L}),D("hollow-candle",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>w(e,t,i,r,n,k(o,a.theme,{hollow:!0})),extents:L}),D("volume-candle",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>{const s=a.maxVolume;w(e,t,i,r,n,k(o,a.theme,{widthScale:e=>s>0?(e.volume??0)/s:1}))},extents:L}),D("bar",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>S(e,t,i,r,n,E(o,a.theme)),extents:L}),D("high-low",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>S(e,t,i,r,n,E(o,a.theme),!0),extents:L}),D("line",{defaultStyle:{lineWidth:1.5},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>O(e,t,i,n,{...o,color:o.color??a.theme.lineColor}),extents:j}),D("line-markers",{defaultStyle:{lineWidth:1.5,markers:!0},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>O(e,t,i,n,{...o,color:o.color??a.theme.lineColor,markers:!0}),extents:j}),D("step",{defaultStyle:{lineWidth:1.5,step:!0},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>O(e,t,i,n,{...o,color:o.color??a.theme.lineColor,step:!0}),extents:j}),D("area",{defaultStyle:{lineWidth:1.5},isPriceSeries:!0,draw:(e,t,i,r,n,o,a)=>function(e,t,i,r,n,o){const a=T(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=M(e,s,o.areaTopColor??"rgba(79,140,255,0.40)",o.areaBottomColor??"rgba(79,140,255,0.00)"),e.fill(),e.restore(),O(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:j}),D("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=T(t,i,e=>e.high),a=T(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(),O(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:L}),D("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=T(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=M(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)}}}),D("column",{defaultStyle:{base:0},isPriceSeries:!1,draw:(e,t,i,r,n,o,a)=>function(e,t,i,r,n,o){const a=y(r,n),s=Math.floor(a/2),l=Math.round(i(o.base??0)*n);e.save();for(const r of t){const t=x(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,E(o,a.theme)),extents:I}),D("histogram",{defaultStyle:{base:0,color:"#3a4666"},isPriceSeries:!1,draw:(e,t,i,r,n,o)=>{!function(e,t,i,r,n,o=C){const a=y(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:I});const H=19800;function z(e){return Math.floor(e/1e3)}function q(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)-H}function U(e){const t=new Date(1e3*(e+H));return{year:t.getUTCFullYear(),month:t.getUTCMonth()+1,day:t.getUTCDate(),hour:t.getUTCHours(),minute:t.getUTCMinutes(),second:t.getUTCSeconds(),weekday:t.getUTCDay()}}const $=e=>e<10?`0${e}`:String(e);function Y(e){const t=U(e);return`${$(t.hour)}:${$(t.minute)}`}function V(e){const t=U(e);return`${$(t.hour)}:${$(t.minute)}:${$(t.second)}`}function G(e){const t=U(e);return`${t.year}-${$(t.month)}-${$(t.day)}`}const X=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function K(e){const t=U(e);return`${$(t.day)} ${X[t.month-1]}`}const J=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function Q(e,t){const i=U(e),r=U(t);return i.year!==r.year||i.month!==r.month||i.day!==r.day}const Z={textColor:"#8b91a7",lineColor:"#2a3046",font:"11px system-ui, sans-serif"};function ee(e,t){return e.replace(/(\d+(?:\.\d+)?)px/,(e,i)=>Number(i)*t+"px")}function te(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 ie(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 re{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 b}),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 ie(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 d=e.conflate?W(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}));d>1&&(s=N(s,d));let u=0;for(const e of s)(e.bar.volume??0)>u&&(u=e.bar.volume??0);const p={plotHeight:t.plotHeight,maxVolume:u,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=Z){const o=t.priceRange(),a=u(o.min,o.max,6),s=Math.round(i.plotWidth*r);e.save(),e.strokeStyle=n.lineColor,e.fillStyle=n.textColor,e.font=ee(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=Z,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=ee(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=Z){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=ee(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||Q(f,a)?K(a):p?V(a):Y(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);te(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&&te(n,function(e){const t=U(e);let i=`${J[t.weekday]} ${$(t.day)} ${X[t.month-1]} '${String(t.year).slice(-2)}`;return 0===t.hour&&0===t.minute&&0===t.second||(i+=` ${$(t.hour)}:${$(t.minute)}`,0!==t.second&&(i+=`:${$(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 ne={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"},oe=ne;const ae={friction:.0055,minSpeed:.02,triggerSpeed:.08};class se{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={...ae,...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??ae.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 le(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 he{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 ce={tiny:6,small:9,medium:12,big:16};function ue(e){return ce[e]}function de(e,t){return Math.max(4,Math.min(ce[e],Math.floor(t)))}function pe(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 fe{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=de(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),pe(e,o.shape,h,d,l,o.color),void 0!==o.text){e.fillStyle=o.color,e.font=Math.max(9,ue(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 be={earnings:"#f0a020",dividend:"#26a69a",split:"#4f8cff",news:"#9aa0b4"};class _e{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??be[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 me(){return"undefined"!=typeof window&&window.devicePixelRatio?window.devicePixelRatio:1}class ge{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 g}),Object.defineProperty(this,"_timeScale",{enumerable:!0,configurable:!0,writable:!0,value:new m}),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))}se.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??me,this._theme=t.theme??oe,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 fe(i);return this._addPrimitive(r,e),e}}}addPriceLine(e,t=0){const i=new he(e);return this._addPrimitive(t,i),i}addEventMarkers(e=0){const t=new _e;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 re(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=le(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=le(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 se(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}}const ve={intervalSec:60,volumeMode:"ltq-sum",lateTickPolicy:"foldIntoBar",sessionAnchorSec:0};class ye{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={...ve,...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 we(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}}}function xe(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 Se(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 Pe(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 Me(e,t,i,r=14){if(r<=0)throw new Error("openalgo-charts: ATR period must be > 0");const n=Pe(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 Te(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=Me(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 Oe(e){if("number"==typeof e)return e>1e12?z(e):Math.floor(e);const t=Number(e);return""===e.trim()||Number.isNaN(t)||/[-T :]/.test(e.trim())?q(e):t>1e12?z(t):Math.floor(t)}function Ce(e){const t=e.data??[],i=[];for(const e of t){const t=e.timestamp??e.time;void 0!==t&&i.push({time:Oe(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 ke{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:G(e.from),end_date:G(e.to)})});if(!t.ok)throw new Error(`openalgo-charts: history request failed (${t.status})`);return Ce(await t.json())}}const Le={LTP:1,Quote:2,Depth:3};function je(e,t,i,r){const n={action:"subscribe",symbol:t,exchange:i,mode:Le[e]};return"Depth"===e&&void 0!==r&&(n.depth_level=r),JSON.stringify(n)}function Ie(e,t,i){return JSON.stringify({action:"unsubscribe",symbol:t,exchange:i,mode:Le[e]})}function Be(e){if("number"==typeof e)return e>1e12?z(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 Ae(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:Be(i.timestamp)}}:null}class De{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(je(e,t,i,r))}unsubscribe(e,t,i){this._send(Ie(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=Ae(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)}}function Fe(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 Ee={open:"working",pending:"pending",trigger_pending:"working",complete:"filled",cancelled:"cancelled",rejected:"rejected"};function We(e){return{id:e.orderid??"",symbol:e.symbol??"",side:"SELL"===e.action?"SELL":"BUY",type:e.pricetype??"LIMIT",qty:Fe(e.quantity),filledQty:Fe(e.filled_quantity),price:Fe(e.price),triggerPrice:void 0!==e.trigger_price&&Fe(e.trigger_price)>0?Fe(e.trigger_price):void 0,status:Ee[(e.order_status??"").toLowerCase()]??"working"}}function Re(e){return{symbol:e.symbol??"",netQty:Fe(e.quantity),avgPrice:Fe(e.average_price)}}function Ne(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)}function He(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 ze(e,t){if("interval"===e.mode){const i=e.anchorSec??0;return i+Math.floor((t-i)/e.seconds)*e.seconds}return 0}return e.CandleBuilder=ye,e.Chart=ge,e.DEFAULT_CANDLE_BUILDER_OPTIONS=ve,e.DEFAULT_CANDLE_STYLE=v,e.DEFAULT_HISTOGRAM_STYLE=C,e.DEFAULT_PRICE_SCALE_OPTIONS=p,e.DEFAULT_THEME=oe,e.DEFAULT_TIME_SCALE_OPTIONS=_,e.EventMarkers=_e,e.FakeDataFeed=class{constructor(e=60){Object.defineProperty(this,"intervalSec",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.intervalSec=e}async getBars(e){return He(e.from??17e8,500,this.intervalSec)}subscribeBars(e,t){return()=>{}}},e.IST_OFFSET_SECONDS=H,e.InvalidationLevel=i,e.LogoWatermark=class{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=we(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}},e.OpenAlgoDataFeed=ke,e.OpenAlgoLiveDataFeed=class{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 ke(e),this._ws=new De({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 ye({intervalSec:Ne(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()}},e.OpenAlgoTradeFeed=class{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(We);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:Fe(e.quantity)});return i}async getPositions(){return((await this._post("/api/v1/positionbook",{})).data??[]).map(Re)}},e.OpenAlgoWsFeed=De,e.Pane=re,e.PriceLine=he,e.PriceScale=b,e.SeriesMarkers=fe,e.TickBarAggregator=class{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?ze(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?ze(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}}},e.TimeScale=m,e.VERSION=t,e.atr=Me,e.autoscaleRange=f,e.bestHit=ie,e.bitmapSize=a,e.clamp=h,e.conflateBars=function(e,t){if(t<=1)return e.slice();const i=[];for(let r=0;r<e.length;r+=t)i.push(R(e.slice(r,r+t)));return i},e.conflateItems=N,e.conflationGroupSize=W,e.createChart=function(e,t={}){return new ge(e,t)},e.darkTheme=ne,e.drawShape=pe,e.effectiveMarkerPx=de,e.ema=xe,e.emaSeries=function(e,t){const i=xe(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]}))},e.epochMsToUtcSeconds=z,e.formatIstDate=K,e.formatIstTime=Y,e.formatIstTimeSeconds=V,e.formatSubscribe=je,e.formatUnsubscribe=Ie,e.generateBars=He,e.getChartType=F,e.intervalToSeconds=Ne,e.isNewIstDay=Q,e.isWhitespace=function(e){return!("open"in e)&&!("value"in e)},e.istStringToUtcSeconds=q,e.lerp=function(e,t,i){return e+(t-e)*i},e.lightTheme={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"},e.mapHistoryResponse=Ce,e.mapOrder=We,e.mapPosition=Re,e.markerSizePx=ue,e.mergeBars=R,e.niceTicks=u,e.optimalBarWidth=y,e.parseMessage=Ae,e.precisionForStep=d,e.registerChartType=D,e.registeredChartTypes=function(){return Array.from(B.keys())},e.roundToTick=function(e,t){return t<=0?e:Math.round(e/t)*t},e.rowTimeToUtcSeconds=Oe,e.rsi=Se,e.rsiSeries=function(e,t=14){const i=Se(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]}))},e.snapToDevicePixel=s,e.supertrend=Te,e.supertrendSeries=function(e,t=10,i=3){const r=Te(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}},e.trueRange=Pe,e.utcSecondsToIstDateString=G,e.utcSecondsToIstParts=U,e.version=function(){return t},e.verticalGradient=M,e.watermarkRect=we,e}({});
2
+ //# sourceMappingURL=openalgo-charts.standalone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openalgo-charts.standalone.js","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/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","../src/model/bar.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","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","niceNum","x","exp","floor","log10","f","pow","nf","niceTicks","maxTicks","isFinite","Number","range","step","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","a","b","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","ud","t","conflationGroupSize","minPx","widthPx","threshold","mergeBars","group","first","volume","hasVolume","merged","conflateItems","groupSize","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","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","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","ema","period","k","rsi","NaN","gain","avgGain","avgLoss","trueRange","tr","hl","hc","lc","atr","sum","supertrend","multiplier","direction","prevUpper","prevLower","prevST","started","hl2","basicUpper","basicLower","finalUpper","finalLower","st","dir","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","num","STATUS_MAP","pending","trigger_pending","complete","cancelled","rejected","mapOrder","orderid","side","pricetype","filledQty","filled_quantity","triggerPrice","trigger_price","order_status","toLowerCase","mapPosition","netQty","avgPrice","average_price","intervalToSeconds","unit","generateBars","startTime","drift","bucketKey","tf","anchorSec","seconds","subscribeBars","_req","_onBar","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","_rest","_ws","wsUrl","_volumeMode","onBar","builder","u","subscribeDepth","_ex","_strategy","strategy","_defaultProduct","defaultProduct","_post","path","place","product","disclosed_quantity","orderId","order_id","_ctx","modify","getOrders","isArray","orders","getPositions","_tf","_cur","startNew","_count","perBar","keys","active"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ function e(e){return"pending"===e.status||"working"===e.status||"partial"===e.status}function t(e,t){return(t-e.avgPrice)*e.netQty}function i(e,t){if(0===e.avgPrice||0===e.netQty)return 0;const i=e.netQty>0?1:-1;return(t-e.avgPrice)/e.avgPrice*100*i}function r(e,t=0){if(0===e.netQty)return e.avgPrice;const i=e.netQty>0?1:-1;return e.avgPrice+i*t}function s(e,t,i){const r=Math.abs(e-t);return 0===r?null:Math.abs(i-e)/r}function o(e,t,i,r){return"BUY"===e?i<t&&r>t:i>t&&r<t}class n{constructor(e){Object.defineProperty(this,"_order",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ltp",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._order=e}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}get order(){return this._order}update(e){this._order=e,this._host?.requestUpdate()}setLtp(e){this._ltp=e,this._host?.requestUpdate()}autoscaleInfo(){const e=this._order.triggerPrice??this._order.price;return{min:e,max:e}}_price(){return this._order.triggerPrice??this._order.price}draw(e,t){const i=this._price(),r=Math.round(t.priceScale.priceToY(i)*t.dpr)+.5;if(r<0||r>t.plotHeight*t.dpr)return;const s="BUY"===this._order.side?t.theme.buy:t.theme.sell,o=Math.round(t.plotWidth*t.dpr);e.save(),e.strokeStyle=s,e.lineWidth=Math.max(1,Math.round(t.dpr)),e.setLineDash([6*t.dpr,4*t.dpr]),e.beginPath(),e.moveTo(0,r),e.lineTo(o,r),e.stroke(),e.setLineDash([]);const n=this._order.qty-this._order.filledQty;let a=`${this._order.side} ${n} ${this._order.type} ${t.priceScale.format(i)}`;if(!Number.isNaN(this._ltp)){const e=i-this._ltp;a+=` ${e>=0?"+":""}${t.priceScale.format(e)}`}e.font=11*t.dpr+"px system-ui, sans-serif";const l=6*t.dpr,c=16*t.dpr,d=e.measureText(a).width;e.fillStyle=s,e.fillRect(o+1,r-c/2,d+2*l,c),e.fillStyle="#0d0e12",e.textAlign="left",e.textBaseline="middle",e.fillText(a,o+1+l,r),e.restore()}hitTest(e,t,i){if(e<0||e>i.plotWidth)return null;const r=i.priceScale.priceToY(this._price()),s=Math.abs(t-r);return s>4?null:{externalId:`order:${this._order.id}`,zOrder:"normal",distance:s,cursor:"ns-resize"}}}class a{constructor(e){Object.defineProperty(this,"_position",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_ltp",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._position=e}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"normal"}get position(){return this._position}update(e){this._position=e,this._host?.requestUpdate()}setLtp(e){this._ltp=e,this._host?.requestUpdate()}autoscaleInfo(){return{min:this._position.avgPrice,max:this._position.avgPrice}}draw(e,r){if(0===this._position.netQty)return;const s=Math.round(r.priceScale.priceToY(this._position.avgPrice)*r.dpr)+.5,o=Math.round(r.plotWidth*r.dpr),n=Number.isNaN(this._ltp)?0:t(this._position,this._ltp),a=n>=0?r.theme.profit:r.theme.loss;if(e.save(),e.strokeStyle=r.theme.axisText,e.lineWidth=Math.max(1,Math.round(r.dpr)),e.beginPath(),e.moveTo(0,s),e.lineTo(o,s),e.stroke(),!Number.isNaN(this._ltp)){const t=Math.round(r.priceScale.priceToY(this._ltp)*r.dpr);e.fillStyle=n>=0?"rgba(38,166,154,0.12)":"rgba(239,83,80,0.12)",e.fillRect(0,Math.min(s,t),o,Math.abs(t-s))}const l=this._position.netQty>0?"LONG":"SHORT",c=Number.isNaN(this._ltp)?0:i(this._position,this._ltp),d=`${l} ${Math.abs(this._position.netQty)} | ${n>=0?"+":""}${n.toFixed(2)} (${c>=0?"+":""}${c.toFixed(2)}%)`;e.font=11*r.dpr+"px system-ui, sans-serif";const h=6*r.dpr,p=16*r.dpr,u=e.measureText(d).width;e.fillStyle=a,e.fillRect(o+1,s-p/2,u+2*h,p),e.fillStyle=r.theme.lastPriceText,e.textAlign="left",e.textBaseline="middle",e.fillText(d,o+1+h,s),e.restore()}hitTest(e,t,i){if(0===this._position.netQty||e<0||e>i.plotWidth)return null;const r=i.priceScale.priceToY(this._position.avgPrice),s=Math.abs(t-r);return s>4?null:{externalId:`position:${this._position.symbol}`,zOrder:"normal",distance:s,cursor:"pointer"}}}class l{constructor(e){Object.defineProperty(this,"_state",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),this._state=e}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"bottom"}get state(){return this._state}update(e){this._state=e,this._host?.requestUpdate()}autoscaleInfo(){return{min:Math.min(this._state.stop,this._state.target,this._state.entry),max:Math.max(this._state.stop,this._state.target,this._state.entry)}}draw(e,t){const{entry:i,stop:r,target:o}=this._state,n=Math.round(t.plotWidth*t.dpr),a=t.priceScale.priceToY(i)*t.dpr,l=t.priceScale.priceToY(r)*t.dpr,c=t.priceScale.priceToY(o)*t.dpr;e.save(),e.fillStyle="rgba(239,83,80,0.10)",e.fillRect(0,Math.min(a,l),n,Math.abs(l-a)),e.fillStyle="rgba(38,166,154,0.10)",e.fillRect(0,Math.min(a,c),n,Math.abs(c-a));for(const[i,r,s]of[[l,t.theme.loss,"SL"],[c,t.theme.profit,"TP"]])e.strokeStyle=r,e.lineWidth=Math.max(1,Math.round(t.dpr)),e.setLineDash([4*t.dpr,4*t.dpr]),e.beginPath(),e.moveTo(0,Math.round(i)+.5),e.lineTo(n,Math.round(i)+.5),e.stroke(),e.setLineDash([]),e.fillStyle=r,e.font=10*t.dpr+"px system-ui, sans-serif",e.textAlign="left",e.textBaseline="middle",e.fillText(s,4*t.dpr,Math.round(i));const d=s(i,r,o);null!==d&&(e.fillStyle="#c7ccd8",e.font=10*t.dpr+"px system-ui, sans-serif",e.fillText(`R:R ${d.toFixed(2)}`,4*t.dpr,Math.round(a)-8*t.dpr)),e.restore()}hitTest(e,t,i){if(e<0||e>i.plotWidth)return null;const r=i.priceScale.priceToY(this._state.stop),s=i.priceScale.priceToY(this._state.target),o=Math.abs(t-r),n=Math.abs(t-s);return o<=4?{externalId:`bracket-sl:${this._state.symbol}`,zOrder:"bottom",distance:o,cursor:"ns-resize"}:n<=4?{externalId:`bracket-tp:${this._state.symbol}`,zOrder:"bottom",distance:n,cursor:"ns-resize"}:null}}class c{constructor(e){Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_orderLines",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_markers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_brackets",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_ltp",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this._host=e}reconcile(e,t){this._reconcileOrderLines(e),this._reconcilePositions(t),this._reconcileBrackets(e,t)}_reconcileOrderLines(t){const i=new Set;for(const r of t){if(!e(r)||"sl"===r.role||"tp"===r.role)continue;i.add(r.id);const t=this._orderLines.get(r.id);if(t)t.update(r);else{const e=new n(r),t=this._ltp.get(r.symbol);void 0!==t&&e.setLtp(t),this._orderLines.set(r.id,e),this._host.addPrimitive(e)}}for(const[e,t]of this._orderLines)i.has(e)||(this._host.removePrimitive(t),this._orderLines.delete(e))}_reconcilePositions(e){const t=new Set;for(const i of e){if(0===i.netQty)continue;t.add(i.symbol);const e=this._markers.get(i.symbol);if(e)e.update(i);else{const e=new a(i),t=this._ltp.get(i.symbol);void 0!==t&&e.setLtp(t),this._markers.set(i.symbol,e),this._host.addPrimitive(e)}}for(const[e,i]of this._markers)t.has(e)||(this._host.removePrimitive(i),this._markers.delete(e))}_reconcileBrackets(t,i){const r=new Map,s=new Map;for(const i of t)e(i)&&("sl"===i.role?r.set(i.symbol,i.triggerPrice??i.price):"tp"===i.role&&s.set(i.symbol,i.price));const o=new Map(i.map(e=>[e.symbol,e])),n=new Set;for(const e of new Set([...r.keys(),...s.keys()])){const t=o.get(e);if(void 0===t||0===t.netQty)continue;const i={symbol:e,side:t.netQty>0?"BUY":"SELL",entry:t.avgPrice,stop:r.get(e)??t.avgPrice,target:s.get(e)??t.avgPrice};n.add(e);const a=this._brackets.get(e);if(a)a.update(i);else{const t=new l(i);this._brackets.set(e,t),this._host.addPrimitive(t)}}for(const[e,t]of this._brackets)n.has(e)||(this._host.removePrimitive(t),this._brackets.delete(e))}onLtp(e,t){this._ltp.set(e,t);for(const i of this._orderLines.values())i.order.symbol===e&&i.setLtp(t);const i=this._markers.get(e);i&&i.setLtp(t)}orderLineCount(){return this._orderLines.size}positionCount(){return this._markers.size}bracketCount(){return this._brackets.size}}class d{constructor(){Object.defineProperty(this,"_orders",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_positions",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_bookListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_ltpListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_depthListeners",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"_idCounter",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"rejectNextPlace",{enumerable:!0,configurable:!0,writable:!0,value:null})}onBook(e){this._bookListeners.push(e)}onLtp(e){this._ltpListeners.push(e)}setBook(e,t){this._orders=e.map(e=>({...e})),this._positions=t.map(e=>({...e}));for(const e of this._bookListeners)e(this._orders,this._positions)}emitLtp(e,t){for(const i of this._ltpListeners)i(e,t)}onDepth(e){this._depthListeners.push(e)}emitDepth(e,t){for(const i of this._depthListeners)i(e,t)}static makeDepth(e,t,i=.05){const r=[],s=[];for(let o=1;o<=t;o++)r.push({price:e-o*i,qty:100+37*o%900}),s.push({price:e+o*i,qty:100+53*o%900});return{bids:r,asks:s,ltp:e}}orders(){return this._orders}positions(){return this._positions}async place(e){if(null!==this.rejectNextPlace){const e=this.rejectNextPlace;throw this.rejectNextPlace=null,new Error(e)}const t="B"+ ++this._idCounter;return this._orders.push({id:t,symbol:e.symbol,side:e.side,type:e.type,qty:e.qty,filledQty:0,price:e.price??0,triggerPrice:e.triggerPrice,status:"MARKET"===e.type?"filled":"working",role:void 0}),this._notify(),{orderId:t}}async modify(e,t){const i=this._orders.find(t=>t.id===e);if(void 0===i)throw new Error("unknown order");void 0!==t.price&&(i.price=t.price),void 0!==t.triggerPrice&&(i.triggerPrice=t.triggerPrice),void 0!==t.qty&&(i.qty=t.qty),this._notify()}async cancel(e){this._orders=this._orders.filter(t=>t.id!==e),this._notify()}fill(e){const t=this._orders.find(t=>t.id===e);void 0!==t&&(t.filledQty=t.qty,t.status="filled",this._orders=this._orders.filter(t=>t.id!==e),this._notify())}_notify(){for(const e of this._bookListeners)e(this._orders,this._positions)}}const h=new Set(["filled","cancelled","rejected","stale"]);function p(e){return h.has(e)}const u={pending_place:{ack:"working",partialFill:"partial",fill:"filled",reject:"rejected",reconnectAbsent:"stale"},working:{partialFill:"partial",fill:"filled",submitModify:"modify_pending",submitCancel:"cancel_pending",cancelled:"cancelled",reconnectAbsent:"stale"},partial:{partialFill:"partial",fill:"filled",submitModify:"modify_pending",submitCancel:"cancel_pending",cancelled:"cancelled",reconnectAbsent:"stale"},modify_pending:{ack:"working",reject:"working",fill:"filled",partialFill:"partial",cancelled:"cancelled",reconnectAbsent:"stale"},cancel_pending:{cancelled:"cancelled",reject:"working",fill:"filled",reconnectAbsent:"stale"},filled:{},cancelled:{},rejected:{},stale:{}};function f(e,t){return void 0!==u[e][t]}function b(e,t){return u[e][t]??e}function _(e,t){return e>=t.lower&&e<=t.upper}function y(e,t,i){if(t<=0)return{ok:!1,reason:"quantity must be positive"};if(void 0!==i.freezeQty&&t>i.freezeQty)return{ok:!1,reason:`quantity ${t} exceeds freeze limit ${i.freezeQty}`};const r=(s=e,(o=i.tickSize)<=0?s:Math.round(s/o)*o);var s,o;return i.priceBand&&!_(r,i.priceBand)?{ok:!1,reason:`price ${r} outside band ${i.priceBand.lower}–${i.priceBand.upper}`}:{ok:!0,price:r}}class m{constructor(e){Object.defineProperty(this,"_feed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_constraints",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_mode",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_armed",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_gate",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_minModifyMs",{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,"_idGen",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_onValidationError",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_orders",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_byBroker",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_sentTokens",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"_lastModifyAt",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_pendingModify",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"_counter",{enumerable:!0,configurable:!0,writable:!0,value:0}),this._feed=e.feed,this._constraints=e.constraints,this._mode=e.mode??"live",this._armed=e.armed??!1,this._gate=e.gate,this._minModifyMs=e.minModifyIntervalMs??150,this._now=e.now??(()=>"undefined"!=typeof performance?performance.now():0),this._idGen=e.idGen??(()=>"c"+ ++this._counter),this._onValidationError=e.onValidationError}get mode(){return this._mode}state(e){return this._orders.get(e)?.state}async placeOrder(e){let t=e.price;if(void 0!==e.price){const i=y(e.price,e.qty,this._constraints);if(!i.ok)return{ok:!1,reason:i.reason};t=i.price}else if(e.qty<=0)return{ok:!1,reason:"quantity must be positive"};const i=e.clientToken??this._idGen();if(this._sentTokens.has(i))return{ok:!1,reason:"duplicate clientToken (idempotent skip)",clientId:i,state:this._orders.get(i)?.state};if(!this._armed){if(!await(this._gate?this._gate(e):Promise.resolve(!1)))return{ok:!1,reason:"not confirmed"}}const r={...e,price:t,clientToken:i};this._sentTokens.add(i);const s={clientId:i,state:"pending_place",req:r};this._orders.set(i,s);try{const{orderId:e}=await this._feed.place({...r,mode:this._mode});return s.brokerId=e,this._byBroker.set(e,i),s.state=b(s.state,"ack"),{ok:!0,clientId:i,state:s.state}}catch(e){return s.state=b(s.state,"reject"),this._sentTokens.delete(i),{ok:!1,clientId:i,state:s.state,reason:String(e.message??e)}}}placeMarket(e,t,i){return this.placeOrder({symbol:e,side:t,type:"MARKET",qty:i})}linkOco(e,t){const i=this._orders.get(e),r=this._orders.get(t);i&&r&&(i.ocoPeer=t,r.ocoPeer=e)}requestModify(e,t){const i=this._orders.get(e);if(void 0===i||p(i.state))return;const r=y(t,i.req.qty,this._constraints);if(!r.ok)return void this._onValidationError?.(r.reason??"invalid modify price");this._pendingModify.set(e,{price:r.price??t});const s=this._lastModifyAt.get(e)??-1/0;this._now()-s>=this._minModifyMs&&this._flushModify(e)}commitModify(e){return this._flushModify(e)}async _flushModify(e){const t=this._pendingModify.get(e),i=this._orders.get(e);if(void 0!==t&&void 0!==i&&void 0!==i.brokerId){this._pendingModify.delete(e),this._lastModifyAt.set(e,this._now()),i.state=b(i.state,"submitModify");try{await this._feed.modify(i.brokerId,t),i.state=b(i.state,"ack")}catch{i.state=b(i.state,"reject")}}}async cancelOrder(e){const t=this._orders.get(e);if(void 0!==t&&void 0!==t.brokerId&&!p(t.state)){t.state=b(t.state,"submitCancel");try{await this._feed.cancel(t.brokerId),t.state=b(t.state,"cancelled"),this._cancelOcoPeer(t)}catch{t.state=b(t.state,"reject")}}}onFill(e,t){const i=this._byBroker.get(e);if(void 0===i)return;const r=this._orders.get(i);void 0!==r&&(r.state=b(r.state,t?"fill":"partialFill"),t&&this._cancelOcoPeer(r))}_cancelOcoPeer(e){if(void 0===e.ocoPeer)return;const t=this._orders.get(e.ocoPeer);t&&!p(t.state)&&this.cancelOrder(t.clientId)}onReconnect(e){for(const t of this._orders.values())p(t.state)||void 0!==t.brokerId&&e.has(t.brokerId)||(t.state=b(t.state,"reconnectAbsent"))}}function g(e){const t=Math.max(e.bids.length,e.asks.length);return 0===t?"none":t<=5?"compact":"deep"}function v(e,t,i=1){const r=t*Math.max(1,i),s=new Map,o=(e,t,i)=>{const o=(n=e,Math.round(Math.round(n/r)*r*1e8)/1e8);var n;let a=s.get(o);void 0===a&&(a={price:o,bidQty:0,askQty:0},s.set(o,a)),"bid"===i?a.bidQty+=t:a.askQty+=t};for(const t of e.bids)o(t.price,t.qty,"bid");for(const t of e.asks)o(t.price,t.qty,"ask");return Array.from(s.values()).sort((e,t)=>t.price-e.price)}function w(e,t,i,r,s){const o=e.filter(e=>{const s=t(e.price);return s>=-r&&s<=i+r});if(o.length<=s)return o;const n=i/2;return o.map(e=>({r:e,d:Math.abs(t(e.price)-n)})).sort((e,t)=>e.d-t.d).slice(0,s).map(e=>e.r).sort((e,t)=>t.price-e.price)}const k={tickSize:.05,width:96,groupBy:1,maxRows:60,rowHeight:14};class P{constructor(e={}){Object.defineProperty(this,"_opts",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_depth",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_host",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"_rowHits",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._opts={...k,...e}}attached(e){this._host=e}detached(){this._host=null}zOrder(){return"top"}setDepth(e){this._depth=e,this._host?.requestUpdate()}tier(){return null===this._depth?"none":g(this._depth)}draw(e,t){if(this._rowHits=[],null===this._depth)return;const i=w(v(this._depth,this._opts.tickSize,this._opts.groupBy),e=>t.priceScale.priceToY(e),t.plotHeight,this._opts.rowHeight,this._opts.maxRows);if(0===i.length)return;const r=t.dpr,s=this._opts.width*r,o=(t.plotWidth-this._opts.width)*r,n=o+s/2,a=this._opts.rowHeight*r;let l=1;for(const e of i)l=Math.max(l,e.bidQty,e.askQty);e.save(),e.font=9*r+"px system-ui, sans-serif",e.textBaseline="middle";for(const c of i){const i=t.priceScale.priceToY(c.price)*r;if(c.bidQty>0){e.fillStyle=`rgba(38,166,154,${.15+c.bidQty/l*.5})`;const d=s/2*(c.bidQty/l);e.fillRect(n-d,i-a/2,d,a-1),e.fillStyle="#bfeee8",e.textAlign="left",e.fillText(String(c.bidQty),o+2*r,i),this._rowHits.push({price:c.price,y:t.priceScale.priceToY(c.price),side:"bid"})}if(c.askQty>0){e.fillStyle=`rgba(239,83,80,${.15+c.askQty/l*.5})`;const d=s/2*(c.askQty/l);e.fillRect(n,i-a/2,d,a-1),e.fillStyle="#f6c9c8",e.textAlign="right",e.fillText(String(c.askQty),o+s-2*r,i),this._rowHits.push({price:c.price,y:t.priceScale.priceToY(c.price),side:"ask"})}}e.restore()}hitTest(e,t,i){if(null===this._depth)return null;if(e<i.plotWidth-this._opts.width||e>i.plotWidth)return null;let r=null;for(const e of this._rowHits){const i=Math.abs(e.y-t);i<=this._opts.rowHeight/2&&(null===r||i<r.d)&&(r={price:e.price,side:e.side,d:i})}return null===r?null:{externalId:`ladder-${r.side}:${r.price}`,zOrder:"top",distance:r.d,cursor:"pointer"}}}const M="trade";export{l as BracketGroup,k as DEFAULT_DOM_LADDER_OPTIONS,P as DomLadder,d as FakeBroker,m as OrderEngine,a as PositionMarker,M as TRADE_TIER,c as TradeController,n as WorkingOrderLine,o as bracketValid,r as breakeven,v as buildRows,f as canTransition,p as isTerminal,e as isWorking,g as ladderCapability,s as riskReward,b as transition,t as unrealizedPnl,i as unrealizedPnlPercent,y as validateOrder,w as visibleRows,_ as withinPriceBand};
2
+ //# sourceMappingURL=openalgo-charts.trade.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openalgo-charts.trade.mjs","sources":["../src/trade/types.ts","../src/trade/pnl.ts","../src/trade/order-line.ts","../src/trade/position.ts","../src/trade/bracket.ts","../src/trade/trade-controller.ts","../src/trade/fake-broker.ts","../src/trade/order-state-machine.ts","../src/trade/validation.ts","../src/helpers/math.ts","../src/trade/order-engine.ts","../src/trade/dom-ladder.ts","../src/trade/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["isWorking","o","status","unrealizedPnl","position","ltp","avgPrice","netQty","unrealizedPnlPercent","sign","breakeven","chargesPerUnit","dir","riskReward","entry","stop","target","risk","Math","abs","bracketValid","side","WorkingOrderLine","constructor","order","Object","defineProperty","this","NaN","_order","attached","host","_host","detached","zOrder","update","requestUpdate","setLtp","_ltp","autoscaleInfo","p","triggerPrice","price","min","max","_price","draw","ctx","rc","y","round","priceScale","priceToY","dpr","plotHeight","color","theme","buy","sell","xEnd","plotWidth","save","strokeStyle","lineWidth","setLineDash","beginPath","moveTo","lineTo","stroke","remaining","qty","filledQty","label","type","format","Number","isNaN","diff","font","padX","boxH","textW","measureText","width","fillStyle","fillRect","textAlign","textBaseline","fillText","restore","hitTest","x","lineY","distance","externalId","id","cursor","PositionMarker","_position","entryY","pnl","profit","loss","axisText","ltpY","pct","toFixed","lastPriceText","symbol","BracketGroup","state","_state","yEntry","yStop","yTarget","tag","rr","dStop","dTarget","TradeController","value","Map","reconcile","orders","positions","_reconcileOrderLines","_reconcilePositions","_reconcileBrackets","seen","Set","role","add","existing","_orderLines","get","line","undefined","set","addPrimitive","has","removePrimitive","delete","_markers","marker","sl","tp","posBySymbol","map","keys","pos","_brackets","bg","onLtp","values","orderLineCount","size","positionCount","bracketCount","FakeBroker","onBook","cb","_bookListeners","push","_ltpListeners","setBook","_orders","_positions","emitLtp","onDepth","_depthListeners","emitDepth","depth","makeDepth","levels","tickSize","bids","asks","i","place","req","rejectNextPlace","reason","Error","orderId","_idCounter","_notify","modify","patch","find","cancel","filter","fill","TERMINAL","isTerminal","TRANSITIONS","pending_place","ack","partialFill","reject","reconnectAbsent","working","submitModify","submitCancel","cancelled","partial","modify_pending","cancel_pending","filled","rejected","stale","canTransition","event","transition","withinPriceBand","band","lower","upper","validateOrder","c","ok","freezeQty","snapped","step","priceBand","OrderEngine","opts","_feed","feed","_constraints","constraints","_mode","mode","_armed","armed","_gate","gate","_minModifyMs","minModifyIntervalMs","_now","now","performance","_idGen","idGen","_counter","_onValidationError","onValidationError","clientId","placeOrder","snappedPrice","v","token","clientToken","_sentTokens","Promise","resolve","finalReq","tracked","brokerId","_byBroker","err","String","message","placeMarket","linkOco","clientIdA","clientIdB","a","b","ocoPeer","requestModify","_pendingModify","last","_lastModifyAt","Infinity","_flushModify","commitModify","cancelOrder","_cancelOcoPeer","onFill","full","peer","onReconnect","presentBrokerIds","ladderCapability","n","length","buildRows","groupBy","key","row","bidQty","askQty","Array","from","sort","visibleRows","rows","rowHeight","maxRows","onScreen","r","centre","d","slice","DEFAULT_DOM_LADDER_OPTIONS","DomLadder","options","_opts","setDepth","_depth","tier","_rowHits","stripW","x0","mid","rowH","maxQty","yc","w","best","h","TRADE_TIER"],"mappings":"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"}