@awesome-nodes/mvvm
Version:
Application development framework using the *model* *view* *view-model* design pattern.
42 lines (31 loc) • 4.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ViewModelBase = void 0;
var _object = require("@awesome-nodes/object");
var _model = require("../model");
class ViewModelBase extends _object.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 _model.Disposable || this.model.dispose) && this.model.dispose();
}
equals(other) {
return super.equals(other) && this.name == other.name;
}
}
exports.ViewModelBase = ViewModelBase;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tdnZtL3ZpZXctbW9kZWwvVmlld01vZGVsQmFzZS50cyJdLCJuYW1lcyI6WyJWaWV3TW9kZWxCYXNlIiwiT2JqZWN0QmFzZSIsIm5hbWUiLCJ0b1N0cmluZyIsIm1vZGVsIiwiX21vZGVsIiwidmFsdWUiLCJjb25zdHJ1Y3RvciIsImRlc3Ryb3kiLCJEaXNwb3NhYmxlIiwiZGlzcG9zZSIsImVxdWFscyIsIm90aGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBUU8sTUFBZUEsYUFBZixTQUFpRUMsa0JBQWpFLENBQ1A7QUFLbUIsTUFBSkMsSUFBSSxHQUNmO0FBQ0ksV0FBTyxLQUFLQyxRQUFMLEVBQVA7QUFDSDs7QUFLZSxNQUFMQyxLQUFLLEdBQ2hCO0FBQ0ksV0FBTyxLQUFLQyxNQUFaO0FBQ0g7O0FBS2UsTUFBTEQsS0FBSyxDQUFDRSxLQUFELEVBQ2hCO0FBQ0ksU0FBS0QsTUFBTCxHQUFjQyxLQUFkO0FBQ0g7O0FBU1NDLEVBQUFBLFdBQVcsQ0FBQ0gsS0FBRCxFQUFnQkYsSUFBaEIsRUFDckI7QUFDSSxVQUFNQSxJQUFOO0FBREosU0FqQ1FHLE1BaUNSO0FBRUksU0FBS0EsTUFBTCxHQUFjRCxLQUFkO0FBQ0g7O0FBcUJNSSxFQUFBQSxPQUFPLEdBQ2Q7QUFDSSxTQUFLSixLQUFMLEtBQWUsS0FBS0EsS0FBTCxZQUFzQkssaUJBQXRCLElBQ1AsS0FBS0wsS0FBTixDQUF1Q00sT0FEOUMsS0FFSSxLQUFLTixLQUFOLENBQXVDTSxPQUF2QyxFQUZIO0FBR0g7O0FBT01DLEVBQUFBLE1BQU0sQ0FBQ0MsS0FBRCxFQUNiO0FBQ0ksV0FBTyxNQUFNRCxNQUFOLENBQWFDLEtBQWIsS0FDSCxLQUFLVixJQUFMLElBQWFVLEtBQUssQ0FBQ1YsSUFEdkI7QUFFSDs7QUExRUwiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYmplY3RCYXNlIH0gZnJvbSAnQGF3ZXNvbWUtbm9kZXMvb2JqZWN0JztcbmltcG9ydCB7IERpc3Bvc2FibGUsIElEaXNwb3NhYmxlLCBPYmplY3RNb2RlbCB9IGZyb20gJ212dm0vbW9kZWwnO1xuaW1wb3J0IHsgSVZpZXdNb2RlbCB9IGZyb20gJ212dm0vdmlldy1tb2RlbCc7XG5cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBiYXNlIGZvciBhbGwgdmlldyBtb2RlbHMgaW4gdGhlIG1vZGVsLXZpZXctdmlldy1tb2RlbCBwYXR0ZXJuLlxuICogQHRlbXBsYXRlIFRNb2RlbFxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmlld01vZGVsQmFzZTxUTW9kZWwgZXh0ZW5kcyBPYmplY3RNb2RlbD4gZXh0ZW5kcyBPYmplY3RCYXNlIGltcGxlbWVudHMgSVZpZXdNb2RlbDxUTW9kZWw+XG57XG4gICAgcHJpdmF0ZSBfbW9kZWw6IFRNb2RlbDtcblxuICAgIC8vcmVnaW9uIFB1YmxpYyBQZXJwZXJ0aWVzXG5cbiAgICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nXG4gICAge1xuICAgICAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIG1vZGVsIGluc3RhbmNlIHdoaWNoIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHZpZXctbW9kZWwgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIGdldCBtb2RlbCgpOiBUTW9kZWxcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBtb2RlbCBpbnN0YW5jZSB3aGljaCBpcyBhc3NvY2lhdGVkIHdpdGggdGhpcyB2aWV3LW1vZGVsIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgbW9kZWwodmFsdWU6IFRNb2RlbClcbiAgICB7XG4gICAgICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLy9lbmRyZWdpb25cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemVzIHRoaXMgaW5zdGFuY2UuXG4gICAgICogQHBhcmFtIHtUTW9kZWx9IG1vZGVsXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IobW9kZWw6IFRNb2RlbCwgbmFtZT86IHN0cmluZylcbiAgICB7XG4gICAgICAgIHN1cGVyKG5hbWUpO1xuICAgICAgICB0aGlzLl9tb2RlbCA9IG1vZGVsO1xuICAgIH1cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBpbml0PygpOiB2b2lkO1xuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIHZpZXdJbml0PygpOiB2b2lkO1xuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIHZpZXdDaGVja2VkPygpOiB2b2lkO1xuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIGNvbnRlbnRJbml0PygpOiB2b2lkO1xuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIGNvbnRlbnRDaGVja2VkPygpOiB2b2lkO1xuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIGNoYW5nZXM/KGNoYW5nZXM6IHVua25vd24pOiB2b2lkO1xuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIGRlc3Ryb3koKTogdm9pZFxuICAgIHtcbiAgICAgICAgdGhpcy5tb2RlbCAmJiAodGhpcy5tb2RlbCBpbnN0YW5jZW9mIERpc3Bvc2FibGVcbiAgICAgICAgICAgIHx8ICh0aGlzLm1vZGVsIGFzIHVua25vd24gYXMgSURpc3Bvc2FibGUpLmRpc3Bvc2UpXG4gICAgICAgICYmICh0aGlzLm1vZGVsIGFzIHVua25vd24gYXMgSURpc3Bvc2FibGUpLmRpc3Bvc2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgZXF1YWxpdHkgYnkgY29tcGFyaW5nIHRoZSBuYW1lIHByb3BlcnR5IG9mIHRoaXMgaW5zdGFuY2UuXG4gICAgICogQGluaGVyaXREb2NcbiAgICAgKiBAcGFyYW0ge1ZpZXdNb2RlbEJhc2U8VE1vZGVsPn0gb3RoZXJcbiAgICAgKi9cbiAgICBwdWJsaWMgZXF1YWxzKG90aGVyOiBWaWV3TW9kZWxCYXNlPFRNb2RlbD4pOiBib29sZWFuXG4gICAge1xuICAgICAgICByZXR1cm4gc3VwZXIuZXF1YWxzKG90aGVyKSAmJlxuICAgICAgICAgICAgdGhpcy5uYW1lID09IG90aGVyLm5hbWU7XG4gICAgfVxufVxuIl19