@pilotlab/lux-tools
Version:
A luxurious user experience framework, developed by your friends at Pilot.
36 lines • 1.37 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const is_1 = require("@pilotlab/is");
const initializable_1 = require("@pilotlab/initializable");
const signals_1 = require("@pilotlab/signals");
class ActivatableBase extends initializable_1.Initializable {
constructor(data) {
super();
this.p_isActivated = false;
this.activated = new signals_1.Signal();
if (is_1.default.notEmpty(data))
this.p_initializationData = data;
}
get name() { return 'default'; }
get isActivated() { return this.p_isActivated; }
get activationTarget() { return this.p_activationTarget; }
activate(target, ...args) {
if (is_1.default.empty(target))
return;
this.p_activationTarget = target;
this.p_onActivationStarted(this.p_initializationData, ...args);
this.p_onActivated(this.p_initializationData, ...args);
this.activated.dispatch(this.p_initializationData);
this.p_isActivated = true;
}
deactivate(...args) {
this.p_onDeactivated(...args);
this.p_isActivated = false;
}
p_onActivationStarted(data, ...args) { }
p_onActivated(data, ...args) { }
p_onDeactivated(...args) { }
}
exports.ActivatableBase = ActivatableBase;
exports.default = ActivatableBase;
//# sourceMappingURL=activatableBase.js.map