1 | import { DragDropManagerImpl } from './classes/DragDropManagerImpl';
|
2 | import { createStore } from 'redux';
|
3 | import { reduce } from './reducers';
|
4 | import { DragDropMonitorImpl } from './classes/DragDropMonitorImpl';
|
5 | import { HandlerRegistryImpl } from './classes/HandlerRegistryImpl';
|
6 | export function createDragDropManager(backendFactory) {
|
7 | var globalContext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
|
8 | var backendOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
9 | var debugMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
10 | var store = makeStoreInstance(debugMode);
|
11 | var monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));
|
12 | var manager = new DragDropManagerImpl(store, monitor);
|
13 | var backend = backendFactory(manager, globalContext, backendOptions);
|
14 | manager.receiveBackend(backend);
|
15 | return manager;
|
16 | }
|
17 |
|
18 | function makeStoreInstance(debugMode) {
|
19 |
|
20 |
|
21 | var reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;
|
22 | return createStore(reduce, debugMode && reduxDevTools && reduxDevTools({
|
23 | name: 'dnd-core',
|
24 | instanceId: 'dnd-core'
|
25 | }));
|
26 | } |
\ | No newline at end of file |