highcharts
Version:
JavaScript charting framework
14 lines • 2.68 kB
JavaScript
!/**
* Highstock JS v13.0.1 (2026-08-17)
* @module highcharts/indicators/tema
* @requires highcharts
* @requires highcharts/modules/stock
*
* Indicator series type for Highcharts Stock
*
* (c) 2010-2026 Highsoft AS
* Author: Rafał Sebestjański
*
* A commercial license may be required depending on use,
* see www.highcharts.com/license
*/function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/indicators/tema",["highcharts/highcharts"],function(e){return t(e,e.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/indicators/tema"]=t(e._Highcharts,e._Highcharts.SeriesRegistry):e.Highcharts=t(e.Highcharts,e.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(e,t)=>(()=>{"use strict";var r={512(e){e.exports=t},944(t){t.exports=e}};let l={};function s(e){let t=l[e];if(void 0!==t)return t.exports;let i=l[e]={exports:{}};return r[e](i,i.exports,s),i.exports}s.n=e=>{let t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{if(Array.isArray(t))for(var r=0;r<t.length;){var l=t[r++],i=t[r++];s.o(e,l)?0===i&&r++:0===i?Object.defineProperty(e,l,{enumerable:!0,value:t[r++]}):Object.defineProperty(e,l,{enumerable:!0,get:i})}else for(var l in t)s.o(t,l)&&!s.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:t[l]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let i={};s.d(i,{default:()=>v});var a=s(944),o=s.n(a),n=s(512),h=s.n(n);let{ema:u}=h().seriesTypes;class p extends u{getEMA(e,t,r,l,s,i){return super.calculateEma(i||[],e,void 0===s?1:s,this.EMApercent,t,void 0===l?-1:l,r)}getTemaPoint(e,t,r,l){return[e[l-3],(0,a.correctFloat)(3*r.level1-3*r.level2+r.level3)]}getValues(e,t){let r=t.period,l=2*r,s=3*r,i=e.xData,o=e.yData,n=o?o.length:0,h=[],u=[],p=[],v=[],c=[],d={},g=-1,f=0,y=0,m,x,b,A;if(this.EMApercent=2/(r+1),!(n<3*r-2)){for((0,a.isArray)(o[0])&&(g=t.index?t.index:0),y=(f=super.accumulatePeriodPoints(r,g,o))/r,f=0,b=r;b<n+3;b++)b<n+1&&(d.level1=this.getEMA(o,m,y,g,b)[1],v.push(d.level1)),m=d.level1,b<l?f+=d.level1:(b===l&&(y=f/r,f=0),d.level1=v[b-r-1],d.level2=this.getEMA([d.level1],x,y)[1],c.push(d.level2),x=d.level2,b<s?f+=d.level2:(b===s&&(y=f/r),b===n+1&&(d.level1=v[b-r-1],d.level2=this.getEMA([d.level1],x,y)[1],c.push(d.level2)),d.level1=v[b-r-2],d.level2=c[b-2*r-1],d.level3=this.getEMA([d.level2],d.prevLevel3,y)[1],(A=this.getTemaPoint(i,s,d,b))&&(h.push(A),u.push(A[0]),p.push(A[1])),d.prevLevel3=d.level3));return{values:h,xData:u,yData:p}}}}p.defaultOptions=(0,a.merge)(u.defaultOptions),h().registerSeriesType("tema",p);let v=o();return i.default})());