src/main/webapp/Highcharts-5.0.12/code/modules/stock.js

(开头部分) 60KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

/*
 Highcharts JS v5.0.12 (2017-05-24)
 Highstock as a plugin for Highcharts

 (c) 2017 Torstein Honsi

 License: www.highcharts.com/license
*/
(function(K){"object"===typeof module&&module.exports?module.exports=K:K(Highcharts)})(function(K){(function(a){var G=a.addEvent,p=a.Axis,A=a.Chart,D=a.css,F=a.dateFormat,y=a.defined,I=a.each,C=a.extend,w=a.noop,r=a.timeUnits,J=a.wrap;J(a.Series.prototype,"init",function(a){var d;a.apply(this,Array.prototype.slice.call(arguments,1));(d=this.xAxis)&&d.options.ordinal&&G(this,"updatedData",function(){delete d.ordinalIndex})});J(p.prototype,"getTimeTicks",function(a,e,c,g,k,n,u,f){var h=0,d,q,b={},m,
E,H,t=[],l=-Number.MAX_VALUE,v=this.options.tickPixelInterval;if(!this.options.ordinal&&!this.options.breaks||!n||3>n.length||void 0===c)return a.call(this,e,c,g,k);E=n.length;for(d=0;d<E;d++){H=d&&n[d-1]>g;n[d]<c&&(h=d);if(d===E-1||n[d+1]-n[d]>5*u||H){if(n[d]>l){for(q=a.call(this,e,n[h],n[d],k);q.length&&q[0]<=l;)q.shift();q.length&&(l=q[q.length-1]);t=t.concat(q)}h=d+1}if(H)break}a=q.info;if(f&&a.unitRange<=r.hour){d=t.length-1;for(h=1;h<d;h++)F("%d",t[h])!==F("%d",t[h-1])&&(b[t[h]]="day",m=!0);
m&&(b[t[0]]="day");a.higherRanks=b}t.info=a;if(f&&y(v)){f=a=t.length;d=[];var z;for(m=[];f--;)h=this.translate(t[f]),z&&(m[f]=z-h),d[f]=z=h;m.sort();m=m[Math.floor(m.length/2)];m<.6*v&&(m=null);f=t[a-1]>g?a-1:a;for(z=void 0;f--;)h=d[f],g=Math.abs(z-h),z&&g<.8*v&&(null===m||g<.8*m)?(b[t[f]]&&!b[t[f+1]]?(g=f+1,z=h):g=f,t.splice(g,1)):z=h}return t});C(p.prototype,{beforeSetTickPositions:function(){var a,e=[],c=!1,g,k=this.getExtremes(),n=k.min,u=k.max,f,h=this.isXAxis&&!!this.options.breaks,k=this.options.ordinal,
x=this.chart.options.chart.ignoreHiddenSeries;if(k||h){I(this.series,function(f,b){if(!(x&&!1===f.visible||!1===f.takeOrdinalPosition&&!h)&&(e=e.concat(f.processedXData),a=e.length,e.sort(function(b,f){return b-f}),a))for(b=a-1;b--;)e[b]===e[b+1]&&e.splice(b,1)});a=e.length;if(2<a){g=e[1]-e[0];for(f=a-1;f--&&!c;)e[f+1]-e[f]!==g&&(c=!0);!this.options.keepOrdinalPadding&&(e[0]-n>g||u-e[e.length-1]>g)&&(c=!0)}c?(this.ordinalPositions=e,g=this.ordinal2lin(Math.max(n,e[0]),!0),f=Math.max(this.ordinal2lin(Math.min(u,
e[e.length-1]),!0),1),this.ordinalSlope=u=(u-n)/(f-g),this.ordinalOffset=n-g*u):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=k&&c;this.groupIntervalFactor=null},val2lin:function(a,e){var c=this.ordinalPositions;if(c){var g=c.length,k,d;for(k=g;k--;)if(c[k]===a){d=k;break}for(k=g-1;k--;)if(a>c[k]||0===k){a=(a-c[k])/(c[k+1]-c[k]);d=k+a;break}e=e?d:this.ordinalSlope*(d||0)+this.ordinalOffset}else e=a;return e},lin2val:function(a,e){var c=this.ordinalPositions;if(c){var g=
this.ordinalSlope,k=this.ordinalOffset,d=c.length-1,u;if(e)0>a?a=c[0]:a>d?a=c[d]:(d=Math.floor(a),u=a-d);else for(;d--;)if(e=g*d+k,a>=e){g=g*(d+1)+k;u=(a-e)/(g-e);break}return void 0!==u&&void 0!==c[d]?c[d]+(u?u*(c[d+1]-c[d]):0):a}return a},getExtendedPositions:function(){var a=this.chart,e=this.series[0].currentDataGrouping,c=this.ordinalIndex,g=e?e.count+e.unitName:"raw",k=this.getExtremes(),n,u;c||(c=this.ordinalIndex={});c[g]||(n={series:[],chart:a,getExtremes:function(){return{min:k.dataMin,
max:k.dataMax}},options:{ordinal:!0},val2lin:p.prototype.val2lin,ordinal2lin:p.prototype.ordinal2lin},I(this.series,function(f){u={xAxis:n,xData:f.xData,chart:a,destroyGroupedData:w};u.options={dataGrouping:e?{enabled:!0,forced:!0,approximation:"open",units:[[e.unitName,[e.count]]]}:{enabled:!1}};f.processData.apply(u);n.series.push(u)}),this.beforeSetTickPositions.apply(n),c[g]=n.ordinalPositions);return c[g]},getGroupIntervalFactor:function(a,e,c){var g;c=c.processedXData;var k=c.length,d=[];g=
this.groupIntervalFactor;if(!g){for(g=0;g<k-1;g++)d[g]=c[g+1]-c[g];d.sort(function(a,f){return a-f});d=d[Math.floor(k/2)];a=Math.max(a,c[0]);e=Math.min(e,c[k-1]);this.groupIntervalFactor=g=k*d/(e-a)}return g},postProcessTickInterval:function(a){var d=this.ordinalSlope;return d?this.options.breaks?this.closestPointRange:a/(d/this.closestPointRange):a}});p.prototype.ordinal2lin=p.prototype.val2lin;J(A.prototype,"pan",function(a,e){var c=this.xAxis[0],g=e.chartX,d=!1;if(c.options.ordinal&&c.series.length){var n=
this.mouseDownX,u=c.getExtremes(),f=u.dataMax,h=u.min,x=u.max,q=this.hoverPoints,b=c.closestPointRange,n=(n-g)/(c.translationSlope*(c.ordinalSlope||b)),m={ordinalPositions:c.getExtendedPositions()},b=c.lin2val,E=c.val2lin,H;m.ordinalPositions?1<Math.abs(n)&&(q&&I(q,function(b){b.setState()}),0>n?(q=m,H=c.ordinalPositions?c:m):(q=c.ordinalPositions?c:m,H=m),m=H.ordinalPositions,f>m[m.length-1]&&m.push(f),this.fixedRange=x-h,n=c.toFixedRange(null,null,b.apply(q,[E.apply(q,[h,!0])+n,!0]),b.apply(H,[E.apply(H,
[x,!0])+n,!0])),n.min>=Math.min(u.dataMin,h)&&n.max<=Math.max(f,x)&&c.setExtremes(n.min,n.max,!0,!1,{trigger:"pan"}),this.mouseDownX=g,D(this.container,{cursor:"move"})):d=!0}else d=!0;d&&a.apply(this,Array.prototype.slice.call(arguments,1))})})(K);(function(a){function G(){return Array.prototype.slice.call(arguments,1)}function p(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,A(this.pointArrayMap,["y"]))}var A=a.pick,D=a.wrap,F=a.each,y=a.extend,I=a.isArray,C=a.fireEvent,
w=a.Axis,r=a.Series;y(w.prototype,{isInBreak:function(a,d){var e=a.repeat||Infinity,c=a.from,g=a.to-a.from;d=d>=c?(d-c)%e:e-(c-d)%e;return a.inclusive?d<=g:d<g&&0!==d},isInAnyBreak:function(a,d){var e=this.options.breaks,c=e&&e.length,g,k,n;if(c){for(;c--;)this.isInBreak(e[c],a)&&(g=!0,k||(k=A(e[c].showPoints,this.isXAxis?!1:!0)));n=g&&d?g&&!k:g}return n}});D(w.prototype,"setTickPositions",function(a){a.apply(this,Array.prototype.slice.call(arguments,1));if(this.options.breaks){var d=this.tickPositions,
e=this.tickPositions.info,c=[],g;for(g=0;g<d.length;g++)this.isInAnyBreak(d[g])||c.push(d[g]);this.tickPositions=c;this.tickPositions.info=e}});D(w.prototype,"init",function(a,d,e){var c=this;e.breaks&&e.breaks.length&&(e.ordinal=!1);a.call(this,d,e);a=this.options.breaks;c.isBroken=I(a)&&!!a.length;c.isBroken&&(c.val2lin=function(a){var g=a,d,e;for(e=0;e<c.breakArray.length;e++)if(d=c.breakArray[e],d.to<=a)g-=d.len;else if(d.from>=a)break;else if(c.isInBreak(d,a)){g-=a-d.from;break}return g},c.lin2val=
function(a){var d,g;for(g=0;g<c.breakArray.length&&!(d=c.breakArray[g],d.from>=a);g++)d.to<a?a+=d.len:c.isInBreak(d,a)&&(a+=d.len);return a},c.setExtremes=function(a,c,d,e,f){for(;this.isInAnyBreak(a);)a-=this.closestPointRange;for(;this.isInAnyBreak(c);)c-=this.closestPointRange;w.prototype.setExtremes.call(this,a,c,d,e,f)},c.setAxisTranslation=function(a){w.prototype.setAxisTranslation.call(this,a);a=c.options.breaks;var d=[],e=[],g=0,f,h,x=c.userMin||c.min,q=c.userMax||c.max,b=A(c.pointRangePadding,
0),m,E;F(a,function(b){h=b.repeat||Infinity;c.isInBreak(b,x)&&(x+=b.to%h-x%h);c.isInBreak(b,q)&&(q-=q%h-b.from%h)});F(a,function(b){m=b.from;for(h=b.repeat||Infinity;m-h>x;)m-=h;for(;m<x;)m+=h;for(E=m;E<q;E+=h)d.push({value:E,move:"in"}),d.push({value:E+(b.to-b.from),move:"out",size:b.breakSize})});d.sort(function(b,a){return b.value===a.value?("in"===b.move?0:1)-("in"===a.move?0:1):b.value-a.value});f=0;m=x;F(d,function(b){f+="in"===b.move?1:-1;1===f&&"in"===b.move&&(m=b.value);0===f&&(e.push({from:m,
to:b.value,len:b.value-m-(b.size||0)}),g+=b.value-m-(b.size||0))});c.breakArray=e;c.unitLength=q-x-g+b;C(c,"afterBreaks");c.options.staticScale?c.transA=c.options.staticScale:c.unitLength&&(c.transA*=(q-c.min+b)/c.unitLength);b&&(c.minPixelPadding=c.transA*c.minPointOffset);c.min=x;c.max=q})});D(r.prototype,"generatePoints",function(a){a.apply(this,G(arguments));var d=this.xAxis,e=this.yAxis,c=this.points,g,k=c.length,n=this.options.connectNulls,u;if(d&&e&&(d.options.breaks||e.options.breaks))for(;k--;)g=
c[k],u=null===g.y&&!1===n,u||!d.isInAnyBreak(g.x,!0)&&!e.isInAnyBreak(g.y,!0)||(c.splice(k,1),this.data[k]&&this.data[k].destroyElements())});a.Series.prototype.drawBreaks=function(a,d){var e=this,c=e.points,g,k,n,u;a&&F(d,function(f){g=a.breakArray||[];k=a.isXAxis?a.min:A(e.options.threshold,a.min);F(c,function(h){u=A(h["stack"+f.toUpperCase()],h[f]);F(g,function(f){n=!1;if(k<f.from&&u>f.to||k>f.from&&u<f.from)n="pointBreak";else if(k<f.from&&u>f.from&&u<f.to||k>f.from&&u>f.to&&u<f.from)n="pointInBreak";
n&&C(a,n,{point:h,brk:f})})})})};a.Series.prototype.gappedPath=function(){var a=this.options.gapSize,d=this.points.slice(),e=d.length-1;if(a&&0<e)for(;e--;)d[e+1].x-d[e].x>this.closestPointRange*a&&d.splice(e+1,0,{isNull:!0});return this.getGraphPath(d)};D(a.seriesTypes.column.prototype,"drawPoints",p);D(a.Series.prototype,"drawPoints",p)})(K);(function(a){var G=a.arrayMax,p=a.arrayMin,A=a.Axis,D=a.defaultPlotOptions,F=a.defined,y=a.each,I=a.extend,C=a.format,w=a.isNumber,r=a.merge,J=a.pick,d=a.Point,
e=a.Tooltip,c=a.wrap,g=a.Series.prototype,k=g.processData,n=g.generatePoints,u=g.destroy,f={approximation:"average",groupPixelWidth:2,dateTimeLabelFormats:{millisecond:["%A, %b %e, %H:%M:%S.%L","%A, %b %e, %H:%M:%S.%L","-%H:%M:%S.%L"],second:["%A, %b %e, %H:%M:%S","%A, %b %e, %H:%M:%S","-%H:%M:%S"],minute:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],hour:["%A, %b %e, %H:%M","%A, %b %e, %H:%M","-%H:%M"],day:["%A, %b %e, %Y","%A, %b %e","-%A, %b %e, %Y"],week:["Week from %A, %b %e, %Y","%A, %b %e",
"-%A, %b %e, %Y"],month:["%B %Y","%B","-%B %Y"],year:["%Y","%Y","-%Y"]}},h={line:{},spline:{},area:{},areaspline:{},column:{approximation:"sum",groupPixelWidth:10},arearange:{approximation:"range"},areasplinerange:{approximation:"range"},columnrange:{approximation:"range",groupPixelWidth:10},candlestick:{approximation:"ohlc",groupPixelWidth:10},ohlc:{approximation:"ohlc",groupPixelWidth:5}},x=a.defaultDataGroupingUnits=[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",
[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1]],["week",[1]],["month",[1,3,6]],["year",null]],q={sum:function(b){var a=b.length,f;if(!a&&b.hasNulls)f=null;else if(a)for(f=0;a--;)f+=b[a];return f},average:function(b){var a=b.length;b=q.sum(b);w(b)&&a&&(b/=a);return b},averages:function(){var b=[];y(arguments,function(a){b.push(q.average(a))});return b},open:function(b){return b.length?b[0]:b.hasNulls?null:void 0},high:function(b){return b.length?G(b):b.hasNulls?null:void 0},low:function(b){return b.length?
p(b):b.hasNulls?null:void 0},close:function(b){return b.length?b[b.length-1]:b.hasNulls?null:void 0},ohlc:function(b,a,f,h){b=q.open(b);a=q.high(a);f=q.low(f);h=q.close(h);if(w(b)||w(a)||w(f)||w(h))return[b,a,f,h]},range:function(b,a){b=q.low(b);a=q.high(a);if(w(b)||w(a))return[b,a];if(null===b&&null===a)return null}};g.groupData=function(b,a,c,d){var m=this.data,l=this.options.data,v=[],z=[],E=[],e=b.length,B,g,N=!!a,k=[];d="function"===typeof d?d:q[d]||h[this.type]&&q[h[this.type].approximation]||
q[f.approximation];var H=this.pointArrayMap,x=H&&H.length,n=0;g=0;var u,r;x?y(H,function(){k.push([])}):k.push([]);u=x||1;for(r=0;r<=e&&!(b[r]>=c[0]);r++);for(r;r<=e;r++){for(;void 0!==c[n+1]&&b[r]>=c[n+1]||r===e;){B=c[n];this.dataGroupInfo={start:g,length:k[0].length};g=d.apply(this,k);void 0!==g&&(v.push(B),z.push(g),E.push(this.dataGroupInfo));g=r;for(B=0;B<u;B++)k[B].length=0,k[B].hasNulls=!1;n+=1;if(r===e)break}if(r===e)break;if(H){B=this.cropStart+r;var C=m&&m[B]||this.pointClass.prototype.applyOptions.apply({series:this},
[l[B]]),p;for(B=0;B<x;B++)p=C[H[B]],w(p)?k[B].push(p):null===p&&(k[B].hasNulls=!0)}else B=N?a[r]:null,w(B)?k[0].push(B):null===B&&(k[0].hasNulls=!0)}return[v,z,E]};g.processData=function(){var b=this.chart,a=this.options.dataGrouping,f=!1!==this.allowDG&&a&&J(a.enabled,b.options.isStock),h=this.visible||!b.options.chart.ignoreHiddenSeries,c;this.forceCrop=f;this.groupPixelWidth=null;this.hasProcessed=!0;if(!1!==k.apply(this,arguments)&&f){this.destroyGroupedData();var l=this.processedXData,v=this.processedYData,
z=b.plotSizeX,b=this.xAxis,d=b.options.ordinal,e=this.groupPixelWidth=b.getGroupPixelWidth&&b.getGroupPixelWidth();if(e){this.isDirty=c=!0;this.points=null;var B=b.getExtremes(),f=B.min,B=B.max,d=d&&b.getGroupIntervalFactor(f,B,this)||1,z=e*(B-f)/z*d,e=b.getTimeTicks(b.normalizeTimeTickInterval(z,a.units||x),Math.min(f,l[0]),Math.max(B,l[l.length-1]),b.options.startOfWeek,l,this.closestPointRange),l=g.groupData.apply(this,[l,v,e,a.approximation]),v=l[0],d=l[1];if(a.smoothed){a=v.length-1;for(v[a]=
Math.min(v[a],B);a--&&0<a;)v[a]+=z/2;v[0]=Math.max(v[0],f)}this.currentDataGrouping=e.info;this.closestPointRange=e.info.totalRange;this.groupMap=l[2];F(v[0])&&v[0]<b.dataMin&&h&&(b.min===b.dataMin&&(b.min=v[0]),b.dataMin=v[0]);this.processedXData=v;this.processedYData=d}else this.currentDataGrouping=this.groupMap=null;this.hasGroupedData=c}};g.destroyGroupedData=function(){var a=this.groupedData;y(a||[],function(b,f){b&&(a[f]=b.destroy?b.destroy():null)});this.groupedData=null};g.generatePoints=
function(){n.apply(this);this.destroyGroupedData();this.groupedData=this.hasGroupedData?this.points:null};c(d.prototype,"update",function(b){this.dataGroup?a.error(24):b.apply(this,[].slice.call(arguments,1))});c(e.prototype,"tooltipFooterHeaderFormatter",function(b,f,h){var c=f.series,d=c.tooltipOptions,l=c.options.dataGrouping,v=d.xDateFormat,z,m=c.xAxis,e=a.dateFormat;return m&&"datetime"===m.options.type&&l&&w(f.key)?(b=c.currentDataGrouping,l=l.dateTimeLabelFormats,b?(m=l[b.unitName],1===b.count?
v=m[0]:(v=m[1],z=m[2])):!v&&l&&(v=this.getXDateFormat(f,d,m)),v=e(v,f.key),z&&(v+=e(z,f.key+b.totalRange-1)),C(d[(h?"footer":"header")+"Format"],{point:I(f.point,{key:v}),series:c})):b.call(this,f,h)});g.destroy=function(){for(var a=this.groupedData||[],f=a.length;f--;)a[f]&&a[f].destroy();u.apply(this)};c(g,"setOptions",function(a,c){a=a.call(this,c);var b=this.type,d=this.chart.options.plotOptions,m=D[b].dataGrouping;h[b]&&(m||(m=r(f,h[b])),a.dataGrouping=r(m,d.series&&d.series.dataGrouping,d[b].dataGrouping,
c.dataGrouping));this.chart.options.isStock&&(this.requireSorting=!0);return a});c(A.prototype,"setScale",function(a){a.call(this);y(this.series,function(a){a.hasProcessed=!1})});A.prototype.getGroupPixelWidth=function(){var a=this.series,f=a.length,h,c=0,d=!1,l;for(h=f;h--;)(l=a[h].options.dataGrouping)&&(c=Math.max(c,l.groupPixelWidth));for(h=f;h--;)(l=a[h].options.dataGrouping)&&a[h].hasProcessed&&(f=(a[h].processedXData||a[h].data).length,a[h].groupPixelWidth||f>this.chart.plotSizeX/c||f&&l.forced)&&
(d=!0);return d?c:0};A.prototype.setDataGrouping=function(a,f){var b;f=J(f,!0);a||(a={forced:!1,units:null});if(this instanceof A)for(b=this.series.length;b--;)this.series[b].update({dataGrouping:a},!1);else y(this.chart.options.series,function(b){b.dataGrouping=a},!1);f&&this.chart.redraw()}})(K);(function(a){var G=a.each,p=a.Point,A=a.seriesType,D=a.seriesTypes;A("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'},
threshold:null,states:{hover:{lineWidth:3}},stickyTracking:!0},{directTouch:!1,pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"close",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth"},pointAttribs:function(a,p){p=D.column.prototype.pointAttribs.call(this,a,p);var y=this.options;delete p.fill;!a.options.color&&y.upColor&&a.open<a.close&&(p.stroke=y.upColor);return p},translate:function(){var a=this,p=a.yAxis,I=!!a.modifyValue,
C=["plotOpen","plotHigh","plotLow","plotClose","yBottom"];D.column.prototype.translate.apply(a);G(a.points,function(w){G([w.open,w.high,w.low,w.close,w.low],function(r,y){null!==r&&(I&&(r=a.modifyValue(r)),w[C[y]]=p.toPixels(r,!0))});w.tooltipPos[1]=w.plotHigh+p.pos-a.chart.plotTop})},drawPoints:function(){var a=this,p=a.chart;G(a.points,function(y){var C,w,r,A,d=y.graphic,e,c=!d;void 0!==y.plotY&&(d||(y.graphic=d=p.renderer.path().add(a.group)),d.attr(a.pointAttribs(y,y.selected&&"select")),w=d.strokeWidth()%
2/2,e=Math.round(y.plotX)-w,r=Math.round(y.shapeArgs.width/2),A=["M",e,Math.round(y.yBottom),"L",e,Math.round(y.plotHigh)],null!==y.open&&(C=Math.round(y.plotOpen)+w,A.push("M",e,C,"L",e-r,C)),null!==y.close&&(C=Math.round(y.plotClose)+w,A.push("M",e,C,"L",e+r,C)),d[c?"attr":"animate"]({d:A}).addClass(y.getClassName(),!0))})},animate:null},{getClassName:function(){return p.prototype.getClassName.call(this)+(this.open<this.close?" highcharts-point-up":" highcharts-point-down")}})})(K);(function(a){var G=
a.defaultPlotOptions,p=a.each,A=a.merge,D=a.seriesType,F=a.seriesTypes;D("candlestick","ohlc",A(G.column,{states:{hover:{lineWidth:2}},tooltip:G.ohlc.tooltip,threshold:null,lineColor:"#000000",lineWidth:1,upColor:"#ffffff",stickyTracking:!0}),{pointAttribs:function(a,p){var C=F.column.prototype.pointAttribs.call(this,a,p),w=this.options,r=a.open<a.close,y=w.lineColor||this.color;C["stroke-width"]=w.lineWidth;C.fill=a.options.color||(r?w.upColor||this.color:this.color);C.stroke=a.lineColor||(r?w.upLineColor||
y:y);p&&(a=w.states[p],C.fill=a.color||C.fill,C.stroke=a.lineColor||C.stroke,C["stroke-width"]=a.lineWidth||C["stroke-width"]);return C},drawPoints:function(){var a=this,A=a.chart;p(a.points,function(p){var w=p.graphic,r,y,d,e,c,g,k,n=!w;void 0!==p.plotY&&(w||(p.graphic=w=A.renderer.path().add(a.group)),w.attr(a.pointAttribs(p,p.selected&&"select")).shadow(a.options.shadow),c=w.strokeWidth()%2/2,g=Math.round(p.plotX)-c,r=p.plotOpen,y=p.plotClose,d=Math.min(r,y),r=Math.max(r,y),k=Math.round(p.shapeArgs.width/
2),y=Math.round(d)!==Math.round(p.plotHigh),e=r!==p.yBottom,d=Math.round(d)+c,r=Math.round(r)+c,c=[],c.push("M",g-k,r,"L",g-k,d,"L",g+k,d,"L",g+k,r,"Z","M",g,d,"L",g,y?Math.round(p.plotHigh):d,"M",g,r,"L",g,e?Math.round(p.yBottom):r),w[n?"attr":"animate"]({d:c}).addClass(p.getClassName(),!0))})}})})(K);(function(a){var G=a.addEvent,p=a.each,A=a.merge,D=a.noop,F=a.Renderer,y=a.seriesType,I=a.seriesTypes,C=a.TrackerMixin,w=a.VMLRenderer,r=a.SVGRenderer.prototype.symbols,J=a.stableSort;y("flags","column",
{pointRange:0,shape:"flag",stackDistance:12,textAlign:"center",tooltip:{pointFormat:"{point.text}\x3cbr/\x3e"},threshold:null,y:-30,fillColor:"#ffffff",lineWidth:1,states:{hover:{lineColor:"#000000",fillColor:"#ccd6eb"}},style:{fontSize:"11px",fontWeight:"bold"}},{sorted:!1,noSharedTooltip:!0,allowDG:!1,takeOrdinalPosition:!1,trackerGroups:["markerGroup"],forceCrop:!0,init:a.Series.prototype.init,pointAttribs:function(a,e){var c=this.options,d=a&&a.color||this.color,k=c.lineColor,n=a&&a.lineWidth;
a=a&&a.fillColor||c.fillColor;e&&(a=c.states[e].fillColor,k=c.states[e].lineColor,n=c.states[e].lineWidth);return{fill:a||d,stroke:k||d,"stroke-width":n||c.lineWidth||0}},translate:function(){I.column.prototype.translate.apply(this);var a=this.options,e=this.chart,c=this.points,g=c.length-1,k,n,r=a.onSeries;k=r&&e.get(r);var a=a.onKey||"y",r=k&&k.options.step,f=k&&k.points,h=f&&f.length,x=this.xAxis,q=this.yAxis,b=x.getExtremes(),m=0,E,H,t;if(k&&k.visible&&h)for(m=(k.pointXOffset||0)+(k.barW||0)/
2,k=k.currentDataGrouping,H=f[h-1].x+(k?k.totalRange:0),J(c,function(a,b){return a.x-b.x}),a="plot"+a[0].toUpperCase()+a.substr(1);h--&&c[g]&&!(k=c[g],E=f[h],E.x<=k.x&&void 0!==E[a]&&(k.x<=H&&(k.plotY=E[a],E.x<k.x&&!r&&(t=f[h+1])&&void 0!==t[a]&&(k.plotY+=(k.x-E.x)/(t.x-E.x)*(t[a]-E[a]))),g--,h++,0>g)););p(c,function(a,f){var l;void 0===a.plotY&&(a.x>=b.min&&a.x<=b.max?a.plotY=e.chartHeight-x.bottom-(x.opposite?x.height:0)+x.offset-q.top:a.shapeArgs={});a.plotX+=m;(n=c[f-1])&&n.plotX===a.plotX&&(void 0===
n.stackIndex&&(n.stackIndex=0),l=n.stackIndex+1);a.stackIndex=l})},drawPoints:function(){var d=this.points,e=this.chart,c=e.renderer,g,k,n=this.options,p=n.y,f,h,x,q,b,m,E,H=this.yAxis;for(h=d.length;h--;)x=d[h],E=x.plotX>this.xAxis.len,g=x.plotX,q=x.stackIndex,f=x.options.shape||n.shape,k=x.plotY,void 0!==k&&(k=x.plotY+p-(void 0!==q&&q*n.stackDistance)),b=q?void 0:x.plotX,m=q?void 0:x.plotY,q=x.graphic,void 0!==k&&0<=g&&!E?(q||(q=x.graphic=c.label("",null,null,f,null,null,n.useHTML).attr(this.pointAttribs(x)).css(A(n.style,
x.style)).attr({align:"flag"===f?"left":"center",width:n.width,height:n.height,"text-align":n.textAlign}).addClass("highcharts-point").add(this.markerGroup),x.graphic.div&&(x.graphic.div.point=x),q.shadow(n.shadow)),0<g&&(g-=q.strokeWidth()%2),q.attr({text:x.options.title||n.title||"A",x:g,y:k,anchorX:b,anchorY:m}),x.tooltipPos=e.inverted?[H.len+H.pos-e.plotLeft-k,this.xAxis.len-g]:[g,k+H.pos-e.plotTop]):q&&(x.graphic=q.destroy());n.useHTML&&a.wrap(this.markerGroup,"on",function(b){return a.SVGElement.prototype.on.apply(b.apply(this,
[].slice.call(arguments,1)),[].slice.call(arguments,1))})},drawTracker:function(){var a=this.points;C.drawTrackerPoint.apply(this);p(a,function(d){var c=d.graphic;c&&G(c.element,"mouseover",function(){0<d.stackIndex&&!d.raised&&(d._y=c.y,c.attr({y:d._y-8}),d.raised=!0);p(a,function(a){a!==d&&a.raised&&a.graphic&&(a.graphic.attr({y:a._y}),a.raised=!1)})})})},animate:D,buildKDTree:D,setClip:D});r.flag=function(a,e,c,g,k){return["M",k&&k.anchorX||a,k&&k.anchorY||e,"L",a,e+g,a,e,a+c,e,a+c,e+g,a,e+g,"Z"]};
p(["circle","square"],function(a){r[a+"pin"]=function(d,c,g,k,n){var e=n&&n.anchorX;n=n&&n.anchorY;"circle"===a&&k>g&&(d-=Math.round((k-g)/2),g=k);d=r[a](d,c,g,k);e&&n&&d.push("M",e,c>n?c:c+k,"L",e,n);return d}});F===w&&p(["flag","circlepin","squarepin"],function(a){w.prototype.symbols[a]=r[a]})})(K);(function(a){function G(a,h,c){this.init(a,h,c)}var p=a.addEvent,A=a.Axis,D=a.correctFloat,F=a.defaultOptions,y=a.defined,I=a.destroyObjectProperties,C=a.doc,w=a.each,r=a.fireEvent,J=a.hasTouch,d=a.isTouchDevice,
e=a.merge,c=a.pick,g=a.removeEvent,k=a.wrap,n,u={height:d?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!d,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2",trackBorderWidth:1};F.scrollbar=e(!0,u,F.scrollbar);a.swapXY=n=function(a,h){var f=
a.length,c;if(h)for(h=0;h<f;h+=3)c=a[h+1],a[h+1]=a[h+2],a[h+2]=c;return a};G.prototype={init:function(a,h,d){this.scrollbarButtons=[];this.renderer=a;this.userOptions=h;this.options=e(u,h);this.chart=d;this.size=c(this.options.size,this.options.height);h.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,h=this.options,c=this.size,d;this.group=d=a.g("scrollbar").attr({zIndex:h.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0,
r:h.trackBorderRadius||0,height:c,width:c}).add(d);this.track.attr({fill:h.trackBackgroundColor,stroke:h.trackBorderColor,"stroke-width":h.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=a.g().add(d);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:c,width:c,r:h.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(n(["M",-3,c/4,"L",-3,2*c/3,"M",0,c/4,"L",0,2*c/3,"M",
3,c/4,"L",3,2*c/3],h.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbar.attr({fill:h.barBackgroundColor,stroke:h.barBorderColor,"stroke-width":h.barBorderWidth});this.scrollbarRifles.attr({stroke:h.rifleColor,"stroke-width":1});this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)},position:function(a,c,d,e){var b=
this.options.vertical,f=0,h=this.rendered?"animate":"attr";this.x=a;this.y=c+this.trackBorderWidth;this.width=d;this.xOffset=this.height=e;this.yOffset=f;b?(this.width=this.yOffset=d=f=this.size,this.xOffset=c=0,this.barWidth=e-2*d,this.x=a+=this.options.margin):(this.height=this.xOffset=e=c=this.size,this.barWidth=d-2*e,this.y+=this.options.margin);this.group[h]({translateX:a,translateY:this.y});this.track[h]({width:d,height:e});this.scrollbarButtons[1][h]({translateX:b?0:d-c,translateY:b?e-f:0})},
drawScrollbarButton:function(a){var f=this.renderer,c=this.scrollbarButtons,d=this.options,b=this.size,m;m=f.g().add(this.group);c.push(m);m=f.rect().addClass("highcharts-scrollbar-button").add(m);m.attr({stroke:d.buttonBorderColor,"stroke-width":d.buttonBorderWidth,fill:d.buttonBackgroundColor});m.attr(m.crisp({x:-.5,y:-.5,width:b+1,height:b+1,r:d.buttonBorderRadius},m.strokeWidth()));m=f.path(n(["M",b/2+(a?-1:1),b/2-3,"L",b/2+(a?-1:1),b/2+3,"L",b/2+(a?2:-2),b/2],d.vertical)).addClass("highcharts-scrollbar-arrow").add(c[a]);
m.attr({fill:d.buttonArrowColor})},setRange:function(a,c){var f=this.options,h=f.vertical,b=f.minWidth,d=this.barWidth,e,g,t=this.rendered&&!this.hasDragged?"animate":"attr";y(d)&&(a=Math.max(a,0),e=Math.ceil(d*a),this.calculatedWidth=g=D(d*Math.min(c,1)-e),g<b&&(e=(d-b+g)*a,g=b),b=Math.floor(e+this.xOffset+this.yOffset),d=g/2-.5,this.from=a,this.to=c,h?(this.scrollbarGroup[t]({translateY:b}),this.scrollbar[t]({height:g}),this.scrollbarRifles[t]({translateY:d}),this.scrollbarTop=b,this.scrollbarLeft=
0):(this.scrollbarGroup[t]({translateX:b}),this.scrollbar[t]({width:g}),this.scrollbarRifles[t]({translateX:d}),this.scrollbarLeft=b,this.scrollbarTop=0),12>=g?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===f.showFull&&(0>=a&&1<=c?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(c){var d=a.chart.pointer.normalize(c),h=a.options.vertical?"chartY":"chartX",b=a.initPositions;!a.grabbedCenter||c.touches&&0===c.touches[0][h]||
(d=a.cursorToScrollbarPosition(d)[h],h=a[h],h=d-h,a.hasDragged=!0,a.updatePosition(b[0]+h,b[1]+h),a.hasDragged&&r(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:c.type,DOMEvent:c}))};a.mouseUpHandler=function(c){a.hasDragged&&r(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:c.type,DOMEvent:c});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(c){c=a.chart.pointer.normalize(c);c=a.cursorToScrollbarPosition(c);a.chartX=c.chartX;a.chartY=c.chartY;
a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(c){var d=D(a.to-a.from)*a.options.step;a.updatePosition(D(a.from-d),D(a.to-d));r(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:c})};a.buttonToMaxClick=function(c){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);r(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:c})};a.trackClick=function(c){var d=a.chart.pointer.normalize(c),f=a.to-a.from,b=a.y+a.scrollbarTop,h=a.x+a.scrollbarLeft;
后面还有 69 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。