"use strict";
var _inherits = function (subClass, superClass) { Iif (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); Eif (superClass) subClass.__proto__ = superClass; };
var _classCallCheck = function (instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } };
var Store = require("flummox").Store;
var RefCountStore = (function (_Store) {
function RefCountStore(flux) {
_classCallCheck(this, RefCountStore);
_Store.call(this);
var registryActionIds = flux.registryActionIds;
this.register(registryActionIds.addSource, this.addRef);
this.register(registryActionIds.addTarget, this.addRef);
this.register(registryActionIds.removeSource, this.removeRef);
this.register(registryActionIds.removeTarget, this.removeRef);
this.state = {
refCount: 0
};
}
_inherits(RefCountStore, _Store);
RefCountStore.prototype.addRef = function addRef() {
this.setState({
refCount: this.state.refCount + 1
});
};
RefCountStore.prototype.removeRef = function removeRef() {
this.setState({
refCount: this.state.refCount - 1
});
};
RefCountStore.prototype.hasRefs = function hasRefs() {
return this.state.refCount > 0;
};
return RefCountStore;
})(Store);
module.exports = RefCountStore;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9kYW4vRG9jdW1lbnRzL1Byb2plY3RzL2RuZC1jb3JlL21vZHVsZXMvc3RvcmVzL1JlZkNvdW50U3RvcmUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0lBQVMsS0FBSyxXQUFRLFNBQVMsRUFBdEIsS0FBSzs7SUFFTyxhQUFhO0FBQ3JCLFdBRFEsYUFBYSxDQUNwQixJQUFJLEVBQUU7MEJBREMsYUFBYTs7QUFFOUIscUJBQU8sQ0FBQzs7UUFFQSxpQkFBaUIsR0FBSyxJQUFJLENBQTFCLGlCQUFpQjs7QUFFekIsUUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hELFFBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4RCxRQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDOUQsUUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztBQUU5RCxRQUFJLENBQUMsS0FBSyxHQUFHO0FBQ1gsY0FBUSxFQUFFLENBQUM7S0FDWixDQUFDO0dBQ0g7O1lBZGtCLGFBQWE7O0FBQWIsZUFBYSxXQWdCaEMsTUFBTSxHQUFBLGtCQUFHO0FBQ1AsUUFBSSxDQUFDLFFBQVEsQ0FBQztBQUNaLGNBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDO0tBQ2xDLENBQUMsQ0FBQztHQUNKOztBQXBCa0IsZUFBYSxXQXNCaEMsU0FBUyxHQUFBLHFCQUFHO0FBQ1YsUUFBSSxDQUFDLFFBQVEsQ0FBQztBQUNaLGNBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDO0tBQ2xDLENBQUMsQ0FBQztHQUNKOztBQTFCa0IsZUFBYSxXQTRCaEMsT0FBTyxHQUFBLG1CQUFHO0FBQ1IsV0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7R0FDaEM7O1NBOUJrQixhQUFhO0dBQVMsS0FBSzs7aUJBQTNCLGFBQWEiLCJmaWxlIjoiL1VzZXJzL2Rhbi9Eb2N1bWVudHMvUHJvamVjdHMvZG5kLWNvcmUvbW9kdWxlcy9zdG9yZXMvUmVmQ291bnRTdG9yZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0b3JlIH0gZnJvbSAnZmx1bW1veCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlZkNvdW50U3RvcmUgZXh0ZW5kcyBTdG9yZSB7XG4gIGNvbnN0cnVjdG9yKGZsdXgpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgY29uc3QgeyByZWdpc3RyeUFjdGlvbklkcyB9ID0gZmx1eDtcblxuICAgIHRoaXMucmVnaXN0ZXIocmVnaXN0cnlBY3Rpb25JZHMuYWRkU291cmNlLCB0aGlzLmFkZFJlZik7XG4gICAgdGhpcy5yZWdpc3RlcihyZWdpc3RyeUFjdGlvbklkcy5hZGRUYXJnZXQsIHRoaXMuYWRkUmVmKTtcbiAgICB0aGlzLnJlZ2lzdGVyKHJlZ2lzdHJ5QWN0aW9uSWRzLnJlbW92ZVNvdXJjZSwgdGhpcy5yZW1vdmVSZWYpO1xuICAgIHRoaXMucmVnaXN0ZXIocmVnaXN0cnlBY3Rpb25JZHMucmVtb3ZlVGFyZ2V0LCB0aGlzLnJlbW92ZVJlZik7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgcmVmQ291bnQ6IDBcbiAgICB9O1xuICB9XG5cbiAgYWRkUmVmKCkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgcmVmQ291bnQ6IHRoaXMuc3RhdGUucmVmQ291bnQgKyAxXG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVSZWYoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICByZWZDb3VudDogdGhpcy5zdGF0ZS5yZWZDb3VudCAtIDFcbiAgICB9KTtcbiAgfVxuXG4gIGhhc1JlZnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUucmVmQ291bnQgPiAwO1xuICB9XG59Il19 |