UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 3.31 kB
import{stubFN,pluckNumber,convertColor}from'../../../lib';import Tool from'../tool';import ScrollTrack from'./scroll-track';import ScrollAnchor from'./scroll-anchor';import ScrollButton from'./scroll-button';import{mergeConf}from'../helper';let UNDEF;class ScrollBar extends Tool{configureAttributes(a={}){super.configureAttributes(a);let b=this.config,c=this.getFromEnv('chart-attrib');b.conf={},b.color=c.scrollcolor&&convertColor(c.scrollcolor),b.padding=pluckNumber(c.scrollpadding,0),b.height=pluckNumber(c.scrollheight,12),b.width=pluckNumber(c.scrollwidth,12),b.displayFlat=pluckNumber(c.flatscrollbars,0),b.scrollBar3DLighting=pluckNumber(c.scrollbar3dlighting,1),b.startPercent=Math.min(1,Math.max(0,parseFloat(c.scrolltoend)||0)),b.showButtons=!!pluckNumber(c.scrollshowbuttons,1),b.buttonPadding=pluckNumber(c.scrollbtnpadding,0),b.style=a.style,b.drawStripes=a.drawStripes,b.restrictScrollAnchor=pluckNumber(a.restrictScrollAnchor,1),this.setConfiguaration(a),b.evt={tooltext:UNDEF,click:stubFN,hover:[stubFN,stubFN]},this.createScrollItems()}createScrollItems(){let a=this,b=this.config,c=b.style||{},d=a.getChildren('scrollTrack')&&a.getChildren('scrollTrack')[0],e=a.getChildren('scrollAnchor')&&a.getChildren('scrollAnchor')[0],f=a.getChildren('scrollButtons')&&a.getChildren('scrollButtons')[0],g=a.getChildren('scrollButtons')&&a.getChildren('scrollButtons')[0];d||(d=a.attachChild(ScrollTrack,'scrollTrack'),d.configure({style:{track:c.track},color:b.color,displayFlat:b.displayFlat,isHorizontal:b.isHorizontal}),d.attachEventHandlers()),e||(e=a.attachChild(ScrollAnchor,'scrollAnchor'),e.configure({style:{scroller:c.scroller,grip:c.grip},drawStripes:b.drawStripes,color:b.color,displayFlat:b.displayFlat,isHorizontal:b.isHorizontal}),e.attachEventHandlers()),!f&&b.showButtons&&(f=a.attachChild(ScrollButton,'scrollStartButton'),f.configure({type:'start',color:b.color,style:{button:c.button,arrow:c.arrow}}),f.attachEventHandlers()),!g&&b.showButtons&&(g=a.attachChild(ScrollButton,'scrollEndButton'),g.configure({type:'end',color:b.color,style:{button:c.button,arrow:c.arrow}}),g.attachEventHandlers())}getName(){return'scrollbar'}getType(){return'scrollbar'}setConfiguaration(a){var b=this.config,c=this.getFromEnv('chart'),d=c.getFromEnv('color-manager');b.color||(b.color='#'+d.getColor('altHGridColor')),mergeConf(a,b)}getLogicalSpace(){var a=this.config,b=a.conf,c={};return mergeConf(a,c),mergeConf(c,b),super.getLogicalSpace()}setDimension(a){super.setDimension(a);let b=this,c=b.getLinkedParent(),d=c.getPosition&&c.getPosition()||{},e=b.getChildren('scrollTrack')[0].config;e.transLateX=d.x||0,e.transLateY=d.y||0}draw(){let a=this,b=a.config,c=b.conf,d={};c.isHorizontal?delete d.width:delete d.height,mergeConf(d,b,!0),a.addGraphicalElement({el:'group',attr:{name:'scrollContainer'},component:a,container:{id:'scrollbarContainer',label:'scrollbar',isParent:!0},label:'scrollbarGroup',id:'scrollbarGroup'})}attachEventHandlers(a){var b=this,c=this.config,d=c.evt;return a&&(a.scroll&&'function'==typeof a.scroll&&(d.scroll=a.scroll),a.scrollStart&&'function'==typeof a.scrollStart&&(d.scrollStart=a.scrollStart),a.scrollEnd&&'function'==typeof a.scrollEnd&&(d.scrollEnd=a.scrollEnd)),b}}ScrollBar.registerSymbol=UNDEF,ScrollBar._setConfiguaration=stubFN;export default ScrollBar;