@3kles/kles-material-dynamicforms 14.9.5 → 14.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"3kles-kles-material-dynamicforms.mjs","sources":["../../../projects/kles-material-dynamicforms/src/lib/controls/default.control.ts","../../../projects/kles-material-dynamicforms/src/lib/factories/field.factory.ts","../../../projects/kles-material-dynamicforms/src/lib/decorators/component.decorator.ts","../../../projects/kles-material-dynamicforms/src/lib/enums/type.enum.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/clear.component.ts","../../../projects/kles-material-dynamicforms/src/lib/directive/dynamic-field.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/dynamic-form.component.ts","../../../projects/kles-material-dynamicforms/src/lib/directive/dynamic-component.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/matcher/form-error.matcher.ts","../../../projects/kles-material-dynamicforms/src/lib/modules/material.module.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/field.abstract.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/label.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/input.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-submit.component.ts","../../../projects/kles-material-dynamicforms/src/lib/pipe/transform.pipe.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/select.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/date.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/radio.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/checkbox.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/list-field.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/color.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/button-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-form.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/buttonchecker-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/buttonchecker-form.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/buttonfile-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/buttonfile-form.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/textarea.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/text.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/chip.component.ts","../../../projects/kles-material-dynamicforms/src/lib/controls/group.control.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/group.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/input.clearable.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/icon.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/select.search.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/line-break.component.ts","../../../projects/kles-material-dynamicforms/src/lib/pipe/array.pipe.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/link.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/slide-toggle.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/selection-list.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/badge.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-toogle-group.component.ts","../../../projects/kles-material-dynamicforms/src/lib/controls/array.control.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/array.component.ts","../../../projects/kles-material-dynamicforms/src/lib/controls/range.control.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/range.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/select.lazy-search.component.ts","../../../projects/kles-material-dynamicforms/src/lib/kles-material-dynamicforms.module.ts","../../../projects/kles-material-dynamicforms/src/lib/validators/autocomplete.validator.ts","../../../projects/kles-material-dynamicforms/src/public-api.ts","../../../projects/kles-material-dynamicforms/src/3kles-kles-material-dynamicforms.ts"],"sourcesContent":["import { AbstractControl, FormControl, ValidatorFn, Validators, AsyncValidatorFn } from \"@angular/forms\";\nimport { concat, of } from \"rxjs\";\nimport { catchError, map, take } from \"rxjs/operators\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\nimport { IKlesValidator } from \"../interfaces/validator.interface\";\nimport { IKlesControl } from \"./control.interface\";\n\nexport class KlesFormControl implements IKlesControl {\n\n constructor(protected field: IKlesFieldConfig) {\n }\n\n public create(): AbstractControl {\n const control = new FormControl(\n this.field.value,\n {\n validators: this.bindValidations(this.field.validations || []),\n asyncValidators: this.bindAsyncValidations(this.field.asyncValidations || []),\n updateOn: this.field.updateOn || 'change'\n }\n );\n\n if (this.field.disabled) {\n control.disable();\n }\n\n if (this.field.asyncValue) {\n concat(\n of({ value: null, pending: true }),\n this.field.asyncValue.pipe(\n take(1),\n catchError((err) => {\n console.error(err);\n return of(null);\n }),\n map((value) => ({ value, pending: false }))\n )\n ).subscribe((response) => {\n this.field.pending = response.pending;\n if (response.pending) {\n control.disable({ emitEvent: false });\n } else {\n if (!this.field.disabled) {\n control.enable({ emitEvent: false });\n }\n control.setValue(response.value);\n this.field.value = response.value;\n }\n });\n }\n\n return control;\n }\n\n public bindValidations(validations: IKlesValidator<ValidatorFn>[]): ValidatorFn {\n if (validations.length > 0) {\n const validList = [];\n validations.forEach(valid => {\n validList.push(valid.validator);\n });\n return Validators.compose(validList);\n\n }\n return null;\n }\n\n public bindAsyncValidations(validations: IKlesValidator<AsyncValidatorFn>[]): AsyncValidatorFn {\n if (validations.length > 0) {\n const validList = [];\n validations.forEach(valid => {\n validList.push(valid.validator);\n });\n return Validators.composeAsync(validList);\n\n }\n return null;\n }\n}\n","import { KlesFormControl } from \"../controls/default.control\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\n\n\nexport const klesFieldControlFactory = (field: IKlesFieldConfig) => {\n const factory = new KlesFormControl(field);\n return factory.create();\n}\n\n\n\n","import { Type } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { klesFieldControlFactory } from '../factories/field.factory';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\n\nexport const componentMapper: {\n component: Type<any>; type: string;\n factory: ((field: IKlesFieldConfig) => AbstractControl<any, any>)\n}[] = [];\n\nexport function FieldMapper(config: {\n type: string,\n factory?: (field: IKlesFieldConfig) => AbstractControl<any, any>\n}) {\n return (target: Type<any>) => {\n componentMapper.push({\n component: target,\n type: config.type,\n factory: config.factory || klesFieldControlFactory\n });\n };\n}\n","export enum EnumType {\n input = 'input',\n select = 'select',\n text = 'text',\n button = 'button',\n checkbox = 'checkbox',\n number = 'number',\n time = 'time',\n date = 'date',\n color = 'color',\n list = 'list',\n multi = 'multi',\n array = 'array',\n group = 'group',\n lineBreak = 'lineBreak',\n badge = 'badge',\n range = 'range'\n}","import { Component } from \"@angular/core\";\nimport { UntypedFormGroup } from \"@angular/forms\";\nimport { IKlesClearControl } from \"../interfaces/clear-control.interface\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\n\n@Component({\n selector: 'kles-form-clear',\n template: `\n <button *ngIf=\"group.get(field.name).value && !group.get(field.name).disabled\" mat-button mat-icon-button aria-label=\"Clear\" type=\"button\"\n (click)=\"clear($event)\">\n <mat-icon>close</mat-icon>\n </button>\n `,\n\n})\nexport class KlesFormClearComponent implements IKlesClearControl {\n field: IKlesFieldConfig;\n group: UntypedFormGroup;\n siblingFields: IKlesFieldConfig[];\n\n clear(event): void {\n event.stopPropagation();\n this.group.controls[this.field.name].reset();\n }\n}","import {\n Directive, Input, OnInit, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges, OnDestroy, Type, Injector, StaticProvider\n} from '@angular/core';\n\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { componentMapper } from '../decorators/component.decorator';\nimport { KlesFormClearComponent } from '../fields/clear.component';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\n\n@Directive({\n selector: '[klesDynamicField]'\n})\nexport class KlesDynamicFieldDirective implements OnInit, OnChanges, OnDestroy {\n @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() siblingFields: IKlesFieldConfig[];\n\n componentRef: ComponentRef<any>;\n subComponents: (ComponentRef<any>)[] = [];\n\n constructor(protected container: ViewContainerRef, private injector: Injector) { }\n\n ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n\n ngOnInit() {\n this.buildComponent();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.group) {\n this.group = changes.group.currentValue;\n }\n if (changes.field) {\n this.field = changes.field.currentValue;\n this.buildComponent();\n }\n }\n\n buildComponent() {\n if (this.componentRef) {\n this.subComponents.forEach(c => c.destroy());\n this.subComponents = [];\n this.componentRef.destroy();\n }\n\n const options: {\n providers: StaticProvider[];\n parent?: Injector;\n name?: string;\n } = {\n providers: this.field.dateOptions ? [\n { provide: MAT_DATE_LOCALE, useValue: this.field.dateOptions.language },\n { provide: MAT_DATE_FORMATS, useValue: this.field.dateOptions.dateFormat },\n ] : [],\n parent: this.injector\n };\n\n const injector: Injector = Injector.create(options);\n\n if (this.field.clearable) {\n const composant = this.createSubComponent(this.field.clearableComponent || KlesFormClearComponent);\n this.subComponents.push(composant);\n }\n if (this.field.subComponents) {\n this.subComponents.push(...this.field.subComponents.map((subComponent) => this.createSubComponent(subComponent)));\n }\n\n this.componentRef = this.container.createComponent(this.field.component\n || componentMapper.find(element => element.type === this.field.type)?.component,\n { injector, projectableNodes: [this.subComponents.map(sub => sub.location.nativeElement)] });\n\n this.componentRef.instance.field = this.field;\n this.componentRef.instance.group = this.group;\n this.componentRef.instance.siblingFields = this.siblingFields;\n }\n\n private createSubComponent(componentType: Type<any>): ComponentRef<any> {\n const component = this.container.createComponent(componentType);\n component.instance.field = this.field;\n component.instance.group = this.group;\n component.instance.siblingFields = this.siblingFields;\n return component;\n }\n}\n","import { OnInit, Component, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormBuilder, ValidatorFn, AsyncValidatorFn, AbstractControl, FormArray, FormGroup, FormControlDirective, FormControlName } from '@angular/forms';\nimport { componentMapper } from './decorators/component.decorator';\nimport { EnumType } from './enums/type.enum';\nimport { klesFieldControlFactory } from './factories/field.factory';\nimport { IKlesFieldConfig } from './interfaces/field.config.interface';\nimport { IKlesValidator } from './interfaces/validator.interface';\n\nconst originFormControlNgOnChanges = FormControlDirective.prototype.ngOnChanges;\nFormControlDirective.prototype.ngOnChanges = function () {\n this.form.nativeElement = this.valueAccessor._elementRef?.nativeElement;\n return originFormControlNgOnChanges.apply(this, arguments);\n};\n\nconst originFormControlNameNgOnChanges = FormControlName.prototype.ngOnChanges;\nFormControlName.prototype.ngOnChanges = function () {\n const result = originFormControlNameNgOnChanges.apply(this, arguments);\n this.control.nativeElement = this.valueAccessor._elementRef?.nativeElement;\n return result;\n};\n\n@Component({\n exportAs: 'klesDynamicForm',\n selector: 'app-kles-dynamic-form',\n template: `\n <form class=\"{{orientationClass}}\" [formGroup]=\"form\" (submit)=\"onSubmit($event)\">\n <ng-container *ngFor=\"let field of fields;\">\n <ng-container *ngIf=\"field.visible !== false\" class=\"{{orientationItemClass}}\" klesDynamicField [field]=\"field\" [group]=\"form\" [siblingFields]=\"fields\">\n </ng-container>\n </ng-container>\n <!--<button (click)=\"reset()\" mat-raised-button color=\"primary\">RESET</button>-->\n </form>\n `,\n styles: [\n // '.dynamic-form {display: flex; flex-direction: column;}',\n //'.dynamic-form {display: flex;}',\n //'.dynamic-form { width: 100%; }',\n '.dynamic-form-column { display: flex;flex-direction: column; }',\n '.dynamic-form-column > * { width: 100%; }',\n '.dynamic-form-row { display: inline-flex;flex-wrap:wrap;gap:10px }',\n '.dynamic-form-row > * { width: 100%; }',\n '.dynamic-form-row-item { margin-right: 10px; }',\n '.dynamic-form-column-item { margin-bottom: 10px; }',\n ]\n\n})\nexport class KlesDynamicFormComponent implements OnInit, OnChanges {\n @Input() fields: IKlesFieldConfig[] = [];\n @Input() validators: IKlesValidator<ValidatorFn>[] = [];\n @Input() asyncValidators: IKlesValidator<AsyncValidatorFn>[] = [];\n // tslint:disable-next-line: no-output-native\n @Output() submit: EventEmitter<any> = new EventEmitter<any>();\n @Output() _onLoaded = new EventEmitter();\n\n @Input() direction: 'column' | 'row' = 'column';\n\n form: UntypedFormGroup;\n orientationClass: 'dynamic-form-column' | 'dynamic-form-row' = 'dynamic-form-column';\n orientationItemClass: 'dynamic-form-column-item' | 'dynamic-form-row-item' = 'dynamic-form-column-item';\n\n get value() {\n return this.form.value;\n }\n\n constructor(private fb: UntypedFormBuilder) { }\n\n\n ngOnInit() {\n this.form = this.createForm();\n this.orientationClass = this.direction === 'row' ? 'dynamic-form-row' : 'dynamic-form-column';\n this.orientationItemClass = this.direction === 'row' ? 'dynamic-form-row-item' : 'dynamic-form-column-item';\n this._onLoaded.emit();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.fields?.firstChange) {\n this.updateForm();\n // this.form = this.createControl();\n // this.form.controls = {};\n this._onLoaded.emit();\n }\n\n if (!changes.validators?.firstChange && this.form) {\n this.form.setValidators(this.validators.map(v => v.validator));\n }\n\n if (!changes.asyncValidators?.firstChange && this.form) {\n this.form.setAsyncValidators(this.asyncValidators.map(v => v.validator));\n }\n\n if (!changes.direction?.firstChange) {\n this.orientationClass = this.direction === 'row' ? 'dynamic-form-row' : 'dynamic-form-column';\n this.orientationItemClass = this.direction === 'row' ? 'dynamic-form-row-item' : 'dynamic-form-column-item';\n }\n\n }\n\n onSubmit(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n if (this.form.valid) {\n this.submit.emit(this.form.value);\n } else {\n this.validateAllFormFields(this.form);\n }\n }\n\n reset() {\n this.form.reset();\n }\n\n\n private updateForm() {\n Object.keys(this.form.controls).filter(key => {\n return !this.fields.map(field => field.name).includes(key);\n }).forEach(key => {\n this.form.removeControl(key);\n });\n\n this.fields\n // .filter(field => !this.form.controls[field.name])\n .forEach(field => {\n if (field.type === EnumType.lineBreak) {\n return;\n }\n\n if (this.form.controls[field.name]) {\n const control = this.updateControl(field, this.form.controls[field.name]);\n this.form.setControl(field.name, control, { emitEvent: false });\n } else {\n const control = this.createControl(field);\n this.form.addControl(field.name, control);\n }\n });\n }\n\n private updateControl(field: IKlesFieldConfig, control: AbstractControl): AbstractControl {\n if (field.type === EnumType.array) {\n const array = control as FormArray;\n /*TODO*/\n return array;\n } else if (field.type === EnumType.group) {\n const group = control as FormGroup;\n if (field.collections && Array.isArray(field.collections)) {\n field.collections.forEach(subfield => {\n if (group.controls[subfield]) {\n control = this.updateControl(subfield, group.controls[subfield]);\n } else {\n control = this.createControl(subfield);\n }\n group.setControl(subfield.name, control, { emitEvent: false });\n });\n }\n return group;\n } else {\n // control.setValidators(this.bindValidations(field.validations || []));\n // control.setAsyncValidators(this.bindAsyncValidations(field.asyncValidations || []));\n // if (field.value && control.value !== field.value) {\n // control.setValue(field.value);\n // }\n return control;\n }\n\n }\n\n private createControl(field: IKlesFieldConfig): AbstractControl {\n if (field.type) {\n return componentMapper.find(c => c.type === field.type)?.factory(field) || klesFieldControlFactory(field);\n } else {\n return componentMapper.find(c => c.component === field.component)?.factory(field) || klesFieldControlFactory(field);\n }\n }\n\n\n private createForm() {\n const group = this.fb.group({});\n\n this.fields.forEach(field => {\n\n if (field.type === EnumType.lineBreak) {\n return;\n }\n const control = this.createControl(field);\n\n group.addControl(field.name, control);\n });\n\n group.setValidators(this.validators.map(v => v.validator));\n group.setAsyncValidators(this.asyncValidators.map(v => v.validator));\n\n return group;\n }\n\n\n\n\n private validateAllFormFields(formGroup: UntypedFormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n control.markAsTouched({ onlySelf: true });\n });\n }\n}\n","import { Directive, Input, OnInit, ViewContainerRef, ComponentRef, Type, OnChanges, SimpleChanges } from '@angular/core';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\n\n\n@Directive({\n selector: '[klesComponent]'\n})\nexport class KlesComponentDirective implements OnInit, OnChanges {\n @Input() component: Type<any>;\n @Input() value: any;\n @Input() field?: IKlesFieldConfig;\n\n componentRef: ComponentRef<any>;\n\n constructor(private container: ViewContainerRef) { }\n\n ngOnInit() {\n this.buildComponent();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.component && !changes.component.isFirstChange()) {\n this.component = changes.component.currentValue;\n this.buildComponent();\n }\n if (changes.value && !changes.value.isFirstChange()) {\n this.value = changes.value.currentValue;\n this.componentRef.instance.value = this.value;\n }\n }\n\n buildComponent() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n this.componentRef = this.container.createComponent(this.component);\n this.componentRef.instance.component = this.component;\n this.componentRef.instance.value = this.value;\n this.componentRef.instance.field = this.field;\n }\n}\n","import { UntypedFormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class KlesFormErrorStateMatcher implements ErrorStateMatcher {\n\n constructor() {\n }\n\n isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const isSubmitted = form && form.submitted;\n return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\n }\n\n}\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatListModule } from '@angular/material/list';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\n\n\n@NgModule({\n imports: [\n CommonModule,\n MatSliderModule,\n MatButtonModule,\n MatToolbarModule,\n MatIconModule,\n MatSidenavModule,\n MatBadgeModule,\n MatListModule,\n MatGridListModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatRadioModule,\n MatDatepickerModule,\n MatChipsModule,\n MatTooltipModule,\n MatTableModule,\n MatPaginatorModule,\n MatCardModule,\n MatMenuModule,\n MatTabsModule,\n CdkTableModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatDialogModule,\n MatAutocompleteModule,\n MatProgressBarModule,\n MatSortModule,\n MatExpansionModule,\n MatNativeDateModule,\n MatSnackBarModule,\n MatTreeModule,\n MatSliderModule,\n MatButtonModule,\n MatSlideToggleModule,\n ColorPickerModule,\n MatButtonToggleModule\n ],\n\n exports: [\n MatButtonModule,\n MatToolbarModule,\n MatIconModule,\n MatSidenavModule,\n MatBadgeModule,\n MatListModule,\n MatGridListModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatRadioModule,\n MatDatepickerModule,\n MatChipsModule,\n MatTooltipModule,\n MatTableModule,\n MatPaginatorModule,\n MatCardModule,\n MatMenuModule,\n MatTabsModule,\n CdkTableModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatDialogModule,\n MatAutocompleteModule,\n MatProgressBarModule,\n MatSortModule,\n MatExpansionModule,\n MatNativeDateModule,\n MatSnackBarModule,\n MatTreeModule,\n MatSliderModule,\n MatButtonModule,\n MatSlideToggleModule,\n ColorPickerModule,\n ScrollingModule,\n CdkScrollable,\n MatButtonToggleModule\n ],\n providers: [\n MatDatepickerModule,\n MatDialogModule\n ]\n})\n\nexport class MaterialModule { }\n","import { IKlesField } from '../interfaces/field.interface';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { AfterViewInit, OnDestroy, OnInit, Directive, ViewContainerRef, HostBinding } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive()\nexport abstract class KlesFieldAbstract implements IKlesField, OnInit, AfterViewInit, OnDestroy {\n field: IKlesFieldConfig;\n group: UntypedFormGroup;\n siblingFields: IKlesFieldConfig[];\n\n @HostBinding('attr.klesDirective') directive;\n\n protected _onDestroy = new Subject<void>();\n\n constructor(protected viewRef: ViewContainerRef) {\n\n }\n\n ngOnInit(): void {\n if (this.field.valueChanges) {\n this.field.valueChanges(this.field, this.group, this.siblingFields);\n }\n\n this.group.controls[this.field.name]?.valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(val => {\n if (this.field.valueChanges) {\n this.field.valueChanges(this.field, this.group, this.siblingFields, val);\n }\n });\n\n if (this.field.directive) {\n this.directive = new this.field.directive(this.viewRef, this);\n this.directive.ngOnInit();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.directive && this.directive.ngAfterViewInit) {\n this.directive?.ngAfterViewInit();\n }\n\n\n if (this.field.autofocus) {\n setTimeout(() => {\n (<any>this.group.controls[this.field.name])?.nativeElement.focus();\n })\n\n // console.log('result', (<any>this.group.controls[this.field.name]))\n }\n\n\n\n\n }\n\n ngOnDestroy(): void {\n this.directive?.ngOnDestroy();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n applyPipeTransform() {\n if (this.group && this.field) {\n const control = this.group.controls[this.field.name];\n if (control) {\n const val = this.group.controls[this.field.name].value;\n if (this.field.pipeTransform) {\n this.field.pipeTransform.forEach(p => {\n let pipeVal = control.value;\n if (p.options) {\n p.options.forEach(opt => {\n pipeVal = p.pipe.transform(val, opt);\n });\n } else {\n pipeVal = p.pipe.transform(val);\n }\n control.patchValue(pipeVal, { onlySelf: true, emitEvent: false });\n });\n }\n }\n }\n }\n}\n","\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n\n@Component({\n selector: \"kles-form-label\",\n template: `\n <div [formGroup]=\"group\" >\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" \n [ngClass]=\"field.ngClass\" \n [ngStyle]=\"{'color':'inherit'}\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\">\n </div>\n`\n})\nexport class KlesFormLabelComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n this.group.controls[this.field.name].disable();\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}","import { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { startWith, map, switchMap } from 'rxjs/operators';\nimport { EnumType } from '../enums/type.enum';\nimport { FieldMapper } from '../decorators/component.decorator';\n\n@FieldMapper({ type: EnumType.input })\n@Component({\n selector: 'kles-form-input',\n template: `\n <mat-form-field [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\">\n\n <ng-container *ngIf=\"field.autocomplete; else notAutoComplete\">\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\" \n [maxLength]=\"field.maxLength\" [min]=\"field.min\" [max]=\"field.max\" [step]=\"field.step\"\n [matAutocomplete]=\"auto\">\n\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn.bind(this)\" [panelWidth]=\"this.field.panelWidth\">\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *ngFor=\"let option of filteredOption | async\" [value]=\"option\">\n {{field.property ? option[field.property] : option}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *ngFor=\"let option of filteredOption | async\" [value]=\"option\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"option\" [field]=\"field\">\n </ng-container>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n </ng-container>\n\n <ng-template #notAutoComplete>\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\" [min]=\"field.min\" [max]=\"field.max\" [step]=\"field.step\">\n </ng-template>\n\n <mat-spinner matSuffix mode=\"indeterminate\" *ngIf=\"isPending()\" diameter=\"17\"></mat-spinner>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormInputComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n filteredOption: Observable<any[]>;\n options$: Observable<any[]>;\n\n ngOnInit(): void {\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n\n\n this.filteredOption = this.group.get(this.field.name).valueChanges\n .pipe(\n startWith(''),\n // map(data => data ? this.filterData(data) : this.field.options.slice())\n switchMap(data => data ? this.filterData(data) : this.options$)\n );\n if (!this.field.maxLength) {\n this.field.maxLength = 524288; // Max default input W3C\n }\n super.ngOnInit();\n }\n\n isPending() {\n return (this.group.controls[this.field.name].pending || this.field.pending);\n }\n\n private filterData(value: any): Observable<any[]> {\n let filterValue;\n\n if (typeof value === 'string' && Object.prototype.toString.call(value) === '[object String]') {\n filterValue = value.toLowerCase();\n } else {\n filterValue = value[this.field.property].toLowerCase();\n }\n\n if (this.field.property) {\n return this.options$\n .pipe(map(options => options.filter(option => option[this.field.property].toLowerCase().indexOf(filterValue) === 0)));\n // return this.field.options\n // .filter(data => data[this.field.property].toLowerCase().indexOf(filterValue) === 0);\n }\n // return this.field.options.filter(data => data.toLowerCase().indexOf(filterValue) === 0);\n return this.options$.pipe(map(options => options.filter(option => option.toLowerCase().indexOf(filterValue) === 0)));\n }\n\n displayFn(value: any) {\n if (this.field.displayWith) {\n return this.field.displayWith(value);\n } else {\n if (value && this.field && this.field.property) {\n return value[this.field.property] ? value[this.field.property] : '';\n }\n return value ? value : '';\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy } from '@angular/core';\nimport { EnumType } from '../enums/type.enum';\nimport { FieldMapper } from '../decorators/component.decorator';\n\n@FieldMapper({ type: EnumType.button })\n@Component({\n selector: 'kles-submit-button',\n template: `\n <div [formGroup]=\"group\">\n <button matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" type=\"submit\" [disabled]=\"field.disabled\" mat-raised-button color=\"primary\">{{field.label}}</button>\n </div>\n `,\n styles: []\n})\nexport class KlesFormSubmitButtonComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'klesTransform' })\nexport class KlesTransformPipe implements PipeTransform {\n\n transform(value: any, pipes: { pipe: PipeTransform, options?: any[] }[]): any {\n\n if (pipes && pipes.length > 0) {\n return pipes.reduce((acc, p) => {\n if (p.options) {\n p.options.forEach(opt => {\n acc = p.pipe.transform(acc, opt);\n });\n } else {\n acc = p.pipe.transform(acc);\n }\n return acc;\n }, value)\n }\n return value;\n\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { MatOption } from '@angular/material/core';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { switchMap, take, takeUntil } from 'rxjs/operators';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.select })\n@Component({\n selector: 'kles-form-select',\n template: `\n <mat-form-field class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\">\n <mat-select matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\"\n (openedChange)=\"openChange($event)\" [compareWith]=\"compareFn\"\n [ngClass]=\"field.ngClass\" [placeholder]=\"field.placeholder | translate\" [formControlName]=\"field.name\" [multiple]=\"field.multiple\">\n <mat-select-trigger *ngIf=\"field.triggerComponent\">\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n\n <ng-container *ngIf=\"!field.virtualScroll\">\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-option *ngFor=\"let item of options$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-option *ngFor=\"let item of options$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"field.virtualScroll\">\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 50\" [style.height.px]=5*48>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-option *cdkVirtualFor=\"let item of options$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-option *cdkVirtualFor=\"let item of options$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n </ng-container>\n\n </mat-select>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n`,\n styles: ['mat-form-field {width: calc(100%)}',\n `::ng-deep .hide-checkbox .mat-pseudo-checkbox { display: none !important; }`]\n})\nexport class KlesFormSelectComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n @ViewChild(CdkVirtualScrollViewport) cdkVirtualScrollViewport: CdkVirtualScrollViewport;\n @ViewChildren(MatOption) options: QueryList<MatOption>;\n\n options$: Observable<any[]>;\n\n isLoading = false;\n\n openChange$ = new Subject<boolean>();\n\n constructor(protected viewRef: ViewContainerRef, protected ref: ChangeDetectorRef) {\n super(viewRef);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.field.lazy) {\n this.isLoading = true;\n if (this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null) {\n this.options$ = new BehaviorSubject<any[]>(Array.isArray(this.group.controls[this.field.name].value) ? this.group.controls[this.field.name].value\n : [this.group.controls[this.field.name].value]);\n this.isLoading = false;\n } else {\n this.options$ = new BehaviorSubject<any[]>([]);\n }\n\n this.openChange$\n .pipe(\n takeUntil(this._onDestroy),\n switchMap((isOpen) => {\n if (isOpen) {\n if (this.field.options instanceof Observable) {\n this.isLoading = true;\n return this.field.options.pipe(take(1));\n }\n else if (this.field.options instanceof Function) {\n this.isLoading = true;\n return this.field.options();\n }\n else {\n return of(this.field.options);\n }\n } else {\n return of(this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null\n ? (Array.isArray(this.group.controls[this.field.name].value) ?\n this.group.controls[this.field.name].value : [this.group.controls[this.field.name].value]) : [])\n }\n })\n )\n .subscribe((options) => {\n (this.options$ as BehaviorSubject<any[]>).next(options);\n this.isLoading = false;\n this.ref.markForCheck();\n });\n\n } else {\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n openChange($event: boolean) {\n if (this.field.lazy) {\n this.openChange$.next($event);\n // if ($event) {\n // if (!(this.field.options instanceof Observable)) {\n // (this.options$ as BehaviorSubject<any[]>).next(this.field.options);\n // } else {\n // this.isLoading = true;\n // this.field.options.pipe(take(1)).subscribe(options => {\n // (this.options$ as BehaviorSubject<any[]>).next(options);\n // this.isLoading = false;\n // this.ref.markForCheck();\n // });\n // }\n // } else {\n // (this.options$ as BehaviorSubject<any[]>)\n // .next(this.group.controls[this.field.name].value !== undefined ? [this.group.controls[this.field.name].value] : []);\n // this.ref.markForCheck();\n // // this.isLoading = true;\n // }\n }\n\n if (this.field.virtualScroll) {\n if ($event) {\n this.cdkVirtualScrollViewport.scrollToIndex(0);\n this.cdkVirtualScrollViewport.checkViewportSize();\n }\n }\n }\n\n compareFn = (o1: any, o2: any) => {\n if (this.field.property && o1 && o2) {\n return o1[this.field.property] === o2[this.field.property];\n }\n return o1 === o2;\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: \"kles-form-datepicker\",\n template: `\n <mat-form-field class=\"demo-full-width margin-top\" [color]=\"field.color\" [formGroup]=\"group\">\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [matDatepicker]=\"picker\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\"\n [min]=\"field.min\" [max]=\"field.max\">\n <div matSuffix>\n <mat-datepicker-toggle [for]=\"picker\"></mat-datepicker-toggle>\n <ng-content></ng-content>\n </div>\n <mat-datepicker #picker></mat-datepicker>\n <mat-hint>{{field.hint}}</mat-hint>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: []\n})\nexport class KlesFormDateComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-radiobutton',\n template: `\n <div [formGroup]=\"group\">\n <label class=\"radio-label-padding\">{{field.label}}</label>\n <mat-radio-group matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\">\n <mat-radio-button *ngFor=\"let item of field.options\" [value]=\"item\">{{item}}</mat-radio-button>\n </mat-radio-group>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </div>\n`,\n styles: []\n})\nexport class KlesFormRadioComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}","\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.checkbox })\n@Component({\n selector: 'kles-form-checkbox',\n template: `\n <div [formGroup]=\"group\" > \n <mat-checkbox matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [indeterminate]=\"field.indeterminate\" [color]=\"field.color\" [formControlName]=\"field.name\">{{field.label | translate}}</mat-checkbox>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message}}</mat-error>\n </ng-container>\n </div>\n`,\n styles: []\n})\nexport class KlesFormCheckboxComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { UntypedFormGroup, UntypedFormArray, UntypedFormBuilder, ValidatorFn, Validators, AsyncValidatorFn } from '@angular/forms';\nimport { IKlesValidator } from '../interfaces/validator.interface';\n\n@Component({\n selector: 'kles-form-listfield',\n template: `\n <div [formGroup]=\"group\" class=\"form-element\">\n {{field.label | translate}}\n <button mat-icon-button color=\"primary\" (click)=\"addField()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <div class=\"dynamic-form\" [formGroupName]=\"field.name\">\n <div *ngFor=\"let subGroup of formArray.controls let index = index;\" fxLayout=\"row\" fxLayoutGap=\"5px\">\n <ng-container *ngFor=\"let subfield of field.collections;\"\n dynamicField [field]=\"subfield\" [group]=\"subGroup\">\n </ng-container>\n <button mat-icon-button (click)=\"deleteField(index)\" color=\"primary\">\n <mat-icon>delete_outlined</mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </div>\n </div>\n `,\n styles: []\n})\nexport class KlesFormListFieldComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n formArray: UntypedFormArray;\n\n constructor(private fb: UntypedFormBuilder, protected viewRef: ViewContainerRef) {\n super(viewRef);\n }\n\n ngOnInit(): void {\n this.formArray = this.group.controls[this.field.name] as UntypedFormArray;\n super.ngOnInit();\n }\n\n private createFormGroup(): UntypedFormGroup {\n const group = this.fb.group({});\n this.field.collections.forEach(item => {\n const control = this.fb.control(\n null,\n this.bindValidations(item.validations || []),\n this.bindAsyncValidations(item.asyncValidations || [])\n );\n group.addControl(item.name, control);\n\n });\n\n return group;\n\n }\n\n deleteField(index: number) {\n this.formArray.removeAt(index);\n }\n\n addField() {\n this.formArray.push(this.createFormGroup());\n }\n\n\n private bindValidations(validations: IKlesValidator<ValidatorFn>[]): ValidatorFn {\n if (validations.length > 0) {\n const validList = [];\n validations.forEach(valid => {\n validList.push(valid.validator);\n });\n return Validators.compose(validList);\n\n }\n return null;\n }\n\n\n private bindAsyncValidations(validations: IKlesValidator<AsyncValidatorFn>[]): AsyncValidatorFn {\n if (validations.length > 0) {\n const validList = [];\n validations.forEach(valid => {\n validList.push(valid.validator);\n });\n return Validators.composeAsync(validList);\n\n }\n return null;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n\n","import { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy } from '@angular/core';\n@Component({\n selector: 'kles-form-color',\n template: `\n <mat-form-field [formGroup]=\"group\" class=\"form-element\">\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [placeholder]=\"field.placeholder | translate\"\n [colorPicker]=\"group.get(field.name).value\"\n [value]=\"group.get(field.name).value\"\n (colorPickerChange)=\"group.get(field.name).setValue($event)\"\n class=\"colorPicker\"\n [style.background]=\"group.get(field.name).value\"\n [style.color]=\"invertColor(group.get(field.name).value,true)\"\n [formControlName]=\"field.name\">\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n \n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormColorComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n\n ngOnInit() { super.ngOnInit(); }\n\n invertColor(hex, bw): string {\n if (hex.indexOf('#') === 0) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n if (hex.length !== 6) {\n return '#000000';\n }\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n if (bw) {\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\n ? '#000000'\n : '#FFFFFF';\n }\n // invert color components\n const r1 = (255 - r).toString(16);\n const g1 = (255 - g).toString(16);\n const b1 = (255 - b).toString(16);\n // pad each with zeros and return\n return \"#\" + r1 + g1 + b1;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnInit, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface IButton {\n event?: any;\n uiButton?: IUIButton;\n}\n\nexport interface IUIButton {\n label?: string;\n color?: string;\n icon?: string;\n iconSvg?: string;\n disabled?: boolean;\n class?: string;\n type?: string;\n accept?: string;\n}\n\n@Component({\n selector: 'kles-button',\n template: `\n <span>\n <button mat-button [type]=\"type\" [ngClass]=\"classButton\" [color]=\"(color)?color:'primary'\" [disabled]=\"disabled\"\n (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n {{label | translate}}\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n <mat-icon svgIcon=\"{{iconSvg}}\" *ngIf=\"iconSvg\"></mat-icon>\n </button>\n </span>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonComponent),\n multi: true\n }\n ]\n})\nexport class KlesButtonComponent implements OnInit, ControlValueAccessor {\n @Input() name = '';\n @Input() label = '';\n @Input() color = 'accent';\n @Input() icon = '';\n @Input() iconSvg = '';\n @Input() disabled = false;\n @Input() type = 'submit';\n @Input() classButton = '';\n @Input() value: IButton = {};\n @Input() tooltip?: string;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n ngOnInit(): void {\n }\n\n click(event) {\n this.value.event = this.name;\n this.onChange(this.value);\n }\n\n writeValue(value: IButton): void {\n if (!value) {\n value = { event: this.name };\n }\n if (!value.event) {\n value.event = this.name;\n }\n if (value.uiButton) {\n const uiButton = value.uiButton;\n this.label = (uiButton.label) ? uiButton.label : this.label;\n this.color = (uiButton.color) ? uiButton.color : this.color;\n this.icon = (uiButton.icon) ? uiButton.icon : this.icon;\n this.iconSvg = (uiButton.iconSvg) ? uiButton.iconSvg : this.iconSvg;\n this.disabled = (uiButton.disabled) ? uiButton.disabled : this.disabled;\n this.classButton = (uiButton.class) ? uiButton.class : this.classButton;\n this.type = (uiButton.type) ? uiButton.type : 'submit';\n }\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n\n@Component({\n selector: 'kles-form-button',\n template: `\n <div [formGroup]=\"group\">\n <kles-button\n [attr.id]=\"field.id\" [classButton]=\"field.ngClass\" \n [name]=\"field.name\" [label]=\"field.label\" [color]=\"field.color\" \n [icon]=\"field.icon\"\n [iconSvg]=\"field.iconSvg\"\n [value]=\"field.value\"\n [formControlName]=\"field.name\"\n [tooltip]=\"field.tooltip\"\n [type]=\"field.buttonType\"\n >\n </kles-button>\n </div>\n `,\n styles: []\n})\nexport class KlesFormButtonComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnInit, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IButton, KlesButtonComponent } from './button-control.component';\n\nexport interface IButtonChecker extends IButton {\n busy: boolean;\n error?: any[];\n message?: string;\n}\n\n@Component({\n selector: 'kles-button-checker',\n template: `\n <span *ngIf=\"value.error && !value.busy\">\n <kles-button \n [classButton]=\"classButton\" \n [name]=\"name\" [label]=\"label\" [color]=\"color\" \n [icon]=\"icon\" [iconSvg]=\"iconSvg\"\n [value]=\"value\" \n [tooltip]=\"tooltip\"\n [disabled]=\"disabled\"\n matBadge=\"{{countError()}}\" (click)=\"click($event)\">\n </kles-button>\n </span>\n <span style=\"text-align: center;\">\n <span style=\"text-align: center;margin-right: 10px\" *ngIf=\"value.busy||false\">\n <mat-spinner [diameter]=\"25\"></mat-spinner>\n </span>\n <span *ngIf=\"value.message\" style=\"margin-right: 10px\">\n {{value.message|translate}}\n </span>\n </span>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonCheckerComponent),\n multi: true\n }\n ]\n})\nexport class KlesButtonCheckerComponent extends KlesButtonComponent implements ControlValueAccessor {\n value: IButtonChecker = {\n busy: false,\n error: [],\n event: false\n };\n\n countError(): number {\n return (this.value.error) ? this.value.error.length : 0;\n }\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-button-checker',\n template: `\n <div [formGroup]=\"group\">\n <kles-button-checker\n [attr.id]=\"field.id\" [classButton]=\"field.ngClass\"\n [name]=\"field.name\" [label]=\"field.label\" [color]=\"field.color\"\n [icon]=\"field.icon\"\n [iconSvg]=\"field.iconSvg\"\n [value]=\"field.value\"\n [formControlName]=\"field.name\"\n [tooltip]=\"field.tooltip\">\n </kles-button-checker>\n </div>\n `,\n styles: []\n})\nexport class KlesFormButtonCheckerComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Input } from '@angular/core';\nimport { Component, OnInit, forwardRef, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IButton, KlesButtonComponent } from './button-control.component';\n\nexport interface IButtonFile extends IButton {\n fileContent?: string | string[];\n}\n\n@Component({\n selector: 'kles-button-file',\n template: `\n <input type=\"file\" #file style=\"display: none\" [accept]=\"accept\" (change)=\"onFileSelect($event.target)\" multiple />\n <kles-button\n [classButton]=\"classButton\"\n [name]=\"name\" [label]=\"label\" [color]=\"color\"\n [icon]=\"icon\" [iconSvg]=\"iconSvg\"\n [disabled]=\"disabled\"\n [value]=\"value\" (click)=\"click($event)\">\n </kles-button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonFileComponent),\n multi: true\n }\n ]\n})\nexport class KlesButtonFileComponent extends KlesButtonComponent implements ControlValueAccessor {\n @ViewChild('file') file;\n @Input() accept = '*.*';\n fileReader = new FileReader();\n fileContent: string | string[];\n value: IButtonFile = {};\n\n click(event) {\n this.file.nativeElement.click();\n }\n\n writeValue(value: IButton): void {\n if (!value) {\n value = { event: this.name };\n }\n if (!value.event) {\n value.event = this.name;\n }\n if (value.uiButton) {\n const uiButton = value.uiButton;\n this.label = (uiButton.label) ? uiButton.label : this.label;\n this.color = (uiButton.color) ? uiButton.color : this.color;\n this.icon = (uiButton.icon) ? uiButton.icon : this.icon;\n this.iconSvg = (uiButton.iconSvg) ? uiButton.iconSvg : this.iconSvg;\n this.disabled = (uiButton.disabled) ? uiButton.disabled : this.disabled;\n this.classButton = (uiButton.class) ? uiButton.class : this.classButton;\n this.accept = (uiButton.accept) ? uiButton.accept : this.accept;\n }\n this.value = value;\n }\n\n\n onFileLoad(fileLoadedEvent) {\n const textFromFileLoaded = fileLoadedEvent.target.result;\n this.fileContent = textFromFileLoaded;\n }\n\n async onFileSelect(input: HTMLInputElement) {\n if (input.files.length > 0) {\n const files = input.files;\n let fileContent = [];\n if (files && files.length) {\n for (let i = 0; i < files.length; i++) {\n try {\n fileContent[i] = await this.readUploadedFile(files[i]);\n } catch (e) {\n }\n }\n if (fileContent.length === 1) {\n fileContent = fileContent[0];\n }\n }\n this.value.event = this.name;\n this.value.fileContent = fileContent;\n this.onChange(this.value);\n input.value = '';\n }\n }\n\n readUploadedFile(inputFile): Promise<any> {\n const temporaryFileReader = new FileReader();\n return new Promise((resolve, reject) => {\n temporaryFileReader.onerror = () => {\n temporaryFileReader.abort();\n const error: DOMException = new DOMException('Problem parsing input file.');\n reject(error);\n };\n temporaryFileReader.onload = () => {\n resolve(temporaryFileReader.result);\n };\n temporaryFileReader.readAsArrayBuffer(inputFile);\n });\n }\n}\n","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-button-file',\n template: `\n <div [formGroup]=\"group\">\n <kles-button-file\n [attr.id]=\"field.id\" [classButton]=\"field.ngClass\" \n [name]=\"field.name\" [label]=\"field.label\" [color]=\"field.color\" \n [icon]=\"field.icon\"\n [iconSvg]=\"field.iconSvg\"\n [value]=\"field.value\"\n [formControlName]=\"field.name\"\n [type]=\"field.buttonType\"\n [accept]=\"field.accept\"\n >\n </kles-button-file>\n </div>\n `,\n styles: []\n})\nexport class KlesFormButtonFileComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-textarea',\n template: `\n <mat-form-field [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\">\n <textarea matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" \n [formControlName]=\"field.name\" cdkTextareaAutosize [placeholder]=\"field.placeholder | translate\"\n [cdkAutosizeMinRows]=\"field.textareaAutoSize?.minRows\" [cdkAutosizeMaxRows]=\"field.textareaAutoSize?.maxRows\" [maxlength]=\"field.maxLength\">\n </textarea>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormTextareaComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.text })\n@Component({\n selector: 'kles-form-text',\n template: `\n <span matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\">\n {{((field.property && group.controls[field.name].value) ? group.controls[field.name].value[field.property] : group.controls[field.name].value) | klesTransform:field.pipeTransform}}\n </span>\n`\n})\nexport class KlesFormTextComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n super.ngOnInit();\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from \"./field.abstract\";\n\n@Component({\n selector: \"kles-form-chip\",\n template: `\n <div [formGroup]=\"group\"> \n <mat-chip-list>\n <mat-chip [color]=\"field.color\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" selected [ngClass]=\"field.ngClass\" [ngStyle]=\"field.ngStyle\">\n <mat-icon *ngIf=\"field.icon\">{{field.icon}}</mat-icon>\n {{group.controls[field.name].value | klesTransform:field.pipeTransform}}\n </mat-chip>\n </mat-chip-list>\n </div>\n`,\n styles: []\n})\nexport class KlesFormChipComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { AbstractControl, FormGroup, UntypedFormGroup } from \"@angular/forms\";\nimport { KlesFormControl } from \"./default.control\";\n\nexport class KlesFormGroup extends KlesFormControl {\n\n public create(): AbstractControl<any, any> {\n const subGroup = new UntypedFormGroup({});\n if (this.field.collections && Array.isArray(this.field.collections)) {\n this.field.collections.forEach(subfield => {\n const control = new KlesFormControl({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] }).create();\n subGroup.addControl(subfield.name, control);\n });\n }\n\n if (this.field.disabled) {\n subGroup.disable();\n }\n\n return subGroup;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { KlesFormGroup } from '../controls/group.control';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.group, factory: (field) => (new KlesFormGroup(field).create()) })\n@Component({\n selector: 'kles-group',\n template: `\n <div [formGroup]=\"group\" class=\"group-container\">\n <div [formGroupName]=\"field.name\" class=\"group-container\" [style.flex-direction]=\"field.direction || 'inherit'\" [ngClass]=\"field.ngClass\">\n <ng-container *ngFor=\"let subfield of field.collections;\">\n <ng-container *ngIf=\"subfield.visible !== false\" klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"field.collections\">\n </ng-container>\n </ng-container>\n </div>\n </div>\n`,\n styles: ['mat-form-field {width: calc(100%)}',\n ':host { display:flex; flex-direction: inherit}',\n // '.row { gap:10px;}',\n // '.group-container {display:flex; flex-direction: inherit; width: inherit; flex-wrap: wrap}'\n '.group-container {display:flex; flex-direction: inherit; width: inherit;}'\n ]\n})\nexport class KlesFormGroupComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n subGroup: UntypedFormGroup;\n\n ngOnInit() {\n this.subGroup = this.group.controls[this.field.name] as UntypedFormGroup;\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFormInputComponent } from './input.component';\n\n@Component({\n selector: 'kles-form-input-clearable',\n template: `\n <mat-form-field [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\">\n\n <ng-container *ngIf=\"field.autocomplete; else notAutoComplete\">\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\" [min]=\"field.min\" [max]=\"field.max\" [step]=\"field.step\"\n [matAutocomplete]=\"auto\">\n\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn.bind(this)\" [panelWidth]=\"this.field.panelWidth\">\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *ngFor=\"let option of filteredOption | async\" [value]=\"option\">\n {{field.property ? option[field.property] : option}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *ngFor=\"let option of filteredOption | async\" [value]=\"option\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"option\" [field]=\"field\">\n </ng-container>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n </ng-container>\n\n <ng-template #notAutoComplete>\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\" [min]=\"field.min\" [max]=\"field.max\" [step]=\"field.step\">\n </ng-template>\n <button *ngIf=\"!group.get(field.name).disabled\" mat-button matSuffix mat-icon-button aria-label=\"Clear\" type=\"button\"\n (click)=\"group.controls[field.name].reset();\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-spinner matSuffix mode=\"indeterminate\" *ngIf=\"isPending()\" diameter=\"17\"></mat-spinner>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormInputClearableComponent extends KlesFormInputComponent implements OnInit, OnDestroy {\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: \"kles-form-icon\",\n template: `\n <mat-icon [color]=\"field.color\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [ngStyle]=\"field.ngStyle\">\n {{group.controls[field.name].value}}\n </mat-icon>\n`,\n styles: []\n})\nexport class KlesFormIconComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { ViewEncapsulation } from '@angular/compiler';\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { BehaviorSubject, concat, Observable, of, ReplaySubject, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-select-search',\n template: `\n <mat-form-field class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\">\n <mat-select matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\"\n (openedChange)=\"openChange($event)\" [compareWith]=\"compareFn\"\n [placeholder]=\"field.placeholder | translate\" [formControlName]=\"field.name\" [multiple]=\"field.multiple\">\n <mat-select-trigger *ngIf=\"field.triggerComponent\">\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n\n <ng-container *ngIf=\"field.virtualScroll\">\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\"\n placeholderLabel=\"\" noEntriesFoundLabel =\"\"></ngx-mat-select-search>\n </mat-option>\n\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 50\" [style.height.px]=4*48>\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-checkbox *ngIf=\"field.multiple\" class=\"selectAll\" [formControl]=\"selectAllControl\"\n (change)=\"toggleAllSelection($event)\">\n {{'selectAll' | translate}}\n </mat-checkbox>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *cdkVirtualFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *cdkVirtualFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n </ng-container>\n\n <ng-container *ngIf=\"!field.virtualScroll\">\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\"\n placeholderLabel=\"\" noEntriesFoundLabel =\"\"></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-checkbox *ngIf=\"field.multiple\" class=\"selectAll\" [formControl]=\"selectAllControl\"\n (change)=\"toggleAllSelection($event)\">\n {{'selectAll' | translate}}\n </mat-checkbox>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *ngFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *ngFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </ng-container>\n </mat-select>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n \n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n`,\n styles: ['mat-form-field {width: calc(100%)}', '.selectAll {padding: 10px 16px;}',\n `::ng-deep .hide-checkbox .mat-pseudo-checkbox { display: none !important; }`],\n})\nexport class KlesFormSelectSearchComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n searchControl = new UntypedFormControl();\n selectAllControl = new UntypedFormControl(false);\n\n isLoading = false;\n\n options$: Observable<any[]>;\n optionsFiltered$ = new ReplaySubject<any[]>(1);\n\n openChange$ = new BehaviorSubject<boolean>(false);\n\n // private _onDestroy = new Subject<void>();\n\n @ViewChild(CdkVirtualScrollViewport) cdkVirtualScrollViewport: CdkVirtualScrollViewport;\n @ViewChildren(MatOption) options: QueryList<MatOption>;\n\n constructor(protected viewRef: ViewContainerRef, protected ref: ChangeDetectorRef) {\n super(viewRef);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.field.lazy) {\n this.isLoading = true;\n if (this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null) {\n this.options$ = new BehaviorSubject<any[]>(Array.isArray(this.group.controls[this.field.name].value) ? this.group.controls[this.field.name].value : [this.group.controls[this.field.name].value]);\n this.isLoading = false;\n } else {\n this.options$ = new BehaviorSubject<any[]>([]);\n }\n\n this.openChangeEvent();\n } else {\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n }\n\n this.searchControl.valueChanges.pipe(\n takeUntil(this._onDestroy),\n debounceTime(this.field.debounceTime || 0),\n startWith(this.searchControl.value),\n switchMap(value => {\n return concat(\n of({ loading: true, options: [] }),\n this.onSearchChange(value).pipe(map((options) => ({ loading: false, options })))\n )\n\n })\n ).subscribe(({ loading, options }) => {\n this.isLoading = loading;\n this.optionsFiltered$.next(options);\n this.ref.markForCheck();\n });\n\n if (this.field.multiple) {\n this.group.controls[this.field.name]\n .valueChanges.pipe(\n takeUntil(this._onDestroy),\n startWith(this.group.controls[this.field.name].value),\n map((selected) => (this.field.property ? selected?.map(s => s[this.field.property]) : selected)),\n switchMap(selected => {\n return this.optionsFiltered$.pipe(\n map((options) => options?.filter((option) => !option?.disabled).map((option) => (this.field.property ? option[this.field.property] : option))),\n map(options => {\n if (!selected) {\n return false;\n }\n if (options.length < selected.length) {\n return options.length > 0 && options.every(o => selected.includes(o));\n } else {\n return options.length > 0 && options.length === selected.length && selected.every(s => options.includes(s));\n }\n }));\n })\n ).subscribe(isChecked => {\n this.selectAllControl.setValue(isChecked);\n });\n }\n }\n\n ngOnDestroy(): void {\n // this._onDestroy.next();\n super.ngOnDestroy();\n }\n\n\n toggleAllSelection(state) {\n if (state.checked) {\n this.optionsFiltered$.pipe(take(1), map((options) => options.filter((option) => !option?.disabled))).subscribe(options => {\n if (options.length > 0) {\n this.group.controls[this.field.name].patchValue(options.slice());\n }\n });\n\n } else {\n this.group.controls[this.field.name].patchValue([]);\n }\n }\n\n\n protected openChangeEvent(): void {\n this.openChange$\n .pipe(\n takeUntil(this._onDestroy),\n switchMap((isOpen) => {\n return this.onOpenChange(isOpen);\n })\n )\n .subscribe((options) => {\n (this.options$ as BehaviorSubject<any[]>).next(options);\n this.isLoading = false;\n this.ref.markForCheck();\n });\n }\n\n protected onOpenChange(isOpen: boolean): Observable<any[]> {\n if (isOpen) {\n\n if (this.field.options instanceof Observable) {\n this.isLoading = true;\n return this.field.options.pipe(take(1));\n }\n else if (this.field.options instanceof Function) {\n this.isLoading = true;\n return this.field.options().pipe(take(1));\n }\n else {\n return of(this.field.options);\n }\n } else {\n return of(this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null\n ? (Array.isArray(this.group.controls[this.field.name].value) ?\n this.group.controls[this.field.name].value : [this.group.controls[this.field.name].value]) : [])\n }\n }\n\n protected onSearchChange(value: string): Observable<any[]> {\n if (value) {\n const search = value.toLowerCase();\n return this.options$.pipe(map(options => {\n return options\n .filter(option => {\n if (this.field.searchKeys && this.field.searchKeys.length) {\n return this.field.searchKeys.some(searchKey => {\n if (option[searchKey]) {\n return option[searchKey].toString().toLowerCase().indexOf(search) > -1;\n }\n return false;\n }) || (this.field.property ?\n option[this.field.property].toString().toLowerCase().indexOf(search) > -1 : false);\n\n } else {\n if (this.field.property) {\n return option[this.field.property].toString().toLowerCase().indexOf(search) > -1;\n }\n }\n return option.toString().toLowerCase().indexOf(search) > -1;\n });\n }));\n } else {\n return this.options$;\n }\n }\n\n openChange($event: boolean) {\n if (this.field.lazy) {\n this.openChange$.next($event);\n }\n\n if (this.field.virtualScroll) {\n if ($event) {\n this.cdkVirtualScrollViewport.scrollToIndex(0);\n this.cdkVirtualScrollViewport.checkViewportSize();\n }\n }\n }\n\n compareFn = (o1: any, o2: any) => {\n if (this.field.property && o1 && o2) {\n return o1[this.field.property] === o2[this.field.property];\n }\n return o1 === o2;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.lineBreak })\n@Component({\n selector: 'kles-form-line-break',\n template: ``,\n styles: [\n `:host{\n flex-basis: 100%;\n display: flex;\n height:0;\n }`\n ]\n})\nexport class KlesFormLineBreakComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'arrayFormat' })\nexport class ArrayFormatPipe implements PipeTransform {\n\n transform(values: any[], property?: string): string {\n if (values && Array.isArray(values)) {\n if (property) {\n return values.map(value => value[property]).filter(Boolean).join(', ');\n } else {\n return values.join(', ');\n }\n }\n return '';\n }\n}","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from \"./field.abstract\";\n\n@Component({\n selector: 'kles-form-link',\n template: `\n <a [href]=\"group.controls[field.name].value\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\">\n {{field.label}}\n </a>\n`\n})\nexport class KlesFormLinkComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n\n@Component({\n selector: 'kles-form-slide-toggle',\n template: `\n <div [formGroup]=\"group\" >\n <mat-slide-toggle matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [color]=\"field.color\" [formControlName]=\"field.name\">{{field.label | translate}}</mat-slide-toggle>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message}}</mat-error>\n </ng-container>\n </div>\n`,\n styles: []\n})\nexport class KlesFormSlideToggleComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { Observable, of } from 'rxjs';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-selection-list',\n template: `\n <div class=\"margin-top\" [formGroup]=\"group\">\n <mat-selection-list [formControlName]=\"field.name\" [attr.id]=\"field.id\" [multiple]=\"field.multiple\" [ngClass]=\"field.ngClass\">\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-list-option [value]=\"item\" *ngFor=\"let item of options$ | async;\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-list-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-list-option *ngFor=\"let item of options$ | async;\" [value]=\"item\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n </ng-container>\n </mat-selection-list>\n </div>\n`,\n styles: ['mat-selection-list {width: calc(100%);height: 250px; overflow:auto}'],\n})\nexport class KlesFormSelectionListComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n options$: Observable<any[]>;\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.badge })\n@Component({\n selector: 'kles-form-badge',\n template: `\n <span matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" \n matBadge=\"{{group.controls[field.name].value}}\" matBadgeOverlap=\"false\" matBadgeColor=\"{{field.color}}\">\n </span>\n`\n})\nexport class KlesFormBadgeComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-button-toogle-group',\n template: `\n <div [formGroup]=\"group\" class=\"form-element\">\n <mat-button-toggle-group [formControlName]=\"field.name\" [multiple]=\"field.multiple\"\n [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\">\n <mat-button-toggle *ngFor=\"let item of options$ | async\" [value]=\"item\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n`\n})\nexport class KlesFormButtonToogleGroupComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n options$: Observable<any[]>;\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { AbstractControl, FormArray, FormControl, FormGroup } from \"@angular/forms\";\nimport { KlesFormControl } from \"./default.control\";\nimport { v4 as uuidv4 } from 'uuid';\n\nexport class KlesFormArray extends KlesFormControl {\n\n public create(): AbstractControl<any, any> {\n const array = new FormArray([], {\n validators: this.bindValidations(this.field.validations || []),\n asyncValidators: this.bindAsyncValidations(this.field.asyncValidations || []),\n updateOn: this.field.updateOn || 'change'\n });\n\n if (this.field.value && Array.isArray(this.field.value)) {\n if (this.field.collections && Array.isArray(this.field.collections)) {\n this.field.value.forEach(val => {\n const group = new FormGroup({});\n group.addControl('_id', new FormControl(uuidv4()));\n this.field.collections.forEach(subfield => {\n const data = val[subfield.name] || null;\n const control = new KlesFormControl({ ...subfield, ...(data && { value: data }) }).create();\n group.addControl(subfield.name, control);\n });\n array.push(group);\n });\n }\n } else {\n const group = new FormGroup({});\n this.field.collections.forEach(subfield => {\n const control = new KlesFormControl({ ...subfield }).create();\n group.addControl(subfield.name, control);\n });\n array.push(group);\n }\n\n\n if (this.field.disabled) {\n array.disable();\n }\n\n\n return array;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormArray } from '@angular/forms';\nimport { KlesFormArray } from '../controls/array.control';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.array, factory: (field) => (new KlesFormArray(field).create()) })\n@Component({\n selector: 'kles-array',\n template: `\n <div [formGroup]=\"group\">\n <ng-container [formArrayName]=\"field.name\">\n <div class=\"group-container\" *ngFor=\"let subGroup of formArray.controls let index = index;\"\n [ngClass]=\"field.direction === 'column' ? 'column': 'row'\">\n <ng-container *ngFor=\"let subfield of field.collections;\">\n <ng-container *ngIf=\"subfield.visible !== false\"\n klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"field.collections\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n`,\n styles: ['mat-form-field {width: calc(100%)}',\n ':host { display:flex; flex-direction: inherit}',\n '.group-container {display:flex; flex-direction: inherit}',\n '.row { gap: 10px; flex-direction: row }',\n '.column { flex-direction: column; gap: 0px}'\n ]\n})\nexport class KlesFormArrayComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n // subGroup: FormGroup\n\n formArray: UntypedFormArray;\n\n ngOnInit() {\n // this.subGroup = this.group.controls[this.field.name] as FormGroup;\n super.ngOnInit();\n this.formArray = this.group.controls[this.field.name] as UntypedFormArray;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { AbstractControl, FormControl, FormGroup, UntypedFormGroup } from \"@angular/forms\";\nimport { KlesFormControl } from \"./default.control\";\n\nexport class KlesFormRange extends KlesFormControl {\n\n public create(): AbstractControl<any, any> {\n const range = new FormGroup({\n start: new FormControl(this.field.value?.start),\n end: new FormControl(this.field.value?.end),\n }, {\n validators: this.bindValidations(this.field.validations || []),\n asyncValidators: this.bindAsyncValidations(this.field.asyncValidations || []),\n });\n\n if (this.field.disabled) {\n range.disable();\n }\n return range;\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFormRange } from \"../controls/range.control\";\nimport { FieldMapper } from \"../decorators/component.decorator\";\nimport { EnumType } from \"../enums/type.enum\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.range, factory: (field) => (new KlesFormRange(field).create()) })\n@Component({\n selector: \"kles-form-rangepicker\",\n template: `\n <mat-form-field [color]=\"field.color\" [formGroup]=\"group\">\n\n <mat-label>{{field.label}}</mat-label>\n\n <mat-date-range-input [formGroupName]=\"field.name\" [rangePicker]=\"picker\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\"\n [min]=\"field.min\" [max]=\"field.max\" >\n <input matStartDate formControlName=\"start\" [placeholder]=\"(field.placeholder?.start ? field.placeholder?.start : '') | translate\">\n <input matEndDate formControlName=\"end\" [placeholder]=\"(field.placeholder?.end ? field.placeholder?.end : '') | translate\">\n </mat-date-range-input>\n \n <div matSuffix>\n <mat-datepicker-toggle [for]=\"picker\" matSuffix></mat-datepicker-toggle>\n <ng-content></ng-content>\n </div>\n\n <mat-date-range-picker #picker></mat-date-range-picker>\n <mat-hint>{{field.hint}}</mat-hint>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormRangeComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n // range = new FormGroup({\n // start: new FormControl<Date | null>(null),\n // end: new FormControl<Date | null>(null),\n // });\n\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { ViewEncapsulation } from '@angular/compiler';\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { BehaviorSubject, Observable, of, ReplaySubject, Subject } from 'rxjs';\nimport { map, startWith, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { KlesFormSelectSearchComponent } from './select.search.component';\n\n@Component({\n selector: 'kles-form-select-lazy-search',\n template: `\n <mat-form-field class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\">\n <mat-select matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\"\n (openedChange)=\"openChange($event)\" [compareWith]=\"compareFn\"\n [placeholder]=\"field.placeholder | translate\" [formControlName]=\"field.name\" [multiple]=\"field.multiple\">\n <mat-select-trigger *ngIf=\"field.triggerComponent\">\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n\n <ng-container *ngIf=\"field.virtualScroll\">\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" [clearSearchInput]=\"false\"\n placeholderLabel=\"\" noEntriesFoundLabel =\"\"></ngx-mat-select-search>\n </mat-option>\n\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 50\" [style.height.px]=4*48>\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-checkbox *ngIf=\"field.multiple\" class=\"selectAll\" [formControl]=\"selectAllControl\"\n (change)=\"toggleAllSelection($event)\">\n {{'selectAll' | translate}}\n </mat-checkbox>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *cdkVirtualFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *cdkVirtualFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n </ng-container>\n\n <ng-container *ngIf=\"!field.virtualScroll\">\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" [clearSearchInput]=\"false\" \n placeholderLabel=\"\" noEntriesFoundLabel =\"\"></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-checkbox *ngIf=\"field.multiple\" class=\"selectAll\" [formControl]=\"selectAllControl\"\n (change)=\"toggleAllSelection($event)\">\n {{'selectAll' | translate}}\n </mat-checkbox>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *ngFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *ngFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </ng-container>\n </mat-select>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n \n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n`,\n styles: ['mat-form-field {width: calc(100%)}', '.selectAll {padding: 10px 16px;}',\n `::ng-deep .hide-checkbox .mat-pseudo-checkbox { display: none !important; }`],\n})\nexport class KlesFormSelectLazySearchComponent extends KlesFormSelectSearchComponent implements OnInit, OnDestroy {\n\n constructor(protected viewRef: ViewContainerRef, protected ref: ChangeDetectorRef) {\n super(viewRef, ref);\n }\n\n ngOnInit() {\n this.field.lazy = true;\n this.field.debounceTime = this.field.debounceTime ? this.field.debounceTime : 500;\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n protected onSearchChange(value: string): Observable<any[]> {\n if (this.field.options instanceof Function) {\n if (this.openChange$.getValue() && this.field.options instanceof Function) {\n if (value) {\n return this.field.options(value).pipe(take(1));\n } else {\n return this.field.options().pipe(take(1));\n }\n }\n return of(this.group.controls[this.field.name].value ? [this.group.controls[this.field.name].value] : []);\n }\n else {\n return super.onSearchChange(value);\n }\n }\n\n protected openChangeEvent(): void {\n this.openChange$\n .pipe(\n takeUntil(this._onDestroy),\n switchMap((isOpen) => {\n return this.onOpenChange(isOpen).pipe(map((options) => ({ options, isOpen })));\n })\n )\n .subscribe(({ options, isOpen }) => {\n if (!isOpen) {\n this.searchControl.reset(null, { emitEvent: false });\n }\n this.optionsFiltered$.next(options);\n this.isLoading = false;\n this.ref.markForCheck();\n });\n }\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { KlesDynamicFormComponent } from './dynamic-form.component';\nimport { KlesComponentDirective } from './directive/dynamic-component.directive';\nimport { KlesDynamicFieldDirective } from './directive/dynamic-field.directive';\nimport { KlesFormErrorStateMatcher } from './matcher/form-error.matcher';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { MaterialModule } from './modules/material.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { KlesFormLabelComponent } from './fields/label.component';\nimport { KlesFormInputComponent } from './fields/input.component';\nimport { KlesFormSubmitButtonComponent } from './fields/button-submit.component';\nimport { KlesFormSelectComponent } from './fields/select.component';\nimport { KlesFormDateComponent } from './fields/date.component';\nimport { KlesFormRadioComponent } from './fields/radio.component';\nimport { KlesFormCheckboxComponent } from './fields/checkbox.component';\nimport { KlesFormListFieldComponent } from './fields/list-field.component';\nimport { KlesFormColorComponent } from './fields/color.component';\nimport { KlesButtonComponent } from './forms/button-control.component';\nimport { KlesFormButtonComponent } from './fields/button-form.component';\nimport { KlesButtonCheckerComponent } from './forms/buttonchecker-control.component';\nimport { KlesFormButtonCheckerComponent } from './fields/buttonchecker-form.component';\nimport { KlesButtonFileComponent } from './forms/buttonfile-control.component';\nimport { KlesFormButtonFileComponent } from './fields/buttonfile-form.component';\nimport { KlesFormTextareaComponent } from './fields/textarea.component';\nimport { KlesFormTextComponent } from './fields/text.component';\nimport { KlesFormChipComponent } from './fields/chip.component';\nimport { KlesFormGroupComponent } from './fields/group.component';\nimport { KlesFormInputClearableComponent } from './fields/input.clearable.component';\nimport { KlesFormIconComponent } from './fields/icon.component';\nimport { KlesTransformPipe } from './pipe/transform.pipe';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { KlesFormSelectSearchComponent } from './fields/select.search.component';\nimport { KlesFormLineBreakComponent } from './fields/line-break.component';\nimport { ArrayFormatPipe } from './pipe/array.pipe';\nimport { KlesFormLinkComponent } from './fields/link.component';\nimport { KlesFormSlideToggleComponent } from './fields/slide-toggle.component';\nimport { KlesFormSelectionListComponent } from './fields/selection-list.component';\nimport { KlesFormBadgeComponent } from './fields/badge.component';\nimport { KlesFormButtonToogleGroupComponent } from './fields/button-toogle-group.component';\nimport { KlesFormArrayComponent } from './fields/array.component';\nimport { KlesFormRangeComponent } from './fields/range.component';\nimport { KlesFormClearComponent } from './fields/clear.component';\nimport { KlesFormSelectLazySearchComponent } from './fields/select.lazy-search.component';\n\nconst components = [\n KlesDynamicFormComponent,\n KlesFormLabelComponent,\n KlesFormInputComponent,\n KlesFormInputClearableComponent,\n KlesFormSubmitButtonComponent,\n KlesFormBadgeComponent,\n KlesButtonComponent,\n KlesFormButtonComponent,\n KlesButtonCheckerComponent,\n KlesFormButtonCheckerComponent,\n KlesButtonFileComponent,\n KlesFormButtonFileComponent,\n KlesFormSelectComponent,\n KlesFormDateComponent,\n KlesFormRadioComponent,\n KlesFormCheckboxComponent,\n KlesFormListFieldComponent,\n KlesFormColorComponent,\n KlesFormTextareaComponent,\n KlesFormTextComponent,\n KlesFormChipComponent,\n KlesFormGroupComponent,\n KlesFormIconComponent,\n KlesFormSelectSearchComponent,\n KlesFormLineBreakComponent,\n KlesFormLinkComponent,\n KlesFormSlideToggleComponent,\n KlesFormSelectionListComponent,\n KlesFormButtonToogleGroupComponent,\n KlesFormArrayComponent,\n KlesFormRangeComponent,\n KlesFormClearComponent,\n KlesFormSelectLazySearchComponent\n];\n\nconst directives = [KlesDynamicFieldDirective, KlesComponentDirective];\nconst pipes = [KlesTransformPipe, ArrayFormatPipe];\n@NgModule({\n declarations: [\n components,\n directives,\n pipes\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n FlexLayoutModule,\n FormsModule,\n MaterialModule,\n ColorPickerModule,\n NgxMatSelectSearchModule\n ],\n providers: [\n { provide: ErrorStateMatcher, useClass: KlesFormErrorStateMatcher },\n pipes\n ],\n exports: [\n components,\n pipes,\n directives,\n ColorPickerModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]\n})\nexport class KlesMaterialDynamicformsModule {\n static declarations = [\n components,\n directives,\n pipes\n ];\n}\n","import { AbstractControl, ValidatorFn } from \"@angular/forms\"\n\nexport function autocompleteObjectValidator(optional?: boolean): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if ((control.value === null || control.value === undefined) && !optional) return { 'invalidAutocompleteObject': { value: control.value } }\n\n if (typeof control.value === 'string') {\n if (control.value === '' && optional) return null;\n return { 'invalidAutocompleteObject': { value: control.value } }\n }\n return null /* valid option selected */\n }\n}\n\nexport function autocompleteStringValidator(validOptions: Array<string>, optional?: boolean): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if ((control.value === '' || control.value === null) && optional) return null;\n if (validOptions.indexOf(control.value) !== -1) {\n return null /* valid option selected */\n }\n return { 'invalidAutocompleteString': { value: control.value } }\n }\n}","/*\n * Public API Surface of kles-material-dynamicforms\n */\n\nexport * from './lib/kles-material-dynamicforms.module';\n\n/**DIRECTIVE */\nexport * from './lib/directive/dynamic-field.directive';\nexport * from './lib/directive/dynamic-component.directive';\n\n/*FORMS*/\nexport * from './lib/forms/button-control.component';\nexport * from './lib/forms/buttonchecker-control.component';\nexport * from './lib/forms/buttonfile-control.component';\n\n/**FIELDS */\nexport * from './lib/fields/badge.component';\nexport * from './lib/fields/button-form.component';\nexport * from './lib/fields/buttonchecker-form.component';\nexport * from './lib/fields/buttonfile-form.component';\nexport * from './lib/fields/button-submit.component';\nexport * from './lib/fields/checkbox.component';\nexport * from './lib/fields/color.component';\nexport * from './lib/fields/date.component';\nexport * from './lib/fields/field.abstract';\nexport * from './lib/fields/input.component';\nexport * from './lib/fields/input.clearable.component';\nexport * from './lib/fields/label.component';\nexport * from './lib/fields/list-field.component';\nexport * from './lib/fields/radio.component';\nexport * from './lib/fields/select.component';\nexport * from './lib/fields/textarea.component';\nexport * from './lib/fields/text.component';\nexport * from './lib/fields/chip.component';\nexport * from './lib/fields/group.component';\nexport * from './lib/fields/icon.component';\nexport * from './lib/fields/select.search.component';\nexport * from './lib/fields/line-break.component';\nexport * from './lib/fields/link.component';\nexport * from './lib/fields/slide-toggle.component';\nexport * from './lib/fields/selection-list.component';\nexport * from './lib/fields/button-toogle-group.component';\nexport * from './lib/fields/array.component';\nexport * from './lib/fields/range.component';\nexport * from './lib/fields/clear.component';\nexport * from './lib/fields/select.lazy-search.component';\n\n/**ENUMS */\nexport * from './lib/enums/type.enum';\n\n/**INTERFACES */\nexport * from './lib/interfaces/component.interface';\nexport * from './lib/interfaces/field.interface';\nexport * from './lib/interfaces/field.config.interface';\nexport * from './lib/interfaces/validator.interface';\nexport * from './lib/interfaces/directive.interface';\nexport * from './lib/interfaces/clear-control.interface';\n\n/**MATCHER */\nexport * from './lib/matcher/form-error.matcher';\n\n/**VALIDATORS */\nexport * from './lib/validators/autocomplete.validator';\n\n/**FORM */\nexport * from './lib/dynamic-form.component';\n\n/**PIPES */\nexport * from './lib/pipe/array.pipe';\nexport * from './lib/pipe/transform.pipe';\n\n/**DECORATORS */\nexport * from './lib/decorators/component.decorator';\n\n/**FACTORIES */\nexport * from './lib/factories/field.factory';\n\n/**CONTROLS */\nexport * from './lib/controls/array.control';\nexport * from './lib/controls/control.interface';\nexport * from './lib/controls/default.control';\nexport * from './lib/controls/group.control';\nexport * from './lib/controls/range.control';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1","i3.KlesDynamicFieldDirective","i4","i5","i6","i7","i8","i9","i10.KlesComponentDirective","i11","i10","i11.KlesComponentDirective","i12","i13.KlesTransformPipe","i2.KlesButtonComponent","i4.KlesButtonComponent","i2.KlesButtonCheckerComponent","i1.KlesButtonComponent","i2.KlesButtonFileComponent","i4.KlesTransformPipe","i7.KlesTransformPipe","i4.KlesDynamicFieldDirective","i12.KlesComponentDirective","i13","i13.KlesComponentDirective","i14","i15.KlesTransformPipe","i5.KlesComponentDirective","i6.KlesTransformPipe","i5.KlesTransformPipe","uuidv4"],"mappings":"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"}
1
+ {"version":3,"file":"3kles-kles-material-dynamicforms.mjs","sources":["../../../projects/kles-material-dynamicforms/src/lib/controls/default.control.ts","../../../projects/kles-material-dynamicforms/src/lib/factories/field.factory.ts","../../../projects/kles-material-dynamicforms/src/lib/decorators/component.decorator.ts","../../../projects/kles-material-dynamicforms/src/lib/enums/type.enum.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/clear.component.ts","../../../projects/kles-material-dynamicforms/src/lib/directive/dynamic-field.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/dynamic-form.component.ts","../../../projects/kles-material-dynamicforms/src/lib/directive/dynamic-component.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/matcher/form-error.matcher.ts","../../../projects/kles-material-dynamicforms/src/lib/modules/material.module.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/field.abstract.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/label.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/input.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-submit.component.ts","../../../projects/kles-material-dynamicforms/src/lib/pipe/transform.pipe.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/select.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/date.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/radio.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/checkbox.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/list-field.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/color.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/button-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-form.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/buttonchecker-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/buttonchecker-form.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/buttonfile-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/buttonfile-form.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/textarea.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/text.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/chip.component.ts","../../../projects/kles-material-dynamicforms/src/lib/controls/group.control.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/group.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/input.clearable.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/icon.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/select.search.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/line-break.component.ts","../../../projects/kles-material-dynamicforms/src/lib/pipe/array.pipe.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/link.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/slide-toggle.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/selection-list.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/badge.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-toogle-group.component.ts","../../../projects/kles-material-dynamicforms/src/lib/controls/array.control.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/array.component.ts","../../../projects/kles-material-dynamicforms/src/lib/controls/range.control.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/range.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/select.lazy-search.component.ts","../../../projects/kles-material-dynamicforms/src/lib/kles-material-dynamicforms.module.ts","../../../projects/kles-material-dynamicforms/src/lib/validators/autocomplete.validator.ts","../../../projects/kles-material-dynamicforms/src/public-api.ts","../../../projects/kles-material-dynamicforms/src/3kles-kles-material-dynamicforms.ts"],"sourcesContent":["import { AbstractControl, FormControl, ValidatorFn, Validators, AsyncValidatorFn } from \"@angular/forms\";\nimport { concat, of } from \"rxjs\";\nimport { catchError, map, take } from \"rxjs/operators\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\nimport { IKlesValidator } from \"../interfaces/validator.interface\";\nimport { IKlesControl } from \"./control.interface\";\n\nexport class KlesFormControl implements IKlesControl {\n\n constructor(protected field: IKlesFieldConfig) {\n }\n\n public create(): AbstractControl {\n const control = new FormControl(\n this.field.value,\n {\n validators: this.bindValidations(this.field.validations || []),\n asyncValidators: this.bindAsyncValidations(this.field.asyncValidations || []),\n updateOn: this.field.updateOn || 'change'\n }\n );\n\n if (this.field.disabled) {\n control.disable();\n }\n\n if (this.field.asyncValue) {\n concat(\n of({ value: null, pending: true }),\n this.field.asyncValue.pipe(\n take(1),\n catchError((err) => {\n console.error(err);\n return of(null);\n }),\n map((value) => ({ value, pending: false }))\n )\n ).subscribe((response) => {\n this.field.pending = response.pending;\n if (response.pending) {\n control.disable({ emitEvent: false });\n } else {\n if (!this.field.disabled) {\n control.enable({ emitEvent: false });\n }\n control.setValue(response.value);\n this.field.value = response.value;\n }\n });\n }\n\n return control;\n }\n\n public bindValidations(validations: IKlesValidator<ValidatorFn>[]): ValidatorFn {\n if (validations.length > 0) {\n const validList = [];\n validations.forEach(valid => {\n validList.push(valid.validator);\n });\n return Validators.compose(validList);\n\n }\n return null;\n }\n\n public bindAsyncValidations(validations: IKlesValidator<AsyncValidatorFn>[]): AsyncValidatorFn {\n if (validations.length > 0) {\n const validList = [];\n validations.forEach(valid => {\n validList.push(valid.validator);\n });\n return Validators.composeAsync(validList);\n\n }\n return null;\n }\n}\n","import { KlesFormControl } from \"../controls/default.control\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\n\n\nexport const klesFieldControlFactory = (field: IKlesFieldConfig) => {\n const factory = new KlesFormControl(field);\n return factory.create();\n}\n\n\n\n","import { Type } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { klesFieldControlFactory } from '../factories/field.factory';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\n\nexport const componentMapper: {\n component: Type<any>; type: string;\n factory: ((field: IKlesFieldConfig) => AbstractControl<any, any>)\n}[] = [];\n\nexport function FieldMapper(config: {\n type: string,\n factory?: (field: IKlesFieldConfig) => AbstractControl<any, any>\n}) {\n return (target: Type<any>) => {\n componentMapper.push({\n component: target,\n type: config.type,\n factory: config.factory || klesFieldControlFactory\n });\n };\n}\n","export enum EnumType {\n input = 'input',\n select = 'select',\n text = 'text',\n button = 'button',\n checkbox = 'checkbox',\n number = 'number',\n time = 'time',\n date = 'date',\n color = 'color',\n list = 'list',\n multi = 'multi',\n array = 'array',\n group = 'group',\n lineBreak = 'lineBreak',\n badge = 'badge',\n range = 'range'\n}","import { Component } from \"@angular/core\";\nimport { UntypedFormGroup } from \"@angular/forms\";\nimport { IKlesClearControl } from \"../interfaces/clear-control.interface\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\n\n@Component({\n selector: 'kles-form-clear',\n template: `\n <button *ngIf=\"group.get(field.name).value && !group.get(field.name).disabled\" mat-button mat-icon-button aria-label=\"Clear\" type=\"button\"\n (click)=\"clear($event)\">\n <mat-icon>close</mat-icon>\n </button>\n `,\n\n})\nexport class KlesFormClearComponent implements IKlesClearControl {\n field: IKlesFieldConfig;\n group: UntypedFormGroup;\n siblingFields: IKlesFieldConfig[];\n\n clear(event): void {\n event.stopPropagation();\n this.group.controls[this.field.name].reset();\n }\n}","import {\n Directive, Input, OnInit, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges, OnDestroy, Type, Injector, StaticProvider\n} from '@angular/core';\n\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { componentMapper } from '../decorators/component.decorator';\nimport { KlesFormClearComponent } from '../fields/clear.component';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\n\n@Directive({\n selector: '[klesDynamicField]'\n})\nexport class KlesDynamicFieldDirective implements OnInit, OnChanges, OnDestroy {\n @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() siblingFields: IKlesFieldConfig[];\n\n componentRef: ComponentRef<any>;\n subComponents: (ComponentRef<any>)[] = [];\n\n constructor(protected container: ViewContainerRef, private injector: Injector) { }\n\n ngOnDestroy(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n }\n\n ngOnInit() {\n this.buildComponent();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.group) {\n this.group = changes.group.currentValue;\n }\n if (changes.field) {\n this.field = changes.field.currentValue;\n this.buildComponent();\n }\n }\n\n buildComponent() {\n if (this.componentRef) {\n this.subComponents.forEach(c => c.destroy());\n this.subComponents = [];\n this.componentRef.destroy();\n }\n\n const options: {\n providers: StaticProvider[];\n parent?: Injector;\n name?: string;\n } = {\n providers: this.field.dateOptions ? [\n { provide: MAT_DATE_LOCALE, useValue: this.field.dateOptions.language },\n { provide: MAT_DATE_FORMATS, useValue: this.field.dateOptions.dateFormat },\n ] : [],\n parent: this.injector\n };\n\n const injector: Injector = Injector.create(options);\n\n if (this.field.clearable) {\n const composant = this.createSubComponent(this.field.clearableComponent || KlesFormClearComponent);\n this.subComponents.push(composant);\n }\n if (this.field.subComponents) {\n this.subComponents.push(...this.field.subComponents.map((subComponent) => this.createSubComponent(subComponent)));\n }\n\n this.componentRef = this.container.createComponent(this.field.component\n || componentMapper.find(element => element.type === this.field.type)?.component,\n { injector, projectableNodes: [this.subComponents.map(sub => sub.location.nativeElement)] });\n\n this.componentRef.instance.field = this.field;\n this.componentRef.instance.group = this.group;\n this.componentRef.instance.siblingFields = this.siblingFields;\n }\n\n private createSubComponent(componentType: Type<any>): ComponentRef<any> {\n const component = this.container.createComponent(componentType);\n component.instance.field = this.field;\n component.instance.group = this.group;\n component.instance.siblingFields = this.siblingFields;\n return component;\n }\n}\n","import { OnInit, Component, Input, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormBuilder, ValidatorFn, AsyncValidatorFn, AbstractControl, FormArray, FormGroup, FormControlDirective, FormControlName } from '@angular/forms';\nimport { componentMapper } from './decorators/component.decorator';\nimport { EnumType } from './enums/type.enum';\nimport { klesFieldControlFactory } from './factories/field.factory';\nimport { IKlesFieldConfig } from './interfaces/field.config.interface';\nimport { IKlesValidator } from './interfaces/validator.interface';\n\nconst originFormControlNgOnChanges = FormControlDirective.prototype.ngOnChanges;\nFormControlDirective.prototype.ngOnChanges = function () {\n this.form.nativeElement = this.valueAccessor._elementRef?.nativeElement;\n return originFormControlNgOnChanges.apply(this, arguments);\n};\n\nconst originFormControlNameNgOnChanges = FormControlName.prototype.ngOnChanges;\nFormControlName.prototype.ngOnChanges = function () {\n const result = originFormControlNameNgOnChanges.apply(this, arguments);\n this.control.nativeElement = this.valueAccessor._elementRef?.nativeElement;\n return result;\n};\n\n@Component({\n exportAs: 'klesDynamicForm',\n selector: 'app-kles-dynamic-form',\n template: `\n <form class=\"{{orientationClass}}\" [formGroup]=\"form\" (submit)=\"onSubmit($event)\">\n <ng-container *ngFor=\"let field of fields;\">\n <ng-container *ngIf=\"field.visible !== false\" class=\"{{orientationItemClass}}\" klesDynamicField [field]=\"field\" [group]=\"form\" [siblingFields]=\"fields\">\n </ng-container>\n </ng-container>\n <!--<button (click)=\"reset()\" mat-raised-button color=\"primary\">RESET</button>-->\n </form>\n `,\n styles: [\n // '.dynamic-form {display: flex; flex-direction: column;}',\n //'.dynamic-form {display: flex;}',\n //'.dynamic-form { width: 100%; }',\n '.dynamic-form-column { display: flex;flex-direction: column; }',\n '.dynamic-form-column > * { width: 100%; }',\n '.dynamic-form-row { display: inline-flex;flex-wrap:wrap;gap:10px }',\n '.dynamic-form-row > * { width: 100%; }',\n '.dynamic-form-row-item { margin-right: 10px; }',\n '.dynamic-form-column-item { margin-bottom: 10px; }',\n ]\n\n})\nexport class KlesDynamicFormComponent implements OnInit, OnChanges {\n @Input() fields: IKlesFieldConfig[] = [];\n @Input() validators: IKlesValidator<ValidatorFn>[] = [];\n @Input() asyncValidators: IKlesValidator<AsyncValidatorFn>[] = [];\n // tslint:disable-next-line: no-output-native\n @Output() submit: EventEmitter<any> = new EventEmitter<any>();\n @Output() _onLoaded = new EventEmitter();\n\n @Input() direction: 'column' | 'row' = 'column';\n\n form: UntypedFormGroup;\n orientationClass: 'dynamic-form-column' | 'dynamic-form-row' = 'dynamic-form-column';\n orientationItemClass: 'dynamic-form-column-item' | 'dynamic-form-row-item' = 'dynamic-form-column-item';\n\n get value() {\n return this.form.value;\n }\n\n constructor(private fb: UntypedFormBuilder) { }\n\n\n ngOnInit() {\n this.form = this.createForm();\n this.orientationClass = this.direction === 'row' ? 'dynamic-form-row' : 'dynamic-form-column';\n this.orientationItemClass = this.direction === 'row' ? 'dynamic-form-row-item' : 'dynamic-form-column-item';\n this._onLoaded.emit();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.fields?.firstChange) {\n this.updateForm();\n // this.form = this.createControl();\n // this.form.controls = {};\n this._onLoaded.emit();\n }\n\n if (!changes.validators?.firstChange && this.form) {\n this.form.setValidators(this.validators.map(v => v.validator));\n }\n\n if (!changes.asyncValidators?.firstChange && this.form) {\n this.form.setAsyncValidators(this.asyncValidators.map(v => v.validator));\n }\n\n if (!changes.direction?.firstChange) {\n this.orientationClass = this.direction === 'row' ? 'dynamic-form-row' : 'dynamic-form-column';\n this.orientationItemClass = this.direction === 'row' ? 'dynamic-form-row-item' : 'dynamic-form-column-item';\n }\n\n }\n\n onSubmit(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n if (this.form.valid) {\n this.submit.emit(this.form.value);\n } else {\n this.validateAllFormFields(this.form);\n }\n }\n\n reset() {\n this.form.reset();\n }\n\n\n private updateForm() {\n Object.keys(this.form.controls).filter(key => {\n return !this.fields.map(field => field.name).includes(key);\n }).forEach(key => {\n this.form.removeControl(key);\n });\n\n this.fields\n // .filter(field => !this.form.controls[field.name])\n .forEach(field => {\n if (field.type === EnumType.lineBreak) {\n return;\n }\n\n if (this.form.controls[field.name]) {\n const control = this.updateControl(field, this.form.controls[field.name]);\n this.form.setControl(field.name, control, { emitEvent: false });\n } else {\n const control = this.createControl(field);\n this.form.addControl(field.name, control);\n }\n });\n }\n\n private updateControl(field: IKlesFieldConfig, control: AbstractControl): AbstractControl {\n if (field.type === EnumType.array) {\n const array = control as FormArray;\n /*TODO*/\n return array;\n } else if (field.type === EnumType.group) {\n const group = control as FormGroup;\n if (field.collections && Array.isArray(field.collections)) {\n field.collections.forEach(subfield => {\n if (group.controls[subfield]) {\n control = this.updateControl(subfield, group.controls[subfield]);\n } else {\n control = this.createControl(subfield);\n }\n group.setControl(subfield.name, control, { emitEvent: false });\n });\n }\n return group;\n } else {\n // control.setValidators(this.bindValidations(field.validations || []));\n // control.setAsyncValidators(this.bindAsyncValidations(field.asyncValidations || []));\n // if (field.value && control.value !== field.value) {\n // control.setValue(field.value);\n // }\n return control;\n }\n\n }\n\n private createControl(field: IKlesFieldConfig): AbstractControl {\n if (field.type) {\n return componentMapper.find(c => c.type === field.type)?.factory(field) || klesFieldControlFactory(field);\n } else {\n return componentMapper.find(c => c.component === field.component)?.factory(field) || klesFieldControlFactory(field);\n }\n }\n\n\n private createForm() {\n const group = this.fb.group({});\n\n this.fields.forEach(field => {\n\n if (field.type === EnumType.lineBreak) {\n return;\n }\n const control = this.createControl(field);\n\n group.addControl(field.name, control);\n });\n\n group.setValidators(this.validators.map(v => v.validator));\n group.setAsyncValidators(this.asyncValidators.map(v => v.validator));\n\n return group;\n }\n\n\n\n\n private validateAllFormFields(formGroup: UntypedFormGroup) {\n Object.keys(formGroup.controls).forEach(field => {\n const control = formGroup.get(field);\n control.markAsTouched({ onlySelf: true });\n });\n }\n}\n","import { Directive, Input, OnInit, ViewContainerRef, ComponentRef, Type, OnChanges, SimpleChanges } from '@angular/core';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\n\n\n@Directive({\n selector: '[klesComponent]'\n})\nexport class KlesComponentDirective implements OnInit, OnChanges {\n @Input() component: Type<any>;\n @Input() value: any;\n @Input() field?: IKlesFieldConfig;\n\n componentRef: ComponentRef<any>;\n\n constructor(private container: ViewContainerRef) { }\n\n ngOnInit() {\n this.buildComponent();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.component && !changes.component.isFirstChange()) {\n this.component = changes.component.currentValue;\n this.buildComponent();\n }\n if (changes.value && !changes.value.isFirstChange()) {\n this.value = changes.value.currentValue;\n this.componentRef.instance.value = this.value;\n }\n }\n\n buildComponent() {\n if (this.componentRef) {\n this.componentRef.destroy();\n }\n this.componentRef = this.container.createComponent(this.component);\n this.componentRef.instance.component = this.component;\n this.componentRef.instance.value = this.value;\n this.componentRef.instance.field = this.field;\n }\n}\n","import { UntypedFormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class KlesFormErrorStateMatcher implements ErrorStateMatcher {\n\n constructor() {\n }\n\n isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const isSubmitted = form && form.submitted;\n return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\n }\n\n}\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatListModule } from '@angular/material/list';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatTreeModule } from '@angular/material/tree';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\n\n\n@NgModule({\n imports: [\n CommonModule,\n MatSliderModule,\n MatButtonModule,\n MatToolbarModule,\n MatIconModule,\n MatSidenavModule,\n MatBadgeModule,\n MatListModule,\n MatGridListModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatRadioModule,\n MatDatepickerModule,\n MatChipsModule,\n MatTooltipModule,\n MatTableModule,\n MatPaginatorModule,\n MatCardModule,\n MatMenuModule,\n MatTabsModule,\n CdkTableModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatDialogModule,\n MatAutocompleteModule,\n MatProgressBarModule,\n MatSortModule,\n MatExpansionModule,\n MatNativeDateModule,\n MatSnackBarModule,\n MatTreeModule,\n MatSliderModule,\n MatButtonModule,\n MatSlideToggleModule,\n ColorPickerModule,\n MatButtonToggleModule\n ],\n\n exports: [\n MatButtonModule,\n MatToolbarModule,\n MatIconModule,\n MatSidenavModule,\n MatBadgeModule,\n MatListModule,\n MatGridListModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatRadioModule,\n MatDatepickerModule,\n MatChipsModule,\n MatTooltipModule,\n MatTableModule,\n MatPaginatorModule,\n MatCardModule,\n MatMenuModule,\n MatTabsModule,\n CdkTableModule,\n MatProgressSpinnerModule,\n MatCheckboxModule,\n MatDialogModule,\n MatAutocompleteModule,\n MatProgressBarModule,\n MatSortModule,\n MatExpansionModule,\n MatNativeDateModule,\n MatSnackBarModule,\n MatTreeModule,\n MatSliderModule,\n MatButtonModule,\n MatSlideToggleModule,\n ColorPickerModule,\n ScrollingModule,\n CdkScrollable,\n MatButtonToggleModule\n ],\n providers: [\n MatDatepickerModule,\n MatDialogModule\n ]\n})\n\nexport class MaterialModule { }\n","import { IKlesField } from '../interfaces/field.interface';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { AfterViewInit, OnDestroy, OnInit, Directive, ViewContainerRef, HostBinding } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive()\nexport abstract class KlesFieldAbstract implements IKlesField, OnInit, AfterViewInit, OnDestroy {\n field: IKlesFieldConfig;\n group: UntypedFormGroup;\n siblingFields: IKlesFieldConfig[];\n\n @HostBinding('attr.klesDirective') directive;\n\n protected _onDestroy = new Subject<void>();\n\n constructor(protected viewRef: ViewContainerRef) {\n\n }\n\n ngOnInit(): void {\n if (this.field.valueChanges) {\n this.field.valueChanges(this.field, this.group, this.siblingFields);\n }\n\n this.group.controls[this.field.name]?.valueChanges\n .pipe(takeUntil(this._onDestroy))\n .subscribe(val => {\n if (this.field.valueChanges) {\n this.field.valueChanges(this.field, this.group, this.siblingFields, val);\n }\n });\n\n if (this.field.directive) {\n this.directive = new this.field.directive(this.viewRef, this);\n this.directive.ngOnInit();\n }\n }\n\n ngAfterViewInit(): void {\n if (this.directive && this.directive.ngAfterViewInit) {\n this.directive?.ngAfterViewInit();\n }\n\n\n if (this.field.autofocus) {\n setTimeout(() => {\n (<any>this.group.controls[this.field.name])?.nativeElement.focus();\n })\n\n // console.log('result', (<any>this.group.controls[this.field.name]))\n }\n\n\n\n\n }\n\n ngOnDestroy(): void {\n this.directive?.ngOnDestroy();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n applyPipeTransform() {\n if (this.group && this.field) {\n const control = this.group.controls[this.field.name];\n if (control) {\n const val = this.group.controls[this.field.name].value;\n if (this.field.pipeTransform) {\n this.field.pipeTransform.forEach(p => {\n let pipeVal = control.value;\n if (p.options) {\n p.options.forEach(opt => {\n pipeVal = p.pipe.transform(val, opt);\n });\n } else {\n pipeVal = p.pipe.transform(val);\n }\n control.patchValue(pipeVal, { onlySelf: true, emitEvent: false });\n });\n }\n }\n }\n }\n}\n","\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n\n@Component({\n selector: \"kles-form-label\",\n template: `\n <div [formGroup]=\"group\" >\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" \n [ngClass]=\"field.ngClass\" \n [ngStyle]=\"{'color':'inherit'}\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\">\n </div>\n`\n})\nexport class KlesFormLabelComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n this.group.controls[this.field.name].disable();\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}","import { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { startWith, map, switchMap } from 'rxjs/operators';\nimport { EnumType } from '../enums/type.enum';\nimport { FieldMapper } from '../decorators/component.decorator';\n\n@FieldMapper({ type: EnumType.input })\n@Component({\n selector: 'kles-form-input',\n template: `\n <mat-form-field [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\">\n\n <ng-container *ngIf=\"field.autocomplete; else notAutoComplete\">\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\" \n [maxLength]=\"field.maxLength\" [min]=\"field.min\" [max]=\"field.max\" [step]=\"field.step\"\n [matAutocomplete]=\"auto\">\n\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn.bind(this)\" [panelWidth]=\"this.field.panelWidth\">\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *ngFor=\"let option of filteredOption | async\" [value]=\"option\">\n {{field.property ? option[field.property] : option}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *ngFor=\"let option of filteredOption | async\" [value]=\"option\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"option\" [field]=\"field\">\n </ng-container>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n </ng-container>\n\n <ng-template #notAutoComplete>\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\" [min]=\"field.min\" [max]=\"field.max\" [step]=\"field.step\">\n </ng-template>\n\n <mat-spinner matSuffix mode=\"indeterminate\" *ngIf=\"isPending()\" diameter=\"17\"></mat-spinner>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormInputComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n filteredOption: Observable<any[]>;\n options$: Observable<any[]>;\n\n ngOnInit(): void {\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n\n\n this.filteredOption = this.group.get(this.field.name).valueChanges\n .pipe(\n startWith(''),\n // map(data => data ? this.filterData(data) : this.field.options.slice())\n switchMap(data => data ? this.filterData(data) : this.options$)\n );\n if (!this.field.maxLength) {\n this.field.maxLength = 524288; // Max default input W3C\n }\n super.ngOnInit();\n }\n\n isPending() {\n return (this.group.controls[this.field.name].pending || this.field.pending);\n }\n\n private filterData(value: any): Observable<any[]> {\n let filterValue;\n\n if (typeof value === 'string' && Object.prototype.toString.call(value) === '[object String]') {\n filterValue = value.toLowerCase();\n } else {\n filterValue = value[this.field.property].toLowerCase();\n }\n\n if (this.field.property) {\n return this.options$\n .pipe(map(options => options.filter(option => option[this.field.property].toLowerCase().indexOf(filterValue) === 0)));\n // return this.field.options\n // .filter(data => data[this.field.property].toLowerCase().indexOf(filterValue) === 0);\n }\n // return this.field.options.filter(data => data.toLowerCase().indexOf(filterValue) === 0);\n return this.options$.pipe(map(options => options.filter(option => option.toLowerCase().indexOf(filterValue) === 0)));\n }\n\n displayFn(value: any) {\n if (this.field.displayWith) {\n return this.field.displayWith(value);\n } else {\n if (value && this.field && this.field.property) {\n return value[this.field.property] ? value[this.field.property] : '';\n }\n return value ? value : '';\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy } from '@angular/core';\nimport { EnumType } from '../enums/type.enum';\nimport { FieldMapper } from '../decorators/component.decorator';\n\n@FieldMapper({ type: EnumType.button })\n@Component({\n selector: 'kles-submit-button',\n template: `\n <div [formGroup]=\"group\">\n <button matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" type=\"submit\" [disabled]=\"field.disabled\" mat-raised-button color=\"primary\">{{field.label}}</button>\n </div>\n `,\n styles: []\n})\nexport class KlesFormSubmitButtonComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'klesTransform' })\nexport class KlesTransformPipe implements PipeTransform {\n\n transform(value: any, pipes: { pipe: PipeTransform, options?: any[] }[]): any {\n\n if (pipes && pipes.length > 0) {\n return pipes.reduce((acc, p) => {\n if (p.options) {\n p.options.forEach(opt => {\n acc = p.pipe.transform(acc, opt);\n });\n } else {\n acc = p.pipe.transform(acc);\n }\n return acc;\n }, value)\n }\n return value;\n\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { MatOption } from '@angular/material/core';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { switchMap, take, takeUntil } from 'rxjs/operators';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.select })\n@Component({\n selector: 'kles-form-select',\n template: `\n <mat-form-field class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\">\n <mat-select matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\"\n (openedChange)=\"openChange($event)\" [compareWith]=\"compareFn\"\n [ngClass]=\"field.ngClass\" [placeholder]=\"field.placeholder | translate\" [formControlName]=\"field.name\" [multiple]=\"field.multiple\">\n <mat-select-trigger *ngIf=\"field.triggerComponent\">\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n\n <ng-container *ngIf=\"!field.virtualScroll\">\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-option *ngFor=\"let item of options$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-option *ngFor=\"let item of options$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"field.virtualScroll\">\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 50\" [style.height.px]=5*48>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-option *cdkVirtualFor=\"let item of options$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-option *cdkVirtualFor=\"let item of options$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n </ng-container>\n\n </mat-select>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n`,\n styles: ['mat-form-field {width: calc(100%)}',\n `::ng-deep .hide-checkbox .mat-pseudo-checkbox { display: none !important; }`]\n})\nexport class KlesFormSelectComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n @ViewChild(CdkVirtualScrollViewport) cdkVirtualScrollViewport: CdkVirtualScrollViewport;\n @ViewChildren(MatOption) options: QueryList<MatOption>;\n\n options$: Observable<any[]>;\n\n isLoading = false;\n\n openChange$ = new Subject<boolean>();\n\n constructor(protected viewRef: ViewContainerRef, protected ref: ChangeDetectorRef) {\n super(viewRef);\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.field.lazy) {\n this.isLoading = true;\n if (this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null) {\n this.options$ = new BehaviorSubject<any[]>(Array.isArray(this.group.controls[this.field.name].value) ? this.group.controls[this.field.name].value\n : [this.group.controls[this.field.name].value]);\n this.isLoading = false;\n } else {\n this.options$ = new BehaviorSubject<any[]>([]);\n }\n\n this.openChange$\n .pipe(\n takeUntil(this._onDestroy),\n switchMap((isOpen) => {\n if (isOpen) {\n if (this.field.options instanceof Observable) {\n this.isLoading = true;\n return this.field.options.pipe(take(1));\n }\n else if (this.field.options instanceof Function) {\n this.isLoading = true;\n return this.field.options();\n }\n else {\n return of(this.field.options);\n }\n } else {\n return of(this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null\n ? (Array.isArray(this.group.controls[this.field.name].value) ?\n this.group.controls[this.field.name].value : [this.group.controls[this.field.name].value]) : [])\n }\n })\n )\n .subscribe((options) => {\n (this.options$ as BehaviorSubject<any[]>).next(options);\n this.isLoading = false;\n this.ref.markForCheck();\n });\n\n } else {\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n openChange($event: boolean) {\n if (this.field.lazy) {\n this.openChange$.next($event);\n // if ($event) {\n // if (!(this.field.options instanceof Observable)) {\n // (this.options$ as BehaviorSubject<any[]>).next(this.field.options);\n // } else {\n // this.isLoading = true;\n // this.field.options.pipe(take(1)).subscribe(options => {\n // (this.options$ as BehaviorSubject<any[]>).next(options);\n // this.isLoading = false;\n // this.ref.markForCheck();\n // });\n // }\n // } else {\n // (this.options$ as BehaviorSubject<any[]>)\n // .next(this.group.controls[this.field.name].value !== undefined ? [this.group.controls[this.field.name].value] : []);\n // this.ref.markForCheck();\n // // this.isLoading = true;\n // }\n }\n\n if (this.field.virtualScroll) {\n if ($event) {\n this.cdkVirtualScrollViewport.scrollToIndex(0);\n this.cdkVirtualScrollViewport.checkViewportSize();\n }\n }\n }\n\n compareFn = (o1: any, o2: any) => {\n if (this.field.property && o1 && o2) {\n return o1[this.field.property] === o2[this.field.property];\n }\n return o1 === o2;\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: \"kles-form-datepicker\",\n template: `\n <mat-form-field class=\"demo-full-width margin-top\" [color]=\"field.color\" [formGroup]=\"group\">\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [matDatepicker]=\"picker\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\"\n [min]=\"field.min\" [max]=\"field.max\">\n <div matSuffix>\n <mat-datepicker-toggle [for]=\"picker\"></mat-datepicker-toggle>\n <ng-content></ng-content>\n </div>\n <mat-datepicker #picker></mat-datepicker>\n <mat-hint>{{field.hint}}</mat-hint>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: []\n})\nexport class KlesFormDateComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-radiobutton',\n template: `\n <div [formGroup]=\"group\">\n <label class=\"radio-label-padding\">{{field.label}}</label>\n <mat-radio-group matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\">\n <mat-radio-button *ngFor=\"let item of field.options\" [value]=\"item\">{{item}}</mat-radio-button>\n </mat-radio-group>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </div>\n`,\n styles: []\n})\nexport class KlesFormRadioComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}","\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.checkbox })\n@Component({\n selector: 'kles-form-checkbox',\n template: `\n <div [formGroup]=\"group\" > \n <mat-checkbox matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [indeterminate]=\"field.indeterminate\" [color]=\"field.color\" [formControlName]=\"field.name\">{{field.label | translate}}</mat-checkbox>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message}}</mat-error>\n </ng-container>\n </div>\n`,\n styles: []\n})\nexport class KlesFormCheckboxComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { UntypedFormGroup, UntypedFormArray, UntypedFormBuilder, ValidatorFn, Validators, AsyncValidatorFn } from '@angular/forms';\nimport { IKlesValidator } from '../interfaces/validator.interface';\n\n@Component({\n selector: 'kles-form-listfield',\n template: `\n <div [formGroup]=\"group\" class=\"form-element\">\n {{field.label | translate}}\n <button mat-icon-button color=\"primary\" (click)=\"addField()\">\n <mat-icon>add</mat-icon>\n </button>\n\n <div class=\"dynamic-form\" [formGroupName]=\"field.name\">\n <div *ngFor=\"let subGroup of formArray.controls let index = index;\" fxLayout=\"row\" fxLayoutGap=\"5px\">\n <ng-container *ngFor=\"let subfield of field.collections;\"\n dynamicField [field]=\"subfield\" [group]=\"subGroup\">\n </ng-container>\n <button mat-icon-button (click)=\"deleteField(index)\" color=\"primary\">\n <mat-icon>delete_outlined</mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </div>\n </div>\n `,\n styles: []\n})\nexport class KlesFormListFieldComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n formArray: UntypedFormArray;\n\n constructor(private fb: UntypedFormBuilder, protected viewRef: ViewContainerRef) {\n super(viewRef);\n }\n\n ngOnInit(): void {\n this.formArray = this.group.controls[this.field.name] as UntypedFormArray;\n super.ngOnInit();\n }\n\n private createFormGroup(): UntypedFormGroup {\n const group = this.fb.group({});\n this.field.collections.forEach(item => {\n const control = this.fb.control(\n null,\n this.bindValidations(item.validations || []),\n this.bindAsyncValidations(item.asyncValidations || [])\n );\n group.addControl(item.name, control);\n\n });\n\n return group;\n\n }\n\n deleteField(index: number) {\n this.formArray.removeAt(index);\n }\n\n addField() {\n this.formArray.push(this.createFormGroup());\n }\n\n\n private bindValidations(validations: IKlesValidator<ValidatorFn>[]): ValidatorFn {\n if (validations.length > 0) {\n const validList = [];\n validations.forEach(valid => {\n validList.push(valid.validator);\n });\n return Validators.compose(validList);\n\n }\n return null;\n }\n\n\n private bindAsyncValidations(validations: IKlesValidator<AsyncValidatorFn>[]): AsyncValidatorFn {\n if (validations.length > 0) {\n const validList = [];\n validations.forEach(valid => {\n validList.push(valid.validator);\n });\n return Validators.composeAsync(validList);\n\n }\n return null;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n\n","import { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy } from '@angular/core';\n@Component({\n selector: 'kles-form-color',\n template: `\n <mat-form-field [formGroup]=\"group\" class=\"form-element\">\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [placeholder]=\"field.placeholder | translate\"\n [colorPicker]=\"group.get(field.name).value\"\n [value]=\"group.get(field.name).value\"\n (colorPickerChange)=\"group.get(field.name).setValue($event)\"\n class=\"colorPicker\"\n [style.background]=\"group.get(field.name).value\"\n [style.color]=\"invertColor(group.get(field.name).value,true)\"\n [formControlName]=\"field.name\">\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n \n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormColorComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n\n ngOnInit() { super.ngOnInit(); }\n\n invertColor(hex, bw): string {\n if (hex.indexOf('#') === 0) {\n hex = hex.slice(1);\n }\n // convert 3-digit hex to 6-digits.\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n if (hex.length !== 6) {\n return '#000000';\n }\n let r = parseInt(hex.slice(0, 2), 16);\n let g = parseInt(hex.slice(2, 4), 16);\n let b = parseInt(hex.slice(4, 6), 16);\n if (bw) {\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\n ? '#000000'\n : '#FFFFFF';\n }\n // invert color components\n const r1 = (255 - r).toString(16);\n const g1 = (255 - g).toString(16);\n const b1 = (255 - b).toString(16);\n // pad each with zeros and return\n return \"#\" + r1 + g1 + b1;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnInit, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface IButton {\n event?: any;\n uiButton?: IUIButton;\n}\n\nexport interface IUIButton {\n label?: string;\n color?: string;\n icon?: string;\n iconSvg?: string;\n disabled?: boolean;\n class?: string;\n type?: string;\n accept?: string;\n}\n\n@Component({\n selector: 'kles-button',\n template: `\n <span>\n <button mat-button [type]=\"type\" [ngClass]=\"classButton\" [color]=\"(color)?color:'primary'\" [disabled]=\"disabled\"\n (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n {{label | translate}}\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n <mat-icon svgIcon=\"{{iconSvg}}\" *ngIf=\"iconSvg\"></mat-icon>\n </button>\n </span>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonComponent),\n multi: true\n }\n ]\n})\nexport class KlesButtonComponent implements OnInit, ControlValueAccessor {\n @Input() name = '';\n @Input() label = '';\n @Input() color = 'accent';\n @Input() icon = '';\n @Input() iconSvg = '';\n @Input() disabled = false;\n @Input() type = 'submit';\n @Input() classButton = '';\n @Input() value: IButton = {};\n @Input() tooltip?: string;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n ngOnInit(): void {\n }\n\n click(event) {\n this.value.event = this.name;\n this.onChange(this.value);\n }\n\n writeValue(value: IButton): void {\n if (!value) {\n value = { event: this.name };\n }\n if (!value.event) {\n value.event = this.name;\n }\n if (value.uiButton) {\n const uiButton = value.uiButton;\n this.label = (uiButton.label) ? uiButton.label : this.label;\n this.color = (uiButton.color) ? uiButton.color : this.color;\n this.icon = (uiButton.icon) ? uiButton.icon : this.icon;\n this.iconSvg = (uiButton.iconSvg) ? uiButton.iconSvg : this.iconSvg;\n this.disabled = (uiButton.disabled) ? uiButton.disabled : this.disabled;\n this.classButton = (uiButton.class) ? uiButton.class : this.classButton;\n this.type = (uiButton.type) ? uiButton.type : 'submit';\n }\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n\n@Component({\n selector: 'kles-form-button',\n template: `\n <div [formGroup]=\"group\">\n <kles-button\n [attr.id]=\"field.id\" [classButton]=\"field.ngClass\" \n [name]=\"field.name\" [label]=\"field.label\" [color]=\"field.color\" \n [icon]=\"field.icon\"\n [iconSvg]=\"field.iconSvg\"\n [value]=\"field.value\"\n [formControlName]=\"field.name\"\n [tooltip]=\"field.tooltip\"\n [type]=\"field.buttonType\"\n >\n </kles-button>\n </div>\n `,\n styles: []\n})\nexport class KlesFormButtonComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnInit, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IButton, KlesButtonComponent } from './button-control.component';\n\nexport interface IButtonChecker extends IButton {\n busy: boolean;\n error?: any[];\n message?: string;\n}\n\n@Component({\n selector: 'kles-button-checker',\n template: `\n <span *ngIf=\"value.error && !value.busy\">\n <kles-button \n [classButton]=\"classButton\" \n [name]=\"name\" [label]=\"label\" [color]=\"color\" \n [icon]=\"icon\" [iconSvg]=\"iconSvg\"\n [value]=\"value\" \n [tooltip]=\"tooltip\"\n [disabled]=\"disabled\"\n matBadge=\"{{countError()}}\" (click)=\"click($event)\">\n </kles-button>\n </span>\n <span style=\"text-align: center;\">\n <span style=\"text-align: center;margin-right: 10px\" *ngIf=\"value.busy||false\">\n <mat-spinner [diameter]=\"25\"></mat-spinner>\n </span>\n <span *ngIf=\"value.message\" style=\"margin-right: 10px\">\n {{value.message|translate}}\n </span>\n </span>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonCheckerComponent),\n multi: true\n }\n ]\n})\nexport class KlesButtonCheckerComponent extends KlesButtonComponent implements ControlValueAccessor {\n value: IButtonChecker = {\n busy: false,\n error: [],\n event: false\n };\n\n countError(): number {\n return (this.value.error) ? this.value.error.length : 0;\n }\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-button-checker',\n template: `\n <div [formGroup]=\"group\">\n <kles-button-checker\n [attr.id]=\"field.id\" [classButton]=\"field.ngClass\"\n [name]=\"field.name\" [label]=\"field.label\" [color]=\"field.color\"\n [icon]=\"field.icon\"\n [iconSvg]=\"field.iconSvg\"\n [value]=\"field.value\"\n [formControlName]=\"field.name\"\n [tooltip]=\"field.tooltip\">\n </kles-button-checker>\n </div>\n `,\n styles: []\n})\nexport class KlesFormButtonCheckerComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Input } from '@angular/core';\nimport { Component, OnInit, forwardRef, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IButton, KlesButtonComponent } from './button-control.component';\n\nexport interface IButtonFile extends IButton {\n fileContent?: string | string[];\n}\n\n@Component({\n selector: 'kles-button-file',\n template: `\n <input type=\"file\" #file style=\"display: none\" [accept]=\"accept\" (change)=\"onFileSelect($event.target)\" multiple />\n <kles-button\n [classButton]=\"classButton\"\n [name]=\"name\" [label]=\"label\" [color]=\"color\"\n [icon]=\"icon\" [iconSvg]=\"iconSvg\"\n [disabled]=\"disabled\"\n [value]=\"value\" (click)=\"click($event)\">\n </kles-button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonFileComponent),\n multi: true\n }\n ]\n})\nexport class KlesButtonFileComponent extends KlesButtonComponent implements ControlValueAccessor {\n @ViewChild('file') file;\n @Input() accept = '*.*';\n fileReader = new FileReader();\n fileContent: string | string[];\n value: IButtonFile = {};\n\n click(event) {\n this.file.nativeElement.click();\n }\n\n writeValue(value: IButton): void {\n if (!value) {\n value = { event: this.name };\n }\n if (!value.event) {\n value.event = this.name;\n }\n if (value.uiButton) {\n const uiButton = value.uiButton;\n this.label = (uiButton.label) ? uiButton.label : this.label;\n this.color = (uiButton.color) ? uiButton.color : this.color;\n this.icon = (uiButton.icon) ? uiButton.icon : this.icon;\n this.iconSvg = (uiButton.iconSvg) ? uiButton.iconSvg : this.iconSvg;\n this.disabled = (uiButton.disabled) ? uiButton.disabled : this.disabled;\n this.classButton = (uiButton.class) ? uiButton.class : this.classButton;\n this.accept = (uiButton.accept) ? uiButton.accept : this.accept;\n }\n this.value = value;\n }\n\n\n onFileLoad(fileLoadedEvent) {\n const textFromFileLoaded = fileLoadedEvent.target.result;\n this.fileContent = textFromFileLoaded;\n }\n\n async onFileSelect(input: HTMLInputElement) {\n if (input.files.length > 0) {\n const files = input.files;\n let fileContent = [];\n if (files && files.length) {\n for (let i = 0; i < files.length; i++) {\n try {\n fileContent[i] = await this.readUploadedFile(files[i]);\n } catch (e) {\n }\n }\n if (fileContent.length === 1) {\n fileContent = fileContent[0];\n }\n }\n this.value.event = this.name;\n this.value.fileContent = fileContent;\n this.onChange(this.value);\n input.value = '';\n }\n }\n\n readUploadedFile(inputFile): Promise<any> {\n const temporaryFileReader = new FileReader();\n return new Promise((resolve, reject) => {\n temporaryFileReader.onerror = () => {\n temporaryFileReader.abort();\n const error: DOMException = new DOMException('Problem parsing input file.');\n reject(error);\n };\n temporaryFileReader.onload = () => {\n resolve(temporaryFileReader.result);\n };\n temporaryFileReader.readAsArrayBuffer(inputFile);\n });\n }\n}\n","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-button-file',\n template: `\n <div [formGroup]=\"group\">\n <kles-button-file\n [attr.id]=\"field.id\" [classButton]=\"field.ngClass\" \n [name]=\"field.name\" [label]=\"field.label\" [color]=\"field.color\" \n [icon]=\"field.icon\"\n [iconSvg]=\"field.iconSvg\"\n [value]=\"field.value\"\n [formControlName]=\"field.name\"\n [type]=\"field.buttonType\"\n [accept]=\"field.accept\"\n >\n </kles-button-file>\n </div>\n `,\n styles: []\n})\nexport class KlesFormButtonFileComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-textarea',\n template: `\n <mat-form-field [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\">\n <textarea matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" \n [formControlName]=\"field.name\" cdkTextareaAutosize [placeholder]=\"field.placeholder | translate\"\n [cdkAutosizeMinRows]=\"field.textareaAutoSize?.minRows\" [cdkAutosizeMaxRows]=\"field.textareaAutoSize?.maxRows\" [maxlength]=\"field.maxLength\">\n </textarea>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormTextareaComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.text })\n@Component({\n selector: 'kles-form-text',\n template: `\n <span matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\">\n {{((field.property && group.controls[field.name].value) ? group.controls[field.name].value[field.property] : group.controls[field.name].value) | klesTransform:field.pipeTransform}}\n </span>\n`\n})\nexport class KlesFormTextComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n super.ngOnInit();\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from \"./field.abstract\";\n\n@Component({\n selector: \"kles-form-chip\",\n template: `\n <div [formGroup]=\"group\"> \n <mat-chip-list>\n <mat-chip [color]=\"field.color\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" selected [ngClass]=\"field.ngClass\" [ngStyle]=\"field.ngStyle\">\n <mat-icon *ngIf=\"field.icon\">{{field.icon}}</mat-icon>\n {{group.controls[field.name].value | klesTransform:field.pipeTransform}}\n </mat-chip>\n </mat-chip-list>\n </div>\n`,\n styles: []\n})\nexport class KlesFormChipComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { AbstractControl, FormGroup, UntypedFormGroup } from \"@angular/forms\";\nimport { KlesFormControl } from \"./default.control\";\nimport { componentMapper } from \"../decorators/component.decorator\";\nimport { klesFieldControlFactory } from \"../factories/field.factory\";\n\nexport class KlesFormGroup extends KlesFormControl {\n\n public create(): AbstractControl<any, any> {\n const subGroup = new UntypedFormGroup({});\n\n if (this.field.collections && Array.isArray(this.field.collections)) {\n this.field.collections.forEach(subfield => {\n let control;\n if (subfield.type) {\n control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] })\n || klesFieldControlFactory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] });\n } else {\n control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] })\n || klesFieldControlFactory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] });\n }\n\n subGroup.addControl(subfield.name, control);\n });\n }\n\n if (this.field.disabled) {\n subGroup.disable();\n }\n\n console.log('subGroup', subGroup)\n\n return subGroup;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { KlesFormGroup } from '../controls/group.control';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.group, factory: (field) => (new KlesFormGroup(field).create()) })\n@Component({\n selector: 'kles-group',\n template: `\n <div [formGroup]=\"group\" class=\"group-container\">\n <div [formGroupName]=\"field.name\" class=\"group-container\" [style.flex-direction]=\"field.direction || 'inherit'\" [ngClass]=\"field.ngClass\">\n <ng-container *ngFor=\"let subfield of field.collections;\">\n <ng-container *ngIf=\"subfield.visible !== false\" klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"field.collections\">\n </ng-container>\n </ng-container>\n </div>\n </div>\n`,\n styles: ['mat-form-field {width: calc(100%)}',\n ':host { display:flex; flex-direction: inherit}',\n // '.row { gap:10px;}',\n // '.group-container {display:flex; flex-direction: inherit; width: inherit; flex-wrap: wrap}'\n '.group-container {display:flex; flex-direction: inherit; width: inherit;}'\n ]\n})\nexport class KlesFormGroupComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n subGroup: UntypedFormGroup;\n\n ngOnInit() {\n this.subGroup = this.group.controls[this.field.name] as UntypedFormGroup;\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFormInputComponent } from './input.component';\n\n@Component({\n selector: 'kles-form-input-clearable',\n template: `\n <mat-form-field [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\">\n\n <ng-container *ngIf=\"field.autocomplete; else notAutoComplete\">\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\" [min]=\"field.min\" [max]=\"field.max\" [step]=\"field.step\"\n [matAutocomplete]=\"auto\">\n\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn.bind(this)\" [panelWidth]=\"this.field.panelWidth\">\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *ngFor=\"let option of filteredOption | async\" [value]=\"option\">\n {{field.property ? option[field.property] : option}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *ngFor=\"let option of filteredOption | async\" [value]=\"option\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"option\" [field]=\"field\">\n </ng-container>\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n </ng-container>\n\n <ng-template #notAutoComplete>\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder | translate\" [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\" [min]=\"field.min\" [max]=\"field.max\" [step]=\"field.step\">\n </ng-template>\n <button *ngIf=\"!group.get(field.name).disabled\" mat-button matSuffix mat-icon-button aria-label=\"Clear\" type=\"button\"\n (click)=\"group.controls[field.name].reset();\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-spinner matSuffix mode=\"indeterminate\" *ngIf=\"isPending()\" diameter=\"17\"></mat-spinner>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormInputClearableComponent extends KlesFormInputComponent implements OnInit, OnDestroy {\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: \"kles-form-icon\",\n template: `\n <mat-icon [color]=\"field.color\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [ngStyle]=\"field.ngStyle\">\n {{group.controls[field.name].value}}\n </mat-icon>\n`,\n styles: []\n})\nexport class KlesFormIconComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { ViewEncapsulation } from '@angular/compiler';\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { BehaviorSubject, concat, Observable, of, ReplaySubject, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-select-search',\n template: `\n <mat-form-field class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\">\n <mat-select matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\"\n (openedChange)=\"openChange($event)\" [compareWith]=\"compareFn\"\n [placeholder]=\"field.placeholder | translate\" [formControlName]=\"field.name\" [multiple]=\"field.multiple\">\n <mat-select-trigger *ngIf=\"field.triggerComponent\">\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n\n <ng-container *ngIf=\"field.virtualScroll\">\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\"\n placeholderLabel=\"\" noEntriesFoundLabel =\"\"></ngx-mat-select-search>\n </mat-option>\n\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 50\" [style.height.px]=4*48>\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-checkbox *ngIf=\"field.multiple\" class=\"selectAll\" [formControl]=\"selectAllControl\"\n (change)=\"toggleAllSelection($event)\">\n {{'selectAll' | translate}}\n </mat-checkbox>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *cdkVirtualFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *cdkVirtualFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n </ng-container>\n\n <ng-container *ngIf=\"!field.virtualScroll\">\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\"\n placeholderLabel=\"\" noEntriesFoundLabel =\"\"></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-checkbox *ngIf=\"field.multiple\" class=\"selectAll\" [formControl]=\"selectAllControl\"\n (change)=\"toggleAllSelection($event)\">\n {{'selectAll' | translate}}\n </mat-checkbox>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *ngFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *ngFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </ng-container>\n </mat-select>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n \n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n`,\n styles: ['mat-form-field {width: calc(100%)}', '.selectAll {padding: 10px 16px;}',\n `::ng-deep .hide-checkbox .mat-pseudo-checkbox { display: none !important; }`],\n})\nexport class KlesFormSelectSearchComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n searchControl = new UntypedFormControl();\n selectAllControl = new UntypedFormControl(false);\n\n isLoading = false;\n\n options$: Observable<any[]>;\n optionsFiltered$ = new ReplaySubject<any[]>(1);\n\n openChange$ = new BehaviorSubject<boolean>(false);\n\n // private _onDestroy = new Subject<void>();\n\n @ViewChild(CdkVirtualScrollViewport) cdkVirtualScrollViewport: CdkVirtualScrollViewport;\n @ViewChildren(MatOption) options: QueryList<MatOption>;\n\n constructor(protected viewRef: ViewContainerRef, protected ref: ChangeDetectorRef) {\n super(viewRef);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.field.lazy) {\n this.isLoading = true;\n if (this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null) {\n this.options$ = new BehaviorSubject<any[]>(Array.isArray(this.group.controls[this.field.name].value) ? this.group.controls[this.field.name].value : [this.group.controls[this.field.name].value]);\n this.isLoading = false;\n } else {\n this.options$ = new BehaviorSubject<any[]>([]);\n }\n\n this.openChangeEvent();\n } else {\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n }\n\n this.searchControl.valueChanges.pipe(\n takeUntil(this._onDestroy),\n debounceTime(this.field.debounceTime || 0),\n startWith(this.searchControl.value),\n switchMap(value => {\n return concat(\n of({ loading: true, options: [] }),\n this.onSearchChange(value).pipe(map((options) => ({ loading: false, options })))\n )\n\n })\n ).subscribe(({ loading, options }) => {\n this.isLoading = loading;\n this.optionsFiltered$.next(options);\n this.ref.markForCheck();\n });\n\n if (this.field.multiple) {\n this.group.controls[this.field.name]\n .valueChanges.pipe(\n takeUntil(this._onDestroy),\n startWith(this.group.controls[this.field.name].value),\n map((selected) => (this.field.property ? selected?.map(s => s[this.field.property]) : selected)),\n switchMap(selected => {\n return this.optionsFiltered$.pipe(\n map((options) => options?.filter((option) => !option?.disabled).map((option) => (this.field.property ? option[this.field.property] : option))),\n map(options => {\n if (!selected) {\n return false;\n }\n if (options.length < selected.length) {\n return options.length > 0 && options.every(o => selected.includes(o));\n } else {\n return options.length > 0 && options.length === selected.length && selected.every(s => options.includes(s));\n }\n }));\n })\n ).subscribe(isChecked => {\n this.selectAllControl.setValue(isChecked);\n });\n }\n }\n\n ngOnDestroy(): void {\n // this._onDestroy.next();\n super.ngOnDestroy();\n }\n\n\n toggleAllSelection(state) {\n if (state.checked) {\n this.optionsFiltered$.pipe(take(1), map((options) => options.filter((option) => !option?.disabled))).subscribe(options => {\n if (options.length > 0) {\n this.group.controls[this.field.name].patchValue(options.slice());\n }\n });\n\n } else {\n this.group.controls[this.field.name].patchValue([]);\n }\n }\n\n\n protected openChangeEvent(): void {\n this.openChange$\n .pipe(\n takeUntil(this._onDestroy),\n switchMap((isOpen) => {\n return this.onOpenChange(isOpen);\n })\n )\n .subscribe((options) => {\n (this.options$ as BehaviorSubject<any[]>).next(options);\n this.isLoading = false;\n this.ref.markForCheck();\n });\n }\n\n protected onOpenChange(isOpen: boolean): Observable<any[]> {\n if (isOpen) {\n\n if (this.field.options instanceof Observable) {\n this.isLoading = true;\n return this.field.options.pipe(take(1));\n }\n else if (this.field.options instanceof Function) {\n this.isLoading = true;\n return this.field.options().pipe(take(1));\n }\n else {\n return of(this.field.options);\n }\n } else {\n return of(this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null\n ? (Array.isArray(this.group.controls[this.field.name].value) ?\n this.group.controls[this.field.name].value : [this.group.controls[this.field.name].value]) : [])\n }\n }\n\n protected onSearchChange(value: string): Observable<any[]> {\n if (value) {\n const search = value.toLowerCase();\n return this.options$.pipe(map(options => {\n return options\n .filter(option => {\n if (this.field.searchKeys && this.field.searchKeys.length) {\n return this.field.searchKeys.some(searchKey => {\n if (option[searchKey]) {\n return option[searchKey].toString().toLowerCase().indexOf(search) > -1;\n }\n return false;\n }) || (this.field.property ?\n option[this.field.property].toString().toLowerCase().indexOf(search) > -1 : false);\n\n } else {\n if (this.field.property) {\n return option[this.field.property].toString().toLowerCase().indexOf(search) > -1;\n }\n }\n return option.toString().toLowerCase().indexOf(search) > -1;\n });\n }));\n } else {\n return this.options$;\n }\n }\n\n openChange($event: boolean) {\n if (this.field.lazy) {\n this.openChange$.next($event);\n }\n\n if (this.field.virtualScroll) {\n if ($event) {\n this.cdkVirtualScrollViewport.scrollToIndex(0);\n this.cdkVirtualScrollViewport.checkViewportSize();\n }\n }\n }\n\n compareFn = (o1: any, o2: any) => {\n if (this.field.property && o1 && o2) {\n return o1[this.field.property] === o2[this.field.property];\n }\n return o1 === o2;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.lineBreak })\n@Component({\n selector: 'kles-form-line-break',\n template: ``,\n styles: [\n `:host{\n flex-basis: 100%;\n display: flex;\n height:0;\n }`\n ]\n})\nexport class KlesFormLineBreakComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({ name: 'arrayFormat' })\nexport class ArrayFormatPipe implements PipeTransform {\n\n transform(values: any[], property?: string): string {\n if (values && Array.isArray(values)) {\n if (property) {\n return values.map(value => value[property]).filter(Boolean).join(', ');\n } else {\n return values.join(', ');\n }\n }\n return '';\n }\n}","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from \"./field.abstract\";\n\n@Component({\n selector: 'kles-form-link',\n template: `\n <a [href]=\"group.controls[field.name].value\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\">\n {{field.label}}\n </a>\n`\n})\nexport class KlesFormLinkComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n\n@Component({\n selector: 'kles-form-slide-toggle',\n template: `\n <div [formGroup]=\"group\" >\n <mat-slide-toggle matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [color]=\"field.color\" [formControlName]=\"field.name\">{{field.label | translate}}</mat-slide-toggle>\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message}}</mat-error>\n </ng-container>\n </div>\n`,\n styles: []\n})\nexport class KlesFormSlideToggleComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { Observable, of } from 'rxjs';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-selection-list',\n template: `\n <div class=\"margin-top\" [formGroup]=\"group\">\n <mat-selection-list [formControlName]=\"field.name\" [attr.id]=\"field.id\" [multiple]=\"field.multiple\" [ngClass]=\"field.ngClass\">\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-list-option [value]=\"item\" *ngFor=\"let item of options$ | async;\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-list-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-list-option *ngFor=\"let item of options$ | async;\" [value]=\"item\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n </ng-container>\n </mat-selection-list>\n </div>\n`,\n styles: ['mat-selection-list {width: calc(100%);height: 250px; overflow:auto}'],\n})\nexport class KlesFormSelectionListComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n options$: Observable<any[]>;\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.badge })\n@Component({\n selector: 'kles-form-badge',\n template: `\n <span matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" \n matBadge=\"{{group.controls[field.name].value}}\" matBadgeOverlap=\"false\" matBadgeColor=\"{{field.color}}\">\n </span>\n`\n})\nexport class KlesFormBadgeComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@Component({\n selector: 'kles-form-button-toogle-group',\n template: `\n <div [formGroup]=\"group\" class=\"form-element\">\n <mat-button-toggle-group [formControlName]=\"field.name\" [multiple]=\"field.multiple\"\n [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\">\n <mat-button-toggle *ngFor=\"let item of options$ | async\" [value]=\"item\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n`\n})\nexport class KlesFormButtonToogleGroupComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n options$: Observable<any[]>;\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n }\n else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n }\n else {\n this.options$ = of(this.field.options);\n }\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { AbstractControl, FormArray, FormControl, FormGroup } from \"@angular/forms\";\nimport { KlesFormControl } from \"./default.control\";\nimport { v4 as uuidv4 } from 'uuid';\nimport { componentMapper } from \"../decorators/component.decorator\";\nimport { klesFieldControlFactory } from \"../factories/field.factory\";\n\nexport class KlesFormArray extends KlesFormControl {\n\n public create(): AbstractControl<any, any> {\n const array = new FormArray([], {\n validators: this.bindValidations(this.field.validations || []),\n asyncValidators: this.bindAsyncValidations(this.field.asyncValidations || []),\n updateOn: this.field.updateOn || 'change'\n });\n\n if (this.field.value && Array.isArray(this.field.value)) {\n if (this.field.collections && Array.isArray(this.field.collections)) {\n this.field.value.forEach(val => {\n const group = new FormGroup({});\n group.addControl('_id', new FormControl(uuidv4()));\n this.field.collections.forEach(subfield => {\n const data = val[subfield.name] || null;\n // const control = new KlesFormControl({ ...subfield, ...(data && { value: data }) }).create();\n let control;\n if (subfield.type) {\n control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield, ...(data && { value: data }) })\n || klesFieldControlFactory({ ...subfield, ...(data && { value: data }) });\n } else {\n control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield, ...(data && { value: data }) })\n || klesFieldControlFactory({ ...subfield, ...(data && { value: data }) });\n }\n group.addControl(subfield.name, control);\n });\n array.push(group);\n });\n }\n } else {\n const group = new FormGroup({});\n this.field.collections.forEach(subfield => {\n // const control = new KlesFormControl({ ...subfield }).create();\n let control;\n if (subfield.type) {\n control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield })\n || klesFieldControlFactory({ ...subfield });\n } else {\n control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield })\n || klesFieldControlFactory({ ...subfield });\n }\n group.addControl(subfield.name, control);\n });\n array.push(group);\n }\n\n\n if (this.field.disabled) {\n array.disable();\n }\n\n\n return array;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormArray } from '@angular/forms';\nimport { KlesFormArray } from '../controls/array.control';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { EnumType } from '../enums/type.enum';\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.array, factory: (field) => (new KlesFormArray(field).create()) })\n@Component({\n selector: 'kles-array',\n template: `\n <div [formGroup]=\"group\">\n <ng-container [formArrayName]=\"field.name\">\n <div class=\"group-container\" *ngFor=\"let subGroup of formArray.controls let index = index;\"\n [ngClass]=\"field.direction === 'column' ? 'column': 'row'\">\n <ng-container *ngFor=\"let subfield of field.collections;\">\n <ng-container *ngIf=\"subfield.visible !== false\"\n klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"field.collections\">\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n`,\n styles: ['mat-form-field {width: calc(100%)}',\n ':host { display:flex; flex-direction: inherit}',\n '.group-container {display:flex; flex-direction: inherit}',\n '.row { gap: 10px; flex-direction: row }',\n '.column { flex-direction: column; gap: 0px}'\n ]\n})\nexport class KlesFormArrayComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n // subGroup: FormGroup\n\n formArray: UntypedFormArray;\n\n ngOnInit() {\n // this.subGroup = this.group.controls[this.field.name] as FormGroup;\n super.ngOnInit();\n this.formArray = this.group.controls[this.field.name] as UntypedFormArray;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { AbstractControl, FormControl, FormGroup, UntypedFormGroup } from \"@angular/forms\";\nimport { KlesFormControl } from \"./default.control\";\n\nexport class KlesFormRange extends KlesFormControl {\n\n public create(): AbstractControl<any, any> {\n const range = new FormGroup({\n start: new FormControl(this.field.value?.start),\n end: new FormControl(this.field.value?.end),\n }, {\n validators: this.bindValidations(this.field.validations || []),\n asyncValidators: this.bindAsyncValidations(this.field.asyncValidations || []),\n });\n\n if (this.field.disabled) {\n range.disable();\n }\n return range;\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFormRange } from \"../controls/range.control\";\nimport { FieldMapper } from \"../decorators/component.decorator\";\nimport { EnumType } from \"../enums/type.enum\";\nimport { KlesFieldAbstract } from './field.abstract';\n\n@FieldMapper({ type: EnumType.range, factory: (field) => (new KlesFormRange(field).create()) })\n@Component({\n selector: \"kles-form-rangepicker\",\n template: `\n <mat-form-field [color]=\"field.color\" [formGroup]=\"group\">\n\n <mat-label>{{field.label}}</mat-label>\n\n <mat-date-range-input [formGroupName]=\"field.name\" [rangePicker]=\"picker\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\"\n [min]=\"field.min\" [max]=\"field.max\" >\n <input matStartDate formControlName=\"start\" [placeholder]=\"(field.placeholder?.start ? field.placeholder?.start : '') | translate\">\n <input matEndDate formControlName=\"end\" [placeholder]=\"(field.placeholder?.end ? field.placeholder?.end : '') | translate\">\n </mat-date-range-input>\n \n <div matSuffix>\n <mat-datepicker-toggle [for]=\"picker\" matSuffix></mat-datepicker-toggle>\n <ng-content></ng-content>\n </div>\n\n <mat-date-range-picker #picker></mat-date-range-picker>\n <mat-hint>{{field.hint}}</mat-hint>\n\n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}']\n})\nexport class KlesFormRangeComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n // range = new FormGroup({\n // start: new FormControl<Date | null>(null),\n // end: new FormControl<Date | null>(null),\n // });\n\n ngOnInit() { super.ngOnInit(); }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { ViewEncapsulation } from '@angular/compiler';\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren, ViewContainerRef } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { BehaviorSubject, Observable, of, ReplaySubject, Subject } from 'rxjs';\nimport { map, startWith, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { KlesFormSelectSearchComponent } from './select.search.component';\n\n@Component({\n selector: 'kles-form-select-lazy-search',\n template: `\n <mat-form-field class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\">\n <mat-select matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\"\n (openedChange)=\"openChange($event)\" [compareWith]=\"compareFn\"\n [placeholder]=\"field.placeholder | translate\" [formControlName]=\"field.name\" [multiple]=\"field.multiple\">\n <mat-select-trigger *ngIf=\"field.triggerComponent\">\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n\n <ng-container *ngIf=\"field.virtualScroll\">\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" [clearSearchInput]=\"false\"\n placeholderLabel=\"\" noEntriesFoundLabel =\"\"></ngx-mat-select-search>\n </mat-option>\n\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 50\" [style.height.px]=4*48>\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-checkbox *ngIf=\"field.multiple\" class=\"selectAll\" [formControl]=\"selectAllControl\"\n (change)=\"toggleAllSelection($event)\">\n {{'selectAll' | translate}}\n </mat-checkbox>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *cdkVirtualFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *cdkVirtualFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n\n <ng-container *ngIf=\"field.multiple\">\n <mat-option *ngFor=\"let item of group.controls[field.name].value | slice:0:30\" [value]=\"item\"\n style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"!field.multiple && group.controls[field.name].value\">\n <mat-option *ngFor=\"let item of [group?.controls[field.name]?.value]\" [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </cdk-virtual-scroll-viewport>\n\n </ng-container>\n\n <ng-container *ngIf=\"!field.virtualScroll\">\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" [clearSearchInput]=\"false\" \n placeholderLabel=\"\" noEntriesFoundLabel =\"\"></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"!isLoading; else emptyOption\">\n <mat-checkbox *ngIf=\"field.multiple\" class=\"selectAll\" [formControl]=\"selectAllControl\"\n (change)=\"toggleAllSelection($event)\">\n {{'selectAll' | translate}}\n </mat-checkbox>\n <ng-container *ngIf=\"!field.autocompleteComponent\">\n <mat-option *ngFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>\n </ng-container>\n\n <ng-container *ngIf=\"field.autocompleteComponent\">\n <mat-option *ngFor=\"let item of optionsFiltered$ | async\" [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n </ng-container>\n </ng-container>\n\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled><div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">{{'loading' | translate}}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div></mat-option>\n </ng-template>\n </ng-container>\n </mat-select>\n\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n \n <ng-container *ngFor=\"let validation of field.validations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n <ng-container *ngFor=\"let validation of field.asyncValidations;\" ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"group.get(field.name).hasError(validation.name)\">{{validation.message | translate}}</mat-error>\n </ng-container>\n </mat-form-field>\n`,\n styles: ['mat-form-field {width: calc(100%)}', '.selectAll {padding: 10px 16px;}',\n `::ng-deep .hide-checkbox .mat-pseudo-checkbox { display: none !important; }`],\n})\nexport class KlesFormSelectLazySearchComponent extends KlesFormSelectSearchComponent implements OnInit, OnDestroy {\n\n constructor(protected viewRef: ViewContainerRef, protected ref: ChangeDetectorRef) {\n super(viewRef, ref);\n }\n\n ngOnInit() {\n this.field.lazy = true;\n this.field.debounceTime = this.field.debounceTime ? this.field.debounceTime : 500;\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n protected onSearchChange(value: string): Observable<any[]> {\n if (this.field.options instanceof Function) {\n if (this.openChange$.getValue() && this.field.options instanceof Function) {\n if (value) {\n return this.field.options(value).pipe(take(1));\n } else {\n return this.field.options().pipe(take(1));\n }\n }\n return of(this.group.controls[this.field.name].value ? [this.group.controls[this.field.name].value] : []);\n }\n else {\n return super.onSearchChange(value);\n }\n }\n\n protected openChangeEvent(): void {\n this.openChange$\n .pipe(\n takeUntil(this._onDestroy),\n switchMap((isOpen) => {\n return this.onOpenChange(isOpen).pipe(map((options) => ({ options, isOpen })));\n })\n )\n .subscribe(({ options, isOpen }) => {\n if (!isOpen) {\n this.searchControl.reset(null, { emitEvent: false });\n }\n this.optionsFiltered$.next(options);\n this.isLoading = false;\n this.ref.markForCheck();\n });\n }\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { KlesDynamicFormComponent } from './dynamic-form.component';\nimport { KlesComponentDirective } from './directive/dynamic-component.directive';\nimport { KlesDynamicFieldDirective } from './directive/dynamic-field.directive';\nimport { KlesFormErrorStateMatcher } from './matcher/form-error.matcher';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { MaterialModule } from './modules/material.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { ColorPickerModule } from 'ngx-color-picker';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { KlesFormLabelComponent } from './fields/label.component';\nimport { KlesFormInputComponent } from './fields/input.component';\nimport { KlesFormSubmitButtonComponent } from './fields/button-submit.component';\nimport { KlesFormSelectComponent } from './fields/select.component';\nimport { KlesFormDateComponent } from './fields/date.component';\nimport { KlesFormRadioComponent } from './fields/radio.component';\nimport { KlesFormCheckboxComponent } from './fields/checkbox.component';\nimport { KlesFormListFieldComponent } from './fields/list-field.component';\nimport { KlesFormColorComponent } from './fields/color.component';\nimport { KlesButtonComponent } from './forms/button-control.component';\nimport { KlesFormButtonComponent } from './fields/button-form.component';\nimport { KlesButtonCheckerComponent } from './forms/buttonchecker-control.component';\nimport { KlesFormButtonCheckerComponent } from './fields/buttonchecker-form.component';\nimport { KlesButtonFileComponent } from './forms/buttonfile-control.component';\nimport { KlesFormButtonFileComponent } from './fields/buttonfile-form.component';\nimport { KlesFormTextareaComponent } from './fields/textarea.component';\nimport { KlesFormTextComponent } from './fields/text.component';\nimport { KlesFormChipComponent } from './fields/chip.component';\nimport { KlesFormGroupComponent } from './fields/group.component';\nimport { KlesFormInputClearableComponent } from './fields/input.clearable.component';\nimport { KlesFormIconComponent } from './fields/icon.component';\nimport { KlesTransformPipe } from './pipe/transform.pipe';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { KlesFormSelectSearchComponent } from './fields/select.search.component';\nimport { KlesFormLineBreakComponent } from './fields/line-break.component';\nimport { ArrayFormatPipe } from './pipe/array.pipe';\nimport { KlesFormLinkComponent } from './fields/link.component';\nimport { KlesFormSlideToggleComponent } from './fields/slide-toggle.component';\nimport { KlesFormSelectionListComponent } from './fields/selection-list.component';\nimport { KlesFormBadgeComponent } from './fields/badge.component';\nimport { KlesFormButtonToogleGroupComponent } from './fields/button-toogle-group.component';\nimport { KlesFormArrayComponent } from './fields/array.component';\nimport { KlesFormRangeComponent } from './fields/range.component';\nimport { KlesFormClearComponent } from './fields/clear.component';\nimport { KlesFormSelectLazySearchComponent } from './fields/select.lazy-search.component';\n\nconst components = [\n KlesDynamicFormComponent,\n KlesFormLabelComponent,\n KlesFormInputComponent,\n KlesFormInputClearableComponent,\n KlesFormSubmitButtonComponent,\n KlesFormBadgeComponent,\n KlesButtonComponent,\n KlesFormButtonComponent,\n KlesButtonCheckerComponent,\n KlesFormButtonCheckerComponent,\n KlesButtonFileComponent,\n KlesFormButtonFileComponent,\n KlesFormSelectComponent,\n KlesFormDateComponent,\n KlesFormRadioComponent,\n KlesFormCheckboxComponent,\n KlesFormListFieldComponent,\n KlesFormColorComponent,\n KlesFormTextareaComponent,\n KlesFormTextComponent,\n KlesFormChipComponent,\n KlesFormGroupComponent,\n KlesFormIconComponent,\n KlesFormSelectSearchComponent,\n KlesFormLineBreakComponent,\n KlesFormLinkComponent,\n KlesFormSlideToggleComponent,\n KlesFormSelectionListComponent,\n KlesFormButtonToogleGroupComponent,\n KlesFormArrayComponent,\n KlesFormRangeComponent,\n KlesFormClearComponent,\n KlesFormSelectLazySearchComponent\n];\n\nconst directives = [KlesDynamicFieldDirective, KlesComponentDirective];\nconst pipes = [KlesTransformPipe, ArrayFormatPipe];\n@NgModule({\n declarations: [\n components,\n directives,\n pipes\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n FlexLayoutModule,\n FormsModule,\n MaterialModule,\n ColorPickerModule,\n NgxMatSelectSearchModule\n ],\n providers: [\n { provide: ErrorStateMatcher, useClass: KlesFormErrorStateMatcher },\n pipes\n ],\n exports: [\n components,\n pipes,\n directives,\n ColorPickerModule\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA]\n})\nexport class KlesMaterialDynamicformsModule {\n static declarations = [\n components,\n directives,\n pipes\n ];\n}\n","import { AbstractControl, ValidatorFn } from \"@angular/forms\"\n\nexport function autocompleteObjectValidator(optional?: boolean): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if ((control.value === null || control.value === undefined) && !optional) return { 'invalidAutocompleteObject': { value: control.value } }\n\n if (typeof control.value === 'string') {\n if (control.value === '' && optional) return null;\n return { 'invalidAutocompleteObject': { value: control.value } }\n }\n return null /* valid option selected */\n }\n}\n\nexport function autocompleteStringValidator(validOptions: Array<string>, optional?: boolean): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if ((control.value === '' || control.value === null) && optional) return null;\n if (validOptions.indexOf(control.value) !== -1) {\n return null /* valid option selected */\n }\n return { 'invalidAutocompleteString': { value: control.value } }\n }\n}","/*\n * Public API Surface of kles-material-dynamicforms\n */\n\nexport * from './lib/kles-material-dynamicforms.module';\n\n/**DIRECTIVE */\nexport * from './lib/directive/dynamic-field.directive';\nexport * from './lib/directive/dynamic-component.directive';\n\n/*FORMS*/\nexport * from './lib/forms/button-control.component';\nexport * from './lib/forms/buttonchecker-control.component';\nexport * from './lib/forms/buttonfile-control.component';\n\n/**FIELDS */\nexport * from './lib/fields/badge.component';\nexport * from './lib/fields/button-form.component';\nexport * from './lib/fields/buttonchecker-form.component';\nexport * from './lib/fields/buttonfile-form.component';\nexport * from './lib/fields/button-submit.component';\nexport * from './lib/fields/checkbox.component';\nexport * from './lib/fields/color.component';\nexport * from './lib/fields/date.component';\nexport * from './lib/fields/field.abstract';\nexport * from './lib/fields/input.component';\nexport * from './lib/fields/input.clearable.component';\nexport * from './lib/fields/label.component';\nexport * from './lib/fields/list-field.component';\nexport * from './lib/fields/radio.component';\nexport * from './lib/fields/select.component';\nexport * from './lib/fields/textarea.component';\nexport * from './lib/fields/text.component';\nexport * from './lib/fields/chip.component';\nexport * from './lib/fields/group.component';\nexport * from './lib/fields/icon.component';\nexport * from './lib/fields/select.search.component';\nexport * from './lib/fields/line-break.component';\nexport * from './lib/fields/link.component';\nexport * from './lib/fields/slide-toggle.component';\nexport * from './lib/fields/selection-list.component';\nexport * from './lib/fields/button-toogle-group.component';\nexport * from './lib/fields/array.component';\nexport * from './lib/fields/range.component';\nexport * from './lib/fields/clear.component';\nexport * from './lib/fields/select.lazy-search.component';\n\n/**ENUMS */\nexport * from './lib/enums/type.enum';\n\n/**INTERFACES */\nexport * from './lib/interfaces/component.interface';\nexport * from './lib/interfaces/field.interface';\nexport * from './lib/interfaces/field.config.interface';\nexport * from './lib/interfaces/validator.interface';\nexport * from './lib/interfaces/directive.interface';\nexport * from './lib/interfaces/clear-control.interface';\n\n/**MATCHER */\nexport * from './lib/matcher/form-error.matcher';\n\n/**VALIDATORS */\nexport * from './lib/validators/autocomplete.validator';\n\n/**FORM */\nexport * from './lib/dynamic-form.component';\n\n/**PIPES */\nexport * from './lib/pipe/array.pipe';\nexport * from './lib/pipe/transform.pipe';\n\n/**DECORATORS */\nexport * from './lib/decorators/component.decorator';\n\n/**FACTORIES */\nexport * from './lib/factories/field.factory';\n\n/**CONTROLS */\nexport * from './lib/controls/array.control';\nexport * from './lib/controls/control.interface';\nexport * from './lib/controls/default.control';\nexport * from './lib/controls/group.control';\nexport * from './lib/controls/range.control';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2","i3","i1","i3.KlesDynamicFieldDirective","i4","i5","i6","i7","i8","i9","i10.KlesComponentDirective","i11","i10","i11.KlesComponentDirective","i12","i13.KlesTransformPipe","i2.KlesButtonComponent","i4.KlesButtonComponent","i2.KlesButtonCheckerComponent","i1.KlesButtonComponent","i2.KlesButtonFileComponent","i4.KlesTransformPipe","i7.KlesTransformPipe","i4.KlesDynamicFieldDirective","i12.KlesComponentDirective","i13","i13.KlesComponentDirective","i14","i15.KlesTransformPipe","i5.KlesComponentDirective","i6.KlesTransformPipe","i5.KlesTransformPipe","uuidv4"],"mappings":"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"}