@3kles/kles-material-dynamicforms 21.0.2 → 21.2.0

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,44 +1,45 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, InjectionToken, inject, Component, Injector, Input, Directive, Injectable, EventEmitter, Output, NgModule, computed, ViewContainerRef, HostBinding, Pipe, ChangeDetectorRef, ViewChildren, ViewChild, forwardRef, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
2
+ import { signal, InjectionToken, inject, Component, Injector, Input, Directive, Injectable, EventEmitter, Output, NgModule, computed, ViewContainerRef, HostBinding, Pipe, ChangeDetectorRef, ViewChildren, ViewChild, forwardRef, ChangeDetectionStrategy, ElementRef, Renderer2, HostListener, LOCALE_ID, DEFAULT_CURRENCY_CODE, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i2 from '@angular/forms';
6
6
  import { Validators, FormControl, ReactiveFormsModule, FormsModule, FormControlDirective, FormControlName, FormArray, FormGroup, UntypedFormBuilder, NG_VALUE_ACCESSOR, UntypedFormGroup, UntypedFormControl } from '@angular/forms';
7
- import { concat, of, Subject, combineLatest, startWith, map as map$1, takeUntil, Observable, BehaviorSubject, ReplaySubject } from 'rxjs';
7
+ import { concat, of, Subject, combineLatest, startWith, map as map$1, takeUntil, Observable, BehaviorSubject, ReplaySubject, defer } from 'rxjs';
8
8
  import { tap, take, catchError, map, takeUntil as takeUntil$1, distinctUntilChanged, filter, switchMap, startWith as startWith$1, debounceTime, shareReplay } from 'rxjs/operators';
9
9
  import * as i2$1 from '@angular/material/form-field';
10
10
  import { MatError, MatFormFieldModule, MatFormField, MatHint, MatLabel, MatSuffix } from '@angular/material/form-field';
11
11
  import { DateAdapter, MAT_DATE_LOCALE, MAT_DATE_FORMATS, ErrorStateMatcher, MatNativeDateModule, MatOptionModule, MatOption } from '@angular/material/core';
12
12
  import * as i2$2 from '@angular/material/icon';
13
13
  import { MatIcon, MatIconModule } from '@angular/material/icon';
14
- import * as i4$3 from '@angular/material/button';
14
+ import * as i4$4 from '@angular/material/button';
15
15
  import { MatIconButton, MatButtonModule, MatButton } from '@angular/material/button';
16
16
  import { toSignal } from '@angular/core/rxjs-interop';
17
17
  import { MatSliderModule } from '@angular/material/slider';
18
18
  import { MatToolbarModule } from '@angular/material/toolbar';
19
19
  import { MatSidenavModule } from '@angular/material/sidenav';
20
- import * as i3$5 from '@angular/material/badge';
20
+ import * as i3$4 from '@angular/material/badge';
21
21
  import { MatBadgeModule, MatBadge } from '@angular/material/badge';
22
- import * as i3$4 from '@angular/material/list';
22
+ import * as i3$3 from '@angular/material/list';
23
23
  import { MatListModule } from '@angular/material/list';
24
24
  import { MatGridListModule } from '@angular/material/grid-list';
25
- import * as i3$2 from '@angular/material/datepicker';
25
+ import * as i3$1 from '@angular/material/datepicker';
26
26
  import { MatDatepickerModule } from '@angular/material/datepicker';
27
- import * as i3 from '@angular/material/input';
27
+ import * as i4 from '@angular/material/input';
28
28
  import { MatInputModule, MatInput, MatLabel as MatLabel$1, MatFormField as MatFormField$1 } from '@angular/material/input';
29
- import * as i4 from '@angular/material/select';
29
+ import * as i4$1 from '@angular/material/select';
30
30
  import { MatSelectModule, MatSelectTrigger, MatSelect } from '@angular/material/select';
31
31
  import { MatRadioModule, MatRadioButton, MatRadioGroup } from '@angular/material/radio';
32
32
  import { MatChipsModule, MatChipOption, MatChipListbox } from '@angular/material/chips';
33
- import * as i4$1 from '@angular/material/tooltip';
33
+ import * as i4$2 from '@angular/material/tooltip';
34
34
  import { MatTooltipModule, MatTooltip } from '@angular/material/tooltip';
35
35
  import { MatTableModule } from '@angular/material/table';
36
36
  import { MatPaginatorModule } from '@angular/material/paginator';
37
37
  import { MatCardModule } from '@angular/material/card';
38
+ import * as i5$1 from '@angular/material/menu';
38
39
  import { MatMenuModule } from '@angular/material/menu';
39
40
  import { CdkTableModule } from '@angular/cdk/table';
40
41
  import { MatTabsModule } from '@angular/material/tabs';
41
- import * as i8 from '@angular/material/progress-spinner';
42
+ import * as i7 from '@angular/material/progress-spinner';
42
43
  import { MatProgressSpinnerModule, MatProgressSpinner } from '@angular/material/progress-spinner';
43
44
  import * as i1$1 from '@angular/material/checkbox';
44
45
  import { MatCheckboxModule, MatCheckbox } from '@angular/material/checkbox';
@@ -51,26 +52,25 @@ import { MatExpansionModule } from '@angular/material/expansion';
51
52
  import { MatSnackBarModule } from '@angular/material/snack-bar';
52
53
  import { MatTreeModule } from '@angular/material/tree';
53
54
  import { MatSlideToggleModule, MatSlideToggle } from '@angular/material/slide-toggle';
54
- import * as i3$1 from '@angular/cdk/scrolling';
55
+ import * as i3 from '@angular/cdk/scrolling';
55
56
  import { ScrollingModule, CdkScrollable, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
56
- import * as i3$6 from '@angular/material/button-toggle';
57
+ import * as i3$5 from '@angular/material/button-toggle';
57
58
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
58
59
  import { PortalModule } from '@angular/cdk/portal';
59
60
  import { __decorate } from 'tslib';
60
61
  import { v4 } from 'uuid';
61
62
  import { cloneDeep } from 'lodash';
62
63
  import { ColorPickerDirective, ColorPickerComponent } from 'ngx-color-picker';
63
- import * as i3$3 from '@angular/cdk/text-field';
64
+ import * as i3$2 from '@angular/cdk/text-field';
64
65
  import { TextFieldModule } from '@angular/cdk/text-field';
65
- import * as i4$2 from 'ngx-mat-select-search';
66
+ import * as i4$3 from 'ngx-mat-select-search';
66
67
  import { NgxMatSelectSearchModule } from 'ngx-mat-select-search';
67
68
  import { getMultipleValuesInSingleSelectionError } from '@angular/cdk/collections';
68
- import * as i5$1 from '@ngx-translate/core';
69
- import { TranslateModule } from '@ngx-translate/core';
70
- import * as i4$4 from '@3kles/kles-material-datepicker';
69
+ import * as i4$5 from '@3kles/kles-material-datepicker';
71
70
  import { KlesMaterialDatepickerModule } from '@3kles/kles-material-datepicker';
72
71
  import * as i1$2 from '@angular/cdk/clipboard';
73
72
  import { ClipboardModule } from '@angular/cdk/clipboard';
73
+ import { MatDividerModule } from '@angular/material/divider';
74
74
 
75
75
  class KlesAbstractFormControl {
76
76
  constructor(field, ref) {
@@ -217,6 +217,13 @@ class KlesFormUiControl extends KlesAbstractFormUiControl {
217
217
  icon: this.field.icon,
218
218
  iconSvg: this.field.iconSvg,
219
219
  appearance: this.field.appearance ?? 'fill',
220
+ buttonAppearance: this.field.buttonAppearance ?? 'text',
221
+ imageUrl: this.field.imageUrl,
222
+ imageAlt: this.field.imageAlt,
223
+ label: this.field.label,
224
+ hint: this.field.hint,
225
+ placeholder: this.field.placeholder,
226
+ tooltip: this.field.tooltip,
220
227
  });
221
228
  }
222
229
  }
@@ -261,6 +268,8 @@ var EnumType;
261
268
  EnumType["lineBreak"] = "lineBreak";
262
269
  EnumType["badge"] = "badge";
263
270
  EnumType["range"] = "range";
271
+ EnumType["currency"] = "currency";
272
+ EnumType["status"] = "status";
264
273
  })(EnumType || (EnumType = {}));
265
274
 
266
275
  const FIELD_NAME = new InjectionToken('FIELD_NAME');
@@ -268,6 +277,7 @@ const GROUP = new InjectionToken('GROUP');
268
277
  const SIBLING_FIELDS = new InjectionToken('SIBLING_FIELDS');
269
278
  const GROUP_UI = new InjectionToken('GROUP_UI');
270
279
  const FIELD = new InjectionToken('FIELD');
280
+ const FIELD_CONTEXT = new InjectionToken('FIELD_CONTEXT');
271
281
 
272
282
  class KlesFormClearComponent {
273
283
  constructor() {
@@ -308,7 +318,7 @@ class KlesFormClearComponent {
308
318
  }
309
319
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormClearComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
310
320
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormClearComponent, isStandalone: true, selector: "kles-form-clear", ngImport: i0, template: `
311
- <button [disabled]="disabled()" mat-icon-button aria-label="Clear" type="button" (click)="clear($event)">
321
+ <button [disabled]="disabled()" matIconButton aria-label="Clear" type="button" (click)="clear($event)">
312
322
  <mat-icon>close</mat-icon>
313
323
  </button>
314
324
  `, isInline: true, dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] }); }
