zhongrj
2025-11-24 276323dce9613867abb3f58a4cc2abbfb2fd0dea
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { EventEmitter } from 'fbemitter';
import ApiFactory from './ApiFactory';
import Map from './Map';
import Dashboard from './Dashboard';
import App from './App';
import SharePopup from './SharePopup';
import SystemJS from 'SystemJS';
 
if (!window.PluginsAPI){
  const events = new EventEmitter();
  const factory = new ApiFactory(events);
 
  SystemJS.config({
    baseURL: '/plugins',
    map: {
      'css': '/static/app/js/vendor/css.js',
      'globals-loader': '/static/app/js/vendor/globals-loader.js'
    },
    meta: {
      '*.css': { loader: 'css' },
 
      // Globals always available in the window object
      'jQuery': { loader: 'globals-loader', exports: '$' },
      'leaflet': { loader: 'globals-loader', exports: 'L' },
      'ReactDOM': { loader: 'globals-loader', exports: 'ReactDOM' },
      'React': { loader: 'globals-loader', exports: 'React' },
      'SystemJS': { loader: 'globals-loader', exports: 'SystemJS' }
    }
  });
 
  window.PluginsAPI = {
    Map: factory.create(Map),
    Dashboard: factory.create(Dashboard),
    App: factory.create(App),
    SharePopup: factory.create(SharePopup),
 
    SystemJS,
    events
  };
}
 
export default window.PluginsAPI;