"use strict";
var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
var _classCallCheck = function (instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } };
var Flux = _interopRequire(require("./Flux"));
var DragDropMonitor = _interopRequire(require("./DragDropMonitor"));
var HandlerRegistry = _interopRequire(require("./utils/HandlerRegistry"));
var DragDropManager = (function () {
function DragDropManager(Backend) {
_classCallCheck(this, DragDropManager);
var flux = new Flux(this);
this.flux = flux;
this.registry = new HandlerRegistry(flux.registryActions);
this.monitor = new DragDropMonitor(flux, this.registry);
this.backend = new Backend(flux.dragDropActions);
flux.refCountStore.addListener("change", this.handleRefCountChange, this);
}
DragDropManager.prototype.handleRefCountChange = function handleRefCountChange() {
if (this.flux.refCountStore.hasRefs()) {
this.backend.setup();
} else {
this.backend.teardown();
}
};
DragDropManager.prototype.getMonitor = function getMonitor() {
return this.monitor;
};
DragDropManager.prototype.getBackend = function getBackend() {
return this.backend;
};
DragDropManager.prototype.getRegistry = function getRegistry() {
return this.registry;
};
return DragDropManager;
})();
module.exports = DragDropManager;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9kYW4vRG9jdW1lbnRzL1Byb2plY3RzL2RuZC1jb3JlL21vZHVsZXMvRHJhZ0Ryb3BNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztJQUFPLElBQUksMkJBQU0sUUFBUTs7SUFDbEIsZUFBZSwyQkFBTSxtQkFBbUI7O0lBQ3hDLGVBQWUsMkJBQU0seUJBQXlCOztJQUVoQyxlQUFlO0FBQ3ZCLFdBRFEsZUFBZSxDQUN0QixPQUFPLEVBQUU7MEJBREYsZUFBZTs7QUFFaEMsUUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7O0FBRTVCLFFBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2pCLFFBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQzFELFFBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN4RCxRQUFJLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzs7QUFFakQsUUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztHQUMzRTs7QUFWa0IsaUJBQWUsV0FZbEMsb0JBQW9CLEdBQUEsZ0NBQUc7QUFDckIsUUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBRTtBQUNyQyxVQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ3RCLE1BQU07QUFDTCxVQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ3pCO0dBQ0Y7O0FBbEJrQixpQkFBZSxXQW9CbEMsVUFBVSxHQUFBLHNCQUFHO0FBQ1gsV0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0dBQ3JCOztBQXRCa0IsaUJBQWUsV0F3QmxDLFVBQVUsR0FBQSxzQkFBRztBQUNYLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztHQUNyQjs7QUExQmtCLGlCQUFlLFdBNEJsQyxXQUFXLEdBQUEsdUJBQUc7QUFDWixXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O1NBOUJrQixlQUFlOzs7aUJBQWYsZUFBZSIsImZpbGUiOiIvVXNlcnMvZGFuL0RvY3VtZW50cy9Qcm9qZWN0cy9kbmQtY29yZS9tb2R1bGVzL0RyYWdEcm9wTWFuYWdlci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBGbHV4IGZyb20gJy4vRmx1eCc7XG5pbXBvcnQgRHJhZ0Ryb3BNb25pdG9yIGZyb20gJy4vRHJhZ0Ryb3BNb25pdG9yJztcbmltcG9ydCBIYW5kbGVyUmVnaXN0cnkgZnJvbSAnLi91dGlscy9IYW5kbGVyUmVnaXN0cnknO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcmFnRHJvcE1hbmFnZXIge1xuICBjb25zdHJ1Y3RvcihCYWNrZW5kKSB7XG4gICAgY29uc3QgZmx1eCA9IG5ldyBGbHV4KHRoaXMpO1xuXG4gICAgdGhpcy5mbHV4ID0gZmx1eDtcbiAgICB0aGlzLnJlZ2lzdHJ5ID0gbmV3IEhhbmRsZXJSZWdpc3RyeShmbHV4LnJlZ2lzdHJ5QWN0aW9ucyk7XG4gICAgdGhpcy5tb25pdG9yID0gbmV3IERyYWdEcm9wTW9uaXRvcihmbHV4LCB0aGlzLnJlZ2lzdHJ5KTtcbiAgICB0aGlzLmJhY2tlbmQgPSBuZXcgQmFja2VuZChmbHV4LmRyYWdEcm9wQWN0aW9ucyk7XG5cbiAgICBmbHV4LnJlZkNvdW50U3RvcmUuYWRkTGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuaGFuZGxlUmVmQ291bnRDaGFuZ2UsIHRoaXMpO1xuICB9XG5cbiAgaGFuZGxlUmVmQ291bnRDaGFuZ2UoKSB7XG4gICAgaWYgKHRoaXMuZmx1eC5yZWZDb3VudFN0b3JlLmhhc1JlZnMoKSkge1xuICAgICAgdGhpcy5iYWNrZW5kLnNldHVwKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYmFja2VuZC50ZWFyZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIGdldE1vbml0b3IoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9uaXRvcjtcbiAgfVxuXG4gIGdldEJhY2tlbmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZDtcbiAgfVxuXG4gIGdldFJlZ2lzdHJ5KCkge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5O1xuICB9XG59Il19 |