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

82 lines (81 loc) 5.54 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Component, Input, Output, ElementRef, EventEmitter } from '@angular/core'; import { TemplateSchemaElement } from '../template-schema-element'; import { ButtonWidgetOptions } from '../../widgets/base/button.widget'; export class ButtonComponent extends TemplateSchemaElement { /** * @param {?} elementRef */ constructor(elementRef) { super(); this.elementRef = elementRef; this.label = ''; this.options = new ButtonWidgetOptions(); this.click = new EventEmitter(); this.changes = new EventEmitter(); } /** * @return {?} */ setLabelFromContent() { /** @type {?} */ const textContent = this.getTextContent(this.elementRef); // label as @Input takes priority over content text if (textContent && !this.label) { this.label = textContent; } } /** * @param {?} changes * @return {?} */ ngOnChanges(changes) { if (changes["label"] || changes["widget"]) { this.changes.emit({ label: this.label, widget: this.widget }); } } /** * @return {?} */ ngAfterContentInit() { this.setLabelFromContent(); } } ButtonComponent.decorators = [ { type: Component, args: [{ selector: 'sf-button', template: `<ng-content></ng-content> ` }] } ]; /** @nocollapse */ ButtonComponent.ctorParameters = () => [ { type: ElementRef } ]; ButtonComponent.propDecorators = { id: [{ type: Input }], label: [{ type: Input }], options: [{ type: Input }], widget: [{ type: Input }], click: [{ type: Output }] }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1zY2hlbWEtZm9ybXMvIiwic291cmNlcyI6WyJsaWIvdGVtcGxhdGUtc2NoZW1hL2J1dHRvbi9idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFlBQVksRUFHYixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQVF2RSxNQUFNLHNCQUF1QixTQUFRLHFCQUFxQjs7OztJQW9CeEQsWUFBb0IsVUFBc0I7UUFDeEMsS0FBSyxFQUFFLENBQUM7UUFEVSxlQUFVLEdBQVYsVUFBVSxDQUFZO3FCQWJsQyxFQUFFO3VCQUdBLElBQUksbUJBQW1CLEVBQUU7cUJBTTNCLElBQUksWUFBWSxFQUFPO3VCQUVyQixJQUFJLFlBQVksRUFBTztLQUloQzs7OztJQUVPLG1CQUFtQjs7UUFDekIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7O1FBR3pELEVBQUUsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO1NBQzFCOzs7Ozs7SUFJSCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsRUFBRSxDQUFDLENBQUMsT0FBTyxhQUFVLE9BQU8sVUFBTyxDQUFDLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUMvRDtLQUNGOzs7O0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0tBQzVCOzs7WUEvQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUU7Q0FDWDthQUNBOzs7O1lBZkMsVUFBVTs7O2lCQW1CVCxLQUFLO29CQUdMLEtBQUs7c0JBR0wsS0FBSztxQkFHTCxLQUFLO29CQUdMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBUZW1wbGF0ZVNjaGVtYUVsZW1lbnQgfSBmcm9tICcuLi90ZW1wbGF0ZS1zY2hlbWEtZWxlbWVudCc7XG5pbXBvcnQgeyBCdXR0b25XaWRnZXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9iYXNlL2J1dHRvbi53aWRnZXQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NmLWJ1dHRvbicsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuYCxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgVGVtcGxhdGVTY2hlbWFFbGVtZW50XG5pbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgQElucHV0KClcbiAgaWQ6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBsYWJlbCA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbnMgPSBuZXcgQnV0dG9uV2lkZ2V0T3B0aW9ucygpO1xuXG4gIEBJbnB1dCgpXG4gIHdpZGdldDogc3RyaW5nIHwgb2JqZWN0O1xuXG4gIEBPdXRwdXQoKVxuICBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGNoYW5nZXMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMYWJlbEZyb21Db250ZW50KCkge1xuICAgIGNvbnN0IHRleHRDb250ZW50ID0gdGhpcy5nZXRUZXh0Q29udGVudCh0aGlzLmVsZW1lbnRSZWYpO1xuXG4gICAgLy8gbGFiZWwgYXMgQElucHV0IHRha2VzIHByaW9yaXR5IG92ZXIgY29udGVudCB0ZXh0XG4gICAgaWYgKHRleHRDb250ZW50ICYmICF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmxhYmVsID0gdGV4dENvbnRlbnQ7XG4gICAgfVxuXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXMubGFiZWwgfHwgY2hhbmdlcy53aWRnZXQpIHtcbiAgICAgIHRoaXMuY2hhbmdlcy5lbWl0KHsgbGFiZWw6IHRoaXMubGFiZWwsIHdpZGdldDogdGhpcy53aWRnZXQgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuc2V0TGFiZWxGcm9tQ29udGVudCgpO1xuICB9XG5cbn1cbiJdfQ==