UNPKG

@formql/core

Version:

FormQL - A framework for building dynamic forms

83 lines 9.26 kB
import { __decorate, __metadata } from "tslib"; import { Component, Input, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormControl } from '@angular/forms'; import { ActionHandlerService } from '../services/action-handler.service'; import { FormActionType } from '../models/action.model'; var FormQLButtonComponent = /** @class */ (function () { function FormQLButtonComponent(actionHandlerService) { this.actionHandlerService = actionHandlerService; this._propagateChange = function (_) { }; } FormQLButtonComponent_1 = FormQLButtonComponent; Object.defineProperty(FormQLButtonComponent.prototype, "value", { get: function () { return this._value; }, set: function (value) { this._value = value; this._propagateChange(this._value); }, enumerable: true, configurable: true }); FormQLButtonComponent.prototype.writeValue = function (value) { if (value) this._value = value; }; FormQLButtonComponent.prototype.registerOnChange = function (fn) { this._propagateChange = fn; }; FormQLButtonComponent.prototype.registerOnTouched = function (fn) { }; FormQLButtonComponent.prototype.onClick = function () { if (this.field.action) this.actionHandlerService.send(this.field.action); }; var FormQLButtonComponent_1; FormQLButtonComponent.componentName = 'FormQLButtonComponent'; FormQLButtonComponent.formQLComponent = true; FormQLButtonComponent.validators = []; FormQLButtonComponent.actions = [ { key: FormActionType.Save }, { key: FormActionType.Validate }, { key: FormActionType.ValidateAndSave }, { key: FormActionType.Custom } ]; __decorate([ Input(), __metadata("design:type", Object) ], FormQLButtonComponent.prototype, "field", void 0); __decorate([ Input(), __metadata("design:type", FormControl) ], FormQLButtonComponent.prototype, "formControl", void 0); FormQLButtonComponent = FormQLButtonComponent_1 = __decorate([ Component({ selector: 'formql-button', template: "<button style=\"cursor: pointer\" (click)=\"onClick()\"\n [type]=\"field.type\"\n [disabled]=\"formControl.disabled ||\n (field.type === 'submit' &&\n this.formControl.parent.parent.parent.invalid) ? true : null\">{{field.label}}</button>", providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(function () { return FormQLButtonComponent_1; }), multi: true }, { provide: NG_VALIDATORS, useExisting: forwardRef(function () { return FormQLButtonComponent_1; }), multi: true } ] }), __metadata("design:paramtypes", [ActionHandlerService]) ], FormQLButtonComponent); return FormQLButtonComponent; }()); export { FormQLButtonComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXFsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZm9ybXFsL2NvcmUvIiwic291cmNlcyI6WyJidW5kbGUvZm9ybXFsLWJ1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQWMsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFzQnBFO0lBeUJJLCtCQUNZLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBSDlDLHFCQUFnQixHQUFHLFVBQUMsQ0FBTSxJQUFPLENBQUMsQ0FBQztJQU0zQyxDQUFDOzhCQTdCUSxxQkFBcUI7SUErQjlCLHNCQUFJLHdDQUFLO2FBQVQ7WUFDSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQzthQUVELFVBQVUsS0FBVTtZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7OztPQUxBO0lBT0QsMENBQVUsR0FBVixVQUFXLEtBQWE7UUFDcEIsSUFBSSxLQUFLO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELGdEQUFnQixHQUFoQixVQUFpQixFQUFPO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlEQUFpQixHQUFqQixVQUFrQixFQUFPLElBQVUsQ0FBQztJQUVwQyx1Q0FBTyxHQUFQO1FBQ0ksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDakIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFELENBQUM7O0lBckRNLG1DQUFhLEdBQUcsdUJBQXVCLENBQUM7SUFDeEMscUNBQWUsR0FBRyxJQUFJLENBQUM7SUFDdkIsZ0NBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsNkJBQU8sR0FBRztRQUNEO1lBQ1IsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJO1NBQzNCO1FBQ1c7WUFDUixHQUFHLEVBQUUsY0FBYyxDQUFDLFFBQVE7U0FDL0I7UUFDVztZQUNSLEdBQUcsRUFBRSxjQUFjLENBQUMsZUFBZTtTQUN0QztRQUNXO1lBQ1IsR0FBRyxFQUFFLGNBQWMsQ0FBQyxNQUFNO1NBQzdCO0tBQ0osQ0FBQztJQUVPO1FBQVIsS0FBSyxFQUFFOzt3REFBMkI7SUFDMUI7UUFBUixLQUFLLEVBQUU7a0NBQWMsV0FBVzs4REFBQztJQXBCekIscUJBQXFCO1FBcEJqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZUFBZTtZQUN6QixRQUFRLEVBQUUsNFRBSTZGO1lBQ3ZHLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSx1QkFBcUIsRUFBckIsQ0FBcUIsQ0FBQztvQkFDcEQsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHVCQUFxQixFQUFyQixDQUFxQixDQUFDO29CQUNwRCxLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUFDO1NBQ1QsQ0FBQzt5Q0E0Qm9DLG9CQUFvQjtPQTFCN0MscUJBQXFCLENBd0RqQztJQUFELDRCQUFDO0NBQUEsQUF4REQsSUF3REM7U0F4RFkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOR19WQUxJREFUT1JTLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVscy9mb3JtLWNvbXBvbmVudC5tb2RlbCc7XHJcbmltcG9ydCB7IEFjdGlvbkhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYWN0aW9uLWhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1BY3Rpb24sIEZvcm1BY3Rpb25UeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZm9ybXFsLWJ1dHRvbicsXHJcbiAgICB0ZW1wbGF0ZTogYDxidXR0b24gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiAoY2xpY2spPVwib25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJmaWVsZC50eXBlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2wuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgICAgICAgICAoZmllbGQudHlwZSA9PT0gJ3N1Ym1pdCcgJiZcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhcmVudC5wYXJlbnQucGFyZW50LmludmFsaWQpID8gdHJ1ZSA6IG51bGxcIj57e2ZpZWxkLmxhYmVsfX08L2J1dHRvbj5gLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9ybVFMQnV0dG9uQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9ybVFMQnV0dG9uQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICB9XVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1RTEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICAgIHN0YXRpYyBjb21wb25lbnROYW1lID0gJ0Zvcm1RTEJ1dHRvbkNvbXBvbmVudCc7XHJcbiAgICBzdGF0aWMgZm9ybVFMQ29tcG9uZW50ID0gdHJ1ZTtcclxuICAgIHN0YXRpYyB2YWxpZGF0b3JzID0gW107XHJcbiAgICBzdGF0aWMgYWN0aW9ucyA9IFtcclxuICAgICAgICA8Rm9ybUFjdGlvbj57XHJcbiAgICAgICAgICAgIGtleTogRm9ybUFjdGlvblR5cGUuU2F2ZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgPEZvcm1BY3Rpb24+e1xyXG4gICAgICAgICAgICBrZXk6IEZvcm1BY3Rpb25UeXBlLlZhbGlkYXRlXHJcbiAgICAgICAgfSxcclxuICAgICAgICA8Rm9ybUFjdGlvbj57XHJcbiAgICAgICAgICAgIGtleTogRm9ybUFjdGlvblR5cGUuVmFsaWRhdGVBbmRTYXZlXHJcbiAgICAgICAgfSxcclxuICAgICAgICA8Rm9ybUFjdGlvbj57XHJcbiAgICAgICAgICAgIGtleTogRm9ybUFjdGlvblR5cGUuQ3VzdG9tXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxuXHJcbiAgICBASW5wdXQoKSBmaWVsZDogRm9ybUNvbXBvbmVudDxhbnk+O1xyXG4gICAgQElucHV0KCkgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG5cclxuICAgIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBhY3Rpb25IYW5kbGVyU2VydmljZTogQWN0aW9uSGFuZGxlclNlcnZpY2VcclxuICAgICkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3Byb3BhZ2F0ZUNoYW5nZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlKVxyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Byb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgfVxyXG5cclxuICAgIG9uQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmllbGQuYWN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbkhhbmRsZXJTZXJ2aWNlLnNlbmQodGhpcy5maWVsZC5hY3Rpb24pO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=