ngx-config-form
Version:
use configuration to generate form
161 lines • 11.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Input } from '@angular/core';
import { Subscription } from 'rxjs';
import { filter } from 'rxjs/operators';
/**
* @abstract
*/
var BaseInput = /** @class */ (function () {
function BaseInput() {
this.isShowErrorMsg = true;
// private sbObs: Subscription[] = [];
this.sbObs = new Subscription();
this.ObjectUtil = Object;
}
Object.defineProperty(BaseInput.prototype, "cfForm", {
get: /**
* @return {?}
*/
function () {
return this._cfForm;
},
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
this._cfForm = v;
this.cfFormSetting = v.cfFormSetting;
this.cfFormGroup = v.cfFormGroup;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
BaseInput.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.groupElem = this.cfFormGroup.get(this.propName);
this.elem = this.cfFormGroup.get([this.propName, this.cfFormSetting[this.propName].items[0].name]);
this.elemValidators = this.cfFormSetting[this.propName].items[0].validators;
this.setNotify();
};
/**
* @return {?}
*/
BaseInput.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.sbObs.unsubscribe();
};
/**
* @private
* @return {?}
*/
BaseInput.prototype.setNotify = /**
* @private
* @return {?}
*/
function () {
var _this = this;
// set value
this.sbObs.add(this.elem.statusChanges
.pipe(filter((/**
* @param {?} a
* @return {?}
*/
function (a) { return a === 'VALID'; }))).subscribe((/**
* @param {?} a
* @return {?}
*/
function (a) {
_this.cfForm.notifyValueChange(_this.propName, _this.elem.value);
})));
// send error message
this.sbObs.add(this.elem.statusChanges
.subscribe((/**
* @param {?} a
* @return {?}
*/
function (a) {
var e_1, _a;
/** @type {?} */
var isValid = a === 'VALID';
/** @type {?} */
var vKey = _this.propName + "_" + _this.cfFormSetting[_this.propName].items[0].name;
if (!isValid && _this.elem.errors) {
/** @type {?} */
var errorInfo = {};
try {
for (var _b = tslib_1.__values(Object.keys(_this.elem.errors)), _c = _b.next(); !_c.done; _c = _b.next()) {
var key = _c.value;
errorInfo[key] = {
msg: _this.elemValidators[key].msg,
dirty: _this.elem.dirty,
};
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
_this.cfForm.notifyValidatedInfo(vKey, false, errorInfo);
}
if (isValid) {
_this.cfForm.notifyValidatedInfo(vKey, true);
}
})));
};
BaseInput.propDecorators = {
cfForm: [{ type: Input }],
isShowErrorMsg: [{ type: Input }]
};
return BaseInput;
}());
export { BaseInput };
if (false) {
/** @type {?} */
BaseInput.prototype.propName;
/** @type {?} */
BaseInput.prototype._cfForm;
/** @type {?} */
BaseInput.prototype.isShowErrorMsg;
/** @type {?} */
BaseInput.prototype.cfFormSetting;
/** @type {?} */
BaseInput.prototype.cfFormGroup;
/**
* @type {?}
* @protected
*/
BaseInput.prototype.groupElem;
/**
* @type {?}
* @protected
*/
BaseInput.prototype.elem;
/**
* @type {?}
* @protected
*/
BaseInput.prototype.elemValidators;
/**
* @type {?}
* @private
*/
BaseInput.prototype.sbObs;
/** @type {?} */
BaseInput.prototype.ObjectUtil;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUlucHV0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNvbmZpZy1mb3JtLyIsInNvdXJjZXMiOlsibGliL2NvbW1vbi9iYXNlSW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU94QztJQTRCRTtRQWRTLG1CQUFjLEdBQUcsSUFBSSxDQUFDOztRQVV2QixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxlQUFVLEdBQUcsTUFBTSxDQUFDO0lBRUosQ0FBQztJQXZCakIsc0JBQ0ksNkJBQU07Ozs7UUFLVjtZQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN0QixDQUFDOzs7OztRQVJELFVBQ1csQ0FBUTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ25DLENBQUM7OztPQUFBOzs7O0lBb0JELDRCQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUU1RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7OztJQUVELCtCQUFXOzs7SUFBWDtRQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Ozs7SUFFTyw2QkFBUzs7OztJQUFqQjtRQUFBLGlCQThCQztRQTdCQyxZQUFZO1FBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO2FBQ25DLElBQUksQ0FDSCxNQUFNOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLEtBQUssT0FBTyxFQUFiLENBQWEsRUFBQyxDQUMzQixDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLENBQUM7WUFDWCxLQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBRU4scUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTthQUNuQyxTQUFTOzs7O1FBQUMsVUFBQSxDQUFDOzs7Z0JBQ0osT0FBTyxHQUFHLENBQUMsS0FBSyxPQUFPOztnQkFDdkIsSUFBSSxHQUFNLEtBQUksQ0FBQyxRQUFRLFNBQUksS0FBSSxDQUFDLGFBQWEsQ0FBQyxLQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQU07WUFFbEYsSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTs7b0JBQzFCLFNBQVMsR0FBZSxFQUFFOztvQkFDaEMsS0FBa0IsSUFBQSxLQUFBLGlCQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTt3QkFBNUMsSUFBTSxHQUFHLFdBQUE7d0JBQ1osU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHOzRCQUNmLEdBQUcsRUFBRSxLQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUc7NEJBQ2pDLEtBQUssRUFBRSxLQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7eUJBQ3ZCLENBQUM7cUJBQ0g7Ozs7Ozs7OztnQkFDRCxLQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDekQ7WUFFRCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxLQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUM3QztRQUNILENBQUMsRUFBQyxDQUFDLENBQUM7SUFDUixDQUFDOzt5QkFuRUEsS0FBSztpQ0FTTCxLQUFLOztJQTJEUixnQkFBQztDQUFBLEFBekVELElBeUVDO1NBekVxQixTQUFTOzs7SUFFN0IsNkJBQTBCOztJQUUxQiw0QkFBZTs7SUFVZixtQ0FBK0I7O0lBRS9CLGtDQUE0Qjs7SUFDNUIsZ0NBQXVCOzs7OztJQUV2Qiw4QkFBcUM7Ozs7O0lBQ3JDLHlCQUFnQzs7Ozs7SUFDaEMsbUNBQWlEOzs7OztJQUdqRCwwQkFBbUM7O0lBRW5DLCtCQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElFcnJvckluZm8gfSBmcm9tICcuL0lFcnJvckluZm8nO1xuaW1wb3J0IHsgSUZvcm0gfSBmcm9tICcuL0lGb3JtJztcbmltcG9ydCB7IElGb3JtU2V0dGluZyB9IGZyb20gJy4vSUZvcm1TZXR0aW5nJztcbmltcG9ydCB7IElJbnB1dCB9IGZyb20gJy4vSUlucHV0JztcbmltcG9ydCB7IElJbnB1dFZhbGlkYXRvclNldHRpbmcgfSBmcm9tICcuL0lJbnB1dFZhbGlkYXRvclNldHRpbmcnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUlucHV0IGltcGxlbWVudHMgSUlucHV0LCBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgYWJzdHJhY3QgcHJvcE5hbWU6IHN0cmluZztcblxuICBfY2ZGb3JtOiBJRm9ybTtcbiAgQElucHV0KClcbiAgc2V0IGNmRm9ybSh2OiBJRm9ybSkge1xuICAgIHRoaXMuX2NmRm9ybSA9IHY7XG4gICAgdGhpcy5jZkZvcm1TZXR0aW5nID0gdi5jZkZvcm1TZXR0aW5nO1xuICAgIHRoaXMuY2ZGb3JtR3JvdXAgPSB2LmNmRm9ybUdyb3VwO1xuICB9XG4gIGdldCBjZkZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NmRm9ybTtcbiAgfVxuICBASW5wdXQoKSBpc1Nob3dFcnJvck1zZyA9IHRydWU7XG5cbiAgY2ZGb3JtU2V0dGluZzogSUZvcm1TZXR0aW5nO1xuICBjZkZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHByb3RlY3RlZCBncm91cEVsZW06IEFic3RyYWN0Q29udHJvbDtcbiAgcHJvdGVjdGVkIGVsZW06IEFic3RyYWN0Q29udHJvbDtcbiAgcHJvdGVjdGVkIGVsZW1WYWxpZGF0b3JzOiBJSW5wdXRWYWxpZGF0b3JTZXR0aW5nO1xuXG4gIC8vIHByaXZhdGUgc2JPYnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgc2JPYnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgT2JqZWN0VXRpbCA9IE9iamVjdDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ3JvdXBFbGVtID0gdGhpcy5jZkZvcm1Hcm91cC5nZXQodGhpcy5wcm9wTmFtZSk7XG4gICAgdGhpcy5lbGVtID0gdGhpcy5jZkZvcm1Hcm91cC5nZXQoW3RoaXMucHJvcE5hbWUsIHRoaXMuY2ZGb3JtU2V0dGluZ1t0aGlzLnByb3BOYW1lXS5pdGVtc1swXS5uYW1lXSk7XG4gICAgdGhpcy5lbGVtVmFsaWRhdG9ycyA9IHRoaXMuY2ZGb3JtU2V0dGluZ1t0aGlzLnByb3BOYW1lXS5pdGVtc1swXS52YWxpZGF0b3JzO1xuXG4gICAgdGhpcy5zZXROb3RpZnkoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2JPYnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Tm90aWZ5KCk6IGFueSB7XG4gICAgLy8gc2V0IHZhbHVlXG4gICAgdGhpcy5zYk9icy5hZGQodGhpcy5lbGVtLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoYSA9PiBhID09PSAnVkFMSUQnKSxcbiAgICAgICkuc3Vic2NyaWJlKGEgPT4ge1xuICAgICAgICB0aGlzLmNmRm9ybS5ub3RpZnlWYWx1ZUNoYW5nZSh0aGlzLnByb3BOYW1lLCB0aGlzLmVsZW0udmFsdWUpO1xuICAgICAgfSkpO1xuXG4gICAgLy8gc2VuZCBlcnJvciBtZXNzYWdlXG4gICAgdGhpcy5zYk9icy5hZGQodGhpcy5lbGVtLnN0YXR1c0NoYW5nZXNcbiAgICAgIC5zdWJzY3JpYmUoYSA9PiB7XG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSBhID09PSAnVkFMSUQnO1xuICAgICAgICBjb25zdCB2S2V5ID0gYCR7dGhpcy5wcm9wTmFtZX1fJHt0aGlzLmNmRm9ybVNldHRpbmdbdGhpcy5wcm9wTmFtZV0uaXRlbXNbMF0ubmFtZX1gO1xuXG4gICAgICAgIGlmICghaXNWYWxpZCAmJiB0aGlzLmVsZW0uZXJyb3JzKSB7XG4gICAgICAgICAgY29uc3QgZXJyb3JJbmZvOiBJRXJyb3JJbmZvID0ge307XG4gICAgICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5lbGVtLmVycm9ycykpIHtcbiAgICAgICAgICAgIGVycm9ySW5mb1trZXldID0ge1xuICAgICAgICAgICAgICBtc2c6IHRoaXMuZWxlbVZhbGlkYXRvcnNba2V5XS5tc2csXG4gICAgICAgICAgICAgIGRpcnR5OiB0aGlzLmVsZW0uZGlydHksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmNmRm9ybS5ub3RpZnlWYWxpZGF0ZWRJbmZvKHZLZXksIGZhbHNlLCBlcnJvckluZm8pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgICB0aGlzLmNmRm9ybS5ub3RpZnlWYWxpZGF0ZWRJbmZvKHZLZXksIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9KSk7XG4gIH1cbn1cbiJdfQ==