quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 2.78 kB
JavaScript
import{ComponentInterface}from'../../../../fc-core/src/component-interface';import{hasSVG}from'../../../../fc-core/src/lib';import{addDep}from'../../../../fc-core/src/dependency-manager';import mapsAnimation from'../_internal/map-entities.animation';addDep({name:'mapsAnimation',type:'animationRule',extension:mapsAnimation});class MapGroup extends ComponentInterface{getType(){return'group'}getName(){return'mapGroup'}configure(){let a=this;a._mapChildren(a=>{a.configure&&a.configure()})}createContainer(){let a,b=this,c=b.getLinkedParent(),d=b.getFromEnv('animationManager'),e=c.getChildContainer();a=e.plotGroup,b.getChildContainer('plotShadow')||b.addChildContainer('plotShadow',d.setAnimation({el:'group',attr:{name:'manager-plot-shadow',opacity:1},container:a,component:b,label:'group'})),b.getChildContainer('plot')||b.addChildContainer('plot',d.setAnimation({el:'group',attr:{name:'manager-plot',opacity:1},container:a,component:b,label:'group'})),b.getChildContainer('layer0')||b.addChildContainer('layer0',d.setAnimation({el:'group',attr:{name:'ann-layer0',opacity:1},container:e.abovePlotGroup,component:b,label:'group'})),b.getChildContainer('layer1')||b.addChildContainer('layer1',d.setAnimation({el:'group',attr:{name:'ann-layer1',opacity:1},container:e.abovePlotGroup,component:b,label:'group'})),c.config.labelsOnTop?b.getChildContainer('layer0').toFront():b.getChildContainer('layer0').toBack()}_transformGroup(){let a=this,b=this.getFromEnv('chart'),c=b.getFromEnv('chartInstance'),d=a.getFromEnv('animationManager'),e=b.jsonData,f=a.getChildContainer('plot'),g=a.getChildContainer('plotShadow'),h=b.config.scalingParams;f.hide(),g.hide(),b.config.entitiesReady=!1,c.addEventListener('internal.mapdrawingcomplete',function(){return function(b){b.detachHandler(),hasSVG&&(c.args.link&&c.args.clickedEntityBox&&'scale'===e.chart.linkedcharttransition?(f&&d.setAnimation({el:f,attr:{transform:h.transformStr},component:a,label:'group'}),g&&d.setAnimation({el:g,attr:{transform:h.transformStr},component:a,label:'group'})):(f&&d.setAnimation({el:f,attr:{transform:h.transformStr},component:a,label:'group'}),g&&d.setAnimation({el:g,attr:{transform:h.transformStr},component:a,label:'group'}))),f.show(),g.show()}}()),b.checkComplete()}draw(){this.createContainer(),this._transformGroup()}getDataLimits(a){let b,c=this,d=+Infinity,e=-Infinity,f=0,g=function(a){e=Math.max(e,a.max),d=Math.min(d,a.min)};return c._mapChildren(c=>c.getState('removed')||!1===c.getState('visible')?void(a&&(b=c.getDataLimits(a),g(b))):void(f++,b=c.getDataLimits(a),g(b))),f?c.setState('visible',!0):c.setState('visible',!1),this.config.range||(this.config.range={},this.config.range.min=this.config.dataMin,this.config.range.max=this.config.dataMax),{max:e,min:d}}}export default MapGroup;