@@ -318,7 +328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
318
328
  args: [{
319
329
  selector: 'kles-form-clear',
320
330
  template: `
321
- <button [disabled]="disabled()" mat-icon-button aria-label="Clear" type="button" (click)="clear($event)">
331
+ <button [disabled]="disabled()" matIconButton aria-label="Clear" type="button" (click)="clear($event)">
322
332
  <mat-icon>close</mat-icon>
323
333
  </button>
324
334
  `,
@@ -1139,18 +1149,27 @@ class KlesFieldAbstract {
1139
1149
  this.group = inject(GROUP);
1140
1150
  this.siblingFields = inject(SIBLING_FIELDS);
1141
1151
  this.ui = inject(GROUP_UI, { optional: true });
1142
- this.appearance = computed(() => this.ui?.get(this.field.name)?.value()?.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
1143
- this.inputType = computed(() => this.ui?.get(this.field.name)?.value()?.inputType, ...(ngDevMode ? [{ debugName: "inputType" }] : /* istanbul ignore next */ []));
1144
- this.min = computed(() => this.ui?.get(this.field.name)?.value()?.min, ...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
1145
- this.max = computed(() => this.ui?.get(this.field.name)?.value()?.max, ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
1146
- this.maxLength = computed(() => this.ui?.get(this.field.name)?.value()?.maxLength ?? 524288, ...(ngDevMode ? [{ debugName: "maxLength" }] : /* istanbul ignore next */ []));
1147
- this.step = computed(() => this.ui?.get(this.field.name)?.value()?.step, ...(ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []));
1148
- this.ngClass = computed(() => this.ui?.get(this.field.name)?.value()?.ngClass, ...(ngDevMode ? [{ debugName: "ngClass" }] : /* istanbul ignore next */ []));
1149
- this.ngStyle = computed(() => this.ui?.get(this.field.name)?.value()?.ngStyle, ...(ngDevMode ? [{ debugName: "ngStyle" }] : /* istanbul ignore next */ []));
1150
- this.indeterminate = computed(() => this.ui?.get(this.field.name)?.value()?.indeterminate ?? false, ...(ngDevMode ? [{ debugName: "indeterminate" }] : /* istanbul ignore next */ []));
1151
- this.color = computed(() => this.ui?.get(this.field.name)?.value()?.color, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
1152
- this.icon = computed(() => this.ui?.get(this.field.name)?.value()?.icon, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
1153
- this.iconSvg = computed(() => this.ui?.get(this.field.name)?.value()?.iconSvg, ...(ngDevMode ? [{ debugName: "iconSvg" }] : /* istanbul ignore next */ []));
1152
+ this.context = inject(FIELD_CONTEXT, { optional: true });
1153
+ this.fieldUi = computed(() => this.ui?.get(this.field.name)?.value(), ...(ngDevMode ? [{ debugName: "fieldUi" }] : /* istanbul ignore next */ []));
1154
+ this.appearance = computed(() => this.fieldUi()?.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
1155
+ this.inputType = computed(() => this.fieldUi()?.inputType, ...(ngDevMode ? [{ debugName: "inputType" }] : /* istanbul ignore next */ []));
1156
+ this.min = computed(() => this.fieldUi()?.min, ...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
1157
+ this.max = computed(() => this.fieldUi()?.max, ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
1158
+ this.maxLength = computed(() => this.fieldUi()?.maxLength ?? 524288, ...(ngDevMode ? [{ debugName: "maxLength" }] : /* istanbul ignore next */ []));
1159
+ this.step = computed(() => this.fieldUi()?.step, ...(ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []));
1160
+ this.ngClass = computed(() => this.fieldUi()?.ngClass, ...(ngDevMode ? [{ debugName: "ngClass" }] : /* istanbul ignore next */ []));
1161
+ this.ngStyle = computed(() => this.fieldUi()?.ngStyle, ...(ngDevMode ? [{ debugName: "ngStyle" }] : /* istanbul ignore next */ []));
1162
+ this.indeterminate = computed(() => this.fieldUi()?.indeterminate ?? false, ...(ngDevMode ? [{ debugName: "indeterminate" }] : /* istanbul ignore next */ []));
1163
+ this.color = computed(() => this.fieldUi()?.color, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
1164
+ this.icon = computed(() => this.fieldUi()?.icon, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
1165
+ this.iconSvg = computed(() => this.fieldUi()?.iconSvg, ...(ngDevMode ? [{ debugName: "iconSvg" }] : /* istanbul ignore next */ []));
1166
+ this.buttonAppearance = computed(() => this.fieldUi()?.buttonAppearance, ...(ngDevMode ? [{ debugName: "buttonAppearance" }] : /* istanbul ignore next */ []));
1167
+ this.label = computed(() => this.fieldUi()?.label ?? this.field.label, ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
1168
+ this.hint = computed(() => this.fieldUi()?.hint ?? this.field.hint, ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
1169
+ this.placeholder = computed(() => this.fieldUi()?.placeholder ?? this.field.placeholder, ...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
1170
+ this.tooltip = computed(() => this.fieldUi()?.tooltip ?? this.field.tooltip, ...(ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []));
1171
+ this.imageUrl = computed(() => this.fieldUi()?.imageUrl, ...(ngDevMode ? [{ debugName: "imageUrl" }] : /* istanbul ignore next */ []));
1172
+ this.imageAlt = computed(() => this.fieldUi()?.imageAlt ?? this.label(), ...(ngDevMode ? [{ debugName: "imageAlt" }] : /* istanbul ignore next */ []));
1154
1173
  this.viewRef = inject(ViewContainerRef);
1155
1174
  this._onDestroy = new Subject();
1156
1175
  if (this.field.directive) {
@@ -1220,6 +1239,17 @@ class KlesFieldAbstract {
1220
1239
  this.field.onBlur(this.field, this.group);
1221
1240
  }
1222
1241
  }
1242
+ triggerAction(actionId, originalEvent, value) {
1243
+ originalEvent.stopPropagation();
1244
+ this.field.onAction?.({
1245
+ actionId,
1246
+ value,
1247
+ context: this.context?.() ?? null,
1248
+ field: this.field,
1249
+ group: this.group,
1250
+ originalEvent,
1251
+ });
1252
+ }
1223
1253
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFieldAbstract, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
1224
1254
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.19", type: KlesFieldAbstract, isStandalone: true, host: { properties: { "attr.klesDirective": "this.directive" } }, ngImport: i0 }); }
1225
1255
  }
@@ -1244,9 +1274,9 @@ class KlesFormLabelComponent extends KlesFieldAbstract {
1244
1274
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1245
1275
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormLabelComponent, isStandalone: true, selector: "kles-form-label", usesInheritance: true, ngImport: i0, template: `
1246
1276
  <div [formGroup]="group">
1247
- <input matInput matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="{ color: 'inherit' }" [formControlName]="field.name" [placeholder]="field.placeholder" [type]="inputType()" />
1277
+ <input matInput [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="{ color: 'inherit' }" [formControlName]="field.name" [placeholder]="placeholder()" [type]="inputType()" />
1248
1278
  </div>
1249
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] }); }
1279
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] }); }
1250
1280
  }
1251
1281
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormLabelComponent, decorators: [{
1252
1282
  type: Component,
@@ -1254,7 +1284,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
1254
1284
  selector: 'kles-form-label',
1255
1285
  template: `
1256
1286
  <div [formGroup]="group">
1257
- <input matInput matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="{ color: 'inherit' }" [formControlName]="field.name" [placeholder]="field.placeholder" [type]="inputType()" />
1287
+ <input matInput [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="{ color: 'inherit' }" [formControlName]="field.name" [placeholder]="placeholder()" [type]="inputType()" />
1258
1288
  </div>
1259
1289
  `,
1260
1290
  standalone: true,
@@ -1354,7 +1384,7 @@ let KlesFormInputComponent = class KlesFormInputComponent extends KlesFieldAbstr
1354
1384
  obs$ = this.field.options();
1355
1385
  }
1356
1386
  else {
1357
- obs$ = of(this.field.options);
1387
+ obs$ = of(this.field.options ?? []);
1358
1388
  }
1359
1389
  return concat(of({ loading: true, options: [] }), obs$.pipe(map((options) => {
1360
1390
  return { loading: false, options };
@@ -1380,7 +1410,7 @@ let KlesFormInputComponent = class KlesFormInputComponent extends KlesFieldAbstr
1380
1410
  this.options$ = of({ loading: false, options: this.field.options });
1381
1411
  }
1382
1412
  }
1383
- this.filteredOption$ = concat(combineLatest([this.group.get(this.field.name).valueChanges.pipe(startWith$1('')), this.options$]).pipe(map(([data, response]) => {
1413
+ this.filteredOption$ = concat(combineLatest([this.group.get(this.field.name)?.valueChanges.pipe(startWith$1('')) ?? of(''), this.options$]).pipe(map(([data, response]) => {
1384
1414
  if (response.loading) {
1385
1415
  return response;
1386
1416
  }
@@ -1426,8 +1456,8 @@ let KlesFormInputComponent = class KlesFormInputComponent extends KlesFieldAbstr
1426
1456
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1427
1457
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormInputComponent, isStandalone: true, selector: "kles-form-input", usesInheritance: true, ngImport: i0, template: `
1428
1458
  <mat-form-field [formGroup]="group" [color]="color()" [subscriptSizing]="field.subscriptSizing" class="form-element" [appearance]="appearance()" class="field-bottom">
1429
- @if (field.label) {
1430
- <mat-label>{{ field.label }}</mat-label>
1459
+ @if (label()) {
1460
+ <mat-label>{{ label() }}</mat-label>
1431
1461
  }
1432
1462
  @if (icon()) {
1433
1463
  <mat-icon matPrefix>{{ icon() }}</mat-icon>
@@ -1436,11 +1466,11 @@ let KlesFormInputComponent = class KlesFormInputComponent extends KlesFieldAbstr
1436
1466
  @if (field.autocomplete) {
1437
1467
  <input
1438
1468
  matInput
1439
- matTooltip="{{ field.tooltip }}"
1469
+ [matTooltip]="tooltip()"
1440
1470
  [attr.id]="field.id"
1441
1471
  [ngClass]="ngClass()"
1442
1472
  [formControlName]="field.name"
1443
- [placeholder]="field.placeholder"
1473
+ [placeholder]="placeholder()"
1444
1474
  [type]="inputType()"
1445
1475
  [maxLength]="maxLength()"
1446
1476
  [min]="min()"
@@ -1480,11 +1510,11 @@ let KlesFormInputComponent = class KlesFormInputComponent extends KlesFieldAbstr
1480
1510
  } @else {
1481
1511
  <input
1482
1512
  matInput
1483
- matTooltip="{{ field.tooltip }}"
1513
+ [matTooltip]="tooltip()"
1484
1514
  [attr.id]="field.id"
1485
1515
  [ngClass]="ngClass()"
1486
1516
  [formControlName]="field.name"
1487
- [placeholder]="field.placeholder"
1517
+ [placeholder]="placeholder()"
1488
1518
  [type]="inputType()"
1489
1519
  [maxLength]="maxLength()"
1490
1520
  [min]="min()"
@@ -1494,8 +1524,8 @@ let KlesFormInputComponent = class KlesFormInputComponent extends KlesFieldAbstr
1494
1524
  (blur)="onBlur()"
1495
1525
  />
1496
1526
  }
1497
- @if (field.hint) {
1498
- <mat-hint>{{ field.hint }}</mat-hint>
1527
+ @if (hint()) {
1528
+ <mat-hint>{{ hint() }}</mat-hint>
1499
1529
  }
1500
1530
  @if (field.subComponents || field.clearable || isPending()) {
1501
1531
  <div matSuffix class="suffix">
@@ -1510,7 +1540,7 @@ let KlesFormInputComponent = class KlesFormInputComponent extends KlesFieldAbstr
1510
1540
 
1511
1541
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
1512
1542
  </mat-form-field>
1513
- `, isInline: true, styles: [".suffix{display:flex;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", ".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", "mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
1543
+ `, isInline: true, styles: [".suffix{display:flex;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", ".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", "mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
1514
1544
  };
1515
1545
  KlesFormInputComponent = __decorate([
1516
1546
  FieldMapper({ type: EnumType.input })
@@ -1519,8 +1549,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
1519
1549
  type: Component,
1520
1550
  args: [{ selector: 'kles-form-input', template: `
1521
1551
  <mat-form-field [formGroup]="group" [color]="color()" [subscriptSizing]="field.subscriptSizing" class="form-element" [appearance]="appearance()" class="field-bottom">
1522
- @if (field.label) {
1523
- <mat-label>{{ field.label }}</mat-label>
1552
+ @if (label()) {
1553
+ <mat-label>{{ label() }}</mat-label>
1524
1554
  }
1525
1555
  @if (icon()) {
1526
1556
  <mat-icon matPrefix>{{ icon() }}</mat-icon>
@@ -1529,11 +1559,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
1529
1559
  @if (field.autocomplete) {
1530
1560
  <input
1531
1561
  matInput
1532
- matTooltip="{{ field.tooltip }}"
1562
+ [matTooltip]="tooltip()"
1533
1563
  [attr.id]="field.id"
1534
1564
  [ngClass]="ngClass()"
1535
1565
  [formControlName]="field.name"
1536
- [placeholder]="field.placeholder"
1566
+ [placeholder]="placeholder()"
1537
1567
  [type]="inputType()"
1538
1568
  [maxLength]="maxLength()"
1539
1569
  [min]="min()"
@@ -1573,11 +1603,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
1573
1603
  } @else {
1574
1604
  <input
1575
1605
  matInput
1576
- matTooltip="{{ field.tooltip }}"
1606
+ [matTooltip]="tooltip()"
1577
1607
  [attr.id]="field.id"
1578
1608
  [ngClass]="ngClass()"
1579
1609
  [formControlName]="field.name"
1580
- [placeholder]="field.placeholder"
1610
+ [placeholder]="placeholder()"
1581
1611
  [type]="inputType()"
1582
1612
  [maxLength]="maxLength()"
1583
1613
  [min]="min()"
@@ -1587,8 +1617,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
1587
1617
  (blur)="onBlur()"
1588
1618
  />
1589
1619
  }
1590
- @if (field.hint) {
1591
- <mat-hint>{{ field.hint }}</mat-hint>
1620
+ @if (hint()) {
1621
+ <mat-hint>{{ hint() }}</mat-hint>
1592
1622
  }
1593
1623
  @if (field.subComponents || field.clearable || isPending()) {
1594
1624
  <div matSuffix class="suffix">
@@ -1736,17 +1766,17 @@ let KlesFormSelectComponent = class KlesFormSelectComponent extends KlesFieldAbs
1736
1766
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1737
1767
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormSelectComponent, isStandalone: true, selector: "kles-form-select", viewQueries: [{ propertyName: "cdkVirtualScrollViewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "options", predicate: MatOption, descendants: true }], usesInheritance: true, ngImport: i0, template: `
1738
1768
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
1739
- @if (field.label) {
1740
- <mat-label>{{ field.label }}</mat-label>
1769
+ @if (label()) {
1770
+ <mat-label>{{ label() }}</mat-label>
1741
1771
  }
1742
1772
  <mat-select
1743
- matTooltip="{{ field.tooltip }}"
1773
+ [matTooltip]="tooltip()"
1744
1774
  [attr.id]="field.id"
1745
1775
  (openedChange)="openChange($event)"
1746
1776
  [compareWith]="compareFn"
1747
1777
  [panelWidth]="field.panelWidth || 'auto'"
1748
1778
  [ngClass]="ngClass()"
1749
- [placeholder]="field.placeholder"
1779
+ [placeholder]="placeholder()"
1750
1780
  [formControlName]="field.name"
1751
1781
  [multiple]="field.multiple"
1752
1782
  (focus)="onFocus()"
@@ -1836,8 +1866,8 @@ let KlesFormSelectComponent = class KlesFormSelectComponent extends KlesFieldAbs
1836
1866
  }
1837
1867
  </mat-select>
1838
1868
 
1839
- @if (field.hint) {
1840
- <mat-hint>{{ field.hint }}</mat-hint>
1869
+ @if (hint()) {
1870
+ <mat-hint>{{ hint() }}</mat-hint>
1841
1871
  }
1842
1872
  @if (field.subComponents || field.clearable) {
1843
1873
  <div matSuffix>
@@ -1847,7 +1877,7 @@ let KlesFormSelectComponent = class KlesFormSelectComponent extends KlesFieldAbs
1847
1877
 
1848
1878
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
1849
1879
  </mat-form-field>
1850
- `, isInline: true, styles: [".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", "mat-form-field{width:100%}\n", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
1880
+ `, isInline: true, styles: [".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", "mat-form-field{width:100%}\n", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
1851
1881
  };
1852
1882
  KlesFormSelectComponent = __decorate([
1853
1883
  FieldMapper({ type: EnumType.select })
@@ -1856,17 +1886,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
1856
1886
  type: Component,
1857
1887
  args: [{ selector: 'kles-form-select', template: `
1858
1888
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
1859
- @if (field.label) {
1860
- <mat-label>{{ field.label }}</mat-label>
1889
+ @if (label()) {
1890
+ <mat-label>{{ label() }}</mat-label>
1861
1891
  }
1862
1892
  <mat-select
1863
- matTooltip="{{ field.tooltip }}"
1893
+ [matTooltip]="tooltip()"
1864
1894
  [attr.id]="field.id"
1865
1895
  (openedChange)="openChange($event)"
1866
1896
  [compareWith]="compareFn"
1867
1897
  [panelWidth]="field.panelWidth || 'auto'"
1868
1898
  [ngClass]="ngClass()"
1869
- [placeholder]="field.placeholder"
1899
+ [placeholder]="placeholder()"
1870
1900
  [formControlName]="field.name"
1871
1901
  [multiple]="field.multiple"
1872
1902
  (focus)="onFocus()"
@@ -1956,8 +1986,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
1956
1986
  }
1957
1987
  </mat-select>
1958
1988
 
1959
- @if (field.hint) {
1960
- <mat-hint>{{ field.hint }}</mat-hint>
1989
+ @if (hint()) {
1990
+ <mat-hint>{{ hint() }}</mat-hint>
1961
1991
  }
1962
1992
  @if (field.subComponents || field.clearable) {
1963
1993
  <div matSuffix>
@@ -1986,38 +2016,38 @@ class KlesFormDateComponent extends KlesFieldAbstract {
1986
2016
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
1987
2017
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormDateComponent, isStandalone: true, selector: "kles-form-datepicker", usesInheritance: true, ngImport: i0, template: `
1988
2018
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()">
1989
- @if (field.label) {
1990
- <mat-label>{{ field.label }}</mat-label>
2019
+ @if (label()) {
2020
+ <mat-label>{{ label() }}</mat-label>
1991
2021
  }
1992
- <input matInput matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [matDatepicker]="picker" [formControlName]="field.name" [placeholder]="field.placeholder" [min]="field.min" [max]="field.max" />
2022
+ <input matInput [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [matDatepicker]="picker" [formControlName]="field.name" [placeholder]="placeholder()" [min]="min()" [max]="max()" />
1993
2023
  <div matSuffix class="suffix">
1994
2024
  <mat-datepicker-toggle [for]="picker"></mat-datepicker-toggle>
1995
2025
  <ng-content></ng-content>
1996
2026
  </div>
1997
2027
  <mat-datepicker #picker></mat-datepicker>
1998
- @if (field.hint) {
1999
- <mat-hint>{{ field.hint }}</mat-hint>
2028
+ @if (hint()) {
2029
+ <mat-hint>{{ hint() }}</mat-hint>
2000
2030
  }
2001
2031
 
2002
2032
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
2003
2033
  </mat-form-field>
2004
- `, isInline: true, styles: ["mat-form-field{width:100%}\n", ".suffix{display:flex;flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
2034
+ `, isInline: true, styles: ["mat-form-field{width:100%}\n", ".suffix{display:flex;flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
2005
2035
  }
2006
2036
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormDateComponent, decorators: [{
2007
2037
  type: Component,
2008
2038
  args: [{ selector: 'kles-form-datepicker', template: `
2009
2039
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()">
2010
- @if (field.label) {
2011
- <mat-label>{{ field.label }}</mat-label>
2040
+ @if (label()) {
2041
+ <mat-label>{{ label() }}</mat-label>
2012
2042
  }
2013
- <input matInput matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [matDatepicker]="picker" [formControlName]="field.name" [placeholder]="field.placeholder" [min]="field.min" [max]="field.max" />
2043
+ <input matInput [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [matDatepicker]="picker" [formControlName]="field.name" [placeholder]="placeholder()" [min]="min()" [max]="max()" />
2014
2044
  <div matSuffix class="suffix">
2015
2045
  <mat-datepicker-toggle [for]="picker"></mat-datepicker-toggle>
2016
2046
  <ng-content></ng-content>
2017
2047
  </div>
2018
2048
  <mat-datepicker #picker></mat-datepicker>
2019
- @if (field.hint) {
2020
- <mat-hint>{{ field.hint }}</mat-hint>
2049
+ @if (hint()) {
2050
+ <mat-hint>{{ hint() }}</mat-hint>
2021
2051
  }
2022
2052
 
2023
2053
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
@@ -2044,8 +2074,8 @@ class KlesFormRadioComponent extends KlesFieldAbstract {
2044
2074
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormRadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2045
2075
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormRadioComponent, isStandalone: true, selector: "kles-form-radiobutton", usesInheritance: true, ngImport: i0, template: `
2046
2076
  <div [formGroup]="group">
2047
- <label class="radio-label-padding">{{field.label}}</label>
2048
- <mat-radio-group matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()" [formControlName]="field.name">
2077
+ <label class="radio-label-padding">{{label()}}</label>
2078
+ <mat-radio-group [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [formControlName]="field.name">
2049
2079
  @for (item of options$ | async; track item) {
2050
2080
  <mat-radio-button [value]="item">{{item}}</mat-radio-button>
2051
2081
  }
@@ -2057,8 +2087,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2057
2087
  type: Component,
2058
2088
  args: [{ selector: 'kles-form-radiobutton', template: `
2059
2089
  <div [formGroup]="group">
2060
- <label class="radio-label-padding">{{field.label}}</label>
2061
- <mat-radio-group matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()" [formControlName]="field.name">
2090
+ <label class="radio-label-padding">{{label()}}</label>
2091
+ <mat-radio-group [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [formControlName]="field.name">
2062
2092
  @for (item of options$ | async; track item) {
2063
2093
  <mat-radio-button [value]="item">{{item}}</mat-radio-button>
2064
2094
  }
@@ -2080,7 +2110,7 @@ let KlesFormCheckboxComponent = class KlesFormCheckboxComponent extends KlesFiel
2080
2110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2081
2111
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormCheckboxComponent, isStandalone: true, selector: "kles-form-checkbox", usesInheritance: true, ngImport: i0, template: `
2082
2112
  <div [formGroup]="group">
2083
- <mat-checkbox matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [indeterminate]="indeterminate()" (change)="onChange($event)" [color]="color()" [formControlName]="field.name">{{ field.label }}</mat-checkbox>
2113
+ <mat-checkbox [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [indeterminate]="indeterminate()" (change)="onChange($event)" [color]="color()" [formControlName]="field.name">{{ label() }}</mat-checkbox>
2084
2114
  </div>
2085
2115
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
2086
2116
  };
@@ -2091,7 +2121,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2091
2121
  type: Component,
2092
2122
  args: [{ selector: 'kles-form-checkbox', template: `
2093
2123
  <div [formGroup]="group">
2094
- <mat-checkbox matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [indeterminate]="indeterminate()" (change)="onChange($event)" [color]="color()" [formControlName]="field.name">{{ field.label }}</mat-checkbox>
2124
+ <mat-checkbox [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [indeterminate]="indeterminate()" (change)="onChange($event)" [color]="color()" [formControlName]="field.name">{{ label() }}</mat-checkbox>
2095
2125
  </div>
2096
2126
  `, standalone: true, imports: [CommonModule, ReactiveFormsModule, MatCheckbox, MatTooltip] }]
2097
2127
  }] });
@@ -2204,8 +2234,8 @@ let KlesFormListFieldComponent = class KlesFormListFieldComponent extends KlesFi
2204
2234
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormListFieldComponent, isStandalone: true, selector: "kles-form-listfield", usesInheritance: true, ngImport: i0, template: `
2205
2235
  <div [formGroup]="group" class="form-element">
2206
2236
  <div class="label">
2207
- {{ field.label }}
2208
- <button mat-icon-button color="primary" (click)="addField()">
2237
+ {{ label() }}
2238
+ <button matIconButton color="primary" (click)="addField()">
2209
2239
  <mat-icon>add</mat-icon>
2210
2240
  </button>
2211
2241
  </div>
@@ -2217,7 +2247,7 @@ let KlesFormListFieldComponent = class KlesFormListFieldComponent extends KlesFi
2217
2247
  <ng-container klesDynamicField [field]="subfield" [group]="subGroup" [siblingFields]="collections[idx]"> </ng-container>
2218
2248
  }
2219
2249
  @if (collections[idx]) {
2220
- <button mat-icon-button (click)="deleteField(idx)" color="primary">
2250
+ <button matIconButton (click)="deleteField(idx)" color="primary">
2221
2251
  <mat-icon>delete_outlined</mat-icon>
2222
2252
  </button>
2223
2253
  }
@@ -2249,8 +2279,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2249
2279
  args: [{ selector: 'kles-form-listfield', template: `
2250
2280
  <div [formGroup]="group" class="form-element">
2251
2281
  <div class="label">
2252
- {{ field.label }}
2253
- <button mat-icon-button color="primary" (click)="addField()">
2282
+ {{ label() }}
2283
+ <button matIconButton color="primary" (click)="addField()">
2254
2284
  <mat-icon>add</mat-icon>
2255
2285
  </button>
2256
2286
  </div>
@@ -2262,7 +2292,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2262
2292
  <ng-container klesDynamicField [field]="subfield" [group]="subGroup" [siblingFields]="collections[idx]"> </ng-container>
2263
2293
  }
2264
2294
  @if (collections[idx]) {
2265
- <button mat-icon-button (click)="deleteField(idx)" color="primary">
2295
+ <button matIconButton (click)="deleteField(idx)" color="primary">
2266
2296
  <mat-icon>delete_outlined</mat-icon>
2267
2297
  </button>
2268
2298
  }
@@ -2366,10 +2396,10 @@ class KlesFormColorComponent extends KlesFieldAbstract {
2366
2396
  >
2367
2397
  <input
2368
2398
  matInput
2369
- matTooltip="{{ field.tooltip }}"
2399
+ [matTooltip]="tooltip()"
2370
2400
  [attr.id]="field.id"
2371
2401
  [ngClass]="ngClass()"
2372
- [placeholder]="field.placeholder"
2402
+ [placeholder]="placeholder()"
2373
2403
  [value]="group.get(field.name).value"
2374
2404
  class="colorPicker"
2375
2405
  [style.background]="group.get(field.name).value"
@@ -2378,9 +2408,9 @@ class KlesFormColorComponent extends KlesFieldAbstract {
2378
2408
  />
2379
2409
 
2380
2410
  @if (field.subComponents || field.clearable) {
2381
- <div matSuffix>
2382
- <ng-content></ng-content>
2383
- </div>
2411
+ <div matSuffix>
2412
+ <ng-content></ng-content>
2413
+ </div>
2384
2414
  }
2385
2415
 
2386
2416
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
@@ -2404,10 +2434,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2404
2434
  >
2405
2435
  <input
2406
2436
  matInput
2407
- matTooltip="{{ field.tooltip }}"
2437
+ [matTooltip]="tooltip()"
2408
2438
  [attr.id]="field.id"
2409
2439
  [ngClass]="ngClass()"
2410
- [placeholder]="field.placeholder"
2440
+ [placeholder]="placeholder()"
2411
2441
  [value]="group.get(field.name).value"
2412
2442
  class="colorPicker"
2413
2443
  [style.background]="group.get(field.name).value"
@@ -2416,9 +2446,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2416
2446
  />
2417
2447
 
2418
2448
  @if (field.subComponents || field.clearable) {
2419
- <div matSuffix>
2420
- <ng-content></ng-content>
2421
- </div>
2449
+ <div matSuffix>
2450
+ <ng-content></ng-content>
2451
+ </div>
2422
2452
  }
2423
2453
 
2424
2454
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
@@ -2436,6 +2466,8 @@ class KlesButtonBase {
2436
2466
  this.disabled = false;
2437
2467
  this.classButton = '';
2438
2468
  this.value = {};
2469
+ this.buttonAppearance = 'text';
2470
+ this.action = new EventEmitter();
2439
2471
  this._type = 'button';
2440
2472
  this.onChange = () => { };
2441
2473
  this.onTouched = () => { };
@@ -2446,13 +2478,16 @@ class KlesButtonBase {
2446
2478
  set type(value) {
2447
2479
  this._type = value || this._type;
2448
2480
  }
2449
- ngOnInit() {
2450
- }
2481
+ ngOnInit() { }
2451
2482
  click(event) {
2452
- if (!this.disabled && this.value && this._type === 'button') {
2483
+ if (this.disabled || this._type !== 'button') {
2484
+ return;
2485
+ }
2486
+ if (this.value) {
2453
2487
  this.value.event = this.name;
2454
2488
  this.onChange(this.value);
2455
2489
  }
2490
+ this.action.emit(event);
2456
2491
  }
2457
2492
  writeValue(value) {
2458
2493
  if (!value) {
@@ -2463,13 +2498,14 @@ class KlesButtonBase {
2463
2498
  }
2464
2499
  if (value.uiButton) {
2465
2500
  const uiButton = value.uiButton;
2466
- this.label = (uiButton.label) ? uiButton.label : this.label;
2467
- this.color = (uiButton.color) ? uiButton.color : this.color;
2468
- this.icon = (uiButton.icon) ? uiButton.icon : this.icon;
2469
- this.iconSvg = (uiButton.iconSvg) ? uiButton.iconSvg : this.iconSvg;
2470
- this.disabled = (uiButton.disabled) ? uiButton.disabled : this.disabled;
2471
- this.classButton = (uiButton.class) ? uiButton.class : this.classButton;
2472
- this.type = (uiButton.type) ? uiButton.type : 'submit';
2501
+ this.label = uiButton.label ? uiButton.label : this.label;
2502
+ this.color = uiButton.color ? uiButton.color : this.color;
2503
+ this.icon = uiButton.icon ? uiButton.icon : this.icon;
2504
+ this.iconSvg = uiButton.iconSvg ? uiButton.iconSvg : this.iconSvg;
2505
+ this.disabled = uiButton.disabled ? uiButton.disabled : this.disabled;
2506
+ this.classButton = uiButton.class ? uiButton.class : this.classButton;
2507
+ this.type = uiButton.type ? uiButton.type : 'submit';
2508
+ this.buttonAppearance = uiButton.buttonAppearance ? uiButton.buttonAppearance : this.buttonAppearance;
2473
2509
  }
2474
2510
  this.value = value;
2475
2511
  }
@@ -2483,13 +2519,13 @@ class KlesButtonBase {
2483
2519
  this.disabled = isDisabled;
2484
2520
  }
2485
2521
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesButtonBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2486
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesButtonBase, isStandalone: true, selector: "ng-component", inputs: { name: "name", label: "label", color: "color", icon: "icon", iconSvg: "iconSvg", disabled: "disabled", type: "type", classButton: "classButton", value: "value", tooltip: "tooltip" }, ngImport: i0, template: '', isInline: true }); }
2522
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesButtonBase, isStandalone: true, selector: "ng-component", inputs: { name: "name", label: "label", color: "color", icon: "icon", iconSvg: "iconSvg", disabled: "disabled", type: "type", classButton: "classButton", value: "value", tooltip: "tooltip", buttonAppearance: "buttonAppearance" }, outputs: { action: "action" }, ngImport: i0, template: '', isInline: true }); }
2487
2523
  }
2488
2524
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesButtonBase, decorators: [{
2489
2525
  type: Component,
2490
2526
  args: [{
2491
2527
  template: '',
2492
- standalone: true
2528
+ standalone: true,
2493
2529
  }]
2494
2530
  }], propDecorators: { name: [{
2495
2531
  type: Input
@@ -2512,54 +2548,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2512
2548
  type: Input
2513
2549
  }], tooltip: [{
2514
2550
  type: Input
2551
+ }], buttonAppearance: [{
2552
+ type: Input
2553
+ }], action: [{
2554
+ type: Output
2515
2555
  }] } });
2516
2556
 
2517
- var EnumButtonAttribute;
2518
- (function (EnumButtonAttribute) {
2519
- EnumButtonAttribute["mat-button"] = "mat-button";
2520
- EnumButtonAttribute["mat-flat-button"] = "mat-flat-button";
2521
- EnumButtonAttribute["mat-raised-button"] = "mat-raised-button";
2522
- EnumButtonAttribute["mat-stroked-button"] = "mat-stroked-button";
2523
- })(EnumButtonAttribute || (EnumButtonAttribute = {}));
2524
-
2525
- /*From angular material
2526
- https://github.com/angular/components/blob/17.0.x/src/material/button/button-base.ts#L40C1-L56C5
2527
- */
2528
- const HOST_SELECTOR_MDC_CLASS_PAIR = [
2529
- {
2530
- attribute: EnumButtonAttribute['mat-button'],
2531
- mdcClasses: ['mdc-button', 'mat-mdc-button'],
2532
- },
2533
- {
2534
- attribute: EnumButtonAttribute['mat-flat-button'],
2535
- mdcClasses: ['mdc-button', 'mdc-button--unelevated', 'mat-mdc-unelevated-button'],
2536
- },
2537
- {
2538
- attribute: EnumButtonAttribute['mat-raised-button'],
2539
- mdcClasses: ['mdc-button', 'mdc-button--raised', 'mat-mdc-raised-button'],
2540
- },
2541
- {
2542
- attribute: EnumButtonAttribute['mat-stroked-button'],
2543
- mdcClasses: ['mdc-button', 'mdc-button--outlined', 'mat-mdc-outlined-button'],
2544
- }
2545
- ];
2546
2557
  class KlesButtonComponent extends KlesButtonBase {
2547
- constructor() {
2548
- super(...arguments);
2549
- this.mdcClasses = signal(HOST_SELECTOR_MDC_CLASS_PAIR[0].mdcClasses, ...(ngDevMode ? [{ debugName: "mdcClasses" }] : /* istanbul ignore next */ []));
2550
- }
2551
- set attribute(attribute) {
2552
- this.mdcClasses.set(HOST_SELECTOR_MDC_CLASS_PAIR.find(selector => selector.attribute === attribute)?.mdcClasses || []);
2553
- }
2554
2558
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2555
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesButtonComponent, isStandalone: true, selector: "kles-button", inputs: { attribute: "attribute" }, providers: [
2559
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesButtonComponent, isStandalone: true, selector: "kles-button", providers: [
2556
2560
  {
2557
2561
  provide: NG_VALUE_ACCESSOR,
2558
2562
  useExisting: forwardRef(() => KlesButtonComponent),
2559
2563
  multi: true
2560
2564
  }
2561
2565
  ], usesInheritance: true, ngImport: i0, template: `
2562
- <button mat-button [type]="type" [ngClass]="classButton || mdcClasses()" [color]="(color)?color:'primary'" [disabled]="disabled"
2566
+ <button [matButton]="buttonAppearance" [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
2563
2567
  (click)="click($event)" [matTooltip]="tooltip">
2564
2568
  {{label}}
2565
2569
 
@@ -2578,7 +2582,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2578
2582
  args: [{
2579
2583
  selector: 'kles-button',
2580
2584
  template: `
2581
- <button mat-button [type]="type" [ngClass]="classButton || mdcClasses()" [color]="(color)?color:'primary'" [disabled]="disabled"
2585
+ <button [matButton]="buttonAppearance" [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
2582
2586
  (click)="click($event)" [matTooltip]="tooltip">
2583
2587
  {{label}}
2584
2588
 
@@ -2601,9 +2605,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2601
2605
  standalone: true,
2602
2606
  imports: [CommonModule, ReactiveFormsModule, MatIcon, MatTooltip, MatButton]
2603
2607
  }]
2604
- }], propDecorators: { attribute: [{
2605
- type: Input
2606
- }] } });
2608
+ }] });
2607
2609
 
2608
2610
  class KlesFormButtonComponent extends KlesFieldAbstract {
2609
2611
  ngOnInit() {
@@ -2619,19 +2621,20 @@ class KlesFormButtonComponent extends KlesFieldAbstract {
2619
2621
  [attr.id]="field.id"
2620
2622
  [classButton]="ngClass()"
2621
2623
  [name]="field.name"
2622
- [label]="field.label"
2624
+ [label]="label()"
2623
2625
  [color]="color()"
2624
- [attribute]="field.attribute"
2625
2626
  [icon]="icon()"
2626
2627
  [iconSvg]="iconSvg()"
2627
2628
  [value]="field.value"
2628
2629
  [formControlName]="field.name"
2629
- [tooltip]="field.tooltip"
2630
+ [tooltip]="tooltip()"
2630
2631
  [type]="field.buttonType"
2632
+ [buttonAppearance]="buttonAppearance()"
2633
+ (action)="triggerAction(field.name, $event)"
2631
2634
  >
2632
2635
  </kles-button>
2633
2636
  </div>
2634
- `, isInline: true, dependencies: [{ kind: "component", type: KlesButtonComponent, selector: "kles-button", inputs: ["attribute"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
2637
+ `, isInline: true, dependencies: [{ kind: "component", type: KlesButtonComponent, selector: "kles-button" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
2635
2638
  }
2636
2639
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormButtonComponent, decorators: [{
2637
2640
  type: Component,
@@ -2641,15 +2644,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2641
2644
  [attr.id]="field.id"
2642
2645
  [classButton]="ngClass()"
2643
2646
  [name]="field.name"
2644
- [label]="field.label"
2647
+ [label]="label()"
2645
2648
  [color]="color()"
2646
- [attribute]="field.attribute"
2647
2649
  [icon]="icon()"
2648
2650
  [iconSvg]="iconSvg()"
2649
2651
  [value]="field.value"
2650
2652
  [formControlName]="field.name"
2651
- [tooltip]="field.tooltip"
2653
+ [tooltip]="tooltip()"
2652
2654
  [type]="field.buttonType"
2655
+ [buttonAppearance]="buttonAppearance()"
2656
+ (action)="triggerAction(field.name, $event)"
2653
2657
  >
2654
2658
  </kles-button>
2655
2659
  </div>
@@ -2693,7 +2697,7 @@ class KlesButtonCheckerComponent extends KlesButtonBase {
2693
2697
  </span>
2694
2698
  }
2695
2699
  </span>
2696
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: KlesButtonComponent, selector: "kles-button", inputs: ["attribute"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }] }); }
2700
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: KlesButtonComponent, selector: "kles-button" }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }] }); }
2697
2701
  }
2698
2702
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesButtonCheckerComponent, decorators: [{
2699
2703
  type: Component,
@@ -2739,37 +2743,45 @@ class KlesFormButtonCheckerComponent extends KlesFieldAbstract {
2739
2743
  }
2740
2744
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormButtonCheckerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2741
2745
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormButtonCheckerComponent, isStandalone: true, selector: "kles-form-button-checker", usesInheritance: true, ngImport: i0, template: `
2742
- <div [formGroup]="group">
2743
- <kles-button-checker
2744
- [attr.id]="field.id" [classButton]="ngClass()"
2745
- [name]="field.name" [label]="field.label" [color]="color()"
2746
- [icon]="icon()"
2747
- [iconSvg]="iconSvg()"
2748
- [value]="field.value"
2749
- [formControlName]="field.name"
2750
- [tooltip]="field.tooltip"
2751
- [disabled]="field.disabled"
2746
+ <div [formGroup]="group">
2747
+ <kles-button-checker
2748
+ [attr.id]="field.id"
2749
+ [classButton]="ngClass()"
2750
+ [name]="field.name"
2751
+ [label]="label()"
2752
+ [color]="color()"
2753
+ [icon]="icon()"
2754
+ [iconSvg]="iconSvg()"
2755
+ [value]="field.value"
2756
+ [formControlName]="field.name"
2757
+ [tooltip]="tooltip()"
2758
+ [disabled]="field.disabled"
2759
+ (action)="triggerAction(field.name, $event)"
2752
2760
  >
2753
- </kles-button-checker>
2754
- </div>
2761
+ </kles-button-checker>
2762
+ </div>
2755
2763
  `, isInline: true, dependencies: [{ kind: "component", type: KlesButtonCheckerComponent, selector: "kles-button-checker" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
2756
2764
  }
2757
2765
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormButtonCheckerComponent, decorators: [{
2758
2766
  type: Component,
2759
2767
  args: [{ selector: 'kles-form-button-checker', template: `
2760
- <div [formGroup]="group">
2761
- <kles-button-checker
2762
- [attr.id]="field.id" [classButton]="ngClass()"
2763
- [name]="field.name" [label]="field.label" [color]="color()"
2764
- [icon]="icon()"
2765
- [iconSvg]="iconSvg()"
2766
- [value]="field.value"
2767
- [formControlName]="field.name"
2768
- [tooltip]="field.tooltip"
2769
- [disabled]="field.disabled"
2768
+ <div [formGroup]="group">
2769
+ <kles-button-checker
2770
+ [attr.id]="field.id"
2771
+ [classButton]="ngClass()"
2772
+ [name]="field.name"
2773
+ [label]="label()"
2774
+ [color]="color()"
2775
+ [icon]="icon()"
2776
+ [iconSvg]="iconSvg()"
2777
+ [value]="field.value"
2778
+ [formControlName]="field.name"
2779
+ [tooltip]="tooltip()"
2780
+ [disabled]="field.disabled"
2781
+ (action)="triggerAction(field.name, $event)"
2770
2782
  >
2771
- </kles-button-checker>
2772
- </div>
2783
+ </kles-button-checker>
2784
+ </div>
2773
2785
  `, standalone: true, imports: [KlesButtonCheckerComponent, ReactiveFormsModule] }]
2774
2786
  }] });
2775
2787
 
@@ -2860,7 +2872,7 @@ class KlesButtonFileComponent extends KlesButtonBase {
2860
2872
  [disabled]="disabled"
2861
2873
  [value]="value" (click)="click($event)">
2862
2874
  </kles-button>
2863
- `, isInline: true, dependencies: [{ kind: "component", type: KlesButtonComponent, selector: "kles-button", inputs: ["attribute"] }] }); }
2875
+ `, isInline: true, dependencies: [{ kind: "component", type: KlesButtonComponent, selector: "kles-button" }] }); }
2864
2876
  }
2865
2877
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesButtonFileComponent, decorators: [{
2866
2878
  type: Component,
@@ -2908,7 +2920,7 @@ class KlesFormButtonFileComponent extends KlesFieldAbstract {
2908
2920
  [attr.id]="field.id"
2909
2921
  [classButton]="ngClass()"
2910
2922
  [name]="field.name"
2911
- [label]="field.label"
2923
+ [label]="label()"
2912
2924
  [color]="color()"
2913
2925
  [icon]="icon()"
2914
2926
  [iconSvg]="iconSvg()"
@@ -2930,7 +2942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2930
2942
  [attr.id]="field.id"
2931
2943
  [classButton]="ngClass()"
2932
2944
  [name]="field.name"
2933
- [label]="field.label"
2945
+ [label]="label()"
2934
2946
  [color]="color()"
2935
2947
  [icon]="icon()"
2936
2948
  [iconSvg]="iconSvg()"
@@ -2955,12 +2967,12 @@ class KlesFormTextareaComponent extends KlesFieldAbstract {
2955
2967
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2956
2968
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormTextareaComponent, isStandalone: true, selector: "kles-form-textarea", usesInheritance: true, ngImport: i0, template: `
2957
2969
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" [color]="color()" class="form-element" [appearance]="appearance()">
2958
- @if (field.label) {
2959
- <mat-label>{{field.label}}</mat-label>
2970
+ @if (label()) {
2971
+ <mat-label>{{label()}}</mat-label>
2960
2972
  }
2961
2973
 
2962
- <textarea matInput matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()"
2963
- [formControlName]="field.name" cdkTextareaAutosize [placeholder]="field.placeholder"
2974
+ <textarea matInput [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()"
2975
+ [formControlName]="field.name" cdkTextareaAutosize [placeholder]="placeholder()"
2964
2976
  [cdkAutosizeMinRows]="field.textareaAutoSize?.minRows" [cdkAutosizeMaxRows]="field.textareaAutoSize?.maxRows" [maxlength]="maxLength()">
2965
2977
  </textarea>
2966
2978
 
@@ -2972,18 +2984,18 @@ class KlesFormTextareaComponent extends KlesFieldAbstract {
2972
2984
 
2973
2985
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
2974
2986
  </mat-form-field>
2975
- `, isInline: true, styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i3$3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] }); }
2987
+ `, isInline: true, styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: TextFieldModule }, { kind: "directive", type: i3$2.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }] }); }
2976
2988
  }
2977
2989
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTextareaComponent, decorators: [{
2978
2990
  type: Component,
2979
2991
  args: [{ selector: 'kles-form-textarea', template: `
2980
2992
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" [color]="color()" class="form-element" [appearance]="appearance()">
2981
- @if (field.label) {
2982
- <mat-label>{{field.label}}</mat-label>
2993
+ @if (label()) {
2994
+ <mat-label>{{label()}}</mat-label>
2983
2995
  }
2984
2996
 
2985
- <textarea matInput matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()"
2986
- [formControlName]="field.name" cdkTextareaAutosize [placeholder]="field.placeholder"
2997
+ <textarea matInput [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()"
2998
+ [formControlName]="field.name" cdkTextareaAutosize [placeholder]="placeholder()"
2987
2999
  [cdkAutosizeMinRows]="field.textareaAutoSize?.minRows" [cdkAutosizeMaxRows]="field.textareaAutoSize?.maxRows" [maxlength]="maxLength()">
2988
3000
  </textarea>
2989
3001
 
@@ -3007,7 +3019,7 @@ let KlesFormTextComponent = class KlesFormTextComponent extends KlesFieldAbstrac
3007
3019
  }
3008
3020
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3009
3021
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormTextComponent, isStandalone: true, selector: "kles-form-text", usesInheritance: true, ngImport: i0, template: `
3010
- <span matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3022
+ <span [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3011
3023
  {{ (field.property && group.controls[field.name].value ? group.controls[field.name].value[field.property] : group.controls[field.name].value) | klesTransform: field.pipeTransform }}
3012
3024
  </span>
3013
3025
  @if (field.subComponents || isPending()) {
@@ -3021,7 +3033,7 @@ KlesFormTextComponent = __decorate([
3021
3033
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTextComponent, decorators: [{
3022
3034
  type: Component,
3023
3035
  args: [{ selector: 'kles-form-text', template: `
3024
- <span matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3036
+ <span [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3025
3037
  {{ (field.property && group.controls[field.name].value ? group.controls[field.name].value[field.property] : group.controls[field.name].value) | klesTransform: field.pipeTransform }}
3026
3038
  </span>
3027
3039
  @if (field.subComponents || isPending()) {
@@ -3039,7 +3051,7 @@ class KlesFormChipComponent extends KlesFieldAbstract {
3039
3051
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormChipComponent, isStandalone: true, selector: "kles-form-chip", usesInheritance: true, ngImport: i0, template: `
3040
3052
  <div [formGroup]="group">
3041
3053
  <mat-chip-listbox>
3042
- <mat-chip-option [color]="color()" matTooltip="{{field.tooltip}}" [attr.id]="field.id" selected [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3054
+ <mat-chip-option [color]="color()" [matTooltip]="tooltip()" [attr.id]="field.id" selected [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3043
3055
  @if (icon()) {
3044
3056
  <mat-icon>{{icon()}}</mat-icon>
3045
3057
  }
@@ -3054,7 +3066,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3054
3066
  args: [{ selector: "kles-form-chip", template: `
3055
3067
  <div [formGroup]="group">
3056
3068
  <mat-chip-listbox>
3057
- <mat-chip-option [color]="color()" matTooltip="{{field.tooltip}}" [attr.id]="field.id" selected [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3069
+ <mat-chip-option [color]="color()" [matTooltip]="tooltip()" [attr.id]="field.id" selected [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3058
3070
  @if (icon()) {
3059
3071
  <mat-icon>{{icon()}}</mat-icon>
3060
3072
  }
@@ -3170,9 +3182,9 @@ let KlesFormGroupComponent = class KlesFormGroupComponent extends KlesFieldAbstr
3170
3182
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormGroupComponent, isStandalone: true, selector: "kles-group", host: { properties: { "class": "this.className" } }, usesInheritance: true, ngImport: i0, template: `
3171
3183
  <ng-container [formGroup]="group">
3172
3184
  <ng-container [formGroupName]="field.name">
3173
- @if (field.label) {
3185
+ @if (label()) {
3174
3186
  <h4>
3175
- <span [matTooltip]="field.tooltip || ''">{{ field.label }}</span>
3187
+ <span [matTooltip]="tooltip() ?? ''">{{ label() }}</span>
3176
3188
  </h4>
3177
3189
  }
3178
3190
 
@@ -3193,9 +3205,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3193
3205
  args: [{ selector: 'kles-group', template: `
3194
3206
  <ng-container [formGroup]="group">
3195
3207
  <ng-container [formGroupName]="field.name">
3196
- @if (field.label) {
3208
+ @if (label()) {
3197
3209
  <h4>
3198
- <span [matTooltip]="field.tooltip || ''">{{ field.label }}</span>
3210
+ <span [matTooltip]="tooltip() ?? ''">{{ label() }}</span>
3199
3211
  </h4>
3200
3212
  }
3201
3213
 
@@ -3219,17 +3231,17 @@ class KlesFormInputClearableComponent extends KlesFormInputComponent {
3219
3231
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormInputClearableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3220
3232
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormInputClearableComponent, isStandalone: true, selector: "kles-form-input-clearable", usesInheritance: true, ngImport: i0, template: `
3221
3233
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" [color]="color()" class="form-element" [appearance]="appearance()">
3222
- @if (field.label) {
3223
- <mat-label>{{ field.label }}</mat-label>
3234
+ @if (label()) {
3235
+ <mat-label>{{ label() }}</mat-label>
3224
3236
  }
3225
3237
  @if (field.autocomplete) {
3226
3238
  <input
3227
3239
  matInput
3228
- matTooltip="{{ field.tooltip }}"
3240
+ [matTooltip]="tooltip()"
3229
3241
  [attr.id]="field.id"
3230
3242
  [ngClass]="ngClass()"
3231
3243
  [formControlName]="field.name"
3232
- [placeholder]="field.placeholder"
3244
+ [placeholder]="placeholder()"
3233
3245
  [type]="inputType()"
3234
3246
  [maxLength]="maxLength()"
3235
3247
  [min]="min()"
@@ -3267,11 +3279,11 @@ class KlesFormInputClearableComponent extends KlesFormInputComponent {
3267
3279
  } @else {
3268
3280
  <input
3269
3281
  matInput
3270
- matTooltip="{{ field.tooltip }}"
3282
+ [matTooltip]="tooltip()"
3271
3283
  [attr.id]="field.id"
3272
3284
  [ngClass]="ngClass()"
3273
3285
  [formControlName]="field.name"
3274
- [placeholder]="field.placeholder"
3286
+ [placeholder]="placeholder()"
3275
3287
  [type]="inputType()"
3276
3288
  [maxLength]="maxLength()"
3277
3289
  [min]="min()"
@@ -3280,7 +3292,7 @@ class KlesFormInputClearableComponent extends KlesFormInputComponent {
3280
3292
  />
3281
3293
  }
3282
3294
  @if (!group.get(field.name).disabled) {
3283
- <button matSuffix mat-icon-button aria-label="Clear" type="button" (click)="group.controls[field.name].reset()">
3295
+ <button matSuffix matIconButton aria-label="Clear" type="button" (click)="group.controls[field.name].reset()">
3284
3296
  <mat-icon>close</mat-icon>
3285
3297
  </button>
3286
3298
  }
@@ -3290,23 +3302,23 @@ class KlesFormInputClearableComponent extends KlesFormInputComponent {
3290
3302
 
3291
3303
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
3292
3304
  </mat-form-field>
3293
- `, isInline: true, styles: [".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", "mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: MatLabel$1, selector: "mat-label" }, { kind: "component", type: MatFormField$1, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
3305
+ `, isInline: true, styles: [".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", "mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: MatLabel$1, selector: "mat-label" }, { kind: "component", type: MatFormField$1, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
3294
3306
  }
3295
3307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormInputClearableComponent, decorators: [{
3296
3308
  type: Component,
3297
3309
  args: [{ selector: 'kles-form-input-clearable', template: `
3298
3310
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" [color]="color()" class="form-element" [appearance]="appearance()">
3299
- @if (field.label) {
3300
- <mat-label>{{ field.label }}</mat-label>
3311
+ @if (label()) {
3312
+ <mat-label>{{ label() }}</mat-label>
3301
3313
  }
3302
3314
  @if (field.autocomplete) {
3303
3315
  <input
3304
3316
  matInput
3305
- matTooltip="{{ field.tooltip }}"
3317
+ [matTooltip]="tooltip()"
3306
3318
  [attr.id]="field.id"
3307
3319
  [ngClass]="ngClass()"
3308
3320
  [formControlName]="field.name"
3309
- [placeholder]="field.placeholder"
3321
+ [placeholder]="placeholder()"
3310
3322
  [type]="inputType()"
3311
3323
  [maxLength]="maxLength()"
3312
3324
  [min]="min()"
@@ -3344,11 +3356,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3344
3356
  } @else {
3345
3357
  <input
3346
3358
  matInput
3347
- matTooltip="{{ field.tooltip }}"
3359
+ [matTooltip]="tooltip()"
3348
3360
  [attr.id]="field.id"
3349
3361
  [ngClass]="ngClass()"
3350
3362
  [formControlName]="field.name"
3351
- [placeholder]="field.placeholder"
3363
+ [placeholder]="placeholder()"
3352
3364
  [type]="inputType()"
3353
3365
  [maxLength]="maxLength()"
3354
3366
  [min]="min()"
@@ -3357,7 +3369,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3357
3369
  />
3358
3370
  }
3359
3371
  @if (!group.get(field.name).disabled) {
3360
- <button matSuffix mat-icon-button aria-label="Clear" type="button" (click)="group.controls[field.name].reset()">
3372
+ <button matSuffix matIconButton aria-label="Clear" type="button" (click)="group.controls[field.name].reset()">
3361
3373
  <mat-icon>close</mat-icon>
3362
3374
  </button>
3363
3375
  }
@@ -3379,7 +3391,7 @@ class KlesFormIconComponent extends KlesFieldAbstract {
3379
3391
  }
3380
3392
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormIconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3381
3393
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormIconComponent, isStandalone: true, selector: "kles-form-icon", usesInheritance: true, ngImport: i0, template: `
3382
- <mat-icon [color]="color()" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3394
+ <mat-icon [color]="color()" [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3383
3395
  {{ group.controls[field.name].value }}
3384
3396
  </mat-icon>
3385
3397
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
@@ -3387,7 +3399,7 @@ class KlesFormIconComponent extends KlesFieldAbstract {
3387
3399
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormIconComponent, decorators: [{
3388
3400
  type: Component,
3389
3401
  args: [{ selector: 'kles-form-icon', template: `
3390
- <mat-icon [color]="color()" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3402
+ <mat-icon [color]="color()" [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3391
3403
  {{ group.controls[field.name].value }}
3392
3404
  </mat-icon>
3393
3405
  `, standalone: true, imports: [CommonModule, MatIcon, MatTooltip, ReactiveFormsModule] }]
@@ -3582,18 +3594,18 @@ class KlesFormSelectSearchComponent extends KlesFieldAbstract {
3582
3594
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectSearchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3583
3595
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormSelectSearchComponent, isStandalone: true, selector: "kles-form-select-search", viewQueries: [{ propertyName: "cdkVirtualScrollViewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }, { propertyName: "options", predicate: MatOption, descendants: true }], usesInheritance: true, ngImport: i0, template: `
3584
3596
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
3585
- @if (field.label) {
3586
- <mat-label>{{ field.label }}</mat-label>
3597
+ @if (label()) {
3598
+ <mat-label>{{ label() }}</mat-label>
3587
3599
  }
3588
3600
 
3589
3601
  <mat-select
3590
- matTooltip="{{ field.tooltip }}"
3602
+ [matTooltip]="tooltip()"
3591
3603
  [attr.id]="field.id"
3592
3604
  [ngClass]="ngClass()"
3593
3605
  (openedChange)="openChange($event)"
3594
3606
  [compareWith]="compareFn"
3595
3607
  [panelWidth]="field.panelWidth || 'auto'"
3596
- [placeholder]="field.placeholder"
3608
+ [placeholder]="placeholder()"
3597
3609
  [formControlName]="field.name"
3598
3610
  [multiple]="field.multiple"
3599
3611
  (selectionChange)="selectionChange($event)"
@@ -3696,8 +3708,8 @@ class KlesFormSelectSearchComponent extends KlesFieldAbstract {
3696
3708
  }
3697
3709
  </mat-select>
3698
3710
 
3699
- @if (field.hint) {
3700
- <mat-hint>{{ field.hint }}</mat-hint>
3711
+ @if (hint()) {
3712
+ <mat-hint>{{ hint() }}</mat-hint>
3701
3713
  }
3702
3714
  @if (field.subComponents || field.clearable || isPending()) {
3703
3715
  <div matSuffix class="suffix">
@@ -3712,24 +3724,24 @@ class KlesFormSelectSearchComponent extends KlesFieldAbstract {
3712
3724
 
3713
3725
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
3714
3726
  </mat-form-field>
3715
- `, isInline: true, styles: [".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", ".suffix{display:flex;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", "mat-form-field{width: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", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i4$2.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
3727
+ `, isInline: true, styles: [".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", ".suffix{display:flex;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", "mat-form-field{width: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", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i4$3.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
3716
3728
  }
3717
3729
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectSearchComponent, decorators: [{
3718
3730
  type: Component,
3719
3731
  args: [{ selector: 'kles-form-select-search', template: `
3720
3732
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
3721
- @if (field.label) {
3722
- <mat-label>{{ field.label }}</mat-label>
3733
+ @if (label()) {
3734
+ <mat-label>{{ label() }}</mat-label>
3723
3735
  }
3724
3736
 
3725
3737
  <mat-select
3726
- matTooltip="{{ field.tooltip }}"
3738
+ [matTooltip]="tooltip()"
3727
3739
  [attr.id]="field.id"
3728
3740
  [ngClass]="ngClass()"
3729
3741
  (openedChange)="openChange($event)"
3730
3742
  [compareWith]="compareFn"
3731
3743
  [panelWidth]="field.panelWidth || 'auto'"
3732
- [placeholder]="field.placeholder"
3744
+ [placeholder]="placeholder()"
3733
3745
  [formControlName]="field.name"
3734
3746
  [multiple]="field.multiple"
3735
3747
  (selectionChange)="selectionChange($event)"
@@ -3832,8 +3844,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3832
3844
  }
3833
3845
  </mat-select>
3834
3846
 
3835
- @if (field.hint) {
3836
- <mat-hint>{{ field.hint }}</mat-hint>
3847
+ @if (hint()) {
3848
+ <mat-hint>{{ hint() }}</mat-hint>
3837
3849
  }
3838
3850
  @if (field.subComponents || field.clearable || isPending()) {
3839
3851
  <div matSuffix class="suffix">
@@ -3926,8 +3938,8 @@ class KlesFormLinkComponent extends KlesFieldAbstract {
3926
3938
  }
3927
3939
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormLinkComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3928
3940
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormLinkComponent, isStandalone: true, selector: "kles-form-link", usesInheritance: true, ngImport: i0, template: `
3929
- <a [href]="group.controls[field.name].value" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()">
3930
- {{ field.label }}
3941
+ <a [href]="group.controls[field.name].value" [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()">
3942
+ {{ label() }}
3931
3943
  </a>
3932
3944
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
3933
3945
  }
@@ -3936,8 +3948,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3936
3948
  args: [{
3937
3949
  selector: 'kles-form-link',
3938
3950
  template: `
3939
- <a [href]="group.controls[field.name].value" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()">
3940
- {{ field.label }}
3951
+ <a [href]="group.controls[field.name].value" [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()">
3952
+ {{ label() }}
3941
3953
  </a>
3942
3954
  `,
3943
3955
  standalone: true,
@@ -3955,7 +3967,7 @@ class KlesFormSlideToggleComponent extends KlesFieldAbstract {
3955
3967
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSlideToggleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3956
3968
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormSlideToggleComponent, isStandalone: true, selector: "kles-form-slide-toggle", usesInheritance: true, ngImport: i0, template: `
3957
3969
  <div [formGroup]="group">
3958
- <mat-slide-toggle matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{ field.label }}</mat-slide-toggle>
3970
+ <mat-slide-toggle [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{ label() }}</mat-slide-toggle>
3959
3971
  </div>
3960
3972
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
3961
3973
  }
@@ -3963,7 +3975,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3963
3975
  type: Component,
3964
3976
  args: [{ selector: 'kles-form-slide-toggle', template: `
3965
3977
  <div [formGroup]="group">
3966
- <mat-slide-toggle matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{ field.label }}</mat-slide-toggle>
3978
+ <mat-slide-toggle [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{ label() }}</mat-slide-toggle>
3967
3979
  </div>
3968
3980
  `, standalone: true, imports: [CommonModule, MatSlideToggle, MatTooltip, ReactiveFormsModule] }]
3969
3981
  }] });
@@ -4266,7 +4278,7 @@ class KlesFormSelectionListComponent extends KlesFieldAbstract {
4266
4278
  }
4267
4279
  </mat-selection-list>
4268
4280
  </div>
4269
- `, isInline: true, styles: ["mat-selection-list{width:100%;height:250px;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3$4.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i3$4.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
4281
+ `, isInline: true, styles: ["mat-selection-list{width:100%;height:250px;overflow:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3$3.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i3$3.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
4270
4282
  }
4271
4283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectionListComponent, decorators: [{
4272
4284
  type: Component,
@@ -4310,10 +4322,10 @@ let KlesFormBadgeComponent = class KlesFormBadgeComponent extends KlesFieldAbstr
4310
4322
  }
4311
4323
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormBadgeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4312
4324
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormBadgeComponent, isStandalone: true, selector: "kles-form-badge", usesInheritance: true, ngImport: i0, template: `
4313
- <span matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()"
4325
+ <span [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()"
4314
4326
  matBadge="{{group.controls[field.name].value}}" matBadgeOverlap="false" [matBadgeColor]="color()">
4315
4327
  </span>
4316
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i3$5.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }] }); }
4328
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i3$4.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }] }); }
4317
4329
  };
4318
4330
  KlesFormBadgeComponent = __decorate([
4319
4331
  FieldMapper({ type: EnumType.badge })
@@ -4323,7 +4335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
4323
4335
  args: [{
4324
4336
  selector: 'kles-form-badge',
4325
4337
  template: `
4326
- <span matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()"
4338
+ <span [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()"
4327
4339
  matBadge="{{group.controls[field.name].value}}" matBadgeOverlap="false" [matBadgeColor]="color()">
4328
4340
  </span>
4329
4341
  `,
@@ -4359,7 +4371,7 @@ class KlesFormButtonToogleGroupComponent extends KlesFieldAbstract {
4359
4371
  }
4360
4372
  </mat-button-toggle-group>
4361
4373
  </div>
4362
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3$6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$6.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
4374
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3$5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
4363
4375
  }
4364
4376
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormButtonToogleGroupComponent, decorators: [{
4365
4377
  type: Component,
@@ -4604,11 +4616,11 @@ let KlesFormRangeComponent = class KlesFormRangeComponent extends KlesFieldAbstr
4604
4616
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4605
4617
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormRangeComponent, isStandalone: true, selector: "kles-form-rangepicker", usesInheritance: true, ngImport: i0, template: `
4606
4618
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [color]="color()" [formGroup]="group" [appearance]="appearance()">
4607
- <mat-label>{{ field.label }}</mat-label>
4619
+ <mat-label>{{ label() }}</mat-label>
4608
4620
 
4609
- <mat-date-range-input [formGroupName]="field.name" [rangePicker]="picker" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [min]="min()" [max]="max()">
4610
- <input matStartDate formControlName="start" [placeholder]="field.placeholder?.start ? field.placeholder?.start : ''" />
4611
- <input matEndDate formControlName="end" [placeholder]="field.placeholder?.end ? field.placeholder?.end : ''" />
4621
+ <mat-date-range-input [formGroupName]="field.name" [rangePicker]="picker" [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [min]="min()" [max]="max()">
4622
+ <input matStartDate formControlName="start" [placeholder]="placeholder()?.start ? placeholder()?.start : ''" />
4623
+ <input matEndDate formControlName="end" [placeholder]="placeholder()?.end ? placeholder()?.end : ''" />
4612
4624
  </mat-date-range-input>
4613
4625
 
4614
4626
  <div matSuffix class="suffix">
@@ -4617,13 +4629,13 @@ let KlesFormRangeComponent = class KlesFormRangeComponent extends KlesFieldAbstr
4617
4629
  </div>
4618
4630
 
4619
4631
  <mat-date-range-picker #picker></mat-date-range-picker>
4620
- @if (field.hint) {
4621
- <mat-hint>{{ field.hint }}</mat-hint>
4632
+ @if (hint) {
4633
+ <mat-hint>{{ hint() }}</mat-hint>
4622
4634
  }
4623
4635
 
4624
4636
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
4625
4637
  </mat-form-field>
4626
- `, isInline: true, styles: [".suffix{display:flex;align-items:center}\n", "mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i3$2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i3$2.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i3$2.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i3$2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }] }); }
4638
+ `, isInline: true, styles: [".suffix{display:flex;align-items:center}\n", "mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i3$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i3$1.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i3$1.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i3$1.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i3$1.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }] }); }
4627
4639
  };
4628
4640
  KlesFormRangeComponent = __decorate([
4629
4641
  FieldMapper({ type: EnumType.range, factory: (field) => new KlesFormRange(field).create() })
@@ -4632,11 +4644,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
4632
4644
  type: Component,
4633
4645
  args: [{ selector: 'kles-form-rangepicker', template: `
4634
4646
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [color]="color()" [formGroup]="group" [appearance]="appearance()">
4635
- <mat-label>{{ field.label }}</mat-label>
4647
+ <mat-label>{{ label() }}</mat-label>
4636
4648
 
4637
- <mat-date-range-input [formGroupName]="field.name" [rangePicker]="picker" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [min]="min()" [max]="max()">
4638
- <input matStartDate formControlName="start" [placeholder]="field.placeholder?.start ? field.placeholder?.start : ''" />
4639
- <input matEndDate formControlName="end" [placeholder]="field.placeholder?.end ? field.placeholder?.end : ''" />
4649
+ <mat-date-range-input [formGroupName]="field.name" [rangePicker]="picker" [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [min]="min()" [max]="max()">
4650
+ <input matStartDate formControlName="start" [placeholder]="placeholder()?.start ? placeholder()?.start : ''" />
4651
+ <input matEndDate formControlName="end" [placeholder]="placeholder()?.end ? placeholder()?.end : ''" />
4640
4652
  </mat-date-range-input>
4641
4653
 
4642
4654
  <div matSuffix class="suffix">
@@ -4645,8 +4657,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
4645
4657
  </div>
4646
4658
 
4647
4659
  <mat-date-range-picker #picker></mat-date-range-picker>
4648
- @if (field.hint) {
4649
- <mat-hint>{{ field.hint }}</mat-hint>
4660
+ @if (hint) {
4661
+ <mat-hint>{{ hint() }}</mat-hint>
4650
4662
  }
4651
4663
 
4652
4664
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
@@ -4696,18 +4708,18 @@ class KlesFormSelectLazySearchComponent extends KlesFormSelectSearchComponent {
4696
4708
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectLazySearchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4697
4709
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormSelectLazySearchComponent, isStandalone: true, selector: "kles-form-select-lazy-search", usesInheritance: true, ngImport: i0, template: `
4698
4710
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
4699
- @if (field.label) {
4700
- <mat-label>{{ field.label }}</mat-label>
4711
+ @if (label()) {
4712
+ <mat-label>{{ label() }}</mat-label>
4701
4713
  }
4702
4714
 
4703
4715
  <mat-select
4704
- matTooltip="{{ field.tooltip }}"
4716
+ [matTooltip]="tooltip()"
4705
4717
  [attr.id]="field.id"
4706
4718
  [ngClass]="ngClass()"
4707
4719
  (openedChange)="openChange($event)"
4708
4720
  [compareWith]="compareFn"
4709
4721
  [panelWidth]="field.panelWidth || 'auto'"
4710
- [placeholder]="field.placeholder"
4722
+ [placeholder]="placeholder()"
4711
4723
  [formControlName]="field.name"
4712
4724
  [multiple]="field.multiple"
4713
4725
  >
@@ -4809,24 +4821,24 @@ class KlesFormSelectLazySearchComponent extends KlesFormSelectSearchComponent {
4809
4821
 
4810
4822
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
4811
4823
  </mat-form-field>
4812
- `, isInline: true, styles: [".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", "mat-form-field{width: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", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i4$2.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
4824
+ `, isInline: true, styles: [".loadingSelect{display:flex;flex-direction:row;justify-content:space-between;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", "mat-form-field{width: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", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i4$1.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: NgxMatSelectSearchModule }, { kind: "component", type: i4$3.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
4813
4825
  }
4814
4826
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectLazySearchComponent, decorators: [{
4815
4827
  type: Component,
4816
4828
  args: [{ selector: 'kles-form-select-lazy-search', template: `
4817
4829
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
4818
- @if (field.label) {
4819
- <mat-label>{{ field.label }}</mat-label>
4830
+ @if (label()) {
4831
+ <mat-label>{{ label() }}</mat-label>
4820
4832
  }
4821
4833
 
4822
4834
  <mat-select
4823
- matTooltip="{{ field.tooltip }}"
4835
+ [matTooltip]="tooltip()"
4824
4836
  [attr.id]="field.id"
4825
4837
  [ngClass]="ngClass()"
4826
4838
  (openedChange)="openChange($event)"
4827
4839
  [compareWith]="compareFn"
4828
4840
  [panelWidth]="field.panelWidth || 'auto'"
4829
- [placeholder]="field.placeholder"
4841
+ [placeholder]="placeholder()"
4830
4842
  [formControlName]="field.name"
4831
4843
  [multiple]="field.multiple"
4832
4844
  >
@@ -4940,7 +4952,7 @@ class KlesFabComponent extends KlesButtonBase {
4940
4952
  multi: true
4941
4953
  }
4942
4954
  ], usesInheritance: true, ngImport: i0, template: `
4943
- <button mat-fab [extended]="!!label" [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
4955
+ <button matFab [extended]="!!label" [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
4944
4956
  (click)="click($event)" [matTooltip]="tooltip">
4945
4957
  {{label}}
4946
4958
 
@@ -4952,14 +4964,14 @@ class KlesFabComponent extends KlesButtonBase {
4952
4964
  <mat-icon svgIcon="{{iconSvg}}"></mat-icon>
4953
4965
  }
4954
4966
  </button>
4955
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$3.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }] }); }
4967
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$4.MatFabButton, selector: "button[mat-fab], a[mat-fab], button[matFab], a[matFab]", inputs: ["extended"], exportAs: ["matButton", "matAnchor"] }] }); }
4956
4968
  }
4957
4969
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFabComponent, decorators: [{
4958
4970
  type: Component,
4959
4971
  args: [{
4960
4972
  selector: 'kles-fab',
4961
4973
  template: `
4962
- <button mat-fab [extended]="!!label" [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
4974
+ <button matFab [extended]="!!label" [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
4963
4975
  (click)="click($event)" [matTooltip]="tooltip">
4964
4976
  {{label}}
4965
4977
 
@@ -4993,37 +5005,45 @@ class KlesFormFabComponent extends KlesFieldAbstract {
4993
5005
  }
4994
5006
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormFabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4995
5007
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormFabComponent, isStandalone: true, selector: "kles-form-fab", usesInheritance: true, ngImport: i0, template: `
4996
- <div [formGroup]="group">
4997
- <kles-fab
4998
- [attr.id]="field.id" [classButton]="ngClass()"
4999
- [name]="field.name" [label]="field.label" [color]="color()"
5000
- [icon]="icon()"
5001
- [iconSvg]="iconSvg()"
5002
- [value]="field.value"
5003
- [formControlName]="field.name"
5004
- [tooltip]="field.tooltip"
5005
- [type]="field.buttonType"
5008
+ <div [formGroup]="group">
5009
+ <kles-fab
5010
+ [attr.id]="field.id"
5011
+ [classButton]="ngClass()"
5012
+ [name]="field.name"
5013
+ [label]="label()"
5014
+ [color]="color()"
5015
+ [icon]="icon()"
5016
+ [iconSvg]="iconSvg()"
5017
+ [value]="field.value"
5018
+ [formControlName]="field.name"
5019
+ [tooltip]="tooltip()"
5020
+ [type]="field.buttonType"
5021
+ (action)="triggerAction(field.name, $event)"
5006
5022
  >
5007
- </kles-fab>
5008
- </div>
5023
+ </kles-fab>
5024
+ </div>
5009
5025
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: KlesFabComponent, selector: "kles-fab" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
5010
5026
  }
5011
5027
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormFabComponent, decorators: [{
5012
5028
  type: Component,
5013
5029
  args: [{ selector: 'kles-form-fab', template: `
5014
- <div [formGroup]="group">
5015
- <kles-fab
5016
- [attr.id]="field.id" [classButton]="ngClass()"
5017
- [name]="field.name" [label]="field.label" [color]="color()"
5018
- [icon]="icon()"
5019
- [iconSvg]="iconSvg()"
5020
- [value]="field.value"
5021
- [formControlName]="field.name"
5022
- [tooltip]="field.tooltip"
5023
- [type]="field.buttonType"
5030
+ <div [formGroup]="group">
5031
+ <kles-fab
5032
+ [attr.id]="field.id"
5033
+ [classButton]="ngClass()"
5034
+ [name]="field.name"
5035
+ [label]="label()"
5036
+ [color]="color()"
5037
+ [icon]="icon()"
5038
+ [iconSvg]="iconSvg()"
5039
+ [value]="field.value"
5040
+ [formControlName]="field.name"
5041
+ [tooltip]="tooltip()"
5042
+ [type]="field.buttonType"
5043
+ (action)="triggerAction(field.name, $event)"
5024
5044
  >
5025
- </kles-fab>
5026
- </div>
5045
+ </kles-fab>
5046
+ </div>
5027
5047
  `, standalone: true, imports: [MatIconModule, MatTooltipModule, MatButtonModule, KlesFabComponent, ReactiveFormsModule] }]
5028
5048
  }] });
5029
5049
 
@@ -5036,7 +5056,7 @@ class KlesMiniFabComponent extends KlesButtonBase {
5036
5056
  multi: true
5037
5057
  }
5038
5058
  ], usesInheritance: true, ngImport: i0, template: `
5039
- <button mat-mini-fab extended [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
5059
+ <button matMiniFab [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
5040
5060
  (click)="click($event)" [matTooltip]="tooltip">
5041
5061
  {{label}}
5042
5062
 
@@ -5048,14 +5068,14 @@ class KlesMiniFabComponent extends KlesButtonBase {
5048
5068
  <mat-icon svgIcon="{{iconSvg}}"></mat-icon>
5049
5069
  }
5050
5070
  </button>
5051
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$3.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }] }); }
5071
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$4.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }] }); }
5052
5072
  }
5053
5073
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesMiniFabComponent, decorators: [{
5054
5074
  type: Component,
5055
5075
  args: [{
5056
5076
  selector: 'kles-mini-fab',
5057
5077
  template: `
5058
- <button mat-mini-fab extended [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
5078
+ <button matMiniFab [type]="type" [ngClass]="classButton" [color]="(color)?color:'primary'" [disabled]="disabled"
5059
5079
  (click)="click($event)" [matTooltip]="tooltip">
5060
5080
  {{label}}
5061
5081
 
@@ -5092,13 +5112,14 @@ class KlesFormMiniFabComponent extends KlesFieldAbstract {
5092
5112
  <div [formGroup]="group">
5093
5113
  <kles-mini-fab
5094
5114
  [attr.id]="field.id" [classButton]="ngClass()"
5095
- [name]="field.name" [label]="field.label" [color]="color()"
5115
+ [name]="field.name" [label]="label()" [color]="color()"
5096
5116
  [icon]="icon()"
5097
5117
  [iconSvg]="iconSvg()"
5098
5118
  [value]="field.value"
5099
5119
  [formControlName]="field.name"
5100
- [tooltip]="field.tooltip"
5120
+ [tooltip]="tooltip()"
5101
5121
  [type]="field.buttonType"
5122
+ (action)="triggerAction(field.name, $event)"
5102
5123
  >
5103
5124
  </kles-mini-fab>
5104
5125
  </div>
@@ -5110,13 +5131,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5110
5131
  <div [formGroup]="group">
5111
5132
  <kles-mini-fab
5112
5133
  [attr.id]="field.id" [classButton]="ngClass()"
5113
- [name]="field.name" [label]="field.label" [color]="color()"
5134
+ [name]="field.name" [label]="label()" [color]="color()"
5114
5135
  [icon]="icon()"
5115
5136
  [iconSvg]="iconSvg()"
5116
5137
  [value]="field.value"
5117
5138
  [formControlName]="field.name"
5118
- [tooltip]="field.tooltip"
5139
+ [tooltip]="tooltip()"
5119
5140
  [type]="field.buttonType"
5141
+ (action)="triggerAction(field.name, $event)"
5120
5142
  >
5121
5143
  </kles-mini-fab>
5122
5144
  </div>
@@ -5132,21 +5154,21 @@ class KlesIconButtonComponent extends KlesButtonBase {
5132
5154
  multi: true,
5133
5155
  },
5134
5156
  ], usesInheritance: true, ngImport: i0, template: `
5135
- <button mat-icon-button [type]="type" [ngClass]="classButton" [color]="color ? color : 'primary'" [disabled]="disabled" (click)="click($event)" [matTooltip]="tooltip">
5157
+ <button matIconButton [type]="type" [ngClass]="classButton" [color]="color ? color : 'primary'" [disabled]="disabled" (click)="click($event)" [matTooltip]="tooltip">
5136
5158
  @if (icon) {
5137
5159
  <mat-icon>{{ icon }}</mat-icon>
5138
5160
  } @if (iconSvg) {
5139
5161
  <mat-icon svgIcon="{{ iconSvg }}"></mat-icon>
5140
5162
  }
5141
5163
  </button>
5142
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
5164
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
5143
5165
  }
5144
5166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesIconButtonComponent, decorators: [{
5145
5167
  type: Component,
5146
5168
  args: [{
5147
5169
  selector: 'kles-icon-button',
5148
5170
  template: `
5149
- <button mat-icon-button [type]="type" [ngClass]="classButton" [color]="color ? color : 'primary'" [disabled]="disabled" (click)="click($event)" [matTooltip]="tooltip">
5171
+ <button matIconButton [type]="type" [ngClass]="classButton" [color]="color ? color : 'primary'" [disabled]="disabled" (click)="click($event)" [matTooltip]="tooltip">
5150
5172
  @if (icon) {
5151
5173
  <mat-icon>{{ icon }}</mat-icon>
5152
5174
  } @if (iconSvg) {
@@ -5175,37 +5197,43 @@ class KlesFormIconButtonComponent extends KlesFieldAbstract {
5175
5197
  }
5176
5198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormIconButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5177
5199
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormIconButtonComponent, isStandalone: true, selector: "kles-form-icon-button", usesInheritance: true, ngImport: i0, template: `
5178
- <div [formGroup]="group">
5179
- <kles-icon-button
5180
- [attr.id]="field.id" [classButton]="ngClass()"
5181
- [name]="field.name" [color]="color()"
5182
- [icon]="icon()"
5183
- [iconSvg]="iconSvg()"
5184
- [value]="field.value"
5185
- [formControlName]="field.name"
5186
- [tooltip]="field.tooltip"
5187
- [type]="field.buttonType"
5200
+ <div [formGroup]="group">
5201
+ <kles-icon-button
5202
+ [attr.id]="field.id"
5203
+ [classButton]="ngClass()"
5204
+ [name]="field.name"
5205
+ [color]="color()"
5206
+ [icon]="icon()"
5207
+ [iconSvg]="iconSvg()"
5208
+ [value]="field.value"
5209
+ [formControlName]="field.name"
5210
+ [tooltip]="tooltip()"
5211
+ [type]="field.buttonType"
5212
+ (action)="triggerAction(field.name, $event)"
5188
5213
  >
5189
- </kles-icon-button>
5190
- </div>
5214
+ </kles-icon-button>
5215
+ </div>
5191
5216
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: KlesIconButtonComponent, selector: "kles-icon-button" }] }); }
5192
5217
  }
5193
5218
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormIconButtonComponent, decorators: [{
5194
5219
  type: Component,
5195
5220
  args: [{ selector: 'kles-form-icon-button', template: `
5196
- <div [formGroup]="group">
5197
- <kles-icon-button
5198
- [attr.id]="field.id" [classButton]="ngClass()"
5199
- [name]="field.name" [color]="color()"
5200
- [icon]="icon()"
5201
- [iconSvg]="iconSvg()"
5202
- [value]="field.value"
5203
- [formControlName]="field.name"
5204
- [tooltip]="field.tooltip"
5205
- [type]="field.buttonType"
5221
+ <div [formGroup]="group">
5222
+ <kles-icon-button
5223
+ [attr.id]="field.id"
5224
+ [classButton]="ngClass()"
5225
+ [name]="field.name"
5226
+ [color]="color()"
5227
+ [icon]="icon()"
5228
+ [iconSvg]="iconSvg()"
5229
+ [value]="field.value"
5230
+ [formControlName]="field.name"
5231
+ [tooltip]="tooltip()"
5232
+ [type]="field.buttonType"
5233
+ (action)="triggerAction(field.name, $event)"
5206
5234
  >
5207
- </kles-icon-button>
5208
- </div>
5235
+ </kles-icon-button>
5236
+ </div>
5209
5237
  `, standalone: true, imports: [ReactiveFormsModule, KlesIconButtonComponent] }]
5210
5238
  }] });
5211
5239
 
@@ -5271,11 +5299,11 @@ class KlesFormSelectionListSearchComponent extends KlesFieldAbstract {
5271
5299
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormSelectionListSearchComponent, isStandalone: true, selector: "kles-form-selection-list-search", usesInheritance: true, ngImport: i0, template: `
5272
5300
  <div class="selection-list" [formGroup]="group">
5273
5301
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [appearance]="appearance()">
5274
- @if (field.label) {
5275
- <mat-label>{{ field.label }}</mat-label>
5302
+ @if (label()) {
5303
+ <mat-label>{{ label() }}</mat-label>
5276
5304
  }
5277
- <input matInput [placeholder]="field.placeholder" [formControl]="searchControl" />
5278
- <button matSuffix mat-icon-button aria-label="Clear" (click)="searchControl.reset(); $event.stopPropagation()">
5305
+ <input matInput [placeholder]="placeholder()" [formControl]="searchControl" />
5306
+ <button matSuffix matIconButton aria-label="Clear" (click)="searchControl.reset(); $event.stopPropagation()">
5279
5307
  <mat-icon>close</mat-icon>
5280
5308
  </button>
5281
5309
  </mat-form-field>
@@ -5306,18 +5334,18 @@ class KlesFormSelectionListSearchComponent extends KlesFieldAbstract {
5306
5334
  }
5307
5335
  </mat-selection-list>
5308
5336
  </div>
5309
- `, isInline: true, styles: [".selection-list{display:flex;flex-direction:column;gap:5px}\n", "mat-selection-list{width:100%;height:250px;overflow:auto;flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3$4.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i3$4.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
5337
+ `, isInline: true, styles: [".selection-list{display:flex;flex-direction:column;gap:5px}\n", "mat-selection-list{width:100%;height:250px;overflow:auto;flex-grow:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i3.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i3.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i3.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3$3.MatSelectionList, selector: "mat-selection-list", inputs: ["color", "compareWith", "multiple", "hideSingleSelectionIndicator", "disabled"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i3$3.MatListOption, selector: "mat-list-option", inputs: ["togglePosition", "checkboxPosition", "color", "value", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] }); }
5310
5338
  }
5311
5339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectionListSearchComponent, decorators: [{
5312
5340
  type: Component,
5313
5341
  args: [{ selector: 'kles-form-selection-list-search', template: `
5314
5342
  <div class="selection-list" [formGroup]="group">
5315
5343
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [appearance]="appearance()">
5316
- @if (field.label) {
5317
- <mat-label>{{ field.label }}</mat-label>
5344
+ @if (label()) {
5345
+ <mat-label>{{ label() }}</mat-label>
5318
5346
  }
5319
- <input matInput [placeholder]="field.placeholder" [formControl]="searchControl" />
5320
- <button matSuffix mat-icon-button aria-label="Clear" (click)="searchControl.reset(); $event.stopPropagation()">
5347
+ <input matInput [placeholder]="placeholder()" [formControl]="searchControl" />
5348
+ <button matSuffix matIconButton aria-label="Clear" (click)="searchControl.reset(); $event.stopPropagation()">
5321
5349
  <mat-icon>close</mat-icon>
5322
5350
  </button>
5323
5351
  </mat-form-field>
@@ -5454,11 +5482,11 @@ let KlesFormCheckboxIndeterminateComponent = class KlesFormCheckboxIndeterminate
5454
5482
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormCheckboxIndeterminateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5455
5483
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormCheckboxIndeterminateComponent, isStandalone: true, selector: "kles-form-checkbox-indeterminate", usesInheritance: true, ngImport: i0, template: `
5456
5484
  <div [formGroup]="group">
5457
- <kles-checkbox-indeterminate matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{
5458
- field.label
5485
+ <kles-checkbox-indeterminate [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{
5486
+ label()
5459
5487
  }}</kles-checkbox-indeterminate>
5460
5488
  </div>
5461
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: KlesIndeterminateCheckboxComponent, selector: "kles-checkbox-indeterminate", inputs: ["label", "color"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
5489
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: KlesIndeterminateCheckboxComponent, selector: "kles-checkbox-indeterminate", inputs: ["label", "color"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
5462
5490
  };
5463
5491
  KlesFormCheckboxIndeterminateComponent = __decorate([
5464
5492
  FieldMapper({ type: EnumType.checkbox })
@@ -5467,8 +5495,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5467
5495
  type: Component,
5468
5496
  args: [{ selector: 'kles-form-checkbox-indeterminate', template: `
5469
5497
  <div [formGroup]="group">
5470
- <kles-checkbox-indeterminate matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{
5471
- field.label
5498
+ <kles-checkbox-indeterminate [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{
5499
+ label()
5472
5500
  }}</kles-checkbox-indeterminate>
5473
5501
  </div>
5474
5502
  `, standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule, KlesIndeterminateCheckboxComponent, MatTooltipModule] }]
@@ -5563,13 +5591,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5563
5591
  class KlesFormDateTimeComponent extends KlesFieldAbstract {
5564
5592
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5565
5593
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormDateTimeComponent, isStandalone: true, selector: "kles-form-datetimepicker", usesInheritance: true, ngImport: i0, template: `
5566
- <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="field.color" [formGroup]="group" [appearance]="field.appearance">
5567
- @if (field.label) {
5568
- <mat-label>{{ field.label }}</mat-label>
5594
+ <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()">
5595
+ @if (label()) {
5596
+ <mat-label>{{ label() }}</mat-label>
5569
5597
  }
5570
5598
 
5571
- <input matInput matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="field.ngClass" [matDatepicker]="picker" [formControlName]="field.name"
5572
- [placeholder]="field.placeholder | translate" [min]="field.min" [max]="field.max">
5599
+ <input matInput [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="field.ngClass" [matDatepicker]="picker" [formControlName]="field.name"
5600
+ [placeholder]="placeholder()" [min]="field.min" [max]="field.max">
5573
5601
  <div matSuffix class="suffix">
5574
5602
  <mat-datepicker-toggle [for]="picker"></mat-datepicker-toggle>
5575
5603
  <ng-content></ng-content>
@@ -5577,24 +5605,24 @@ class KlesFormDateTimeComponent extends KlesFieldAbstract {
5577
5605
 
5578
5606
  <kles-mat-datepicker #picker [hasBackdrop]="false"></kles-mat-datepicker>
5579
5607
 
5580
- @if (field.hint) {
5581
- <mat-hint>{{ field.hint }}</mat-hint>
5608
+ @if (hint()) {
5609
+ <mat-hint>{{ hint() }}</mat-hint>
5582
5610
  }
5583
5611
 
5584
5612
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
5585
5613
  </mat-form-field>
5586
- `, isInline: true, styles: ["mat-form-field{width:100%}\n", ".suffix{display:flex;flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "directive", type: i3$2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: KlesMaterialDatepickerModule }, { kind: "component", type: i4$4.KlesMatDatepicker, selector: "kles-mat-datepicker", outputs: ["timeSelected"], exportAs: ["klesMatDatepicker"] }, { kind: "pipe", type: i5$1.TranslatePipe, name: "translate" }] }); }
5614
+ `, isInline: true, styles: ["mat-form-field{width:100%}\n", ".suffix{display:flex;flex-direction:row}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "directive", type: i3$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "ngmodule", type: KlesMaterialDatepickerModule }, { kind: "component", type: i4$5.KlesMatDatepicker, selector: "kles-mat-datepicker", outputs: ["timeSelected"], exportAs: ["klesMatDatepicker"] }] }); }
5587
5615
  }
5588
5616
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormDateTimeComponent, decorators: [{
5589
5617
  type: Component,
5590
5618
  args: [{ selector: 'kles-form-datetimepicker', template: `
5591
- <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="field.color" [formGroup]="group" [appearance]="field.appearance">
5592
- @if (field.label) {
5593
- <mat-label>{{ field.label }}</mat-label>
5619
+ <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()">
5620
+ @if (label()) {
5621
+ <mat-label>{{ label() }}</mat-label>
5594
5622
  }
5595
5623
 
5596
- <input matInput matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="field.ngClass" [matDatepicker]="picker" [formControlName]="field.name"
5597
- [placeholder]="field.placeholder | translate" [min]="field.min" [max]="field.max">
5624
+ <input matInput [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="field.ngClass" [matDatepicker]="picker" [formControlName]="field.name"
5625
+ [placeholder]="placeholder()" [min]="field.min" [max]="field.max">
5598
5626
  <div matSuffix class="suffix">
5599
5627
  <mat-datepicker-toggle [for]="picker"></mat-datepicker-toggle>
5600
5628
  <ng-content></ng-content>
@@ -5602,8 +5630,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5602
5630
 
5603
5631
  <kles-mat-datepicker #picker [hasBackdrop]="false"></kles-mat-datepicker>
5604
5632
 
5605
- @if (field.hint) {
5606
- <mat-hint>{{ field.hint }}</mat-hint>
5633
+ @if (hint()) {
5634
+ <mat-hint>{{ hint() }}</mat-hint>
5607
5635
  }
5608
5636
 
5609
5637
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
@@ -5619,7 +5647,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5619
5647
  MatInput,
5620
5648
  MatTooltip,
5621
5649
  MatDatepickerModule,
5622
- TranslateModule,
5623
5650
  MatErrorMessageDirective,
5624
5651
  KlesMaterialDatepickerModule
5625
5652
  ], styles: ["mat-form-field{width:100%}\n", ".suffix{display:flex;flex-direction:row}\n"] }]
@@ -5645,17 +5672,17 @@ class KlesFormCopyComponent {
5645
5672
  }
5646
5673
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormCopyComponent, deps: [{ token: i1$2.Clipboard }], target: i0.ɵɵFactoryTarget.Component }); }
5647
5674
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormCopyComponent, isStandalone: true, selector: "kles-form-copy", viewQueries: [{ propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], ngImport: i0, template: `
5648
- <button #tooltip="matTooltip" mat-icon-button color="primary" type="button" (click)="copy($event)" [matTooltipDisabled]="true" [matTooltip]="tooltipText" matTooltipPosition="above">
5675
+ <button #tooltip="matTooltip" matIconButton color="primary" type="button" (click)="copy($event)" [matTooltipDisabled]="true" [matTooltip]="tooltipText" matTooltipPosition="above">
5649
5676
  <mat-icon>content_copy</mat-icon>
5650
5677
  </button>
5651
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$3.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ClipboardModule }] }); }
5678
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: ClipboardModule }] }); }
5652
5679
  }
5653
5680
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormCopyComponent, decorators: [{
5654
5681
  type: Component,
5655
5682
  args: [{
5656
5683
  selector: 'kles-form-copy',
5657
5684
  template: `
5658
- <button #tooltip="matTooltip" mat-icon-button color="primary" type="button" (click)="copy($event)" [matTooltipDisabled]="true" [matTooltip]="tooltipText" matTooltipPosition="above">
5685
+ <button #tooltip="matTooltip" matIconButton color="primary" type="button" (click)="copy($event)" [matTooltipDisabled]="true" [matTooltip]="tooltipText" matTooltipPosition="above">
5659
5686
  <mat-icon>content_copy</mat-icon>
5660
5687
  </button>
5661
5688
  `,
@@ -5667,6 +5694,705 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5667
5694
  args: ['tooltip']
5668
5695
  }] } });
5669
5696
 
5697
+ let KlesFormActionMenuComponent = class KlesFormActionMenuComponent extends KlesFieldAbstract {
5698
+ constructor() {
5699
+ super(...arguments);
5700
+ /**
5701
+ * Configuration du field avec le typage spécialisé.
5702
+ */
5703
+ this.actionField = this.field;
5704
+ this.control = this.group.controls[this.field.name];
5705
+ this.controlStatus = toSignal(this.control.statusChanges, {
5706
+ initialValue: this.control.status,
5707
+ });
5708
+ /**
5709
+ * Options statiques ou asynchrones.
5710
+ */
5711
+ this.actionsSource$ = defer(() => this.resolveOptions());
5712
+ this.actions = toSignal(this.actionsSource$, {
5713
+ initialValue: [],
5714
+ });
5715
+ this.disabled = computed(() => {
5716
+ this.controlStatus();
5717
+ return this.control.disabled;
5718
+ }, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
5719
+ this.visibleActions = computed(() => this.actions().filter((action) => this.resolveCondition(action.visible, true)), ...(ngDevMode ? [{ debugName: "visibleActions" }] : /* istanbul ignore next */ []));
5720
+ this.ariaLabel = computed(() => this.label() || this.tooltip() || 'Actions', ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
5721
+ }
5722
+ onTriggerClick(event) {
5723
+ event.stopPropagation();
5724
+ }
5725
+ isDisabled(action) {
5726
+ return this.disabled() || this.resolveCondition(action.disabled, false);
5727
+ }
5728
+ execute(action, event) {
5729
+ if (this.isDisabled(action)) {
5730
+ event.stopPropagation();
5731
+ return;
5732
+ }
5733
+ this.triggerAction(action.id, event, action);
5734
+ }
5735
+ resolveCondition(condition, defaultValue) {
5736
+ if (typeof condition === 'function') {
5737
+ return condition(this.context?.() ?? null, this.field, this.group);
5738
+ }
5739
+ return condition ?? defaultValue;
5740
+ }
5741
+ resolveOptions() {
5742
+ const options = this.actionField.options;
5743
+ if (options instanceof Observable) {
5744
+ return options;
5745
+ }
5746
+ if (typeof options === 'function') {
5747
+ return options(undefined, this.group.getRawValue());
5748
+ }
5749
+ return of(options ?? []);
5750
+ }
5751
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormActionMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5752
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormActionMenuComponent, isStandalone: true, selector: "kles-form-action-menu", usesInheritance: true, ngImport: i0, template: `
5753
+ <button
5754
+ matIconButton
5755
+ type="button"
5756
+ [attr.id]="field.id"
5757
+ [attr.aria-label]="ariaLabel()"
5758
+ [disabled]="disabled()"
5759
+ [matTooltip]="tooltip() || ''"
5760
+ [matMenuTriggerFor]="actionMenu"
5761
+ [ngClass]="ngClass()"
5762
+ [ngStyle]="ngStyle()"
5763
+ (click)="onTriggerClick($event)"
5764
+ >
5765
+ @if (iconSvg()) {
5766
+ <mat-icon [svgIcon]="iconSvg()!" />
5767
+ } @else {
5768
+ <mat-icon>
5769
+ {{ icon() || 'more_vert' }}
5770
+ </mat-icon>
5771
+ }
5772
+ </button>
5773
+
5774
+ <mat-menu #actionMenu="matMenu" [xPosition]="actionField.menuXPosition || 'before'" [yPosition]="actionField.menuYPosition || 'below'">
5775
+ @for (action of visibleActions(); track action.id) {
5776
+ @if (action.dividerBefore) {
5777
+ <mat-divider />
5778
+ }
5779
+
5780
+ <button mat-menu-item type="button" [disabled]="isDisabled(action)" [class.kles-action-menu__warn]="action.color === 'warn'" (click)="execute(action, $event)">
5781
+ @if (action.iconSvg) {
5782
+ <mat-icon [svgIcon]="action.iconSvg" />
5783
+ } @else if (action.icon) {
5784
+ <mat-icon>
5785
+ {{ action.icon }}
5786
+ </mat-icon>
5787
+ }
5788
+
5789
+ <span>
5790
+ {{ action.label }}
5791
+ </span>
5792
+ </button>
5793
+ }
5794
+ </mat-menu>
5795
+ `, isInline: true, styles: [".kles-action-menu__warn{color:var(--mat-sys-error)}.kles-action-menu__warn mat-icon{color:var(--mat-sys-error)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3$3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5796
+ };
5797
+ KlesFormActionMenuComponent = __decorate([
5798
+ FieldMapper({
5799
+ type: 'actionMenu',
5800
+ })
5801
+ ], KlesFormActionMenuComponent);
5802
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormActionMenuComponent, decorators: [{
5803
+ type: Component,
5804
+ args: [{ selector: 'kles-form-action-menu', standalone: true, imports: [CommonModule, MatButtonModule, MatDividerModule, MatIconModule, MatMenuModule, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
5805
+ <button
5806
+ matIconButton
5807
+ type="button"
5808
+ [attr.id]="field.id"
5809
+ [attr.aria-label]="ariaLabel()"
5810
+ [disabled]="disabled()"
5811
+ [matTooltip]="tooltip() || ''"
5812
+ [matMenuTriggerFor]="actionMenu"
5813
+ [ngClass]="ngClass()"
5814
+ [ngStyle]="ngStyle()"
5815
+ (click)="onTriggerClick($event)"
5816
+ >
5817
+ @if (iconSvg()) {
5818
+ <mat-icon [svgIcon]="iconSvg()!" />
5819
+ } @else {
5820
+ <mat-icon>
5821
+ {{ icon() || 'more_vert' }}
5822
+ </mat-icon>
5823
+ }
5824
+ </button>
5825
+
5826
+ <mat-menu #actionMenu="matMenu" [xPosition]="actionField.menuXPosition || 'before'" [yPosition]="actionField.menuYPosition || 'below'">
5827
+ @for (action of visibleActions(); track action.id) {
5828
+ @if (action.dividerBefore) {
5829
+ <mat-divider />
5830
+ }
5831
+
5832
+ <button mat-menu-item type="button" [disabled]="isDisabled(action)" [class.kles-action-menu__warn]="action.color === 'warn'" (click)="execute(action, $event)">
5833
+ @if (action.iconSvg) {
5834
+ <mat-icon [svgIcon]="action.iconSvg" />
5835
+ } @else if (action.icon) {
5836
+ <mat-icon>
5837
+ {{ action.icon }}
5838
+ </mat-icon>
5839
+ }
5840
+
5841
+ <span>
5842
+ {{ action.label }}
5843
+ </span>
5844
+ </button>
5845
+ }
5846
+ </mat-menu>
5847
+ `, styles: [".kles-action-menu__warn{color:var(--mat-sys-error)}.kles-action-menu__warn mat-icon{color:var(--mat-sys-error)}\n"] }]
5848
+ }] });
5849
+
5850
+ class KlesFormTileComponent extends KlesFieldAbstract {
5851
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5852
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormTileComponent, isStandalone: true, selector: "app-kles-form-tile", usesInheritance: true, ngImport: i0, template: `
5853
+ <div class="kles-tile" [ngClass]="ngClass()" [ngStyle]="ngStyle()" [matTooltip]="tooltip()">
5854
+ @if (imageUrl()) {
5855
+ <img class="kles-tile__image" [src]="imageUrl()" [alt]="imageAlt()" />
5856
+ }
5857
+
5858
+ <div class="kles-tile__content">
5859
+ @if (label()) {
5860
+ <div class="kles-tile__label">
5861
+ {{ label() }}
5862
+ </div>
5863
+ }
5864
+
5865
+ @if (hint()) {
5866
+ <div class="kles-tile__hint">
5867
+ {{ hint() }}
5868
+ </div>
5869
+ }
5870
+ </div>
5871
+ </div>
5872
+ `, isInline: true, styles: [":host{display:block;width:100%}.kles-tile{display:flex;align-items:center;min-width:0;gap:12px;padding:8px}.kles-tile__image{width:36px;height:36px;flex:0 0 36px;object-fit:contain}.kles-tile__content{display:flex;flex-direction:column;min-width:0;gap:2px}.kles-tile__label{overflow:hidden;color:var(--mat-sys-on-surface);font-size:14px;font-weight:500;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.kles-tile__hint{overflow:hidden;color:var(--mat-sys-on-surface-variant);font-size:12px;font-weight:400;line-height:16px;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5873
+ }
5874
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTileComponent, decorators: [{
5875
+ type: Component,
5876
+ args: [{ selector: 'app-kles-form-tile', standalone: true, imports: [CommonModule, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
5877
+ <div class="kles-tile" [ngClass]="ngClass()" [ngStyle]="ngStyle()" [matTooltip]="tooltip()">
5878
+ @if (imageUrl()) {
5879
+ <img class="kles-tile__image" [src]="imageUrl()" [alt]="imageAlt()" />
5880
+ }
5881
+
5882
+ <div class="kles-tile__content">
5883
+ @if (label()) {
5884
+ <div class="kles-tile__label">
5885
+ {{ label() }}
5886
+ </div>
5887
+ }
5888
+
5889
+ @if (hint()) {
5890
+ <div class="kles-tile__hint">
5891
+ {{ hint() }}
5892
+ </div>
5893
+ }
5894
+ </div>
5895
+ </div>
5896
+ `, styles: [":host{display:block;width:100%}.kles-tile{display:flex;align-items:center;min-width:0;gap:12px;padding:8px}.kles-tile__image{width:36px;height:36px;flex:0 0 36px;object-fit:contain}.kles-tile__content{display:flex;flex-direction:column;min-width:0;gap:2px}.kles-tile__label{overflow:hidden;color:var(--mat-sys-on-surface);font-size:14px;font-weight:500;line-height:20px;text-overflow:ellipsis;white-space:nowrap}.kles-tile__hint{overflow:hidden;color:var(--mat-sys-on-surface-variant);font-size:12px;font-weight:400;line-height:16px;text-overflow:ellipsis;white-space:nowrap}\n"] }]
5897
+ }] });
5898
+
5899
+ /**
5900
+ * ValueAccessor monétaire.
5901
+ *
5902
+ * La valeur du FormControl reste un number | null.
5903
+ * Seule la valeur affichée dans l'input est formatée.
5904
+ */
5905
+ class KlesCurrencyValueAccessorDirective {
5906
+ constructor() {
5907
+ /**
5908
+ * Public pour rester compatible avec le mécanisme
5909
+ * nativeElement utilisé par la librairie.
5910
+ */
5911
+ this._elementRef = inject(ElementRef);
5912
+ this.renderer = inject(Renderer2);
5913
+ this.currency = 'EUR';
5914
+ this.locale = 'fr-FR';
5915
+ this.currencyDisplay = 'symbol';
5916
+ this.useGrouping = true;
5917
+ this.allowNegative = true;
5918
+ this.currentValue = null;
5919
+ this.focused = false;
5920
+ this.onChange = () => { };
5921
+ this.onTouched = () => { };
5922
+ }
5923
+ ngOnChanges(changes) {
5924
+ if (!this.focused) {
5925
+ this.renderFormattedValue();
5926
+ }
5927
+ }
5928
+ writeValue(value) {
5929
+ this.currentValue = this.normalizeModelValue(value);
5930
+ if (!this.focused) {
5931
+ this.renderFormattedValue();
5932
+ }
5933
+ }
5934
+ registerOnChange(callback) {
5935
+ this.onChange = callback;
5936
+ }
5937
+ registerOnTouched(callback) {
5938
+ this.onTouched = callback;
5939
+ }
5940
+ setDisabledState(disabled) {
5941
+ this.renderer.setProperty(this._elementRef.nativeElement, 'disabled', disabled);
5942
+ }
5943
+ handleFocus() {
5944
+ this.focused = true;
5945
+ this.setInputValue(this.formatEditableValue(this.currentValue));
5946
+ }
5947
+ handleInput(event) {
5948
+ const input = event.target;
5949
+ const rawValue = input.value;
5950
+ if (rawValue.trim() === '') {
5951
+ this.currentValue = null;
5952
+ this.onChange(null);
5953
+ return;
5954
+ }
5955
+ const parsedValue = this.parseLocalizedNumber(rawValue);
5956
+ /*
5957
+ * Une saisie intermédiaire comme "-" ou ","
5958
+ * n'écrase pas encore le FormControl.
5959
+ */
5960
+ if (parsedValue === null) {
5961
+ return;
5962
+ }
5963
+ if (!this.allowNegative && parsedValue < 0) {
5964
+ return;
5965
+ }
5966
+ this.currentValue = parsedValue;
5967
+ this.onChange(parsedValue);
5968
+ }
5969
+ handleBlur() {
5970
+ this.focused = false;
5971
+ this.renderFormattedValue();
5972
+ this.onTouched();
5973
+ }
5974
+ normalizeModelValue(value) {
5975
+ if (value === null || value === undefined || value === '') {
5976
+ return null;
5977
+ }
5978
+ const numberValue = typeof value === 'number' ? value : Number(value);
5979
+ return Number.isFinite(numberValue) ? numberValue : null;
5980
+ }
5981
+ renderFormattedValue() {
5982
+ this.setInputValue(this.formatCurrency(this.currentValue));
5983
+ }
5984
+ setInputValue(value) {
5985
+ this.renderer.setProperty(this._elementRef.nativeElement, 'value', value);
5986
+ }
5987
+ formatCurrency(value) {
5988
+ if (value === null) {
5989
+ return '';
5990
+ }
5991
+ const options = this.createCurrencyFormatOptions();
5992
+ return new Intl.NumberFormat(this.locale, options).format(value);
5993
+ }
5994
+ /**
5995
+ * Pendant l'édition, on retire le symbole et
5996
+ * les séparateurs de milliers.
5997
+ */
5998
+ formatEditableValue(value) {
5999
+ if (value === null) {
6000
+ return '';
6001
+ }
6002
+ return new Intl.NumberFormat(this.locale, {
6003
+ useGrouping: false,
6004
+ maximumFractionDigits: this.maximumFractionDigits ?? 20,
6005
+ }).format(value);
6006
+ }
6007
+ createCurrencyFormatOptions() {
6008
+ const minimum = this.minimumFractionDigits;
6009
+ let maximum = this.maximumFractionDigits;
6010
+ if (minimum !== undefined && maximum !== undefined && maximum < minimum) {
6011
+ maximum = minimum;
6012
+ }
6013
+ return {
6014
+ style: 'currency',
6015
+ currency: this.currency,
6016
+ currencyDisplay: this.currencyDisplay,
6017
+ useGrouping: this.useGrouping,
6018
+ ...(minimum !== undefined
6019
+ ? {
6020
+ minimumFractionDigits: minimum,
6021
+ }
6022
+ : {}),
6023
+ ...(maximum !== undefined
6024
+ ? {
6025
+ maximumFractionDigits: maximum,
6026
+ }
6027
+ : {}),
6028
+ };
6029
+ }
6030
+ parseLocalizedNumber(rawValue) {
6031
+ const parts = new Intl.NumberFormat(this.locale).formatToParts(-12345.6);
6032
+ const groupSeparator = parts.find((part) => part.type === 'group')?.value;
6033
+ const decimalSeparator = parts.find((part) => part.type === 'decimal')?.value ?? '.';
6034
+ const minusSign = parts.find((part) => part.type === 'minusSign')?.value ?? '-';
6035
+ let normalized = this.normalizeLocalizedDigits(rawValue);
6036
+ if (groupSeparator) {
6037
+ normalized = normalized.split(groupSeparator).join('');
6038
+ }
6039
+ normalized = normalized.split(decimalSeparator).join('.');
6040
+ normalized = normalized.split(minusSign).join('-');
6041
+ /*
6042
+ * Retire les symboles monétaires,
6043
+ * espaces et codes de devise.
6044
+ */
6045
+ normalized = normalized.replace(/[^0-9+\-.]/g, '');
6046
+ if (normalized === '' || normalized === '-' || normalized === '+' || normalized === '.' || normalized === '-.' || normalized === '+.') {
6047
+ return null;
6048
+ }
6049
+ const parsed = Number(normalized);
6050
+ return Number.isFinite(parsed) ? parsed : null;
6051
+ }
6052
+ /**
6053
+ * Convertit également les chiffres localisés
6054
+ * vers 0-9.
6055
+ */
6056
+ normalizeLocalizedDigits(value) {
6057
+ const formatter = new Intl.NumberFormat(this.locale, {
6058
+ useGrouping: false,
6059
+ });
6060
+ let normalized = value;
6061
+ for (let digit = 0; digit <= 9; digit++) {
6062
+ const localizedDigit = formatter.formatToParts(digit).find((part) => part.type === 'integer')?.value;
6063
+ if (localizedDigit) {
6064
+ normalized = normalized.split(localizedDigit).join(String(digit));
6065
+ }
6066
+ }
6067
+ return normalized;
6068
+ }
6069
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesCurrencyValueAccessorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6070
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.19", type: KlesCurrencyValueAccessorDirective, isStandalone: true, selector: "input[klesCurrency]", inputs: { currency: "currency", locale: "locale", currencyDisplay: "currencyDisplay", minimumFractionDigits: "minimumFractionDigits", maximumFractionDigits: "maximumFractionDigits", useGrouping: "useGrouping", allowNegative: "allowNegative" }, host: { listeners: { "focus": "handleFocus()", "input": "handleInput($event)", "blur": "handleBlur()" } }, providers: [
6071
+ {
6072
+ provide: NG_VALUE_ACCESSOR,
6073
+ useExisting: forwardRef(() => KlesCurrencyValueAccessorDirective),
6074
+ multi: true,
6075
+ },
6076
+ ], usesOnChanges: true, ngImport: i0 }); }
6077
+ }
6078
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesCurrencyValueAccessorDirective, decorators: [{
6079
+ type: Directive,
6080
+ args: [{
6081
+ selector: 'input[klesCurrency]',
6082
+ standalone: true,
6083
+ providers: [
6084
+ {
6085
+ provide: NG_VALUE_ACCESSOR,
6086
+ useExisting: forwardRef(() => KlesCurrencyValueAccessorDirective),
6087
+ multi: true,
6088
+ },
6089
+ ],
6090
+ }]
6091
+ }], propDecorators: { currency: [{
6092
+ type: Input
6093
+ }], locale: [{
6094
+ type: Input
6095
+ }], currencyDisplay: [{
6096
+ type: Input
6097
+ }], minimumFractionDigits: [{
6098
+ type: Input
6099
+ }], maximumFractionDigits: [{
6100
+ type: Input
6101
+ }], useGrouping: [{
6102
+ type: Input
6103
+ }], allowNegative: [{
6104
+ type: Input
6105
+ }], handleFocus: [{
6106
+ type: HostListener,
6107
+ args: ['focus']
6108
+ }], handleInput: [{
6109
+ type: HostListener,
6110
+ args: ['input', ['$event']]
6111
+ }], handleBlur: [{
6112
+ type: HostListener,
6113
+ args: ['blur']
6114
+ }] } });
6115
+ let KlesFormCurrencyComponent = class KlesFormCurrencyComponent extends KlesFieldAbstract {
6116
+ constructor() {
6117
+ super(...arguments);
6118
+ this.localeId = inject(LOCALE_ID);
6119
+ this.defaultCurrencyCode = inject(DEFAULT_CURRENCY_CODE);
6120
+ }
6121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormCurrencyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormCurrencyComponent, isStandalone: true, selector: "kles-form-currency", usesInheritance: true, ngImport: i0, template: `
6123
+ <mat-form-field [formGroup]="group" [color]="color()" [subscriptSizing]="field.subscriptSizing" [appearance]="appearance()" class="form-element field-bottom">
6124
+ @if (label()) {
6125
+ <mat-label>
6126
+ {{ label() }}
6127
+ </mat-label>
6128
+ }
6129
+
6130
+ @if (icon()) {
6131
+ <mat-icon matPrefix>
6132
+ {{ icon() }}
6133
+ </mat-icon>
6134
+ }
6135
+
6136
+ <input
6137
+ matInput
6138
+ klesCurrency
6139
+ type="text"
6140
+ inputmode="decimal"
6141
+ autocomplete="off"
6142
+ [attr.id]="field.id"
6143
+ [attr.aria-valuemin]="min()"
6144
+ [attr.aria-valuemax]="max()"
6145
+ [ngClass]="ngClass()"
6146
+ [matTooltip]="tooltip()"
6147
+ [formControlName]="field.name"
6148
+ [placeholder]="placeholder()"
6149
+ [currency]="field.currencyOptions?.code || defaultCurrencyCode"
6150
+ [locale]="field.currencyOptions?.locale || localeId"
6151
+ [currencyDisplay]="field.currencyOptions?.display || 'symbol'"
6152
+ [minimumFractionDigits]="field.currencyOptions?.minimumFractionDigits"
6153
+ [maximumFractionDigits]="field.currencyOptions?.maximumFractionDigits"
6154
+ [useGrouping]="field.currencyOptions?.useGrouping !== false"
6155
+ [allowNegative]="field.currencyOptions?.allowNegative !== false"
6156
+ (focus)="onFocus()"
6157
+ (blur)="onBlur()"
6158
+ />
6159
+
6160
+ @if (hint()) {
6161
+ <mat-hint>
6162
+ {{ hint() }}
6163
+ </mat-hint>
6164
+ }
6165
+
6166
+ @if (field.subComponents || field.clearable || isPending()) {
6167
+ <div matSuffix class="suffix">
6168
+ @if (isPending()) {
6169
+ <mat-spinner mode="indeterminate" diameter="21" />
6170
+ }
6171
+
6172
+ @if (field.subComponents || field.clearable) {
6173
+ <ng-content />
6174
+ }
6175
+ </div>
6176
+ }
6177
+
6178
+ <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations" />
6179
+ </mat-form-field>
6180
+ `, isInline: true, styles: [".suffix{display:flex;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", "mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: MatErrorMessageDirective, selector: "[matErrorMessage]", inputs: ["validations", "asyncValidations"] }, { kind: "directive", type: KlesCurrencyValueAccessorDirective, selector: "input[klesCurrency]", inputs: ["currency", "locale", "currencyDisplay", "minimumFractionDigits", "maximumFractionDigits", "useGrouping", "allowNegative"] }] }); }
6181
+ };
6182
+ KlesFormCurrencyComponent = __decorate([
6183
+ FieldMapper({
6184
+ type: EnumType.currency,
6185
+ })
6186
+ ], KlesFormCurrencyComponent);
6187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormCurrencyComponent, decorators: [{
6188
+ type: Component,
6189
+ args: [{ selector: 'kles-form-currency', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, MatIconModule, MatTooltipModule, MatProgressSpinnerModule, MatError, MatErrorMessageDirective, KlesCurrencyValueAccessorDirective], template: `
6190
+ <mat-form-field [formGroup]="group" [color]="color()" [subscriptSizing]="field.subscriptSizing" [appearance]="appearance()" class="form-element field-bottom">
6191
+ @if (label()) {
6192
+ <mat-label>
6193
+ {{ label() }}
6194
+ </mat-label>
6195
+ }
6196
+
6197
+ @if (icon()) {
6198
+ <mat-icon matPrefix>
6199
+ {{ icon() }}
6200
+ </mat-icon>
6201
+ }
6202
+
6203
+ <input
6204
+ matInput
6205
+ klesCurrency
6206
+ type="text"
6207
+ inputmode="decimal"
6208
+ autocomplete="off"
6209
+ [attr.id]="field.id"
6210
+ [attr.aria-valuemin]="min()"
6211
+ [attr.aria-valuemax]="max()"
6212
+ [ngClass]="ngClass()"
6213
+ [matTooltip]="tooltip()"
6214
+ [formControlName]="field.name"
6215
+ [placeholder]="placeholder()"
6216
+ [currency]="field.currencyOptions?.code || defaultCurrencyCode"
6217
+ [locale]="field.currencyOptions?.locale || localeId"
6218
+ [currencyDisplay]="field.currencyOptions?.display || 'symbol'"
6219
+ [minimumFractionDigits]="field.currencyOptions?.minimumFractionDigits"
6220
+ [maximumFractionDigits]="field.currencyOptions?.maximumFractionDigits"
6221
+ [useGrouping]="field.currencyOptions?.useGrouping !== false"
6222
+ [allowNegative]="field.currencyOptions?.allowNegative !== false"
6223
+ (focus)="onFocus()"
6224
+ (blur)="onBlur()"
6225
+ />
6226
+
6227
+ @if (hint()) {
6228
+ <mat-hint>
6229
+ {{ hint() }}
6230
+ </mat-hint>
6231
+ }
6232
+
6233
+ @if (field.subComponents || field.clearable || isPending()) {
6234
+ <div matSuffix class="suffix">
6235
+ @if (isPending()) {
6236
+ <mat-spinner mode="indeterminate" diameter="21" />
6237
+ }
6238
+
6239
+ @if (field.subComponents || field.clearable) {
6240
+ <ng-content />
6241
+ }
6242
+ </div>
6243
+ }
6244
+
6245
+ <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations" />
6246
+ </mat-form-field>
6247
+ `, styles: [".suffix{display:flex;align-items:center}\n", ".field-bottom .mat-mdc-form-field-bottom-align:before{content:none!important}\n", "mat-form-field{width:100%}\n"] }]
6248
+ }] });
6249
+
6250
+ let KlesFormStatusComponent = class KlesFormStatusComponent extends KlesFieldAbstract {
6251
+ constructor() {
6252
+ super(...arguments);
6253
+ this.control = this.group.controls[this.field.name];
6254
+ this.controlValue = toSignal(this.control.valueChanges.pipe(startWith(this.control.value)), {
6255
+ initialValue: this.control.value,
6256
+ });
6257
+ this.controlStatus = toSignal(this.control.statusChanges.pipe(startWith(this.control.status)), {
6258
+ initialValue: this.control.status,
6259
+ });
6260
+ this.appearance = computed(() => this.field.statusOptions?.appearance ?? 'chip', ...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
6261
+ this.showDot = computed(() => this.field.statusOptions?.showDot ?? true, ...(ngDevMode ? [{ debugName: "showDot" }] : /* istanbul ignore next */ []));
6262
+ this.disabled = computed(() => {
6263
+ this.controlStatus();
6264
+ return this.control.disabled;
6265
+ }, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
6266
+ this.pending = computed(() => {
6267
+ this.controlStatus();
6268
+ return this.control.pending || this.field.pending === true;
6269
+ }, ...(ngDevMode ? [{ debugName: "pending" }] : /* istanbul ignore next */ []));
6270
+ this.resolvedStatus = computed(() => {
6271
+ const value = this.controlValue();
6272
+ const options = this.field.statusOptions;
6273
+ if (options?.resolve) {
6274
+ return options.resolve(value, this.context?.() ?? null, this.field, this.group);
6275
+ }
6276
+ const key = this.resolveStatusKey(value);
6277
+ const configuredStatus = options?.values?.[key];
6278
+ if (configuredStatus) {
6279
+ return {
6280
+ tone: 'neutral',
6281
+ ...configuredStatus,
6282
+ };
6283
+ }
6284
+ if (options?.fallback) {
6285
+ return {
6286
+ tone: 'neutral',
6287
+ ...options.fallback,
6288
+ };
6289
+ }
6290
+ if (value === null || value === undefined || value === '') {
6291
+ return null;
6292
+ }
6293
+ return {
6294
+ label: this.resolveDefaultLabel(value),
6295
+ tone: 'neutral',
6296
+ };
6297
+ }, ...(ngDevMode ? [{ debugName: "resolvedStatus" }] : /* istanbul ignore next */ []));
6298
+ }
6299
+ resolveStatusKey(value) {
6300
+ if (this.field.property && value !== null && typeof value === 'object') {
6301
+ return String(value[this.field.property]);
6302
+ }
6303
+ return String(value);
6304
+ }
6305
+ resolveDefaultLabel(value) {
6306
+ if (this.field.property && value !== null && typeof value === 'object') {
6307
+ return String(value[this.field.property] ?? '');
6308
+ }
6309
+ return String(value);
6310
+ }
6311
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormStatusComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6312
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: KlesFormStatusComponent, isStandalone: true, selector: "kles-form-status", usesInheritance: true, ngImport: i0, template: `
6313
+ <span [ngClass]="ngClass()" [ngStyle]="ngStyle()">
6314
+ @if (pending()) {
6315
+ <mat-spinner mode="indeterminate" diameter="18" />
6316
+ } @else if (resolvedStatus(); as status) {
6317
+ <span
6318
+ class="kles-status"
6319
+ [class.kles-status--chip]="appearance() === 'chip'"
6320
+ [class.kles-status--badge]="appearance() === 'badge'"
6321
+ [class.kles-status--text]="appearance() === 'text'"
6322
+ [class.kles-status--neutral]="status.tone === 'neutral'"
6323
+ [class.kles-status--info]="status.tone === 'info'"
6324
+ [class.kles-status--success]="status.tone === 'success'"
6325
+ [class.kles-status--warning]="status.tone === 'warning'"
6326
+ [class.kles-status--error]="status.tone === 'error'"
6327
+ [class.kles-status--disabled]="disabled()"
6328
+ [ngClass]="status.ngClass"
6329
+ [matTooltip]="status.tooltip || tooltip() || ''"
6330
+ [attr.aria-label]="status.ariaLabel || status.label"
6331
+ >
6332
+ @if (status.iconSvg) {
6333
+ <mat-icon class="kles-status__icon" [svgIcon]="status.iconSvg" />
6334
+ } @else if (status.icon) {
6335
+ <mat-icon class="kles-status__icon">
6336
+ {{ status.icon }}
6337
+ </mat-icon>
6338
+ } @else if (showDot()) {
6339
+ <span class="kles-status__dot" aria-hidden="true"></span>
6340
+ }
6341
+
6342
+ <span class="kles-status__label">
6343
+ {{ status.label }}
6344
+ </span>
6345
+ </span>
6346
+ }
6347
+ </span>
6348
+ `, isInline: true, styles: [".kles-status{display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;color:var(--kles-status-color, var(--mat-sys-on-surface-variant));background:var(--kles-status-container, var(--mat-sys-surface-container-high))}.kles-status--chip{min-height:28px;padding:3px 10px;border-radius:999px;font:var(--mat-sys-label-medium)}.kles-status--badge{min-height:22px;padding:2px 7px;border-radius:4px;font:var(--mat-sys-label-small)}.kles-status--text{padding:0;border-radius:0;background:transparent}.kles-status__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 20px;line-height:20px;overflow:visible;vertical-align:middle}.kles-status__icon svg{width:100%;height:100%;overflow:visible}.kles-status__dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:currentColor}.kles-status__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kles-status--disabled{opacity:.56}.kles-status--neutral{--kles-status-color: var(--mat-sys-on-surface-variant);--kles-status-container: var(--mat-sys-surface-container-high)}.kles-status--info{--kles-status-color: var(--mat-sys-on-primary-container);--kles-status-container: var(--mat-sys-primary-container)}.kles-status--success{--kles-status-color: var(--kles-status-success-color, #1b5e20);--kles-status-container: var(--kles-status-success-container, #d7f5df)}.kles-status--warning{--kles-status-color: var(--kles-status-warning-color, #7a4f00);--kles-status-container: var(--kles-status-warning-container, #ffecb3)}.kles-status--error{--kles-status-color: var(--mat-sys-on-error-container);--kles-status-container: var(--mat-sys-error-container)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4$2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6349
+ };
6350
+ KlesFormStatusComponent = __decorate([
6351
+ FieldMapper({
6352
+ type: EnumType.status,
6353
+ })
6354
+ ], KlesFormStatusComponent);
6355
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormStatusComponent, decorators: [{
6356
+ type: Component,
6357
+ args: [{ selector: 'kles-form-status', standalone: true, imports: [CommonModule, MatIconModule, MatTooltipModule, MatProgressSpinnerModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
6358
+ <span [ngClass]="ngClass()" [ngStyle]="ngStyle()">
6359
+ @if (pending()) {
6360
+ <mat-spinner mode="indeterminate" diameter="18" />
6361
+ } @else if (resolvedStatus(); as status) {
6362
+ <span
6363
+ class="kles-status"
6364
+ [class.kles-status--chip]="appearance() === 'chip'"
6365
+ [class.kles-status--badge]="appearance() === 'badge'"
6366
+ [class.kles-status--text]="appearance() === 'text'"
6367
+ [class.kles-status--neutral]="status.tone === 'neutral'"
6368
+ [class.kles-status--info]="status.tone === 'info'"
6369
+ [class.kles-status--success]="status.tone === 'success'"
6370
+ [class.kles-status--warning]="status.tone === 'warning'"
6371
+ [class.kles-status--error]="status.tone === 'error'"
6372
+ [class.kles-status--disabled]="disabled()"
6373
+ [ngClass]="status.ngClass"
6374
+ [matTooltip]="status.tooltip || tooltip() || ''"
6375
+ [attr.aria-label]="status.ariaLabel || status.label"
6376
+ >
6377
+ @if (status.iconSvg) {
6378
+ <mat-icon class="kles-status__icon" [svgIcon]="status.iconSvg" />
6379
+ } @else if (status.icon) {
6380
+ <mat-icon class="kles-status__icon">
6381
+ {{ status.icon }}
6382
+ </mat-icon>
6383
+ } @else if (showDot()) {
6384
+ <span class="kles-status__dot" aria-hidden="true"></span>
6385
+ }
6386
+
6387
+ <span class="kles-status__label">
6388
+ {{ status.label }}
6389
+ </span>
6390
+ </span>
6391
+ }
6392
+ </span>
6393
+ `, styles: [".kles-status{display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;color:var(--kles-status-color, var(--mat-sys-on-surface-variant));background:var(--kles-status-container, var(--mat-sys-surface-container-high))}.kles-status--chip{min-height:28px;padding:3px 10px;border-radius:999px;font:var(--mat-sys-label-medium)}.kles-status--badge{min-height:22px;padding:2px 7px;border-radius:4px;font:var(--mat-sys-label-small)}.kles-status--text{padding:0;border-radius:0;background:transparent}.kles-status__icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:0 0 20px;line-height:20px;overflow:visible;vertical-align:middle}.kles-status__icon svg{width:100%;height:100%;overflow:visible}.kles-status__dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:currentColor}.kles-status__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kles-status--disabled{opacity:.56}.kles-status--neutral{--kles-status-color: var(--mat-sys-on-surface-variant);--kles-status-container: var(--mat-sys-surface-container-high)}.kles-status--info{--kles-status-color: var(--mat-sys-on-primary-container);--kles-status-container: var(--mat-sys-primary-container)}.kles-status--success{--kles-status-color: var(--kles-status-success-color, #1b5e20);--kles-status-container: var(--kles-status-success-container, #d7f5df)}.kles-status--warning{--kles-status-color: var(--kles-status-warning-color, #7a4f00);--kles-status-container: var(--kles-status-warning-container, #ffecb3)}.kles-status--error{--kles-status-color: var(--mat-sys-on-error-container);--kles-status-container: var(--mat-sys-error-container)}\n"] }]
6394
+ }] });
6395
+
5670
6396
  const components = [
5671
6397
  KlesDynamicFormComponent,
5672
6398
  KlesFormLabelComponent,
@@ -5713,6 +6439,10 @@ const components = [
5713
6439
  KlesFormIconButtonComponent,
5714
6440
  KlesFormSelectionListSearchComponent,
5715
6441
  KlesFormCopyComponent,
6442
+ KlesFormTileComponent,
6443
+ KlesFormActionMenuComponent,
6444
+ KlesFormCurrencyComponent,
6445
+ KlesFormStatusComponent
5716
6446
  ];
5717
6447
  const colorPicker = [ColorPickerComponent, ColorPickerDirective];
5718
6448
  const directives = [KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective];
@@ -5764,7 +6494,11 @@ class KlesMaterialDynamicformsModule {
5764
6494
  KlesIconButtonComponent,
5765
6495
  KlesFormIconButtonComponent,
5766
6496
  KlesFormSelectionListSearchComponent,
5767
- KlesFormCopyComponent, KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective, KlesTransformPipe, ArrayFormatPipe, ColorPickerComponent, ColorPickerDirective], exports: [KlesDynamicFormComponent,
6497
+ KlesFormCopyComponent,
6498
+ KlesFormTileComponent,
6499
+ KlesFormActionMenuComponent,
6500
+ KlesFormCurrencyComponent,
6501
+ KlesFormStatusComponent, KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective, KlesTransformPipe, ArrayFormatPipe, ColorPickerComponent, ColorPickerDirective], exports: [KlesDynamicFormComponent,
5768
6502
  KlesFormLabelComponent,
5769
6503
  KlesFormInputComponent,
5770
6504
  KlesFormInputClearableComponent,
@@ -5808,7 +6542,11 @@ class KlesMaterialDynamicformsModule {
5808
6542
  KlesIconButtonComponent,
5809
6543
  KlesFormIconButtonComponent,
5810
6544
  KlesFormSelectionListSearchComponent,
5811
- KlesFormCopyComponent, KlesTransformPipe, ArrayFormatPipe, KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective] }); }
6545
+ KlesFormCopyComponent,
6546
+ KlesFormTileComponent,
6547
+ KlesFormActionMenuComponent,
6548
+ KlesFormCurrencyComponent,
6549
+ KlesFormStatusComponent, KlesTransformPipe, ArrayFormatPipe, KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective] }); }
5812
6550
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesMaterialDynamicformsModule, providers: [{ provide: ErrorStateMatcher, useClass: KlesFormErrorStateMatcher }, pipes], imports: [CommonModule, ReactiveFormsModule, FormsModule, MaterialModule, NgxMatSelectSearchModule, KlesDynamicFormComponent,
5813
6551
  KlesFormLabelComponent,
5814
6552
  KlesFormInputComponent,
@@ -5852,7 +6590,11 @@ class KlesMaterialDynamicformsModule {
5852
6590
  KlesIconButtonComponent,
5853
6591
  KlesFormIconButtonComponent,
5854
6592
  KlesFormSelectionListSearchComponent,
5855
- KlesFormCopyComponent, MatErrorMessageDirective, MatErrorFormDirective, ColorPickerComponent] }); }
6593
+ KlesFormCopyComponent,
6594
+ KlesFormTileComponent,
6595
+ KlesFormActionMenuComponent,
6596
+ KlesFormCurrencyComponent,
6597
+ KlesFormStatusComponent, MatErrorMessageDirective, MatErrorFormDirective, ColorPickerComponent] }); }
5856
6598
  }
5857
6599
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesMaterialDynamicformsModule, decorators: [{
5858
6600
  type: NgModule,
@@ -5879,7 +6621,7 @@ class KlesFormPasswordVisibilityComponent {
5879
6621
  }
5880
6622
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormPasswordVisibilityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5881
6623
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.19", type: KlesFormPasswordVisibilityComponent, isStandalone: true, selector: "kles-form-password-visibility", ngImport: i0, template: `
5882
- <button [disabled]="group?.get(field?.name).disabled" mat-icon-button aria-label="visibility" type="button" (click)="toggleVisibility($event)">
6624
+ <button [disabled]="group?.get(field?.name).disabled" matIconButton aria-label="visibility" type="button" (click)="toggleVisibility($event)">
5883
6625
  <mat-icon>{{ hide() ? 'visibility_off' : 'visibility' }}</mat-icon>
5884
6626
  </button>
5885
6627
  `, isInline: true, dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] }); }
@@ -5889,7 +6631,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5889
6631
  args: [{
5890
6632
  selector: 'kles-form-password-visibility',
5891
6633
  template: `
5892
- <button [disabled]="group?.get(field?.name).disabled" mat-icon-button aria-label="visibility" type="button" (click)="toggleVisibility($event)">
6634
+ <button [disabled]="group?.get(field?.name).disabled" matIconButton aria-label="visibility" type="button" (click)="toggleVisibility($event)">
5893
6635
  <mat-icon>{{ hide() ? 'visibility_off' : 'visibility' }}</mat-icon>
5894
6636
  </button>
5895
6637
  `,
@@ -5929,5 +6671,5 @@ function autocompleteStringValidator(validOptions, optional) {
5929
6671
  * Generated bundle index. Do not edit.
5930
6672
  */
5931
6673
 
5932
- export { AbstractUiState, ArrayFormatPipe, ArrayUiState, ControlUiState, EnumButtonAttribute, EnumType, FIELD, FIELD_NAME, FieldMapper, GROUP, GROUP_UI, GroupUiState, KlesAbstractFormControl, KlesAbstractFormUiControl, KlesButtonBase, KlesButtonCheckerComponent, KlesButtonComponent, KlesButtonFileComponent, KlesComponentDirective, KlesDynamicFieldDirective, KlesDynamicFormComponent, KlesDynamicFormIntl, KlesFabComponent, KlesFieldAbstract, KlesFileControlComponent, KlesFormArray, KlesFormArrayComponent, KlesFormBadgeComponent, KlesFormButtonCheckerComponent, KlesFormButtonComponent, KlesFormButtonFileComponent, KlesFormButtonToogleGroupComponent, KlesFormCheckboxComponent, KlesFormCheckboxIndeterminateComponent, KlesFormChipComponent, KlesFormClearComponent, KlesFormColorComponent, KlesFormControl, KlesFormCopyComponent, KlesFormDateComponent, KlesFormDateTimeComponent, KlesFormErrorStateMatcher, KlesFormFabComponent, KlesFormFileComponent, KlesFormGroup, KlesFormGroupComponent, KlesFormIconButtonComponent, KlesFormIconComponent, KlesFormInputClearableComponent, KlesFormInputComponent, KlesFormLabelComponent, KlesFormLineBreakComponent, KlesFormLinkComponent, KlesFormListFieldComponent, KlesFormMiniFabComponent, KlesFormPasswordVisibilityComponent, KlesFormRadioComponent, KlesFormRange, KlesFormRangeComponent, KlesFormSelectComponent, KlesFormSelectLazySearchComponent, KlesFormSelectSearchComponent, KlesFormSelectionListComponent, KlesFormSelectionListSearchComponent, KlesFormSlideToggleComponent, KlesFormTextComponent, KlesFormTextareaComponent, KlesFormUiArray, KlesFormUiControl, KlesFormUiGroup, KlesIconButtonComponent, KlesIndeterminateCheckboxComponent, KlesMaterialDynamicformsModule, KlesMiniFabComponent, KlesSelectionModel, KlesTransformPipe, MatErrorFormDirective, MatErrorMessageDirective, SIBLING_FIELDS, autocompleteObjectValidator, autocompleteStringValidator, componentMapper, isDestroyable, klesFieldControlFactory, klesFieldUiFactory };
6674
+ export { AbstractUiState, ArrayFormatPipe, ArrayUiState, ControlUiState, EnumType, FIELD, FIELD_CONTEXT, FIELD_NAME, FieldMapper, GROUP, GROUP_UI, GroupUiState, KlesAbstractFormControl, KlesAbstractFormUiControl, KlesButtonBase, KlesButtonCheckerComponent, KlesButtonComponent, KlesButtonFileComponent, KlesComponentDirective, KlesCurrencyValueAccessorDirective, KlesDynamicFieldDirective, KlesDynamicFormComponent, KlesDynamicFormIntl, KlesFabComponent, KlesFieldAbstract, KlesFileControlComponent, KlesFormActionMenuComponent, KlesFormArray, KlesFormArrayComponent, KlesFormBadgeComponent, KlesFormButtonCheckerComponent, KlesFormButtonComponent, KlesFormButtonFileComponent, KlesFormButtonToogleGroupComponent, KlesFormCheckboxComponent, KlesFormCheckboxIndeterminateComponent, KlesFormChipComponent, KlesFormClearComponent, KlesFormColorComponent, KlesFormControl, KlesFormCopyComponent, KlesFormCurrencyComponent, KlesFormDateComponent, KlesFormDateTimeComponent, KlesFormErrorStateMatcher, KlesFormFabComponent, KlesFormFileComponent, KlesFormGroup, KlesFormGroupComponent, KlesFormIconButtonComponent, KlesFormIconComponent, KlesFormInputClearableComponent, KlesFormInputComponent, KlesFormLabelComponent, KlesFormLineBreakComponent, KlesFormLinkComponent, KlesFormListFieldComponent, KlesFormMiniFabComponent, KlesFormPasswordVisibilityComponent, KlesFormRadioComponent, KlesFormRange, KlesFormRangeComponent, KlesFormSelectComponent, KlesFormSelectLazySearchComponent, KlesFormSelectSearchComponent, KlesFormSelectionListComponent, KlesFormSelectionListSearchComponent, KlesFormSlideToggleComponent, KlesFormStatusComponent, KlesFormTextComponent, KlesFormTextareaComponent, KlesFormTileComponent, KlesFormUiArray, KlesFormUiControl, KlesFormUiGroup, KlesIconButtonComponent, KlesIndeterminateCheckboxComponent, KlesMaterialDynamicformsModule, KlesMiniFabComponent, KlesSelectionModel, KlesTransformPipe, MatErrorFormDirective, MatErrorMessageDirective, SIBLING_FIELDS, autocompleteObjectValidator, autocompleteStringValidator, componentMapper, isDestroyable, klesFieldControlFactory, klesFieldUiFactory };
5933
6675
  //# sourceMappingURL=3kles-kles-material-dynamicforms.mjs.map