UNPKG

quoslibero

Version:

FusionCharts JavaScript charting framework

1 lines 1.47 kB
import{raiseError,triggerEvent}from'../event-api';let typeStore={},depStore={};function getExtensionName(a={}){let b=a.getName&&a.getName()||a.name;return'undefined'==typeof b&&raiseError({id:'Extension'},'90211','extension','Name',new Error('A FusionCharts extension must have a getName API or a name property.')),b&&b.toLowerCase()}function getExtensionType(a={}){let b=a.getType&&a.getType()||a.type;return b&&b.toLowerCase()}function defineDepType(a){'string'==typeof a&&(typeStore[a]={})}function addDep(...a){return a.length?void a.forEach(a=>{let b,c,d,e,f;return a?void(c=a.extension?a.extension:a,b=getExtensionName(a),d=getExtensionType(a),f=a.requiresFusionCharts,d?(!typeStore[d]&&defineDepType(d),(e=typeStore[d][b]!==c)&&(typeStore[d][b]=c)):b&&(e=depStore[b]!==c)&&(depStore[b]=c),e&&triggerEvent('dependencyadded',this,{name:b,type:d}),e&&f&&c(this)):void raiseError({id:'Extension'},'90211','dependency','Extension',new Error('A FusionCharts extension must have a valid extension property.'))}):void raiseError({id:'Extension'},'90211','dependency','Extension',new Error('A FusionCharts extension must have a valid extension property.'))}function getDep(a,b){let c;if(a=a&&a.toLowerCase(),b&&typeStore[b])return typeStore[b][a];if(!b)for(var d in typeStore)if(typeStore.hasOwnProperty(d)&&(c=typeStore[d][a],c))return c;return depStore[a]}function getDepsByType(a=''){return''===a?typeStore:typeStore[a.toLowerCase()]}export{addDep,getDep,getDepsByType};