UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 21.6 kB
import{ComponentInterface}from'../../../../fc-core/src/component-interface';import Annotation from'../../../../fc-features/src/annotation/ext-annotation';import{addDep,getDep}from'../../../../fc-core/src/dependency-manager';import mapsAnimation from'../_internal/map-entities.animation';import{pluck,imprint,extend2,parseTooltext,pluckNumber,parseUnsafeString,hasSVG,toRaphaelColor,trimString,convertColor}from'../../../../fc-core/src/lib';import{priorityList}from'../../../../fc-core/src/schedular';import raphaelShapesLitepath from'../../../../fc-core/src/_internal/redraphael/redraphael-shapes/redraphael-shapes.litepath';let UNDEF,Raphael=getDep('redraphael','plugin'),userAgent=window.navigator.userAgent,isIE=/msie/i.test(userAgent)&&!window.opera,COMMA=',',BLANK='',POSITION_TOP='top',POSITION_BOTTOM='bottom',POSITION_RIGHT='right',POSITION_LEFT='left',POSITION_MIDDLE='middle',POSITION_CENTER='center',CRISP='crisp',math=window.Math,mathMin=math.min,mathMax=math.max,isStrokeReg=/stroke/ig,isWebKit=/AppleWebKit/.test(userAgent),mathCeil=math.ceil,colorize=function(a,b){let c=b?extend2(a.FCcolor,b,!1,!0):{FCcolor:a};return c.toString=toRaphaelColor,c},pruneStrokeAttrs=function(a,b){let c,d={};if(b=b||1,!a||'object'!=typeof a)return d;for(c in a)isStrokeReg.test(c)||('stroke-width'===c?(d[c]=+a[c]/b,isWebKit&&(d[c]=d[c]&&mathCeil(d[c])||0)):d[c]=a[c]);return d},getTextWrapWidth={right:function(){return arguments[1]},left:function(a,b){return a-b},center:function(a,b){return 2*mathMin(b,a-b)}},getTextWrapHeight={top:function(){return arguments[1]},middle:function(a,b){return 2*mathMin(b,a-b)},bottom:function(a,b){return a-b}},convertArrayToIdMap=function(a){let b,c=a&&a.length||0,d={};for(;c--;)b=a[c],b.id!==UNDEF&&(d[b.id.toLowerCase()]=b);return d};addDep({name:'mapsAnimation',type:'animationRule',extension:mapsAnimation}),raphaelShapesLitepath(Raphael);class Entities extends ComponentInterface{constructor(){super(),this.components={}}getName(){return'entities'}getType(){return'dataset'}configureAttributes(a){if(!a)return;this.JSONData={data:a};let b,c,e,f,g,h,j,k,l=this,m=l.getFromEnv('chart'),n=m.jsonData,o=l.config,p=n.map||n.chart,q=[],r=l.getFromEnv('colorManager'),s=n.entitydef||[];for(g in!o.attachEvent&&r&&(l.addExtEventListener('legendUpdate',function(){if(k=arguments[1],'legend'===k.component)l.legendInteractivity(k.legendItem,k.colorObj);else for(q=k.maxMinArray,h=q.length,j=0;j<h;j++)l.updateEntityColors(q[j].min,q[j].max)},r),o.attachEvent=!0),b=n.data&&n.data[0]&&n.data[0].data?l.JSONData=n.data[0].data||[]:l.JSONData=n.data||[],o.useSNameAsId=pluckNumber(p.usesnameasid,0),this._redefineEntities(s),c=l.components.data,o.showTooltip=pluckNumber(p.showtooltip,1),o.showHoverEffect=pluckNumber(p.showhovereffect,0),b=convertArrayToIdMap(b),l.calculateDataLimits(),n.colorrange||l._detachChild(l.getChildren('colorRange')&&l.getChildren('colorRange')[0]),c)e=b[g],f=c[g],e?this._configureEntity(g,f,imprint(Entities._sanitizeEntityOptions(extend2({},e)),f.config)):this._configureEntity(g,f,f.config)}updateEntityColors(a,b){let c,d,e,f,g,h,i=this,j=i.components.data,k=i.getFromEnv('chart'),l={"fill-opacity":0};for(f in j)c=j[f],d=c.config,e=d.cleanValue,g=d.alphaArr||[],h={"fill-opacity":g[0]/100||1},e<a||e>b?(Entities.setCustomAttrs(c,l,k),c.hidden=!0):(c.hidden=!1,Entities.setCustomAttrs(c,h,k))}legendInteractivity(a,b){let c,d,e,f,g,h,j=this,k=j.getFromEnv('chart'),l=j.components.data,m=a.config,n=a.hasState('hidden'),o=j.getFromEnv('colorManager'),p={},q={"fill-opacity":0};for(c in k.getFromEnv('animationManager').setAnimationState('legendInteraction'),l)l.hasOwnProperty(c)&&(d=l[c],m=d.config,e=m.cleanValue,h=o.getColorObj(e),f=m.visibleEntityAttr,p['fill-opacity']=f['fill-opacity'],g=n?p:q,b.code===(!h.outOfRange&&h.code)&&(d.hidden=!n,Entities.setCustomAttrs(d,g,k),n?a&&a.removeLegendState('hidden'):a.setLegendState('hidden')))}static setCustomAttrs(a,b){let c,d;a&&(c=a.graphics,d=c.outlines,d.attr(b))}calculateDataLimits(){let a,b,c,d,e=this,f=e.getFromEnv('chart'),g=e.config,h=f.jsonData,j=h.data||[],k=this.getFromEnv('number-formatter'),l=+Infinity,m=-Infinity;for(d=0,c=j.length;d<c;d++)b=j[d].value,a=k.getCleanValue(b),l=mathMin(l,a),m=mathMax(m,a);g.max=m,g.min=l}_configureEntity(a,b,c){let d,e,f,g,h,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A=this,B=A.getFromEnv('chart'),C=A.config,D=this.getFromEnv('number-formatter'),E=B.config,F=E.entityOpts,G=b.config,H=b.labelConfig,I=c.value,J=G.cleanValue=D.getCleanValue(I),K=G.formattedValue=J===UNDEF?UNDEF:D.dataLabels(J),L=pluckNumber(c.showtooltip,F.showTooltip),M=this._getDefaultTooltip(b,c,A),N={formattedValue:K,sName:c.shortLabel,lName:c.label},O=F.dataLabels.style,P=G.toolText=L?parseUnsafeString(pluck(parseTooltext(pluck(c.tooltext,F.tooltext,M),[1,2,7,38,39],N,c))):BLANK,Q=G.borderColor=pluck(c.bordercolor,F.borderColor),R=G.borderAlpha=pluck(c.borderalpha,F.borderAlpha),S=G.borderThickness=pluckNumber(c.borderthickness,F.borderThickness),T=F.hoverOnNull,U=G.useHoverColor=pluckNumber(c.showhovereffect,c.usehovercolor,T?F.showHoverEffect:isNaN(I)?0:F.showHoverEffect),V=G.labelAlignment,W=A.getFromEnv('colorManager');if(b.hidden=!1,G.showLabel=pluckNumber(c.showlabel,F.showLabels),G.labelPadding=pluckNumber(c.labelpadding,F.labelPadding),G.fontFamily=pluck(c.font,O.fontFamily),G.fontSize=pluckNumber(parseInt(c.fontsize,10),parseInt(O.fontSize,10)),G.fontBold=pluckNumber(c.fontbold,0),G.fontColor=pluck(c.fontcolor,O.color),G.connectorColor=pluck(c.labelconnectorcolor,F.connectorColor),G.connectorAlpha=pluck(c.labelconnectoralpha,F.connectorAlpha),G.hoverBorderThickness=pluckNumber(c.borderhoverthickness,c.hoverborderthickness,F.hoverBorderThickness),G.hoverBorderColor=pluck(c.borderhovercolor,c.hoverbordercolor,F.hoverBorderColor,G.borderColor),G.hoverBorderAlpha=pluck(c.borderhoveralpha,c.hoverborderalpha,F.hoverBorderAlpha,G.borderAlpha),G.connectorThickness=pluckNumber(c.labelconnectorthickness,F.connectorThickness),G.origConnectorThickness=G.connectorThickness,G.borderThickness=S,G.link=c.link,G.isVisible=!0,G.id=a,G.originalId=c.origId,null!==J&&(d=W&&W.getColor(J),d&&!d.outOfRange&&(t=d.code,d.oriAlpha!==UNDEF&&(u=d.oriAlpha+''))),pluck(c.color,c.alpha,c.angle,c.ratio)===UNDEF?(r=colorize({color:pluck(t,F.fillColor),alpha:pluck(u,F.fillAlpha),angle:pluck(F.fillAngle),ratio:pluck(F.fillRatio)}),q=colorize({color:pluck(F.nullEntityColor),alpha:pluck(F.nullEntityAlpha),angle:pluck(F.nullEntityAngle),ratio:pluck(F.nullEntityRatio)}),m=null===J?q:r,h=m.FCcolor.color,j=m.FCcolor.alpha,k=m.FCcolor.angle,l=m.FCcolor.ratio):(h=pluck(c.color,t,F.fillColor),j=pluck(c.alpha,u,F.fillAlpha),k=pluck(c.angle,F.fillAngle),l=pluck(c.ratio,F.fillRatio),m=colorize({color:h,alpha:j,angle:k,ratio:l})),P===BLANK&&(C.showTooltip=0),G.visibleEntityAttr={stroke:convertColor(Q,R),fill:(G.fillColor=m).toString(),"fill-opacity":j/100},z=j.split(COMMA),G.alphaArr=z,U&&(pluck(c.fillhovercolor,c.fillhoveralpha,c.fillhoverangle,c.fillhoverratio,c.hoverfillcolor,c.hoverfillalpha,c.hoverfillratio,c.hoverfillangle)===UNDEF?(!F.hoverColorObject&&(F.hoverColorObject=colorize({color:F.hoverFillColor,alpha:F.hoverFillAlpha,angle:F.hoverFillAngle,ratio:F.hoverFillRatio})),s=F.hoverColorObject):(h=pluck(c.fillhovercolor,c.hoverfillcolor,F.hoverFillColor),j=pluck(c.fillhoveralpha,c.hoverfillalpha,F.hoverFillAlpha),k=pluck(c.fillhoverangle,c.hoverfillangle,F.hoverFillAngle),l=pluck(c.fillhoverratio,c.hoverfillratio,F.hoverFillRatio),s=colorize({color:h,alpha:j,angle:k,ratio:l})),G.hoverColor=s),H||(H=b.labelConfig={}),n=G.fontColor,o=G.fontFamily,p=G.fontBold,P=G.toolText,e=G.link,V?(f=V[0],g=V[1]):(f=POSITION_CENTER,g=POSITION_MIDDLE),H.align=f,H.vAlign=g,H.bgColor=BLANK,H.borderColor=BLANK,H.fontColor=n,H.fontFamily=o,H.fontBold=p,H.toolText=P,H.link=e,'object'==typeof G.options)for(v=G.entityLabels=G.entityLabels||[],x=G.labels||[],y=x.length;y--;)v[y]||(v[y]={config:{}}),H=v[y].config,V=x[y].labelAlignment,V?(f=V[0],g=V[1]):(f=POSITION_CENTER,g=POSITION_MIDDLE),H.align=f,H.vAlign=g,H.displayValue=A.getDisplayValue(b,x[y],G.options.isDataEnabled,!y,c),H.bgColor=BLANK,H.borderColor=BLANK,H.toolText=P,H.align=f,H.vAlign=g,H.bgColor=BLANK,H.borderColor=BLANK,H.fontColor=n,H.fontFamily=o,H.fontBold=p,H.toolText=P;else w={shortText:G.shortLabel,text:G.label},H.displayValue=A.getDisplayValue(b,w,!0,!0,c)}getDisplayValue(a,b,c,d,e){let f,g=this.getFromEnv('chart'),h=g.config.entityOpts,i=a.config,j=i.cleanValue,k=i.formattedValue,l=h.labelSepChar;return c?d&&'undefined'!=typeof e.displayvalue?f=e.displayvalue:(f=pluck(h.includeNameInLabels?h.useShortName?b.shortText:b.text:''),h.includeValueInLabels&&null!==j&&(f=f===UNDEF?k:f+l+k)):f=i.label,f}static _sanitizeEntityOptions(a){return delete a.outlines,delete a.label,delete a.shortlabel,delete a.labelposition,delete a.labelalignment,delete a.labelconnectors,a}_redefineEntities(a){let b,c,d,e,f,g,h,j,k,l,m,n,o=this,p=o.config,q=o.getFromEnv('chart'),r={},s={},t=q.config.entities,u=p.useSNameAsId,v=0;for(b=a.length;b--;)if(c=a[b],d=c.internalid,e=c.newid?c.newid:d,f=c.sname,g=c.lname,n=t[d],d=trimString(d),e=trimString(e),e=e&&e.toLowerCase(),n){for(m in r[e]=j={origId:d},s[d]=!0,n)j[m]=n[m];j.shortLabel=f||n.shortLabel,j.label=g||n.label,j.showhovereffect=c.showhovereffect,j.fillhovercolor=c.fillhovercolor,j.fillhoveralpha=c.fillhoveralpha,j.fillhoverangle=c.fillhoverangle,j.fillhoverratio=c.fillhoverratio,j.borderhoverthickness=c.borderhoverthickness}for(h in l=o.components.data,l||(l=o.components.data={}),r)h=h.toLowerCase(),l[h]||(l[h]={config:{}}),l[h].config=r[h],v+=1;for(h in k=l,t)if(j=t[h],h=trimString(h),!s[h]){for(m in u?(n=k[j.shortLabel.toLowerCase()],!n&&(n=k[j.shortLabel.toLowerCase()]={}),n.config={},n.origId=j.shortLabel):(n=k[h.toLowerCase()],!n&&(n=k[h.toLowerCase()]={}),n.config={},n.config.origId=h),j)n.config[m]=j[m];v+=1}p.entityCount=v}draw(){let a,b=this,c=b.config,d=b.getFromEnv('chart'),e=hasSVG?200:10;b.createContainer(),this.config.ready=!1,c.BATCH_SIZE=e,c.labelBatchSize=hasSVG?200:20,a=this._batchRender(),a(0),d.config.entityFlag=!0,d.checkComplete()}_batchRender(){let a,b,c,d,e,f=this,g=f.config,h=f.getFromEnv('chart'),j=h.config.entities.firstEntity,k=f.components.data,l=g.BATCH_SIZE,m=g.entityKeys=j?f._getKeys(j,k):Object.keys(k),n=g.entityLength=m.length,o=function(g){for(a=g,c=0;m[a]!==UNDEF;)if(b=k[m[a]],e=f.drawEntity(b,l),c+=e,b.config.drawn&&(d=a===n-1?b:k[m[a-1]],d&&(d.config.drawn=!1,d.config.outlineStartIndex=UNDEF),a++),c>=l){f.addJob('entityDraw',o.bind(this,a),priorityList.entitydraw);break}a===n&&(f._addEventListenersToEntities(0),f.initComplete())};return o}_addEventListenersToEntities(a){let b,c,d,e,f=this,g=f.components.data,h=f.config,j=h.BATCH_SIZE,k=h.entityKeys,l=h.entityLength,m=0;for(b=a;b<l;b++)if(c=g[k[b]],e=c.config,d=e.options,d&&!1===d.isDataEnabled||f.addMouseGestures(c),m++,m===j){f.addJob('_addEventListenersToEntities',f._addEventListenersToEntities.bind(this,b),priorityList.entitydraw);break}}static _getKeys(a,b){let c=[a],d=a;for(;b[d];)d=b[d].nextId,c.push(d);return c}_getDefaultTooltip(a,b){let c,d,e=this,f=a.config.cleanValue,g=a.config.formattedValue,h=e.getFromEnv('chart').config.entityOpts;if('object'==typeof a.config.options){if(d=b.labels&&b.labels[0],!d)return UNDEF;c=(h.useSNameInTooltip?d.shortText:d.text)+(null===f?BLANK:h.tooltipSepChar+g)}else c=(h.useSNameInTooltip?b.shortLabel:b.label)+(null===f?BLANK:h.tooltipSepChar+g);return c}drawEntity(a,b){let c,d,e,f,g,h,j,k,l,m=this,n=m.getFromEnv('chart'),o=n.getFromEnv('animationManager'),p=a.config,q=hasSVG||!isIE?'litepath':'path',r=n.config.entityOpts,s=p.outlines,t=m.getFromEnv('toolTipController'),u=this.getLinkedParent().getChildContainer('plot'),v=this.getLinkedParent().getChildContainer('plotShadow'),w=p.toolText,x=r.shadow,y=[],z={};if(m._configureEntityDrawingParams(a),p=a.config,e=p.visibleEntityAttr,l=p.shadowOptions,c=p.outlineStartIndex===UNDEF?s.length:p.outlineStartIndex,a.graphics||(a.graphics={}),j=0,y=p.outlinePath||(p.outlinePath=[]),k=p.customStrokeWidthModifier,'object'==typeof p.options){for(;c--;)if(y=s[c].outline,f=!0===p.options.isDataEnabled?e:extend2(extend2({},e),pruneStrokeAttrs(s[c].style,k)),g=a.graphics.outlines,g||(g=a.graphics.outlines=[]),g[c]||(g[c]={}),h=g[c].outline,f[q]=y,h=g[c].outline=o.setAnimation({el:q,container:u,attr:f,component:m,label:'path'}),h.shadow(!!x&&l,v),t.enableToolTip(h,w),j++,p.outlineStartIndex=c,j===b)return j;return p.drawn=!0,j}for(;c--;)if(d=s[c],y=d.concat(y),j++,p.outlineStartIndex=c,j===b)return p.outlinePath=y,j;return a.graphics.outlines||(e[q]=y),Object.assign(z,e,a.hidden&&{"fill-opacity":0}||{}),a.graphics.outlines=o.setAnimation({el:a.graphics.outlines||q,container:u,attr:z,component:m,label:'path'}),p.drawn=!0,p.outlineStartIndex=0,p.outlinePath=[],a.graphics.outlines.shadow(!!x&&l,v),t.enableToolTip(a.graphics.outlines,w),j}_configureEntityDrawingParams(a){let b,c=this,d=c.getFromEnv('chart'),e=a.config,f=d.config.entityOpts,g=d.config.scalingParams,h=!isIE||hasSVG,i=g.scaleFactor,j=g.strokeWidth,k=(h?d.baseScaleFactor:1)*j,l=1===f.scaleBorder,m=e.borderThickness,n=e.alphaArr,o=e.origConnectorThickness,p=e.hoverBorderThickness,q=e.visibleEntityAttr,r=q['fill-opacity'];e.shadowOptions={scalefactor:[i,i*d.config.baseScaleFactor],opacity:mathMax.apply(math,n)/100,useFilter:0},e.fillOpacity=a.hidden?0:r,h?(m=e.entityBorderThickness=l?m*k:m/i,o/=i,b=l?i:g.sFactor,p&&(p=e.hoverBorderThickness=l?p*k:p/i)):(m=l?m*j:m,b=l?g.scaleFactor:d.baseScaleFactor),e.entityBorderThickness=m,e.connectorThickness=o,e.customStrokeWidthModifier=b,q['stroke-width']=m,q.transform=hasSVG||!isIE?'':g.transformStr}drawLabels(a){let b,c,d,e,f=this,g=a,h=f.getFromEnv('chart'),k=f.config,l=k.labelBatchSize,m=k.entityLength,n=[],o=h.getChildContainer('upperAnnotationGroup'),p=0,q=f.getChildren('mapLabelAnnotations')&&f.getChildren('mapLabelAnnotations')[p],r=0,s=0,t=h.config.annotationConfig;for(b in q||(e=new Annotation,f.attachChild(e,'mapLabelAnnotations'),q=f.getChildren('mapLabelAnnotations')[p],q.addCustomGroup(o)),q.destroy(),q._renderer&&(q._renderer=null),t.showbelow=0,g){if(f.drawLabel(g[b],n),r++,r===l){for(c=0;c<n.length;c++)n[c].animationLabel='entityLabel';for(d=q.addGroup(Object.assign(t,{id:'entityLabels'+p,items:n,animationLabel:'entityLabelGroup'}),f),c=0;c<d.items.length;c++)d.items[c].addEventListener('fc-mouseover',n[c].onmouseover),d.items[c].addEventListener('fc-mouseout',n[c].onmouseout),d.items[c].addEventListener('fc-click',n[c].onclick);p++,q=f.getChildren('mapLabelAnnotations')&&f.getChildren('mapLabelAnnotations')[p],q||(e=new Annotation,f.attachChild(e,'mapLabelAnnotations'),q=f.getChildren('mapLabelAnnotations')[p],q.addCustomGroup(o)),q.destroy(),q._renderer&&(q._renderer=null),r=0,n=[]}else if(s==m-1){for(c=0;c<n.length;c++)n[c].animationLabel='entityLabel';for(d=q.addGroup(Object.assign(t,{id:'entityLabels'+p,items:n,animationLabel:'entityLabelGroup'}),f),c=0;c<d.items.length;c++)d.items[c].addEventListener('fc-mouseover',n[c].onmouseover),d.items[c].addEventListener('fc-mouseout',n[c].onmouseout),d.items[c].addEventListener('fc-click',n[c].onclick)}s++}f.drawLabelConnFn(0)}drawLabelConnFn(a){let b,c,d,e,f,g=this,h=g.config,j=g.components.data,k=h.BATCH_SIZE,m=h.entityKeys,n=m.length,o=0;for(c=a;c<n;c++){if(f=j[m[c]],e=f.config,'object'==typeof e.options)for(d=e.labels,b=d&&d.length||0;b--;)d[b].labelConnectors&&(g.drawLabelConnectors(f,d[b].labelConnectors,g),o++);else e.labelConnectors&&(g.drawLabelConnectors(f,e.labelConnectors,g),o++);if(o===k){g.addJob('drawLabelConnectors',g.drawLabelConnFn.bind(this,c),priorityList.entitydraw);break}}}_getLabelObject(a,b,c){let d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t=this,u=t.getFromEnv('chart'),v=a.config,w=u.config.scalingParams,x=a.graphics&&a.graphics.outlines,y=v.fontSize,z=v.labelPadding,A=v.labels||[],B=v.entityLabels||[];return b===UNDEF?(d=a.labelConfig,e=v.labelPosition,f=v.labelAlignment):(r=A[b],s=B[b],d=s.config,g=d.style=r.style,e=r.labelPosition,f=r.labelAlignment),e?(j=e[0],k=e[1]):(l=x.getBBox(),j=l.x+l.width/2,k=l.y+l.height/2),f?(m=f[0],n=f[1],m===POSITION_RIGHT?j-=z:m===POSITION_LEFT&&(j+=z),n===POSITION_TOP?k-=z:n===POSITION_BOTTOM&&(k+=z)):(m=POSITION_CENTER,n=POSITION_MIDDLE),o=parseFloat(y)/w.sFactor,!c&&g&&(g.color&&(d.fontColor=g.color),g['font-size']&&(o=parseFloat(g['font-size'])/w.sFactor),g['font-family']&&(d.fontFamily=g['font-family']),g['font-weight']!==UNDEF&&(d.fontBold='bold'===g['font-weight'])),d.x=j.toString(),d.y=k.toString(),d.wrap=1,d.type='text',d.fontSize=o,{x:j.toString(),y:k.toString(),wrapwidth:getTextWrapWidth[m](h,j+p)-z,wrapheight:getTextWrapHeight[n](i,k+q)-z,wrap:1,type:'text',align:d.align,valign:d.vAlign,text:d.displayValue,tooltext:d.toolText,css:d.link!==UNDEF&&{cursor:'pointer',_cursor:'hand'},bgcolor:d.bgColor,bordercolor:d.borderColor,fillcolor:d.fontColor,fontsize:d.fontSize,font:d.fontFamily,bold:d.fontBold,onclick:function(b){let c,d,e=a.graphics.outlines;if(e instanceof Array)for(c=0,d=e.length;c<d;c++)t.entityClick(e[c].outline,b);else t.entityClick(e,b)},onmouseover:function(b){let c,d,e=a.graphics.outlines;if(e instanceof Array)for(c=0,d=e.length;c<d;c++)t.entityRollOver(e[c].outline,b);else t.entityRollOver(e,b)},onmouseout:function(b){let c,d,e=a.graphics.outlines;if(e instanceof Array)for(c=0,d=e.length;c<d;c++)t.entityRollOut(e[c].outline,b);else t.entityRollOut(e,b)},ontouchstart:function(b){let c,d,e=a.graphics.outlines;if(e instanceof Array)for(c=0,d=e.length;c<d;c++)t.entityRollOver(e[c].outline,b);else t.entityRollOver(e,b);t.entityRollOver(e,b)}}}drawLabel(a,b){let c,d,e,f=this,g=a.config,h=g.showLabel;if(h)if('object'==typeof g.options)for(e=g.labels,d=e&&e.length||0,c=g.options.isDataEnabled;d--;)b.push(f._getLabelObject(a,d,c,!d));else b.push(f._getLabelObject(a,UNDEF,!0,!0))}drawLabelConnectors(a,b,c){let d,e,f=a.config,g=this,h=g.getFromEnv('chart'),j=h.getFromEnv('animationManager'),k=h.config.scalingParams,l=c.getLinkedParent().getChildContainer('plot'),m=b&&b.length||0,n=f.showLabel;for(;m--;)e=b[m],d=a.graphics.connectorElem,n?a.graphics.connectorElem=d=j.setAnimation({el:a.graphics.connectorElem||'path',attr:{path:e,opacity:1,transform:hasSVG||!isIE?'':k.transformStr,stroke:convertColor(f.connectorColor,f.connectorAlpha),"shape-rendering":CRISP,"stroke-width":f.connectorThickness},container:l,component:g,label:'labelConnectors'}):d&&d.hide()}entityClick(a,b){let c=a.node.__entity,d=this,e=d.getFromEnv('chart'),f=e.config.scalingParams,g=a.getBBox(),h=e.getFromEnv('linkClickFN'),i=c.config,j=i.link;g.width*=f.scaleFactor,g.height*=f.scaleFactor,g.x=g.x*f.scaleFactor+f.translateX,g.y=g.y*f.scaleFactor+f.translateY,g.x2=g.x+g.width,g.y2=g.y+g.height,e.fireChartInstanceEvent('entityclick',i.eventArgs,b),j!==UNDEF&&h.call({link:j,entity:c,entityBox:g},!0)}entityRollOver(a,b){let c=a.node.__entity,d=this,e=c.config,f=d.getFromEnv('chart'),g=f.getFromEnv('animationManager'),h=e.hoverAttr;f.plotEventHandler(a,b,'entityRollOver'),a.data('hovered')?clearTimeout(c.config.timer):e.useHoverColor&&e.isVisible&&!c.hidden&&h&&(f.config.hoverEntity=a,g.setAnimation({el:a,attr:h,component:d,state:'updating',label:'path'}),a.data('hovered',!0))}entityRollOut(a,b){let c,d=a.node.__entity,e=this,f=e.getFromEnv('chart'),g=f.getFromEnv('animationManager'),h=d.config,i=h.revertAttr;f.plotEventHandler(a,b,'entityRollOut'),d.config.timer=setTimeout(function(){c=d.hidden,!0!==c&&i&&(g.setAnimation({el:a,attr:i,component:e,state:'updating',label:'path'}),a.data('hovered',!1))},100)}addMouseGestures(a){let b,c,d,e,f,g=a.config,h=g.originalId,j=this,k=a.graphics,l=g.useHoverColor,m=g.hoverBorderThickness,n=g.hoverBorderColor,o=g.hoverBorderAlpha,p=g.entityBorderThickness,q=g.borderColor,r=g.borderAlpha,s=g.link,t=g.visibleEntityAttr,u=function(b){s!==UNDEF&&b.css({cursor:'pointer',_cursor:'hand'}),b.data('eventArgs',g.eventArgs),b.data('groupId','groupId'+h),b.node.__entity=a,a._listenersBinded||b.on('fc-click',j.entityClick.bind(j,b)).hover(j.entityRollOver.bind(j,b),j.entityRollOut.bind(j,b))};for(b in g.eventArgs={value:g.cleanValue,label:g.label,shortLabel:g.shortLabel,originalId:g.origId,id:g.id||g.origId},g.legacyEventArgs={value:g.value,lName:g.label,sName:g.shortLabel,id:g.originalId||g.id},l&&(g.hoverAttr={fill:toRaphaelColor(g.hoverColor)},g.revertAttr={fill:toRaphaelColor(g.fillColor),stroke:toRaphaelColor(g.borderColor,g.borderAlpha)},g.revertAttr['fill-opacity']=t['fill-opacity'],m!==p&&(g.hoverAttr['stroke-width']=pluckNumber(m,p),g.revertAttr['stroke-width']=p),(n!==q||o!==r)&&(g.hoverAttr.stroke=convertColor(n,o),g.revertAttr.stroke=convertColor(q,r))),k)if(k.hasOwnProperty(b))if(k[b]instanceof Array){for(f=k[b],c=0,e=f.length;c<e;c++)d=f[c].outline,u(d);a._listenersBinded=!0}else d=k[b],u(d),a._listenersBinded=!0}getDataLimits(){let a=this,b=a.config;return{max:b.max,min:b.min}}createContainer(){let a=this,b=a.getLinkedParent(),c=a.getFromEnv('animationManager'),d=b.getChildContainer('layer0');a.getChildContainer('abovePlotGroup')||a.addChildContainer('abovePlotGroup',c.setAnimation({el:'group',attr:{name:'abovePlotGroup',opacity:1},container:d,component:a,label:'group'})),a.getChildContainer('belowPlotGroup')||a.addChildContainer('belowPlotGroup',c.setAnimation({el:'group',attr:{name:'belowPlotGroup',opacity:1},container:d,component:a,label:'group'}))}initComplete(){let a=this,b=a.getFromEnv('chart'),c=a.components.data;this.drawLabels(c),b.config.entitiesReady=!0,b.checkComplete()}}export default Entities;