quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 2.53 kB
JavaScript
import{stubFN,PXSTRING}from'../../lib';import{CLICK}from'./helper';import{SmartRenderer}from'../../component-interface';import{addDep}from'../../../../fc-core/src/dependency-manager';addDep({name:'manuItemAnimation',type:'animationRule',extension:{"*.menuItem.menuItem":null}});class MenuItem extends SmartRenderer{configureAttributes(a={}){let b=this,c=b.config,d=b.getLinkedParent(),e=d.getLinkedParent(),f=e.config;c.name=a.name,c.action=a.action&&a.action.toLowerCase()||CLICK,c.eventMap={},c.style={padding:'3px 8px',fontFamily:f.baseFontFamily,fontSize:f.baseFontSize+PXSTRING,color:'#000000',position:'static',display:'inline',float:'left'},c.pointerStyle={padding:'0px 4px 3px',fontFamily:f.baseFontFamily,fontSize:f.baseFontSize+3+PXSTRING,color:'#000000',position:'static',float:'left'},c.itemType=a.menu instanceof Array&&a.menu.length?'subMenu':'item',c.handler='item'===c.itemType?a.handler||stubFN:stubFN,c.hoverOverStyle=a.hoverOverStyle||{},c.hoverOutStyle=a.hoverOutStyle||{}}applyStyle(a='mouseover'){let b=this,c=b.getLinkedParent(),d=c.config,e=b.getGraphicalElement('menuItem','menuItem'),f=b.getGraphicalElement('container','container'),g=b.getGraphicalElement('menuPointer','menuPointer');'mouseover'===a?(e.css(d.hoverOverStyle),f.css(d.hoverOverStyle),g&&g.css(d.hoverOverStyle)):'mouseout'===a?(e.css(d.hoverOutStyle),f.css(d.hoverOutStyle),g&&g.css(d.hoverOutStyle)):void 0}draw(){let a=this,b=a.config,c=a.getLinkedParent();a.addGraphicalElement({el:'html',attr:{type:'div'},css:{display:'block',position:'static',overflow:'hidden',height:'100%',width:'100%'},container:{id:'menu',label:'menu',isParent:!0},component:a,label:'container',id:'container'}),c.config.hasSubMenu&&a.addGraphicalElement({el:'html',attr:{type:'div',text:'\u25C2'},css:b.pointerStyle,container:{id:'container',label:'container'},component:a,label:'menuPointer',id:'menuPointer'},!0),a.addGraphicalElement({el:'html',attr:{type:'span',text:b.name},css:b.style,container:{id:'container',label:'container'},component:a,label:'menuItem',id:'menuItem'},!0),a._mouseOverEvent||(a._mouseOverEvent=function(){a.applyStyle('mouseover')}),a._mouseOutEvent||(a._mouseOutEvent=function(){a.applyStyle('mouseout')}),a._clickEvent||(a._clickEvent=function(){'item'===a.config.itemType&&(c.hide({instant:!0}),b.handler())}),a.addEventListener('mouseover',a._mouseOverEvent),a.addEventListener('mouseout',a._mouseOutEvent),a.addEventListener('click',a._clickEvent)}getName(){return'menuItem'}getType(){return'menuItem'}}export default MenuItem;