UNPKG

@awesome-nodes/mvvm

Version:

Application development framework using the *model* *view* *view-model* design pattern.

31 lines (25 loc) 4.61 kB
import { ObjectBase } from '@awesome-nodes/object'; import { Disposable } from "../model"; export class ViewModelBase extends ObjectBase { get name() { return this.toString(); } get model() { return this._model; } set model(value) { this._model = value; } constructor(model, name) { super(name); this._model = void 0; this._model = model; } destroy() { this.model && (this.model instanceof Disposable || this.model.dispose) && this.model.dispose(); } equals(other) { return super.equals(other) && this.name == other.name; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tdnZtL3ZpZXctbW9kZWwvVmlld01vZGVsQmFzZS50cyJdLCJuYW1lcyI6WyJPYmplY3RCYXNlIiwiRGlzcG9zYWJsZSIsIlZpZXdNb2RlbEJhc2UiLCJuYW1lIiwidG9TdHJpbmciLCJtb2RlbCIsIl9tb2RlbCIsInZhbHVlIiwiY29uc3RydWN0b3IiLCJkZXN0cm95IiwiZGlzcG9zZSIsImVxdWFscyIsIm90aGVyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFULFFBQTJCLHVCQUEzQjtBQUNBLFNBQVNDLFVBQVQ7QUFRQSxPQUFPLE1BQWVDLGFBQWYsU0FBaUVGLFVBQWpFLENBQ1A7QUFLbUIsTUFBSkcsSUFBSSxHQUNmO0FBQ0ksV0FBTyxLQUFLQyxRQUFMLEVBQVA7QUFDSDs7QUFLZSxNQUFMQyxLQUFLLEdBQ2hCO0FBQ0ksV0FBTyxLQUFLQyxNQUFaO0FBQ0g7O0FBS2UsTUFBTEQsS0FBSyxDQUFDRSxLQUFELEVBQ2hCO0FBQ0ksU0FBS0QsTUFBTCxHQUFjQyxLQUFkO0FBQ0g7O0FBU1NDLEVBQUFBLFdBQVcsQ0FBQ0gsS0FBRCxFQUFnQkYsSUFBaEIsRUFDckI7QUFDSSxVQUFNQSxJQUFOO0FBREosU0FqQ1FHLE1BaUNSO0FBRUksU0FBS0EsTUFBTCxHQUFjRCxLQUFkO0FBQ0g7O0FBcUJNSSxFQUFBQSxPQUFPLEdBQ2Q7QUFDSSxTQUFLSixLQUFMLEtBQWUsS0FBS0EsS0FBTCxZQUFzQkosVUFBdEIsSUFDUCxLQUFLSSxLQUFOLENBQXVDSyxPQUQ5QyxLQUVJLEtBQUtMLEtBQU4sQ0FBdUNLLE9BQXZDLEVBRkg7QUFHSDs7QUFPTUMsRUFBQUEsTUFBTSxDQUFDQyxLQUFELEVBQ2I7QUFDSSxXQUFPLE1BQU1ELE1BQU4sQ0FBYUMsS0FBYixLQUNILEtBQUtULElBQUwsSUFBYVMsS0FBSyxDQUFDVCxJQUR2QjtBQUVIOztBQTFFTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9iamVjdEJhc2UgfSBmcm9tICdAYXdlc29tZS1ub2Rlcy9vYmplY3QnO1xuaW1wb3J0IHsgRGlzcG9zYWJsZSwgSURpc3Bvc2FibGUsIE9iamVjdE1vZGVsIH0gZnJvbSAnbXZ2bS9tb2RlbCc7XG5pbXBvcnQgeyBJVmlld01vZGVsIH0gZnJvbSAnbXZ2bS92aWV3LW1vZGVsJztcblxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGJhc2UgZm9yIGFsbCB2aWV3IG1vZGVscyBpbiB0aGUgbW9kZWwtdmlldy12aWV3LW1vZGVsIHBhdHRlcm4uXG4gKiBAdGVtcGxhdGUgVE1vZGVsXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWaWV3TW9kZWxCYXNlPFRNb2RlbCBleHRlbmRzIE9iamVjdE1vZGVsPiBleHRlbmRzIE9iamVjdEJhc2UgaW1wbGVtZW50cyBJVmlld01vZGVsPFRNb2RlbD5cbntcbiAgICBwcml2YXRlIF9tb2RlbDogVE1vZGVsO1xuXG4gICAgLy9yZWdpb24gUHVibGljIFBlcnBlcnRpZXNcblxuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmdcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbW9kZWwgaW5zdGFuY2Ugd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdmlldy1tb2RlbCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCk6IFRNb2RlbFxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIG1vZGVsIGluc3RhbmNlIHdoaWNoIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHZpZXctbW9kZWwgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIHNldCBtb2RlbCh2YWx1ZTogVE1vZGVsKVxuICAgIHtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvL2VuZHJlZ2lvblxuXG4gICAgLyoqXG4gICAgICogSW5pdGlhbGl6ZXMgdGhpcyBpbnN0YW5jZS5cbiAgICAgKiBAcGFyYW0ge1RNb2RlbH0gbW9kZWxcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihtb2RlbDogVE1vZGVsLCBuYW1lPzogc3RyaW5nKVxuICAgIHtcbiAgICAgICAgc3VwZXIobmFtZSk7XG4gICAgICAgIHRoaXMuX21vZGVsID0gbW9kZWw7XG4gICAgfVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIGluaXQ/KCk6IHZvaWQ7XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgdmlld0luaXQ/KCk6IHZvaWQ7XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgdmlld0NoZWNrZWQ/KCk6IHZvaWQ7XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgY29udGVudEluaXQ/KCk6IHZvaWQ7XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgY29udGVudENoZWNrZWQ/KCk6IHZvaWQ7XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgY2hhbmdlcz8oY2hhbmdlczogdW5rbm93bik6IHZvaWQ7XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkXG4gICAge1xuICAgICAgICB0aGlzLm1vZGVsICYmICh0aGlzLm1vZGVsIGluc3RhbmNlb2YgRGlzcG9zYWJsZVxuICAgICAgICAgICAgfHwgKHRoaXMubW9kZWwgYXMgdW5rbm93biBhcyBJRGlzcG9zYWJsZSkuZGlzcG9zZSlcbiAgICAgICAgJiYgKHRoaXMubW9kZWwgYXMgdW5rbm93biBhcyBJRGlzcG9zYWJsZSkuZGlzcG9zZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBlcXVhbGl0eSBieSBjb21wYXJpbmcgdGhlIG5hbWUgcHJvcGVydHkgb2YgdGhpcyBpbnN0YW5jZS5cbiAgICAgKiBAaW5oZXJpdERvY1xuICAgICAqIEBwYXJhbSB7Vmlld01vZGVsQmFzZTxUTW9kZWw+fSBvdGhlclxuICAgICAqL1xuICAgIHB1YmxpYyBlcXVhbHMob3RoZXI6IFZpZXdNb2RlbEJhc2U8VE1vZGVsPik6IGJvb2xlYW5cbiAgICB7XG4gICAgICAgIHJldHVybiBzdXBlci5lcXVhbHMob3RoZXIpICYmXG4gICAgICAgICAgICB0aGlzLm5hbWUgPT0gb3RoZXIubmFtZTtcbiAgICB9XG59XG4iXX0=