UNPKG

@pilotlab/lux-tools

Version:

A luxurious user experience framework, developed by your friends at Pilot.

36 lines 1.37 kB
"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