ngx-schema-forms
Version:
New features: - Ajv schema validator. - Angular forms compatible: Property tree is created using FormGroup, FormArray and FormControl classes. - Array now properly loads initial data from model. - WidgetTyep: WidgetRegistry now supports WidgetType, now wo
50 lines (49 loc) • 3.68 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { PropertyWidget } from './widget';
// unsupported: template constraints.
/**
* @abstract
* @template T
*/
export class CheckboxWidget extends PropertyWidget {
constructor() {
super(...arguments);
this.checked = {};
}
/**
* @return {?}
*/
ngOnInit() {
if (this.schema["type"] === 'array') {
this.formProperty.valueChanges.subscribe((values) => {
values.forEach((value) => {
if (!this.checked[value]) {
this.checked[value] = true;
}
});
});
}
}
/**
* @param {?} checked
* @param {?} value
* @return {?}
*/
check(checked, value) {
if (checked) {
this.checked[value] = true;
}
else {
delete this.checked[value];
}
this.formProperty.patchValue(Object.keys(this.checked).filter((key) => this.checked[key]));
}
}
if (false) {
/** @type {?} */
CheckboxWidget.prototype.checked;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNjaGVtYS1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi93aWRnZXRzL2Jhc2UvY2hlY2tib3gud2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sVUFBVSxDQUFDOzs7Ozs7QUFFbEQsTUFBTSxxQkFDTixTQUFRLGNBQWlCOzs7dUJBRWUsRUFBRTs7Ozs7SUFFeEMsUUFBUTtRQUNOLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLGFBQVUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFhLEVBQUUsRUFBRTtnQkFFekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUM1QixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztxQkFDNUI7aUJBQ0YsQ0FBQyxDQUFDO2FBRUosQ0FBQyxDQUFDO1NBQ0o7S0FDRjs7Ozs7O0lBRUQsS0FBSyxDQUFDLE9BQWdCLEVBQUUsS0FBVTtRQUNoQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDNUI7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDN0QsQ0FBQztLQUNIO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJvcGVydHlXaWRnZXQsIFdpZGdldCB9IGZyb20gJy4vd2lkZ2V0JztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENoZWNrYm94V2lkZ2V0PFQgZXh0ZW5kcyBXaWRnZXQgPSBXaWRnZXQ+XG5leHRlbmRzIFByb3BlcnR5V2lkZ2V0PFQ+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjaGVja2VkOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnNjaGVtYS50eXBlID09PSAnYXJyYXknKSB7XG4gICAgICB0aGlzLmZvcm1Qcm9wZXJ0eS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZXM6IGFueVtdKSA9PiB7XG5cbiAgICAgICAgdmFsdWVzLmZvckVhY2goKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tlZFt2YWx1ZV0pIHtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZFt2YWx1ZV0gPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrKGNoZWNrZWQ6IGJvb2xlYW4sIHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgdGhpcy5jaGVja2VkW3ZhbHVlXSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmNoZWNrZWRbdmFsdWVdO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybVByb3BlcnR5LnBhdGNoVmFsdWUoXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmNoZWNrZWQpLmZpbHRlcigoa2V5KSA9PiB0aGlzLmNoZWNrZWRba2V5XSlcbiAgICApO1xuICB9XG59XG4iXX0=