UNPKG

highcharts

Version:
13 lines 11.7 kB
/** * Highcharts Gantt JS v13.0.1 (2026-08-17) * @module highcharts/modules/grid-axis * @requires highcharts * * GridAxis * * (c) 2016-2026 Highsoft AS * Author: Lars A. V. Cabrera * * A commercial license may be required depending on use, * see www.highcharts.com/license */import*as t from"../highcharts.js";let i={};i.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{if(Array.isArray(e))for(var s=0;s<e.length;){var r=e[s++],n=e[s++];i.o(t,r)?0===n&&s++:0===n?Object.defineProperty(t,r,{enumerable:!0,value:e[s++]}):Object.defineProperty(t,r,{enumerable:!0,get:n})}else for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);let e=t.default;var s,r,n=i.n(e);let o=t.default.Axis;var l=i.n(o);let{dateFormats:h}=n();function a(t){return(0,e.isObject)(t,!0)}function d(t,i){let s={width:0,height:0};if(i.forEach(function(i){let r=t[i],n=0,o=0,l;a(r)&&(n=(l=a(r.label)?r.label:{}).getBBox?l.getBBox().height:0,l.textStr&&!(0,e.isNumber)(l.textPxLength)&&(l.textPxLength=l.getBBox().width),o=(0,e.isNumber)(l.textPxLength)?Math.round(l.textPxLength):0,l.textStr&&(o=Math.round(l.getBBox().width)),s.height=Math.max(n,s.height),s.width=Math.max(o,s.width))}),"treegrid"===this.type&&this.treeGrid&&this.treeGrid.mapOfPosToGridNode){let t=this.treeGrid.mapOfPosToGridNode[-1].height||0;s.width+=this.options.labels.indentation*(t-1)}return s}function c(t){let{grid:i}=this,e=3===this.side;if(e||t.apply(this),!i?.isColumn){let t=i?.columns||[];e&&(t=t.slice().reverse()),t.forEach(t=>{t.getOffset()})}e&&t.apply(this)}function g(t){if(!0===(this.options.grid||{}).enabled){let{axisTitle:i,height:e,horiz:s,left:n,offset:o,opposite:l,options:h,top:a,width:d}=this,c=this.tickSize(),g=i?.getBBox().width,f=h.title,{x:u,y:m}=f,p=f.margin??(s?5:10),k=i?this.chart.renderer.fontMetrics(i).f:0,x=(s?a+e:n)+(s?1:-1)*(l?-1:1)*(c?c[0]/2:0)+(this.side===r.bottom?k:0);if(t.titlePosition.x=s?n-(g||0)/2-p+u:x+(l?d:0)+o+u,t.titlePosition.y=s?x-(l?e:0)+(l?k:-k)/2+o+m:a-p+m,!s){let[i=0]=c||[];"left"===f.textAlign?t.titlePosition.x-=i/2:"right"===f.textAlign&&(t.titlePosition.x+=i/2)}}}function f(){let t,{chart:i,options:{grid:s={}},userOptions:r}=this;if(s.enabled&&((t=this.options).labels.align=(0,e.pick)(t.labels.align,"center"),this.categories||(t.showLastLabel=!1),this.labelRotation=0,t.labels.rotation=0,t.minTickInterval=1),s.columns){let t=this.grid.columns=[],n=this.grid.columnIndex=0;for(;++n<s.columns.length;){let o=(0,e.merge)(r,s.columns[n],{isInternal:!0,linkedTo:0,scrollbar:{enabled:!1}},{grid:{columns:void 0}}),h=new(l())(this.chart,o,this.coll);h.grid.isColumn=!0,h.grid.columnIndex=n,(0,e.erase)(i.axes,h),(0,e.erase)(i[this.coll]||[],h),t.push(h)}}}function u(){let{axisTitle:t,grid:i,options:e}=this;if(!0===(e.grid||{}).enabled){let s=this.min||0,n=this.max||0,o=this.ticks[this.tickPositions[0]];if(t&&!this.chart.styledMode&&o?.slotWidth&&!this.options.title.style.width&&t.css({width:`${o.slotWidth}px`}),this.maxLabelDimensions=this.getMaxLabelDimensions(this.ticks,this.tickPositions),this.rightWall&&this.rightWall.destroy(),this.grid?.isOuterAxis()&&this.axisLine){let t=e.lineWidth;if(t){let i=this.getLinePath(t),o=i[0],l=i[1],h=(this.tickSize("tick")||[1])[0]*(this.side===r.top||this.side===r.left?-1:1);if("M"===o[0]&&"L"===l[0]&&(this.horiz?(o[2]+=h,l[2]+=h):(o[1]+=h,l[1]+=h)),!this.horiz&&this.chart.marginRight){let t=["L",this.left,o[2]||0],i=[o,t],r=["L",this.chart.chartWidth-this.chart.marginRight,this.toPixels(n+this.tickmarkOffset)],h=[["M",l[1]||0,this.toPixels(n+this.tickmarkOffset)],r];this.grid.upperBorder||s%1==0||(this.grid.upperBorder=this.grid.renderBorder(i)),this.grid.upperBorder&&(this.grid.upperBorder.attr({stroke:e.lineColor,"stroke-width":e.lineWidth}),this.grid.upperBorder.animate({d:i})),this.grid.lowerBorder||n%1==0||(this.grid.lowerBorder=this.grid.renderBorder(h)),this.grid.lowerBorder&&(this.grid.lowerBorder.attr({stroke:e.lineColor,"stroke-width":e.lineWidth}),this.grid.lowerBorder.animate({d:h}))}this.grid.axisLineExtra?(this.grid.axisLineExtra.attr({stroke:e.lineColor,"stroke-width":e.lineWidth}),this.grid.axisLineExtra.animate({d:i})):this.grid.axisLineExtra=this.grid.renderBorder(i),this.axisLine[this.showAxis?"show":"hide"]()}}if((i?.columns||[]).forEach(t=>t.render()),!this.horiz&&this.chart.hasRendered&&(this.scrollbar||this.linkedParent?.scrollbar)&&this.tickPositions.length){let t,i,e=this.tickmarkOffset,r=this.tickPositions[this.tickPositions.length-1],o=this.tickPositions[0];for(;(t=this.hiddenLabels.pop())&&t.element;)t.show();for(;(i=this.hiddenMarks.pop())&&i.element;)i.show();(t=this.ticks[o].label)&&(s-o>e?this.hiddenLabels.push(t.hide()):t.show()),(t=this.ticks[r].label)&&(r-n>e?this.hiddenLabels.push(t.hide()):t.show());let l=this.ticks[r].mark;l&&r-n<e&&r-n>0&&this.ticks[r].isLast&&this.hiddenMarks.push(l.hide())}}}function m(){let t=this.tickPositions?.info,i=this.options,s=i.grid||{},r=this.userOptions.labels||{};s.enabled&&(this.horiz?(this.series.forEach(t=>{t.options.pointRange=0}),t&&i.dateTimeLabelFormats&&i.labels&&!(0,e.defined)(r.align)&&(!1===i.dateTimeLabelFormats[t.unitName].range||t.count>1)&&(i.labels.align="left",(0,e.defined)(r.x)||(i.labels.x=3))):"treegrid"!==this.type&&this.grid&&this.grid.columns&&(this.minPointOffset=this.tickInterval))}function p(t){let i,s=this.options,r=t.userOptions,n=s&&a(s.grid)?s.grid:{};!0===n.enabled&&(i=(0,e.merge)(!0,{className:"highcharts-grid-axis "+(r.className||""),dateTimeLabelFormats:{hour:{list:["%[HM]","%[H]"]},day:{list:["%[AeB]","%[aeb]","%[E]"]},week:{list:["Week %W","W%W"]},month:{list:["%[B]","%[b]","%o"]}},grid:{borderWidth:1},labels:{padding:2,style:{fontSize:"0.9em"}},margin:0,title:{text:null,reserveSpace:!1,rotation:0,style:{textOverflow:"ellipsis"}},units:[["millisecond",[1,10,100]],["second",[1,10]],["minute",[1,5,15]],["hour",[1,6]],["day",[1]],["week",[1]],["month",[1]],["year",null]]},r),"xAxis"===this.coll&&((0,e.defined)(r.linkedTo)&&!(0,e.defined)(r.tickPixelInterval)&&(i.tickPixelInterval=350),!(!(0,e.defined)(r.tickPixelInterval)&&(0,e.defined)(r.linkedTo))||(0,e.defined)(r.tickPositioner)||(0,e.defined)(r.tickInterval)||(0,e.defined)(r.units)||(i.tickPositioner=function(t,s){let r=this.linkedParent?.tickPositions?.info;if(r){let n=i.units||[],o,l=1,h="year";for(let t=0;t<n.length;t++){let i=n[t];if(i&&i[0]===r.unitName){o=t;break}}let a=(0,e.isNumber)(o)&&n[o+1];if(a){h=a[0]||"year";let t=a[1];l=t?.[0]||1}else"year"===r.unitName&&(l=10*r.count);let d=e.timeUnits[h];return this.tickInterval=d*l,this.chart.time.getTimeTicks({unitRange:d,count:l,unitName:h},t,s,this.options.startOfWeek)}})),(0,e.merge)(!0,this.options,i),this.horiz&&(s.minPadding=(0,e.pick)(r.minPadding,0),s.maxPadding=(0,e.pick)(r.maxPadding,0)),(0,e.isNumber)(s.grid.borderWidth)&&(s.tickWidth=s.lineWidth=n.borderWidth))}function k(t){let i=t.userOptions,s=i?.grid||{},r=s.columns;s.enabled&&r&&(0,e.merge)(!0,this.options,r[0])}function x(){(this.grid.columns||[]).forEach(t=>t.setScale())}function b(t){let{horiz:i,maxLabelDimensions:s,options:{grid:r={}}}=this;if(r.enabled&&s){let n=2*this.options.labels.distance,o=i?r.cellHeight||n+s.height:n+s.width;(0,e.isArray)(t.tickSize)?t.tickSize[0]=o:t.tickSize=[o,0]}}function P(){this.axes.forEach(t=>{(t.grid?.columns||[]).forEach(t=>{t.setAxisSize(),t.setAxisTranslation()})})}function v(t){let{grid:i}=this;i&&((i.columns||[]).forEach(i=>i.destroy(t.keepEvents)),i.columns=void 0)}function y(t){let i=t.userOptions||{},s=(0,e.merge)({borderColor:"var(--highcharts-neutral-color-20)"},i.grid||{});s.enabled&&(0,e.defined)(s.borderColor)&&(i.tickColor=i.lineColor=s.borderColor),this.grid||(this.grid=new O(this)),this.hiddenLabels=[],this.hiddenMarks=[],s.enabled&&(this.clippable=!1)}function w(t){let i=this.label,s=this.axis,n=s.reversed,o=s.chart,l=s.options.grid||{},h=s.options.labels,a=h.align,d=r[s.side],c=t.tickmarkOffset,g=s.tickPositions,f=this.pos-c,u=(0,e.isNumber)(g[t.index+1])?g[t.index+1]-c:(s.max||0)+c,m=s.tickSize("tick"),p=m?m[0]:0,k=m?m[1]/2:0;if(!0===l.enabled){let e,r,l,c;if("top"===d?r=(e=s.top+s.offset)-p:"bottom"===d?e=(r=o.chartHeight-s.bottom+s.offset)+p:(e=s.top+s.len-(s.translate(n?u:f)||0),r=s.top+s.len-(s.translate(n?f:u)||0)),"right"===d?c=(l=o.chartWidth-s.right+s.offset)+p:"left"===d?l=(c=s.left+s.offset)-p:(l=Math.round(s.left+(s.translate(n?u:f)||0))-k,c=Math.min(Math.round(s.left+(s.translate(n?f:u)||0))-k,s.left+s.len)),this.slotWidth=c-l,t.pos.x="left"===a?l:"right"===a?c:l+(c-l)/2,t.pos.y=r+(e-r)/2,i){let e=o.renderer.fontMetrics(i),s=i.getBBox().height;if(h.useHTML)t.pos.y+=e.b+-(s/2);else{let i=Math.round(s/e.h);t.pos.y+=(e.b-(e.h-e.f))/2+-((i-1)*e.h/2)}}t.pos.x+=s.horiz&&h.x||0}}function L(t){let{axis:i,value:s}=t;if(i.options.grid?.enabled){let r,o=i.tickPositions,l=(i.linkedParent||i).series,h=l.reduce((t,i)=>i.is("gantt")?t?.concat(i.options?.data??[]):t,[])??[],a=s===o[0],d=s===o[o.length-1],c=l[0]&&(0,e.find)(h,function(t){return t[i.isXAxis?"x":"y"]===s});c&&(r=(0,e.merge)(c),n().seriesTypes.gantt.prototype.pointClass.setGanttPointAliases(r,i.chart)),t.isFirst=a,t.isLast=d,t.point=r}}function E(){let t=this.options,i=t.grid||{},s=this.categories,r=this.tickPositions,n=r[0],o=r[1],l=r[r.length-1],h=r[r.length-2],a=this.linkedParent?.min,d=this.linkedParent?.max,c=a||this.min,g=d||this.max,f=this.tickInterval,u=(0,e.isNumber)(c)&&c>=n+f&&c<o,m=(0,e.isNumber)(c)&&n<c&&n+f>c,p=(0,e.isNumber)(g)&&l>g&&l-f<g,k=(0,e.isNumber)(g)&&g<=l-f&&g>h;!0===i.enabled&&!s&&(this.isXAxis||this.isLinked)&&((m||u)&&!t.startOnTick&&(r[0]=c),(p||k)&&!t.endOnTick&&(r[r.length-1]=g))}function B(t){var i;let{options:{grid:e={}}}=this;return!0===e.enabled&&this.categories?this.tickInterval:t.apply(this,(i=arguments,Array.prototype.slice.call(i,1)))}(s=r||(r={}))[s.top=0]="top",s[s.right=1]="right",s[s.bottom=2]="bottom",s[s.left=3]="left";class O{constructor(t){this.axis=t}isOuterAxis(){let t=this.axis,i=t.chart,s=t.grid.columnIndex,r=t.linkedParent?.grid.columns||t.grid.columns||[],n=s?t.linkedParent:t,o=-1,l=0;return 3===t.side&&!i.inverted&&r.length?!t.linkedParent:((i[t.coll]||[]).forEach((i,e)=>{i.side!==t.side||i.options.isInternal||(l=e,i===n&&(o=e))}),l===o&&(!(0,e.isNumber)(s)||r.length===s))}renderBorder(t){let i=this.axis,e=i.chart.renderer,s=i.options,r=e.path(t).addClass("highcharts-axis-line").add(i.axisGroup);return e.styledMode||r.attr({stroke:s.lineColor,"stroke-width":s.lineWidth,zIndex:7}),r}}h.E=function(t){return this.dateFormat("%a",t,!0).charAt(0)},h.W=function(t){let i=this.toParts(t),e=(i[7]+6)%7,s=i.slice(0);s[2]=i[2]-e+3;let r=this.toParts(this.makeTime(s[0],0,1));return 4!==r[7]&&(i[1]=0,i[2]=1+(11-r[7])%7),(1+Math.floor((this.makeTime(s[0],s[1],s[2])-this.makeTime(r[0],r[1],r[2]))/6048e5)).toString()};let T=n();({compose:function(t,i,s){return t.keepProps.includes("grid")||(t.keepProps.push("grid"),t.prototype.getMaxLabelDimensions=d,(0,e.wrap)(t.prototype,"unsquish",B),(0,e.wrap)(t.prototype,"getOffset",c),(0,e.addEvent)(t,"init",y),(0,e.addEvent)(t,"afterGetTitlePosition",g),(0,e.addEvent)(t,"afterInit",f),(0,e.addEvent)(t,"afterRender",u),(0,e.addEvent)(t,"afterSetAxisTranslation",m),(0,e.addEvent)(t,"afterSetOptions",p),(0,e.addEvent)(t,"afterSetOptions",k),(0,e.addEvent)(t,"afterSetScale",x),(0,e.addEvent)(t,"afterTickSize",b),(0,e.addEvent)(t,"trimTicks",E),(0,e.addEvent)(t,"destroy",v),(0,e.addEvent)(i,"afterSetChartSize",P),(0,e.addEvent)(s,"afterGetLabelPosition",w),(0,e.addEvent)(s,"labelFormat",L)),t}}).compose(T.Axis,T.Chart,T.Tick);let M=n();export{M as default};