@3kles/kles-material-dynamicforms 19.3.1 → 19.3.2

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/control.abstract.ts","../../../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/subfields/clear.component.ts","../../../projects/kles-material-dynamicforms/src/lib/utils/destroyable.guard.ts","../../../projects/kles-material-dynamicforms/src/lib/directive/dynamic-field.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/utils/validation.util.ts","../../../projects/kles-material-dynamicforms/src/lib/directive/mat-error-form.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/matcher/form-error.matcher.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/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/directive/mat-error-message.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/dynamic-form-intl.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/input.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/controls/array.control.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-base.ts","../../../projects/kles-material-dynamicforms/src/lib/enums/button-attribute.enum.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/selection/selection-model.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/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/forms/fab-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-fab.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/mini-fab-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-mini-fab.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/icon-button-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-icon.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/selection-list.search.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/indeterminate-checkbox.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/checkbox-indeterminate.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/copy.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/file-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/file.component.ts","../../../projects/kles-material-dynamicforms/src/lib/kles-material-dynamicforms.module.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/subfields/password-visibility.component.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, ValidatorFn, AsyncValidatorFn, Validators } from \"@angular/forms\";\nimport { IKlesValidator } from \"../interfaces/validator.interface\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\nimport { IKlesControl } from \"./control.interface\";\nimport { ChangeDetectorRef } from \"@angular/core\";\nimport { tap } from \"rxjs/operators\";\n\n\nexport abstract class KlesAbstractFormControl implements IKlesControl {\n\n constructor(protected field: IKlesFieldConfig, protected ref?: ChangeDetectorRef) {\n\n }\n abstract create(): AbstractControl;\n\n public bindValidations(validations: IKlesValidator<ValidatorFn>[]): ValidatorFn {\n if (validations.length > 0) {\n return Validators.compose(validations.map((validation) => validation.validator));\n\n }\n return null;\n }\n\n public bindAsyncValidations(validations: IKlesValidator<AsyncValidatorFn>[]): AsyncValidatorFn {\n if (validations.length > 0) {\n return Validators.composeAsync(validations.map((validation) => {\n return ((c: AbstractControl) => {\n const validator$ = validation.validator(c);\n if (validator$ instanceof Promise) {\n return validator$.finally(() => this.ref?.markForCheck());\n } else {\n return validator$.pipe(tap(() => this.ref?.markForCheck()));\n }\n });\n }));\n }\n return null;\n }\n\n}","import { AbstractControl, FormControl } from \"@angular/forms\";\nimport { concat, of } from \"rxjs\";\nimport { catchError, map, take } from \"rxjs/operators\";\nimport { KlesAbstractFormControl } from \"./control.abstract\";\n\nexport class KlesFormControl extends KlesAbstractFormControl {\n\n public create(): AbstractControl {\n const control = new FormControl(\n { value: this.field.value, disabled: this.field.disabled || false },\n {\n nonNullable: this.field.nonNullable || false,\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.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 return control;\n }\n}\n","import { ChangeDetectorRef } from \"@angular/core\";\nimport { KlesFormControl } from \"../controls/default.control\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\n\n\nexport const klesFieldControlFactory = (field: IKlesFieldConfig, ref?: ChangeDetectorRef) => {\n const factory = new KlesFormControl(field, ref);\n return factory.create();\n}\n\n\n\n","import { ChangeDetectorRef, 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, ref?: ChangeDetectorRef) => 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 file = 'file',\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, Input } from \"@angular/core\";\nimport { UntypedFormGroup } from \"@angular/forms\";\nimport { IKlesClearControl } from \"../../interfaces/clear-control.interface\";\nimport { IKlesFieldConfig } from \"../../interfaces/field.config.interface\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatIcon } from \"@angular/material/icon\";\nimport { MatButton, MatIconButton } from \"@angular/material/button\";\n\n@Component({\n selector: 'kles-form-clear',\n template: `\n <button [disabled]=\"isDisable()\" mat-icon-button aria-label=\"Clear\" type=\"button\"\n (click)=\"clear($event)\">\n <mat-icon>close</mat-icon>\n </button>\n `,\n standalone: true,\n imports: [CommonModule, MatIcon, MatIconButton]\n})\nexport class KlesFormClearComponent implements IKlesClearControl {\n @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() siblingFields: IKlesFieldConfig[];\n\n clear(event): void {\n event.stopPropagation();\n this.group.controls[this.field.name].reset();\n }\n\n isDisable(): boolean {\n return this.group.get(this.field.name).disabled\n || !this.group.get(this.field.name).value\n || (Array.isArray(this.group.get(this.field.name).value) && !this.group.get(this.field.name).value.length);\n\n }\n}","export interface Destroyable {\n destroy();\n}\n\nexport function isDestroyable(value: unknown): value is Destroyable {\n return value !== null && typeof value === 'object' &&\n typeof (value as Destroyable).destroy === 'function';\n}","import { Directive, Input, OnInit, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges, OnDestroy, Type, Injector, StaticProvider, Provider } from '@angular/core';\n\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { componentMapper } from '../decorators/component.decorator';\nimport { KlesFormClearComponent } from '../fields/subfields/clear.component';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { isDestroyable } from '../utils/destroyable.guard';\n\n@Directive({\n selector: '[klesDynamicField]',\n standalone: true,\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?.isFirstChange()) {\n this.group = changes.group.currentValue;\n }\n if (!changes.field?.isFirstChange()) {\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: Array<Provider | StaticProvider>;\n parent?: Injector;\n name?: string;\n } = {\n providers: [\n ...(this.field.providers || []),\n ...(this.field.dateOptions\n ? [\n ...(this.field.dateOptions.adapter\n ? [\n {\n provide: DateAdapter,\n useClass: this.field.dateOptions.adapter.class,\n deps: this.field.dateOptions.adapter.deps || [],\n },\n ]\n : []),\n { provide: MAT_DATE_LOCALE, useValue: this.field.dateOptions.language },\n { provide: MAT_DATE_FORMATS, useValue: this.field.dateOptions.dateFormat },\n ]\n : []),\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, options);\n this.subComponents.push(composant);\n }\n if (this.field.subComponents) {\n this.subComponents.push(...this.field.subComponents.map((subComponent) => this.createSubComponent(subComponent, options)));\n }\n\n this.componentRef = this.createComponentRef(injector);\n\n this.componentRef.setInput('field', this.field);\n this.componentRef.setInput('group', this.group);\n this.componentRef.setInput('siblingFields', this.siblingFields);\n\n // this.componentRef.instance.field = this.field;\n // this.componentRef.instance.group = this.group;\n // this.componentRef.instance.siblingFields = this.siblingFields;\n\n this.componentRef.onDestroy(() => {\n if (isDestroyable(injector)) {\n injector.destroy();\n }\n });\n }\n\n protected createComponentRef(injector: Injector) {\n const componentRef = this.container.createComponent(componentMapper.find((element) => element.type === this.field.type)?.component || this.field.component, {\n injector,\n projectableNodes: [this.subComponents.map((sub) => sub.location.nativeElement)],\n });\n\n if (this.field.hostClass) {\n if (Array.isArray(this.field.hostClass)) {\n componentRef.location.nativeElement.classList.add(...this.field.hostClass);\n } else {\n componentRef.location.nativeElement.classList.add(this.field.hostClass);\n }\n }\n\n return componentRef;\n }\n\n private createSubComponent(\n componentType: Type<any>,\n options: {\n providers: Array<Provider | StaticProvider>;\n parent?: Injector;\n name?: string;\n },\n ): ComponentRef<any> {\n const injector: Injector = Injector.create(options);\n const component = this.container.createComponent(componentType, { injector });\n component.setInput('field', this.field);\n component.setInput('group', this.group);\n component.setInput('siblingFields', this.siblingFields);\n\n component.onDestroy(() => {\n if (isDestroyable(injector)) {\n injector.destroy();\n }\n });\n\n return component;\n }\n}\n","import { IKlesValidator, KlesValidationKey } from '../interfaces/validator.interface';\n\nexport function flattenValidators<T>(validations: IKlesValidator<T>[]): KlesValidationKey[] {\n return validations.flatMap((v) => ('keys' in v ? v.keys : [{ name: v.name, message: v.message, messageKey: v.messageKey }]));\n}\n","import { Component, Input } from '@angular/core';\nimport { IKlesValidator, KlesValidationKey } from '../interfaces/validator.interface';\nimport { AsyncValidator, FormsModule, ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { flattenValidators } from '../utils/validation.util';\n\n@Component({\n selector: '[matErrorForm]',\n template: `\n @if (form && form.errors) {\n @for (validation of validationsKeys; track validation.name) {\n @if (form?.hasError(validation.name) && validation.message) {\n {{ validation.message }}\n }\n }\n @for (validation of asyncValidationsKeys; track validation.name) {\n @if (form?.hasError(validation.name) && validation.message) {\n {{ validation.message }}\n }\n }\n }\n `,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormsModule],\n})\nexport class MatErrorFormDirective {\n validationsKeys: KlesValidationKey[] = [];\n asyncValidationsKeys: KlesValidationKey[] = [];\n\n @Input({ required: true }) form: UntypedFormGroup;\n\n @Input()\n set validations(v: IKlesValidator<Validators>[]) {\n this.validationsKeys = flattenValidators<Validators>(v ?? []);\n }\n\n @Input()\n set asyncValidations(v: IKlesValidator<AsyncValidator>[]) {\n this.asyncValidationsKeys = flattenValidators<AsyncValidator>(v ?? []);\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 { OnInit, Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormBuilder, ValidatorFn, AsyncValidatorFn, AbstractControl, FormArray, FormGroup, FormControlDirective, FormControlName, ReactiveFormsModule, FormsModule } 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';\nimport { CommonModule } from '@angular/common';\n\nimport { MatError } from '@angular/material/form-field';\nimport { KlesDynamicFieldDirective } from './directive/dynamic-field.directive';\nimport { MatErrorFormDirective } from './directive/mat-error-form.directive';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { KlesFormErrorStateMatcher } from './matcher/form-error.matcher';\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 standalone: true,\n template: `\n <form class=\"{{ orientationClass }}\" [ngClass]=\"formClass\" [formGroup]=\"form\" (submit)=\"onSubmit($event)\">\n @for (field of fields; track field.name) {\n @if (field.visible !== false) {\n <ng-container klesDynamicField [field]=\"field\" [group]=\"form\" [siblingFields]=\"fields\"> </ng-container>\n }\n }\n @if (form && form.errors) {\n <mat-error matErrorForm [form]=\"form\" [validations]=\"validators\" [asyncValidations]=\"asyncValidators\"></mat-error>\n }\n </form>\n `,\n styles: [\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; align-items: baseline}',\n '.dynamic-form-row > * { width: 100%; }',\n '.dynamic-form-grid { display: grid; }',\n '.dynamic-form-inline-grid { display: inline-grid; }',\n ],\n providers: [{ provide: ErrorStateMatcher, useClass: KlesFormErrorStateMatcher }],\n imports: [CommonModule, MatErrorFormDirective, KlesDynamicFieldDirective, FormsModule, ReactiveFormsModule, MatError],\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' | 'grid' | 'inline-grid' = 'column';\n @Input() formClass: string | string[] | Set<string> | { [klass: string]: any };\n\n form: UntypedFormGroup;\n orientationClass: 'dynamic-form-column' | 'dynamic-form-row' | 'dynamic-form-grid' | 'dynamic-form-inline-grid' = 'dynamic-form-column';\n\n get value() {\n return this.form.value;\n }\n\n constructor(\n private fb: UntypedFormBuilder,\n private ref: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.form = this.createForm();\n this.setOrientationClass();\n this._onLoaded.emit();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.fields?.firstChange) {\n this.updateForm();\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 }\n }\n\n onSubmit(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n if (this.form.valid) {\n this.submit.emit(this.form.getRawValue());\n } else {\n this.validateAllFormFields(this.form);\n }\n }\n\n private setOrientationClass() {\n switch (this.direction) {\n case 'column':\n this.orientationClass = 'dynamic-form-column';\n break;\n case 'row':\n this.orientationClass = 'dynamic-form-row';\n break;\n case 'grid':\n this.orientationClass = 'dynamic-form-grid';\n break;\n case 'inline-grid':\n this.orientationClass = 'dynamic-form-inline-grid';\n break;\n }\n }\n\n private updateForm() {\n Object.keys(this.form.controls)\n .filter((key) => {\n return !this.fields.map((field) => field.name).includes(key);\n })\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 if (control) {\n this.form.addControl(field.name, control);\n }\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 if (control) {\n group.setControl(subfield.name, control, { emitEvent: false });\n }\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 private createControl(field: IKlesFieldConfig): AbstractControl {\n if (field.type) {\n return componentMapper.find((c) => c.type === field.type)?.factory ? componentMapper.find((c) => c.type === field.type)?.factory(field, this.ref) : klesFieldControlFactory(field, this.ref);\n } else {\n return componentMapper.find((c) => c.component === field.component)?.factory ? componentMapper.find((c) => c.component === field.component)?.factory(field, this.ref) : klesFieldControlFactory(field, this.ref);\n }\n }\n\n private createForm() {\n const group = this.fb.group({});\n\n this.fields.forEach((field) => {\n const control = this.createControl(field);\n if (control) {\n group.addControl(field.name, control);\n }\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 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 standalone: true,\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 { 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 { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { PortalModule } from '@angular/cdk/portal';\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 MatSlideToggleModule,\n MatButtonToggleModule,\n PortalModule\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 MatSlideToggleModule,\n ScrollingModule,\n CdkScrollable,\n MatButtonToggleModule,\n PortalModule\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, Input } 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 @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() 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.appearance) {\n this.field.appearance = 'fill';\n }\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 }\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 isPending() {\n return (this.group.controls[this.field.name].pending || this.field.pending);\n }\n\n onFocus() {\n if (this.field?.onFocus) {\n this.field.onFocus(this.field, this.group);\n }\n }\n\n onBlur() {\n if (this.field?.onBlur) {\n this.field.onBlur(this.field, this.group);\n }\n }\n}\n","\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\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\" [type]=\"field.inputType\">\n </div>\n`,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatTooltip]\n})\nexport class KlesFormLabelComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n this.group.controls[this.field.name].disable({ emitEvent: false });\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}","import { Component, AfterViewInit, Injector, Input } from '@angular/core';\nimport { MatFormFieldControl, MatFormField } from '@angular/material/form-field';\nimport { IKlesValidator, KlesValidationKey } from '../interfaces/validator.interface';\nimport { AsyncValidator, Validators } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { flattenValidators } from '../utils/validation.util';\n\n@Component({\n selector: '[matErrorMessage]',\n template: `\n @for (validation of validationsKeys; track validation.name) {\n @if (inputRef?.ngControl.hasError(validation.name) && validation.message) {\n {{ validation.message }}\n }\n }\n @for (validation of asyncValidationsKeys; track validation.name) {\n @if (inputRef?.ngControl.hasError(validation.name) && validation.message) {\n {{ validation.message }}\n }\n }\n `,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule],\n})\nexport class MatErrorMessageDirective implements AfterViewInit {\n validationsKeys: KlesValidationKey[] = [];\n asyncValidationsKeys: KlesValidationKey[] = [];\n\n @Input()\n set validations(v: IKlesValidator<Validators>[]) {\n this.validationsKeys = flattenValidators<Validators>(v ?? []);\n }\n\n @Input()\n set asyncValidations(v: IKlesValidator<AsyncValidator>[]) {\n this.asyncValidationsKeys = flattenValidators<AsyncValidator>(v ?? []);\n }\n\n inputRef: MatFormFieldControl<MatFormFieldControl<any>>;\n\n constructor(private _inj: Injector) {}\n\n ngAfterViewInit() {\n let container = this._inj.get(MatFormField, null, { optional: true });\n this.inputRef = container?._control;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KlesDynamicFormIntl {\n loading = 'Loading';\n selectAll = 'Select all';\n \n}\n","import { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy, signal, ViewContainerRef } from '@angular/core';\nimport { combineLatest, concat, Observable, of, Subject } from 'rxjs';\nimport { startWith, map, switchMap, distinctUntilChanged, filter } from 'rxjs/operators';\nimport { EnumType } from '../enums/type.enum';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { MatError, MatFormFieldModule } from '@angular/material/form-field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\nimport { MatIconModule } from '@angular/material/icon';\n\n@FieldMapper({ type: EnumType.input })\n@Component({\n selector: 'kles-form-input',\n template: `\n <mat-form-field [formGroup]=\"group\" [color]=\"field.color\" [subscriptSizing]=\"field.subscriptSizing\" class=\"form-element\" [appearance]=\"field.appearance\" class=\"field-bottom\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n @if(field.icon){\n <mat-icon matPrefix>{{ field.icon }}</mat-icon>\n }\n \n @if (field.autocomplete) {\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n [matAutocomplete]=\"auto\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn.bind(this)\" [panelWidth]=\"this.field.panelWidth\">\n @if(filteredOption$ | async; as filteredOption){ @if(filteredOption.loading){\n <mat-option disabled>\n <div class=\"loadingSelect\">\n {{ intl.loading }}...\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\n </div>\n </mat-option>\n }@else{ @if (!field.autocompleteComponent) { @for (option of filteredOption.options; track option) {\n <mat-option [value]=\"option\">\n {{ field.property ? option[field.property] : option }}\n </mat-option>\n } } @else { @for (option of filteredOption.options; track option) {\n <mat-option [value]=\"option\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"option\" [field]=\"field\"> </ng-container>\n </mat-option>\n } } } }\n </mat-autocomplete>\n } @else {\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n } @if (field.hint) {\n <mat-hint>{{ field.hint }}</mat-hint>\n } @if (field.subComponents || field.clearable || isPending()) {\n <div matSuffix class=\"suffix\">\n @if(isPending()){\n <mat-spinner mode=\"indeterminate\" diameter=\"21\"></mat-spinner>\n } @if(field.subComponents || field.clearable){\n <ng-content></ng-content>\n }\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n styleUrls: ['../styles/mat-suffix.style.scss', '../styles/mat-field-bottom.style.scss', '../styles/loading-select.style.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatAutocompleteModule, MatTooltipModule, MatProgressSpinnerModule, MatOptionModule, MatError, MatErrorMessageDirective, KlesComponentDirective, MatIconModule],\n})\nexport class KlesFormInputComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n filteredOption$: Observable<{ loading: boolean; options: any[] }>;\n options$: Observable<{ loading: boolean; options: any[] }>;\n private isFocused = new Subject<boolean>();\n isLoading = signal(false);\n\n constructor(protected viewRef: ViewContainerRef, public intl: KlesDynamicFormIntl) {\n super(viewRef);\n }\n\n ngOnInit(): void {\n if (this.field.lazy) {\n this.options$ = this.isFocused.pipe(\n distinctUntilChanged(),\n filter((isFocused) => isFocused),\n switchMap((isFocused) => {\n if (isFocused) {\n let obs$: Observable<any[]>;\n if (this.field.options instanceof Observable) {\n obs$ = this.field.options;\n } else if (this.field.options instanceof Function) {\n obs$ = this.field.options();\n } else {\n obs$ = of(this.field.options);\n }\n return concat(\n of({ loading: true, options: [] }),\n obs$.pipe(\n map((options: any[]) => {\n return { loading: false, options };\n }),\n ),\n );\n } else {\n return of({ loading: false, options: [] });\n }\n }),\n );\n } else {\n if (this.field.options instanceof Observable) {\n this.options$ = concat(\n of({ loading: true, options: [] }),\n this.field.options.pipe(\n map((options: any[]) => {\n return { loading: false, options };\n }),\n ),\n );\n } else if (this.field.options instanceof Function) {\n this.options$ = concat(\n of({ loading: true, options: [] }),\n this.field.options().pipe(\n map((options: any[]) => {\n return { loading: false, options };\n }),\n ),\n );\n } else {\n this.options$ = of({ loading: false, options: this.field.options });\n }\n }\n\n this.filteredOption$ = concat(\n combineLatest([this.group.get(this.field.name).valueChanges.pipe(startWith('')), this.options$]).pipe(\n map(([data, response]) => {\n if (response.loading) {\n return response;\n } else {\n return { loading: false, options: data && response.options ? this.filterData(data, response.options) : response.options };\n }\n }),\n ),\n );\n\n if (!this.field.maxLength) {\n this.field.maxLength = 524288; // Max default input W3C\n }\n super.ngOnInit();\n }\n\n onFocus() {\n if (this.field.autocomplete && this.field.lazy) {\n this.isFocused.next(true);\n }\n\n super.onFocus();\n }\n\n private filterData(value: any, options: any[]): 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 options.filter((option) => option[this.field.property].toLowerCase().indexOf(filterValue) === 0);\n }\n return 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 { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'klesTransform',\n standalone: true\n})\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 acc = p.pipe.transform(acc, ...(p.options || []));\n return acc;\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, ScrollingModule } 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';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatHint } from '@angular/material/form-field';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\n\n@FieldMapper({ type: EnumType.select })\n@Component({\n selector: 'kles-form-select',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\" class=\"field-bottom\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n <mat-select\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n (openedChange)=\"openChange($event)\"\n [compareWith]=\"compareFn\"\n [panelWidth]=\"field.panelWidth || 'auto'\"\n [ngClass]=\"field.ngClass\"\n [placeholder]=\"field.placeholder\"\n [formControlName]=\"field.name\"\n [multiple]=\"field.multiple\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n >\n @if (field.triggerComponent) {\n <mat-select-trigger>\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n } @if (!field.virtualScroll) { @if (!field.autocompleteComponent) { @if (!isLoading) { @for (item of options$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">{{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}</mat-option>\n } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } } @else { @if (!isLoading) { @for (item of options$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } } } @else {\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 50\" [style.height.px]=\"5 * 48\">\n @if (!field.autocompleteComponent) { @if (!isLoading) {\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 } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } } @else { @if (!isLoading) {\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 } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } }\n </cdk-virtual-scroll-viewport>\n }\n </mat-select>\n\n @if (field.hint) {\n <mat-hint>{{ field.hint }}</mat-hint>\n } @if (field.subComponents || field.clearable) {\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: [\n 'mat-form-field {width: calc(100%)}',\n `\n ::ng-deep .hide-checkbox .mat-pseudo-checkbox {\n display: none !important;\n }\n `,\n ],\n styleUrls: ['../styles/loading-select.style.scss', '../styles/mat-field-bottom.style.scss'],\n standalone: true,\n imports: [CommonModule, KlesTransformPipe, MatErrorMessageDirective, MatHint, KlesComponentDirective, MatOption, MatProgressSpinner, ScrollingModule, MatSelectModule, ReactiveFormsModule, MatTooltip],\n})\nexport class KlesFormSelectComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\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, public intl: KlesDynamicFormIntl) {\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 : [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 } else if (this.field.options instanceof Function) {\n this.isLoading = true;\n return this.field.options();\n } else {\n return of(this.field.options);\n }\n } else {\n return of(\n 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\n : [this.group.controls[this.field.name].value]\n : [],\n );\n }\n }),\n )\n .subscribe((options) => {\n (this.options$ as BehaviorSubject<any[]>).next(options);\n this.isLoading = false;\n this.ref.markForCheck();\n });\n } else {\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n } else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\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';\nimport { CommonModule } from \"@angular/common\";\nimport { MatError, MatFormField, MatHint, MatLabel } from \"@angular/material/form-field\";\nimport { MatErrorMessageDirective } from \"../directive/mat-error-message.directive\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\nimport { MatInput } from \"@angular/material/input\";\n\n@Component({\n selector: 'kles-form-datepicker',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\">\n @if (field.label) {\n <mat-label>{{field.label}}</mat-label>\n }\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [matDatepicker]=\"picker\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder\"\n [min]=\"field.min\" [max]=\"field.max\">\n <div matSuffix class=\"suffix\">\n <mat-datepicker-toggle [for]=\"picker\"></mat-datepicker-toggle>\n <ng-content></ng-content>\n </div>\n <mat-datepicker #picker></mat-datepicker>\n @if (field.hint) {\n <mat-hint>{{field.hint}}</mat-hint>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}',\n '.suffix { display: flex; flex-direction: row}'\n ],\n standalone: true,\n imports: [CommonModule, MatErrorMessageDirective, MatError, MatHint, MatDatepickerModule, ReactiveFormsModule, MatTooltip, MatLabel, MatFormField, MatInput],\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';\nimport { Observable, of } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { MatRadioButton, MatRadioGroup } from '@angular/material/radio';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltip } from '@angular/material/tooltip';\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 @for (item of options$ | async; track item) {\n <mat-radio-button [value]=\"item\">{{item}}</mat-radio-button>\n }\n </mat-radio-group>\n </div>\n`,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatRadioButton, MatRadioGroup, ReactiveFormsModule, MatTooltip],\n})\nexport class KlesFormRadioComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\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\n ngOnDestroy(): void {\n super.ngOnDestroy();\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';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatTooltip } from '@angular/material/tooltip';\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 }}</mat-checkbox>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatCheckbox, MatTooltip],\n})\nexport class KlesFormCheckboxComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\n super.ngOnInit();\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 line = { ...val, _id: val?._id || uuidv4() };\n const group = new FormGroup({ _id: new FormControl(line._id) });\n this.field.collections?.forEach(subfield => {\n const data = line[subfield.name] || null;\n let control;\n if (subfield.type) {\n control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield, ...(data && { value: data }) }, this.ref)\n || klesFieldControlFactory({ ...subfield, ...(data && { value: data }) }, this.ref);\n } else {\n control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield, ...(data && { value: data }) }, this.ref)\n || klesFieldControlFactory({ ...subfield, ...(data && { value: data }) }, this.ref);\n }\n group.addControl(subfield.name, control);\n });\n array.push(group);\n });\n }\n } else {\n const group = new FormGroup({ _id: new FormControl(uuidv4()) });\n this.field.collections?.forEach(subfield => {\n let control;\n if (subfield.type) {\n control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield }, this.ref)\n || klesFieldControlFactory({ ...subfield }, this.ref);\n } else {\n control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield }, this.ref)\n || klesFieldControlFactory({ ...subfield }, this.ref);\n\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, ViewContainerRef } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { UntypedFormGroup, UntypedFormArray, UntypedFormBuilder, ValidatorFn, Validators, AsyncValidatorFn, ReactiveFormsModule } from '@angular/forms';\nimport { IKlesValidator } from '../interfaces/validator.interface';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { KlesFormArray } from '../controls/array.control';\nimport { cloneDeep } from 'lodash';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { CommonModule } from '@angular/common';\nimport { MatError } from '@angular/material/form-field';\nimport { MatIcon } from '@angular/material/icon';\nimport { KlesDynamicFieldDirective } from '../directive/dynamic-field.directive';\n\n@FieldMapper({ type: 'listfield', factory: (field) => new KlesFormArray(field).create() })\n@Component({\n selector: 'kles-form-listfield',\n template: `\n <div [formGroup]=\"group\" class=\"form-element\">\n <div class=\"label\">\n {{ field.label }}\n <button mat-icon-button color=\"primary\" (click)=\"addField()\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n\n <div class=\"dynamic-form\" [formGroupName]=\"field.name\">\n @for (subGroup of formArray.controls; track subGroup.value._id; let idx = $index;) {\n <div class=\"subfields\">\n @for (subfield of collections[idx]; track subfield.name) {\n <ng-container klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"collections[idx]\"> </ng-container>\n } @if(collections[idx]){\n <button mat-icon-button (click)=\"deleteField(idx)\" color=\"primary\">\n <mat-icon>delete_outlined</mat-icon>\n </button>\n }\n </div>\n } @for (validation of field.validations; track validation.name) {\n <ng-container ngProjectAs=\"mat-error\">\n @if (group.get(field.name).hasError(validation.name)) {\n <mat-error>{{ validation.message }}</mat-error>\n }\n </ng-container>\n } @for (validation of field.asyncValidations; track validation.name) {\n <ng-container ngProjectAs=\"mat-error\">\n @if (group.get(field.name).hasError(validation.name)) {\n <mat-error>{{ validation.message }}</mat-error>\n }\n </ng-container>\n }\n </div>\n </div>\n `,\n styles: [\n '.subfields {display: flex; flex-direction: row; gap:5px}',\n `\n .label {\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: 5px;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, MatError, MatIcon, KlesDynamicFieldDirective, ReactiveFormsModule],\n})\nexport class KlesFormListFieldComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n formArray: UntypedFormArray;\n collections: IKlesFieldConfig[][] = [];\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\n this.collections = this.formArray?.controls?.map(() => {\n return this.field.collections ? cloneDeep(this.field.collections) : [];\n });\n\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(null, this.bindValidations(item.validations || []), this.bindAsyncValidations(item.asyncValidations || []));\n group.addControl(item.name, control);\n });\n return group;\n }\n\n deleteField(index: number) {\n this.collections.splice(index, 1);\n this.formArray.removeAt(index);\n }\n\n addField() {\n this.collections.push(this.field.collections ? cloneDeep(this.field.collections) : []);\n this.formArray.push(this.createFormGroup());\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 return null;\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 return null;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy } from '@angular/core';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { ColorPickerComponent, ColorPickerDirective } from 'ngx-color-picker';\n@Component({\n selector: 'kles-form-color',\n template: `\n <mat-form-field\n [subscriptSizing]=\"field.subscriptSizing\"\n [formGroup]=\"group\"\n class=\"form-element\"\n [colorPicker]=\"group.get(field.name).value\"\n (colorPickerChange)=\"group.get(field.name).setValue($event)\"\n [cpPosition]=\"field.colorOption.position\"\n [cpColorMode]=\"field.colorOption.mode\"\n [cpOutputFormat]=\"field.colorOption.format\"\n [cpPositionOffset]=\"field.colorOption.positionOffset\"\n [appearance]=\"field.appearance\"\n >\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [placeholder]=\"field.placeholder\"\n [value]=\"group.get(field.name).value\"\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\n @if (field.subComponents || field.clearable) {\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n standalone: true,\n imports: [CommonModule, MatErrorMessageDirective, MatTooltip, ReactiveFormsModule, MatFormField, ColorPickerDirective, MatInput],\n})\nexport class KlesFormColorComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\n if (!this.field.colorOption) {\n this.field.colorOption = {\n position: 'auto',\n mode: 'color',\n format: 'auto',\n positionOffset: '0%',\n };\n }\n if (!this.field.colorOption.position) {\n this.field.colorOption = {\n ...this.field.colorOption,\n position: 'auto',\n };\n }\n if (!this.field.colorOption.mode) {\n this.field.colorOption = {\n ...this.field.colorOption,\n mode: 'color',\n };\n }\n if (!this.field.colorOption.format) {\n this.field.colorOption = {\n ...this.field.colorOption,\n format: 'auto',\n };\n }\n if (!this.field.colorOption.positionOffset) {\n this.field.colorOption = {\n ...this.field.colorOption,\n positionOffset: '0%',\n };\n }\n super.ngOnInit();\n }\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 ? '#000000' : '#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 { OnInit, Input, Injectable, Component } from '@angular/core';\nimport { ControlValueAccessor } 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 template: '',\n standalone: true\n})\nexport abstract class KlesButtonBase 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') get type(): any {\n return this._type;\n }\n set type(value: any) {\n this._type = value || this._type;\n }\n @Input() classButton = '';\n @Input() value: IButton = {};\n @Input() tooltip?: string;\n\n protected _type = 'button';\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n ngOnInit(): void {\n }\n\n click(event) {\n if (!this.disabled && this.value && this._type === 'button') {\n this.value.event = this.name;\n this.onChange(this.value);\n }\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}","export enum EnumButtonAttribute {\n 'mat-button' = 'mat-button',\n 'mat-flat-button' = 'mat-flat-button',\n 'mat-raised-button' = 'mat-raised-button',\n 'mat-stroked-button' = 'mat-stroked-button',\n}\n","import { Component, Input, OnInit, Signal, forwardRef, signal } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { KlesButtonBase } from './button-control-base';\nimport { EnumButtonAttribute } from '../enums/button-attribute.enum';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatButton } from '@angular/material/button';\n\n/*From angular material \n https://github.com/angular/components/blob/17.0.x/src/material/button/button-base.ts#L40C1-L56C5\n */\nconst HOST_SELECTOR_MDC_CLASS_PAIR: { attribute: string; mdcClasses: string[] }[] = [\n {\n attribute: EnumButtonAttribute['mat-button'],\n mdcClasses: ['mdc-button', 'mat-mdc-button'],\n },\n {\n attribute: EnumButtonAttribute['mat-flat-button'],\n mdcClasses: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button'],\n },\n {\n attribute: EnumButtonAttribute['mat-raised-button'],\n mdcClasses: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button'],\n },\n {\n attribute: EnumButtonAttribute['mat-stroked-button'],\n mdcClasses: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button'],\n }\n];\n\n\n@Component({\n selector: 'kles-button',\n template: `\n <button mat-button [type]=\"type\" [ngClass]=\"classButton || mdcClasses()\" [color]=\"(color)?color:'primary'\" [disabled]=\"disabled\"\n (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n {{label}}\n\n @if (icon) {\n <mat-icon>{{icon}}</mat-icon>\n }\n\n @if (iconSvg) {\n <mat-icon svgIcon=\"{{iconSvg}}\"></mat-icon>\n }\n </button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatIcon, MatTooltip, MatButton]\n})\nexport class KlesButtonComponent extends KlesButtonBase implements OnInit {\n\n mdcClasses = signal(HOST_SELECTOR_MDC_CLASS_PAIR[0].mdcClasses);\n\n @Input() set attribute(attribute: EnumButtonAttribute) {\n this.mdcClasses.set(HOST_SELECTOR_MDC_CLASS_PAIR.find(selector => selector.attribute === attribute)?.mdcClasses || []);\n }\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { KlesButtonComponent } from '../forms/button-control.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'kles-form-button',\n template: `\n <div [formGroup]=\"group\">\n <kles-button\n [attr.id]=\"field.id\"\n [classButton]=\"field.ngClass\"\n [name]=\"field.name\"\n [label]=\"field.label\"\n [color]=\"field.color\"\n [attribute]=\"field.attribute\"\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 standalone: true,\n imports: [CommonModule, KlesButtonComponent, ReactiveFormsModule],\n})\nexport class KlesFormButtonComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { IButton, KlesButtonBase } from './button-control-base';\nimport { CommonModule } from '@angular/common';\nimport { KlesButtonComponent } from './button-control.component';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatBadge } from '@angular/material/badge';\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 @if (value.error && !value.busy) {\n <span>\n <kles-button [classButton]=\"classButton\" [name]=\"name\" [label]=\"label\" [color]=\"color\" [icon]=\"icon\" [iconSvg]=\"iconSvg\" [value]=\"value\" [tooltip]=\"tooltip\" [disabled]=\"disabled\" matBadge=\"{{ countError() }}\" (click)=\"click($event)\">\n </kles-button>\n </span>\n }\n <span style=\"text-align: center;\">\n @if (value.busy || false) {\n <span style=\"text-align: center;margin-right: 10px\">\n <mat-spinner [diameter]=\"25\"></mat-spinner>\n </span>\n } @if (value.message) {\n <span style=\"margin-right: 10px\">\n {{ value.message }}\n </span>\n }\n </span>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonCheckerComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, KlesButtonComponent, MatProgressSpinner, MatBadge],\n})\nexport class KlesButtonCheckerComponent extends KlesButtonBase 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}\n","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { KlesButtonCheckerComponent } from '../forms/buttonchecker-control.component';\nimport { ReactiveFormsModule } from '@angular/forms';\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 [disabled]=\"field.disabled\"\n >\n </kles-button-checker>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, KlesButtonCheckerComponent, ReactiveFormsModule],\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, forwardRef, ViewChild } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IButton, KlesButtonBase } from './button-control-base';\nimport { KlesButtonComponent } from './button-control.component';\nimport { CommonModule } from '@angular/common';\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 standalone: true,\n imports: [CommonModule, KlesButtonComponent],\n})\nexport class KlesButtonFileComponent extends KlesButtonBase {\n @ViewChild('file') file;\n @Input() accept = '*.*';\n fileReader = new FileReader();\n fileContent: string | string[];\n value: IButtonFile = {};\n\n\n click(event) {\n if (!this.disabled) {\n this.file.nativeElement.click();\n }\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';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { KlesButtonFileComponent } from '../forms/buttonfile-control.component';\n\n@Component({\n selector: 'kles-form-button-file',\n template: `\n <div [formGroup]=\"group\">\n <kles-button-file\n [attr.id]=\"field.id\"\n [classButton]=\"field.ngClass\"\n [name]=\"field.name\"\n [label]=\"field.label\"\n [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 [disabled]=\"field.disabled\"\n >\n </kles-button-file>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, KlesButtonFileComponent],\n})\nexport class KlesFormButtonFileComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit(): void {\n super.ngOnInit();\n this.field.buttonType = 'button';\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatInput } from '@angular/material/input';\n\n@Component({\n selector: 'kles-form-textarea',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\" [appearance]=\"field.appearance\">\n @if (field.label) {\n <mat-label>{{field.label}}</mat-label>\n }\n\n <textarea matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\" cdkTextareaAutosize [placeholder]=\"field.placeholder\"\n [cdkAutosizeMinRows]=\"field.textareaAutoSize?.minRows\" [cdkAutosizeMaxRows]=\"field.textareaAutoSize?.maxRows\" [maxlength]=\"field.maxLength\">\n </textarea>\n\n @if (field.subComponents || field.clearable) {\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n standalone: true,\n imports: [CommonModule, MatErrorMessageDirective, ScrollingModule, ReactiveFormsModule, MatTooltip, MatLabel, MatFormField, TextFieldModule, MatInput]\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';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatTooltip } from '@angular/material/tooltip';\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\" [ngStyle]=\"field.ngStyle\">\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 @if (field.subComponents || isPending()) {\n <ng-content></ng-content>\n }\n`,\n styles: [`:host{\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: inherit;\n }`\n ],\n standalone: true,\n imports: [CommonModule, KlesTransformPipe, MatTooltip]\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\";\nimport { MatIcon } from \"@angular/material/icon\";\nimport { KlesTransformPipe } from \"../pipe/transform.pipe\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatChip, MatChipListbox, MatChipOption } from \"@angular/material/chips\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\n@Component({\n selector: \"kles-form-chip\",\n template: `\n <div [formGroup]=\"group\"> \n <mat-chip-listbox>\n <mat-chip-option [color]=\"field.color\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" selected [ngClass]=\"field.ngClass\" [ngStyle]=\"field.ngStyle\">\n @if (field.icon) {\n <mat-icon>{{field.icon}}</mat-icon>\n }\n {{group.controls[field.name].value | klesTransform:field.pipeTransform}}\n </mat-chip-option>\n </mat-chip-listbox>\n </div>\n`,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatIcon, KlesTransformPipe, MatChipOption, MatChipListbox, MatTooltip, ReactiveFormsModule]\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\";\nimport { concat, of } from \"rxjs\";\nimport { catchError, map, take } from \"rxjs/operators\";\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] }, this.ref)\n || klesFieldControlFactory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] }, this.ref);\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] }, this.ref);\n }\n\n subGroup.addControl(subfield.name, control);\n });\n }\n\n if (this.field.disabled) {\n subGroup.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 this.field.collections.forEach((col) => col.pending = response.pending);\n if (response.pending) {\n subGroup.disable({ emitEvent: false });\n } else {\n if (!this.field.disabled) {\n subGroup.enable({ emitEvent: false });\n }\n subGroup.patchValue(response.value);\n this.field.value = response.value;\n }\n });\n }\n\n return subGroup;\n }\n}\n","import { Component, HostBinding, OnDestroy, OnInit, ViewContainerRef, ViewEncapsulation } 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';\nimport { CommonModule } from '@angular/common';\nimport { KlesDynamicFieldDirective } from '../directive/dynamic-field.directive';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatIcon } from '@angular/material/icon';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\n\n@FieldMapper({ type: EnumType.group, factory: (field) => (new KlesFormGroup(field).create()) })\n@Component({\n host: { '[formGroup]': 'group', '[formGroupName]': 'field.name' },\n selector: 'kles-group',\n template: `\n @if(field.label){\n <h4><span [matTooltip]=\"field.tooltip || ''\" >{{field.label}}</span></h4>\n }\n \n @for (subfield of field.collections; track subfield.name) {\n @if (subfield.visible !== false) {\n <ng-container klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"field.collections\">\n </ng-container>\n }\n }\n`,\n styles: [\n ' mat-form-field {width: calc(100%)}',\n ':host.group-container {display:flex; flex-direction: inherit; width: inherit; justify-content:inherit; }',\n ':host.group-container-column { display: flex;flex-direction: column; justify-content:inherit; }',\n ':host.group-container-column > * { width: 100%; }',\n ':host.group-container-row { display: inline-flex; flex-wrap:wrap; gap:10px; align-items: baseline; justify-content:inherit; }',\n ':host.group-container-row > * { width: 100%; }',\n ':host.group-container-grid { display: grid; }',\n ':host.group-container-inline-grid { display: inline-grid; }',\n ],\n standalone: true,\n imports: [CommonModule, KlesDynamicFieldDirective, MatTooltip]\n})\nexport class KlesFormGroupComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n orientationClass: 'group-container'\n | 'group-container-column'\n | 'group-container-row'\n | 'group-container-grid'\n | 'group-container-inline-grid' = 'group-container';\n\n @HostBinding('class') get className() {\n return this.orientationClass;\n }\n\n subGroup: UntypedFormGroup;\n\n ngOnInit() {\n this.subGroup = this.group.controls[this.field.name] as UntypedFormGroup;\n super.ngOnInit();\n this.setOrientationClass();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n private setOrientationClass() {\n if (this.field.direction) {\n switch (this.field.direction) {\n case 'column':\n this.orientationClass = 'group-container-column';\n break;\n case 'row':\n this.orientationClass = 'group-container-row';\n break;\n case 'grid':\n this.orientationClass = 'group-container-grid';\n break;\n case 'inline-grid':\n this.orientationClass = 'group-container-inline-grid';\n break;\n }\n }\n\n }\n}\n","import { OnInit, Component, OnDestroy, ViewContainerRef } from '@angular/core';\nimport { KlesFormInputComponent } from './input.component';\nimport { CommonModule } from '@angular/common';\nimport { MatAutocompleteModule, MatOption } from '@angular/material/autocomplete';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatIcon } from '@angular/material/icon';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { MatFormField, MatInput, MatLabel } from '@angular/material/input';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\n\n@Component({\n selector: 'kles-form-input-clearable',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\" [appearance]=\"field.appearance\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n } @if (field.autocomplete) {\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n [matAutocomplete]=\"auto\"\n />\n\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn.bind(this)\" [panelWidth]=\"this.field.panelWidth\">\n @if(filteredOption$ | async; as filteredOption){ @if(filteredOption.loading){\n <mat-option class=\"hide-checkbox\" disabled>\n <div class=\"loadingSelect\">\n {{ intl.loading }}...\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\n </div>\n </mat-option>\n }@else{ @if (!field.autocompleteComponent) { @for (option of filteredOption.options; track option) {\n <mat-option [value]=\"option\">\n {{ field.property ? option[field.property] : option }}\n </mat-option>\n } } @else { @for (option of filteredOption.options; track option) {\n <mat-option [value]=\"option\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"option\" [field]=\"field\"> </ng-container>\n </mat-option>\n } } } }\n </mat-autocomplete>\n } @else {\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n />\n } @if (!group.get(field.name).disabled) {\n <button matSuffix mat-icon-button aria-label=\"Clear\" type=\"button\" (click)=\"group.controls[field.name].reset()\">\n <mat-icon>close</mat-icon>\n </button>\n } @if (isPending()) {\n <mat-spinner matSuffix mode=\"indeterminate\" diameter=\"17\"></mat-spinner>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n styleUrls: ['../styles/loading-select.style.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatAutocompleteModule, MatErrorMessageDirective, MatProgressSpinner, MatIcon, MatTooltip, KlesComponentDirective, MatOption, MatInput, MatLabel, MatFormField],\n})\nexport class KlesFormInputClearableComponent extends KlesFormInputComponent implements OnInit, OnDestroy {\n\n constructor(protected viewRef: ViewContainerRef, public intl: KlesDynamicFormIntl) {\n super(viewRef, intl);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from \"@angular/common\";\nimport { MatIcon } from \"@angular/material/icon\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\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 standalone: true,\n imports: [CommonModule, MatIcon, MatTooltip]\n})\nexport class KlesFormIconComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { ChangeDetectorRef, Component, Inject, OnDestroy, OnInit, QueryList, signal, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { BehaviorSubject, concat, Observable, of, ReplaySubject, Subject } from 'rxjs';\nimport { debounceTime, map, startWith, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatFormField, MatHint, MatLabel } from '@angular/material/form-field';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { MatSelect, MatSelectTrigger } from '@angular/material/select';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\n\n@Component({\n selector: 'kles-form-select-search',\n // encapsulation: ViewEncapsulation.None,\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\" class=\"field-bottom\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n\n <mat-select\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n (openedChange)=\"openChange($event)\"\n [compareWith]=\"compareFn\"\n [panelWidth]=\"field.panelWidth || 'auto'\"\n [placeholder]=\"field.placeholder\"\n [formControlName]=\"field.name\"\n [multiple]=\"field.multiple\"\n (selectionChange)=\"selectionChange($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n >\n @if (field.triggerComponent) {\n <mat-select-trigger>\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n } @if (field.virtualScroll) {\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" 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 @if (!isLoading()) { @if (field.multiple) {\n <mat-checkbox class=\"selectAll mat-mdc-option mdc-list-item\" [formControl]=\"selectAllControl\" (change)=\"toggleAllSelection($event)\">\n {{ intl.selectAll }}\n </mat-checkbox>\n } @if (!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 @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } } @else {\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 @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n }\n </cdk-virtual-scroll-viewport>\n } @else {\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" placeholderLabel=\"\" noEntriesFoundLabel=\"\"></ngx-mat-select-search>\n </mat-option>\n\n @if (!isLoading()) { @if (field.multiple) {\n <mat-checkbox class=\"selectAll mat-mdc-option mdc-list-item\" [formControl]=\"selectAllControl\" (change)=\"toggleAllSelection($event)\">\n {{ intl.selectAll }}\n </mat-checkbox>\n } @if (!field.autocompleteComponent) { @for (item of optionsFiltered$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">{{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}</mat-option>\n } } @else { @for (item of optionsFiltered$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n }\n\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n </ng-template>\n }\n </mat-select>\n\n @if (field.hint) {\n <mat-hint>{{ field.hint }}</mat-hint>\n } @if (field.subComponents || field.clearable || isPending()) {\n <div matSuffix class=\"suffix\">\n @if(isPending()){\n <mat-spinner mode=\"indeterminate\" diameter=\"21\"></mat-spinner>\n } @if(field.subComponents || field.clearable){\n <ng-content></ng-content>\n }\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: [\n 'mat-form-field {width: calc(100%)}',\n '::ng-deep .selectAll {padding: 0 16px 0 5px !important; display: flex !important;}',\n '::ng-deep .selectAll .mdc-form-field {width: 100%;}',\n '::ng-deep .selectAll .mdc-form-field .mdc-label {width: 100%; min-height: 48px; align-items: center; display: flex;}',\n '::ng-deep .selectAll .mdc-form-field .mdc-checkbox__ripple {display: none !important;}',\n `\n ::ng-deep .hide-checkbox .mat-pseudo-checkbox {\n display: none !important;\n }\n `,\n ],\n styleUrls: ['../styles/loading-select.style.scss', '../styles/mat-suffix.style.scss', '../styles/mat-field-bottom.style.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n KlesTransformPipe,\n MatErrorMessageDirective,\n MatProgressSpinner,\n MatHint,\n MatOption,\n KlesComponentDirective,\n ScrollingModule,\n MatSelectTrigger,\n MatSelect,\n MatTooltip,\n MatLabel,\n MatFormField,\n NgxMatSelectSearchModule,\n MatCheckbox,\n ],\n})\nexport class KlesFormSelectSearchComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n searchControl = new UntypedFormControl();\n selectAllControl = new UntypedFormControl(false);\n\n isLoading = signal(false);\n\n options$: Observable<any[]>;\n optionsFiltered$ = new ReplaySubject<any[]>(1);\n\n openChange$ = new BehaviorSubject<boolean>(false);\n openClosed$ = new Subject<void>();\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,public intl: KlesDynamicFormIntl) {\n super(viewRef);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.field.lazy) {\n this.isLoading.set(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.set(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 } else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n } else {\n this.options$ = of(this.field.options);\n }\n }\n\n this.options$.pipe(takeUntil(this._onDestroy)).subscribe((options) => {\n this.optionsFiltered$.next(options);\n });\n\n this.searchControl.valueChanges\n .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(\n take(1),\n map((options) => ({ loading: false, options })),\n ),\n );\n }),\n )\n .subscribe(({ loading, options }) => {\n this.isLoading.set(loading);\n this.optionsFiltered$.next(options);\n this.updateSelectAllControl(this.group.controls[this.field.name].value);\n this.ref.markForCheck();\n });\n\n if (this.field.multiple) {\n // this.updateSelectAllControl(this.group.controls[this.field.name].value);\n\n (this.group.controls[this.field.name] as FormControl).registerOnChange((values, emitViewToModelChange) => {\n if (emitViewToModelChange) {\n this.updateSelectAllControl(values);\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n // this._onDestroy.next();\n this.openClosed$.next();\n this.openClosed$.complete();\n super.ngOnDestroy();\n }\n\n toggleAllSelection(state) {\n if (state.checked) {\n this.optionsFiltered$\n .pipe(\n take(1),\n map((options) => options.filter((option) => !option?.disabled)),\n )\n .subscribe((options) => {\n if (options.length > 0) {\n this.group.controls[this.field.name].patchValue(options);\n }\n });\n } else {\n this.group.controls[this.field.name].patchValue([]);\n }\n\n this.ref.markForCheck();\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.isLoading.set(false);\n (this.options$ as BehaviorSubject<any[]>).next(options);\n this.optionsFiltered$.next(options);\n this.updateSelectAllControl(this.group.controls[this.field.name].value);\n this.ref.markForCheck();\n });\n }\n\n protected onOpenChange(isOpen: boolean): Observable<any[]> {\n if (isOpen) {\n if (this.field.options instanceof Observable) {\n this.isLoading.set(true);\n return this.field.options.pipe(takeUntil(this.openClosed$));\n } else if (this.field.options instanceof Function) {\n this.isLoading.set(true);\n return this.field.options().pipe(takeUntil(this.openClosed$));\n } else {\n return of(this.field.options);\n }\n } else {\n return of(\n 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\n : [this.group.controls[this.field.name].value]\n : [],\n );\n }\n }\n\n protected onSearchChange(value: string): Observable<any[]> {\n if (value) {\n const search = value.toLowerCase();\n return this.options$.pipe(\n map((options) => {\n return options.filter((option) => {\n if (this.field.searchKeys && this.field.searchKeys.length) {\n return (\n 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 ? 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 );\n } else {\n return this.options$;\n }\n }\n\n openChange($event: boolean) {\n if (this.field.lazy) {\n if (!$event) {\n this.openClosed$.next();\n }\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 selectionChange(selection) {\n this.updateSelectAllControl(selection.value);\n }\n\n updateSelectAllControl(values): void {\n if (this.field.multiple) {\n if (values) {\n const selected = this.field.property && values ? values?.map((s) => s[this.field.property]) : values;\n this.optionsFiltered$\n .pipe(\n take(1),\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\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, { emitEvent: false });\n });\n }\n }\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({\n type: EnumType.lineBreak,\n factory: () => null\n})\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 standalone: true\n})\nexport class KlesFormLineBreakComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'arrayFormat',\n standalone: true,\n})\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';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ReactiveFormsModule } from '@angular/forms';\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 standalone: true,\n imports: [CommonModule, MatTooltip, ReactiveFormsModule],\n})\nexport class KlesFormLinkComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\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';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\nimport { MatTooltip } from '@angular/material/tooltip';\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 }}</mat-slide-toggle>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatSlideToggle, MatTooltip, ReactiveFormsModule],\n})\nexport class KlesFormSlideToggleComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\n super.ngOnInit();\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { SelectionChange, getMultipleValuesInSingleSelectionError } from \"@angular/cdk/collections\";\nimport { Subject } from \"rxjs\";\n\n\n\n/**\n * Copy and past from https://github.com/angular/components/blob/17.0.x/src/cdk/collections/selection-model.ts\n * (They put everything in private, thanks to angular team)\n */\nexport class KlesSelectionModel<T> {\n /** Currently-selected values. */\n private _selection = new Set<T>();\n\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n private _deselectedToEmit: T[] = [];\n\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n private _selectedToEmit: T[] = [];\n\n /** Cache for the array value of the selected items. */\n private _selected: T[] | null;\n\n /** Selected values. */\n get selected(): T[] {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n\n return this._selected;\n }\n\n /** Event emitted when the value has changed. */\n readonly changed = new Subject<any>();\n\n constructor(\n private _multiple = false,\n initiallySelectedValues?: T[],\n private _emitChanges = true,\n public compareWith?: (o1: T, o2: T) => boolean,\n ) {\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n } else {\n this._markSelected(initiallySelectedValues[0]);\n }\n\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n\n /**\n * Selects a value or an array of values.\n * @param values The values to select\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n select(values: T[], option?: { emitEvent: boolean }): boolean | void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n const changed = this._hasQueuedChanges();\n if (!option || option?.emitEvent) {\n this._emitChangeEvent();\n } else {\n this._selected = null;\n }\n return changed;\n }\n\n /**\n * Deselects a value or an array of values.\n * @param values The values to deselect\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n deselect(values: T[], option?: { emitEvent: boolean }): boolean | void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n if (!option || option?.emitEvent) {\n this._emitChangeEvent();\n } else {\n this._selected = null;\n }\n return changed;\n }\n\n /**\n * Sets the selected values\n * @param values The new selected values\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n setSelection(values: T[], option?: { emitEvent: boolean }): boolean | void {\n this._verifyValueAssignment(values);\n const oldValues = this.selected;\n const newSelectedSet = new Set(values.map((value) => this._getConcreteValue(value)));\n values.forEach(value => this._markSelected(value));\n\n oldValues\n .filter(value => !newSelectedSet.has(value))\n .forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n if (!option || option?.emitEvent) {\n this._emitChangeEvent();\n } else {\n this._selected = null;\n }\n return changed;\n }\n\n /**\n * Toggles a value between selected and deselected.\n * @param value The value to toggle\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n toggle(value: T): boolean | void {\n if (Array.isArray(value)) {\n return this.isSelected(value) ? this.deselect(value) : this.select(value);\n } else {\n return this.isSelected(value) ? this.deselect([value]) : this.select([value]);\n }\n\n }\n\n /**\n * Clears all of the selected values.\n * @param flushEvent Whether to flush the changes in an event.\n * If false, the changes to the selection will be flushed along with the next event.\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n clear(flushEvent = true): boolean | void {\n this._unmarkAll();\n const changed = this._hasQueuedChanges();\n if (flushEvent) {\n this._emitChangeEvent();\n }\n return changed;\n }\n\n /**\n * Determines whether a value is selected.\n */\n isSelected(value: T): boolean {\n return this._selection.has(this._getConcreteValue(value));\n }\n\n /**\n * Determines whether the model does not have a value.\n */\n isEmpty(): boolean {\n return this._selection.size === 0;\n }\n\n /**\n * Determines whether the model has a value.\n */\n hasValue(): boolean {\n return !this.isEmpty();\n }\n\n /**\n * Sorts the selected values based on a predicate function.\n */\n sort(predicate?: (a: T, b: T) => number): void {\n if (this._multiple && this.selected) {\n this._selected!.sort(predicate);\n }\n }\n\n /**\n * Gets whether multiple values can be selected.\n */\n isMultipleSelection() {\n return this._multiple;\n }\n\n /** Emits a change event and clears the records of selected and deselected values. */\n private _emitChangeEvent() {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n this.changed.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit,\n });\n\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n }\n\n /** Selects a value. */\n private _markSelected(value: T) {\n value = this._getConcreteValue(value);\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n\n if (!this.isSelected(value)) {\n this._selection.add(value);\n }\n\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n\n /** Deselects a value. */\n private _unmarkSelected(value: T) {\n value = this._getConcreteValue(value);\n if (this.isSelected(value)) {\n this._selection.delete(value);\n\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n\n /** Clears out the selected values. */\n private _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n\n /**\n * Verifies the value assignment and throws an error if the specified value array is\n * including multiple values while the selection model is not supporting multiple values.\n */\n private _verifyValueAssignment(values: T[]) {\n if (values.length > 1 && !this._multiple) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n\n /** Whether there are queued up change to be emitted. */\n private _hasQueuedChanges() {\n return !!(this._deselectedToEmit.length || this._selectedToEmit.length);\n }\n\n /** Returns a value that is comparable to inputValue by applying compareWith function, returns the same inputValue otherwise. */\n private _getConcreteValue(inputValue: T): T {\n if (!this.compareWith) {\n return inputValue;\n } else {\n for (let selectedValue of this._selection) {\n if (this.compareWith!(inputValue, selectedValue)) {\n return selectedValue;\n }\n }\n return inputValue;\n }\n }\n}","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MatListModule, MatSelectionListChange } from '@angular/material/list';\nimport { Observable, of } from 'rxjs';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { takeUntil } from 'rxjs/operators';\nimport { KlesSelectionModel } from '../selection/selection-model';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { ReactiveFormsModule } from '@angular/forms';\n@Component({\n selector: 'kles-form-selection-list',\n template: `\n <div class=\"margin-top\" [formGroup]=\"group\">\n <mat-selection-list [attr.id]=\"field.id\" [multiple]=\"field.multiple\" [ngClass]=\"field.ngClass\" (selectionChange)=\"onSelectionChange($event)\">\n @if(options$ | async; as options){ @if(field.virtualScroll){\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 20\" style=\"height:100%\">\n @if (!field.autocompleteComponent) {\n <mat-list-option *cdkVirtualFor=\"let item of options; templateCacheSize: 0\" [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-list-option>\n } @else{\n <mat-list-option *cdkVirtualFor=\"let item of options; templateCacheSize: 0\" [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n }\n </cdk-virtual-scroll-viewport>\n } @else{ @if (!field.autocompleteComponent) { @for (item of options; track item) {\n <mat-list-option [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-list-option>\n } } @else { @for (item of options; track item) {\n <mat-list-option [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n } } } }@else{\n <mat-spinner></mat-spinner>\n }\n </mat-selection-list>\n </div>\n `,\n styles: [\n `\n mat-selection-list {\n width: 100%;\n height: 250px;\n overflow: auto;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, KlesTransformPipe, MatProgressSpinnerModule, KlesComponentDirective, MatListModule, ScrollingModule, ReactiveFormsModule],\n})\nexport class KlesFormSelectionListComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n selection: KlesSelectionModel<any>;\n options$: Observable<any[]>;\n\n ngOnInit() {\n super.ngOnInit();\n\n this.selection = new KlesSelectionModel<any>(this.field.multiple || false, [], true, (o1: any, o2: any) => {\n if (this.field.property) {\n return o1?.[this.field.property] === o2?.[this.field.property];\n } else {\n return o1 === o2;\n }\n });\n\n if (this.field.value) {\n this.selection.select(Array.isArray(this.field.value) ? this.field.value : [this.field.value]);\n }\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n } else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n } else {\n this.options$ = of(this.field.options);\n }\n\n this.group.controls[this.field.name].valueChanges.pipe(takeUntil(this._onDestroy)).subscribe((value) => {\n this.selection.setSelection(Array.isArray(value) ? value : [value], { emitEvent: false });\n });\n\n this.selection.changed.pipe(takeUntil(this._onDestroy)).subscribe((change) => {\n this.group.controls[this.field.name].patchValue(change.source.selected);\n this.group.controls[this.field.name].markAllAsTouched();\n this.group.controls[this.field.name].markAsDirty();\n });\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n onSelectionChange(selection: MatSelectionListChange) {\n selection.options.forEach((option) => {\n option.selected ? this.selection.select([option.value]) : this.selection.deselect([option.value]);\n });\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';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatBadgeModule } from '@angular/material/badge';\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 standalone: true,\n \n imports: [CommonModule, MatTooltipModule, MatBadgeModule],\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';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\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\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\">\n @for (item of options$ | async; track item) {\n <mat-button-toggle [value]=\"item\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n`,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, KlesTransformPipe, MatButtonToggleModule],\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 { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ReactiveFormsModule, 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';\nimport { CommonModule } from '@angular/common';\nimport { KlesDynamicFieldDirective } from '../directive/dynamic-field.directive';\n\n@FieldMapper({ type: EnumType.array, factory: (field) => (new KlesFormArray(field).create()) })\n@Component({\n selector: 'kles-array',\n template: `\n <div [formGroup]=\"group\" class=\"container\" [ngClass]=\"{'container-column': field.direction ==='column'}\">\n <ng-container [formArrayName]=\"field.name\">\n @for (subGroup of formArray.controls; track subGroup.value._id) {\n <div class=\"group-container\" [ngClass]=\"field.direction === 'column' ? 'column': 'row'\">\n @for (subfield of field.collections; track subfield.name) {\n @if (subfield.visible !== false) {\n <ng-container klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"field.collections\">\n </ng-container>\n }\n }\n </div>\n }\n </ng-container>\n </div>\n`,\n styles: ['mat-form-field {width: calc(100%)}',\n ':host { display:flex; flex-direction: inherit}',\n '.container { display: flex; flex-direction: inherit}',\n '.container-column {gap: 10px}',\n '.group-container {display:flex; flex-direction: inherit}',\n '.row { gap: 10px; flex-direction: row; align-items: baseline }',\n '.column { flex-direction: column; gap: 0px}'\n ],\n standalone: true,\n imports: [CommonModule, KlesDynamicFieldDirective, ReactiveFormsModule],\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, { nonNullable: this.field.nonNullable && this.field.value?.start || false }),\n end: new FormControl(this.field.value?.end, { nonNullable: this.field.nonNullable && this.field.value?.end || false }),\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';\nimport { CommonModule } from '@angular/common';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ReactiveFormsModule } from '@angular/forms';\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 [subscriptSizing]=\"field.subscriptSizing\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\">\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\" [min]=\"field.min\" [max]=\"field.max\">\n <input matStartDate formControlName=\"start\" [placeholder]=\"(field.placeholder?.start ? field.placeholder?.start : '')\" />\n <input matEndDate formControlName=\"end\" [placeholder]=\"(field.placeholder?.end ? field.placeholder?.end : '')\" />\n </mat-date-range-input>\n\n <div matSuffix class=\"suffix\">\n <mat-datepicker-toggle [for]=\"picker\"></mat-datepicker-toggle>\n <ng-content></ng-content>\n </div>\n\n <mat-date-range-picker #picker></mat-date-range-picker>\n @if (field.hint) {\n <mat-hint>{{ field.hint }}</mat-hint>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n styleUrls: ['../styles/mat-suffix.style.scss'],\n standalone: true,\n imports: [CommonModule, MatErrorMessageDirective, MatFormFieldModule, MatInputModule, MatDatepickerModule, MatTooltipModule, ReactiveFormsModule],\n})\nexport class KlesFormRangeComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n // range = new FormGroup({\n // start: new FormControl<Date | null>(null),\n // end: new FormControl<Date | null>(null),\n // });\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { KlesFormSelectSearchComponent } from './select.search.component';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\n\n@Component({\n selector: 'kles-form-select-lazy-search',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\" class=\"field-bottom\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n\n <mat-select\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n (openedChange)=\"openChange($event)\"\n [compareWith]=\"compareFn\"\n [panelWidth]=\"field.panelWidth || 'auto'\"\n [placeholder]=\"field.placeholder\"\n [formControlName]=\"field.name\"\n [multiple]=\"field.multiple\"\n >\n @if (field.triggerComponent) {\n <mat-select-trigger>\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n } @if (field.virtualScroll) {\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" [clearSearchInput]=\"false\" 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 @if (!isLoading()) { @if (field.multiple) {\n <mat-checkbox class=\"selectAll mat-mdc-option mdc-list-item\" [formControl]=\"selectAllControl\" (change)=\"toggleAllSelection($event)\">\n {{ intl.selectAll }}\n </mat-checkbox>\n } @if (!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 @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } } @else {\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 @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n }\n </cdk-virtual-scroll-viewport>\n } @else {\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" [clearSearchInput]=\"false\" placeholderLabel=\"\" noEntriesFoundLabel=\"\"></ngx-mat-select-search>\n </mat-option>\n\n @if (!isLoading()) { @if (field.multiple) {\n <mat-checkbox class=\"selectAll mat-mdc-option mdc-list-item\" [formControl]=\"selectAllControl\" (change)=\"toggleAllSelection($event)\">\n {{ intl.selectAll }}\n </mat-checkbox>\n } @if (!field.autocompleteComponent) { @for (item of optionsFiltered$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">{{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}</mat-option>\n } } @else { @for (item of optionsFiltered$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } }\n </mat-select>\n\n @if (field.subComponents || field.clearable) {\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: [\n 'mat-form-field {width: calc(100%)}',\n '.selectAll {padding: 0 16px 0 5px; display: flex !important;}',\n '.selectAll .mdc-form-field {width: 100%;}',\n '.selectAll .mdc-form-field .mdc-label {width: 100%; min-height: 48px; align-items: center; display: flex;}',\n '.selectAll .mdc-form-field .mdc-checkbox__ripple {display: none !important;}',\n `\n ::ng-deep .hide-checkbox .mat-pseudo-checkbox {\n display: none !important;\n }\n `,\n ],\n styleUrls: ['../styles/loading-select.style.scss', '../styles/mat-field-bottom.style.scss'],\n standalone: true,\n imports: [CommonModule, KlesTransformPipe, MatErrorMessageDirective, MatProgressSpinnerModule, MatSelectModule, KlesComponentDirective, ReactiveFormsModule, NgxMatSelectSearchModule, ScrollingModule, MatTooltipModule],\n})\nexport class KlesFormSelectLazySearchComponent extends KlesFormSelectSearchComponent implements OnInit, OnDestroy {\n constructor(protected viewRef: ViewContainerRef, protected ref: ChangeDetectorRef, public intl: KlesDynamicFormIntl) {\n super(viewRef, ref, intl);\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 } 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.set(false);\n this.ref.markForCheck();\n });\n }\n}\n","import { Component, Input, OnInit, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KlesButtonBase } from './button-control-base';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n\n@Component({\n selector: 'kles-fab',\n template: `\n <button mat-fab [extended]=\"!!label\" [type]=\"type\" [ngClass]=\"classButton\" [color]=\"(color)?color:'primary'\" [disabled]=\"disabled\"\n (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n {{label}}\n\n @if (icon) {\n <mat-icon>{{icon}}</mat-icon>\n }\n\n @if (iconSvg) {\n <mat-icon svgIcon=\"{{iconSvg}}\"></mat-icon>\n }\n </button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesFabComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [CommonModule, MatIconModule, MatTooltipModule, MatButtonModule]\n})\nexport class KlesFabComponent extends KlesButtonBase implements OnInit {\n\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { KlesFabComponent } from '../forms/fab-control.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'kles-form-fab',\n template: `\n <div [formGroup]=\"group\">\n <kles-fab\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-fab>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatIconModule, MatTooltipModule, MatButtonModule, KlesFabComponent, ReactiveFormsModule]\n})\nexport class KlesFormFabComponent 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 { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KlesButtonBase } from './button-control-base';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n\n@Component({\n selector: 'kles-mini-fab',\n template: `\n <button mat-mini-fab extended [type]=\"type\" [ngClass]=\"classButton\" [color]=\"(color)?color:'primary'\" [disabled]=\"disabled\"\n (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n {{label}}\n\n @if (icon) {\n <mat-icon>{{icon}}</mat-icon>\n }\n\n @if (iconSvg) {\n <mat-icon svgIcon=\"{{iconSvg}}\"></mat-icon>\n }\n </button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesMiniFabComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [CommonModule, MatIconModule, MatTooltipModule, MatButtonModule]\n})\nexport class KlesMiniFabComponent extends KlesButtonBase implements OnInit {\n\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { KlesMiniFabComponent } from '../forms/mini-fab-control.component';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'kles-form-mini-fab',\n template: `\n <div [formGroup]=\"group\">\n <kles-mini-fab\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-mini-fab>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [KlesMiniFabComponent, CommonModule, ReactiveFormsModule]\n})\nexport class KlesFormMiniFabComponent 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 { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KlesButtonBase } from './button-control-base';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n selector: 'kles-icon-button',\n template: `\n <button mat-icon-button [type]=\"type\" [ngClass]=\"classButton\" [color]=\"color ? color : 'primary'\" [disabled]=\"disabled\" (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n } @if (iconSvg) {\n <mat-icon svgIcon=\"{{ iconSvg }}\"></mat-icon>\n }\n </button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesIconButtonComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, MatTooltipModule],\n})\nexport class KlesIconButtonComponent extends KlesButtonBase implements OnInit {}\n","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { KlesIconButtonComponent } from '../forms/icon-button-control.component';\n\n@Component({\n selector: 'kles-form-icon-button',\n template: `\n <div [formGroup]=\"group\">\n <kles-icon-button\n [attr.id]=\"field.id\" [classButton]=\"field.ngClass\" \n [name]=\"field.name\" [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-icon-button>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, KlesIconButtonComponent],\n})\nexport class KlesFormIconButtonComponent 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 { MatListModule, MatSelectionListChange } from '@angular/material/list';\nimport { Observable, of } from 'rxjs';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { debounceTime, distinctUntilChanged, map, shareReplay, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { KlesSelectionModel } from '../selection/selection-model';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { MatOption } from '@angular/material/core';\n@Component({\n selector: 'kles-form-selection-list-search',\n template: `\n <div class=\"selection-list\" [formGroup]=\"group\">\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" [appearance]=\"field.appearance\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n <input matInput [placeholder]=\"field.placeholder\" [formControl]=\"searchControl\" />\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"searchControl.reset(); $event.stopPropagation()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-selection-list [attr.id]=\"field.id\" [multiple]=\"field.multiple\" [ngClass]=\"field.ngClass\" (selectionChange)=\"onSelectionChange($event)\">\n @if(optionFiltered$ | async; as options){ @if(field.virtualScroll){\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 20\" style=\"height:100%\">\n @if (!field.autocompleteComponent) {\n <mat-list-option *cdkVirtualFor=\"let item of options; templateCacheSize: 0\" [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-list-option>\n } @else{\n <mat-list-option *cdkVirtualFor=\"let item of options; templateCacheSize: 0\" [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n }\n </cdk-virtual-scroll-viewport>\n } @else{ @if (!field.autocompleteComponent) { @for (item of options; track item) {\n <mat-list-option [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-list-option>\n } } @else { @for (item of options; track item) {\n <mat-list-option [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n } } } }@else{\n <mat-spinner></mat-spinner>\n }\n </mat-selection-list>\n </div>\n `,\n styles: [\n `\n .selection-list {\n display: flex;\n flex-direction: column;\n gap: 5px;\n }\n `,\n `\n mat-selection-list {\n width: 100%;\n height: 250px;\n overflow: auto;\n flex-grow: 1;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatIconModule, MatButtonModule, MatProgressSpinnerModule, ScrollingModule, KlesTransformPipe, KlesComponentDirective, MatListModule],\n})\nexport class KlesFormSelectionListSearchComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n selection: KlesSelectionModel<any>;\n options$: Observable<any[]>;\n searchControl = new FormControl();\n\n optionFiltered$: Observable<any[]>;\n\n ngOnInit() {\n if (!this.field.subscriptSizing) {\n this.field.subscriptSizing = 'dynamic';\n }\n super.ngOnInit();\n\n this.selection = new KlesSelectionModel<any>(this.field.multiple || false, [], true, (o1: any, o2: any) => {\n if (this.field.property) {\n return o1?.[this.field.property] === o2?.[this.field.property];\n } else {\n return o1 === o2;\n }\n });\n\n if (this.field.value) {\n this.selection.select(Array.isArray(this.field.value) ? this.field.value : [this.field.value]);\n }\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options.pipe(shareReplay(1));\n }\n\n this.group.controls[this.field.name].valueChanges.pipe(takeUntil(this._onDestroy)).subscribe((value) => {\n this.selection.setSelection(Array.isArray(value) ? value : [value], { emitEvent: false });\n });\n\n this.selection.changed.pipe(takeUntil(this._onDestroy)).subscribe((change) => {\n this.group.controls[this.field.name].patchValue(change.source.selected);\n this.group.controls[this.field.name].markAllAsTouched();\n this.group.controls[this.field.name].markAsDirty();\n });\n\n this.optionFiltered$ = this.searchControl.valueChanges.pipe(\n takeUntil(this._onDestroy),\n startWith(null as string),\n debounceTime(this.field.debounceTime || 0),\n distinctUntilChanged(),\n map((value) => value?.toLowerCase()),\n switchMap((value) => {\n if (this.field.options instanceof Function) {\n return this.field.options(value);\n } else {\n return (this.field.options instanceof Observable ? this.options$ : of(this.field.options)).pipe(\n map((options) => {\n if (!value) {\n return options;\n }\n return options.filter((option) => {\n return (\n (!this.field.property && option?.toString().toLowerCase().includes(value)) ||\n (this.field.property && option?.[this.field.property]?.toString().toLowerCase().includes(value)) ||\n (this.field.searchKeys && this.field.searchKeys.some((key) => option?.[key].toString().toLowerCase().includes(value)))\n );\n });\n }),\n );\n }\n }),\n );\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n onSelectionChange(selection: MatSelectionListChange) {\n selection.options.forEach((option) => {\n option.selected ? this.selection.select([option.value]) : this.selection.deselect([option.value]);\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input, AfterViewInit, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n selector: 'kles-checkbox-indeterminate',\n template: `\n <mat-checkbox\n #checkbox\n [indeterminate]=\"isIndeterminate\"\n (change)=\"onCheckboxChange($event)\"\n (color)=\"color\"\n (blur)=\"onTouched()\">\n {{label}}\n </mat-checkbox>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesIndeterminateCheckboxComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [CommonModule, MatCheckboxModule, ReactiveFormsModule, FormsModule],\n})\nexport class KlesIndeterminateCheckboxComponent implements ControlValueAccessor, AfterViewInit {\n @Input() label: string;\n @Input() color: string;\n @ViewChild('checkbox') checkbox: MatCheckbox;\n\n isIndeterminate = false;\n private innerValue: boolean;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n ngAfterViewInit(): void {\n // Initial update to ensure state is correct after view init\n this.updateCheckbox(this.innerValue);\n }\n\n writeValue(value: any): void {\n this.innerValue = value;\n this.updateCheckbox(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 if (this.checkbox) {\n this.checkbox.disabled = isDisabled;\n }\n }\n\n onCheckboxChange(event: any): void {\n const checked = event.checked;\n this.onChange(checked);\n this.isIndeterminate = false;\n }\n\n private updateCheckbox(value: any): void {\n if (this.checkbox) {\n if (value === -1) {\n this.isIndeterminate = true;\n this.checkbox.checked = false;\n } else {\n this.isIndeterminate = false;\n this.checkbox.checked = value;\n }\n }\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';\nimport { KlesIndeterminateCheckboxComponent } from '../forms/indeterminate-checkbox';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@FieldMapper({ type: EnumType.checkbox })\n@Component({\n selector: 'kles-form-checkbox-indeterminate',\n template: `\n <div [formGroup]=\"group\">\n <kles-checkbox-indeterminate matTooltip=\"{{ field.tooltip }}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [color]=\"field.color\" [formControlName]=\"field.name\">{{\n field.label\n }}</kles-checkbox-indeterminate>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, KlesIndeterminateCheckboxComponent, MatTooltipModule],\n})\nexport class KlesFormCheckboxIndeterminateComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';\nimport { Clipboard, ClipboardModule } from '@angular/cdk/clipboard';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { IKlesField } from '../interfaces/field.interface';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'kles-form-copy',\n template: `\n <button #tooltip=\"matTooltip\" mat-icon-button color=\"primary\" type=\"button\" (click)=\"copy($event)\" [matTooltipDisabled]=\"true\" [matTooltip]=\"tooltipText\" matTooltipPosition=\"above\">\n <mat-icon>content_copy</mat-icon>\n </button>\n `,\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, MatTooltipModule, ClipboardModule],\n})\nexport class KlesFormCopyComponent implements OnInit, IKlesField {\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() siblingFields: IKlesFieldConfig[];\n\n tooltipText: string;\n\n constructor(private clipBoard: Clipboard) {}\n\n ngOnInit(): void {\n this.tooltipText = this.field.copyTooltip || '';\n }\n\n copy(event): void {\n event.stopPropagation();\n const copyText = (this.field.property ? this.group.controls[this.field.name].value?.[this.field.property] : this.group.controls[this.field.name].value) || '';\n this.clipBoard.copy(copyText);\n\n this.tooltip.disabled = false;\n this.tooltip.show();\n setTimeout(() => {\n this.tooltip.disabled = true;\n }, 200);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kles-file-control',\n template: ` <input [accept]=\"accept\" [multiple]=\"multiple\" (change)=\"onFileSelected($event.target)\" type=\"file\" /> `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesFileControlComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule, FormsModule],\n})\nexport class KlesFileControlComponent implements ControlValueAccessor {\n @Input() disabled = false;\n @Input() accept = '*.*';\n @Input() multiple = false;\n\n value: { name: string; content: ArrayBuffer }[];\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n writeValue(obj: any): void {}\n\n async onFileSelected(input: HTMLInputElement): Promise<void> {\n if (input.files.length > 0) {\n const file: FileList = input.files;\n let files = [];\n\n for (let i = 0; i < file.length; i++) {\n const currentFile: File = file.item(i);\n\n files[i] = { name: currentFile.name, content: await currentFile.arrayBuffer() };\n }\n\n this.value = files;\n this.onChange(this.value);\n } else {\n this.value = null;\n this.onChange(this.value);\n }\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}\n","import { KlesFieldAbstract } from './field.abstract';\nimport { Component } from '@angular/core';\nimport { EnumType } from '../enums/type.enum';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { KlesFileControlComponent } from '../forms/file-control.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@FieldMapper({ type: EnumType.file })\n@Component({\n selector: 'kles-form-file',\n template: `\n <div [formGroup]=\"group\">\n <kles-file-control [attr.id]=\"field.id\" [formControlName]=\"field.name\" [accept]=\"field.accept\" [disabled]=\"field.disabled\" [multiple]=\"field.multiple\"></kles-file-control>\n </div>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n standalone: true,\n imports: [KlesFileControlComponent, FormsModule, ReactiveFormsModule],\n})\nexport class KlesFormFileComponent extends KlesFieldAbstract {}\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 { KlesFormLabelComponent } from './fields/label.component';\nimport { KlesFormInputComponent } from './fields/input.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/subfields/clear.component';\nimport { KlesFormSelectLazySearchComponent } from './fields/select.lazy-search.component';\nimport { KlesFormFabComponent } from './fields/button-fab.component';\nimport { KlesFabComponent } from './forms/fab-control.component';\nimport { KlesMiniFabComponent } from './forms/mini-fab-control.component';\nimport { KlesFormMiniFabComponent } from './fields/button-mini-fab.component';\nimport { KlesIconButtonComponent } from './forms/icon-button-control.component';\nimport { KlesFormIconButtonComponent } from './fields/button-icon.component';\nimport { KlesFormSelectionListSearchComponent } from './fields/selection-list.search.component';\nimport { MatErrorMessageDirective } from './directive/mat-error-message.directive';\nimport { MatErrorFormDirective } from './directive/mat-error-form.directive';\nimport { KlesFormCheckboxIndeterminateComponent } from './fields/checkbox-indeterminate.component';\nimport { KlesIndeterminateCheckboxComponent } from './forms/indeterminate-checkbox';\nimport { KlesFormCopyComponent } from './fields/copy.component';\nimport { KlesFormFileComponent } from './fields/file.component';\nimport { KlesFileControlComponent } from './forms/file-control.component';\nimport { ColorPickerComponent, ColorPickerDirective } from 'ngx-color-picker';\n\nconst components = [\n KlesDynamicFormComponent,\n KlesFormLabelComponent,\n KlesFormInputComponent,\n KlesFormInputClearableComponent,\n KlesFormBadgeComponent,\n KlesFormFileComponent,\n KlesFileControlComponent,\n KlesButtonComponent,\n KlesFormButtonComponent,\n KlesButtonCheckerComponent,\n KlesFormButtonCheckerComponent,\n KlesButtonFileComponent,\n KlesFormButtonFileComponent,\n KlesFormSelectComponent,\n KlesFormDateComponent,\n KlesFormRadioComponent,\n KlesFormCheckboxComponent,\n KlesIndeterminateCheckboxComponent,\n KlesFormCheckboxIndeterminateComponent,\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 KlesFormFabComponent,\n KlesFabComponent,\n KlesMiniFabComponent,\n KlesFormMiniFabComponent,\n KlesIconButtonComponent,\n KlesFormIconButtonComponent,\n KlesFormSelectionListSearchComponent,\n KlesFormCopyComponent,\n];\n\nconst colorPicker = [ColorPickerComponent, ColorPickerDirective];\n\nconst directives = [KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective];\nconst pipes = [KlesTransformPipe, ArrayFormatPipe];\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, FormsModule, MaterialModule, NgxMatSelectSearchModule, components, directives, pipes, colorPicker],\n providers: [\n { provide: ErrorStateMatcher, useClass: KlesFormErrorStateMatcher },\n pipes,\n ],\n exports: [components, pipes, directives],\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\n})\nexport class KlesMaterialDynamicformsModule {\n static declarations = [components, directives, pipes];\n}\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { IKlesFieldConfig } from '../../interfaces/field.config.interface';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\nimport { IKlesField } from '../../interfaces/field.interface';\n\n@Component({\n selector: 'kles-form-password-visibility',\n template: `\n <button [disabled]=\"group?.get(field?.name).disabled\" mat-icon-button aria-label=\"visibility\" type=\"button\" (click)=\"toggleVisibility($event)\">\n <mat-icon>{{ hide ? 'visibility_off' : 'visibility' }}</mat-icon>\n </button>\n `,\n standalone: true,\n imports: [CommonModule, MatIcon, MatIconButton],\n})\nexport class KlesFormPasswordVisibilityComponent implements IKlesField {\n @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() siblingFields: IKlesFieldConfig[];\n\n hide = true;\n\n toggleVisibility(event): void {\n event.stopPropagation();\n this.hide = !this.hide;\n this.field.inputType = this.hide ? 'password' : 'text';\n }\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';\nexport * from './lib/directive/mat-error-message.directive';\nexport * from './lib/directive/mat-error-form.directive';\n\n/*FORMS*/\nexport * from './lib/forms/button-control-base';\nexport * from './lib/forms/button-control.component';\nexport * from './lib/forms/buttonchecker-control.component';\nexport * from './lib/forms/buttonfile-control.component';\nexport * from './lib/forms/file-control.component';\nexport * from './lib/forms/fab-control.component';\nexport * from './lib/forms/mini-fab-control.component';\nexport * from './lib/forms/icon-button-control.component';\nexport * from './lib/forms/indeterminate-checkbox';\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/checkbox.component';\nexport * from './lib/fields/checkbox-indeterminate.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/file.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/subfields/clear.component';\nexport * from './lib/fields/select.lazy-search.component';\nexport * from './lib/fields/button-fab.component';\nexport * from './lib/fields/button-mini-fab.component';\nexport * from './lib/fields/button-icon.component';\nexport * from './lib/fields/selection-list.search.component';\nexport * from './lib/fields/copy.component';\nexport * from './lib/fields/subfields/password-visibility.component';\n\n\n/**ENUMS */\nexport * from './lib/enums/type.enum';\nexport * from './lib/enums/button-attribute.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';\nexport * from './lib/controls/control.abstract';\n\n/**SELECTION */\nexport * from './lib/selection/selection-model';\n\n/**UTILS */\nexport * from './lib/utils/destroyable.guard';\n\n/**INTL */\nexport * from './lib/dynamic-form-intl';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.KlesDynamicFormIntl","i3","i7","i8","i10","i5","uuidv4","i4","MatLabel","MatFormField","MatOption","i6","i9"],"mappings":"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"}
1
+ {"version":3,"file":"3kles-kles-material-dynamicforms.mjs","sources":["../../../projects/kles-material-dynamicforms/src/lib/controls/control.abstract.ts","../../../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/subfields/clear.component.ts","../../../projects/kles-material-dynamicforms/src/lib/utils/destroyable.guard.ts","../../../projects/kles-material-dynamicforms/src/lib/directive/dynamic-field.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/utils/validation.util.ts","../../../projects/kles-material-dynamicforms/src/lib/directive/mat-error-form.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/matcher/form-error.matcher.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/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/directive/mat-error-message.directive.ts","../../../projects/kles-material-dynamicforms/src/lib/dynamic-form-intl.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/input.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/controls/array.control.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-base.ts","../../../projects/kles-material-dynamicforms/src/lib/enums/button-attribute.enum.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/selection/selection-model.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/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/forms/fab-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-fab.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/mini-fab-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-mini-fab.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/icon-button-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/button-icon.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/selection-list.search.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/indeterminate-checkbox.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/checkbox-indeterminate.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/copy.component.ts","../../../projects/kles-material-dynamicforms/src/lib/forms/file-control.component.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/file.component.ts","../../../projects/kles-material-dynamicforms/src/lib/kles-material-dynamicforms.module.ts","../../../projects/kles-material-dynamicforms/src/lib/fields/subfields/password-visibility.component.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, ValidatorFn, AsyncValidatorFn, Validators } from \"@angular/forms\";\nimport { IKlesValidator } from \"../interfaces/validator.interface\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\nimport { IKlesControl } from \"./control.interface\";\nimport { ChangeDetectorRef } from \"@angular/core\";\nimport { tap } from \"rxjs/operators\";\n\n\nexport abstract class KlesAbstractFormControl implements IKlesControl {\n\n constructor(protected field: IKlesFieldConfig, protected ref?: ChangeDetectorRef) {\n\n }\n abstract create(): AbstractControl;\n\n public bindValidations(validations: IKlesValidator<ValidatorFn>[]): ValidatorFn {\n if (validations.length > 0) {\n return Validators.compose(validations.map((validation) => validation.validator));\n\n }\n return null;\n }\n\n public bindAsyncValidations(validations: IKlesValidator<AsyncValidatorFn>[]): AsyncValidatorFn {\n if (validations.length > 0) {\n return Validators.composeAsync(validations.map((validation) => {\n return ((c: AbstractControl) => {\n const validator$ = validation.validator(c);\n if (validator$ instanceof Promise) {\n return validator$.finally(() => this.ref?.markForCheck());\n } else {\n return validator$.pipe(tap(() => this.ref?.markForCheck()));\n }\n });\n }));\n }\n return null;\n }\n\n}","import { AbstractControl, FormControl } from \"@angular/forms\";\nimport { concat, of } from \"rxjs\";\nimport { catchError, map, take } from \"rxjs/operators\";\nimport { KlesAbstractFormControl } from \"./control.abstract\";\n\nexport class KlesFormControl extends KlesAbstractFormControl {\n\n public create(): AbstractControl {\n const control = new FormControl(\n { value: this.field.value, disabled: this.field.disabled || false },\n {\n nonNullable: this.field.nonNullable || false,\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.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 return control;\n }\n}\n","import { ChangeDetectorRef } from \"@angular/core\";\nimport { KlesFormControl } from \"../controls/default.control\";\nimport { IKlesFieldConfig } from \"../interfaces/field.config.interface\";\n\n\nexport const klesFieldControlFactory = (field: IKlesFieldConfig, ref?: ChangeDetectorRef) => {\n const factory = new KlesFormControl(field, ref);\n return factory.create();\n}\n\n\n\n","import { ChangeDetectorRef, 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, ref?: ChangeDetectorRef) => 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 file = 'file',\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, Input } from \"@angular/core\";\nimport { UntypedFormGroup } from \"@angular/forms\";\nimport { IKlesClearControl } from \"../../interfaces/clear-control.interface\";\nimport { IKlesFieldConfig } from \"../../interfaces/field.config.interface\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatIcon } from \"@angular/material/icon\";\nimport { MatButton, MatIconButton } from \"@angular/material/button\";\n\n@Component({\n selector: 'kles-form-clear',\n template: `\n <button [disabled]=\"isDisable()\" mat-icon-button aria-label=\"Clear\" type=\"button\"\n (click)=\"clear($event)\">\n <mat-icon>close</mat-icon>\n </button>\n `,\n standalone: true,\n imports: [CommonModule, MatIcon, MatIconButton]\n})\nexport class KlesFormClearComponent implements IKlesClearControl {\n @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() siblingFields: IKlesFieldConfig[];\n\n clear(event): void {\n event.stopPropagation();\n this.group.controls[this.field.name].reset();\n }\n\n isDisable(): boolean {\n return this.group.get(this.field.name).disabled\n || !this.group.get(this.field.name).value\n || (Array.isArray(this.group.get(this.field.name).value) && !this.group.get(this.field.name).value.length);\n\n }\n}","export interface Destroyable {\n destroy();\n}\n\nexport function isDestroyable(value: unknown): value is Destroyable {\n return value !== null && typeof value === 'object' &&\n typeof (value as Destroyable).destroy === 'function';\n}","import { Directive, Input, OnInit, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges, OnDestroy, Type, Injector, StaticProvider, Provider } from '@angular/core';\n\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { componentMapper } from '../decorators/component.decorator';\nimport { KlesFormClearComponent } from '../fields/subfields/clear.component';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { isDestroyable } from '../utils/destroyable.guard';\n\n@Directive({\n selector: '[klesDynamicField]',\n standalone: true,\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 && !changes.group.isFirstChange()) {\n this.group = changes.group.currentValue;\n }\n if (changes.field && !changes.field?.isFirstChange()) {\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: Array<Provider | StaticProvider>;\n parent?: Injector;\n name?: string;\n } = {\n providers: [\n ...(this.field.providers || []),\n ...(this.field.dateOptions\n ? [\n ...(this.field.dateOptions.adapter\n ? [\n {\n provide: DateAdapter,\n useClass: this.field.dateOptions.adapter.class,\n deps: this.field.dateOptions.adapter.deps || [],\n },\n ]\n : []),\n { provide: MAT_DATE_LOCALE, useValue: this.field.dateOptions.language },\n { provide: MAT_DATE_FORMATS, useValue: this.field.dateOptions.dateFormat },\n ]\n : []),\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, options);\n this.subComponents.push(composant);\n }\n if (this.field.subComponents) {\n this.subComponents.push(...this.field.subComponents.map((subComponent) => this.createSubComponent(subComponent, options)));\n }\n\n this.componentRef = this.createComponentRef(injector);\n\n this.componentRef.setInput('field', this.field);\n this.componentRef.setInput('group', this.group);\n this.componentRef.setInput('siblingFields', this.siblingFields);\n\n // this.componentRef.instance.field = this.field;\n // this.componentRef.instance.group = this.group;\n // this.componentRef.instance.siblingFields = this.siblingFields;\n\n this.componentRef.onDestroy(() => {\n if (isDestroyable(injector)) {\n injector.destroy();\n }\n });\n }\n\n protected createComponentRef(injector: Injector) {\n const componentRef = this.container.createComponent(componentMapper.find((element) => element.type === this.field.type)?.component || this.field.component, {\n injector,\n projectableNodes: [this.subComponents.map((sub) => sub.location.nativeElement)],\n });\n\n if (this.field.hostClass) {\n if (Array.isArray(this.field.hostClass)) {\n componentRef.location.nativeElement.classList.add(...this.field.hostClass);\n } else {\n componentRef.location.nativeElement.classList.add(this.field.hostClass);\n }\n }\n\n return componentRef;\n }\n\n private createSubComponent(\n componentType: Type<any>,\n options: {\n providers: Array<Provider | StaticProvider>;\n parent?: Injector;\n name?: string;\n },\n ): ComponentRef<any> {\n const injector: Injector = Injector.create(options);\n const component = this.container.createComponent(componentType, { injector });\n component.setInput('field', this.field);\n component.setInput('group', this.group);\n component.setInput('siblingFields', this.siblingFields);\n\n component.onDestroy(() => {\n if (isDestroyable(injector)) {\n injector.destroy();\n }\n });\n\n return component;\n }\n}\n","import { IKlesValidator, KlesValidationKey } from '../interfaces/validator.interface';\n\nexport function flattenValidators<T>(validations: IKlesValidator<T>[]): KlesValidationKey[] {\n return validations.flatMap((v) => ('keys' in v ? v.keys : [{ name: v.name, message: v.message, messageKey: v.messageKey }]));\n}\n","import { Component, Input } from '@angular/core';\nimport { IKlesValidator, KlesValidationKey } from '../interfaces/validator.interface';\nimport { AsyncValidator, FormsModule, ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { flattenValidators } from '../utils/validation.util';\n\n@Component({\n selector: '[matErrorForm]',\n template: `\n @if (form && form.errors) {\n @for (validation of validationsKeys; track validation.name) {\n @if (form?.hasError(validation.name) && validation.message) {\n {{ validation.message }}\n }\n }\n @for (validation of asyncValidationsKeys; track validation.name) {\n @if (form?.hasError(validation.name) && validation.message) {\n {{ validation.message }}\n }\n }\n }\n `,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormsModule],\n})\nexport class MatErrorFormDirective {\n validationsKeys: KlesValidationKey[] = [];\n asyncValidationsKeys: KlesValidationKey[] = [];\n\n @Input({ required: true }) form: UntypedFormGroup;\n\n @Input()\n set validations(v: IKlesValidator<Validators>[]) {\n this.validationsKeys = flattenValidators<Validators>(v ?? []);\n }\n\n @Input()\n set asyncValidations(v: IKlesValidator<AsyncValidator>[]) {\n this.asyncValidationsKeys = flattenValidators<AsyncValidator>(v ?? []);\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 { OnInit, Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormBuilder, ValidatorFn, AsyncValidatorFn, AbstractControl, FormArray, FormGroup, FormControlDirective, FormControlName, ReactiveFormsModule, FormsModule } 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';\nimport { CommonModule } from '@angular/common';\n\nimport { MatError } from '@angular/material/form-field';\nimport { KlesDynamicFieldDirective } from './directive/dynamic-field.directive';\nimport { MatErrorFormDirective } from './directive/mat-error-form.directive';\nimport { ErrorStateMatcher } from '@angular/material/core';\nimport { KlesFormErrorStateMatcher } from './matcher/form-error.matcher';\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 standalone: true,\n template: `\n <form class=\"{{ orientationClass }}\" [ngClass]=\"formClass\" [formGroup]=\"form\" (submit)=\"onSubmit($event)\">\n @for (field of fields; track field.name) {\n @if (field.visible !== false) {\n <ng-container klesDynamicField [field]=\"field\" [group]=\"form\" [siblingFields]=\"fields\"> </ng-container>\n }\n }\n @if (form && form.errors) {\n <mat-error matErrorForm [form]=\"form\" [validations]=\"validators\" [asyncValidations]=\"asyncValidators\"></mat-error>\n }\n </form>\n `,\n styles: [\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; align-items: baseline}',\n '.dynamic-form-row > * { width: 100%; }',\n '.dynamic-form-grid { display: grid; }',\n '.dynamic-form-inline-grid { display: inline-grid; }',\n ],\n providers: [{ provide: ErrorStateMatcher, useClass: KlesFormErrorStateMatcher }],\n imports: [CommonModule, MatErrorFormDirective, KlesDynamicFieldDirective, FormsModule, ReactiveFormsModule, MatError],\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' | 'grid' | 'inline-grid' = 'column';\n @Input() formClass: string | string[] | Set<string> | { [klass: string]: any };\n\n form: UntypedFormGroup;\n orientationClass: 'dynamic-form-column' | 'dynamic-form-row' | 'dynamic-form-grid' | 'dynamic-form-inline-grid' = 'dynamic-form-column';\n\n get value() {\n return this.form.value;\n }\n\n constructor(\n private fb: UntypedFormBuilder,\n private ref: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n this.form = this.createForm();\n this.setOrientationClass();\n this._onLoaded.emit();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (!changes.fields?.firstChange) {\n this.updateForm();\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 }\n }\n\n onSubmit(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n if (this.form.valid) {\n this.submit.emit(this.form.getRawValue());\n } else {\n this.validateAllFormFields(this.form);\n }\n }\n\n private setOrientationClass() {\n switch (this.direction) {\n case 'column':\n this.orientationClass = 'dynamic-form-column';\n break;\n case 'row':\n this.orientationClass = 'dynamic-form-row';\n break;\n case 'grid':\n this.orientationClass = 'dynamic-form-grid';\n break;\n case 'inline-grid':\n this.orientationClass = 'dynamic-form-inline-grid';\n break;\n }\n }\n\n private updateForm() {\n Object.keys(this.form.controls)\n .filter((key) => {\n return !this.fields.map((field) => field.name).includes(key);\n })\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 if (control) {\n this.form.addControl(field.name, control);\n }\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 if (control) {\n group.setControl(subfield.name, control, { emitEvent: false });\n }\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 private createControl(field: IKlesFieldConfig): AbstractControl {\n if (field.type) {\n return componentMapper.find((c) => c.type === field.type)?.factory ? componentMapper.find((c) => c.type === field.type)?.factory(field, this.ref) : klesFieldControlFactory(field, this.ref);\n } else {\n return componentMapper.find((c) => c.component === field.component)?.factory ? componentMapper.find((c) => c.component === field.component)?.factory(field, this.ref) : klesFieldControlFactory(field, this.ref);\n }\n }\n\n private createForm() {\n const group = this.fb.group({});\n\n this.fields.forEach((field) => {\n const control = this.createControl(field);\n if (control) {\n group.addControl(field.name, control);\n }\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 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 standalone: true,\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 { 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 { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { CdkScrollable } from '@angular/cdk/scrolling';\nimport { PortalModule } from '@angular/cdk/portal';\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 MatSlideToggleModule,\n MatButtonToggleModule,\n PortalModule\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 MatSlideToggleModule,\n ScrollingModule,\n CdkScrollable,\n MatButtonToggleModule,\n PortalModule\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, Input } 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 @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() 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.appearance) {\n this.field.appearance = 'fill';\n }\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 }\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 isPending() {\n return (this.group.controls[this.field.name].pending || this.field.pending);\n }\n\n onFocus() {\n if (this.field?.onFocus) {\n this.field.onFocus(this.field, this.group);\n }\n }\n\n onBlur() {\n if (this.field?.onBlur) {\n this.field.onBlur(this.field, this.group);\n }\n }\n}\n","\nimport { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from \"@angular/common\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\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\" [type]=\"field.inputType\">\n </div>\n`,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatTooltip]\n})\nexport class KlesFormLabelComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n ngOnInit() {\n this.group.controls[this.field.name].disable({ emitEvent: false });\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}","import { Component, AfterViewInit, Injector, Input } from '@angular/core';\nimport { MatFormFieldControl, MatFormField } from '@angular/material/form-field';\nimport { IKlesValidator, KlesValidationKey } from '../interfaces/validator.interface';\nimport { AsyncValidator, Validators } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { flattenValidators } from '../utils/validation.util';\n\n@Component({\n selector: '[matErrorMessage]',\n template: `\n @for (validation of validationsKeys; track validation.name) {\n @if (inputRef?.ngControl.hasError(validation.name) && validation.message) {\n {{ validation.message }}\n }\n }\n @for (validation of asyncValidationsKeys; track validation.name) {\n @if (inputRef?.ngControl.hasError(validation.name) && validation.message) {\n {{ validation.message }}\n }\n }\n `,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule],\n})\nexport class MatErrorMessageDirective implements AfterViewInit {\n validationsKeys: KlesValidationKey[] = [];\n asyncValidationsKeys: KlesValidationKey[] = [];\n\n @Input()\n set validations(v: IKlesValidator<Validators>[]) {\n this.validationsKeys = flattenValidators<Validators>(v ?? []);\n }\n\n @Input()\n set asyncValidations(v: IKlesValidator<AsyncValidator>[]) {\n this.asyncValidationsKeys = flattenValidators<AsyncValidator>(v ?? []);\n }\n\n inputRef: MatFormFieldControl<MatFormFieldControl<any>>;\n\n constructor(private _inj: Injector) {}\n\n ngAfterViewInit() {\n let container = this._inj.get(MatFormField, null, { optional: true });\n this.inputRef = container?._control;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class KlesDynamicFormIntl {\n loading = 'Loading';\n selectAll = 'Select all';\n \n}\n","import { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy, signal, ViewContainerRef } from '@angular/core';\nimport { combineLatest, concat, Observable, of, Subject } from 'rxjs';\nimport { startWith, map, switchMap, distinctUntilChanged, filter } from 'rxjs/operators';\nimport { EnumType } from '../enums/type.enum';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { MatError, MatFormFieldModule } from '@angular/material/form-field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\nimport { MatIconModule } from '@angular/material/icon';\n\n@FieldMapper({ type: EnumType.input })\n@Component({\n selector: 'kles-form-input',\n template: `\n <mat-form-field [formGroup]=\"group\" [color]=\"field.color\" [subscriptSizing]=\"field.subscriptSizing\" class=\"form-element\" [appearance]=\"field.appearance\" class=\"field-bottom\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n @if(field.icon){\n <mat-icon matPrefix>{{ field.icon }}</mat-icon>\n }\n \n @if (field.autocomplete) {\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n [matAutocomplete]=\"auto\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn.bind(this)\" [panelWidth]=\"this.field.panelWidth\">\n @if(filteredOption$ | async; as filteredOption){ @if(filteredOption.loading){\n <mat-option disabled>\n <div class=\"loadingSelect\">\n {{ intl.loading }}...\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\n </div>\n </mat-option>\n }@else{ @if (!field.autocompleteComponent) { @for (option of filteredOption.options; track option) {\n <mat-option [value]=\"option\">\n {{ field.property ? option[field.property] : option }}\n </mat-option>\n } } @else { @for (option of filteredOption.options; track option) {\n <mat-option [value]=\"option\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"option\" [field]=\"field\"> </ng-container>\n </mat-option>\n } } } }\n </mat-autocomplete>\n } @else {\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n } @if (field.hint) {\n <mat-hint>{{ field.hint }}</mat-hint>\n } @if (field.subComponents || field.clearable || isPending()) {\n <div matSuffix class=\"suffix\">\n @if(isPending()){\n <mat-spinner mode=\"indeterminate\" diameter=\"21\"></mat-spinner>\n } @if(field.subComponents || field.clearable){\n <ng-content></ng-content>\n }\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n styleUrls: ['../styles/mat-suffix.style.scss', '../styles/mat-field-bottom.style.scss', '../styles/loading-select.style.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatAutocompleteModule, MatTooltipModule, MatProgressSpinnerModule, MatOptionModule, MatError, MatErrorMessageDirective, KlesComponentDirective, MatIconModule],\n})\nexport class KlesFormInputComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n filteredOption$: Observable<{ loading: boolean; options: any[] }>;\n options$: Observable<{ loading: boolean; options: any[] }>;\n private isFocused = new Subject<boolean>();\n isLoading = signal(false);\n\n constructor(protected viewRef: ViewContainerRef, public intl: KlesDynamicFormIntl) {\n super(viewRef);\n }\n\n ngOnInit(): void {\n if (this.field.lazy) {\n this.options$ = this.isFocused.pipe(\n distinctUntilChanged(),\n filter((isFocused) => isFocused),\n switchMap((isFocused) => {\n if (isFocused) {\n let obs$: Observable<any[]>;\n if (this.field.options instanceof Observable) {\n obs$ = this.field.options;\n } else if (this.field.options instanceof Function) {\n obs$ = this.field.options();\n } else {\n obs$ = of(this.field.options);\n }\n return concat(\n of({ loading: true, options: [] }),\n obs$.pipe(\n map((options: any[]) => {\n return { loading: false, options };\n }),\n ),\n );\n } else {\n return of({ loading: false, options: [] });\n }\n }),\n );\n } else {\n if (this.field.options instanceof Observable) {\n this.options$ = concat(\n of({ loading: true, options: [] }),\n this.field.options.pipe(\n map((options: any[]) => {\n return { loading: false, options };\n }),\n ),\n );\n } else if (this.field.options instanceof Function) {\n this.options$ = concat(\n of({ loading: true, options: [] }),\n this.field.options().pipe(\n map((options: any[]) => {\n return { loading: false, options };\n }),\n ),\n );\n } else {\n this.options$ = of({ loading: false, options: this.field.options });\n }\n }\n\n this.filteredOption$ = concat(\n combineLatest([this.group.get(this.field.name).valueChanges.pipe(startWith('')), this.options$]).pipe(\n map(([data, response]) => {\n if (response.loading) {\n return response;\n } else {\n return { loading: false, options: data && response.options ? this.filterData(data, response.options) : response.options };\n }\n }),\n ),\n );\n\n if (!this.field.maxLength) {\n this.field.maxLength = 524288; // Max default input W3C\n }\n super.ngOnInit();\n }\n\n onFocus() {\n if (this.field.autocomplete && this.field.lazy) {\n this.isFocused.next(true);\n }\n\n super.onFocus();\n }\n\n private filterData(value: any, options: any[]): 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 options.filter((option) => option[this.field.property].toLowerCase().indexOf(filterValue) === 0);\n }\n return 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 { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'klesTransform',\n standalone: true\n})\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 acc = p.pipe.transform(acc, ...(p.options || []));\n return acc;\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, ScrollingModule } 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';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatHint } from '@angular/material/form-field';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\n\n@FieldMapper({ type: EnumType.select })\n@Component({\n selector: 'kles-form-select',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\" class=\"field-bottom\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n <mat-select\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n (openedChange)=\"openChange($event)\"\n [compareWith]=\"compareFn\"\n [panelWidth]=\"field.panelWidth || 'auto'\"\n [ngClass]=\"field.ngClass\"\n [placeholder]=\"field.placeholder\"\n [formControlName]=\"field.name\"\n [multiple]=\"field.multiple\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n >\n @if (field.triggerComponent) {\n <mat-select-trigger>\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n } @if (!field.virtualScroll) { @if (!field.autocompleteComponent) { @if (!isLoading) { @for (item of options$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">{{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}</mat-option>\n } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } } @else { @if (!isLoading) { @for (item of options$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } } } @else {\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 50\" [style.height.px]=\"5 * 48\">\n @if (!field.autocompleteComponent) { @if (!isLoading) {\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 } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } } @else { @if (!isLoading) {\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 } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } }\n </cdk-virtual-scroll-viewport>\n }\n </mat-select>\n\n @if (field.hint) {\n <mat-hint>{{ field.hint }}</mat-hint>\n } @if (field.subComponents || field.clearable) {\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: [\n 'mat-form-field {width: calc(100%)}',\n `\n ::ng-deep .hide-checkbox .mat-pseudo-checkbox {\n display: none !important;\n }\n `,\n ],\n styleUrls: ['../styles/loading-select.style.scss', '../styles/mat-field-bottom.style.scss'],\n standalone: true,\n imports: [CommonModule, KlesTransformPipe, MatErrorMessageDirective, MatHint, KlesComponentDirective, MatOption, MatProgressSpinner, ScrollingModule, MatSelectModule, ReactiveFormsModule, MatTooltip],\n})\nexport class KlesFormSelectComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\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, public intl: KlesDynamicFormIntl) {\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 : [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 } else if (this.field.options instanceof Function) {\n this.isLoading = true;\n return this.field.options();\n } else {\n return of(this.field.options);\n }\n } else {\n return of(\n 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\n : [this.group.controls[this.field.name].value]\n : [],\n );\n }\n }),\n )\n .subscribe((options) => {\n (this.options$ as BehaviorSubject<any[]>).next(options);\n this.isLoading = false;\n this.ref.markForCheck();\n });\n } else {\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n } else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\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';\nimport { CommonModule } from \"@angular/common\";\nimport { MatError, MatFormField, MatHint, MatLabel } from \"@angular/material/form-field\";\nimport { MatErrorMessageDirective } from \"../directive/mat-error-message.directive\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\nimport { MatInput } from \"@angular/material/input\";\n\n@Component({\n selector: 'kles-form-datepicker',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\">\n @if (field.label) {\n <mat-label>{{field.label}}</mat-label>\n }\n <input matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [matDatepicker]=\"picker\" [formControlName]=\"field.name\" [placeholder]=\"field.placeholder\"\n [min]=\"field.min\" [max]=\"field.max\">\n <div matSuffix class=\"suffix\">\n <mat-datepicker-toggle [for]=\"picker\"></mat-datepicker-toggle>\n <ng-content></ng-content>\n </div>\n <mat-datepicker #picker></mat-datepicker>\n @if (field.hint) {\n <mat-hint>{{field.hint}}</mat-hint>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}',\n '.suffix { display: flex; flex-direction: row}'\n ],\n standalone: true,\n imports: [CommonModule, MatErrorMessageDirective, MatError, MatHint, MatDatepickerModule, ReactiveFormsModule, MatTooltip, MatLabel, MatFormField, MatInput],\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';\nimport { Observable, of } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { MatRadioButton, MatRadioGroup } from '@angular/material/radio';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltip } from '@angular/material/tooltip';\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 @for (item of options$ | async; track item) {\n <mat-radio-button [value]=\"item\">{{item}}</mat-radio-button>\n }\n </mat-radio-group>\n </div>\n`,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatRadioButton, MatRadioGroup, ReactiveFormsModule, MatTooltip],\n})\nexport class KlesFormRadioComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\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\n ngOnDestroy(): void {\n super.ngOnDestroy();\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';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { MatTooltip } from '@angular/material/tooltip';\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 }}</mat-checkbox>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatCheckbox, MatTooltip],\n})\nexport class KlesFormCheckboxComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\n super.ngOnInit();\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 line = { ...val, _id: val?._id || uuidv4() };\n const group = new FormGroup({ _id: new FormControl(line._id) });\n this.field.collections?.forEach(subfield => {\n const data = line[subfield.name] || null;\n let control;\n if (subfield.type) {\n control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield, ...(data && { value: data }) }, this.ref)\n || klesFieldControlFactory({ ...subfield, ...(data && { value: data }) }, this.ref);\n } else {\n control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield, ...(data && { value: data }) }, this.ref)\n || klesFieldControlFactory({ ...subfield, ...(data && { value: data }) }, this.ref);\n }\n group.addControl(subfield.name, control);\n });\n array.push(group);\n });\n }\n } else {\n const group = new FormGroup({ _id: new FormControl(uuidv4()) });\n this.field.collections?.forEach(subfield => {\n let control;\n if (subfield.type) {\n control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield }, this.ref)\n || klesFieldControlFactory({ ...subfield }, this.ref);\n } else {\n control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield }, this.ref)\n || klesFieldControlFactory({ ...subfield }, this.ref);\n\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, ViewContainerRef } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { UntypedFormGroup, UntypedFormArray, UntypedFormBuilder, ValidatorFn, Validators, AsyncValidatorFn, ReactiveFormsModule } from '@angular/forms';\nimport { IKlesValidator } from '../interfaces/validator.interface';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { KlesFormArray } from '../controls/array.control';\nimport { cloneDeep } from 'lodash';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { CommonModule } from '@angular/common';\nimport { MatError } from '@angular/material/form-field';\nimport { MatIcon } from '@angular/material/icon';\nimport { KlesDynamicFieldDirective } from '../directive/dynamic-field.directive';\n\n@FieldMapper({ type: 'listfield', factory: (field) => new KlesFormArray(field).create() })\n@Component({\n selector: 'kles-form-listfield',\n template: `\n <div [formGroup]=\"group\" class=\"form-element\">\n <div class=\"label\">\n {{ field.label }}\n <button mat-icon-button color=\"primary\" (click)=\"addField()\">\n <mat-icon>add</mat-icon>\n </button>\n </div>\n\n <div class=\"dynamic-form\" [formGroupName]=\"field.name\">\n @for (subGroup of formArray.controls; track subGroup.value._id; let idx = $index;) {\n <div class=\"subfields\">\n @for (subfield of collections[idx]; track subfield.name) {\n <ng-container klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"collections[idx]\"> </ng-container>\n } @if(collections[idx]){\n <button mat-icon-button (click)=\"deleteField(idx)\" color=\"primary\">\n <mat-icon>delete_outlined</mat-icon>\n </button>\n }\n </div>\n } @for (validation of field.validations; track validation.name) {\n <ng-container ngProjectAs=\"mat-error\">\n @if (group.get(field.name).hasError(validation.name)) {\n <mat-error>{{ validation.message }}</mat-error>\n }\n </ng-container>\n } @for (validation of field.asyncValidations; track validation.name) {\n <ng-container ngProjectAs=\"mat-error\">\n @if (group.get(field.name).hasError(validation.name)) {\n <mat-error>{{ validation.message }}</mat-error>\n }\n </ng-container>\n }\n </div>\n </div>\n `,\n styles: [\n '.subfields {display: flex; flex-direction: row; gap:5px}',\n `\n .label {\n display: flex;\n align-items: center;\n flex-direction: row;\n gap: 5px;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, MatError, MatIcon, KlesDynamicFieldDirective, ReactiveFormsModule],\n})\nexport class KlesFormListFieldComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n formArray: UntypedFormArray;\n collections: IKlesFieldConfig[][] = [];\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\n this.collections = this.formArray?.controls?.map(() => {\n return this.field.collections ? cloneDeep(this.field.collections) : [];\n });\n\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(null, this.bindValidations(item.validations || []), this.bindAsyncValidations(item.asyncValidations || []));\n group.addControl(item.name, control);\n });\n return group;\n }\n\n deleteField(index: number) {\n this.collections.splice(index, 1);\n this.formArray.removeAt(index);\n }\n\n addField() {\n this.collections.push(this.field.collections ? cloneDeep(this.field.collections) : []);\n this.formArray.push(this.createFormGroup());\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 return null;\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 return null;\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { OnInit, Component, OnDestroy } from '@angular/core';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatFormField } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { ColorPickerComponent, ColorPickerDirective } from 'ngx-color-picker';\n@Component({\n selector: 'kles-form-color',\n template: `\n <mat-form-field\n [subscriptSizing]=\"field.subscriptSizing\"\n [formGroup]=\"group\"\n class=\"form-element\"\n [colorPicker]=\"group.get(field.name).value\"\n (colorPickerChange)=\"group.get(field.name).setValue($event)\"\n [cpPosition]=\"field.colorOption.position\"\n [cpColorMode]=\"field.colorOption.mode\"\n [cpOutputFormat]=\"field.colorOption.format\"\n [cpPositionOffset]=\"field.colorOption.positionOffset\"\n [appearance]=\"field.appearance\"\n >\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [placeholder]=\"field.placeholder\"\n [value]=\"group.get(field.name).value\"\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\n @if (field.subComponents || field.clearable) {\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n standalone: true,\n imports: [CommonModule, MatErrorMessageDirective, MatTooltip, ReactiveFormsModule, MatFormField, ColorPickerDirective, MatInput],\n})\nexport class KlesFormColorComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\n if (!this.field.colorOption) {\n this.field.colorOption = {\n position: 'auto',\n mode: 'color',\n format: 'auto',\n positionOffset: '0%',\n };\n }\n if (!this.field.colorOption.position) {\n this.field.colorOption = {\n ...this.field.colorOption,\n position: 'auto',\n };\n }\n if (!this.field.colorOption.mode) {\n this.field.colorOption = {\n ...this.field.colorOption,\n mode: 'color',\n };\n }\n if (!this.field.colorOption.format) {\n this.field.colorOption = {\n ...this.field.colorOption,\n format: 'auto',\n };\n }\n if (!this.field.colorOption.positionOffset) {\n this.field.colorOption = {\n ...this.field.colorOption,\n positionOffset: '0%',\n };\n }\n super.ngOnInit();\n }\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 ? '#000000' : '#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 { OnInit, Input, Injectable, Component } from '@angular/core';\nimport { ControlValueAccessor } 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 template: '',\n standalone: true\n})\nexport abstract class KlesButtonBase 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') get type(): any {\n return this._type;\n }\n set type(value: any) {\n this._type = value || this._type;\n }\n @Input() classButton = '';\n @Input() value: IButton = {};\n @Input() tooltip?: string;\n\n protected _type = 'button';\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n ngOnInit(): void {\n }\n\n click(event) {\n if (!this.disabled && this.value && this._type === 'button') {\n this.value.event = this.name;\n this.onChange(this.value);\n }\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}","export enum EnumButtonAttribute {\n 'mat-button' = 'mat-button',\n 'mat-flat-button' = 'mat-flat-button',\n 'mat-raised-button' = 'mat-raised-button',\n 'mat-stroked-button' = 'mat-stroked-button',\n}\n","import { Component, Input, OnInit, Signal, forwardRef, signal } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { KlesButtonBase } from './button-control-base';\nimport { EnumButtonAttribute } from '../enums/button-attribute.enum';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatButton } from '@angular/material/button';\n\n/*From angular material \n https://github.com/angular/components/blob/17.0.x/src/material/button/button-base.ts#L40C1-L56C5\n */\nconst HOST_SELECTOR_MDC_CLASS_PAIR: { attribute: string; mdcClasses: string[] }[] = [\n {\n attribute: EnumButtonAttribute['mat-button'],\n mdcClasses: ['mdc-button', 'mat-mdc-button'],\n },\n {\n attribute: EnumButtonAttribute['mat-flat-button'],\n mdcClasses: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button'],\n },\n {\n attribute: EnumButtonAttribute['mat-raised-button'],\n mdcClasses: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button'],\n },\n {\n attribute: EnumButtonAttribute['mat-stroked-button'],\n mdcClasses: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button'],\n }\n];\n\n\n@Component({\n selector: 'kles-button',\n template: `\n <button mat-button [type]=\"type\" [ngClass]=\"classButton || mdcClasses()\" [color]=\"(color)?color:'primary'\" [disabled]=\"disabled\"\n (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n {{label}}\n\n @if (icon) {\n <mat-icon>{{icon}}</mat-icon>\n }\n\n @if (iconSvg) {\n <mat-icon svgIcon=\"{{iconSvg}}\"></mat-icon>\n }\n </button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatIcon, MatTooltip, MatButton]\n})\nexport class KlesButtonComponent extends KlesButtonBase implements OnInit {\n\n mdcClasses = signal(HOST_SELECTOR_MDC_CLASS_PAIR[0].mdcClasses);\n\n @Input() set attribute(attribute: EnumButtonAttribute) {\n this.mdcClasses.set(HOST_SELECTOR_MDC_CLASS_PAIR.find(selector => selector.attribute === attribute)?.mdcClasses || []);\n }\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { KlesButtonComponent } from '../forms/button-control.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'kles-form-button',\n template: `\n <div [formGroup]=\"group\">\n <kles-button\n [attr.id]=\"field.id\"\n [classButton]=\"field.ngClass\"\n [name]=\"field.name\"\n [label]=\"field.label\"\n [color]=\"field.color\"\n [attribute]=\"field.attribute\"\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 standalone: true,\n imports: [CommonModule, KlesButtonComponent, ReactiveFormsModule],\n})\nexport class KlesFormButtonComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { IButton, KlesButtonBase } from './button-control-base';\nimport { CommonModule } from '@angular/common';\nimport { KlesButtonComponent } from './button-control.component';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatBadge } from '@angular/material/badge';\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 @if (value.error && !value.busy) {\n <span>\n <kles-button [classButton]=\"classButton\" [name]=\"name\" [label]=\"label\" [color]=\"color\" [icon]=\"icon\" [iconSvg]=\"iconSvg\" [value]=\"value\" [tooltip]=\"tooltip\" [disabled]=\"disabled\" matBadge=\"{{ countError() }}\" (click)=\"click($event)\">\n </kles-button>\n </span>\n }\n <span style=\"text-align: center;\">\n @if (value.busy || false) {\n <span style=\"text-align: center;margin-right: 10px\">\n <mat-spinner [diameter]=\"25\"></mat-spinner>\n </span>\n } @if (value.message) {\n <span style=\"margin-right: 10px\">\n {{ value.message }}\n </span>\n }\n </span>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesButtonCheckerComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, KlesButtonComponent, MatProgressSpinner, MatBadge],\n})\nexport class KlesButtonCheckerComponent extends KlesButtonBase 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}\n","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { KlesButtonCheckerComponent } from '../forms/buttonchecker-control.component';\nimport { ReactiveFormsModule } from '@angular/forms';\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 [disabled]=\"field.disabled\"\n >\n </kles-button-checker>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, KlesButtonCheckerComponent, ReactiveFormsModule],\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, forwardRef, ViewChild } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IButton, KlesButtonBase } from './button-control-base';\nimport { KlesButtonComponent } from './button-control.component';\nimport { CommonModule } from '@angular/common';\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 standalone: true,\n imports: [CommonModule, KlesButtonComponent],\n})\nexport class KlesButtonFileComponent extends KlesButtonBase {\n @ViewChild('file') file;\n @Input() accept = '*.*';\n fileReader = new FileReader();\n fileContent: string | string[];\n value: IButtonFile = {};\n\n\n click(event) {\n if (!this.disabled) {\n this.file.nativeElement.click();\n }\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';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { KlesButtonFileComponent } from '../forms/buttonfile-control.component';\n\n@Component({\n selector: 'kles-form-button-file',\n template: `\n <div [formGroup]=\"group\">\n <kles-button-file\n [attr.id]=\"field.id\"\n [classButton]=\"field.ngClass\"\n [name]=\"field.name\"\n [label]=\"field.label\"\n [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 [disabled]=\"field.disabled\"\n >\n </kles-button-file>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, KlesButtonFileComponent],\n})\nexport class KlesFormButtonFileComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit(): void {\n super.ngOnInit();\n this.field.buttonType = 'button';\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatInput } from '@angular/material/input';\n\n@Component({\n selector: 'kles-form-textarea',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\" [appearance]=\"field.appearance\">\n @if (field.label) {\n <mat-label>{{field.label}}</mat-label>\n }\n\n <textarea matInput matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\" cdkTextareaAutosize [placeholder]=\"field.placeholder\"\n [cdkAutosizeMinRows]=\"field.textareaAutoSize?.minRows\" [cdkAutosizeMaxRows]=\"field.textareaAutoSize?.maxRows\" [maxlength]=\"field.maxLength\">\n </textarea>\n\n @if (field.subComponents || field.clearable) {\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n standalone: true,\n imports: [CommonModule, MatErrorMessageDirective, ScrollingModule, ReactiveFormsModule, MatTooltip, MatLabel, MatFormField, TextFieldModule, MatInput]\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';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatTooltip } from '@angular/material/tooltip';\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\" [ngStyle]=\"field.ngStyle\">\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 @if (field.subComponents || isPending()) {\n <ng-content></ng-content>\n }\n`,\n styles: [`:host{\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: inherit;\n }`\n ],\n standalone: true,\n imports: [CommonModule, KlesTransformPipe, MatTooltip]\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\";\nimport { MatIcon } from \"@angular/material/icon\";\nimport { KlesTransformPipe } from \"../pipe/transform.pipe\";\nimport { CommonModule } from \"@angular/common\";\nimport { MatChip, MatChipListbox, MatChipOption } from \"@angular/material/chips\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\n\n@Component({\n selector: \"kles-form-chip\",\n template: `\n <div [formGroup]=\"group\"> \n <mat-chip-listbox>\n <mat-chip-option [color]=\"field.color\" matTooltip=\"{{field.tooltip}}\" [attr.id]=\"field.id\" selected [ngClass]=\"field.ngClass\" [ngStyle]=\"field.ngStyle\">\n @if (field.icon) {\n <mat-icon>{{field.icon}}</mat-icon>\n }\n {{group.controls[field.name].value | klesTransform:field.pipeTransform}}\n </mat-chip-option>\n </mat-chip-listbox>\n </div>\n`,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatIcon, KlesTransformPipe, MatChipOption, MatChipListbox, MatTooltip, ReactiveFormsModule]\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\";\nimport { concat, of } from \"rxjs\";\nimport { catchError, map, take } from \"rxjs/operators\";\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] }, this.ref)\n || klesFieldControlFactory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] }, this.ref);\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] }, this.ref);\n }\n\n subGroup.addControl(subfield.name, control);\n });\n }\n\n if (this.field.disabled) {\n subGroup.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 this.field.collections.forEach((col) => col.pending = response.pending);\n if (response.pending) {\n subGroup.disable({ emitEvent: false });\n } else {\n if (!this.field.disabled) {\n subGroup.enable({ emitEvent: false });\n }\n subGroup.patchValue(response.value);\n this.field.value = response.value;\n }\n });\n }\n\n return subGroup;\n }\n}\n","import { Component, HostBinding, OnDestroy, OnInit, ViewContainerRef, ViewEncapsulation } 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';\nimport { CommonModule } from '@angular/common';\nimport { KlesDynamicFieldDirective } from '../directive/dynamic-field.directive';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { MatIcon } from '@angular/material/icon';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\n\n@FieldMapper({ type: EnumType.group, factory: (field) => (new KlesFormGroup(field).create()) })\n@Component({\n host: { '[formGroup]': 'group', '[formGroupName]': 'field.name' },\n selector: 'kles-group',\n template: `\n @if(field.label){\n <h4><span [matTooltip]=\"field.tooltip || ''\" >{{field.label}}</span></h4>\n }\n \n @for (subfield of field.collections; track subfield.name) {\n @if (subfield.visible !== false) {\n <ng-container klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"field.collections\">\n </ng-container>\n }\n }\n`,\n styles: [\n ' mat-form-field {width: calc(100%)}',\n ':host.group-container {display:flex; flex-direction: inherit; width: inherit; justify-content:inherit; }',\n ':host.group-container-column { display: flex;flex-direction: column; justify-content:inherit; }',\n ':host.group-container-column > * { width: 100%; }',\n ':host.group-container-row { display: inline-flex; flex-wrap:wrap; gap:10px; align-items: baseline; justify-content:inherit; }',\n ':host.group-container-row > * { width: 100%; }',\n ':host.group-container-grid { display: grid; }',\n ':host.group-container-inline-grid { display: inline-grid; }',\n ],\n standalone: true,\n imports: [CommonModule, KlesDynamicFieldDirective, MatTooltip]\n})\nexport class KlesFormGroupComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n\n orientationClass: 'group-container'\n | 'group-container-column'\n | 'group-container-row'\n | 'group-container-grid'\n | 'group-container-inline-grid' = 'group-container';\n\n @HostBinding('class') get className() {\n return this.orientationClass;\n }\n\n subGroup: UntypedFormGroup;\n\n ngOnInit() {\n this.subGroup = this.group.controls[this.field.name] as UntypedFormGroup;\n super.ngOnInit();\n this.setOrientationClass();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n private setOrientationClass() {\n if (this.field.direction) {\n switch (this.field.direction) {\n case 'column':\n this.orientationClass = 'group-container-column';\n break;\n case 'row':\n this.orientationClass = 'group-container-row';\n break;\n case 'grid':\n this.orientationClass = 'group-container-grid';\n break;\n case 'inline-grid':\n this.orientationClass = 'group-container-inline-grid';\n break;\n }\n }\n\n }\n}\n","import { OnInit, Component, OnDestroy, ViewContainerRef } from '@angular/core';\nimport { KlesFormInputComponent } from './input.component';\nimport { CommonModule } from '@angular/common';\nimport { MatAutocompleteModule, MatOption } from '@angular/material/autocomplete';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatIcon } from '@angular/material/icon';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { MatFormField, MatInput, MatLabel } from '@angular/material/input';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\n\n@Component({\n selector: 'kles-form-input-clearable',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" [formGroup]=\"group\" [color]=\"field.color\" class=\"form-element\" [appearance]=\"field.appearance\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n } @if (field.autocomplete) {\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n [matAutocomplete]=\"auto\"\n />\n\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayFn.bind(this)\" [panelWidth]=\"this.field.panelWidth\">\n @if(filteredOption$ | async; as filteredOption){ @if(filteredOption.loading){\n <mat-option class=\"hide-checkbox\" disabled>\n <div class=\"loadingSelect\">\n {{ intl.loading }}...\n <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner>\n </div>\n </mat-option>\n }@else{ @if (!field.autocompleteComponent) { @for (option of filteredOption.options; track option) {\n <mat-option [value]=\"option\">\n {{ field.property ? option[field.property] : option }}\n </mat-option>\n } } @else { @for (option of filteredOption.options; track option) {\n <mat-option [value]=\"option\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"option\" [field]=\"field\"> </ng-container>\n </mat-option>\n } } } }\n </mat-autocomplete>\n } @else {\n <input\n matInput\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n [formControlName]=\"field.name\"\n [placeholder]=\"field.placeholder\"\n [type]=\"field.inputType\"\n [maxLength]=\"field.maxLength\"\n [min]=\"field.min\"\n [max]=\"field.max\"\n [step]=\"field.step\"\n />\n } @if (!group.get(field.name).disabled) {\n <button matSuffix mat-icon-button aria-label=\"Clear\" type=\"button\" (click)=\"group.controls[field.name].reset()\">\n <mat-icon>close</mat-icon>\n </button>\n } @if (isPending()) {\n <mat-spinner matSuffix mode=\"indeterminate\" diameter=\"17\"></mat-spinner>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n styleUrls: ['../styles/loading-select.style.scss'],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatAutocompleteModule, MatErrorMessageDirective, MatProgressSpinner, MatIcon, MatTooltip, KlesComponentDirective, MatOption, MatInput, MatLabel, MatFormField],\n})\nexport class KlesFormInputClearableComponent extends KlesFormInputComponent implements OnInit, OnDestroy {\n\n constructor(protected viewRef: ViewContainerRef, public intl: KlesDynamicFormIntl) {\n super(viewRef, intl);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from \"@angular/common\";\nimport { MatIcon } from \"@angular/material/icon\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\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 standalone: true,\n imports: [CommonModule, MatIcon, MatTooltip]\n})\nexport class KlesFormIconComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { ChangeDetectorRef, Component, Inject, OnDestroy, OnInit, QueryList, signal, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatOption } from '@angular/material/core';\nimport { BehaviorSubject, concat, Observable, of, ReplaySubject, Subject } from 'rxjs';\nimport { debounceTime, map, startWith, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { MatFormField, MatHint, MatLabel } from '@angular/material/form-field';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { MatSelect, MatSelectTrigger } from '@angular/material/select';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { MatCheckbox } from '@angular/material/checkbox';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\n\n@Component({\n selector: 'kles-form-select-search',\n // encapsulation: ViewEncapsulation.None,\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\" class=\"field-bottom\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n\n <mat-select\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n (openedChange)=\"openChange($event)\"\n [compareWith]=\"compareFn\"\n [panelWidth]=\"field.panelWidth || 'auto'\"\n [placeholder]=\"field.placeholder\"\n [formControlName]=\"field.name\"\n [multiple]=\"field.multiple\"\n (selectionChange)=\"selectionChange($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n >\n @if (field.triggerComponent) {\n <mat-select-trigger>\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n } @if (field.virtualScroll) {\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" 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 @if (!isLoading()) { @if (field.multiple) {\n <mat-checkbox class=\"selectAll mat-mdc-option mdc-list-item\" [formControl]=\"selectAllControl\" (change)=\"toggleAllSelection($event)\">\n {{ intl.selectAll }}\n </mat-checkbox>\n } @if (!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 @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } } @else {\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 @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n }\n </cdk-virtual-scroll-viewport>\n } @else {\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" placeholderLabel=\"\" noEntriesFoundLabel=\"\"></ngx-mat-select-search>\n </mat-option>\n\n @if (!isLoading()) { @if (field.multiple) {\n <mat-checkbox class=\"selectAll mat-mdc-option mdc-list-item\" [formControl]=\"selectAllControl\" (change)=\"toggleAllSelection($event)\">\n {{ intl.selectAll }}\n </mat-checkbox>\n } @if (!field.autocompleteComponent) { @for (item of optionsFiltered$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">{{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}</mat-option>\n } } @else { @for (item of optionsFiltered$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n }\n\n <ng-template #emptyOption>\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n </ng-template>\n }\n </mat-select>\n\n @if (field.hint) {\n <mat-hint>{{ field.hint }}</mat-hint>\n } @if (field.subComponents || field.clearable || isPending()) {\n <div matSuffix class=\"suffix\">\n @if(isPending()){\n <mat-spinner mode=\"indeterminate\" diameter=\"21\"></mat-spinner>\n } @if(field.subComponents || field.clearable){\n <ng-content></ng-content>\n }\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: [\n 'mat-form-field {width: calc(100%)}',\n '::ng-deep .selectAll {padding: 0 16px 0 5px !important; display: flex !important;}',\n '::ng-deep .selectAll .mdc-form-field {width: 100%;}',\n '::ng-deep .selectAll .mdc-form-field .mdc-label {width: 100%; min-height: 48px; align-items: center; display: flex;}',\n '::ng-deep .selectAll .mdc-form-field .mdc-checkbox__ripple {display: none !important;}',\n `\n ::ng-deep .hide-checkbox .mat-pseudo-checkbox {\n display: none !important;\n }\n `,\n ],\n styleUrls: ['../styles/loading-select.style.scss', '../styles/mat-suffix.style.scss', '../styles/mat-field-bottom.style.scss'],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n KlesTransformPipe,\n MatErrorMessageDirective,\n MatProgressSpinner,\n MatHint,\n MatOption,\n KlesComponentDirective,\n ScrollingModule,\n MatSelectTrigger,\n MatSelect,\n MatTooltip,\n MatLabel,\n MatFormField,\n NgxMatSelectSearchModule,\n MatCheckbox,\n ],\n})\nexport class KlesFormSelectSearchComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n searchControl = new UntypedFormControl();\n selectAllControl = new UntypedFormControl(false);\n\n isLoading = signal(false);\n\n options$: Observable<any[]>;\n optionsFiltered$ = new ReplaySubject<any[]>(1);\n\n openChange$ = new BehaviorSubject<boolean>(false);\n openClosed$ = new Subject<void>();\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,public intl: KlesDynamicFormIntl) {\n super(viewRef);\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n if (this.field.lazy) {\n this.isLoading.set(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.set(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 } else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n } else {\n this.options$ = of(this.field.options);\n }\n }\n\n this.options$.pipe(takeUntil(this._onDestroy)).subscribe((options) => {\n this.optionsFiltered$.next(options);\n });\n\n this.searchControl.valueChanges\n .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(\n take(1),\n map((options) => ({ loading: false, options })),\n ),\n );\n }),\n )\n .subscribe(({ loading, options }) => {\n this.isLoading.set(loading);\n this.optionsFiltered$.next(options);\n this.updateSelectAllControl(this.group.controls[this.field.name].value);\n this.ref.markForCheck();\n });\n\n if (this.field.multiple) {\n // this.updateSelectAllControl(this.group.controls[this.field.name].value);\n\n (this.group.controls[this.field.name] as FormControl).registerOnChange((values, emitViewToModelChange) => {\n if (emitViewToModelChange) {\n this.updateSelectAllControl(values);\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n // this._onDestroy.next();\n this.openClosed$.next();\n this.openClosed$.complete();\n super.ngOnDestroy();\n }\n\n toggleAllSelection(state) {\n if (state.checked) {\n this.optionsFiltered$\n .pipe(\n take(1),\n map((options) => options.filter((option) => !option?.disabled)),\n )\n .subscribe((options) => {\n if (options.length > 0) {\n this.group.controls[this.field.name].patchValue(options);\n }\n });\n } else {\n this.group.controls[this.field.name].patchValue([]);\n }\n\n this.ref.markForCheck();\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.isLoading.set(false);\n (this.options$ as BehaviorSubject<any[]>).next(options);\n this.optionsFiltered$.next(options);\n this.updateSelectAllControl(this.group.controls[this.field.name].value);\n this.ref.markForCheck();\n });\n }\n\n protected onOpenChange(isOpen: boolean): Observable<any[]> {\n if (isOpen) {\n if (this.field.options instanceof Observable) {\n this.isLoading.set(true);\n return this.field.options.pipe(takeUntil(this.openClosed$));\n } else if (this.field.options instanceof Function) {\n this.isLoading.set(true);\n return this.field.options().pipe(takeUntil(this.openClosed$));\n } else {\n return of(this.field.options);\n }\n } else {\n return of(\n 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\n : [this.group.controls[this.field.name].value]\n : [],\n );\n }\n }\n\n protected onSearchChange(value: string): Observable<any[]> {\n if (value) {\n const search = value.toLowerCase();\n return this.options$.pipe(\n map((options) => {\n return options.filter((option) => {\n if (this.field.searchKeys && this.field.searchKeys.length) {\n return (\n 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 ? 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 );\n } else {\n return this.options$;\n }\n }\n\n openChange($event: boolean) {\n if (this.field.lazy) {\n if (!$event) {\n this.openClosed$.next();\n }\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 selectionChange(selection) {\n this.updateSelectAllControl(selection.value);\n }\n\n updateSelectAllControl(values): void {\n if (this.field.multiple) {\n if (values) {\n const selected = this.field.property && values ? values?.map((s) => s[this.field.property]) : values;\n this.optionsFiltered$\n .pipe(\n take(1),\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\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, { emitEvent: false });\n });\n }\n }\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({\n type: EnumType.lineBreak,\n factory: () => null\n})\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 standalone: true\n})\nexport class KlesFormLineBreakComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() { super.ngOnInit(); }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'arrayFormat',\n standalone: true,\n})\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';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { ReactiveFormsModule } from '@angular/forms';\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 standalone: true,\n imports: [CommonModule, MatTooltip, ReactiveFormsModule],\n})\nexport class KlesFormLinkComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\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';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\nimport { MatTooltip } from '@angular/material/tooltip';\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 }}</mat-slide-toggle>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatSlideToggle, MatTooltip, ReactiveFormsModule],\n})\nexport class KlesFormSlideToggleComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\n super.ngOnInit();\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { SelectionChange, getMultipleValuesInSingleSelectionError } from \"@angular/cdk/collections\";\nimport { Subject } from \"rxjs\";\n\n\n\n/**\n * Copy and past from https://github.com/angular/components/blob/17.0.x/src/cdk/collections/selection-model.ts\n * (They put everything in private, thanks to angular team)\n */\nexport class KlesSelectionModel<T> {\n /** Currently-selected values. */\n private _selection = new Set<T>();\n\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n private _deselectedToEmit: T[] = [];\n\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n private _selectedToEmit: T[] = [];\n\n /** Cache for the array value of the selected items. */\n private _selected: T[] | null;\n\n /** Selected values. */\n get selected(): T[] {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n\n return this._selected;\n }\n\n /** Event emitted when the value has changed. */\n readonly changed = new Subject<any>();\n\n constructor(\n private _multiple = false,\n initiallySelectedValues?: T[],\n private _emitChanges = true,\n public compareWith?: (o1: T, o2: T) => boolean,\n ) {\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(value => this._markSelected(value));\n } else {\n this._markSelected(initiallySelectedValues[0]);\n }\n\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n\n /**\n * Selects a value or an array of values.\n * @param values The values to select\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n select(values: T[], option?: { emitEvent: boolean }): boolean | void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._markSelected(value));\n const changed = this._hasQueuedChanges();\n if (!option || option?.emitEvent) {\n this._emitChangeEvent();\n } else {\n this._selected = null;\n }\n return changed;\n }\n\n /**\n * Deselects a value or an array of values.\n * @param values The values to deselect\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n deselect(values: T[], option?: { emitEvent: boolean }): boolean | void {\n this._verifyValueAssignment(values);\n values.forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n if (!option || option?.emitEvent) {\n this._emitChangeEvent();\n } else {\n this._selected = null;\n }\n return changed;\n }\n\n /**\n * Sets the selected values\n * @param values The new selected values\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n setSelection(values: T[], option?: { emitEvent: boolean }): boolean | void {\n this._verifyValueAssignment(values);\n const oldValues = this.selected;\n const newSelectedSet = new Set(values.map((value) => this._getConcreteValue(value)));\n values.forEach(value => this._markSelected(value));\n\n oldValues\n .filter(value => !newSelectedSet.has(value))\n .forEach(value => this._unmarkSelected(value));\n const changed = this._hasQueuedChanges();\n if (!option || option?.emitEvent) {\n this._emitChangeEvent();\n } else {\n this._selected = null;\n }\n return changed;\n }\n\n /**\n * Toggles a value between selected and deselected.\n * @param value The value to toggle\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n toggle(value: T): boolean | void {\n if (Array.isArray(value)) {\n return this.isSelected(value) ? this.deselect(value) : this.select(value);\n } else {\n return this.isSelected(value) ? this.deselect([value]) : this.select([value]);\n }\n\n }\n\n /**\n * Clears all of the selected values.\n * @param flushEvent Whether to flush the changes in an event.\n * If false, the changes to the selection will be flushed along with the next event.\n * @return Whether the selection changed as a result of this call\n * @breaking-change 16.0.0 make return type boolean\n */\n clear(flushEvent = true): boolean | void {\n this._unmarkAll();\n const changed = this._hasQueuedChanges();\n if (flushEvent) {\n this._emitChangeEvent();\n }\n return changed;\n }\n\n /**\n * Determines whether a value is selected.\n */\n isSelected(value: T): boolean {\n return this._selection.has(this._getConcreteValue(value));\n }\n\n /**\n * Determines whether the model does not have a value.\n */\n isEmpty(): boolean {\n return this._selection.size === 0;\n }\n\n /**\n * Determines whether the model has a value.\n */\n hasValue(): boolean {\n return !this.isEmpty();\n }\n\n /**\n * Sorts the selected values based on a predicate function.\n */\n sort(predicate?: (a: T, b: T) => number): void {\n if (this._multiple && this.selected) {\n this._selected!.sort(predicate);\n }\n }\n\n /**\n * Gets whether multiple values can be selected.\n */\n isMultipleSelection() {\n return this._multiple;\n }\n\n /** Emits a change event and clears the records of selected and deselected values. */\n private _emitChangeEvent() {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n this.changed.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit,\n });\n\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n }\n\n /** Selects a value. */\n private _markSelected(value: T) {\n value = this._getConcreteValue(value);\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n\n if (!this.isSelected(value)) {\n this._selection.add(value);\n }\n\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n }\n\n /** Deselects a value. */\n private _unmarkSelected(value: T) {\n value = this._getConcreteValue(value);\n if (this.isSelected(value)) {\n this._selection.delete(value);\n\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n }\n\n /** Clears out the selected values. */\n private _unmarkAll() {\n if (!this.isEmpty()) {\n this._selection.forEach(value => this._unmarkSelected(value));\n }\n }\n\n /**\n * Verifies the value assignment and throws an error if the specified value array is\n * including multiple values while the selection model is not supporting multiple values.\n */\n private _verifyValueAssignment(values: T[]) {\n if (values.length > 1 && !this._multiple) {\n throw getMultipleValuesInSingleSelectionError();\n }\n }\n\n /** Whether there are queued up change to be emitted. */\n private _hasQueuedChanges() {\n return !!(this._deselectedToEmit.length || this._selectedToEmit.length);\n }\n\n /** Returns a value that is comparable to inputValue by applying compareWith function, returns the same inputValue otherwise. */\n private _getConcreteValue(inputValue: T): T {\n if (!this.compareWith) {\n return inputValue;\n } else {\n for (let selectedValue of this._selection) {\n if (this.compareWith!(inputValue, selectedValue)) {\n return selectedValue;\n }\n }\n return inputValue;\n }\n }\n}","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MatListModule, MatSelectionListChange } from '@angular/material/list';\nimport { Observable, of } from 'rxjs';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { takeUntil } from 'rxjs/operators';\nimport { KlesSelectionModel } from '../selection/selection-model';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { ReactiveFormsModule } from '@angular/forms';\n@Component({\n selector: 'kles-form-selection-list',\n template: `\n <div class=\"margin-top\" [formGroup]=\"group\">\n <mat-selection-list [attr.id]=\"field.id\" [multiple]=\"field.multiple\" [ngClass]=\"field.ngClass\" (selectionChange)=\"onSelectionChange($event)\">\n @if(options$ | async; as options){ @if(field.virtualScroll){\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 20\" style=\"height:100%\">\n @if (!field.autocompleteComponent) {\n <mat-list-option *cdkVirtualFor=\"let item of options; templateCacheSize: 0\" [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-list-option>\n } @else{\n <mat-list-option *cdkVirtualFor=\"let item of options; templateCacheSize: 0\" [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n }\n </cdk-virtual-scroll-viewport>\n } @else{ @if (!field.autocompleteComponent) { @for (item of options; track item) {\n <mat-list-option [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-list-option>\n } } @else { @for (item of options; track item) {\n <mat-list-option [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n } } } }@else{\n <mat-spinner></mat-spinner>\n }\n </mat-selection-list>\n </div>\n `,\n styles: [\n `\n mat-selection-list {\n width: 100%;\n height: 250px;\n overflow: auto;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, KlesTransformPipe, MatProgressSpinnerModule, KlesComponentDirective, MatListModule, ScrollingModule, ReactiveFormsModule],\n})\nexport class KlesFormSelectionListComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n selection: KlesSelectionModel<any>;\n options$: Observable<any[]>;\n\n ngOnInit() {\n super.ngOnInit();\n\n this.selection = new KlesSelectionModel<any>(this.field.multiple || false, [], true, (o1: any, o2: any) => {\n if (this.field.property) {\n return o1?.[this.field.property] === o2?.[this.field.property];\n } else {\n return o1 === o2;\n }\n });\n\n if (this.field.value) {\n this.selection.select(Array.isArray(this.field.value) ? this.field.value : [this.field.value]);\n }\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options;\n } else if (this.field.options instanceof Function) {\n this.options$ = this.field.options();\n } else {\n this.options$ = of(this.field.options);\n }\n\n this.group.controls[this.field.name].valueChanges.pipe(takeUntil(this._onDestroy)).subscribe((value) => {\n this.selection.setSelection(Array.isArray(value) ? value : [value], { emitEvent: false });\n });\n\n this.selection.changed.pipe(takeUntil(this._onDestroy)).subscribe((change) => {\n this.group.controls[this.field.name].patchValue(change.source.selected);\n this.group.controls[this.field.name].markAllAsTouched();\n this.group.controls[this.field.name].markAsDirty();\n });\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n onSelectionChange(selection: MatSelectionListChange) {\n selection.options.forEach((option) => {\n option.selected ? this.selection.select([option.value]) : this.selection.deselect([option.value]);\n });\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';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatBadgeModule } from '@angular/material/badge';\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 standalone: true,\n \n imports: [CommonModule, MatTooltipModule, MatBadgeModule],\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';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\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\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\">\n @for (item of options$ | async; track item) {\n <mat-button-toggle [value]=\"item\">\n {{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}\n </mat-button-toggle>\n }\n </mat-button-toggle-group>\n </div>\n`,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, KlesTransformPipe, MatButtonToggleModule],\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 { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ReactiveFormsModule, 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';\nimport { CommonModule } from '@angular/common';\nimport { KlesDynamicFieldDirective } from '../directive/dynamic-field.directive';\n\n@FieldMapper({ type: EnumType.array, factory: (field) => (new KlesFormArray(field).create()) })\n@Component({\n selector: 'kles-array',\n template: `\n <div [formGroup]=\"group\" class=\"container\" [ngClass]=\"{'container-column': field.direction ==='column'}\">\n <ng-container [formArrayName]=\"field.name\">\n @for (subGroup of formArray.controls; track subGroup.value._id) {\n <div class=\"group-container\" [ngClass]=\"field.direction === 'column' ? 'column': 'row'\">\n @for (subfield of field.collections; track subfield.name) {\n @if (subfield.visible !== false) {\n <ng-container klesDynamicField [field]=\"subfield\" [group]=\"subGroup\" [siblingFields]=\"field.collections\">\n </ng-container>\n }\n }\n </div>\n }\n </ng-container>\n </div>\n`,\n styles: ['mat-form-field {width: calc(100%)}',\n ':host { display:flex; flex-direction: inherit}',\n '.container { display: flex; flex-direction: inherit}',\n '.container-column {gap: 10px}',\n '.group-container {display:flex; flex-direction: inherit}',\n '.row { gap: 10px; flex-direction: row; align-items: baseline }',\n '.column { flex-direction: column; gap: 0px}'\n ],\n standalone: true,\n imports: [CommonModule, KlesDynamicFieldDirective, ReactiveFormsModule],\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, { nonNullable: this.field.nonNullable && this.field.value?.start || false }),\n end: new FormControl(this.field.value?.end, { nonNullable: this.field.nonNullable && this.field.value?.end || false }),\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';\nimport { CommonModule } from '@angular/common';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ReactiveFormsModule } from '@angular/forms';\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 [subscriptSizing]=\"field.subscriptSizing\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\">\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\" [min]=\"field.min\" [max]=\"field.max\">\n <input matStartDate formControlName=\"start\" [placeholder]=\"(field.placeholder?.start ? field.placeholder?.start : '')\" />\n <input matEndDate formControlName=\"end\" [placeholder]=\"(field.placeholder?.end ? field.placeholder?.end : '')\" />\n </mat-date-range-input>\n\n <div matSuffix class=\"suffix\">\n <mat-datepicker-toggle [for]=\"picker\"></mat-datepicker-toggle>\n <ng-content></ng-content>\n </div>\n\n <mat-date-range-picker #picker></mat-date-range-picker>\n @if (field.hint) {\n <mat-hint>{{ field.hint }}</mat-hint>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n styleUrls: ['../styles/mat-suffix.style.scss'],\n standalone: true,\n imports: [CommonModule, MatErrorMessageDirective, MatFormFieldModule, MatInputModule, MatDatepickerModule, MatTooltipModule, ReactiveFormsModule],\n})\nexport class KlesFormRangeComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n // range = new FormGroup({\n // start: new FormControl<Date | null>(null),\n // end: new FormControl<Date | null>(null),\n // });\n\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map, switchMap, take, takeUntil } from 'rxjs/operators';\nimport { KlesFormSelectSearchComponent } from './select.search.component';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { MatErrorMessageDirective } from '../directive/mat-error-message.directive';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { KlesDynamicFormIntl } from '../dynamic-form-intl';\n\n@Component({\n selector: 'kles-form-select-lazy-search',\n template: `\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" class=\"margin-top\" [color]=\"field.color\" [formGroup]=\"group\" [appearance]=\"field.appearance\" class=\"field-bottom\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n\n <mat-select\n matTooltip=\"{{ field.tooltip }}\"\n [attr.id]=\"field.id\"\n [ngClass]=\"field.ngClass\"\n (openedChange)=\"openChange($event)\"\n [compareWith]=\"compareFn\"\n [panelWidth]=\"field.panelWidth || 'auto'\"\n [placeholder]=\"field.placeholder\"\n [formControlName]=\"field.name\"\n [multiple]=\"field.multiple\"\n >\n @if (field.triggerComponent) {\n <mat-select-trigger>\n <ng-container klesComponent [component]=\"field.triggerComponent\" [value]=\"group.controls[field.name].value\" [field]=\"field\"></ng-container>\n </mat-select-trigger>\n } @if (field.virtualScroll) {\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" [clearSearchInput]=\"false\" 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 @if (!isLoading()) { @if (field.multiple) {\n <mat-checkbox class=\"selectAll mat-mdc-option mdc-list-item\" [formControl]=\"selectAllControl\" (change)=\"toggleAllSelection($event)\">\n {{ intl.selectAll }}\n </mat-checkbox>\n } @if (!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 @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-option>\n } } } @else {\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 @if (field.multiple) { @for (item of group.controls[field.name].value | slice:0:30; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } @if (!field.multiple && group.controls[field.name].value) { @for (item of [group?.controls[field.name]?.value]; track item) {\n <mat-option [value]=\"item\" style=\"display:none\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n }\n </cdk-virtual-scroll-viewport>\n } @else {\n <mat-option>\n <ngx-mat-select-search [formControl]=\"searchControl\" [clearSearchInput]=\"false\" placeholderLabel=\"\" noEntriesFoundLabel=\"\"></ngx-mat-select-search>\n </mat-option>\n\n @if (!isLoading()) { @if (field.multiple) {\n <mat-checkbox class=\"selectAll mat-mdc-option mdc-list-item\" [formControl]=\"selectAllControl\" (change)=\"toggleAllSelection($event)\">\n {{ intl.selectAll }}\n </mat-checkbox>\n } @if (!field.autocompleteComponent) { @for (item of optionsFiltered$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">{{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}</mat-option>\n } } @else { @for (item of optionsFiltered$ | async; track item) {\n <mat-option [value]=\"item\" [disabled]=\"item?.disabled\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-option>\n } } } @else {\n <mat-option class=\"hide-checkbox\" disabled\n ><div class=\"loadingSelect\">{{ intl.loading }}... <mat-spinner class=\"spinner\" diameter=\"20\"></mat-spinner></div\n ></mat-option>\n } }\n </mat-select>\n\n @if (field.subComponents || field.clearable) {\n <div matSuffix>\n <ng-content></ng-content>\n </div>\n }\n\n <mat-error matErrorMessage [validations]=\"field.validations\" [asyncValidations]=\"field.asyncValidations\"></mat-error>\n </mat-form-field>\n `,\n styles: [\n 'mat-form-field {width: calc(100%)}',\n '.selectAll {padding: 0 16px 0 5px; display: flex !important;}',\n '.selectAll .mdc-form-field {width: 100%;}',\n '.selectAll .mdc-form-field .mdc-label {width: 100%; min-height: 48px; align-items: center; display: flex;}',\n '.selectAll .mdc-form-field .mdc-checkbox__ripple {display: none !important;}',\n `\n ::ng-deep .hide-checkbox .mat-pseudo-checkbox {\n display: none !important;\n }\n `,\n ],\n styleUrls: ['../styles/loading-select.style.scss', '../styles/mat-field-bottom.style.scss'],\n standalone: true,\n imports: [CommonModule, KlesTransformPipe, MatErrorMessageDirective, MatProgressSpinnerModule, MatSelectModule, KlesComponentDirective, ReactiveFormsModule, NgxMatSelectSearchModule, ScrollingModule, MatTooltipModule],\n})\nexport class KlesFormSelectLazySearchComponent extends KlesFormSelectSearchComponent implements OnInit, OnDestroy {\n constructor(protected viewRef: ViewContainerRef, protected ref: ChangeDetectorRef, public intl: KlesDynamicFormIntl) {\n super(viewRef, ref, intl);\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 } 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.set(false);\n this.ref.markForCheck();\n });\n }\n}\n","import { Component, Input, OnInit, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KlesButtonBase } from './button-control-base';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n\n@Component({\n selector: 'kles-fab',\n template: `\n <button mat-fab [extended]=\"!!label\" [type]=\"type\" [ngClass]=\"classButton\" [color]=\"(color)?color:'primary'\" [disabled]=\"disabled\"\n (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n {{label}}\n\n @if (icon) {\n <mat-icon>{{icon}}</mat-icon>\n }\n\n @if (iconSvg) {\n <mat-icon svgIcon=\"{{iconSvg}}\"></mat-icon>\n }\n </button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesFabComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [CommonModule, MatIconModule, MatTooltipModule, MatButtonModule]\n})\nexport class KlesFabComponent extends KlesButtonBase implements OnInit {\n\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { KlesFabComponent } from '../forms/fab-control.component';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'kles-form-fab',\n template: `\n <div [formGroup]=\"group\">\n <kles-fab\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-fab>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, MatIconModule, MatTooltipModule, MatButtonModule, KlesFabComponent, ReactiveFormsModule]\n})\nexport class KlesFormFabComponent 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 { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KlesButtonBase } from './button-control-base';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\n\n\n\n@Component({\n selector: 'kles-mini-fab',\n template: `\n <button mat-mini-fab extended [type]=\"type\" [ngClass]=\"classButton\" [color]=\"(color)?color:'primary'\" [disabled]=\"disabled\"\n (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n {{label}}\n\n @if (icon) {\n <mat-icon>{{icon}}</mat-icon>\n }\n\n @if (iconSvg) {\n <mat-icon svgIcon=\"{{iconSvg}}\"></mat-icon>\n }\n </button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesMiniFabComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [CommonModule, MatIconModule, MatTooltipModule, MatButtonModule]\n})\nexport class KlesMiniFabComponent extends KlesButtonBase implements OnInit {\n\n}","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { KlesMiniFabComponent } from '../forms/mini-fab-control.component';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'kles-form-mini-fab',\n template: `\n <div [formGroup]=\"group\">\n <kles-mini-fab\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-mini-fab>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [KlesMiniFabComponent, CommonModule, ReactiveFormsModule]\n})\nexport class KlesFormMiniFabComponent 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 { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KlesButtonBase } from './button-control-base';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@Component({\n selector: 'kles-icon-button',\n template: `\n <button mat-icon-button [type]=\"type\" [ngClass]=\"classButton\" [color]=\"color ? color : 'primary'\" [disabled]=\"disabled\" (click)=\"click($event)\" [matTooltip]=\"tooltip\">\n @if (icon) {\n <mat-icon>{{ icon }}</mat-icon>\n } @if (iconSvg) {\n <mat-icon svgIcon=\"{{ iconSvg }}\"></mat-icon>\n }\n </button>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesIconButtonComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, MatTooltipModule],\n})\nexport class KlesIconButtonComponent extends KlesButtonBase implements OnInit {}\n","import { OnInit, Component, OnDestroy } from '@angular/core';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { KlesIconButtonComponent } from '../forms/icon-button-control.component';\n\n@Component({\n selector: 'kles-form-icon-button',\n template: `\n <div [formGroup]=\"group\">\n <kles-icon-button\n [attr.id]=\"field.id\" [classButton]=\"field.ngClass\" \n [name]=\"field.name\" [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-icon-button>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, KlesIconButtonComponent],\n})\nexport class KlesFormIconButtonComponent 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 { MatListModule, MatSelectionListChange } from '@angular/material/list';\nimport { Observable, of } from 'rxjs';\nimport { KlesFieldAbstract } from './field.abstract';\nimport { debounceTime, distinctUntilChanged, map, shareReplay, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { KlesSelectionModel } from '../selection/selection-model';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { CommonModule } from '@angular/common';\nimport { KlesTransformPipe } from '../pipe/transform.pipe';\nimport { KlesComponentDirective } from '../directive/dynamic-component.directive';\nimport { MatOption } from '@angular/material/core';\n@Component({\n selector: 'kles-form-selection-list-search',\n template: `\n <div class=\"selection-list\" [formGroup]=\"group\">\n <mat-form-field [subscriptSizing]=\"field.subscriptSizing\" [appearance]=\"field.appearance\">\n @if (field.label) {\n <mat-label>{{ field.label }}</mat-label>\n }\n <input matInput [placeholder]=\"field.placeholder\" [formControl]=\"searchControl\" />\n <button matSuffix mat-icon-button aria-label=\"Clear\" (click)=\"searchControl.reset(); $event.stopPropagation()\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n\n <mat-selection-list [attr.id]=\"field.id\" [multiple]=\"field.multiple\" [ngClass]=\"field.ngClass\" (selectionChange)=\"onSelectionChange($event)\">\n @if(optionFiltered$ | async; as options){ @if(field.virtualScroll){\n <cdk-virtual-scroll-viewport [itemSize]=\"field.itemSize || 20\" style=\"height:100%\">\n @if (!field.autocompleteComponent) {\n <mat-list-option *cdkVirtualFor=\"let item of options; templateCacheSize: 0\" [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-list-option>\n } @else{\n <mat-list-option *cdkVirtualFor=\"let item of options; templateCacheSize: 0\" [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n }\n </cdk-virtual-scroll-viewport>\n } @else{ @if (!field.autocompleteComponent) { @for (item of options; track item) {\n <mat-list-option [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n {{ (field.property ? item[field.property] : item) | klesTransform : field.pipeTransform }}\n </mat-list-option>\n } } @else { @for (item of options; track item) {\n <mat-list-option [value]=\"item\" [selected]=\"selection.isSelected(item)\">\n <ng-container klesComponent [component]=\"field.autocompleteComponent\" [value]=\"item\" [field]=\"field\"></ng-container>\n </mat-list-option>\n } } } }@else{\n <mat-spinner></mat-spinner>\n }\n </mat-selection-list>\n </div>\n `,\n styles: [\n `\n .selection-list {\n display: flex;\n flex-direction: column;\n gap: 5px;\n }\n `,\n `\n mat-selection-list {\n width: 100%;\n height: 250px;\n overflow: auto;\n flex-grow: 1;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatIconModule, MatButtonModule, MatProgressSpinnerModule, ScrollingModule, KlesTransformPipe, KlesComponentDirective, MatListModule],\n})\nexport class KlesFormSelectionListSearchComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n selection: KlesSelectionModel<any>;\n options$: Observable<any[]>;\n searchControl = new FormControl();\n\n optionFiltered$: Observable<any[]>;\n\n ngOnInit() {\n if (!this.field.subscriptSizing) {\n this.field.subscriptSizing = 'dynamic';\n }\n super.ngOnInit();\n\n this.selection = new KlesSelectionModel<any>(this.field.multiple || false, [], true, (o1: any, o2: any) => {\n if (this.field.property) {\n return o1?.[this.field.property] === o2?.[this.field.property];\n } else {\n return o1 === o2;\n }\n });\n\n if (this.field.value) {\n this.selection.select(Array.isArray(this.field.value) ? this.field.value : [this.field.value]);\n }\n\n if (this.field.options instanceof Observable) {\n this.options$ = this.field.options.pipe(shareReplay(1));\n }\n\n this.group.controls[this.field.name].valueChanges.pipe(takeUntil(this._onDestroy)).subscribe((value) => {\n this.selection.setSelection(Array.isArray(value) ? value : [value], { emitEvent: false });\n });\n\n this.selection.changed.pipe(takeUntil(this._onDestroy)).subscribe((change) => {\n this.group.controls[this.field.name].patchValue(change.source.selected);\n this.group.controls[this.field.name].markAllAsTouched();\n this.group.controls[this.field.name].markAsDirty();\n });\n\n this.optionFiltered$ = this.searchControl.valueChanges.pipe(\n takeUntil(this._onDestroy),\n startWith(null as string),\n debounceTime(this.field.debounceTime || 0),\n distinctUntilChanged(),\n map((value) => value?.toLowerCase()),\n switchMap((value) => {\n if (this.field.options instanceof Function) {\n return this.field.options(value);\n } else {\n return (this.field.options instanceof Observable ? this.options$ : of(this.field.options)).pipe(\n map((options) => {\n if (!value) {\n return options;\n }\n return options.filter((option) => {\n return (\n (!this.field.property && option?.toString().toLowerCase().includes(value)) ||\n (this.field.property && option?.[this.field.property]?.toString().toLowerCase().includes(value)) ||\n (this.field.searchKeys && this.field.searchKeys.some((key) => option?.[key].toString().toLowerCase().includes(value)))\n );\n });\n }),\n );\n }\n }),\n );\n }\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n\n onSelectionChange(selection: MatSelectionListChange) {\n selection.options.forEach((option) => {\n option.selected ? this.selection.select([option.value]) : this.selection.deselect([option.value]);\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input, AfterViewInit, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckbox, MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n selector: 'kles-checkbox-indeterminate',\n template: `\n <mat-checkbox\n #checkbox\n [indeterminate]=\"isIndeterminate\"\n (change)=\"onCheckboxChange($event)\"\n (color)=\"color\"\n (blur)=\"onTouched()\">\n {{label}}\n </mat-checkbox>\n `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesIndeterminateCheckboxComponent),\n multi: true\n }\n ],\n standalone: true,\n imports: [CommonModule, MatCheckboxModule, ReactiveFormsModule, FormsModule],\n})\nexport class KlesIndeterminateCheckboxComponent implements ControlValueAccessor, AfterViewInit {\n @Input() label: string;\n @Input() color: string;\n @ViewChild('checkbox') checkbox: MatCheckbox;\n\n isIndeterminate = false;\n private innerValue: boolean;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n ngAfterViewInit(): void {\n // Initial update to ensure state is correct after view init\n this.updateCheckbox(this.innerValue);\n }\n\n writeValue(value: any): void {\n this.innerValue = value;\n this.updateCheckbox(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 if (this.checkbox) {\n this.checkbox.disabled = isDisabled;\n }\n }\n\n onCheckboxChange(event: any): void {\n const checked = event.checked;\n this.onChange(checked);\n this.isIndeterminate = false;\n }\n\n private updateCheckbox(value: any): void {\n if (this.checkbox) {\n if (value === -1) {\n this.isIndeterminate = true;\n this.checkbox.checked = false;\n } else {\n this.isIndeterminate = false;\n this.checkbox.checked = value;\n }\n }\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';\nimport { KlesIndeterminateCheckboxComponent } from '../forms/indeterminate-checkbox';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@FieldMapper({ type: EnumType.checkbox })\n@Component({\n selector: 'kles-form-checkbox-indeterminate',\n template: `\n <div [formGroup]=\"group\">\n <kles-checkbox-indeterminate matTooltip=\"{{ field.tooltip }}\" [attr.id]=\"field.id\" [ngClass]=\"field.ngClass\" [color]=\"field.color\" [formControlName]=\"field.name\">{{\n field.label\n }}</kles-checkbox-indeterminate>\n </div>\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, KlesIndeterminateCheckboxComponent, MatTooltipModule],\n})\nexport class KlesFormCheckboxIndeterminateComponent extends KlesFieldAbstract implements OnInit, OnDestroy {\n ngOnInit() {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n }\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { MatTooltip, MatTooltipModule } from '@angular/material/tooltip';\nimport { Clipboard, ClipboardModule } from '@angular/cdk/clipboard';\nimport { IKlesFieldConfig } from '../interfaces/field.config.interface';\nimport { IKlesField } from '../interfaces/field.interface';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'kles-form-copy',\n template: `\n <button #tooltip=\"matTooltip\" mat-icon-button color=\"primary\" type=\"button\" (click)=\"copy($event)\" [matTooltipDisabled]=\"true\" [matTooltip]=\"tooltipText\" matTooltipPosition=\"above\">\n <mat-icon>content_copy</mat-icon>\n </button>\n `,\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, MatTooltipModule, ClipboardModule],\n})\nexport class KlesFormCopyComponent implements OnInit, IKlesField {\n @ViewChild('tooltip') tooltip: MatTooltip;\n\n @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() siblingFields: IKlesFieldConfig[];\n\n tooltipText: string;\n\n constructor(private clipBoard: Clipboard) {}\n\n ngOnInit(): void {\n this.tooltipText = this.field.copyTooltip || '';\n }\n\n copy(event): void {\n event.stopPropagation();\n const copyText = (this.field.property ? this.group.controls[this.field.name].value?.[this.field.property] : this.group.controls[this.field.name].value) || '';\n this.clipBoard.copy(copyText);\n\n this.tooltip.disabled = false;\n this.tooltip.show();\n setTimeout(() => {\n this.tooltip.disabled = true;\n }, 200);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'kles-file-control',\n template: ` <input [accept]=\"accept\" [multiple]=\"multiple\" (change)=\"onFileSelected($event.target)\" type=\"file\" /> `,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => KlesFileControlComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule, FormsModule],\n})\nexport class KlesFileControlComponent implements ControlValueAccessor {\n @Input() disabled = false;\n @Input() accept = '*.*';\n @Input() multiple = false;\n\n value: { name: string; content: ArrayBuffer }[];\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n writeValue(obj: any): void {}\n\n async onFileSelected(input: HTMLInputElement): Promise<void> {\n if (input.files.length > 0) {\n const file: FileList = input.files;\n let files = [];\n\n for (let i = 0; i < file.length; i++) {\n const currentFile: File = file.item(i);\n\n files[i] = { name: currentFile.name, content: await currentFile.arrayBuffer() };\n }\n\n this.value = files;\n this.onChange(this.value);\n } else {\n this.value = null;\n this.onChange(this.value);\n }\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}\n","import { KlesFieldAbstract } from './field.abstract';\nimport { Component } from '@angular/core';\nimport { EnumType } from '../enums/type.enum';\nimport { FieldMapper } from '../decorators/component.decorator';\nimport { KlesFileControlComponent } from '../forms/file-control.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@FieldMapper({ type: EnumType.file })\n@Component({\n selector: 'kles-form-file',\n template: `\n <div [formGroup]=\"group\">\n <kles-file-control [attr.id]=\"field.id\" [formControlName]=\"field.name\" [accept]=\"field.accept\" [disabled]=\"field.disabled\" [multiple]=\"field.multiple\"></kles-file-control>\n </div>\n `,\n styles: ['mat-form-field {width: calc(100%)}'],\n standalone: true,\n imports: [KlesFileControlComponent, FormsModule, ReactiveFormsModule],\n})\nexport class KlesFormFileComponent extends KlesFieldAbstract {}\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 { KlesFormLabelComponent } from './fields/label.component';\nimport { KlesFormInputComponent } from './fields/input.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/subfields/clear.component';\nimport { KlesFormSelectLazySearchComponent } from './fields/select.lazy-search.component';\nimport { KlesFormFabComponent } from './fields/button-fab.component';\nimport { KlesFabComponent } from './forms/fab-control.component';\nimport { KlesMiniFabComponent } from './forms/mini-fab-control.component';\nimport { KlesFormMiniFabComponent } from './fields/button-mini-fab.component';\nimport { KlesIconButtonComponent } from './forms/icon-button-control.component';\nimport { KlesFormIconButtonComponent } from './fields/button-icon.component';\nimport { KlesFormSelectionListSearchComponent } from './fields/selection-list.search.component';\nimport { MatErrorMessageDirective } from './directive/mat-error-message.directive';\nimport { MatErrorFormDirective } from './directive/mat-error-form.directive';\nimport { KlesFormCheckboxIndeterminateComponent } from './fields/checkbox-indeterminate.component';\nimport { KlesIndeterminateCheckboxComponent } from './forms/indeterminate-checkbox';\nimport { KlesFormCopyComponent } from './fields/copy.component';\nimport { KlesFormFileComponent } from './fields/file.component';\nimport { KlesFileControlComponent } from './forms/file-control.component';\nimport { ColorPickerComponent, ColorPickerDirective } from 'ngx-color-picker';\n\nconst components = [\n KlesDynamicFormComponent,\n KlesFormLabelComponent,\n KlesFormInputComponent,\n KlesFormInputClearableComponent,\n KlesFormBadgeComponent,\n KlesFormFileComponent,\n KlesFileControlComponent,\n KlesButtonComponent,\n KlesFormButtonComponent,\n KlesButtonCheckerComponent,\n KlesFormButtonCheckerComponent,\n KlesButtonFileComponent,\n KlesFormButtonFileComponent,\n KlesFormSelectComponent,\n KlesFormDateComponent,\n KlesFormRadioComponent,\n KlesFormCheckboxComponent,\n KlesIndeterminateCheckboxComponent,\n KlesFormCheckboxIndeterminateComponent,\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 KlesFormFabComponent,\n KlesFabComponent,\n KlesMiniFabComponent,\n KlesFormMiniFabComponent,\n KlesIconButtonComponent,\n KlesFormIconButtonComponent,\n KlesFormSelectionListSearchComponent,\n KlesFormCopyComponent,\n];\n\nconst colorPicker = [ColorPickerComponent, ColorPickerDirective];\n\nconst directives = [KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective];\nconst pipes = [KlesTransformPipe, ArrayFormatPipe];\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, FormsModule, MaterialModule, NgxMatSelectSearchModule, components, directives, pipes, colorPicker],\n providers: [\n { provide: ErrorStateMatcher, useClass: KlesFormErrorStateMatcher },\n pipes,\n ],\n exports: [components, pipes, directives],\n schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA],\n})\nexport class KlesMaterialDynamicformsModule {\n static declarations = [components, directives, pipes];\n}\n","import { Component, Input } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { IKlesFieldConfig } from '../../interfaces/field.config.interface';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\nimport { IKlesField } from '../../interfaces/field.interface';\n\n@Component({\n selector: 'kles-form-password-visibility',\n template: `\n <button [disabled]=\"group?.get(field?.name).disabled\" mat-icon-button aria-label=\"visibility\" type=\"button\" (click)=\"toggleVisibility($event)\">\n <mat-icon>{{ hide ? 'visibility_off' : 'visibility' }}</mat-icon>\n </button>\n `,\n standalone: true,\n imports: [CommonModule, MatIcon, MatIconButton],\n})\nexport class KlesFormPasswordVisibilityComponent implements IKlesField {\n @Input() field: IKlesFieldConfig;\n @Input() group: UntypedFormGroup;\n @Input() siblingFields: IKlesFieldConfig[];\n\n hide = true;\n\n toggleVisibility(event): void {\n event.stopPropagation();\n this.hide = !this.hide;\n this.field.inputType = this.hide ? 'password' : 'text';\n }\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';\nexport * from './lib/directive/mat-error-message.directive';\nexport * from './lib/directive/mat-error-form.directive';\n\n/*FORMS*/\nexport * from './lib/forms/button-control-base';\nexport * from './lib/forms/button-control.component';\nexport * from './lib/forms/buttonchecker-control.component';\nexport * from './lib/forms/buttonfile-control.component';\nexport * from './lib/forms/file-control.component';\nexport * from './lib/forms/fab-control.component';\nexport * from './lib/forms/mini-fab-control.component';\nexport * from './lib/forms/icon-button-control.component';\nexport * from './lib/forms/indeterminate-checkbox';\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/checkbox.component';\nexport * from './lib/fields/checkbox-indeterminate.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/file.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/subfields/clear.component';\nexport * from './lib/fields/select.lazy-search.component';\nexport * from './lib/fields/button-fab.component';\nexport * from './lib/fields/button-mini-fab.component';\nexport * from './lib/fields/button-icon.component';\nexport * from './lib/fields/selection-list.search.component';\nexport * from './lib/fields/copy.component';\nexport * from './lib/fields/subfields/password-visibility.component';\n\n\n/**ENUMS */\nexport * from './lib/enums/type.enum';\nexport * from './lib/enums/button-attribute.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';\nexport * from './lib/controls/control.abstract';\n\n/**SELECTION */\nexport * from './lib/selection/selection-model';\n\n/**UTILS */\nexport * from './lib/utils/destroyable.guard';\n\n/**INTL */\nexport * from './lib/dynamic-form-intl';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.KlesDynamicFormIntl","i3","i7","i8","i10","i5","uuidv4","i4","MatLabel","MatFormField","MatOption","i6","i9"],"mappings":"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"}