UNPKG

@quyentran93/klinecharts

Version:

forked from klinecharts/KLineChart

7 lines 212 kB
/** * @license * KLineChart v10.0.0-alpha5.3 * Copyright (c) 2019 lihu. * Licensed under Apache License 2.0 https://www.apache.org/licenses/LICENSE-2.0 */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).klinecharts={})}(this,(function(t){"use strict";var e=function(t,i){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])},e(t,i)};function i(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Class extends value "+String(i)+" is not a constructor or null");function n(){this.constructor=t}e(t,i),t.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}var n,r,o,a,s,l,u,c,h,d,p=function(){return p=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++)for(var r in e=arguments[i])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t},p.apply(this,arguments)};function g(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(n=Object.getOwnPropertySymbols(t);r<n.length;r++)e.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(t,n[r])&&(i[n[r]]=t[n[r]])}return i}function v(t,e,i,n){return new(i||(i=Promise))((function(r,o){function a(t){try{l(n.next(t))}catch(t){o(t)}}function s(t){try{l(n.throw(t))}catch(t){o(t)}}function l(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i((function(t){t(e)}))).then(a,s)}l((n=n.apply(t,e||[])).next())}))}function f(t,e){var i,n,r,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(l){return function(s){if(i)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(i=1,n&&(r=2&s[0]?n.return:s[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,s[1])).done)return r;switch(n=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(r=o.trys,(r=r.length>0&&r[r.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]<r[3])){o.label=s[1];break}if(6===s[0]&&o.label<r[1]){o.label=r[1],r=s;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(s);break}r[2]&&o.ops.pop(),o.trys.pop();continue}s=e.call(t,o)}catch(t){s=[6,t],n=0}finally{i=r=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}function y(t){var e="function"==typeof Symbol&&Symbol.iterator,i=e&&t[e],n=0;if(i)return i.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function m(t,e){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var n,r,o=i.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)a.push(n.value)}catch(t){r={error:t}}finally{try{n&&!n.done&&(i=o.return)&&i.call(o)}finally{if(r)throw r.error}}return a}function _(t,e,i){if(i||2===arguments.length)for(var n,r=0,o=e.length;r<o;r++)!n&&r in e||(n||(n=Array.prototype.slice.call(e,0,r)),n[r]=e[r]);return t.concat(n||Array.prototype.slice.call(e))}function x(t,e){if(w(t)||w(e))for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var n=t[i],r=e[i];w(r)&&w(n)?x(n,r):E(e[i])&&(t[i]=b(e[i]))}}function b(t){if(!w(t))return t;var e=null;for(var i in e=T(t)?[]:{},t)if(Object.prototype.hasOwnProperty.call(t,i)){var n=t[i];w(n)?e[i]=b(n):e[i]=n}return e}function T(t){return"[object Array]"===Object.prototype.toString.call(t)}function C(t){return"function"==typeof t}function w(t){return"object"==typeof t&&E(t)}function S(t){return"number"==typeof t&&Number.isFinite(t)}function E(t){return null!=t}function P(t){return"boolean"==typeof t}function I(t){return"string"==typeof t}function M(t){return"transparent"===t||"none"===t||/^[rR][gG][Bb][Aa]\(([\s]*(2[0-4][0-9]|25[0-5]|[01]?[0-9][0-9]?)[\s]*,){3}[\s]*0[\s]*\)$/.test(t)||/^[hH][Ss][Ll][Aa]\(([\s]*(360|3[0-5][0-9]|[012]?[0-9][0-9]?)[\s]*,)([\s]*((100|[0-9][0-9]?)%|0)[\s]*,){2}([\s]*0[\s]*)\)$/.test(t)}function k(t,e){var i=t.replace(/^#/,""),n=parseInt(i,16),r=n>>8&255,o=255&n;return"rgba(".concat(n>>16&255,", ").concat(r,", ").concat(o,", ").concat(null!=e?e:1,")")}"function"==typeof SuppressedError&&SuppressedError,t.LineType=void 0,(n=t.LineType||(t.LineType={})).Dashed="dashed",n.Solid="solid",t.PathType=void 0,(r=t.PathType||(t.PathType={})).Stroke="stroke",r.Fill="fill",t.PolygonType=void 0,(o=t.PolygonType||(t.PolygonType={})).Stroke="stroke",o.Fill="fill",o.StrokeFill="stroke_fill",t.TooltipShowRule=void 0,(a=t.TooltipShowRule||(t.TooltipShowRule={})).Always="always",a.FollowCross="follow_cross",a.None="none",t.TooltipShowType=void 0,(s=t.TooltipShowType||(t.TooltipShowType={})).Standard="standard",s.Rect="rect",t.TooltipFeatureType=void 0,(l=t.TooltipFeatureType||(t.TooltipFeatureType={})).Path="path",l.IconFont="icon_font",t.TooltipFeaturePosition=void 0,(u=t.TooltipFeaturePosition||(t.TooltipFeaturePosition={})).Left="left",u.Middle="middle",u.Right="right",t.CandleTooltipRectPosition=void 0,(c=t.CandleTooltipRectPosition||(t.CandleTooltipRectPosition={})).Fixed="fixed",c.Pointer="pointer",t.CandleType=void 0,(h=t.CandleType||(t.CandleType={})).CandleSolid="candle_solid",h.CandleStroke="candle_stroke",h.CandleUpStroke="candle_up_stroke",h.CandleDownStroke="candle_down_stroke",h.Ohlc="ohlc",h.Area="area",function(t){t.CurrentOpen="current_open",t.PreviousClose="previous_close"}(d||(d={}));var D={RED:"#F92855",GREEN:"#2DC08E",WHITE:"#FFFFFF",GREY:"#76808F",BLUE:"#1677FF"};function A(){return{show:!0,size:"auto",axisLine:{show:!0,color:"#DDDDDD",size:1},tickText:{show:!0,color:D.GREY,size:12,family:"Helvetica Neue",weight:"normal",marginStart:4,marginEnd:6},tickLine:{show:!0,size:1,length:3,color:"#DDDDDD"}}}function F(){function e(){return{show:!0,line:{show:!0,style:t.LineType.Dashed,dashedValue:[4,2],size:1,color:D.GREY},text:{show:!0,style:t.PolygonType.Fill,color:D.WHITE,size:12,family:"Helvetica Neue",weight:"normal",borderStyle:t.LineType.Solid,borderDashedValue:[2,2],borderSize:1,borderColor:D.GREY,borderRadius:2,paddingLeft:4,paddingRight:4,paddingTop:4,paddingBottom:4,backgroundColor:D.GREY}}}return{show:!0,horizontal:e(),vertical:e()}}var R=/\\(\\)?/g,B=RegExp("[^.[\\]]+|\\[(?:([^\"'][^[]*)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))","g");function L(t,e,i){if(E(t)){var n=[];e.replace(B,(function(t){for(var e=[],i=1;i<arguments.length;i++)e[i-1]=arguments[i];var r=t;return E(e[1])?r=e[2].replace(R,"$1"):E(e[0])&&(r=e[0].trim()),n.push(r),""}));for(var r=t,o=0,a=n.length;E(r)&&o<a;)r=null==r?void 0:r[n[o++]];return E(r)?r:null!=i?i:"--"}return null!=i?i:"--"}function O(t,e){var i={};return t.formatToParts(new Date(e)).forEach((function(t){var e=t.type,n=t.value;switch(e){case"year":i.YYYY=n;break;case"month":i.MM=n;break;case"day":i.DD=n;break;case"hour":i.HH="24"===n?"00":n;break;case"minute":i.mm=n;break;case"second":i.ss=n}})),i}function W(t,e,i){var n=O(t,e);return i.replace(/YYYY|MM|DD|HH|mm|ss/g,(function(t){return n[t]}))}function V(t,e){var i=+t;return S(i)?i.toFixed(null!=e?e:2):"".concat(t)}function N(t){var e=+t;if(S(e)){if(e>1e9)return"".concat(+(e/1e9).toFixed(3),"B");if(e>1e6)return"".concat(+(e/1e6).toFixed(3),"M");if(e>1e3)return"".concat(+(e/1e3).toFixed(3),"K")}return"".concat(t)}function z(t,e){var i="".concat(t);if(0===e.length)return i;if(i.includes(".")){var n=i.split(".");return"".concat(n[0].replace(/(\d)(?=(\d{3})+$)/g,(function(t){return"".concat(t).concat(e)})),".").concat(n[1])}return i.replace(/(\d)(?=(\d{3})+$)/g,(function(t){return"".concat(t).concat(e)}))}function Y(t,e){var i="".concat(t);if(new RegExp("\\.0{"+e+",}[1-9][0-9]*$").test(i)){var n=i.split("."),r=n.length-1,o=n[r],a=/0*/.exec(o);if(E(a)){var s=a[0].length;return n[r]=o.replace(/0*/,"0{".concat(s,"}")),n.join(".")}}return i}var H,X=null;function G(t){var e,i;return null!==(i=null===(e=t.ownerDocument.defaultView)||void 0===e?void 0:e.devicePixelRatio)&&void 0!==i?i:1}function U(t,e,i){return"".concat(null!=e?e:"normal"," ").concat(null!=t?t:12,"px ").concat(null!=i?i:"Helvetica Neue")}function Z(t,e,i,n){if(!E(X)){var r=document.createElement("canvas"),o=G(r);(X=r.getContext("2d")).scale(o,o)}return X.font=U(e,i,n),Math.round(X.measureText(t).width)}t.ActionType=void 0,(H=t.ActionType||(t.ActionType={})).OnZoom="onZoom",H.OnScroll="onScroll",H.OnVisibleRangeChange="onVisibleRangeChange",H.OnCandleTooltipFeatureClick="onCandleTooltipFeatureClick",H.OnCrosshairChange="onCrosshairChange",H.OnCandleBarClick="onCandleBarClick",H.OnPaneDrag="onPaneDrag";var q,j,Q,K=function(){function t(){this._callbacks=[]}return t.prototype.subscribe=function(t){this._callbacks.indexOf(t)<0&&this._callbacks.push(t)},t.prototype.unsubscribe=function(t){if(C(t)){var e=this._callbacks.indexOf(t);e>-1&&this._callbacks.splice(e,1)}else this._callbacks=[]},t.prototype.execute=function(t){this._callbacks.forEach((function(e){e(t)}))},t.prototype.isEmpty=function(){return 0===this._callbacks.length},t}();function J(t,e,i,n){var r,o=t.result,a=t.figures,s=t.styles,l=L(s,"circles",i.circles),u=l.length,c=L(s,"bars",i.bars),h=c.length,d=L(s,"lines",i.lines),g=d.length,v=0,f=0,y=0,m=0;a.forEach((function(a){var s;switch(a.type){case"circle":m=v;var _=l[v%u];r=p(p({},_),{color:_.noChangeColor}),v++;break;case"bar":m=f;var x=c[f%h];r=p(p({},x),{color:x.noChangeColor}),f++;break;case"line":m=y,r=d[y%g],y++}if(E(a.type)){var b=null===(s=a.styles)||void 0===s?void 0:s.call(a,{data:{prev:o[e-1],current:o[e],next:o[e+1]},indicator:t,defaultStyles:i});n(a,p(p({},r),b),m)}}))}t.IndicatorSeries=void 0,(q=t.IndicatorSeries||(t.IndicatorSeries={})).Normal="normal",q.Price="price",q.Volume="volume",function(t){t.Feature="feature"}(j||(j={})),function(t){t.Loading="loading",t.Error="error",t.Ready="ready"}(Q||(Q={}));var $,tt=function(){function e(e){this.precision=4,this.calcParams=[],this.shouldOhlc=!1,this.shouldFormatBigNumber=!1,this.visible=!0,this.zLevel=0,this.series=t.IndicatorSeries.Normal,this.figures=[],this.minValue=null,this.maxValue=null,this.styles=null,this.shouldUpdate=function(t,e){var i=JSON.stringify(t.calcParams)!==JSON.stringify(e.calcParams)||t.figures!==e.figures||t.calc!==e.calc;return{calc:i,draw:i||t.shortName!==e.shortName||t.series!==e.series||t.minValue!==e.minValue||t.maxValue!==e.maxValue||t.precision!==e.precision||t.shouldOhlc!==e.shouldOhlc||t.shouldFormatBigNumber!==e.shouldFormatBigNumber||t.visible!==e.visible||t.zLevel!==e.zLevel||t.extendData!==e.extendData||t.regenerateFigures!==e.regenerateFigures||t.createTooltipDataSource!==e.createTooltipDataSource||t.draw!==e.draw}},this.calc=function(){return[]},this.regenerateFigures=null,this.createTooltipDataSource=null,this.draw=null,this.onClick=null,this.onDataStateChange=null,this.result=[],this._lockSeriesPrecision=!1,this.override(e),this._lockSeriesPrecision=!1}return e.prototype.override=function(t){var e,i,n=this.result,r=g(this,["result"]);this._prevIndicator=p(p({},b(r)),{result:n});var o=t.id,a=t.name,s=t.shortName,l=t.precision,u=t.styles,c=t.figures,h=t.calcParams,d=g(t,["id","name","shortName","precision","styles","figures","calcParams"]);!I(this.id)&&I(o)&&(this.id=o),I(this.name)||(this.name=null!=a?a:""),this.shortName=null!==(e=null!=s?s:this.shortName)&&void 0!==e?e:this.name,S(l)&&(this.precision=l,this._lockSeriesPrecision=!0),E(u)&&(null!==(i=this.styles)&&void 0!==i||(this.styles={}),x(this.styles,u)),x(this,d),E(h)&&(this.calcParams=h,C(this.regenerateFigures)&&(this.figures=this.regenerateFigures(this.calcParams))),this.figures=null!=c?c:this.figures},e.prototype.setSeriesPrecision=function(t){this._lockSeriesPrecision||(this.precision=t)},e.prototype.shouldUpdateImp=function(){var t=this._prevIndicator.zLevel!==this.zLevel,e=this.shouldUpdate(this._prevIndicator,this);return P(e)?{calc:e,draw:e,sort:t}:p(p({},e),{sort:t})},e.prototype.calcImp=function(t){return v(this,void 0,void 0,(function(){var e;return f(this,(function(i){switch(i.label){case 0:return i.trys.push([0,2,,3]),[4,this.calc(t,this)];case 1:return e=i.sent(),this.result=e,[2,!0];case 2:return i.sent(),[2,!1];case 3:return[2]}}))}))},e.extend=function(t){return function(e){function n(){return e.call(this,t)||this}return i(n,e),n}(e)},e}();function et(t,e){var i,n=null!==(i=null==e?void 0:e.ignoreEvent)&&void 0!==i&&i;return P(n)?!n:!n.includes(t)}t.OverlayMode=void 0,($=t.OverlayMode||(t.OverlayMode={})).Normal="normal",$.WeakMagnet="weak_magnet",$.StrongMagnet="strong_magnet";var it,nt="overlay_figure_",rt=function(){function e(e){this.groupId="",this.totalStep=1,this.currentStep=1,this.lock=!1,this.visible=!0,this.zLevel=0,this.needDefaultPointFigure=!1,this.needDefaultXAxisFigure=!1,this.needDefaultYAxisFigure=!1,this.mode=t.OverlayMode.Normal,this.modeSensitivity=8,this.points=[],this.styles=null,this.createPointFigures=null,this.createXAxisFigures=null,this.createYAxisFigures=null,this.performEventPressedMove=null,this.performEventMoveForDrawing=null,this.onDrawStart=null,this.onDrawing=null,this.onDrawEnd=null,this.onClick=null,this.onDoubleClick=null,this.onRightClick=null,this.onPressedMoveStart=null,this.onPressedMoving=null,this.onPressedMoveEnd=null,this.onMouseEnter=null,this.onMouseLeave=null,this.onRemoved=null,this.onSelected=null,this.onDeselected=null,this._prevZLevel=0,this._prevPressedPoint=null,this._prevPressedPoints=[],this.override(e)}return e.prototype.override=function(t){var e,i;this._prevOverlay=b(this);var n=t.id,r=t.name;t.currentStep;var o=t.points,a=t.styles;if(x(this,g(t,["id","name","currentStep","points","styles"])),I(this.name)||(this.name=null!=r?r:""),!I(this.id)&&I(n)&&(this.id=n),E(a)&&(null!==(e=this.styles)&&void 0!==e||(this.styles={}),x(this.styles,a)),T(o)&&o.length>0){var s=0;if(this.points=_([],m(o),!1),o.length>=this.totalStep-1?(this.currentStep=-1,s=this.totalStep-1):(this.currentStep=o.length+1,s=o.length),C(this.performEventMoveForDrawing))for(var l=0;l<s;l++)this.performEventMoveForDrawing({currentStep:l+2,mode:this.mode,points:this.points,performPointIndex:l,performPoint:this.points[l]});-1===this.currentStep&&(null===(i=this.performEventPressedMove)||void 0===i||i.call(this,{currentStep:this.currentStep,mode:this.mode,points:this.points,performPointIndex:this.points.length-1,performPoint:this.points[this.points.length-1]}))}},e.prototype.getPrevZLevel=function(){return this._prevZLevel},e.prototype.setPrevZLevel=function(t){this._prevZLevel=t},e.prototype.shouldUpdate=function(){var t=this._prevOverlay.zLevel!==this.zLevel;return{sort:t,draw:t||JSON.stringify(this._prevOverlay)!==JSON.stringify(this.points)||this._prevOverlay.visible!==this.visible||this._prevOverlay.extendData!==this.extendData||this._prevOverlay.styles!==this.styles}},e.prototype.nextStep=function(){this.currentStep===this.totalStep-1?this.currentStep=-1:this.currentStep++},e.prototype.forceComplete=function(){this.currentStep=-1},e.prototype.isDrawing=function(){return-1!==this.currentStep},e.prototype.isStart=function(){return 1===this.currentStep},e.prototype.eventMoveForDrawing=function(t){var e,i=this.currentStep-1,n={};S(t.timestamp)&&(n.timestamp=t.timestamp),S(t.dataIndex)&&(n.dataIndex=t.dataIndex),S(t.value)&&(n.value=t.value),this.points[i]=n,null===(e=this.performEventMoveForDrawing)||void 0===e||e.call(this,{currentStep:this.currentStep,mode:this.mode,points:this.points,performPointIndex:i,performPoint:n})},e.prototype.eventPressedPointMove=function(t,e){var i;this.points[e].timestamp=t.timestamp,S(t.value)&&(this.points[e].value=t.value),null===(i=this.performEventPressedMove)||void 0===i||i.call(this,{currentStep:this.currentStep,points:this.points,mode:this.mode,performPointIndex:e,performPoint:this.points[e]})},e.prototype.startPressedMove=function(t){this._prevPressedPoint=p({},t),this._prevPressedPoints=b(this.points)},e.prototype.eventPressedOtherMove=function(t,e){if(null!==this._prevPressedPoint){var i=null;S(t.dataIndex)&&S(this._prevPressedPoint.dataIndex)&&(i=t.dataIndex-this._prevPressedPoint.dataIndex);var n=null;S(t.value)&&S(this._prevPressedPoint.value)&&(n=t.value-this._prevPressedPoint.value),this.points=this._prevPressedPoints.map((function(t){var r;S(t.timestamp)&&(t.dataIndex=e.timestampToDataIndex(t.timestamp));var o=p({},t);return S(i)&&S(t.dataIndex)&&(o.dataIndex=t.dataIndex+i,o.timestamp=null!==(r=e.dataIndexToTimestamp(o.dataIndex))&&void 0!==r?r:void 0),S(n)&&S(t.value)&&(o.value=t.value+n),o}))}},e.extend=function(t){return function(e){function n(){return e.call(this,t)||this}return i(n,e),n}(e)},e}();function ot(t){var e={width:0,height:0,left:0,right:0,top:0,bottom:0};return E(t)&&x(e,t),e}t.FormatDateType=void 0,(it=t.FormatDateType||(t.FormatDateType={}))[it.Tooltip=0]="Tooltip",it[it.Crosshair=1]="Crosshair",it[it.XAxis=2]="XAxis";var at=-1;function st(t){return C(window.requestAnimationFrame)?window.requestAnimationFrame(t):window.setTimeout(t,20)}function lt(t){C(window.cancelAnimationFrame)?window.cancelAnimationFrame(t):window.clearTimeout(t)}function ut(t){if(C(window.requestIdleCallback))return window.requestIdleCallback(t);var e=performance.now();return window.setTimeout((function(){t({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(performance.now()-e))}})}),1)}var ct,ht=function(){function t(t){this._options={duration:500,iterationCount:1},this._currentIterationCount=0,this._running=!1,this._time=0,x(this._options,t)}return t.prototype._loop=function(){var t=this;this._running=!0;var e=function(){var i;if(t._running){var n=(new Date).getTime()-t._time;n<t._options.duration?(null===(i=t._doFrameCallback)||void 0===i||i.call(t,n),st(e)):(t.stop(),t._currentIterationCount++,t._currentIterationCount<t._options.iterationCount&&t.start())}};st(e)},t.prototype.doFrame=function(t){return this._doFrameCallback=t,this},t.prototype.setDuration=function(t){return this._options.duration=t,this},t.prototype.setIterationCount=function(t){return this._options.iterationCount=t,this},t.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._loop())},t.prototype.stop=function(){var t;this._running&&(null===(t=this._doFrameCallback)||void 0===t||t.call(this,this._options.duration)),this._running=!1},t}(),dt=1,pt=(new Date).getTime();function gt(t){var e=(new Date).getTime();return e===pt?++dt:dt=1,pt=e,"".concat(null!=t?t:"").concat(e,"_").concat(dt)}function vt(t,e){var i,n=document.createElement(t),r=null!=e?e:{};for(var o in r)n.style[o]=null!==(i=r[o])&&void 0!==i?i:"";return n}function ft(t,e,i){var n=0,r=0;for(r=t.length-1;n!==r;){var o=Math.floor((r+n)/2),a=r-n,s=t[o][e];if(i===t[n][e])return n;if(i===t[r][e])return r;if(i===s)return o;if(i>s?n=o:r=o,a<=2)break}return n}function yt(t,e){e=Math.max(0,null!=e?e:0);var i=Math.pow(10,e);return Math.round(t*i)/i}function mt(t,e,i){for(var n,r,o=[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],a=t.length,s=0;s<a;){var l=t[s];o[0]=Math.max(null!==(n=l[e])&&void 0!==n?n:Number.MIN_SAFE_INTEGER,o[0]),o[1]=Math.min(null!==(r=l[i])&&void 0!==r?r:Number.MAX_SAFE_INTEGER,o[1]),++s}return o}function _t(t){return 0===t?0:Math.log10(t)}function xt(t){return Math.pow(10,t)}function bt(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t.join("_")}!function(t){t.Init="init",t.Forward="forward",t.Backward="backward",t.Update="update"}(ct||(ct={}));var Tt=function(){function t(t){this._requestIdleCallbackId=at,this._tasks=null!=t?t:[],this._operateTasks()}return t.prototype._operateTasks=function(t){var e,i=this;this._requestIdleCallbackId!==at&&(e=this._requestIdleCallbackId,C(window.cancelIdleCallback)?window.cancelIdleCallback(e):window.clearTimeout(e),this._requestIdleCallbackId=at),null==t||t(),this._requestIdleCallbackId=ut((function(t){i._runTasks(t)}))},t.prototype._runTasks=function(t){for(var e=this;t.timeRemaining()>0&&this._tasks.length>0;){var i=this._tasks.shift();null==i||i.handler()}this._tasks.length>0&&(this._requestIdleCallbackId=ut((function(t){e._runTasks(t)})))},t.prototype.addTask=function(t){var e=this;return this._operateTasks((function(){var i=e._tasks.findIndex((function(e){return e.id===t.id}));i>-1?e._tasks[i]=t:e._tasks.push(t)})),this},t.prototype.removeTask=function(t){var e=this;return this._operateTasks((function(){var i=e._tasks.findIndex((function(e){return e.id===t}));i>-1&&e._tasks.splice(i,1)})),this},t}(),Ct=31536e3,wt=2592e3,St=86400,Et=3600,Pt=60,It=1;function Mt(t,e,i,n,r,o){var a;void 0===n&&(n=0);for(var s=null,l=null!=o?o:null,u=0;u<e.length;u++){var c=e[u].timestamp,h=Pt,d=O(i,c);E(s)&&(h=d.YYYY!==s.YYYY?Ct:d.MM!==s.MM?wt:d.DD!==s.DD?St:d.HH!==s.HH?Et:d.mm!==s.mm?Pt:It),S(l)&&S(null==r?void 0:r.compare)&&(r.compare=Math.min(r.compare,c-l));var p=null!==(a=t.get(h))&&void 0!==a?a:[];p.push({dataIndex:u+n,weight:h,timestamp:c}),t.set(h,p),s=d,l=c}}function kt(t,e){var i=Math.max(Z("0000-00-00 00:00:00",e.size,e.weight,e.family),146);return Math.ceil(i/t)}function Dt(t,e,i){var n=kt(e,i),r=[];return Array.from(t.keys()).sort((function(t,e){return e-t})).forEach((function(e){var i=t.get(e),o=r;r=[];for(var a=o.length,s=0,l=i.length,u=1/0,c=-1/0,h=0;h<l;h++){for(var d=i[h],p=d.dataIndex;s<a;){var g=o[s],v=g.dataIndex;if(!(v<p)){u=v;break}s++,r.push(g),c=v,u=1/0}u-p>=n&&p-c>=n&&(r.push(d),c=p)}for(;s<a;s++)r.push(o[s])})),r}var At={name:"AVP",shortName:"AVP",series:t.IndicatorSeries.Price,precision:2,figures:[{key:"avp",title:"AVP: ",type:"line"}],calc:function(t){var e=0,i=0;return t.map((function(t){var n,r,o={},a=null!==(n=t.turnover)&&void 0!==n?n:0,s=null!==(r=t.volume)&&void 0!==r?r:0;return e+=a,0!==(i+=s)&&(o.avp=e/i),o}))}},Ft={name:"AO",shortName:"AO",calcParams:[5,34],figures:[{key:"ao",title:"AO: ",type:"bar",baseValue:0,styles:function(e){var i,n,r=e.data,o=e.indicator,a=e.defaultStyles,s=r.prev,l=r.current,u=null!==(i=null==s?void 0:s.ao)&&void 0!==i?i:Number.MIN_SAFE_INTEGER,c=null!==(n=null==l?void 0:l.ao)&&void 0!==n?n:Number.MIN_SAFE_INTEGER,h="";return{color:h=c>u?L(o.styles,"bars[0].upColor",a.bars[0].upColor):L(o.styles,"bars[0].downColor",a.bars[0].downColor),style:c>u?t.PolygonType.Stroke:t.PolygonType.Fill,borderColor:h}}}],calc:function(t,e){var i=e.calcParams,n=Math.max(i[0],i[1]),r=0,o=0,a=0,s=0;return t.map((function(e,l){var u={},c=(e.low+e.high)/2;if(r+=c,o+=c,l>=i[0]-1){a=r/i[0];var h=t[l-(i[0]-1)];r-=(h.low+h.high)/2}if(l>=i[1]-1){s=o/i[1];h=t[l-(i[1]-1)];o-=(h.low+h.high)/2}return l>=n-1&&(u.ao=a-s),u}))}};var Rt={name:"BOLL",shortName:"BOLL",series:t.IndicatorSeries.Price,calcParams:[20,2],precision:2,shouldOhlc:!0,figures:[{key:"up",title:"UP: ",type:"line"},{key:"mid",title:"MID: ",type:"line"},{key:"dn",title:"DN: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=i[0]-1,r=0;return t.map((function(e,o){var a=e.close,s={};if(r+=a,o>=n){s.mid=r/i[0];var l=function(t,e){var i=t.length,n=0;return t.forEach((function(t){var i=t.close-e;n+=i*i})),n=Math.abs(n),Math.sqrt(n/i)}(t.slice(o-n,o+1),s.mid);s.up=s.mid+i[1]*l,s.dn=s.mid-i[1]*l,r-=t[o-n].close}return s}))}},Bt={name:"BBI",shortName:"BBI",series:t.IndicatorSeries.Price,precision:2,calcParams:[3,6,12,24],shouldOhlc:!0,figures:[{key:"bbi",title:"BBI: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=Math.max.apply(Math,_([],m(i),!1)),r=[],o=[];return t.map((function(e,a){var s={},l=e.close;if(i.forEach((function(e,i){var n;r[i]=(null!==(n=r[i])&&void 0!==n?n:0)+l,a>=e-1&&(o[i]=r[i]/e,r[i]-=t[a-(e-1)].close)})),a>=n-1){var u=0;o.forEach((function(t){u+=t})),s.bbi=u/4}return s}))}},Lt={name:"CCI",shortName:"CCI",calcParams:[20],figures:[{key:"cci",title:"CCI: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=i[0]-1,r=0,o=[];return t.map((function(e,a){var s={},l=(e.high+e.low+e.close)/3;if(r+=l,o.push(l),a>=n){var u=r/i[0],c=o.slice(a-n,a+1),h=0;c.forEach((function(t){h+=Math.abs(t-u)}));var d=h/i[0];s.cci=0!==d?(l-u)/d/.015:0;var p=(t[a-n].high+t[a-n].low+t[a-n].close)/3;r-=p}return s}))}},Ot={name:"CR",shortName:"CR",calcParams:[26,10,20,40,60],figures:[{key:"cr",title:"CR: ",type:"line"},{key:"ma1",title:"MA1: ",type:"line"},{key:"ma2",title:"MA2: ",type:"line"},{key:"ma3",title:"MA3: ",type:"line"},{key:"ma4",title:"MA4: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=Math.ceil(i[1]/2.5+1),r=Math.ceil(i[2]/2.5+1),o=Math.ceil(i[3]/2.5+1),a=Math.ceil(i[4]/2.5+1),s=0,l=[],u=0,c=[],h=0,d=[],p=0,g=[],v=[];return t.forEach((function(e,f){var y,m,_,x,b,T={},C=null!==(y=t[f-1])&&void 0!==y?y:e,w=(C.high+C.close+C.low+C.open)/4,S=Math.max(0,e.high-w),E=Math.max(0,w-e.low);f>=i[0]-1&&(T.cr=0!==E?S/E*100:0,s+=T.cr,u+=T.cr,h+=T.cr,p+=T.cr,f>=i[0]+i[1]-2&&(l.push(s/i[1]),f>=i[0]+i[1]+n-3&&(T.ma1=l[l.length-1-n]),s-=null!==(m=v[f-(i[1]-1)].cr)&&void 0!==m?m:0),f>=i[0]+i[2]-2&&(c.push(u/i[2]),f>=i[0]+i[2]+r-3&&(T.ma2=c[c.length-1-r]),u-=null!==(_=v[f-(i[2]-1)].cr)&&void 0!==_?_:0),f>=i[0]+i[3]-2&&(d.push(h/i[3]),f>=i[0]+i[3]+o-3&&(T.ma3=d[d.length-1-o]),h-=null!==(x=v[f-(i[3]-1)].cr)&&void 0!==x?x:0),f>=i[0]+i[4]-2&&(g.push(p/i[4]),f>=i[0]+i[4]+a-3&&(T.ma4=g[g.length-1-a]),p-=null!==(b=v[f-(i[4]-1)].cr)&&void 0!==b?b:0)),v.push(T)})),v}},Wt={name:"DMA",shortName:"DMA",calcParams:[10,50,10],figures:[{key:"dma",title:"DMA: ",type:"line"},{key:"ama",title:"AMA: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=Math.max(i[0],i[1]),r=0,o=0,a=0,s=[];return t.forEach((function(e,l){var u,c={},h=e.close;r+=h,o+=h;var d=0,p=0;if(l>=i[0]-1&&(d=r/i[0],r-=t[l-(i[0]-1)].close),l>=i[1]-1&&(p=o/i[1],o-=t[l-(i[1]-1)].close),l>=n-1){var g=d-p;c.dma=g,a+=g,l>=n+i[2]-2&&(c.ama=a/i[2],a-=null!==(u=s[l-(i[2]-1)].dma)&&void 0!==u?u:0)}s.push(c)})),s}},Vt={name:"DMI",shortName:"DMI",calcParams:[14,6],figures:[{key:"pdi",title:"PDI: ",type:"line"},{key:"mdi",title:"MDI: ",type:"line"},{key:"adx",title:"ADX: ",type:"line"},{key:"adxr",title:"ADXR: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=0,r=0,o=0,a=0,s=0,l=0,u=0,c=0,h=[];return t.forEach((function(e,d){var p,g,v={},f=null!==(p=t[d-1])&&void 0!==p?p:e,y=f.close,m=e.high,_=e.low,x=m-_,b=Math.abs(m-y),T=Math.abs(y-_),C=m-f.high,w=f.low-_,S=Math.max(Math.max(x,b),T),E=C>0&&C>w?C:0,P=w>0&&w>C?w:0;if(n+=S,r+=E,o+=P,d>=i[0]-1){d>i[0]-1?(a=a-a/i[0]+S,s=s-s/i[0]+E,l=l-l/i[0]+P):(a=n,s=r,l=o);var I=0,M=0;0!==a&&(I=100*s/a,M=100*l/a),v.pdi=I,v.mdi=M;var k=0;M+I!==0&&(k=Math.abs(M-I)/(M+I)*100),u+=k,d>=2*i[0]-2&&(c=d>2*i[0]-2?(c*(i[0]-1)+k)/i[0]:u/i[0],v.adx=c,d>=2*i[0]+i[1]-3&&(v.adxr=((null!==(g=h[d-(i[1]-1)].adx)&&void 0!==g?g:0)+c)/2))}h.push(v)})),h}},Nt={name:"EMA",shortName:"EMA",series:t.IndicatorSeries.Price,calcParams:[6,12,20],precision:2,shouldOhlc:!0,figures:[{key:"ema1",title:"EMA6: ",type:"line"},{key:"ema2",title:"EMA12: ",type:"line"},{key:"ema3",title:"EMA20: ",type:"line"}],regenerateFigures:function(t){return t.map((function(t,e){return{key:"ema".concat(e+1),title:"EMA".concat(t,": "),type:"line"}}))},calc:function(t,e){var i=e.calcParams,n=e.figures,r=0,o=[];return t.map((function(t,e){var a={},s=t.close;return r+=s,i.forEach((function(t,i){e>=t-1&&(o[i]=e>t-1?(2*s+(t-1)*o[i])/(t+1):r/t,a[n[i].key]=o[i])})),a}))}},zt={name:"MA",shortName:"MA",series:t.IndicatorSeries.Price,calcParams:[5,10,30,60],precision:2,shouldOhlc:!0,figures:[{key:"ma1",title:"MA5: ",type:"line"},{key:"ma2",title:"MA10: ",type:"line"},{key:"ma3",title:"MA30: ",type:"line"},{key:"ma4",title:"MA60: ",type:"line"}],regenerateFigures:function(t){return t.map((function(t,e){return{key:"ma".concat(e+1),title:"MA".concat(t,": "),type:"line"}}))},calc:function(t,e){var i=e.calcParams,n=e.figures,r=[];return t.map((function(e,o){var a={},s=e.close;return i.forEach((function(e,i){var l;r[i]=(null!==(l=r[i])&&void 0!==l?l:0)+s,o>=e-1&&(a[n[i].key]=r[i]/e,r[i]-=t[o-(e-1)].close)})),a}))}},Yt={name:"MACD",shortName:"MACD",calcParams:[12,26,9],figures:[{key:"dif",title:"DIF: ",type:"line"},{key:"dea",title:"DEA: ",type:"line"},{key:"macd",title:"MACD: ",type:"bar",baseValue:0,styles:function(e){var i,n,r=e.data,o=e.indicator,a=e.defaultStyles,s=r.prev,l=r.current,u=null!==(i=null==s?void 0:s.macd)&&void 0!==i?i:Number.MIN_SAFE_INTEGER,c=null!==(n=null==l?void 0:l.macd)&&void 0!==n?n:Number.MIN_SAFE_INTEGER,h="";return h=c>0?L(o.styles,"bars[0].upColor",a.bars[0].upColor):c<0?L(o.styles,"bars[0].downColor",a.bars[0].downColor):L(o.styles,"bars[0].noChangeColor",a.bars[0].noChangeColor),{style:u<c?t.PolygonType.Stroke:t.PolygonType.Fill,color:h,borderColor:h}}}],calc:function(t,e){var i=e.calcParams,n=0,r=0,o=0,a=0,s=0,l=0,u=Math.max(i[0],i[1]);return t.map((function(t,e){var c={},h=t.close;return n+=h,e>=i[0]-1&&(r=e>i[0]-1?(2*h+(i[0]-1)*r)/(i[0]+1):n/i[0]),e>=i[1]-1&&(o=e>i[1]-1?(2*h+(i[1]-1)*o)/(i[1]+1):n/i[1]),e>=u-1&&(a=r-o,c.dif=a,s+=a,e>=u+i[2]-2&&(l=e>u+i[2]-2?(2*a+l*(i[2]-1))/(i[2]+1):s/i[2],c.macd=2*(a-l),c.dea=l)),c}))}},Ht={name:"RSI",shortName:"RSI",calcParams:[6,12,24],figures:[{key:"rsi1",title:"RSI1: ",type:"line"},{key:"rsi2",title:"RSI2: ",type:"line"},{key:"rsi3",title:"RSI3: ",type:"line"}],regenerateFigures:function(t){return t.map((function(t,e){var i=e+1;return{key:"rsi".concat(i),title:"RSI".concat(i,": "),type:"line"}}))},calc:function(t,e){var i=e.calcParams,n=e.figures,r=[],o=[];return t.map((function(e,a){var s,l={},u=(null!==(s=t[a-1])&&void 0!==s?s:e).close,c=e.close-u;return i.forEach((function(e,i){var s,u,h;if(c>0?r[i]=(null!==(s=r[i])&&void 0!==s?s:0)+c:o[i]=(null!==(u=o[i])&&void 0!==u?u:0)+Math.abs(c),a>=e-1){0!==o[i]?l[n[i].key]=100-100/(1+r[i]/o[i]):l[n[i].key]=0;var d=t[a-(e-1)],p=null!==(h=t[a-e])&&void 0!==h?h:d,g=d.close-p.close;g>0?r[i]-=g:o[i]-=Math.abs(g)}})),l}))}},Xt={name:"SMA",shortName:"SMA",series:t.IndicatorSeries.Price,calcParams:[12,2],precision:2,figures:[{key:"sma",title:"SMA: ",type:"line"}],shouldOhlc:!0,calc:function(t,e){var i=e.calcParams,n=0,r=0;return t.map((function(t,e){var o={},a=t.close;return n+=a,e>=i[0]-1&&(r=e>i[0]-1?(a*i[1]+r*(i[0]-i[1]+1))/(i[0]+1):n/i[0],o.sma=r),o}))}},Gt={name:"KDJ",shortName:"KDJ",calcParams:[9,3,3],figures:[{key:"k",title:"K: ",type:"line"},{key:"d",title:"D: ",type:"line"},{key:"j",title:"J: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=[];return t.forEach((function(e,r){var o,a,s,l,u={},c=e.close;if(r>=i[0]-1){var h=mt(t.slice(r-(i[0]-1),r+1),"high","low"),d=h[0],p=h[1],g=d-p,v=(c-p)/(0===g?1:g)*100;u.k=((i[1]-1)*(null!==(a=null===(o=n[r-1])||void 0===o?void 0:o.k)&&void 0!==a?a:50)+v)/i[1],u.d=((i[2]-1)*(null!==(l=null===(s=n[r-1])||void 0===s?void 0:s.d)&&void 0!==l?l:50)+u.k)/i[2],u.j=3*u.k-2*u.d}n.push(u)})),n}},Ut={name:"SAR",shortName:"SAR",series:t.IndicatorSeries.Price,calcParams:[2,2,20],precision:2,shouldOhlc:!0,figures:[{key:"sar",title:"SAR: ",type:"circle",styles:function(t){var e,i,n,r=t.data,o=t.indicator,a=t.defaultStyles,s=r.current;return{color:(null!==(e=null==s?void 0:s.sar)&&void 0!==e?e:Number.MIN_SAFE_INTEGER)<((null!==(i=null==s?void 0:s.high)&&void 0!==i?i:0)+(null!==(n=null==s?void 0:s.low)&&void 0!==n?n:0))/2?L(o.styles,"circles[0].upColor",a.circles[0].upColor):L(o.styles,"circles[0].downColor",a.circles[0].downColor)}}}],calc:function(t,e){var i=e.calcParams,n=i[0]/100,r=i[1]/100,o=i[2]/100,a=n,s=-100,l=!1,u=0;return t.map((function(e,i){var c=u,h=e.high,d=e.low;if(l){(-100===s||s<h)&&(s=h,a=Math.min(a+r,o)),u=c+a*(s-c);var p=Math.min(t[Math.max(1,i)-1].low,d);u>e.low?(u=s,a=n,s=-100,l=!l):u>p&&(u=p)}else{(-100===s||s>d)&&(s=d,a=Math.min(a+r,o)),u=c+a*(s-c);var g=Math.max(t[Math.max(1,i)-1].high,h);u<e.high?(u=s,a=0,s=-100,l=!l):u<g&&(u=g)}return{high:h,low:d,sar:u}}))}};function Zt(){return{key:"volume",title:"VOLUME: ",type:"bar",baseValue:0,styles:function(t){var e=t.data,i=t.indicator,n=t.defaultStyles,r=e.current,o=L(i.styles,"bars[0].noChangeColor",n.bars[0].noChangeColor);return E(r)&&(r.close>r.open?o=L(i.styles,"bars[0].upColor",n.bars[0].upColor):r.close<r.open&&(o=L(i.styles,"bars[0].downColor",n.bars[0].downColor))),{color:o}}}}var qt={name:"VOL",shortName:"VOL",series:t.IndicatorSeries.Volume,calcParams:[5,10,20],shouldFormatBigNumber:!0,precision:0,minValue:0,figures:[{key:"ma1",title:"MA5: ",type:"line"},{key:"ma2",title:"MA10: ",type:"line"},{key:"ma3",title:"MA20: ",type:"line"},Zt()],regenerateFigures:function(t){var e=t.map((function(t,e){return{key:"ma".concat(e+1),title:"MA".concat(t,": "),type:"line"}}));return e.push(Zt()),e},calc:function(t,e){var i=e.calcParams,n=e.figures,r=[];return t.map((function(e,o){var a,s=null!==(a=e.volume)&&void 0!==a?a:0,l={volume:s,open:e.open,close:e.close};return i.forEach((function(e,i){var a,u;r[i]=(null!==(a=r[i])&&void 0!==a?a:0)+s,o>=e-1&&(l[n[i].key]=r[i]/e,r[i]-=null!==(u=t[o-(e-1)].volume)&&void 0!==u?u:0)})),l}))}},jt={name:"WR",shortName:"WR",calcParams:[6,10,14],figures:[{key:"wr1",title:"WR1: ",type:"line"},{key:"wr2",title:"WR2: ",type:"line"},{key:"wr3",title:"WR3: ",type:"line"}],regenerateFigures:function(t){return t.map((function(t,e){return{key:"wr".concat(e+1),title:"WR".concat(e+1,": "),type:"line"}}))},calc:function(t,e){var i=e.calcParams,n=e.figures;return t.map((function(e,r){var o={},a=e.close;return i.forEach((function(e,i){var s=e-1;if(r>=s){var l=mt(t.slice(r-s,r+1),"high","low"),u=l[0],c=u-l[1];o[n[i].key]=0===c?0:(a-u)/c*100}})),o}))}},Qt={},Kt=[At,Ft,{name:"BIAS",shortName:"BIAS",calcParams:[6,12,24],figures:[{key:"bias1",title:"BIAS6: ",type:"line"},{key:"bias2",title:"BIAS12: ",type:"line"},{key:"bias3",title:"BIAS24: ",type:"line"}],regenerateFigures:function(t){return t.map((function(t,e){return{key:"bias".concat(e+1),title:"BIAS".concat(t,": "),type:"line"}}))},calc:function(t,e){var i=e.calcParams,n=e.figures,r=[];return t.map((function(e,o){var a={},s=e.close;return i.forEach((function(e,l){var u;if(r[l]=(null!==(u=r[l])&&void 0!==u?u:0)+s,o>=e-1){var c=r[l]/i[l];a[n[l].key]=(s-c)/c*100,r[l]-=t[o-(e-1)].close}})),a}))}},Rt,{name:"BRAR",shortName:"BRAR",calcParams:[26],figures:[{key:"br",title:"BR: ",type:"line"},{key:"ar",title:"AR: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=0,r=0,o=0,a=0;return t.map((function(e,s){var l,u,c={},h=e.high,d=e.low,p=e.open,g=(null!==(l=t[s-1])&&void 0!==l?l:e).close;if(o+=h-p,a+=p-d,n+=h-g,r+=g-d,s>=i[0]-1){c.ar=0!==a?o/a*100:0,c.br=0!==r?n/r*100:0;var v=t[s-(i[0]-1)],f=v.high,y=v.low,m=v.open,_=(null!==(u=t[s-i[0]])&&void 0!==u?u:t[s-(i[0]-1)]).close;n-=f-_,r-=_-y,o-=f-m,a-=m-y}return c}))}},Bt,Lt,Ot,Wt,Vt,{name:"EMV",shortName:"EMV",calcParams:[14,9],figures:[{key:"emv",title:"EMV: ",type:"line"},{key:"maEmv",title:"MAEMV: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=0,r=[];return t.map((function(e,o){var a,s={};if(o>0){var l=t[o-1],u=e.high,c=e.low,h=null!==(a=e.volume)&&void 0!==a?a:0,d=(u+c)/2-(l.high+l.low)/2;if(0===h||u-c==0)s.emv=0;else{var p=h/1e8/(u-c);s.emv=d/p}n+=s.emv,r.push(s.emv),o>=i[0]&&(s.maEmv=n/i[0],n-=r[o-i[0]])}return s}))}},Nt,{name:"MTM",shortName:"MTM",calcParams:[12,6],figures:[{key:"mtm",title:"MTM: ",type:"line"},{key:"maMtm",title:"MAMTM: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=0,r=[];return t.forEach((function(e,o){var a,s={};if(o>=i[0]){var l=e.close,u=t[o-i[0]].close;s.mtm=l-u,n+=s.mtm,o>=i[0]+i[1]-1&&(s.maMtm=n/i[1],n-=null!==(a=r[o-(i[1]-1)].mtm)&&void 0!==a?a:0)}r.push(s)})),r}},zt,Yt,{name:"OBV",shortName:"OBV",calcParams:[30],figures:[{key:"obv",title:"OBV: ",type:"line"},{key:"maObv",title:"MAOBV: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=0,r=0,o=[];return t.forEach((function(e,a){var s,l,u,c,h=null!==(s=t[a-1])&&void 0!==s?s:e;e.close<h.close?r-=null!==(l=e.volume)&&void 0!==l?l:0:e.close>h.close&&(r+=null!==(u=e.volume)&&void 0!==u?u:0);var d={obv:r};n+=r,a>=i[0]-1&&(d.maObv=n/i[0],n-=null!==(c=o[a-(i[0]-1)].obv)&&void 0!==c?c:0),o.push(d)})),o}},{name:"PVT",shortName:"PVT",figures:[{key:"pvt",title:"PVT: ",type:"line"}],calc:function(t){var e=0;return t.map((function(i,n){var r,o,a={},s=i.close,l=null!==(r=i.volume)&&void 0!==r?r:1,u=(null!==(o=t[n-1])&&void 0!==o?o:i).close,c=0,h=u*l;return 0!==h&&(c=(s-u)/h),e+=c,a.pvt=e,a}))}},{name:"PSY",shortName:"PSY",calcParams:[12,6],figures:[{key:"psy",title:"PSY: ",type:"line"},{key:"maPsy",title:"MAPSY: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=0,r=0,o=[],a=[];return t.forEach((function(e,s){var l,u,c={},h=(null!==(l=t[s-1])&&void 0!==l?l:e).close,d=e.close-h>0?1:0;o.push(d),n+=d,s>=i[0]-1&&(c.psy=n/i[0]*100,r+=c.psy,s>=i[0]+i[1]-2&&(c.maPsy=r/i[1],r-=null!==(u=a[s-(i[1]-1)].psy)&&void 0!==u?u:0),n-=o[s-(i[0]-1)]),a.push(c)})),a}},{name:"ROC",shortName:"ROC",calcParams:[12,6],figures:[{key:"roc",title:"ROC: ",type:"line"},{key:"maRoc",title:"MAROC: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=[],r=0;return t.forEach((function(e,o){var a,s,l={};if(o>=i[0]-1){var u=e.close,c=(null!==(a=t[o-i[0]])&&void 0!==a?a:t[o-(i[0]-1)]).close;l.roc=0!==c?(u-c)/c*100:0,r+=l.roc,o>=i[0]-1+i[1]-1&&(l.maRoc=r/i[1],r-=null!==(s=n[o-(i[1]-1)].roc)&&void 0!==s?s:0)}n.push(l)})),n}},Ht,Xt,Gt,Ut,{name:"TRIX",shortName:"TRIX",calcParams:[12,9],figures:[{key:"trix",title:"TRIX: ",type:"line"},{key:"maTrix",title:"MATRIX: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=0,r=0,o=0,a=0,s=0,l=0,u=0,c=[];return t.forEach((function(t,e){var h,d={},p=t.close;if(n+=p,e>=i[0]-1&&(r=e>i[0]-1?(2*p+(i[0]-1)*r)/(i[0]+1):n/i[0],s+=r,e>=2*i[0]-2&&(o=e>2*i[0]-2?(2*r+(i[0]-1)*o)/(i[0]+1):s/i[0],l+=o,e>=3*i[0]-3))){var g=0,v=0;e>3*i[0]-3?v=((g=(2*o+(i[0]-1)*a)/(i[0]+1))-a)/a*100:g=l/i[0],a=g,d.trix=v,u+=v,e>=3*i[0]+i[1]-4&&(d.maTrix=u/i[1],u-=null!==(h=c[e-(i[1]-1)].trix)&&void 0!==h?h:0)}c.push(d)})),c}},qt,{name:"VR",shortName:"VR",calcParams:[26,6],figures:[{key:"vr",title:"VR: ",type:"line"},{key:"maVr",title:"MAVR: ",type:"line"}],calc:function(t,e){var i=e.calcParams,n=0,r=0,o=0,a=0,s=[];return t.forEach((function(e,l){var u,c,h,d,p,g={},v=e.close,f=(null!==(u=t[l-1])&&void 0!==u?u:e).close,y=null!==(c=e.volume)&&void 0!==c?c:0;if(v>f?n+=y:v<f?r+=y:o+=y,l>=i[0]-1){var m=o/2;g.vr=r+m===0?0:(n+m)/(r+m)*100,a+=g.vr,l>=i[0]+i[1]-2&&(g.maVr=a/i[1],a-=null!==(h=s[l-(i[1]-1)].vr)&&void 0!==h?h:0);var _=t[l-(i[0]-1)],x=null!==(d=t[l-i[0]])&&void 0!==d?d:_,b=_.close,T=null!==(p=_.volume)&&void 0!==p?p:0;b>x.close?n-=T:b<x.close?r-=T:o-=T}s.push(g)})),s}},jt];function Jt(t){var e;return null!==(e=Qt[t])&&void 0!==e?e:null}Kt.forEach((function(t){Qt[t.name]=tt.extend(t)}));var $t={name:"fibonacciLine",totalStep:3,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){var e,i=t.chart,n=t.coordinates,r=t.bounding,o=t.overlay,a=t.yAxis,s=o.points;if(n.length>0){var l=0;if(null===(e=null==a?void 0:a.isInCandle())||void 0===e||e)l=i.getPrecision().price;else i.getIndicators({paneId:o.paneId}).forEach((function(t){l=Math.max(l,t.precision)}));var u=[],c=[],h=r.width;if(n.length>1&&S(s[0].value)&&S(s[1].value)){var d=n[0].y-n[1].y,p=s[0].value-s[1].value;[1,.786,.618,.5,.382,.236,0].forEach((function(t){var e,r=n[1].y+d*t,o=i.getDecimalFold().format(i.getThousandsSeparator().format(((null!==(e=s[1].value)&&void 0!==e?e:0)+p*t).toFixed(l)));u.push({coordinates:[{x:0,y:r},{x:h,y:r}]}),c.push({x:0,y:r,text:"".concat(o," (").concat((100*t).toFixed(1),"%)"),baseline:"bottom"})}))}return[{type:"line",attrs:u},{type:"text",isCheckEvent:!1,attrs:c}]}return[]}},te={name:"horizontalRayLine",totalStep:3,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){var e=t.coordinates,i=t.bounding,n={x:0,y:e[0].y};return E(e[1])&&e[0].x<e[1].x&&(n.x=i.width),[{type:"line",attrs:{coordinates:[e[0],n]}}]},performEventPressedMove:function(t){var e=t.points,i=t.performPoint;e[0].value=i.value,e[1].value=i.value},performEventMoveForDrawing:function(t){var e=t.currentStep,i=t.points,n=t.performPoint;2===e&&(i[0].value=n.value)}},ee=function(){function t(){this._children=[],this._callbacks=new Map}return t.prototype.registerEvent=function(t,e){return this._callbacks.set(t,e),this},t.prototype.onEvent=function(t,e,i){var n=this._callbacks.get(t);return!(!E(n)||!this.checkEventOn(e))&&n(e,i)},t.prototype.checkEventOn=function(t){var e,i;try{for(var n=y(this._children),r=n.next();!r.done;r=n.next()){if(r.value.checkEventOn(t))return!0}}catch(t){e={error:t}}finally{try{r&&!r.done&&(i=n.return)&&i.call(n)}finally{if(e)throw e.error}}return!1},t.prototype.dispatchEvent=function(t,e,i){var n=this._children.length-1;if(n>-1)for(var r=n;r>-1;r--)if(this._children[r].dispatchEvent(t,e,i))return!0;return this.onEvent(t,e,i)},t.prototype.addChild=function(t){return this._children.push(t),this},t.prototype.clear=function(){this._children=[]},t}(),ie=function(t){function e(e){var i=t.call(this)||this;return i.attrs=e.attrs,i.styles=e.styles,i}return i(e,t),e.prototype.checkEventOn=function(t){return this.checkEventOnImp(t,this.attrs,this.styles)},e.prototype.setAttrs=function(t){return this.attrs=t,this},e.prototype.setStyles=function(t){return this.styles=t,this},e.prototype.draw=function(t){this.drawImp(t,this.attrs,this.styles)},e.extend=function(t){var n=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return i(n,e),n.prototype.checkEventOnImp=function(e,i,n){return t.checkEventOn(e,i,n)},n.prototype.drawImp=function(e,i,n){t.draw(e,i,n)},n}(e);return n},e}(ee);function ne(t,e){var i,n,r=[];r=r.concat(e);try{for(var o=y(r),a=o.next();!a.done;a=o.next()){var s=a.value.coordinates;if(s.length>1)for(var l=1;l<s.length;l++){var u=s[l-1],c=s[l];if(u.x===c.x){if(Math.abs(u.y-t.y)+Math.abs(c.y-t.y)-Math.abs(u.y-c.y)<4&&Math.abs(t.x-u.x)<2)return!0}else{var h=ae(u,c),d=re(h,t),p=Math.abs(d-t.y);if(Math.abs(u.x-t.x)+Math.abs(c.x-t.x)-Math.abs(u.x-c.x)<4&&p*p/(h[0]*h[0]+1)<4)return!0}}}}catch(t){i={error:t}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return!1}function re(t,e){return null!==t?e.x*t[0]+t[1]:e.y}function oe(t,e,i){return re(ae(t,e),i)}function ae(t,e){var i=t.x-e.x;if(0!==i){var n=(t.y-e.y)/i;return[n,t.y-n*t.x]}return null}function se(t,e,i){var n=e.length,r=S(i)?i>0&&i<1?i:0:i?.5:0;if(r>0&&n>2){for(var o=e[0].x,a=e[0].y,s=1;s<n-1;s++){var l=e[s-1],u=e[s],c=e[s+1],h=u.x-l.x,d=u.y-l.y,p=c.x-u.x,g=c.y-u.y,v=c.x-l.x,f=c.y-l.y,y=Math.sqrt(h*h+d*d),m=Math.sqrt(p*p+g*g),_=m/(m+y),x=u.x+v*r*_,b=u.y+f*r*_;x=Math.min(x,Math.max(c.x,u.x)),b=Math.min(b,Math.max(c.y,u.y)),x=Math.max(x,Math.min(c.x,u.x)),b=Math.max(b,Math.min(c.y,u.y)),v=x-u.x,f=b-u.y;var T=u.x-v*y/m,C=u.y-f*y/m;T=Math.min(T,Math.max(l.x,u.x)),C=Math.min(C,Math.max(l.y,u.y)),T=Math.max(T,Math.min(l.x,u.x)),C=Math.max(C,Math.min(l.y,u.y)),v=u.x-T,f=u.y-C,x=u.x+v*m/y,b=u.y+f*m/y,t.bezierCurveTo(o,a,T,C,u.x,u.y),o=x,a=b}var w=e[n-1];t.bezierCurveTo(o,a,w.x,w.y,w.x,w.y)}else for(s=1;s<n;s++)t.lineTo(e[s].x,e[s].y)}var le={name:"line",checkEventOn:ne,draw:function(e,i,n){!function(e,i,n){var r=[];r=r.concat(i);var o=n.style,a=void 0===o?t.LineType.Solid:o,s=n.smooth,l=void 0!==s&&s,u=n.size,c=void 0===u?1:u,h=n.color,d=void 0===h?"currentColor":h,p=n.dashedValue,g=void 0===p?[2,2]:p;e.lineWidth=c,e.strokeStyle=d,a===t.LineType.Dashed?e.setLineDash(g):e.setLineDash([]);var v=c%2==1?.5:0;r.forEach((function(t){var i=t.coordinates;i.length>1&&(2!==i.length||i[0].x!==i[1].x&&i[0].y!==i[1].y?(e.save(),c%2==1&&e.translate(.5,.5),e.beginPath(),e.moveTo(i[0].x,i[0].y),se(e,i,l),e.stroke(),e.closePath(),e.restore()):(e.beginPath(),i[0].x===i[1].x?(e.moveTo(i[0].x+v,i[0].y),e.lineTo(i[1].x+v,i[1].y)):(e.moveTo(i[0].x,i[0].y+v),e.lineTo(i[1].x,i[1].y+v)),e.stroke(),e.closePath()))}))}(e,i,n)}};function ue(t,e,i){var n=null!=i?i:0,r=[];if(t.length>1)if(t[0].x===t[1].x){var o=e.height;if(r.push({coordinates:[{x:t[0].x,y:0},{x:t[0].x,y:o}]}),t.length>2){r.push({coordinates:[{x:t[2].x,y:0},{x:t[2].x,y:o}]});for(var a=t[0].x-t[2].x,s=0;s<n;s++){var l=a*(s+1);r.push({coordinates:[{x:t[0].x+l,y:0},{x:t[0].x+l,y:o}]})}}}else{var u=e.width,c=ae(t[0],t[1]),h=c[0],d=c[1];if(r.push({coordinates:[{x:0,y:0*h+d},{x:u,y:u*h+d}]}),t.length>2){var p=t[2].y-h*t[2].x;r.push({coordinates:[{x:0,y:0*h+p},{x:u,y:u*h+p}]});for(a=d-p,s=0;s<n;s++){var g=d+a*(s+1);r.push({coordinates:[{x:0,y:0*h+g},{x:u,y:u*h+g}]})}}}return r}var ce={name:"parallelStraightLine",totalStep:4,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){return[{type:"line",attrs:ue(t.coordinates,t.bounding)}]}},he={name:"priceChannelLine",totalStep:4,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){return[{type:"line",attrs:ue(t.coordinates,t.bounding,1)}]}},de={name:"priceLine",totalStep:2,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){var e,i=t.chart,n=t.coordinates,r=t.bounding,o=t.overlay,a=t.yAxis,s=0;null===(e=null==a?void 0:a.isInCandle())||void 0===e||e?s=i.getPrecision().price:i.getIndicators({paneId:o.paneId}).forEach((function(t){s=Math.max(s,t.precision)}));var l=o.points[0].value,u=void 0===l?0:l;return[{type:"line",attrs:{coordinates:[n[0],{x:r.width,y:n[0].y}]}},{type:"text",ignoreEvent:!0,attrs:{x:n[0].x,y:n[0].y,text:i.getDecimalFold().format(i.getThousandsSeparator().format(u.toFixed(s))),baseline:"bottom"}}]}};function pe(t,e){if(t.length>1){var i={x:0,y:0};return i=t[0].x===t[1].x&&t[0].y!==t[1].y?t[0].y<t[1].y?{x:t[0].x,y:e.height}:{x:t[0].x,y:0}:t[0].x>t[1].x?{x:0,y:oe(t[0],t[1],{x:0,y:t[0].y})}:{x:e.width,y:oe(t[0],t[1],{x:e.width,y:t[0].y})},{coordinates:[t[0],i]}}return[]}var ge={name:"rayLine",totalStep:3,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){return[{type:"line",attrs:pe(t.coordinates,t.bounding)}]}},ve={name:"straightLine",totalStep:3,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){var e=t.coordinates,i=t.bounding;return 2===e.length?e[0].x===e[1].x?[{type:"line",attrs:{coordinates:[{x:e[0].x,y:0},{x:e[0].x,y:i.height}]}}]:[{type:"line",attrs:{coordinates:[{x:0,y:oe(e[0],e[1],{x:0,y:e[0].y})},{x:i.width,y:oe(e[0],e[1],{x:i.width,y:e[0].y})}]}}]:[]}},fe={name:"simpleAnnotation",totalStep:2,styles:{line:{style:t.LineType.Dashed}},createPointFigures:function(t){var e,i=t.overlay,n=t.coordinates,r="";E(i.extendData)&&(r=C(i.extendData)?i.extendData(i):null!==(e=i.extendData)&&void 0!==e?e:"");var o=n[0].x,a=n[0].y-6,s=a-50,l=s-5;return[{type:"line",attrs:{coordinates:[{x:o,y:a},{x:o,y:s}]},ignoreEvent:!0},{type:"polygon",attrs:{coordinates:[{x:o,y:s},{x:o-4,y:l},{x:o+4,y:l}]},ignoreEvent:!0},{type:"text",attrs:{x:o,y:l,text:r,align:"center",baseline:"bottom"},ignoreEvent:!0}]}},ye={name:"simpleTag",totalStep:2,styles:{line:{style:t.LineType.Dashed}},createPointFigures:function(t){var e=t.bounding,i=t.coordinates;return{type:"line",attrs:{coordinates:[{x:0,y:i[0].y},{x:e.width,y:i[0].y}]},ignoreEvent:!0}},createYAxisFigures:function(t){var e,i,n=t.chart,r=t.overlay,o=t.coordinates,a=t.bounding,s=t.yAxis,l="left",u=0;null!==(e=null==s?void 0:s.isFromZero())&&void 0!==e&&e?(l="left",u=0):(l="right",u=a.width);var c="";return E(r.extendData)&&(c=C(r.extendData)?r.extendData(r):null!==(i=r.extendData)&&void 0!==i?i:""),!E(c)&&S(r.points[0].value)&&(c=V(r.points[0].value,n.getPrecision().price)),{type:"text",attrs:{x:u,y:o[0].y,text:c,align:l,baseline:"middle"}}}},me={};function _e(t){var e;return null!==(e=me[t])&&void 0!==e?e:null}[$t,te,{name:"horizontalSegment",totalStep:3,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){var e=t.coordinates,i=[];return 2===e.length&&i.push({coordinates:e}),[{type:"line",attrs:i}]},performEventPressedMove:function(t){var e=t.points,i=t.performPoint;e[0].value=i.value,e[1].value=i.value},performEventMoveForDrawing:function(t){var e=t.currentStep,i=t.points,n=t.performPoint;2===e&&(i[0].value=n.value)}},{name:"horizontalStraightLine",totalStep:2,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){var e=t.coordinates,i=t.bounding;return[{type:"line",attrs:{coordinates:[{x:0,y:e[0].y},{x:i.width,y:e[0].y}]}}]}},ce,he,de,ge,{name:"segment",totalStep:3,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){var e=t.coordinates;return 2===e.length?[{type:"line",attrs:{coordinates:e}}]:[]}},ve,{name:"verticalRayLine",totalStep:3,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){var e=t.coordinates,i=t.bounding;if(2===e.length){var n={x:e[0].x,y:0};return e[0].y<e[1].y&&(n.y=i.height),[{type:"line",attrs:{coordinates:[e[0],n]}}]}return[]},performEventPressedMove:function(t){var e=t.points,i=t.performPoint;e[0].timestamp=i.timestamp,e[0].dataIndex=i.dataIndex,e[1].timestamp=i.timestamp,e[1].dataIndex=i.dataIndex},performEventMoveForDrawing:function(t){var e=t.currentStep,i=t.points,n=t.performPoint;2===e&&(i[0].timestamp=n.timestamp,i[0].dataIndex=n.dataIndex)}},{name:"verticalSegment",totalStep:3,needDefaultPointFigure:!0,needDefaultXAxisFigure:!0,needDefaultYAxisFigure:!0,createPointFigures:function(t){var e=t.coordinates;return 2===e.length?[{type:"line",attrs:{coordinates:e}}]:[]},performEventPressedMove:function(t){var e=t.points,i=t.performPoint;e[0].timestamp=i.timestamp,e[0].dataIndex=i.dataIndex,e[1].timestamp=i.timestamp,e[1].dataIndex=i.dataIndex},performEventMoveForDrawing:function(t){var e=t.cur