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