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
76 lines (75 loc) • 4.44 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { PropertyWidget } from './widget';
// unsupported: template constraints.
/**
* @abstract
* @template T
*/
var
// unsupported: template constraints.
/**
* @abstract
* @template T
*/
CheckboxWidget = /** @class */ (function (_super) {
tslib_1.__extends(CheckboxWidget, _super);
function CheckboxWidget() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.checked = {};
return _this;
}
/**
* @return {?}
*/
CheckboxWidget.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (this.schema["type"] === 'array') {
this.formProperty.valueChanges.subscribe(function (values) {
values.forEach(function (value) {
if (!_this.checked[value]) {
_this.checked[value] = true;
}
});
});
}
};
/**
* @param {?} checked
* @param {?} value
* @return {?}
*/
CheckboxWidget.prototype.check = /**
* @param {?} checked
* @param {?} value
* @return {?}
*/
function (checked, value) {
var _this = this;
if (checked) {
this.checked[value] = true;
}
else {
delete this.checked[value];
}
this.formProperty.patchValue(Object.keys(this.checked).filter(function (key) { return _this.checked[key]; }));
};
return CheckboxWidget;
}(PropertyWidget));
// unsupported: template constraints.
/**
* @abstract
* @template T
*/
export { CheckboxWidget };
if (false) {
/** @type {?} */
CheckboxWidget.prototype.checked;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gud2lkZ2V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LXNjaGVtYS1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi93aWRnZXRzL2Jhc2UvY2hlY2tib3gud2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLGNBQWMsRUFBVSxNQUFNLFVBQVUsQ0FBQzs7Ozs7O0FBRWxEOzs7Ozs7QUFBQTtJQUNRLDBDQUFpQjs7O3dCQUVlLEVBQUU7Ozs7OztJQUV4QyxpQ0FBUTs7O0lBQVI7UUFBQSxpQkFZQztRQVhDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLGFBQVUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBQyxNQUFhO2dCQUVyRCxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBVTtvQkFDeEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDekIsS0FBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUM7cUJBQzVCO2lCQUNGLENBQUMsQ0FBQzthQUVKLENBQUMsQ0FBQztTQUNKO0tBQ0Y7Ozs7OztJQUVELDhCQUFLOzs7OztJQUFMLFVBQU0sT0FBZ0IsRUFBRSxLQUFVO1FBQWxDLGlCQVVDO1FBVEMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzVCO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQUMsR0FBRyxJQUFLLE9BQUEsS0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBakIsQ0FBaUIsQ0FBQyxDQUM3RCxDQUFDO0tBQ0g7eUJBakNIO0VBS1EsY0FBYyxFQTZCckIsQ0FBQTs7Ozs7O0FBOUJELDBCQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm9wZXJ0eVdpZGdldCwgV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXQnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2hlY2tib3hXaWRnZXQ8VCBleHRlbmRzIFdpZGdldCA9IFdpZGdldD5cbmV4dGVuZHMgUHJvcGVydHlXaWRnZXQ8VD4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNoZWNrZWQ6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2NoZW1hLnR5cGUgPT09ICdhcnJheScpIHtcbiAgICAgIHRoaXMuZm9ybVByb3BlcnR5LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlczogYW55W10pID0+IHtcblxuICAgICAgICB2YWx1ZXMuZm9yRWFjaCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgIGlmICghdGhpcy5jaGVja2VkW3ZhbHVlXSkge1xuICAgICAgICAgICAgdGhpcy5jaGVja2VkW3ZhbHVlXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2soY2hlY2tlZDogYm9vbGVhbiwgdmFsdWU6IGFueSkge1xuICAgIGlmIChjaGVja2VkKSB7XG4gICAgICB0aGlzLmNoZWNrZWRbdmFsdWVdID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIHRoaXMuY2hlY2tlZFt2YWx1ZV07XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtUHJvcGVydHkucGF0Y2hWYWx1ZShcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuY2hlY2tlZCkuZmlsdGVyKChrZXkpID0+IHRoaXMuY2hlY2tlZFtrZXldKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==