lc-forms
Version:
Is a library for simplified object-based creation and validation of forms in Angular/Angular Universal. The library is inspired by [angular.io dynamic forms](https://angular.io/docs/ts/latest/cookbook/dynamic-form.html) and [Filip Lauc's](https://github.c
1 lines • 7.09 kB
JSON
{"__symbolic":"module","version":3,"metadata":{"LCFormsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule"}],"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}],"exports":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"}],"providers":[{"__symbolic":"reference","name":"ɵb"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"template":"\n <form [formGroup]=\"comp.form\" [ngClass]=\"comp.data.classes?.form\">\n <lc-element *ngFor=\"let e of comp.data.elements\" [info]=\"{element: e, form: comp.form, settings: comp.settings, classes: comp.data.classes}\" (valueChange)=\"onElementValueChange($event)\"></lc-element>\n <div class=\"row\">\n <div *ngIf=\"comp.data.settings.submitButton\" [ngClass]=\"comp.data.classes?.submit\">\n <button type=\"submit\" [disabled]=\"!comp.form.valid && comp.settings.extraValidation\" [ngClass]=\"comp.data.classes?.submitButton\">{{comp.data.settings.submitButtonText}}</button>\n </div>\n <div *ngIf=\"comp.data.settings.noteText\" [ngClass]=\"comp.data.classes.note\">\n <span *ngIf=\"comp.data.settings.noteLabel\" [ngClass]=\"comp.data.classes.noteLabel\">{{comp.data.settings.noteLabel}}</span> \n {{comp.data.settings.noteText}}\n </div>\n </div>\n </form>\n ","selector":"lc-form"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"lcFormData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"submitted":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"changed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"submit":[{"__symbolic":"method"}],"onElementValueChange":[{"__symbolic":"method"}],"sortElements":[{"__symbolic":"method"}],"_setSettings":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"create":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"lc-element","template":"\n <div [formGroup]=\"form\" [ngClass]=\"element.classes?.group\">\n <label *ngIf=\"element.label\"\n [ngClass]=\"element.classes?.label\"\n [attr.for]=\"element.key\">\n {{element.label}}\n </label>\n <div [ngSwitch]=\"element.type\">\n <select *ngSwitchCase=\"'dropdown'\"\n [formControlName]=\"element.key\"\n (ngModelChange)=\"onValueChange($event)\"\n [ngClass]=\"element.classes?.element\"\n [id]=\"element.key\">\n <option *ngFor=\"let o of element.options\" [value]=\"o.value\">{{o.name ? o.name : o.value}}</option>\n </select>\n\n <div *ngSwitchCase=\"'checkbox'\" [ngClass]=\"element.classes?.element\">\n <div class=\"checkbox\" *ngFor=\"let o of element.options\">\n <input [type]=\"element.type\"\n [formControlName]=\"element.key\"\n [name]=\"element.key\"\n [value]=\"o.value\"\n [checked]=\"isSelectActive(o)\"\n (change)=\"chackboxValueChange()\"\n (click)=\"setCheckbox(o)\">\n <span>{{o.name ? o.name : o.value}}</span>\n </div>\n </div>\n\n <textarea *ngSwitchCase=\"'textarea'\"\n [formControlName]=\"element.key\"\n (ngModelChange)=\"onValueChange($event)\"\n [id]=\"element.key\"\n [attr.placeholder]=\"element.placeholder\"\n [attr.rows]=\"element.rows\"\n [ngClass]=\"element.classes?.element\"></textarea>\n\n <div *ngSwitchCase=\"'radio'\" [ngClass]=\"element.classes?.element\">\n <div class=\"radio\" *ngFor=\"let o of element.options\">\n <input [type]=\"element.type\"\n [formControlName]=\"element.key\"\n [name]=\"element.key\"\n [value]=\"o.value\"\n [checked]=\"element.value === o.value\"\n (click)=\"setRadio(o)\">\n <span>{{o.name ? o.name : o.value}}</span>\n </div>\n </div>\n\n <input *ngSwitchDefault\n [formControlName]=\"element.key\"\n [attr.placeholder]=\"element.placeholder\"\n [type]=\"element.type\"\n (ngModelChange)=\"onValueChange($event)\"\n [ngClass]=\"element.classes?.element\"\n [id]=\"element.key\">\n </div>\n\n <div *ngIf=\"settings.showValidation\" [hidden]=\"showErrorMsg\">\n <span *ngFor=\"let e of errors()\" [ngClass]=\"element.classes?.error\">{{e}}</span>\n </div>\n </div>\n "}]}],"members":{"toSet":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding"},"arguments":["class"]}]}],"info":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"valueChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output"}}]}],"errors":[{"__symbolic":"method"}],"setRadio":[{"__symbolic":"method"}],"setCheckbox":[{"__symbolic":"method"}],"chackboxValueChange":[{"__symbolic":"method"}],"onValueChange":[{"__symbolic":"method"}],"isSelectActive":[{"__symbolic":"method"}],"_setError":[{"__symbolic":"method"}]}}},"origins":{"LCFormsModule":"./src/app/components/lc-forms.module","ɵa":"./src/app/components/lc-forms.component","ɵb":"./src/app/components/lc-forms.service","ɵc":"./src/app/components/lc-element.component"},"importAs":"lc-forms"}