quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 2.5 kB
JavaScript
import{SmartRenderer}from'../../../../../fc-core/src/component-interface';import{PXSTRING}from'../../../../../fc-core/src/lib';const validDateLen=[2,2,4],formatDate=a=>(10>a?'0'+a:a)+'';class DateBox extends SmartRenderer{constructor(a){super(a),this.addEventListener('blur',function(a){let b,c=this.getLinkedParent(),d=a.originalEvent.target.value+'',e=d.split('/'),f=e.length;if(3===f){for(b=0;b<f;b++)if(isNaN(e[b])||e[b].length!==validDateLen[b])return;c.updateCalendar({day:+e[0],month:+e[1],year:+e[2]},this.config.id)}})}__setDefaultConfig(){super.__setDefaultConfig();let a=this.config;a.enabled=!0,a.inputBoxWidth=65,a._labelStyle={"font-size":'12px',"font-weight":'normal',"font-style":'normal',color:'#5F5F5F'},a._inputStyle={"font-size":'12px',border:'1px solid #efefef',"background-color":'#fcfcfc',color:'#5F5F5F',width:a.inputBoxWidth+PXSTRING,padding:'2px'},a.date={day:8,month:10,year:2018}}configureAttributes(a={}){super.configureAttributes(a);let b,c=this,d=c.config,e=c.getFromEnv('getStyleDef'),f=c.getFromEnv('baseTextStyle');Object.keys(a).forEach(b=>d[b]=a[b]),b=d.date,d.value=`${formatDate(b.day)}/${formatDate(b.month)}/${formatDate(b.year)}`,d._finalLabelStyle=Object.assign({},d._labelStyle,f,e(d.labelStyle)),d._finalInputStyle=Object.assign({},d._inputStyle,f,e(d.inputStyle)),delete d._finalInputStyle['line-height']}getDimension(){var a=Math.max;let b,c=this,d=c.config,e=c.getFromEnv('smartLabel'),f=c.getFromEnv('fontParser'),g=f(d._finalInputStyle['font-size']);return e.setStyle(Object.assign({},d._finalLabelStyle)),d.labelDim=b=e.getOriSize(d.label),e.setStyle(Object.assign({},d._finalInputStyle)),d.inputBoxWidth=e.getOriSize(d.value).width+10,d._finalInputStyle.width=a(65,d.inputBoxWidth)+PXSTRING,{width:b.width+d.inputBoxWidth,height:a(e._lineHeight,1.5*g)}}setTranslation(a,b){this.config.position={x:a,y:b}}draw(){let a,b=this,c=b.config,d=c.position,e=c.labelDim,f=c.date||{},g=`${formatDate(f.day)}/${formatDate(f.month)}/${formatDate(f.year)}`;b.addGraphicalElement({el:'html',attr:{x:d.x,y:d.y,type:'div',text:c.label},component:b,css:c._finalLabelStyle,container:{id:'box-container',label:'box-container',isParent:!0},label:'label',id:'label'}),b.addGraphicalElement({el:'html',attr:{x:d.x+e.width,y:d.y-e.height/3,type:'input',name:c.label,value:g},component:b,css:c._finalInputStyle,container:{id:'box-container',label:'box-container',isParent:!0},label:'box',id:'box'}),a=b.getGraphicalElement('box','box'),a.element.value=g}}export default DateBox;