openalgo-charts 2.2.2 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{registerChartType as e}from"./openalgo-charts.mjs";function t(e,t,i){const r=e.boxSize;return"number"==typeof r&&r>0?r:void 0!==t.boxSize&&t.boxSize>0?t.boxSize:i}function i(e,i,r,s,o,h,l=1/0){if(0===i.length)return;const n=function(e){let t=1/0;for(const{bar:i}of e){const e=i.high-i.low;e>0&&e<t&&(t=e)}return Number.isFinite(t)?t:0}(i),a=Math.max(3,Math.floor(s*o*.7))/2,u=l===1/0?1/0:l*o;e.save(),e.lineWidth=Math.max(1,Math.floor(o));for(const{x:s,bar:l}of i){const i=t(l,h,n);if(!(i>0))continue;const _=Math.round(l.low/i),c=Math.round(l.high/i)-1;if(c<_)continue;if(c-_+1>4e3)continue;const b=l.close>=l.open;e.strokeStyle=b?h.upColor??"#26a69a":h.downColor??"#ef5350";const f=s*o;for(let t=_;t<=c;t++){const s=r((t+1)*i)*o,h=r(t*i)*o;h<0||s>u||(e.beginPath(),b?(e.moveTo(f-a,s),e.lineTo(f+a,h),e.moveTo(f+a,s),e.lineTo(f-a,h)):e.ellipse(f,(s+h)/2,a,Math.abs(h-s)/2,0,0,2*Math.PI),e.stroke())}}e.restore()}function r(e){let t=-1/0;const i=[];for(const r of e){let e=r.time;e<=t&&(e=t+1),t=e,i.push(e===r.time?r:{...r,time:e})}return i}function s(e,t){e.reset();const i=[];for(const r of t)i.push(...e.push(r));return e.flush&&i.push(...e.flush()),r(i)}class o{constructor(){Object.defineProperty(this,"_prevOpen",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_prevClose",{enumerable:!0,configurable:!0,writable:!0,value:NaN})}reset(){this._prevOpen=NaN,this._prevClose=NaN}push(e){const t=(e.open+e.high+e.low+e.close)/4,i=Number.isNaN(this._prevOpen)?(e.open+e.close)/2:(this._prevOpen+this._prevClose)/2,r=Math.max(e.high,i,t),s=Math.min(e.low,i,t);return this._prevOpen=i,this._prevClose=t,[{time:e.time,open:i,high:r,low:s,close:t,volume:e.volume}]}}class h{constructor(e){if(Object.defineProperty(this,"_box",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_edge",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),e.boxSize<=0)throw new Error("openalgo-charts: Renko boxSize must be > 0");this._box=e.boxSize}reset(){this._edge=NaN}push(e){const t=e.close,i=[];if(Number.isNaN(this._edge))return this._edge=Math.floor(t/this._box)*this._box,i;for(;t>=this._edge+this._box;){const t=this._edge,r=this._edge+this._box;i.push({time:e.time,open:t,high:r,low:t,close:r}),this._edge=r}for(;t<=this._edge-this._box;){const t=this._edge,r=this._edge-this._box;i.push({time:e.time,open:t,high:t,low:r,close:r}),this._edge=r}return i}}class l{constructor(e){if(Object.defineProperty(this,"_range",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_cur",{enumerable:!0,configurable:!0,writable:!0,value:null}),e.range<=0)throw new Error("openalgo-charts: range must be > 0");this._range=e.range}reset(){this._cur=null}push(e){const t=e.close,i=[];return null===this._cur?this._cur={time:e.time,open:t,high:t,low:t,close:t}:(this._cur.high=Math.max(this._cur.high,t),this._cur.low=Math.min(this._cur.low,t),this._cur.close=t,this._cur.time=e.time),this._cur.high-this._cur.low>=this._range&&(i.push(this._cur),this._cur=null),i}flush(){if(null===this._cur)return[];const e=this._cur;return this._cur=null,[e]}}class n{constructor(e={lines:3}){Object.defineProperty(this,"_n",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_lines",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._n=Math.max(1,e.lines)}reset(){this._lines=[]}push(e){const t=e.close;if(0===this._lines.length)return this._lines.push({open:t,close:t}),[];const i=this._lines.slice(-this._n);let r=-1/0,s=1/0;for(const e of i)r=Math.max(r,e.open,e.close),s=Math.min(s,e.open,e.close);const o=this._lines[this._lines.length-1];let h=null;return(t>r||t<s)&&(h={open:o.close,close:t}),null===h?[]:(this._lines.push(h),[{time:e.time,open:h.open,high:Math.max(h.open,h.close),low:Math.min(h.open,h.close),close:h.close}])}}class a{constructor(e){Object.defineProperty(this,"_period",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_prevClose",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_sum",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_n",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_atr",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),this._period=Math.max(1,Math.floor(e))}reset(){this._prevClose=NaN,this._sum=0,this._n=0,this._atr=NaN}push(e){const t=Number.isNaN(this._prevClose)?e.high-e.low:Math.max(e.high-e.low,Math.abs(e.high-this._prevClose),Math.abs(e.low-this._prevClose));this._prevClose=e.close,this._n<this._period?(this._sum+=t,this._n+=1,this._atr=this._sum/this._n):this._atr=(this._atr*(this._period-1)+t)/this._period}value(){return this._atr}}class u{constructor(e){Object.defineProperty(this,"_reversal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_method",{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,"_fixedBox",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_percent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_atrMult",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_atr",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_box",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_dir",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_top",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_bot",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_time",{enumerable:!0,configurable:!0,writable:!0,value:0});const t=e.mode??"fixed";if(this._mode=t,this._reversal=Math.max(1,Math.floor(e.reversal??3)),this._method=e.method??"hl",this._fixedBox=e.boxSize??NaN,this._percent=e.percent??NaN,this._atrMult=e.atrMultiplier??1,this._atr=new a(e.atrPeriod??14),"fixed"===t&&!(this._fixedBox>0))throw new Error("openalgo-charts: P&F boxSize must be > 0");if("percent"===t&&!(this._percent>0))throw new Error("openalgo-charts: P&F percent must be > 0")}get boxSize(){return this._fixedBox}reset(){this._box=NaN,this._dir=0,this._top=NaN,this._bot=NaN,this._time=0,this._atr.reset()}_resolveBox(e){let t=NaN;if(t="fixed"===this._mode?this._fixedBox:"percent"===this._mode?Math.abs(e)*this._percent/100:this._atr.value()*this._atrMult,t>0&&Number.isFinite(t))return t;if(this._box>0)return this._box;const i=.01*Math.abs(e);return i>0?i:1}_column(){const e=this._box,t=this._bot*e,i=(this._top+1)*e,r=this._dir>=0;return{time:this._time,open:r?t:i,close:r?i:t,high:i,low:t,boxSize:e,boxes:this._top-this._bot+1}}push(e){"atr"===this._mode&&this._atr.push(e);const t="hl"===this._method,i=t?e.high:e.close,r=t?e.low:e.close;if(Number.isNaN(this._top)){this._box=this._resolveBox(e.close);const t=Math.floor(e.close/this._box);return this._top=t,this._bot=t,this._dir=0,this._time=e.time,[]}const s=Math.floor(i/this._box),o=Math.floor(r/this._box);if(0===this._dir){const t=s-this._top,i=this._bot-o;return t<=0&&i<=0||(t>=i?(this._top=s,this._dir=1):(this._bot=o,this._dir=-1),this._time=e.time),[]}const h=[];if(this._dir>0){if(s>this._top)this._top=s;else if(this._top-o>=this._reversal){const t=this._top*this._box;h.push(this._column()),this._box=this._resolveBox(r),this._top=Math.ceil(t/this._box)-1,this._bot=Math.floor(r/this._box),this._dir=-1,this._time=e.time}}else if(o<this._bot)this._bot=o;else if(s-this._bot>=this._reversal){const t=(this._bot+1)*this._box;h.push(this._column()),this._box=this._resolveBox(i),this._bot=Math.floor(t/this._box),this._top=Math.floor(i/this._box),this._dir=1,this._time=e.time}return h}flush(){return 0===this._dir||Number.isNaN(this._top)?[]:[this._column()]}}function _(e,t,i){return{time:e,open:t,high:t,low:t,close:t,volume:i?1:0}}class c{constructor(e){if(Object.defineProperty(this,"_reversal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dir",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_ext",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_prevShoulder",{enumerable:!0,configurable:!0,writable:!0,value:-1/0}),Object.defineProperty(this,"_prevWaist",{enumerable:!0,configurable:!0,writable:!0,value:1/0}),Object.defineProperty(this,"_thick",{enumerable:!0,configurable:!0,writable:!0,value:!1}),e.reversal<=0)throw new Error("openalgo-charts: Kagi reversal must be > 0");this._reversal=e.reversal}reset(){this._dir=0,this._ext=NaN,this._prevShoulder=-1/0,this._prevWaist=1/0,this._thick=!1}push(e){const t=e.close;if(Number.isNaN(this._ext))return this._ext=t,[];const i=[];return this._dir>=0?t>this._ext?(this._ext=t,t>this._prevShoulder&&(this._thick=!0)):this._ext-t>=this._reversal&&(i.push(_(e.time,this._ext,this._thick)),this._prevShoulder=this._ext,this._dir=-1,this._ext=t):t<this._ext?(this._ext=t,t<this._prevWaist&&(this._thick=!1)):t-this._ext>=this._reversal&&(i.push(_(e.time,this._ext,this._thick)),this._prevWaist=this._ext,this._dir=1,this._ext=t),i}flush(){return Number.isNaN(this._ext)?[]:[_(0,this._ext,this._thick)]}}const b="transform";let f=!1;function p(){f||(f=!0,e("point-figure",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,r,s,o,h,l)=>i(e,t,r,s,o,h,l.plotHeight),extents:e=>({min:e.low,max:e.high})}),e("kagi",{defaultStyle:{thickColor:"#26a69a",thinColor:"#ef5350"},isPriceSeries:!0,draw:(e,t,i,r,s,o)=>function(e,t,i,r,s){if(t.length<2)return;const o=s.thickColor??"#26a69a",h=s.thinColor??"#ef5350",l=Math.max(2,Math.round(2.5*r)),n=Math.max(1,Math.round(r));e.save();for(let s=1;s<t.length;s++){const a=t[s-1],u=t[s],_=(u.bar.volume??0)>=1;e.strokeStyle=_?o:h,e.lineWidth=_?l:n;const c=a.x*r,b=u.x*r,f=i(a.bar.close)*r,p=i(u.bar.close)*r;e.beginPath(),e.moveTo(c,f),e.lineTo(b,f),e.lineTo(b,p),e.stroke()}e.restore()}(e,t,i,s,o),extents:e=>({min:e.close,max:e.close})}))}p();export{o as HeikinAshiTransform,c as KagiTransform,n as LineBreakTransform,u as PointFigureTransform,l as RangeBarsTransform,h as RenkoTransform,b as TRANSFORM_TIER,r as ensureIncreasingTimes,p as registerTransformChartTypes,s as runTransform};
1
+ import{registerChartType as e}from"./openalgo-charts.mjs";function t(e,t,i){const o=e.boxSize;return"number"==typeof o&&o>0?o:void 0!==t.boxSize&&t.boxSize>0?t.boxSize:i}function i(e,i,o,r,s,n,h=1/0){if(0===i.length)return;const l=function(e){let t=1/0;for(const{bar:i}of e){const e=i.high-i.low;e>0&&e<t&&(t=e)}return Number.isFinite(t)?t:0}(i),a=Math.max(3,Math.floor(r*s*.7))/2,u=h===1/0?1/0:h*s;e.save(),e.lineWidth=Math.max(1,Math.floor(s));for(const{x:r,bar:h}of i){const i=t(h,n,l);if(!(i>0))continue;const c=Math.round(h.low/i),_=Math.round(h.high/i)-1;if(_<c)continue;if(_-c+1>4e3)continue;const b=h.close>=h.open;e.strokeStyle=b?n.upColor??"#26a69a":n.downColor??"#ef5350";const f=r*s;for(let t=c;t<=_;t++){const r=o((t+1)*i)*s,n=o(t*i)*s;n<0||r>u||(e.beginPath(),b?(e.moveTo(f-a,r),e.lineTo(f+a,n),e.moveTo(f+a,r),e.lineTo(f-a,n)):e.ellipse(f,(r+n)/2,a,Math.abs(n-r)/2,0,0,2*Math.PI),e.stroke())}}e.restore()}function o(e){let t=-1/0;const i=[];for(const o of e){let e=o.time;e<=t&&(e=t+1),t=e,i.push(e===o.time?o:{...o,time:e})}return i}function r(e,t){e.reset();const i=[];for(const o of t)i.push(...e.push(o));return e.flush&&i.push(...e.flush()),o(i)}class s{constructor(){Object.defineProperty(this,"_prevOpen",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_prevClose",{enumerable:!0,configurable:!0,writable:!0,value:NaN})}reset(){this._prevOpen=NaN,this._prevClose=NaN}push(e){const t=(e.open+e.high+e.low+e.close)/4,i=Number.isNaN(this._prevOpen)?(e.open+e.close)/2:(this._prevOpen+this._prevClose)/2,o=Math.max(e.high,i,t),r=Math.min(e.low,i,t);return this._prevOpen=i,this._prevClose=t,[{time:e.time,open:i,high:o,low:r,close:t,volume:e.volume}]}}class n{constructor(e){if(Object.defineProperty(this,"_box",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_edge",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),e.boxSize<=0)throw new Error("openalgo-charts: Renko boxSize must be > 0");this._box=e.boxSize}reset(){this._edge=NaN}push(e){const t=e.close,i=[];if(Number.isNaN(this._edge))return this._edge=Math.floor(t/this._box)*this._box,i;for(;t>=this._edge+this._box;){const t=this._edge,o=this._edge+this._box;i.push({time:e.time,open:t,high:o,low:t,close:o}),this._edge=o}for(;t<=this._edge-this._box;){const t=this._edge,o=this._edge-this._box;i.push({time:e.time,open:t,high:t,low:o,close:o}),this._edge=o}return i}}class h{constructor(e){if(Object.defineProperty(this,"_range",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_cur",{enumerable:!0,configurable:!0,writable:!0,value:null}),e.range<=0)throw new Error("openalgo-charts: range must be > 0");this._range=e.range}reset(){this._cur=null}push(e){const t=e.close,i=[];return null===this._cur?this._cur={time:e.time,open:t,high:t,low:t,close:t}:(this._cur.high=Math.max(this._cur.high,t),this._cur.low=Math.min(this._cur.low,t),this._cur.close=t,this._cur.time=e.time),this._cur.high-this._cur.low>=this._range&&(i.push(this._cur),this._cur=null),i}flush(){if(null===this._cur)return[];const e=this._cur;return this._cur=null,[e]}}class l{constructor(e={lines:3}){Object.defineProperty(this,"_n",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_lines",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this._n=Math.max(1,e.lines)}reset(){this._lines=[]}push(e){const t=e.close;if(0===this._lines.length)return this._lines.push({open:t,close:t}),[];const i=this._lines.slice(-this._n);let o=-1/0,r=1/0;for(const e of i)o=Math.max(o,e.open,e.close),r=Math.min(r,e.open,e.close);const s=this._lines[this._lines.length-1];let n=null;return(t>o||t<r)&&(n={open:s.close,close:t}),null===n?[]:(this._lines.push(n),[{time:e.time,open:n.open,high:Math.max(n.open,n.close),low:Math.min(n.open,n.close),close:n.close}])}}class a{constructor(e){Object.defineProperty(this,"_period",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_prevClose",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_sum",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_n",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_atr",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),this._period=Math.max(1,Math.floor(e))}reset(){this._prevClose=NaN,this._sum=0,this._n=0,this._atr=NaN}push(e){const t=Number.isNaN(this._prevClose)?e.high-e.low:Math.max(e.high-e.low,Math.abs(e.high-this._prevClose),Math.abs(e.low-this._prevClose));this._prevClose=e.close,this._n<this._period?(this._sum+=t,this._n+=1,this._atr=this._sum/this._n):this._atr=(this._atr*(this._period-1)+t)/this._period}value(){return this._atr}}class u{constructor(e){Object.defineProperty(this,"_reversal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_method",{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,"_fixedBox",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_percent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_atrMult",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_atr",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_box",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_dir",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_top",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_bot",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_time",{enumerable:!0,configurable:!0,writable:!0,value:0});const t=e.mode??"fixed";if(this._mode=t,this._reversal=Math.max(1,Math.floor(e.reversal??3)),this._method=e.method??"hl",this._fixedBox=e.boxSize??NaN,this._percent=e.percent??NaN,this._atrMult=e.atrMultiplier??1,this._atr=new a(e.atrPeriod??14),"fixed"===t&&!(this._fixedBox>0))throw new Error("openalgo-charts: P&F boxSize must be > 0");if("percent"===t&&!(this._percent>0))throw new Error("openalgo-charts: P&F percent must be > 0")}get boxSize(){return this._fixedBox}reset(){this._box=NaN,this._dir=0,this._top=NaN,this._bot=NaN,this._time=0,this._atr.reset()}_resolveBox(e){let t=NaN;if(t="fixed"===this._mode?this._fixedBox:"percent"===this._mode?Math.abs(e)*this._percent/100:this._atr.value()*this._atrMult,t>0&&Number.isFinite(t))return t;if(this._box>0)return this._box;const i=.01*Math.abs(e);return i>0?i:1}_column(){const e=this._box,t=this._bot*e,i=(this._top+1)*e,o=this._dir>=0;return{time:this._time,open:o?t:i,close:o?i:t,high:i,low:t,boxSize:e,boxes:this._top-this._bot+1}}push(e){"atr"===this._mode&&this._atr.push(e);const t="hl"===this._method,i=t?e.high:e.close,o=t?e.low:e.close;if(Number.isNaN(this._top)){this._box=this._resolveBox(e.close);const t=Math.floor(e.close/this._box);return this._top=t,this._bot=t,this._dir=0,this._time=e.time,[]}const r=Math.floor(i/this._box),s=Math.floor(o/this._box);if(0===this._dir){const t=r-this._top,i=this._bot-s;return t<=0&&i<=0||(t>=i?(this._top=r,this._dir=1):(this._bot=s,this._dir=-1),this._time=e.time),[]}const n=[];if(this._dir>0){if(r>this._top)this._top=r;else if(this._top-s>=this._reversal){const t=this._top*this._box;n.push(this._column()),this._box=this._resolveBox(o),this._top=Math.ceil(t/this._box)-1,this._bot=Math.floor(o/this._box),this._dir=-1,this._time=e.time}}else if(s<this._bot)this._bot=s;else if(r-this._bot>=this._reversal){const t=(this._bot+1)*this._box;n.push(this._column()),this._box=this._resolveBox(i),this._bot=Math.floor(t/this._box),this._top=Math.floor(i/this._box),this._dir=1,this._time=e.time}return n}flush(){return 0===this._dir||Number.isNaN(this._top)?[]:[this._column()]}}function c(e,t,i){return{time:e,open:t,high:t,low:t,close:t,volume:i?1:0}}class _{constructor(e){if(Object.defineProperty(this,"_reversal",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"_dir",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"_ext",{enumerable:!0,configurable:!0,writable:!0,value:NaN}),Object.defineProperty(this,"_prevShoulder",{enumerable:!0,configurable:!0,writable:!0,value:-1/0}),Object.defineProperty(this,"_prevWaist",{enumerable:!0,configurable:!0,writable:!0,value:1/0}),Object.defineProperty(this,"_thick",{enumerable:!0,configurable:!0,writable:!0,value:!1}),e.reversal<=0)throw new Error("openalgo-charts: Kagi reversal must be > 0");this._reversal=e.reversal}reset(){this._dir=0,this._ext=NaN,this._prevShoulder=-1/0,this._prevWaist=1/0,this._thick=!1}push(e){const t=e.close;if(Number.isNaN(this._ext))return this._ext=t,[];const i=[];return this._dir>=0?t>this._ext?(this._ext=t,t>this._prevShoulder&&(this._thick=!0)):this._ext-t>=this._reversal&&(i.push(c(e.time,this._ext,this._thick)),this._prevShoulder=this._ext,this._dir=-1,this._ext=t):t<this._ext?(this._ext=t,t<this._prevWaist&&(this._thick=!1)):t-this._ext>=this._reversal&&(i.push(c(e.time,this._ext,this._thick)),this._prevWaist=this._ext,this._dir=1,this._ext=t),i}flush(){return Number.isNaN(this._ext)?[]:[c(0,this._ext,this._thick)]}}const b={abs:1,sqrt:1,ln:1,log:1,log10:1,exp:1,min:2,max:2,pow:2};class f extends Error{constructor(e,t){super(`openalgo-charts: ${e}`),Object.defineProperty(this,"position",{enumerable:!0,configurable:!0,writable:!0,value:t}),this.name="ExpressionError"}}const p=/[A-Za-z_]/,m=/[A-Za-z0-9_.:!#&]/;const d={"+":1,"-":1,"*":2,"/":2,"^":3};function v(e,t){let i=0;const o=()=>e[i];function r(){const e=o();if(void 0===e)throw new f("expression ended early",t.length);if("num"===e.t)return i++,{k:"num",v:e.v};if("sym"===e.t){i++;const r=e.v.toLowerCase();if(r in b&&"op"===o()?.t&&"("===o()?.v){i++;const s=[];if("op"!==o()?.t||")"!==o()?.v)for(;s.push(n(0)),"op"===o()?.t&&","===o()?.v;)i++;if("op"!==o()?.t||")"!==o()?.v)throw new f(`${r}( is not closed`,o()?.i??t.length);i++;const h=b[r];if(s.length!==h)throw new f(`${r}() takes ${h} argument${1===h?"":"s"}, got ${s.length}`,e.i);return{k:"fn",name:r,args:s}}return{k:"sym",name:e.v}}if("("===e.v){i++;const t=n(0);if("op"!==o()?.t||")"!==o()?.v)throw new f("( is not closed",e.i);return i++,t}if("-"===e.v)return i++,{k:"neg",a:s()};if("+"===e.v)return i++,s();throw new f(`unexpected "${e.v}"`,e.i)}function s(){return r()}function n(e){let t=s();for(;;){const r=o();if(void 0===r||"op"!==r.t||!(r.v in d))break;const s=d[r.v];if(s<e)break;i++;const h=n("^"===r.v?s:s+1);t={k:"bin",op:r.v,a:t,b:h}}return t}const h=n(0);if(i<e.length)throw new f(`unexpected "${e[i].v}"`,e[i].i);return h}function g(e,t){if("sym"!==e.k)if("neg"!==e.k){if("bin"===e.k)return g(e.a,t),void g(e.b,t);if("fn"===e.k)for(const i of e.args)g(i,t)}else g(e.a,t);else t.includes(e.name)||t.push(e.name)}function x(e){const t=function(e){const t=[];let i=0;for(;i<e.length;){const o=e[i];if(" "!==o&&"\t"!==o&&"\n"!==o&&"\r"!==o){if("'"===o||'"'===o){const r=e.indexOf(o,i+1);if(-1===r)throw new f(`unclosed ${o} in expression`,i);const s=e.slice(i+1,r);if(""===s)throw new f("empty quoted symbol",i);t.push({t:"sym",v:s,i:i}),i=r+1;continue}if(/[0-9]/.test(o)||"."===o&&/[0-9]/.test(e[i+1]??"")){let o=i;for(;o<e.length&&/[0-9.]/.test(e[o]);)o++;const r=e.slice(i,o),s=Number(r);if(!Number.isFinite(s))throw new f(`"${r}" is not a number`,i);t.push({t:"num",v:s,i:i}),i=o;continue}if(p.test(o)){let o=i;for(;o<e.length&&m.test(e[o]);)o++;let r=e.slice(i,o);for(;r.endsWith(":");)r=r.slice(0,-1),o--;t.push({t:"sym",v:r,i:i}),i=o;continue}if("+-*/^(),".includes(o))t.push({t:"op",v:o,i:i}),i++;else if("×"!==o)if("÷"!==o){if("−"!==o)throw new f(`unexpected "${o}" in expression`,i);t.push({t:"op",v:"-",i:i}),i++}else t.push({t:"op",v:"/",i:i}),i++;else t.push({t:"op",v:"*",i:i}),i++}else i++}return t}(e);if(0===t.length)throw new f("expression is empty",0);const i=v(t,e),o=[];if(g(i,o),0===o.length)throw new f("expression names no symbol",0);return{source:e,symbols:o,ast:i}}function w(e){try{return"sym"===x(e).ast.k}catch{return!1}}const N={lo:NaN,hi:NaN},M=e=>!Number.isFinite(e.lo)||!Number.isFinite(e.hi),y=e=>({lo:Math.min(...e),hi:Math.max(...e)});function P(e,t){if(t.lo!==t.hi)return N;const i=t.lo,o=[Math.pow(e.lo,i),Math.pow(e.hi,i)];return e.lo<0&&e.hi>0&&Number.isInteger(i)&&i%2==0&&o.push(0),y(o)}function O(e,t){return y([t(e.lo),t(e.hi)])}function j(e,t){switch(e.k){case"num":return{lo:e.v,hi:e.v};case"sym":return t(e.name)??N;case"neg":{const i=j(e.a,t);return M(i)?N:{lo:-i.hi,hi:-i.lo}}case"bin":{const i=j(e.a,t),o=j(e.b,t);if(M(i)||M(o))return N;switch(e.op){case"+":return{lo:i.lo+o.lo,hi:i.hi+o.hi};case"-":return{lo:i.lo-o.hi,hi:i.hi-o.lo};case"*":return function(e,t){return y([e.lo*t.lo,e.lo*t.hi,e.hi*t.lo,e.hi*t.hi])}(i,o);case"/":return function(e,t){return t.lo<=0&&t.hi>=0?N:y([e.lo/t.lo,e.lo/t.hi,e.hi/t.lo,e.hi/t.hi])}(i,o);case"^":return P(i,o)}return N}case"fn":{const i=e.args.map(e=>j(e,t));if(i.some(M))return N;const[o,r]=i;switch(e.name){case"abs":return function(e){return e.lo>=0?e:e.hi<=0?{lo:-e.hi,hi:-e.lo}:{lo:0,hi:Math.max(-e.lo,e.hi)}}(o);case"sqrt":return o.lo<0?N:O(o,Math.sqrt);case"ln":case"log":return o.lo<=0?N:O(o,Math.log);case"log10":return o.lo<=0?N:O(o,Math.log10);case"exp":return O(o,Math.exp);case"min":return{lo:Math.min(o.lo,r.lo),hi:Math.min(o.hi,r.hi)};case"max":return{lo:Math.max(o.lo,r.lo),hi:Math.max(o.hi,r.hi)};case"pow":return P(o,r)}return N}}}function k(e,t,i={}){const o="interval"===i.ohlc,r=i.primary??e.symbols[0],s=t[r];if(void 0===s||0===s.length)return[];const n=new Map;for(const i of e.symbols){if(i===r)continue;const e=t[i];if(void 0===e)return[];const o=new Map;for(const t of e)o.set(t.time,t);n.set(i,o)}const h=[],l=new Map;for(const t of s){l.clear(),l.set(r,t);let i=!0;for(const[e,o]of n){const r=o.get(t.time);if(void 0===r){i=!1;break}l.set(e,r)}if(!i)continue;const s=e=>t=>{const i=l.get(t);return void 0===i?null:{lo:i[e],hi:i[e]}},a=j(e.ast,s("open")),u=j(e.ast,s("close"));if(M(a)||M(u))continue;let c=Math.max(a.hi,u.hi),_=Math.min(a.lo,u.lo);if(o){const t=j(e.ast,e=>{const t=l.get(e);return void 0===t?null:{lo:t.low,hi:t.high}});if(M(t))continue;c=Math.max(c,t.hi),_=Math.min(_,t.lo)}h.push({time:t.time,open:a.lo,high:c,low:_,close:u.lo})}return h}const S="transform";let C=!1;function z(){C||(C=!0,e("point-figure",{defaultStyle:{},isPriceSeries:!0,draw:(e,t,o,r,s,n,h)=>i(e,t,o,r,s,n,h.plotHeight),extents:e=>({min:e.low,max:e.high})}),e("kagi",{defaultStyle:{thickColor:"#26a69a",thinColor:"#ef5350"},isPriceSeries:!0,draw:(e,t,i,o,r,s)=>function(e,t,i,o,r){if(t.length<2)return;const s=r.thickColor??"#26a69a",n=r.thinColor??"#ef5350",h=Math.max(2,Math.round(2.5*o)),l=Math.max(1,Math.round(o));e.save();for(let r=1;r<t.length;r++){const a=t[r-1],u=t[r],c=(u.bar.volume??0)>=1;e.strokeStyle=c?s:n,e.lineWidth=c?h:l;const _=a.x*o,b=u.x*o,f=i(a.bar.close)*o,p=i(u.bar.close)*o;e.beginPath(),e.moveTo(_,f),e.lineTo(b,f),e.lineTo(b,p),e.stroke()}e.restore()}(e,t,i,r,s),extents:e=>({min:e.close,max:e.close})}))}z();export{f as ExpressionError,s as HeikinAshiTransform,_ as KagiTransform,l as LineBreakTransform,u as PointFigureTransform,h as RangeBarsTransform,n as RenkoTransform,S as TRANSFORM_TIER,o as ensureIncreasingTimes,k as evaluateExpression,w as isPlainSymbol,x as parseExpression,z as registerTransformChartTypes,r as runTransform};
2
2
  //# sourceMappingURL=openalgo-charts.transform.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"openalgo-charts.transform.mjs","sources":["../src/render/point-figure.ts","../src/transform/transform.ts","../src/transform/heikin-ashi.ts","../src/transform/renko.ts","../src/transform/range-bars.ts","../src/transform/line-break.ts","../src/transform/point-figure.ts","../src/transform/kagi.ts","../src/transform/index.ts","../src/render/kagi.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null],"names":["boxOf","bar","style","inferred","own","boxSize","undefined","drawPointFigure","ctx","items","toY","barSpacing","dpr","plotHeight","Infinity","length","min","h","high","low","Number","isFinite","inferBox","r","Math","max","floor","bottom","save","lineWidth","x","box","k0","round","k1","up","close","open","strokeStyle","upColor","downColor","cx","k","yTop","yBot","beginPath","moveTo","lineTo","ellipse","abs","PI","stroke","restore","ensureIncreasingTimes","bars","prev","out","b","t","time","push","runTransform","transform","reset","flush","HeikinAshiTransform","constructor","Object","defineProperty","this","NaN","_prevOpen","_prevClose","haClose","haOpen","isNaN","haHigh","haLow","volume","RenkoTransform","options","Error","_box","_edge","p","lo","hi","RangeBarsTransform","range","_range","_cur","c","LineBreakTransform","lines","_n","_lines","recent","slice","maxHigh","minLow","l","last","WilderAtr","period","_period","_sum","_atr","tr","value","PointFigureTransform","mode","_mode","_reversal","reversal","_method","method","_fixedBox","_percent","percent","_atrMult","atrMultiplier","atrPeriod","_dir","_top","_bot","_time","_resolveBox","price","pct","_column","boxes","useHl","upPrice","downPrice","hb","lb","down","boundary","ceil","vertex","thick","KagiTransform","_ext","_prevShoulder","_prevWaist","_thick","TRANSFORM_TIER","_registered","registerTransformChartTypes","registerChartType","defaultStyle","isPriceSeries","draw","g","bs","s","rc","extents","thickColor","thinColor","_bs","thickW","thinW","i","cur","px","py","cy","drawKagi"],"mappings":"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"}
1
+ {"version":3,"file":"openalgo-charts.transform.mjs","sources":["../src/render/point-figure.ts","../src/transform/transform.ts","../src/transform/heikin-ashi.ts","../src/transform/renko.ts","../src/transform/range-bars.ts","../src/transform/line-break.ts","../src/transform/point-figure.ts","../src/transform/kagi.ts","../src/transform/expression.ts","../src/transform/index.ts","../src/render/kagi.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null],"names":["boxOf","bar","style","inferred","own","boxSize","undefined","drawPointFigure","ctx","items","toY","barSpacing","dpr","plotHeight","Infinity","length","min","h","high","low","Number","isFinite","inferBox","r","Math","max","floor","bottom","save","lineWidth","x","box","k0","round","k1","up","close","open","strokeStyle","upColor","downColor","cx","k","yTop","yBot","beginPath","moveTo","lineTo","ellipse","abs","PI","stroke","restore","ensureIncreasingTimes","bars","prev","out","b","t","time","push","runTransform","transform","reset","flush","HeikinAshiTransform","constructor","Object","defineProperty","this","NaN","_prevOpen","_prevClose","haClose","haOpen","isNaN","haHigh","haLow","volume","RenkoTransform","options","Error","_box","_edge","p","lo","hi","RangeBarsTransform","range","_range","_cur","c","LineBreakTransform","lines","_n","_lines","recent","slice","maxHigh","minLow","l","last","WilderAtr","period","_period","_sum","_atr","tr","value","PointFigureTransform","mode","_mode","_reversal","reversal","_method","method","_fixedBox","_percent","percent","_atrMult","atrMultiplier","atrPeriod","_dir","_top","_bot","_time","_resolveBox","price","pct","_column","boxes","useHl","upPrice","downPrice","hb","lb","down","boundary","ceil","vertex","thick","KagiTransform","_ext","_prevShoulder","_prevWaist","_thick","FN_ARITY","sqrt","ln","log","log10","exp","pow","ExpressionError","message","position","super","name","SYM_START","SYM_BODY","BP","parse","toks","src","peek","primary","v","fn","toLowerCase","args","expr","i","want","inner","a","unary","left","bp","right","op","collect","n","into","includes","parseExpression","source","end","indexOf","test","j","raw","endsWith","tokenize","ast","symbols","isPlainSymbol","NA","bad","span","xs","e","isInteger","mono","f","evalNode","leg","mul","div","map","some","absIv","evaluateExpression","legs","wantRange","ohlc","primaryName","grid","index","Map","s","rows","m","set","cur","pb","clear","whole","get","pick","field","TRANSFORM_TIER","_registered","registerTransformChartTypes","registerChartType","defaultStyle","isPriceSeries","draw","g","bs","rc","extents","thickColor","thinColor","_bs","thickW","thinW","px","py","cy","drawKagi"],"mappings":"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"}