@formql/core
Version:
FormQL - A framework for building dynamic forms
83 lines • 9.26 kB
JavaScript
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=