@formql/core
Version:
FormQL - A framework for building dynamic forms
72 lines • 9.63 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Component, Input, forwardRef } from '@angular/core';
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, Validators, FormControl } from '@angular/forms';
var FormQLSelectComponent = /** @class */ (function () {
function FormQLSelectComponent() {
this._propagateChange = function (_) { };
}
FormQLSelectComponent_1 = FormQLSelectComponent;
FormQLSelectComponent.prototype.ngOnInit = function () {
if (this.field.configuration)
this.list = JSON.parse(this.field.configuration).list;
};
Object.defineProperty(FormQLSelectComponent.prototype, "value", {
get: function () {
return this._value;
},
set: function (value) {
this._value = value;
this._propagateChange(this._value);
},
enumerable: true,
configurable: true
});
FormQLSelectComponent.prototype.writeValue = function (value) {
if (value)
this._value = value;
};
FormQLSelectComponent.prototype.registerOnChange = function (fn) {
this._propagateChange = fn;
};
FormQLSelectComponent.prototype.registerOnTouched = function (fn) { };
var FormQLSelectComponent_1;
FormQLSelectComponent.componentName = 'FormQLSelectComponent';
FormQLSelectComponent.formQLComponent = true;
FormQLSelectComponent.validators = [
{
name: 'Required',
validator: Validators.required,
key: 'required'
}
];
__decorate([
Input(),
__metadata("design:type", Object)
], FormQLSelectComponent.prototype, "field", void 0);
__decorate([
Input(),
__metadata("design:type", FormControl)
], FormQLSelectComponent.prototype, "formControl", void 0);
FormQLSelectComponent = FormQLSelectComponent_1 = __decorate([
Component({
selector: 'formql-select',
template: "<div *ngIf=\"formControl!=null\">\n <label [attr.for]=\"field.componentId\"\n [ngClass]=\"{'fql-bundle-label-required': field.rules?.required?.value}\">{{field.label}}</label>\n <div>\n <select [formControl]=\"formControl\" [id]=\"field.componentId\"\n class=\"fql-bundle-field-input\" [tabIndex]=\"field.tabIndex\"\n [attr.multiple]=\"field.type === 'multiple'\">\n <ng-container *ngIf=\"list\">\n <option *ngFor=\"let item of list\" [value]=\"item.value\">{{item.name}}</option>\n </ng-container>\n </select>\n </div>\n </div>",
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(function () { return FormQLSelectComponent_1; }),
multi: true
},
{
provide: NG_VALIDATORS,
useExisting: forwardRef(function () { return FormQLSelectComponent_1; }),
multi: true
}
],
styles: [".fql-bundle-field-input{width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.fql-bundle-checkbox-input{cursor:pointer;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.fql-bundle-label-required:after{content:\" *\";color:red}.fql-bundle-field-radio{cursor:pointer}.fql-error-message{text-align:center;padding:20px}.fql-dnd-container-separator{box-shadow:0 -2px 0 #00f}.fql-dnd-container-drop-area{outline:dashed 3px}"]
})
], FormQLSelectComponent);
return FormQLSelectComponent;
}());
export { FormQLSelectComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXFsLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZm9ybXFsL2NvcmUvIiwic291cmNlcyI6WyJidW5kbGUvZm9ybXFsLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLGFBQWEsRUFBYSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQzVIO0lBQUE7UUFrQlkscUJBQWdCLEdBQUcsVUFBQyxDQUFNLElBQU8sQ0FBQyxDQUFDO0lBMkIvQyxDQUFDOzhCQTdDWSxxQkFBcUI7SUFvQjlCLHdDQUFRLEdBQVI7UUFDSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYTtZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFnQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFFLENBQUMsSUFBSSxDQUFDO0lBQzVFLENBQUM7SUFFRCxzQkFBSSx3Q0FBSzthQUFUO1lBRUksT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7YUFFRCxVQUFVLEtBQVU7WUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxDQUFDOzs7T0FMQTtJQU9ELDBDQUFVLEdBQVYsVUFBVyxLQUFhO1FBQ3BCLElBQUksS0FBSztZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxnREFBZ0IsR0FBaEIsVUFBaUIsRUFBTztRQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxpREFBaUIsR0FBakIsVUFBa0IsRUFBTyxJQUFVLENBQUM7O0lBMUM3QixtQ0FBYSxHQUFHLHVCQUF1QixDQUFDO0lBQ3hDLHFDQUFlLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLGdDQUFVLEdBQUc7UUFDRDtZQUNYLElBQUksRUFBRSxVQUFVO1lBQ2hCLFNBQVMsRUFBRSxVQUFVLENBQUMsUUFBUTtZQUM5QixHQUFHLEVBQUUsVUFBVTtTQUNsQjtLQUNKLENBQUM7SUFFTztRQUFSLEtBQUssRUFBRTs7d0RBQTJCO0lBQzFCO1FBQVIsS0FBSyxFQUFFO2tDQUFjLFdBQVc7OERBQUM7SUFiekIscUJBQXFCO1FBNUJqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZUFBZTtZQUV6QixRQUFRLEVBQUUsaXFCQVlDO1lBQ1gsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHVCQUFxQixFQUFyQixDQUFxQixDQUFDO29CQUNwRCxLQUFLLEVBQUUsSUFBSTtpQkFDZDtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsYUFBYTtvQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsdUJBQXFCLEVBQXJCLENBQXFCLENBQUM7b0JBQ3BELEtBQUssRUFBRSxJQUFJO2lCQUNkO2FBQUM7O1NBQ1QsQ0FBQztPQUNXLHFCQUFxQixDQTZDakM7SUFBRCw0QkFBQztDQUFBLEFBN0NELElBNkNDO1NBN0NZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1jb21wb25lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBPcHRpb25WYWx1ZSwgU2VsZWN0TGlzdCB9IGZyb20gJy4uL21vZGVscy90eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybVZhbGlkYXRvciB9IGZyb20gJy4uL21vZGVscy9ydWxlLm1vZGVsJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZm9ybXFsLXNlbGVjdCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtcWwtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICB0ZW1wbGF0ZTogYDxkaXYgKm5nSWY9XCJmb3JtQ29udHJvbCE9bnVsbFwiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmllbGQuY29tcG9uZW50SWRcIlxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ZxbC1idW5kbGUtbGFiZWwtcmVxdWlyZWQnOiBmaWVsZC5ydWxlcz8ucmVxdWlyZWQ/LnZhbHVlfVwiPnt7ZmllbGQubGFiZWx9fTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbaWRdPVwiZmllbGQuY29tcG9uZW50SWRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmcWwtYnVuZGxlLWZpZWxkLWlucHV0XCIgW3RhYkluZGV4XT1cImZpZWxkLnRhYkluZGV4XCJcclxuICAgICAgICAgICAgICAgIFthdHRyLm11bHRpcGxlXT1cImZpZWxkLnR5cGUgPT09ICdtdWx0aXBsZSdcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0XCIgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj57e2l0ZW0ubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+YCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1RTFNlbGVjdENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1RTFNlbGVjdENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1RTFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG5cclxuICAgIHN0YXRpYyBjb21wb25lbnROYW1lID0gJ0Zvcm1RTFNlbGVjdENvbXBvbmVudCc7XHJcbiAgICBzdGF0aWMgZm9ybVFMQ29tcG9uZW50ID0gdHJ1ZTtcclxuICAgIHN0YXRpYyB2YWxpZGF0b3JzID0gW1xyXG4gICAgICAgIDxGb3JtVmFsaWRhdG9yPntcclxuICAgICAgICAgICAgbmFtZTogJ1JlcXVpcmVkJyxcclxuICAgICAgICAgICAgdmFsaWRhdG9yOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICBrZXk6ICdyZXF1aXJlZCdcclxuICAgICAgICB9XHJcbiAgICBdO1xyXG5cclxuICAgIEBJbnB1dCgpIGZpZWxkOiBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgICBASW5wdXQoKSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcclxuICAgIGxpc3Q6IEFycmF5PE9wdGlvblZhbHVlPjtcclxuXHJcbiAgICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmllbGQuY29uZmlndXJhdGlvbilcclxuICAgICAgICAgICAgdGhpcy5saXN0ID0gKDxTZWxlY3RMaXN0PkpTT04ucGFyc2UodGhpcy5maWVsZC5jb25maWd1cmF0aW9uKSkubGlzdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh2YWx1ZSlcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IH1cclxufVxyXG4iXX0=