2018-02-09 17:38:42 +00:00
|
|
|
import { EventEmitter } from 'fbemitter';
|
|
|
|
import ApiFactory from './ApiFactory';
|
|
|
|
import Map from './Map';
|
2018-07-26 15:05:00 +00:00
|
|
|
import Dashboard from './Dashboard';
|
2018-12-29 17:33:08 +00:00
|
|
|
import App from './App';
|
2018-02-09 17:38:42 +00:00
|
|
|
import SystemJS from 'SystemJS';
|
|
|
|
|
|
|
|
if (!window.PluginsAPI){
|
|
|
|
const events = new EventEmitter();
|
|
|
|
const factory = new ApiFactory(events);
|
|
|
|
|
|
|
|
SystemJS.config({
|
|
|
|
baseURL: '/plugins',
|
|
|
|
map: {
|
2018-03-27 18:35:16 +00:00
|
|
|
'css': '/static/app/js/vendor/css.js',
|
|
|
|
'globals-loader': '/static/app/js/vendor/globals-loader.js'
|
2018-02-09 17:38:42 +00:00
|
|
|
},
|
|
|
|
meta: {
|
2018-03-27 18:35:16 +00:00
|
|
|
'*.css': { loader: 'css' },
|
|
|
|
|
|
|
|
// Globals always available in the window object
|
|
|
|
'jQuery': { loader: 'globals-loader', exports: '$' },
|
2018-03-29 18:25:20 +00:00
|
|
|
'leaflet': { loader: 'globals-loader', exports: 'L' },
|
|
|
|
'ReactDOM': { loader: 'globals-loader', exports: 'ReactDOM' },
|
2019-08-31 15:33:57 +00:00
|
|
|
'React': { loader: 'globals-loader', exports: 'React' },
|
2019-11-07 16:22:49 +00:00
|
|
|
'SystemJS': { loader: 'globals-loader', exports: 'SystemJS' }
|
2018-02-09 17:38:42 +00:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
window.PluginsAPI = {
|
|
|
|
Map: factory.create(Map),
|
2018-07-26 15:05:00 +00:00
|
|
|
Dashboard: factory.create(Dashboard),
|
2018-12-29 17:33:08 +00:00
|
|
|
App: factory.create(App),
|
2018-02-09 17:38:42 +00:00
|
|
|
|
|
|
|
SystemJS,
|
|
|
|
events
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
export default window.PluginsAPI;
|
|
|
|
|