UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 2.88 kB
import{ComponentInterface}from'../../../fc-core/src/component-interface';var _updateDependancyObj=function(a,b,c,d){var e,f;(f=d[a])&&(f.some((a,d)=>{if(a.callback===b&&a.component===c)return e=d,!0}),e!==void 0&&f.splice(e,1))};class InputManager extends ComponentInterface{configure(){var a=this,b=a.getFromEnv('chart'),c=b.getInputConfigurations;a.addToEnv('canvas',a.getLinkedParent()),a.addToEnv('inputOptions',c&&c.call(b)),a.config={controlObj:{},dependancyObj:{}}}addEventToChild(){var a=this,b=a.getChildren(),c=['zoomin','zoomout','dragzoomenabled','dragzoomdisabled','pinenabled','pindisabled','panenabled','pandisabled'];for(let d in b)c.forEach(c=>{a.addExtEventListener(c,a.manageEvents.bind(a),b[d][0])})}manageEvents(a){var b=this.config.dependancyObj,c=a.type;b[c]&&b[c].forEach(b=>{b.component!==a.sender&&b.callback.call(b.component,a)})}fetchZoomableAxes(){var a=this;if(!a.config.axesObArr){let b=a.config.axesObArr=[];a.getLinkedParent().getAxes().forEach(function(a){(a.config.zoomable||a.config.pannable)&&b.push({axis:a.axis,stack:[],isY:a.isY})}),a.addToEnv('axesObArr',b)}}draw(){var a=this;a.fetchZoomableAxes(),a.addEventToChild()}getControl(a,b){var c,d,e=this,f=e.config.controlObj,g=e.getLinkedParent();b||a.forEach(a=>{c=a.nativeInteraction,c instanceof Array?c.forEach(b=>{d=f[b]||(f[b]=[]),d.push({callback:a.callback,component:a.component}),a.component.addExtEventListener(b,a.callback,g)}):(d=f[c]||(f[c]=[]),d.push({callback:a.callback,component:a.component}),a.component.addExtEventListener(c,a.callback,g))})}releaseControl(a){var b,c=this,d=c.getLinkedParent();a.forEach(a=>{b=a.nativeInteraction,b instanceof Array?b.forEach(b=>{a.component.removeExtEventListener(b,a.callback,d),_updateDependancyObj(b,a.callback,a.component,c.config.controlObj)}):(a.component.removeExtEventListener(b,a.callback,d),_updateDependancyObj(b,a.callback,a.component,c.config.controlObj))})}_updateControlObj(a,b){var c,d,e=this.config.controlObj;(d=e[a])&&(d.some((a,d)=>{if(a.callback===b)return c=d,!0}),c!==void 0&&d.splice(c,1))}registerDependancy(a){var b,c,d=this,e=d.config.dependancyObj;a.forEach(a=>{b=a.derivedInteraction,b instanceof Array?b.forEach(b=>{c=e[b]||(e[b]=[]),c.push({callback:a.callback,component:a.component,derivedInteraction:b})}):(c=e[b]||(e[b]=[]),c.push(a))})}removeDependancy(a){var b,c=this;a.forEach(a=>{b=a.derivedInteraction,b instanceof Array?b.forEach(b=>{_updateDependancyObj(b,a.callback,a.component,c.config.dependancyObj)}):_updateDependancyObj(b,a.callback,a.component,c.config.dependancyObj)})}zoomOut(){var a=this.getChildren('ZoomOutButton');a&&a[0].zoomOut()}zoomTo(a,b){var c=this.getChildren('DragZoomIn');c&&c[0].zoomTo(a,b)}resetChart(){var a=this.getChildren('ZoomResetButton');a&&a[0].zoomOut()}setZoomMode(a){var b=this.getChildren('DragPin');b&&(a?b[0].disable():b[0].enable())}}export default InputManager;