UNPKG

highcharts

Version:
11 lines 8.04 kB
/** * Highcharts JS v12.6.0 (2026-04-13) * @module highcharts/modules/broken-axis * @requires highcharts * * (c) 2009-2026 Highsoft AS * Author: Torstein Hønsi * * A commercial license may be required depending on use. * See www.highcharts.com/license */import*as e from"../highcharts.js";var t,i={};i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let r=e.default;var n=i.n(r);let s=e.default.StackItem;var o=i.n(s);let{doc:a,win:l}=n();function f(e,t,i,r={}){let s="function"==typeof e&&e.prototype||e;Object.hasOwnProperty.call(s,"hcEvents")||(s.hcEvents={});let o=s.hcEvents;n().Point&&e instanceof n().Point&&e.series&&e.series.chart&&(e.series.chart.runTrackerClick=!0);let a=e.addEventListener;a&&a.call(e,t,i,!!n().supportsPassiveEvents&&{passive:void 0===r.passive?-1!==t.indexOf("touch"):r.passive,capture:!1}),o[t]||(o[t]=[]);let l={fn:i,order:"number"==typeof r.order?r.order:1/0};return o[t].push(l),o[t].sort((e,t)=>e.order-t.order),function(){!function(e,t,i){function r(t,i){let r=e.removeEventListener;r&&r.call(e,t,i,!1)}function n(i){let n,s;if(e.nodeName){t?(n={})[t]=!0:n=i;var o=n,a=function(e,t){if(i[t])for(s=i[t].length;s--;)r(t,i[t][s].fn)};for(let e in o)Object.hasOwnProperty.call(o,e)&&a.call(o[e],o[e],e,o)}}let s="function"==typeof e&&e.prototype||e;if(Object.hasOwnProperty.call(s,"hcEvents")){let e=s.hcEvents;if(t){let s=e[t]||[];i?(e[t]=s.filter(function(e){return i!==e.fn}),r(t,i)):(n(e),e[t]=[])}else n(e),delete s.hcEvents}}(e,t,i)}}function c(e,t){let i;for(i in e||(e={}),t)e[i]=t[i];return e}function h(e,t,i,r){if(i=i||{},a?.createEvent&&(e.dispatchEvent||e.fireEvent&&e!==n())){let r=a.createEvent("Events");r.initEvent(t,!0,!0),i=c(r,i),e.dispatchEvent?e.dispatchEvent(i):e.fireEvent(t,i)}else if(e.hcEvents){i.target||c(i,{preventDefault:function(){i.defaultPrevented=!0},target:e,type:t});let r=[],n=e,s=!1;for(;n.hcEvents;)Object.hasOwnProperty.call(n,"hcEvents")&&n.hcEvents[t]&&(r.length&&(s=!0),r.unshift.apply(r,n.hcEvents[t])),n=Object.getPrototypeOf(n);s&&r.sort((e,t)=>e.order-t.order),r.forEach(t=>{!1===t.fn.call(e,i,e)&&i.preventDefault()})}r&&!i.defaultPrevented&&r.call(e,i)}let u=Array.prototype.find?function(e,t){return e.find(t)}:function(e,t){let i,r=e.length;for(i=0;i<r;i++)if(t(e[i],i))return e[i]};function p(e){return"number"==typeof e&&!isNaN(e)&&e<1/0&&e>-1/0}function k(){let e=arguments,t=e.length;for(let i=0;i<t;i++){let t=e[i];if(null!=t)return t}}!function(e){function t(){void 0!==this.brokenAxis&&this.brokenAxis.setBreaks(this.options.breaks,!1)}function i(){Object.keys(this.options.breaks?.[0]||{}).length&&(this.options.ordinal=!1)}function r(){let e=this.brokenAxis;if(e?.hasBreaks){let t=this.tickPositions,i=this.tickPositions.info,r=[];for(let i=0;i<t.length;i++)e.isInAnyBreak(t[i])||r.push(t[i]);this.tickPositions=r,this.tickPositions.info=i}}function n(){this.brokenAxis||(this.brokenAxis=new v(this))}function s(){let{isDirty:e,options:{connectNulls:t},points:i,xAxis:r,yAxis:n}=this;if(e){let e=i.length;for(;e--;){let s=i[e],o=(null!==s.y||!1!==t)&&(r?.brokenAxis?.isInAnyBreak(s.x,!0)||n?.brokenAxis?.isInAnyBreak(s.y,!0));s.visible=!o&&!1!==s.options.visible}}}function a(){this.drawBreaks(this.xAxis,["x"]),this.drawBreaks(this.yAxis,k(this.pointArrayMap,["y"]))}function l(e,t){let i,r,n,s=this,o=s.points;if(e?.brokenAxis?.hasBreaks){let a=e.brokenAxis;t.forEach(function(t){i=a?.breakArray||[],r=e.isXAxis?e.min:k(s.options.threshold,e.min),o.forEach(function(s){n=s["stack"+t.toUpperCase()]??s[t],i.forEach(function(t){if(p(r)&&p(n)){let i="";r<t.from&&n>t.to||r>t.from&&n<t.from?i="pointBreak":(r<t.from&&n>t.from&&n<t.to||r>t.from&&n>t.to&&n<t.from)&&(i="pointInBreak"),i&&h(e,i,{point:s,brk:t})}})})})}}function c(){let e=this.currentDataGrouping,t=e?.gapSize,i=this.points.slice(),r=this.yAxis,n=this.options.gapSize,s=i.length-1;if(n&&s>0){let e,a;for("value"!==this.options.gapUnit&&(n*=this.basePointRange),t&&t>n&&t>=this.basePointRange&&(n=t);s--;)if(a&&!1!==a.visible||(a=i[s+1]),e=i[s],!1!==a.visible&&!1!==e.visible){if(a.x-e.x>n){let t=(e.x+a.x)/2;i.splice(s+1,0,{isNull:!0,x:t}),r.stacking&&this.options.stacking&&((r.stacking.stacks[this.stackKey][t]=new(o())(r,r.options.stackLabels,!1,t,this.stack??"")).total=0)}a=e}}return this.getGraphPath(i)}e.compose=function(e,o){if(!e.keepProps.includes("brokenAxis")){e.keepProps.push("brokenAxis"),f(e,"init",n),f(e,"afterInit",t),f(e,"afterSetTickPositions",r),f(e,"afterSetOptions",i);let h=o.prototype;h.drawBreaks=l,h.gappedPath=c,f(o,"afterGeneratePoints",s),f(o,"afterRender",a)}return e};class v{static isInBreak(e,t){let i=e.repeat||1/0,r=e.from,n=e.to-e.from,s=t>=r?(t-r)%i:i-(r-t)%i;return e.inclusive?s<=n:s<n&&0!==s}static lin2Val(e){let t=this.min||0,i=this.brokenAxis,r=i?.breakArray;if(!r?.length||!p(e))return e;let n=e;if(e>t)for(let e of r)if(e.from>n)break;else e.to<=n&&e.to>t?n+=e.len:v.isInBreak(e,n)&&(n+=e.len);else if(e<t)for(let e of r)if(e.from>t)break;else e.from>=n&&e.from<t?n-=e.len:v.isInBreak(e,n)&&(n-=e.len);return n}static val2Lin(e){let t=this.min||0,i=this.brokenAxis,r=i?.breakArray;if(!r?.length||!p(e))return e;let n=e;if(e>t){for(let i of r)if(i.to<=e&&i.to>t)n-=i.len;else if(i.from>e)break;else if(v.isInBreak(i,e)){n-=e-i.from;break}}else if(e<t){for(let i of r)if(i.from>=e&&i.from<t)n+=i.len;else if(i.from>t)break;else if(v.isInBreak(i,e)){n+=i.to-e;break}}return n}constructor(e){this.axis=e}findBreakAt(e,t){return u(t,function(t){return t.from<e&&e<t.to})}isInAnyBreak(e,t){let i=this.axis,r=i.options.breaks||[],n=r.length,s,o,a;if(n&&p(e)){for(;n--;)v.isInBreak(r[n],e)&&(s=!0,o||(o=k(r[n].showPoints,!i.isXAxis)));a=s&&t?s&&!o:s}return a}setBreaks(e,t){let i,r=this,n=r.axis,s=n.chart.time,o=("[object Array]"===(i=Object.prototype.toString.call(e))||"[object Array Iterator]"===i)&&!!Object.keys(e?.[0]||{}).length;n.isDirty=(r.hasBreaks??!1)!==o,r.hasBreaks=o,e?.forEach(e=>{e.from=s.parse(e.from)||0,e.to=s.parse(e.to)||0}),e!==n.options.breaks&&(n.options.breaks=n.userOptions.breaks=e),n.forceRedraw=!0,n.series.forEach(function(e){e.isDirty=!0}),o||n.val2lin!==v.val2Lin||(delete n.val2lin,delete n.lin2val),o&&(n.userOptions.ordinal=!1,n.lin2val=v.lin2Val,n.val2lin=v.val2Lin,n.setExtremes=function(e,t,i,s,o){if(r.hasBreaks&&!n.treeGrid?.tree){let i,n=this.brokenAxis.breakArray||[];for(;i=r.findBreakAt(e,n);)e=i.to;for(;i=r.findBreakAt(t,n);)t=i.from;t<e&&(t=e)}n.constructor.prototype.setExtremes.call(this,e,t,i,s,o)},n.setAxisTranslation=function(){if(n.constructor.prototype.setAxisTranslation.call(this),r.unitLength=void 0,r.hasBreaks){let e=n.options.breaks||[],t=[],i=[],s=n.pointRangePadding??0,o=0,a,l,f=n.userMin??n.min,c=n.userMax??n.max,u=n.dataMin??f,k=n.dataMax??c,d,m;p(n.threshold)&&(u=Math.min(u??n.threshold,n.threshold),k=Math.max(k??n.threshold,n.threshold)),n.treeGrid?.tree||e.forEach(function(e){l=e.repeat||1/0,p(f)&&p(c)&&(v.isInBreak(e,f)&&(f+=e.to%l-f%l),v.isInBreak(e,c)&&(c-=c%l-e.from%l))}),p(u)&&p(k)&&e.forEach(function(e){for(d=e.from,l=e.repeat||1/0;d-l>u;)d-=l;for(;d<u;)d+=l;for(m=d;m<k;m+=l)t.push({value:m,move:"in"}),t.push({value:m+e.to-e.from,move:"out",size:e.breakSize})}),t.sort(function(e,t){return e.value===t.value?("in"!==e.move)-("in"!==t.move):e.value-t.value}),a=0,d=u,t.forEach(e=>{1===(a+="in"===e.move?1:-1)&&"in"===e.move&&(d=e.value),0===a&&p(d)&&(i.push({from:d,to:e.value,len:e.value-d-(e.size||0)}),p(f)&&p(c)&&d<c&&e.value>f&&(o+=e.value-d-(e.size||0)))}),r.breakArray=i,p(f)&&p(c)&&p(n.min)&&(r.unitLength=c-f-o+s,h(n,"afterBreaks"),n.staticScale?n.transA=n.staticScale:r.unitLength&&(n.transA*=(c-n.min+s)/r.unitLength),s&&(n.minPixelPadding=n.transA*(n.minPointOffset||0)),n.min=f,n.max=c)}}),k(t,!0)&&n.chart.redraw()}}e.Additions=v}(t||(t={}));let v=t,d=n();d.BrokenAxis=d.BrokenAxis||v,d.BrokenAxis.compose(d.Axis,d.Series);let m=n();export{m as default};