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

93 lines (92 loc) 6.12 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input, Output, ElementRef, EventEmitter } from '@angular/core'; import { TemplateSchemaElement } from '../template-schema-element'; import { ButtonWidgetOptions } from '../../widgets/base/button.widget'; var ButtonComponent = /** @class */ (function (_super) { tslib_1.__extends(ButtonComponent, _super); function ButtonComponent(elementRef) { var _this = _super.call(this) || this; _this.elementRef = elementRef; _this.label = ''; _this.options = new ButtonWidgetOptions(); _this.click = new EventEmitter(); _this.changes = new EventEmitter(); return _this; } /** * @return {?} */ ButtonComponent.prototype.setLabelFromContent = /** * @return {?} */ function () { /** @type {?} */ var textContent = this.getTextContent(this.elementRef); // label as @Input takes priority over content text if (textContent && !this.label) { this.label = textContent; } }; /** * @param {?} changes * @return {?} */ ButtonComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes["label"] || changes["widget"]) { this.changes.emit({ label: this.label, widget: this.widget }); } }; /** * @return {?} */ ButtonComponent.prototype.ngAfterContentInit = /** * @return {?} */ function () { this.setLabelFromContent(); }; ButtonComponent.decorators = [ { type: Component, args: [{ selector: 'sf-button', template: "<ng-content></ng-content>\n" }] } ]; /** @nocollapse */ ButtonComponent.ctorParameters = function () { return [ { type: ElementRef } ]; }; ButtonComponent.propDecorators = { id: [{ type: Input }], label: [{ type: Input }], options: [{ type: Input }], widget: [{ type: Input }], click: [{ type: Output }] }; return ButtonComponent; }(TemplateSchemaElement)); export { ButtonComponent }; if (false) { /** @type {?} */ ButtonComponent.prototype.id; /** @type {?} */ ButtonComponent.prototype.label; /** @type {?} */ ButtonComponent.prototype.options; /** @type {?} */ ButtonComponent.prototype.widget; /** @type {?} */ ButtonComponent.prototype.click; /** @type {?} */ ButtonComponent.prototype.changes; /** @type {?} */ ButtonComponent.prototype.elementRef; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zY2hlbWEtZm9ybXMvIiwic291cmNlcyI6WyJsaWIvdGVtcGxhdGUtc2NoZW1hL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFVBQVUsRUFDVixZQUFZLEVBR2IsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0lBUWxDLDJDQUFxQjtJQW9CeEQseUJBQW9CLFVBQXNCO1FBQTFDLFlBQ0UsaUJBQU8sU0FDUjtRQUZtQixnQkFBVSxHQUFWLFVBQVUsQ0FBWTtzQkFibEMsRUFBRTt3QkFHQSxJQUFJLG1CQUFtQixFQUFFO3NCQU0zQixJQUFJLFlBQVksRUFBTzt3QkFFckIsSUFBSSxZQUFZLEVBQU87O0tBSWhDOzs7O0lBRU8sNkNBQW1COzs7OztRQUN6QixJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzs7UUFHekQsRUFBRSxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7U0FDMUI7Ozs7OztJQUlILHFDQUFXOzs7O0lBQVgsVUFBWSxPQUFzQjtRQUNoQyxFQUFFLENBQUMsQ0FBQyxPQUFPLGFBQVUsT0FBTyxVQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQy9EO0tBQ0Y7Ozs7SUFFRCw0Q0FBa0I7OztJQUFsQjtRQUNFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0tBQzVCOztnQkEvQ0YsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsNkJBQ1g7aUJBQ0E7Ozs7Z0JBZkMsVUFBVTs7O3FCQW1CVCxLQUFLO3dCQUdMLEtBQUs7MEJBR0wsS0FBSzt5QkFHTCxLQUFLO3dCQUdMLE1BQU07OzBCQXBDVDtFQXFCcUMscUJBQXFCO1NBQTdDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBUZW1wbGF0ZVNjaGVtYUVsZW1lbnQgfSBmcm9tICcuLi90ZW1wbGF0ZS1zY2hlbWEtZWxlbWVudCc7XG5pbXBvcnQgeyBCdXR0b25XaWRnZXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9iYXNlL2J1dHRvbi53aWRnZXQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NmLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuYCxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgVGVtcGxhdGVTY2hlbWFFbGVtZW50XG5pbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgQElucHV0KClcbiAgaWQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBsYWJlbCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbnMgPSBuZXcgQnV0dG9uV2lkZ2V0T3B0aW9ucygpO1xuXG4gIEBJbnB1dCgpXG4gIHdpZGdldDogc3RyaW5nIHwgb2JqZWN0O1xuXG4gIEBPdXRwdXQoKVxuICBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMYWJlbEZyb21Db250ZW50KCkge1xuICAgIGNvbnN0IHRleHRDb250ZW50ID0gdGhpcy5nZXRUZXh0Q29udGVudCh0aGlzLmVsZW1lbnRSZWYpO1xuXG4gICAgLy8gbGFiZWwgYXMgQElucHV0IHRha2VzIHByaW9yaXR5IG92ZXIgY29udGVudCB0ZXh0XG4gICAgaWYgKHRleHRDb250ZW50ICYmICF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmxhYmVsID0gdGV4dENvbnRlbnQ7XG4gICAgfVxuXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMubGFiZWwgfHwgY2hhbmdlcy53aWRnZXQpIHtcbiAgICAgIHRoaXMuY2hhbmdlcy5lbWl0KHsgbGFiZWw6IHRoaXMubGFiZWwsIHdpZGdldDogdGhpcy53aWRnZXQgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuc2V0TGFiZWxGcm9tQ29udGVudCgpO1xuICB9XG5cbn1cbiJdfQ==