UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 4.41 kB
import{ComponentInterface}from'../../../fc-core/src/component-interface';import{getValidValue,pluck,pluckNumber,getMouseCoordinate,setImageDisplayMode}from'../../../fc-core/src/lib';let UNDEF,NONE='none',POSITION_TOP='top',POSITION_BOTTOM='bottom',POSITION_MIDDLE='middle',POSITION_RIGHT='right',POSITION_LEFT='left',POINTER='pointer',TL='tl',NORMAL='normal',LOGOROLLOUT='LogoRollout',LOGOROLLOVER='LogoRollover',LOGOCLICK='LogoClick',LOGOLOADED='LogoLoaded',LOGOLOADERROR='LogoLoadError',defaultPosition={vAlign:'top',hAlign:'left'},pointerCSS={link:{cursor:'pointer',_cursor:'pointer'},normal:{cursor:'default',_cursor:'normal'}},position={tr:{vAlign:'top',hAlign:'right'},bl:{vAlign:'bottom',hAlign:'left'},br:{vAlign:'bottom',hAlign:'right'},cc:{vAlign:'middle',hAlign:'middle'}},isVML=!!(window.SVGAngle||document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure','1.1')),getHandler=function(a){let b=a.config;return{load:function(){let c,d=a.getGraphicalElement('logoImage'),e=a.getFromEnv('chartConfig'),f=e.borderWidth||0,g=a.getFromEnv('chart'),h=e.height,i=e.width,{logoPosition:j,logoScale:k,logoLeftMargin:l,logoTopMargin:m,logoURL:n,logoAlpha:o,logoPositionSTR:p,logoLink:q}=b;d.show(),c=setImageDisplayMode(NONE,j.vAlign,j.hAlign,k,f,i,h,d._.RefImg),isVML&&(c.w=c.width||0,c.h=c.height||0),c.transform='T'+l+','+m,d.attr(c),g.fireChartInstanceEvent(LOGOLOADED,{logoURL:n,logoAlpha:o,logoPosition:p,logoScale:k,logoLink:q})},error:function(c){let{logoURL:d,logoAlpha:e,logoPositionSTR:f,logoScale:g,logoLink:h}=b,i=a.getFromEnv('chart');i.fireChartInstanceEvent(LOGOLOADERROR,{logoURL:d,logoAlpha:e,logoPosition:f,logoScale:g,logoLink:h,error:c})},mouseover:function(c){let d=a.getFromEnv('chartInstance'),e=getMouseCoordinate(d.ref,c),f=a.getFromEnv('chart'),{logoURL:g,logoAlpha:h,logoPositionSTR:i,logoScale:j,logoLink:k}=b;f.fireChartInstanceEvent(LOGOROLLOVER,{logoURL:g,logoAlpha:h,logoPosition:i||TL,logoScale:j,logoLink:k,chartX:e.chartX,chartY:e.chartY,pageX:e.pageX,pageY:e.pageY})},mouseout:function(c){let d=a.getFromEnv('chartInstance'),e=getMouseCoordinate(d.ref,c),f=a.getFromEnv('chart'),{logoURL:g,logoAlpha:h,logoPositionSTR:i,logoScale:j,logoLink:k}=b;f.fireChartInstanceEvent(LOGOROLLOUT,{logoURL:g,logoAlpha:h,logoPosition:i||TL,logoScale:j,logoLink:k,chartX:e.chartX,chartY:e.chartY,pageX:e.pageX,pageY:e.pageY})},click:function(c){let d=a.getFromEnv('chartInstance'),e=getMouseCoordinate(d.ref,c),f=a.getFromEnv('chart'),{logoURL:g,logoAlpha:h,logoPositionSTR:i,logoScale:j,logoLink:k}=b;f.fireChartInstanceEvent(LOGOCLICK,{logoURL:g,logoAlpha:h,logoPosition:i||TL,logoScale:j,logoLink:k,chartX:e.chartX,chartY:e.chartY,pageX:e.pageX,pageY:e.pageY},UNDEF,b.linkClickFN)}}};class Logo extends ComponentInterface{constructor(){super();let a=this;a.config._context={},a.config.handler=getHandler(a),a.config.linkClickFN=function(){let b=a.config.logoLink;b&&a.getFromEnv('linkClickFN').call({link:b},!0)}}configureAttributes(){let a=this,b=a.config,c=a.getFromEnv('chart-attrib');b.logoURL=getValidValue(c.logourl,''),b.logoPositionSTR=pluck(c.logoposition,TL).toLowerCase(),b.logoPosition=position[b.logoPositionSTR]||defaultPosition,b.logoAlpha=pluckNumber(c.logoalpha,100),b.logoLink=getValidValue(c.logolink),b.logoScale=pluckNumber(c.logoscale,100),b.logoLeftMargin=pluckNumber(c.logoleftmargin,0),b.logoTopMargin=pluckNumber(c.logotopmargin,0),a.setState('dirty',!0)}_contextChanged(){let a,b=this,c=b.config,d=b.getFromEnv('chartConfig'),e=d.borderWidth,f=d.width,g=d.height;return e!==c._context.chartBorderWidth&&(c._context.chartBorderWidth=e,a=!0),f!==c._context.chartWidth&&(c._context.chartWidth=f,a=!0),g!==c._context.chartHeight&&(c._context.chartHeight=g,a=!0),a}draw(){var a=this,b=a.config,c=a.getFromEnv('animationManager'),d=a.getGraphicalElement('logoImage'),e=a.getLinkedParent().getChildContainer('logoGroup'),f=b.logoAlpha,g=b.logoURL,h=b.logoLink,i=!a.getState('removed'),j=a._contextChanged();i&&!(a.getState('dirty')||j)||g&&i&&(d=c.setAnimation({el:d||'image',attr:{opacity:.01*f||1,src:g},component:a,container:e}),!a.getGraphicalElement('logoImage')&&(a.addGraphicalElement('logoImage',d),d.on('load',b.handler.load),d.on('error',b.handler.error),d.on('fc-click',b.handler.click),d.on('fc-mouseover',b.handler.mouseover),d.on('fc-mouseout',b.handler.mouseout)),d.css(pointerCSS[h?'link':'normal']))}}export default Logo;