UNPKG

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
/** * @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=