ngx-config-form
Version:
use configuration to generate form
131 lines • 10.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, Input } from '@angular/core';
import { BaseInput } from '../../../common/baseInput';
var CheckboxComponent = /** @class */ (function (_super) {
tslib_1.__extends(CheckboxComponent, _super);
function CheckboxComponent() {
var _this = _super.call(this) || this;
_this.isMultiple = true;
_this.result = [];
return _this;
}
/**
* @return {?}
*/
CheckboxComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _this = this;
return tslib_1.__generator(this, function (_a) {
_super.prototype.ngOnInit.call(this);
this.cfForm.onReady().subscribe((/**
* @return {?}
*/
function () {
_this.setData();
}));
return [2 /*return*/];
});
});
};
/**
* @return {?}
*/
CheckboxComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
_super.prototype.ngOnDestroy.call(this);
};
/**
* @private
* @return {?}
*/
CheckboxComponent.prototype.setData = /**
* @private
* @return {?}
*/
function () {
if (this.elem.value) {
this.result = this.elem.value.toString().split(',');
}
this.defaultValue = this.cfFormSetting[this.propName].items[0].value;
};
/**
* @param {?} event
* @param {?} cb
* @param {?} value
* @return {?}
*/
CheckboxComponent.prototype.chagne = /**
* @param {?} event
* @param {?} cb
* @param {?} value
* @return {?}
*/
function (event, cb, value) {
event.preventDefault();
event.stopPropagation();
/** @type {?} */
var index = this.result.indexOf(value);
if (cb.checked && index === -1) {
this.result.push(value);
}
if (!cb.checked && index !== -1) {
this.result.splice(index, 1);
}
if (!this.isMultiple && cb.checked) {
this.result = [];
this.result.push(value);
}
if (this.result.length === 0) {
this.result = this.defaultValue.split(',');
}
/** @type {?} */
var v = this.result.filter((/**
* @param {?} a
* @return {?}
*/
function (a) { return a; })).join(',');
this.elem.setValue(v);
this.elem.markAsDirty();
};
CheckboxComponent.decorators = [
{ type: Component, args: [{
selector: 'cf-inputs-checkbox',
template: "<ng-container [formGroup]=\"cfFormGroup\">\n <ng-container [formGroupName]=\"propName\">\n <ng-container *ngFor=\"let item of cfFormSetting[propName].items\">\n <ng-container *ngIf=\"{ \n elem: cfFormGroup.get([propName, item.name]) \n }; let info\">\n <label [for]=\"item.name\" *ngIf=\"item.args['alias']\">{{item.args['alias']}}</label>\n <div class=\"d-block cbList\">\n <div class=\"form-check form-check-inline\" *ngFor=\"let c of item.args['options'];let i=index\">\n <label class=\"form-check-label\">\n <input type=\"checkbox\"\n class=\"form-check-input\" \n name=\"{{item.name}}-{{i}}\"\n #cb\n [checked]=\"info.elem.value && info.elem.value.indexOf(c.value)!==-1\"\n (change)=\"chagne($event, cb, c.value)\">\n {{c.text}}\n </label>\n </div>\n </div>\n <input type=\"hidden\" [formControlName]=\"item.name\"/>\n\n <small class=\"form-text text-muted\" *ngIf=\"item.args['murmur']\">\n {{item.args['murmur']}}\n </small>\n \n <ng-container *ngIf=\"isShowErrorMsg && info.elem.dirty && info.elem.errors\">\n <small class=\"form-text text-danger\" *ngFor=\"let vName of ObjectUtil.keys(info.elem.errors)\">\n {{item.validators[vName].msg}}\n </small>\n </ng-container>\n\n <!-- <hr />\n item.args.options : {{item.args.options | json}} <br />\n info.elem.dirty : {{ info.elem.dirty | json }} <br />\n info.elem.errors: {{ info.elem.errors | json }} <br />\n info.elem.value: {{ info.elem.value | json }}\n <hr /> -->\n\n </ng-container>\n </ng-container> \n </ng-container>\n</ng-container>\n",
styles: [".cbList{margin-bottom:-.5rem}"]
}] }
];
/** @nocollapse */
CheckboxComponent.ctorParameters = function () { return []; };
CheckboxComponent.propDecorators = {
propName: [{ type: Input }],
isMultiple: [{ type: Input }]
};
return CheckboxComponent;
}(BaseInput));
export { CheckboxComponent };
if (false) {
/** @type {?} */
CheckboxComponent.prototype.propName;
/** @type {?} */
CheckboxComponent.prototype.isMultiple;
/**
* @type {?}
* @private
*/
CheckboxComponent.prototype.defaultValue;
/**
* @type {?}
* @private
*/
CheckboxComponent.prototype.result;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWNvbmZpZy1mb3JtLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5wdXRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdEQ7SUFLdUMsNkNBQVM7SUFROUM7UUFBQSxZQUNFLGlCQUFPLFNBQ1I7UUFQUSxnQkFBVSxHQUFHLElBQUksQ0FBQztRQUduQixZQUFNLEdBQWEsRUFBRSxDQUFDOztJQUk5QixDQUFDOzs7O0lBRUssb0NBQVE7OztJQUFkOzs7O2dCQUNFLGlCQUFNLFFBQVEsV0FBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVM7OztnQkFBQztvQkFDOUIsS0FBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNqQixDQUFDLEVBQUMsQ0FBQzs7OztLQUNKOzs7O0lBRUQsdUNBQVc7OztJQUFYO1FBQ0UsaUJBQU0sV0FBVyxXQUFFLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFFTyxtQ0FBTzs7OztJQUFmO1FBQ0UsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNyRDtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2RSxDQUFDOzs7Ozs7O0lBRUQsa0NBQU07Ozs7OztJQUFOLFVBQU8sS0FBWSxFQUFFLEVBQUUsRUFBRSxLQUFLO1FBQzVCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7O1lBRWxCLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDeEMsSUFBSSxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUM1Qzs7WUFDSyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLEVBQUQsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFCLENBQUM7O2dCQXhERixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsc3lEQUF3Qzs7aUJBRXpDOzs7OzsyQkFHRSxLQUFLOzZCQUNMLEtBQUs7O0lBa0RSLHdCQUFDO0NBQUEsQUExREQsQ0FLdUMsU0FBUyxHQXFEL0M7U0FyRFksaUJBQWlCOzs7SUFFNUIscUNBQTBCOztJQUMxQix1Q0FBMkI7Ozs7O0lBRTNCLHlDQUE2Qjs7Ozs7SUFDN0IsbUNBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9iYXNlSW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1pbnB1dHMtY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHByb3BOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzTXVsdGlwbGUgPSB0cnVlO1xuXG4gIHByaXZhdGUgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuY2ZGb3JtLm9uUmVhZHkoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXREYXRhKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREYXRhKCkge1xuICAgIGlmICh0aGlzLmVsZW0udmFsdWUpIHtcbiAgICAgIHRoaXMucmVzdWx0ID0gdGhpcy5lbGVtLnZhbHVlLnRvU3RyaW5nKCkuc3BsaXQoJywnKTtcbiAgICB9XG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLmNmRm9ybVNldHRpbmdbdGhpcy5wcm9wTmFtZV0uaXRlbXNbMF0udmFsdWU7XG4gIH1cblxuICBjaGFnbmUoZXZlbnQ6IEV2ZW50LCBjYiwgdmFsdWUpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnJlc3VsdC5pbmRleE9mKHZhbHVlKTtcbiAgICBpZiAoY2IuY2hlY2tlZCAmJiBpbmRleCA9PT0gLTEpIHtcbiAgICAgIHRoaXMucmVzdWx0LnB1c2godmFsdWUpO1xuICAgIH1cbiAgICBpZiAoIWNiLmNoZWNrZWQgJiYgaW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLnJlc3VsdC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNNdWx0aXBsZSAmJiBjYi5jaGVja2VkKSB7XG4gICAgICB0aGlzLnJlc3VsdCA9IFtdO1xuICAgICAgdGhpcy5yZXN1bHQucHVzaCh2YWx1ZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlc3VsdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucmVzdWx0ID0gdGhpcy5kZWZhdWx0VmFsdWUuc3BsaXQoJywnKTtcbiAgICB9XG4gICAgY29uc3QgdiA9IHRoaXMucmVzdWx0LmZpbHRlcihhID0+IGEpLmpvaW4oJywnKTtcbiAgICB0aGlzLmVsZW0uc2V0VmFsdWUodik7XG4gICAgdGhpcy5lbGVtLm1hcmtBc0RpcnR5KCk7XG4gIH1cblxufVxuIl19