quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 2.08 kB
JavaScript
import MScolumn2D from'../mscolumn2d';import ColumnDataset from'../../dataset/column';import Columngroup from'../../dataset/groups/column-multiseries';import{pluckNumber}from'../../../../fc-core/src/lib';import{scrollTo}from'../_internal/utils/scroll-apis';let UNDEF,mathFloor=Math.floor;function _setAxisScale(){var a,b,c,d,e,f=this,g=f.config,h=f.getChildren('xAxis')[0],i=h.getTicksLen(),j=f.getFromEnv('dataSource'),k=j.chart,l=g.width,m=0,n=g.scrollToEnd,o=pluckNumber(k.numvisibleplot,mathFloor(l/f.avgScrollPointWidth));f.iterateComponents(a=>{a.getType&&'dataset'===a.getType()&&a.getName&&'column'===a.getName()&&!a.getState('removed')&&m++}),f.config.isstacked&&(m=1),m=m||1,c=i*m,({maxValue:b,minValue:a}=h.getVisibleConfig()),o>=2&&o<c?(d=o/m,h.setScrollType('always'),n?a=b-d:b=a+d,0===a&&--b,h.setVisibleConfig(a,b)):(e=h.getLimit(),h.setVisibleConfig(e.min,e.max),h.setScrollType('none'))}function _resetViewPortConfig(){var a=this;a.config.viewPortConfig={scaleX:1,scaleY:1,x:0,y:0}}function _configurer(){var a,b=this,c=b.getFromEnv('dataSource'),d=c.chart;a=b.config,a.scrollToEnd=pluckNumber(d.scrolltoend,0),a.lastScrollPosition=UNDEF}class ScrollColumn2D extends MScolumn2D{static getName(){return'ScrollColumn2D'}static includeInputOptions(){return['SwipeGesture']}constructor(){super(),this.tooltipConstraint='plot',this.canvasborderthickness=1,this.avgScrollPointWidth=40,this.hasScroll=!0,this.defaultPlotShadow=1,this.binSize=0,this.eiMethods.scrollTo=scrollTo}getName(){return'ScrollColumn2D'}__setDefaultConfig(){super.__setDefaultConfig();let a=this.config;a.defaultDatasetType='column',a.showzeroplaneontop=1,a.friendlyName='Scrollable Multi-series Column Chart'}configureAttributes(a){super.configureAttributes(a),_configurer.call(this,a)}_setAxisScale(){_setAxisScale.call(this)}parseChartAttr(a){super.parseChartAttr(a)}_resetViewPortConfig(){_resetViewPortConfig.call(this)}getDSdef(){return ColumnDataset}getDSGroupdef(){return Columngroup}}export default ScrollColumn2D;export{_setAxisScale,_resetViewPortConfig,_configurer as configurer};