quoslibero
Version:
FusionCharts JavaScript charting framework
1 lines • 1.72 kB
JavaScript
import{pseudoEval}from'../../../fc-core/src/lib';import{ComponentInterface}from'../../../fc-core/src/component-interface';var IN_ALERT_RANGE='1',OUT_OF_ALERT_RANGE='2',ACTION_CALLJS='calljs',ACTION_SHOWANNOTATION='showannotation';class AlertManager extends ComponentInterface{constructor(){super(),this.pIndex=1,this.linkedItems={chart:{}}}getType(){return'extension'}getName(){return'AlertManager'}configure(){var a,b,c,d=this,e=d.getFromEnv('dataSource'),f=e&&e.alerts&&e.alerts.alert,g=d.getFromEnv('number-formatter'),h=d.config||(d.config={});if(f&&f.length)for(h.alertArr=f,a=f.length,b=0;b<a;b+=1)c=f[b],c.minvalue=g.getCleanValue(c.minvalue),c.maxvalue=g.getCleanValue(c.maxvalue);else h.alertArr=[]}processRTData(a){var b,c,d,e,f,g,h,k=this,l=k.config,m=k.getFromEnv('number-formatter');if(a&&a.dataset&&a.dataset.length)for(d=a.dataset.length,b=0;b<d;b+=1)if(e=a.dataset[b],e.data&&e.data.length){if(l.datasetMap&&0===l.datasetMap[b])continue;for(f=e.data.length,c=0;c<f;c+=1)g=e.data[c],h=g&&m.getCleanValue(g.value),null!==h&&k._doAlert(m.getCleanValue(g.value))}}_doAlert(a){var b,c,d,e=this,f=e.getLinkedParent(),g=e.config,h=g.alertArr,i=h.length;for(c=0;c<i;c+=1)b=h[c],d=b.action&&b.action.toLowerCase(),b.minvalue<=a&&b.maxvalue>=a?'1'===b.occuronce&&b.hasOccurred||(b.hasOccurred=!0,b.state=IN_ALERT_RANGE,d===ACTION_CALLJS?setTimeout(pseudoEval(b.param)):d===ACTION_SHOWANNOTATION?f.showAnnotation&&f.showAnnotation(b.param):void 0,f.fireChartInstanceEvent('AlertComplete',{alertValue:a,alertMaxValue:b.maxvalue,alertMinValue:b.minvalue})):(d===ACTION_SHOWANNOTATION&&b.state===IN_ALERT_RANGE&&f.hideAnnotation&&f.hideAnnotation(b.param),b.state=OUT_OF_ALERT_RANGE)}}export default AlertManager;