quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 8.11 kB
JavaScript
import{ComponentInterface}from'../../../../../fc-core/src/component-interface';import{pluck,pluckNumber,BLANK,BLANKSTRING,UNDEF,parseUnsafeString,COMMASTRING,ZEROSTRING,getValidValue,parseTooltext,parsexAxisStyles,convertColor,getLightColor}from'../../../../../fc-core/src/lib';import{labelClickFn}from'../../../../../fc-charts/src/dataset/pie2d';import{priorityList}from'../../../../../fc-core/src/schedular';var CRISP='crisp',M='M',L='L',POINTER='pointer',DEFAULT='default',win=window,userAgent=win.navigator.userAgent,isIE=/msie/i.test(userAgent)&&!win.opera,noneStr='none',EVENTARGS='eventArgs',TRACKER_FILL='rgba(192,192,192,'+(isIE?.002:1e-6)+')',removeCSSProps=['fontFamily','fontSize','fontWeight','fontStyle'],hideFn=function(){this.hide()},extractTextStyle=function(a,b){var c,d,e={labelfont:'fontFamily',labelfontcolor:'color',labelfontsize:'fontSize',labelfontbold:'fontWeight',labelfontitalic:'fontStyle',labelalpha:'alpha'};for(d in e)(d in a||d in b)&&(c=c||{},c[e[d]]=pluck(a[d],b[d]));return c?(c.fontWeight&&(c.fontWeight=pluckNumber(c.fontWeight)?'bold':'normal'),c.fontStyle&&(c.fontStyle=pluckNumber(c.fontStyle)?'italic':'normal'),c.color=convertColor(c.color,c.alpha),c):c};class FunnelPyramidBasePoint extends ComponentInterface{parseAndConfigurePoint(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F=this,G=F.getLinkedParent(),H=G.getFromEnv('chart'),I=G.config,J=G.getFromEnv('number-formatter'),K=G.getFromEnv('smartLabel'),L=G.getFromEnv('color-manager'),M=0,N=I.showPercentValues,O=I.labelSepChar,P=H.getFromEnv('dataSource').chart,Q=I.isSliced,R={apply:I.showShadow,opacity:1},S=I.plotBorderThickness,T=I.style;e=b.refreshedData,M=b.sumValue,g=J.dataLabels(M),f=b.highestValue,D=pluck(a.labellink,P.labellink,a.link,UNDEF),B=a.legendItemId,h=a.cleanValue,i=d?e[d-1].value:h,j=parseUnsafeString(pluck(a.label,a.name,BLANKSTRING)),K.setStyle(F.getFromEnv('dataLabelStyle')),k=K.getOriSize(j),v=a.alpha||I.plotFillAlpha,C=pluck(a.color,L.getPlotColor(c)),E=convertColor(C),u=convertColor(C,v),w=pluck(a.bordercolor,I.plotBorderColor,getLightColor(C,25)).split(COMMASTRING)[0],x=I.showPlotBorder?pluck(a.borderalpha,I.plotBorderAlpha,'80'):ZEROSTRING,R.opacity=Math.max(v,x)/100,l=pluckNumber(a.issliced,Q),l&&(I.noOFSlicedElement+=1,I.preSliced=l),b.prevPerValReq&&(M=i),m=J.percentValue(100*(h/M)),I.datalabelDisabled||(n=J.dataLabels(h)||BLANKSTRING,o=1===I.showLabels?j:BLANKSTRING,p=1===pluckNumber(a.showvalue,I.showValues)?1===N?m:n:BLANKSTRING,q=getValidValue(parseUnsafeString(a.displayvalue)),A=pluck(q,j+O+(N?m:n),BLANKSTRING),p=q?q:p!==BLANKSTRING&&o!==BLANKSTRING?o+O+p:pluck(o,p)||BLANKSTRING),r=getValidValue(parseUnsafeString(pluck(a.tooltext,I.toolText))),r===UNDEF?(s=1===I.showPercentInToolTip?m:n,r=j===BLANKSTRING?s:j+I.tooltipSepChar+s):(y={formatedVal:n,name:j,pValue:m,sum:g,sumValue:g,dataValue:h,prevValue:i,highestValue:f},r=parseTooltext(r,[1,2,3,7,14,24,25,37],G.getTooltipMacroStub(y),a,P)),z=G.pointHoverOptions(a,{color:C,alpha:v,borderColor:w,borderAlpha:x,borderWidth:S}),t={displayValue:p,origValue:p,displayValueArgs:A,style:parsexAxisStyles(a,{},P,T,u),appliedStyle:extractTextStyle(a,P),name:j,categoryLabel:j,rawColor:C,rawAlpha:v,toolText:r,legendCosmetics:UNDEF,legendItemId:B||F&&F.legendItemId,showInLegend:UNDEF,y:h,shadow:R,smartTextObj:k,legendColor:E,color:u,alpha:v,borderColor:convertColor(w,x),borderWidth:S,link:getValidValue(a.link),isSliced:l,doNotSlice:!I.enableSlicing,hoverEffects:z.enabled&&z.options,labellink:D,rolloverProperties:z.enabled&&z.rolloverOptions},F.configure(t)}drawLabel(){var a,b,c,d,e,f,g,h,i,j,k,l,m=this,n=m.index,o=m.getLinkedParent(),p=o.getFromEnv('chart'),q=o.getFromEnv('animationManager'),r=o.getFromEnv('toolTipController'),s=o.config,t=p.getChildContainer('datalabelsGroup'),u=o.getChildren('data'),v=m.displayValue,w=m.plot||{},x=m.getGraphicalElement('dataLabel'),y=m.getGraphicalElement('connector'),z=!x,A=m.labelY,B=m.labelX,C=m.style||{},D=pluckNumber(parseInt(C.fontSize,10),s.baseFontSize),E='funnel'===o.getName(),F=s.lineHeight,G=.3*D,H=.3*F,I=s.showLabelsAtCenter,J=s.connectorEndSwitchHistoryY,K=s.labelDistance,N=s.blankSpace,O=s.streamLinedData;return m.displayValue&&(!E||s.streamLinedData||n)?void(e=o.config.labelDrawingConfig[n],c=e.actions,a=m.y,b={"stroke-width":s.dataConnectorStyle.connectorWidth,stroke:s.dataConnectorStyle.connectorColor,transform:e.transform},e.args.cursor=m.labellink?'pointer':'default',e.args&&e.css&&(e.args.fill=e.css.color||e.css.fill),null!==a&&a!==UNDEF&&m.shapeArgs?(d=!(E&&0===n&&s.streamLinedData),m.plot&&(x&&x.removeCSS(removeCSSProps),x=q.setAnimation({el:x||'text',label:'dataLabel',attr:e.args,css:e.css,container:t,component:o}),m.addGraphicalElement('dataLabel',x),y=q.setAnimation({el:y||'path',attr:d&&b,container:t,callback:function(){s.showLabelsAtCenter&&this.hide()},component:o,label:'connector'}),d&&m.addGraphicalElement('connector',y)),r.enableToolTip(x,m.originalText),!z&&(m.labelClickFn&&x.off('fc-click',m.labelClickFn),m.actionsClick&&x.off('fc-click',m.actionsClick)),m.labellink&&x.on('fc-click',function(a,b){return m.labelClickFn=function(){labelClickFn.call(a,p,b)}}(x,m.labellink)),!m.doNotSlice&&x.on('fc-click',function(a){return m.actionsClick=function(){c.click.call(a)}}(e.context)),z&&x.hover(c.hover[0],c.hover[1])):x?(x.removeCSS(removeCSSProps),x&&q.setAnimation({el:x,attr:e.args,component:o}),x&&x.css(e.css)):(x=q.setAnimation({el:'text',label:'dataLabel',attr:e.args,css:e.css,container:t,component:o}),m.addGraphicalElement('dataLabel',x)),I?(l=0===n&&O?A-H+(u[1].plot.distanceAvailed||0):A-H+(w.distanceAvailed||0),v===BLANKSTRING?x&&q.setAnimation({el:x,component:o}):(q.setAnimation({el:x,attr:{transform:['t',B,l]},component:o}),x.show())):(f=A-G-m.distributionFactor*F,g=A-G,h=J[m.alignmentSwitch],s.lastplotY!==UNDEF&&h!==UNDEF&&h-g<F&&(g=h-F,A=g),m.displayValue&&(J[m.alignmentSwitch]=g),s.lastplotY=m.plotY,s.labelAlignment===s.alignmentType.alternate?m.alignmentSwitch?(i=B+N+m.virtualWidth,j=i+K+m.distributionFactor*s.globalMinXShift):(i=B-N,j=i-(K-(m.lOverflow||0))-m.distributionFactor*s.globalMinXShift):(i=B-N,j=i-(K-(m.lOverflow||0))-m.distributionFactor*s.globalMinXShift),'undefined'==typeof v||v===BLANKSTRING||E&&0===n&&O?y&&q.setAnimation({el:y,component:o}):(k=[M,j,f,L,i,g],q.setAnimation({el:y,state:'transform',label:'connector',attr:{path:k,"shape-rendering":f==g&&1>g?CRISP:BLANK},component:o}),y.show()),l=0===n&&O?A+(u[1].plot.dy||0):g+(w.dy||0),v===BLANKSTRING?x&&q.setAnimation({el:x,component:o}):(q.setAnimation({el:x,state:'transform',attr:{transform:['t',B,l]},component:o,label:'dataLabel'}),x.show())),x.attr({"text-bound":[C.backgroundColor,C.borderColor,C.borderThickness,C.borderPadding,C.borderRadius,C.borderDash]})):(x&&q.setAnimation({el:x,component:o,callback:hideFn,doNotRemove:!0}),void(y&&q.setAnimation({el:y,component:o,callback:hideFn,doNotRemove:!0})))}drawTracker(){var a,b,c,d,e=this,f=e.getLinkedParent(),g=f.getFromEnv('chart'),h=g.getFromEnv('paper'),i=g.getChildContainer('trackerGroup'),j=+new Date;e&&(c=e.getGraphicalElement('graphic'),b=e.getGraphicalElement('trackerObj'),c&&(a=c.Shapeargs.silhuette,d={link:e.link,value:e.y,displayValue:e.displayValueArgs,categoryLabel:e.categoryLabel,dataIndex:e.index||BLANK,toolText:e.toolText},e.datasetIndex=e.index,b?b.attr({path:a,isTracker:j,fill:TRACKER_FILL,stroke:noneStr,transform:'t0,'+(e.plot._startTranslateY||0),cursor:e.link?POINTER:DEFAULT}):(b=h.path(a,i).attr({isTracker:j,fill:TRACKER_FILL,stroke:noneStr,transform:'t0,'+(e.plot._startTranslateY||0),cursor:e.link?POINTER:DEFAULT}),e.addGraphicalElement('trackerObj',b)),b.data(EVENTARGS,d),b.show()))}syncDraw(){var a=this;a.fireEvent('predraw'),a.removeJob('draw'),a.getState('removed')?a.removingDraw():a.drawPlots&&a.drawPlots(),a.addExtEventListener('animationComplete',a.__remove,a.getFromEnv('animationManager')),a.childrenSyncDraw(),a.setState('dirty',!1),a.setState('parentChanged',!1),a.addJob('draw-complete',function(){a.fireEvent('drawn')},priorityList.instant)}}export default FunnelPyramidBasePoint;