highcharts
Version:
JavaScript charting framework
7 lines • 5.89 kB
JavaScript
/**
* Highcharts JS v11.3.0 (2024-01-10)
*
* (c) 2009-2024 Torstein Honsi
*
* License: www.highcharts.com/license
*/!function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/broken-axis",["highcharts"],function(i){return t(i),t.Highcharts=i,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var i=t?t._modules:{};function e(t,i,e,s){t.hasOwnProperty(i)||(t[i]=s.apply(null,e),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:i,module:t[i]}})))}e(i,"Core/Axis/BrokenAxis.js",[i["Core/Globals.js"],i["Core/Axis/Stacking/StackItem.js"],i["Core/Utilities.js"]],function(t,i,e){var s;let{composed:n}=t,{addEvent:o,find:r,fireEvent:a,isArray:l,isNumber:f,pick:h,pushUnique:u}=e;return function(t){function e(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function s(){this.brokenAxis?.hasBreaks&&(this.options.ordinal=!1)}function c(){let t=this.brokenAxis;if(t?.hasBreaks){let i=this.tickPositions,e=this.tickPositions.info,s=[];for(let e=0;e<i.length;e++)t.isInAnyBreak(i[e])||s.push(i[e]);this.tickPositions=s,this.tickPositions.info=e}}function k(){this.brokenAxis||(this.brokenAxis=new b(this))}function p(){let{isDirty:t,options:{connectNulls:i},points:e,xAxis:s,yAxis:n}=this;if(t){let t=e.length;for(;t--;){let o=e[t],r=null===o.y&&!1===i,a=!r&&(s?.brokenAxis?.isInAnyBreak(o.x,!0)||n?.brokenAxis?.isInAnyBreak(o.y,!0));o.visible=!a&&!1!==o.options.visible}}}function m(){this.drawBreaks(this.xAxis,["x"]),this.drawBreaks(this.yAxis,h(this.pointArrayMap,["y"]))}function x(t,i){let e,s,n;let o=this,r=o.points;if(t?.brokenAxis?.hasBreaks){let l=t.brokenAxis;i.forEach(function(i){e=l?.breakArray||[],s=t.isXAxis?t.min:h(o.options.threshold,t.min);let u=t?.options?.breaks?.filter(function(t){let i=!0;for(let s=0;s<e.length;s++){let n=e[s];if(n.from===t.from&&n.to===t.to){i=!1;break}}return i});r.forEach(function(o){n=h(o["stack"+i.toUpperCase()],o[i]),e.forEach(function(i){if(f(s)&&f(n)){let e="";s<i.from&&n>i.to||s>i.from&&n<i.from?e="pointBreak":(s<i.from&&n>i.from&&n<i.to||s>i.from&&n>i.to&&n<i.from)&&(e="pointInBreak"),e&&a(t,e,{point:o,brk:i})}}),u?.forEach(function(i){a(t,"pointOutsideOfBreak",{point:o,brk:i})})})})}}function d(){let t=this.currentDataGrouping,e=t?.gapSize,s=this.points.slice(),n=this.yAxis,o=this.options.gapSize,r=s.length-1;if(o&&r>0){let t,a;for("value"!==this.options.gapUnit&&(o*=this.basePointRange),e&&e>o&&e>=this.basePointRange&&(o=e);r--;)if(a&&!1!==a.visible||(a=s[r+1]),t=s[r],!1!==a.visible&&!1!==t.visible){if(a.x-t.x>o){let e=(t.x+a.x)/2;s.splice(r+1,0,{isNull:!0,x:e}),n.stacking&&this.options.stacking&&((n.stacking.stacks[this.stackKey][e]=new i(n,n.options.stackLabels,!1,e,this.stack)).total=0)}a=t}}return this.getGraphPath(s)}t.compose=function t(i,r){if(u(n,t)){i.keepProps.push("brokenAxis"),o(i,"init",k),o(i,"afterInit",e),o(i,"afterSetTickPositions",c),o(i,"afterSetOptions",s);let t=r.prototype;t.drawBreaks=x,t.gappedPath=d,o(r,"afterGeneratePoints",p),o(r,"afterRender",m)}return i};class b{static isInBreak(t,i){let e=t.repeat||1/0,s=t.from,n=t.to-t.from,o=i>=s?(i-s)%e:e-(s-i)%e;return t.inclusive?o<=n:o<n&&0!==o}static lin2Val(t){let i=this.brokenAxis,e=i&&i.breakArray;if(!e||!f(t))return t;let s=t,n,o;for(o=0;o<e.length&&!((n=e[o]).from>=s);o++)n.to<s?s+=n.len:b.isInBreak(n,s)&&(s+=n.len);return s}static val2Lin(t){let i=this.brokenAxis,e=i&&i.breakArray;if(!e||!f(t))return t;let s=t,n,o;for(o=0;o<e.length;o++)if((n=e[o]).to<=t)s-=n.len;else if(n.from>=t)break;else if(b.isInBreak(n,t)){s-=t-n.from;break}return s}constructor(t){this.hasBreaks=!1,this.axis=t}findBreakAt(t,i){return r(i,function(i){return i.from<t&&t<i.to})}isInAnyBreak(t,i){let e=this.axis,s=e.options.breaks||[],n=s.length,o,r,a;if(n&&f(t)){for(;n--;)b.isInBreak(s[n],t)&&(o=!0,r||(r=h(s[n].showPoints,!e.isXAxis)));a=o&&i?o&&!r:o}return a}setBreaks(t,i){let e=this,s=e.axis,n=l(t)&&!!t.length&&!!Object.keys(t[0]).length;s.isDirty=e.hasBreaks!==n,e.hasBreaks=n,t!==s.options.breaks&&(s.options.breaks=s.userOptions.breaks=t),s.forceRedraw=!0,s.series.forEach(function(t){t.isDirty=!0}),n||s.val2lin!==b.val2Lin||(delete s.val2lin,delete s.lin2val),n&&(s.userOptions.ordinal=!1,s.lin2val=b.lin2Val,s.val2lin=b.val2Lin,s.setExtremes=function(t,i,n,o,r){if(e.hasBreaks){let s;let n=this.options.breaks||[];for(;s=e.findBreakAt(t,n);)t=s.to;for(;s=e.findBreakAt(i,n);)i=s.from;i<t&&(i=t)}s.constructor.prototype.setExtremes.call(this,t,i,n,o,r)},s.setAxisTranslation=function(){if(s.constructor.prototype.setAxisTranslation.call(this),e.unitLength=void 0,e.hasBreaks){let t=s.options.breaks||[],i=[],n=[],o=h(s.pointRangePadding,0),r=0,l,u,c=s.userMin||s.min,k=s.userMax||s.max,p,m;t.forEach(function(t){u=t.repeat||1/0,f(c)&&f(k)&&(b.isInBreak(t,c)&&(c+=t.to%u-c%u),b.isInBreak(t,k)&&(k-=k%u-t.from%u))}),t.forEach(function(t){if(p=t.from,u=t.repeat||1/0,f(c)&&f(k)){for(;p-u>c;)p-=u;for(;p<c;)p+=u;for(m=p;m<k;m+=u)i.push({value:m,move:"in"}),i.push({value:m+t.to-t.from,move:"out",size:t.breakSize})}}),i.sort(function(t,i){return t.value===i.value?("in"===t.move?0:1)-("in"===i.move?0:1):t.value-i.value}),l=0,p=c,i.forEach(function(t){1===(l+="in"===t.move?1:-1)&&"in"===t.move&&(p=t.value),0===l&&f(p)&&(n.push({from:p,to:t.value,len:t.value-p-(t.size||0)}),r+=t.value-p-(t.size||0))}),e.breakArray=n,f(c)&&f(k)&&f(s.min)&&(e.unitLength=k-c-r+o,a(s,"afterBreaks"),s.staticScale?s.transA=s.staticScale:e.unitLength&&(s.transA*=(k-s.min+o)/e.unitLength),o&&(s.minPixelPadding=s.transA*(s.minPointOffset||0)),s.min=c,s.max=k)}}),h(i,!0)&&s.chart.redraw()}}t.Additions=b}(s||(s={})),s}),e(i,"masters/modules/broken-axis.src.js",[i["Core/Globals.js"],i["Core/Axis/BrokenAxis.js"]],function(t,i){i.compose(t.Axis,t.Series)})});