@formql/core
Version:
FormQL - A framework for building dynamic forms
78 lines • 8.94 kB
JavaScript
var FormQLSelectComponent_1;
import { __decorate, __metadata } from "tslib";
import { Component, Input, forwardRef } from '@angular/core';
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, Validators, FormControl } from '@angular/forms';
let FormQLSelectComponent = FormQLSelectComponent_1 = class FormQLSelectComponent {
constructor() {
this._propagateChange = (_) => { };
}
ngOnInit() {
if (this.field.configuration)
this.list = JSON.parse(this.field.configuration).list;
}
get value() {
return this._value;
}
set value(value) {
this._value = value;
this._propagateChange(this._value);
}
writeValue(value) {
if (value)
this._value = value;
}
registerOnChange(fn) {
this._propagateChange = fn;
}
registerOnTouched(fn) { }
};
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">
<label [attr.for]="field.componentId"
[ngClass]="{'fql-bundle-label-required': field.rules?.required?.value}">{{field.label}}</label>
<div>
<select [formControl]="formControl" [id]="field.componentId"
class="fql-bundle-field-input" [tabIndex]="field.tabIndex"
[attr.multiple]="field.type === 'multiple'">
<ng-container *ngIf="list">
<option *ngFor="let item of list" [value]="item.value">{{item.name}}</option>
</ng-container>
</select>
</div>
</div>`,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => FormQLSelectComponent_1),
multi: true
},
{
provide: NG_VALIDATORS,
useExisting: forwardRef(() => 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);
export { FormQLSelectComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXFsLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZm9ybXFsL2NvcmUvIiwic291cmNlcyI6WyJidW5kbGUvZm9ybXFsLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxhQUFhLEVBQWEsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBa0M1SCxJQUFhLHFCQUFxQiw2QkFBbEMsTUFBYSxxQkFBcUI7SUFBbEM7UUFrQlkscUJBQWdCLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQTJCL0MsQ0FBQztJQXpCRyxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7WUFDeEIsSUFBSSxDQUFDLElBQUksR0FBZ0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBRSxDQUFDLElBQUksQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBRUwsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3BCLElBQUksS0FBSztZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU8sSUFBVSxDQUFDO0NBQ3ZDLENBQUE7QUEzQ1UsbUNBQWEsR0FBRyx1QkFBdUIsQ0FBQztBQUN4QyxxQ0FBZSxHQUFHLElBQUksQ0FBQztBQUN2QixnQ0FBVSxHQUFHO0lBQ0Q7UUFDWCxJQUFJLEVBQUUsVUFBVTtRQUNoQixTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVE7UUFDOUIsR0FBRyxFQUFFLFVBQVU7S0FDbEI7Q0FDSixDQUFDO0FBRU87SUFBUixLQUFLLEVBQUU7O29EQUEyQjtBQUMxQjtJQUFSLEtBQUssRUFBRTs4QkFBYyxXQUFXOzBEQUFDO0FBYnpCLHFCQUFxQjtJQTVCakMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGVBQWU7UUFFekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7ZUFZQztRQUNYLFNBQVMsRUFBRTtZQUNQO2dCQUNJLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXFCLENBQUM7Z0JBQ3BELEtBQUssRUFBRSxJQUFJO2FBQ2Q7WUFDRDtnQkFDSSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBcUIsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUFDOztLQUNULENBQUM7R0FDVyxxQkFBcUIsQ0E2Q2pDO1NBN0NZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IsIE5HX1ZBTElEQVRPUlMsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1jb21wb25lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBPcHRpb25WYWx1ZSwgU2VsZWN0TGlzdCB9IGZyb20gJy4uL21vZGVscy90eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybVZhbGlkYXRvciB9IGZyb20gJy4uL21vZGVscy9ydWxlLm1vZGVsJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZm9ybXFsLXNlbGVjdCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtcWwtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICB0ZW1wbGF0ZTogYDxkaXYgKm5nSWY9XCJmb3JtQ29udHJvbCE9bnVsbFwiPlxyXG4gICAgICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwiZmllbGQuY29tcG9uZW50SWRcIlxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ZxbC1idW5kbGUtbGFiZWwtcmVxdWlyZWQnOiBmaWVsZC5ydWxlcz8ucmVxdWlyZWQ/LnZhbHVlfVwiPnt7ZmllbGQubGFiZWx9fTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiBbaWRdPVwiZmllbGQuY29tcG9uZW50SWRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmcWwtYnVuZGxlLWZpZWxkLWlucHV0XCIgW3RhYkluZGV4XT1cImZpZWxkLnRhYkluZGV4XCJcclxuICAgICAgICAgICAgICAgIFthdHRyLm11bHRpcGxlXT1cImZpZWxkLnR5cGUgPT09ICdtdWx0aXBsZSdcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0XCIgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj57e2l0ZW0ubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+YCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1RTFNlbGVjdENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1RTFNlbGVjdENvbXBvbmVudCksXHJcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXHJcbiAgICAgICAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1RTFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG5cclxuICAgIHN0YXRpYyBjb21wb25lbnROYW1lID0gJ0Zvcm1RTFNlbGVjdENvbXBvbmVudCc7XHJcbiAgICBzdGF0aWMgZm9ybVFMQ29tcG9uZW50ID0gdHJ1ZTtcclxuICAgIHN0YXRpYyB2YWxpZGF0b3JzID0gW1xyXG4gICAgICAgIDxGb3JtVmFsaWRhdG9yPntcclxuICAgICAgICAgICAgbmFtZTogJ1JlcXVpcmVkJyxcclxuICAgICAgICAgICAgdmFsaWRhdG9yOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgICBrZXk6ICdyZXF1aXJlZCdcclxuICAgICAgICB9XHJcbiAgICBdO1xyXG5cclxuICAgIEBJbnB1dCgpIGZpZWxkOiBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgICBASW5wdXQoKSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XHJcblxyXG4gICAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcclxuICAgIGxpc3Q6IEFycmF5PE9wdGlvblZhbHVlPjtcclxuXHJcbiAgICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmllbGQuY29uZmlndXJhdGlvbilcclxuICAgICAgICAgICAgdGhpcy5saXN0ID0gKDxTZWxlY3RMaXN0PkpTT04ucGFyc2UodGhpcy5maWVsZC5jb25maWd1cmF0aW9uKSkubGlzdDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWUoKTogYW55IHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh2YWx1ZSlcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7IH1cclxufVxyXG4iXX0=