@3kles/kles-material-dynamicforms 21.1.0 → 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,24 +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 i4$4 from '@3kles/kles-material-datepicker';
69
+ import * as i4$5 from '@3kles/kles-material-datepicker';
69
70
  import { KlesMaterialDatepickerModule } from '@3kles/kles-material-datepicker';
70
71
  import * as i1$2 from '@angular/cdk/clipboard';
71
72
  import { ClipboardModule } from '@angular/cdk/clipboard';
73
+ import { MatDividerModule } from '@angular/material/divider';
72
74
 
73
75
  class KlesAbstractFormControl {
74
76
  constructor(field, ref) {
@@ -215,7 +217,13 @@ class KlesFormUiControl extends KlesAbstractFormUiControl {
215
217
  icon: this.field.icon,
216
218
  iconSvg: this.field.iconSvg,
217
219
  appearance: this.field.appearance ?? 'fill',
218
- buttonAppearance: this.field.buttonAppearance ?? 'text'
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,
219
227
  });
220
228
  }
221
229
  }
@@ -260,6 +268,8 @@ var EnumType;
260
268
  EnumType["lineBreak"] = "lineBreak";
261
269
  EnumType["badge"] = "badge";
262
270
  EnumType["range"] = "range";
271
+ EnumType["currency"] = "currency";
272
+ EnumType["status"] = "status";
263
273
  })(EnumType || (EnumType = {}));
264
274
 
265
275
  const FIELD_NAME = new InjectionToken('FIELD_NAME');
@@ -267,6 +277,7 @@ const GROUP = new InjectionToken('GROUP');
267
277
  const SIBLING_FIELDS = new InjectionToken('SIBLING_FIELDS');
268
278
  const GROUP_UI = new InjectionToken('GROUP_UI');
269
279
  const FIELD = new InjectionToken('FIELD');
280
+ const FIELD_CONTEXT = new InjectionToken('FIELD_CONTEXT');
270
281
 
271
282
  class KlesFormClearComponent {
272
283
  constructor() {
@@ -1138,19 +1149,27 @@ class KlesFieldAbstract {
1138
1149
  this.group = inject(GROUP);
1139
1150
  this.siblingFields = inject(SIBLING_FIELDS);
1140
1151
  this.ui = inject(GROUP_UI, { optional: true });
1141
- this.appearance = computed(() => this.ui?.get(this.field.name)?.value()?.appearance, ...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
1142
- this.inputType = computed(() => this.ui?.get(this.field.name)?.value()?.inputType, ...(ngDevMode ? [{ debugName: "inputType" }] : /* istanbul ignore next */ []));
1143
- this.min = computed(() => this.ui?.get(this.field.name)?.value()?.min, ...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
1144
- this.max = computed(() => this.ui?.get(this.field.name)?.value()?.max, ...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
1145
- this.maxLength = computed(() => this.ui?.get(this.field.name)?.value()?.maxLength ?? 524288, ...(ngDevMode ? [{ debugName: "maxLength" }] : /* istanbul ignore next */ []));
1146
- this.step = computed(() => this.ui?.get(this.field.name)?.value()?.step, ...(ngDevMode ? [{ debugName: "step" }] : /* istanbul ignore next */ []));
1147
- this.ngClass = computed(() => this.ui?.get(this.field.name)?.value()?.ngClass, ...(ngDevMode ? [{ debugName: "ngClass" }] : /* istanbul ignore next */ []));
1148
- this.ngStyle = computed(() => this.ui?.get(this.field.name)?.value()?.ngStyle, ...(ngDevMode ? [{ debugName: "ngStyle" }] : /* istanbul ignore next */ []));
1149
- this.indeterminate = computed(() => this.ui?.get(this.field.name)?.value()?.indeterminate ?? false, ...(ngDevMode ? [{ debugName: "indeterminate" }] : /* istanbul ignore next */ []));
1150
- this.color = computed(() => this.ui?.get(this.field.name)?.value()?.color, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
1151
- this.icon = computed(() => this.ui?.get(this.field.name)?.value()?.icon, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
1152
- this.iconSvg = computed(() => this.ui?.get(this.field.name)?.value()?.iconSvg, ...(ngDevMode ? [{ debugName: "iconSvg" }] : /* istanbul ignore next */ []));
1153
- this.buttonAppearance = computed(() => this.ui?.get(this.field.name)?.value()?.buttonAppearance, ...(ngDevMode ? [{ debugName: "buttonAppearance" }] : /* 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,7 +2234,7 @@ 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 }}
2237
+ {{ label() }}
2208
2238
  <button matIconButton color="primary" (click)="addField()">
2209
2239
  <mat-icon>add</mat-icon>
2210
2240
  </button>
@@ -2249,7 +2279,7 @@ 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 }}
2282
+ {{ label() }}
2253
2283
  <button matIconButton color="primary" (click)="addField()">
2254
2284
  <mat-icon>add</mat-icon>
2255
2285
  </button>
@@ -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>
@@ -2437,6 +2467,7 @@ class KlesButtonBase {
2437
2467
  this.classButton = '';
2438
2468
  this.value = {};
2439
2469
  this.buttonAppearance = 'text';
2470
+ this.action = new EventEmitter();
2440
2471
  this._type = 'button';
2441
2472
  this.onChange = () => { };
2442
2473
  this.onTouched = () => { };
@@ -2447,13 +2478,16 @@ class KlesButtonBase {
2447
2478
  set type(value) {
2448
2479
  this._type = value || this._type;
2449
2480
  }
2450
- ngOnInit() {
2451
- }
2481
+ ngOnInit() { }
2452
2482
  click(event) {
2453
- if (!this.disabled && this.value && this._type === 'button') {
2483
+ if (this.disabled || this._type !== 'button') {
2484
+ return;
2485
+ }
2486
+ if (this.value) {
2454
2487
  this.value.event = this.name;
2455
2488
  this.onChange(this.value);
2456
2489
  }
2490
+ this.action.emit(event);
2457
2491
  }
2458
2492
  writeValue(value) {
2459
2493
  if (!value) {
@@ -2464,14 +2498,14 @@ class KlesButtonBase {
2464
2498
  }
2465
2499
  if (value.uiButton) {
2466
2500
  const uiButton = value.uiButton;
2467
- this.label = (uiButton.label) ? uiButton.label : this.label;
2468
- this.color = (uiButton.color) ? uiButton.color : this.color;
2469
- this.icon = (uiButton.icon) ? uiButton.icon : this.icon;
2470
- this.iconSvg = (uiButton.iconSvg) ? uiButton.iconSvg : this.iconSvg;
2471
- this.disabled = (uiButton.disabled) ? uiButton.disabled : this.disabled;
2472
- this.classButton = (uiButton.class) ? uiButton.class : this.classButton;
2473
- this.type = (uiButton.type) ? uiButton.type : 'submit';
2474
- this.buttonAppearance = (uiButton.buttonAppearance) ? uiButton.buttonAppearance : this.buttonAppearance;
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;
2475
2509
  }
2476
2510
  this.value = value;
2477
2511
  }
@@ -2485,13 +2519,13 @@ class KlesButtonBase {
2485
2519
  this.disabled = isDisabled;
2486
2520
  }
2487
2521
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesButtonBase, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2488
- 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" }, 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 }); }
2489
2523
  }
2490
2524
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesButtonBase, decorators: [{
2491
2525
  type: Component,
2492
2526
  args: [{
2493
2527
  template: '',
2494
- standalone: true
2528
+ standalone: true,
2495
2529
  }]
2496
2530
  }], propDecorators: { name: [{
2497
2531
  type: Input
@@ -2516,6 +2550,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2516
2550
  type: Input
2517
2551
  }], buttonAppearance: [{
2518
2552
  type: Input
2553
+ }], action: [{
2554
+ type: Output
2519
2555
  }] } });
2520
2556
 
2521
2557
  class KlesButtonComponent extends KlesButtonBase {
@@ -2585,15 +2621,16 @@ class KlesFormButtonComponent extends KlesFieldAbstract {
2585
2621
  [attr.id]="field.id"
2586
2622
  [classButton]="ngClass()"
2587
2623
  [name]="field.name"
2588
- [label]="field.label"
2624
+ [label]="label()"
2589
2625
  [color]="color()"
2590
2626
  [icon]="icon()"
2591
2627
  [iconSvg]="iconSvg()"
2592
2628
  [value]="field.value"
2593
2629
  [formControlName]="field.name"
2594
- [tooltip]="field.tooltip"
2630
+ [tooltip]="tooltip()"
2595
2631
  [type]="field.buttonType"
2596
2632
  [buttonAppearance]="buttonAppearance()"
2633
+ (action)="triggerAction(field.name, $event)"
2597
2634
  >
2598
2635
  </kles-button>
2599
2636
  </div>
@@ -2607,15 +2644,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2607
2644
  [attr.id]="field.id"
2608
2645
  [classButton]="ngClass()"
2609
2646
  [name]="field.name"
2610
- [label]="field.label"
2647
+ [label]="label()"
2611
2648
  [color]="color()"
2612
2649
  [icon]="icon()"
2613
2650
  [iconSvg]="iconSvg()"
2614
2651
  [value]="field.value"
2615
2652
  [formControlName]="field.name"
2616
- [tooltip]="field.tooltip"
2653
+ [tooltip]="tooltip()"
2617
2654
  [type]="field.buttonType"
2618
2655
  [buttonAppearance]="buttonAppearance()"
2656
+ (action)="triggerAction(field.name, $event)"
2619
2657
  >
2620
2658
  </kles-button>
2621
2659
  </div>
@@ -2705,37 +2743,45 @@ class KlesFormButtonCheckerComponent extends KlesFieldAbstract {
2705
2743
  }
2706
2744
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormButtonCheckerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2707
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: `
2708
- <div [formGroup]="group">
2709
- <kles-button-checker
2710
- [attr.id]="field.id" [classButton]="ngClass()"
2711
- [name]="field.name" [label]="field.label" [color]="color()"
2712
- [icon]="icon()"
2713
- [iconSvg]="iconSvg()"
2714
- [value]="field.value"
2715
- [formControlName]="field.name"
2716
- [tooltip]="field.tooltip"
2717
- [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)"
2718
2760
  >
2719
- </kles-button-checker>
2720
- </div>
2761
+ </kles-button-checker>
2762
+ </div>
2721
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"] }] }); }
2722
2764
  }
2723
2765
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormButtonCheckerComponent, decorators: [{
2724
2766
  type: Component,
2725
2767
  args: [{ selector: 'kles-form-button-checker', template: `
2726
- <div [formGroup]="group">
2727
- <kles-button-checker
2728
- [attr.id]="field.id" [classButton]="ngClass()"
2729
- [name]="field.name" [label]="field.label" [color]="color()"
2730
- [icon]="icon()"
2731
- [iconSvg]="iconSvg()"
2732
- [value]="field.value"
2733
- [formControlName]="field.name"
2734
- [tooltip]="field.tooltip"
2735
- [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)"
2736
2782
  >
2737
- </kles-button-checker>
2738
- </div>
2783
+ </kles-button-checker>
2784
+ </div>
2739
2785
  `, standalone: true, imports: [KlesButtonCheckerComponent, ReactiveFormsModule] }]
2740
2786
  }] });
2741
2787
 
@@ -2874,7 +2920,7 @@ class KlesFormButtonFileComponent extends KlesFieldAbstract {
2874
2920
  [attr.id]="field.id"
2875
2921
  [classButton]="ngClass()"
2876
2922
  [name]="field.name"
2877
- [label]="field.label"
2923
+ [label]="label()"
2878
2924
  [color]="color()"
2879
2925
  [icon]="icon()"
2880
2926
  [iconSvg]="iconSvg()"
@@ -2896,7 +2942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
2896
2942
  [attr.id]="field.id"
2897
2943
  [classButton]="ngClass()"
2898
2944
  [name]="field.name"
2899
- [label]="field.label"
2945
+ [label]="label()"
2900
2946
  [color]="color()"
2901
2947
  [icon]="icon()"
2902
2948
  [iconSvg]="iconSvg()"
@@ -2921,12 +2967,12 @@ class KlesFormTextareaComponent extends KlesFieldAbstract {
2921
2967
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2922
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: `
2923
2969
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" [color]="color()" class="form-element" [appearance]="appearance()">
2924
- @if (field.label) {
2925
- <mat-label>{{field.label}}</mat-label>
2970
+ @if (label()) {
2971
+ <mat-label>{{label()}}</mat-label>
2926
2972
  }
2927
2973
 
2928
- <textarea matInput matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()"
2929
- [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()"
2930
2976
  [cdkAutosizeMinRows]="field.textareaAutoSize?.minRows" [cdkAutosizeMaxRows]="field.textareaAutoSize?.maxRows" [maxlength]="maxLength()">
2931
2977
  </textarea>
2932
2978
 
@@ -2938,18 +2984,18 @@ class KlesFormTextareaComponent extends KlesFieldAbstract {
2938
2984
 
2939
2985
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
2940
2986
  </mat-form-field>
2941
- `, 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"] }] }); }
2942
2988
  }
2943
2989
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTextareaComponent, decorators: [{
2944
2990
  type: Component,
2945
2991
  args: [{ selector: 'kles-form-textarea', template: `
2946
2992
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" [color]="color()" class="form-element" [appearance]="appearance()">
2947
- @if (field.label) {
2948
- <mat-label>{{field.label}}</mat-label>
2993
+ @if (label()) {
2994
+ <mat-label>{{label()}}</mat-label>
2949
2995
  }
2950
2996
 
2951
- <textarea matInput matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()"
2952
- [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()"
2953
2999
  [cdkAutosizeMinRows]="field.textareaAutoSize?.minRows" [cdkAutosizeMaxRows]="field.textareaAutoSize?.maxRows" [maxlength]="maxLength()">
2954
3000
  </textarea>
2955
3001
 
@@ -2973,7 +3019,7 @@ let KlesFormTextComponent = class KlesFormTextComponent extends KlesFieldAbstrac
2973
3019
  }
2974
3020
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
2975
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: `
2976
- <span matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3022
+ <span [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
2977
3023
  {{ (field.property && group.controls[field.name].value ? group.controls[field.name].value[field.property] : group.controls[field.name].value) | klesTransform: field.pipeTransform }}
2978
3024
  </span>
2979
3025
  @if (field.subComponents || isPending()) {
@@ -2987,7 +3033,7 @@ KlesFormTextComponent = __decorate([
2987
3033
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormTextComponent, decorators: [{
2988
3034
  type: Component,
2989
3035
  args: [{ selector: 'kles-form-text', template: `
2990
- <span matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
3036
+ <span [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [ngStyle]="ngStyle()">
2991
3037
  {{ (field.property && group.controls[field.name].value ? group.controls[field.name].value[field.property] : group.controls[field.name].value) | klesTransform: field.pipeTransform }}
2992
3038
  </span>
2993
3039
  @if (field.subComponents || isPending()) {
@@ -3005,7 +3051,7 @@ class KlesFormChipComponent extends KlesFieldAbstract {
3005
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: `
3006
3052
  <div [formGroup]="group">
3007
3053
  <mat-chip-listbox>
3008
- <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()">
3009
3055
  @if (icon()) {
3010
3056
  <mat-icon>{{icon()}}</mat-icon>
3011
3057
  }
@@ -3020,7 +3066,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3020
3066
  args: [{ selector: "kles-form-chip", template: `
3021
3067
  <div [formGroup]="group">
3022
3068
  <mat-chip-listbox>
3023
- <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()">
3024
3070
  @if (icon()) {
3025
3071
  <mat-icon>{{icon()}}</mat-icon>
3026
3072
  }
@@ -3136,9 +3182,9 @@ let KlesFormGroupComponent = class KlesFormGroupComponent extends KlesFieldAbstr
3136
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: `
3137
3183
  <ng-container [formGroup]="group">
3138
3184
  <ng-container [formGroupName]="field.name">
3139
- @if (field.label) {
3185
+ @if (label()) {
3140
3186
  <h4>
3141
- <span [matTooltip]="field.tooltip || ''">{{ field.label }}</span>
3187
+ <span [matTooltip]="tooltip() ?? ''">{{ label() }}</span>
3142
3188
  </h4>
3143
3189
  }
3144
3190
 
@@ -3159,9 +3205,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3159
3205
  args: [{ selector: 'kles-group', template: `
3160
3206
  <ng-container [formGroup]="group">
3161
3207
  <ng-container [formGroupName]="field.name">
3162
- @if (field.label) {
3208
+ @if (label()) {
3163
3209
  <h4>
3164
- <span [matTooltip]="field.tooltip || ''">{{ field.label }}</span>
3210
+ <span [matTooltip]="tooltip() ?? ''">{{ label() }}</span>
3165
3211
  </h4>
3166
3212
  }
3167
3213
 
@@ -3185,17 +3231,17 @@ class KlesFormInputClearableComponent extends KlesFormInputComponent {
3185
3231
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormInputClearableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3186
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: `
3187
3233
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" [color]="color()" class="form-element" [appearance]="appearance()">
3188
- @if (field.label) {
3189
- <mat-label>{{ field.label }}</mat-label>
3234
+ @if (label()) {
3235
+ <mat-label>{{ label() }}</mat-label>
3190
3236
  }
3191
3237
  @if (field.autocomplete) {
3192
3238
  <input
3193
3239
  matInput
3194
- matTooltip="{{ field.tooltip }}"
3240
+ [matTooltip]="tooltip()"
3195
3241
  [attr.id]="field.id"
3196
3242
  [ngClass]="ngClass()"
3197
3243
  [formControlName]="field.name"
3198
- [placeholder]="field.placeholder"
3244
+ [placeholder]="placeholder()"
3199
3245
  [type]="inputType()"
3200
3246
  [maxLength]="maxLength()"
3201
3247
  [min]="min()"
@@ -3233,11 +3279,11 @@ class KlesFormInputClearableComponent extends KlesFormInputComponent {
3233
3279
  } @else {
3234
3280
  <input
3235
3281
  matInput
3236
- matTooltip="{{ field.tooltip }}"
3282
+ [matTooltip]="tooltip()"
3237
3283
  [attr.id]="field.id"
3238
3284
  [ngClass]="ngClass()"
3239
3285
  [formControlName]="field.name"
3240
- [placeholder]="field.placeholder"
3286
+ [placeholder]="placeholder()"
3241
3287
  [type]="inputType()"
3242
3288
  [maxLength]="maxLength()"
3243
3289
  [min]="min()"
@@ -3256,23 +3302,23 @@ class KlesFormInputClearableComponent extends KlesFormInputComponent {
3256
3302
 
3257
3303
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
3258
3304
  </mat-form-field>
3259
- `, 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" }] }); }
3260
3306
  }
3261
3307
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormInputClearableComponent, decorators: [{
3262
3308
  type: Component,
3263
3309
  args: [{ selector: 'kles-form-input-clearable', template: `
3264
3310
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [formGroup]="group" [color]="color()" class="form-element" [appearance]="appearance()">
3265
- @if (field.label) {
3266
- <mat-label>{{ field.label }}</mat-label>
3311
+ @if (label()) {
3312
+ <mat-label>{{ label() }}</mat-label>
3267
3313
  }
3268
3314
  @if (field.autocomplete) {
3269
3315
  <input
3270
3316
  matInput
3271
- matTooltip="{{ field.tooltip }}"
3317
+ [matTooltip]="tooltip()"
3272
3318
  [attr.id]="field.id"
3273
3319
  [ngClass]="ngClass()"
3274
3320
  [formControlName]="field.name"
3275
- [placeholder]="field.placeholder"
3321
+ [placeholder]="placeholder()"
3276
3322
  [type]="inputType()"
3277
3323
  [maxLength]="maxLength()"
3278
3324
  [min]="min()"
@@ -3310,11 +3356,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3310
3356
  } @else {
3311
3357
  <input
3312
3358
  matInput
3313
- matTooltip="{{ field.tooltip }}"
3359
+ [matTooltip]="tooltip()"
3314
3360
  [attr.id]="field.id"
3315
3361
  [ngClass]="ngClass()"
3316
3362
  [formControlName]="field.name"
3317
- [placeholder]="field.placeholder"
3363
+ [placeholder]="placeholder()"
3318
3364
  [type]="inputType()"
3319
3365
  [maxLength]="maxLength()"
3320
3366
  [min]="min()"
@@ -3345,7 +3391,7 @@ class KlesFormIconComponent extends KlesFieldAbstract {
3345
3391
  }
3346
3392
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormIconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3347
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: `
3348
- <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()">
3349
3395
  {{ group.controls[field.name].value }}
3350
3396
  </mat-icon>
3351
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 }] }); }
@@ -3353,7 +3399,7 @@ class KlesFormIconComponent extends KlesFieldAbstract {
3353
3399
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormIconComponent, decorators: [{
3354
3400
  type: Component,
3355
3401
  args: [{ selector: 'kles-form-icon', template: `
3356
- <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()">
3357
3403
  {{ group.controls[field.name].value }}
3358
3404
  </mat-icon>
3359
3405
  `, standalone: true, imports: [CommonModule, MatIcon, MatTooltip, ReactiveFormsModule] }]
@@ -3548,18 +3594,18 @@ class KlesFormSelectSearchComponent extends KlesFieldAbstract {
3548
3594
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectSearchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3549
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: `
3550
3596
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
3551
- @if (field.label) {
3552
- <mat-label>{{ field.label }}</mat-label>
3597
+ @if (label()) {
3598
+ <mat-label>{{ label() }}</mat-label>
3553
3599
  }
3554
3600
 
3555
3601
  <mat-select
3556
- matTooltip="{{ field.tooltip }}"
3602
+ [matTooltip]="tooltip()"
3557
3603
  [attr.id]="field.id"
3558
3604
  [ngClass]="ngClass()"
3559
3605
  (openedChange)="openChange($event)"
3560
3606
  [compareWith]="compareFn"
3561
3607
  [panelWidth]="field.panelWidth || 'auto'"
3562
- [placeholder]="field.placeholder"
3608
+ [placeholder]="placeholder()"
3563
3609
  [formControlName]="field.name"
3564
3610
  [multiple]="field.multiple"
3565
3611
  (selectionChange)="selectionChange($event)"
@@ -3662,8 +3708,8 @@ class KlesFormSelectSearchComponent extends KlesFieldAbstract {
3662
3708
  }
3663
3709
  </mat-select>
3664
3710
 
3665
- @if (field.hint) {
3666
- <mat-hint>{{ field.hint }}</mat-hint>
3711
+ @if (hint()) {
3712
+ <mat-hint>{{ hint() }}</mat-hint>
3667
3713
  }
3668
3714
  @if (field.subComponents || field.clearable || isPending()) {
3669
3715
  <div matSuffix class="suffix">
@@ -3678,24 +3724,24 @@ class KlesFormSelectSearchComponent extends KlesFieldAbstract {
3678
3724
 
3679
3725
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
3680
3726
  </mat-form-field>
3681
- `, 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" }] }); }
3682
3728
  }
3683
3729
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectSearchComponent, decorators: [{
3684
3730
  type: Component,
3685
3731
  args: [{ selector: 'kles-form-select-search', template: `
3686
3732
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
3687
- @if (field.label) {
3688
- <mat-label>{{ field.label }}</mat-label>
3733
+ @if (label()) {
3734
+ <mat-label>{{ label() }}</mat-label>
3689
3735
  }
3690
3736
 
3691
3737
  <mat-select
3692
- matTooltip="{{ field.tooltip }}"
3738
+ [matTooltip]="tooltip()"
3693
3739
  [attr.id]="field.id"
3694
3740
  [ngClass]="ngClass()"
3695
3741
  (openedChange)="openChange($event)"
3696
3742
  [compareWith]="compareFn"
3697
3743
  [panelWidth]="field.panelWidth || 'auto'"
3698
- [placeholder]="field.placeholder"
3744
+ [placeholder]="placeholder()"
3699
3745
  [formControlName]="field.name"
3700
3746
  [multiple]="field.multiple"
3701
3747
  (selectionChange)="selectionChange($event)"
@@ -3798,8 +3844,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3798
3844
  }
3799
3845
  </mat-select>
3800
3846
 
3801
- @if (field.hint) {
3802
- <mat-hint>{{ field.hint }}</mat-hint>
3847
+ @if (hint()) {
3848
+ <mat-hint>{{ hint() }}</mat-hint>
3803
3849
  }
3804
3850
  @if (field.subComponents || field.clearable || isPending()) {
3805
3851
  <div matSuffix class="suffix">
@@ -3892,8 +3938,8 @@ class KlesFormLinkComponent extends KlesFieldAbstract {
3892
3938
  }
3893
3939
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormLinkComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3894
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: `
3895
- <a [href]="group.controls[field.name].value" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()">
3896
- {{ field.label }}
3941
+ <a [href]="group.controls[field.name].value" [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()">
3942
+ {{ label() }}
3897
3943
  </a>
3898
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 }] }); }
3899
3945
  }
@@ -3902,8 +3948,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3902
3948
  args: [{
3903
3949
  selector: 'kles-form-link',
3904
3950
  template: `
3905
- <a [href]="group.controls[field.name].value" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()">
3906
- {{ field.label }}
3951
+ <a [href]="group.controls[field.name].value" [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()">
3952
+ {{ label() }}
3907
3953
  </a>
3908
3954
  `,
3909
3955
  standalone: true,
@@ -3921,7 +3967,7 @@ class KlesFormSlideToggleComponent extends KlesFieldAbstract {
3921
3967
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSlideToggleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
3922
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: `
3923
3969
  <div [formGroup]="group">
3924
- <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>
3925
3971
  </div>
3926
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"] }] }); }
3927
3973
  }
@@ -3929,7 +3975,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
3929
3975
  type: Component,
3930
3976
  args: [{ selector: 'kles-form-slide-toggle', template: `
3931
3977
  <div [formGroup]="group">
3932
- <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>
3933
3979
  </div>
3934
3980
  `, standalone: true, imports: [CommonModule, MatSlideToggle, MatTooltip, ReactiveFormsModule] }]
3935
3981
  }] });
@@ -4232,7 +4278,7 @@ class KlesFormSelectionListComponent extends KlesFieldAbstract {
4232
4278
  }
4233
4279
  </mat-selection-list>
4234
4280
  </div>
4235
- `, 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" }] }); }
4236
4282
  }
4237
4283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectionListComponent, decorators: [{
4238
4284
  type: Component,
@@ -4276,10 +4322,10 @@ let KlesFormBadgeComponent = class KlesFormBadgeComponent extends KlesFieldAbstr
4276
4322
  }
4277
4323
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormBadgeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4278
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: `
4279
- <span matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()"
4325
+ <span [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()"
4280
4326
  matBadge="{{group.controls[field.name].value}}" matBadgeOverlap="false" [matBadgeColor]="color()">
4281
4327
  </span>
4282
- `, 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"] }] }); }
4283
4329
  };
4284
4330
  KlesFormBadgeComponent = __decorate([
4285
4331
  FieldMapper({ type: EnumType.badge })
@@ -4289,7 +4335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
4289
4335
  args: [{
4290
4336
  selector: 'kles-form-badge',
4291
4337
  template: `
4292
- <span matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="ngClass()"
4338
+ <span [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()"
4293
4339
  matBadge="{{group.controls[field.name].value}}" matBadgeOverlap="false" [matBadgeColor]="color()">
4294
4340
  </span>
4295
4341
  `,
@@ -4325,7 +4371,7 @@ class KlesFormButtonToogleGroupComponent extends KlesFieldAbstract {
4325
4371
  }
4326
4372
  </mat-button-toggle-group>
4327
4373
  </div>
4328
- `, 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" }] }); }
4329
4375
  }
4330
4376
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormButtonToogleGroupComponent, decorators: [{
4331
4377
  type: Component,
@@ -4570,11 +4616,11 @@ let KlesFormRangeComponent = class KlesFormRangeComponent extends KlesFieldAbstr
4570
4616
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4571
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: `
4572
4618
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [color]="color()" [formGroup]="group" [appearance]="appearance()">
4573
- <mat-label>{{ field.label }}</mat-label>
4619
+ <mat-label>{{ label() }}</mat-label>
4574
4620
 
4575
- <mat-date-range-input [formGroupName]="field.name" [rangePicker]="picker" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [min]="min()" [max]="max()">
4576
- <input matStartDate formControlName="start" [placeholder]="field.placeholder?.start ? field.placeholder?.start : ''" />
4577
- <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 : ''" />
4578
4624
  </mat-date-range-input>
4579
4625
 
4580
4626
  <div matSuffix class="suffix">
@@ -4583,13 +4629,13 @@ let KlesFormRangeComponent = class KlesFormRangeComponent extends KlesFieldAbstr
4583
4629
  </div>
4584
4630
 
4585
4631
  <mat-date-range-picker #picker></mat-date-range-picker>
4586
- @if (field.hint) {
4587
- <mat-hint>{{ field.hint }}</mat-hint>
4632
+ @if (hint) {
4633
+ <mat-hint>{{ hint() }}</mat-hint>
4588
4634
  }
4589
4635
 
4590
4636
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
4591
4637
  </mat-form-field>
4592
- `, 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"] }] }); }
4593
4639
  };
4594
4640
  KlesFormRangeComponent = __decorate([
4595
4641
  FieldMapper({ type: EnumType.range, factory: (field) => new KlesFormRange(field).create() })
@@ -4598,11 +4644,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
4598
4644
  type: Component,
4599
4645
  args: [{ selector: 'kles-form-rangepicker', template: `
4600
4646
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [color]="color()" [formGroup]="group" [appearance]="appearance()">
4601
- <mat-label>{{ field.label }}</mat-label>
4647
+ <mat-label>{{ label() }}</mat-label>
4602
4648
 
4603
- <mat-date-range-input [formGroupName]="field.name" [rangePicker]="picker" matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [min]="min()" [max]="max()">
4604
- <input matStartDate formControlName="start" [placeholder]="field.placeholder?.start ? field.placeholder?.start : ''" />
4605
- <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 : ''" />
4606
4652
  </mat-date-range-input>
4607
4653
 
4608
4654
  <div matSuffix class="suffix">
@@ -4611,8 +4657,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
4611
4657
  </div>
4612
4658
 
4613
4659
  <mat-date-range-picker #picker></mat-date-range-picker>
4614
- @if (field.hint) {
4615
- <mat-hint>{{ field.hint }}</mat-hint>
4660
+ @if (hint) {
4661
+ <mat-hint>{{ hint() }}</mat-hint>
4616
4662
  }
4617
4663
 
4618
4664
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
@@ -4662,18 +4708,18 @@ class KlesFormSelectLazySearchComponent extends KlesFormSelectSearchComponent {
4662
4708
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectLazySearchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4663
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: `
4664
4710
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
4665
- @if (field.label) {
4666
- <mat-label>{{ field.label }}</mat-label>
4711
+ @if (label()) {
4712
+ <mat-label>{{ label() }}</mat-label>
4667
4713
  }
4668
4714
 
4669
4715
  <mat-select
4670
- matTooltip="{{ field.tooltip }}"
4716
+ [matTooltip]="tooltip()"
4671
4717
  [attr.id]="field.id"
4672
4718
  [ngClass]="ngClass()"
4673
4719
  (openedChange)="openChange($event)"
4674
4720
  [compareWith]="compareFn"
4675
4721
  [panelWidth]="field.panelWidth || 'auto'"
4676
- [placeholder]="field.placeholder"
4722
+ [placeholder]="placeholder()"
4677
4723
  [formControlName]="field.name"
4678
4724
  [multiple]="field.multiple"
4679
4725
  >
@@ -4775,24 +4821,24 @@ class KlesFormSelectLazySearchComponent extends KlesFormSelectSearchComponent {
4775
4821
 
4776
4822
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
4777
4823
  </mat-form-field>
4778
- `, 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" }] }); }
4779
4825
  }
4780
4826
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectLazySearchComponent, decorators: [{
4781
4827
  type: Component,
4782
4828
  args: [{ selector: 'kles-form-select-lazy-search', template: `
4783
4829
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()" class="field-bottom">
4784
- @if (field.label) {
4785
- <mat-label>{{ field.label }}</mat-label>
4830
+ @if (label()) {
4831
+ <mat-label>{{ label() }}</mat-label>
4786
4832
  }
4787
4833
 
4788
4834
  <mat-select
4789
- matTooltip="{{ field.tooltip }}"
4835
+ [matTooltip]="tooltip()"
4790
4836
  [attr.id]="field.id"
4791
4837
  [ngClass]="ngClass()"
4792
4838
  (openedChange)="openChange($event)"
4793
4839
  [compareWith]="compareFn"
4794
4840
  [panelWidth]="field.panelWidth || 'auto'"
4795
- [placeholder]="field.placeholder"
4841
+ [placeholder]="placeholder()"
4796
4842
  [formControlName]="field.name"
4797
4843
  [multiple]="field.multiple"
4798
4844
  >
@@ -4918,7 +4964,7 @@ class KlesFabComponent extends KlesButtonBase {
4918
4964
  <mat-icon svgIcon="{{iconSvg}}"></mat-icon>
4919
4965
  }
4920
4966
  </button>
4921
- `, 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"] }] }); }
4922
4968
  }
4923
4969
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFabComponent, decorators: [{
4924
4970
  type: Component,
@@ -4959,37 +5005,45 @@ class KlesFormFabComponent extends KlesFieldAbstract {
4959
5005
  }
4960
5006
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormFabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4961
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: `
4962
- <div [formGroup]="group">
4963
- <kles-fab
4964
- [attr.id]="field.id" [classButton]="ngClass()"
4965
- [name]="field.name" [label]="field.label" [color]="color()"
4966
- [icon]="icon()"
4967
- [iconSvg]="iconSvg()"
4968
- [value]="field.value"
4969
- [formControlName]="field.name"
4970
- [tooltip]="field.tooltip"
4971
- [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)"
4972
5022
  >
4973
- </kles-fab>
4974
- </div>
5023
+ </kles-fab>
5024
+ </div>
4975
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"] }] }); }
4976
5026
  }
4977
5027
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormFabComponent, decorators: [{
4978
5028
  type: Component,
4979
5029
  args: [{ selector: 'kles-form-fab', template: `
4980
- <div [formGroup]="group">
4981
- <kles-fab
4982
- [attr.id]="field.id" [classButton]="ngClass()"
4983
- [name]="field.name" [label]="field.label" [color]="color()"
4984
- [icon]="icon()"
4985
- [iconSvg]="iconSvg()"
4986
- [value]="field.value"
4987
- [formControlName]="field.name"
4988
- [tooltip]="field.tooltip"
4989
- [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)"
4990
5044
  >
4991
- </kles-fab>
4992
- </div>
5045
+ </kles-fab>
5046
+ </div>
4993
5047
  `, standalone: true, imports: [MatIconModule, MatTooltipModule, MatButtonModule, KlesFabComponent, ReactiveFormsModule] }]
4994
5048
  }] });
4995
5049
 
@@ -5014,7 +5068,7 @@ class KlesMiniFabComponent extends KlesButtonBase {
5014
5068
  <mat-icon svgIcon="{{iconSvg}}"></mat-icon>
5015
5069
  }
5016
5070
  </button>
5017
- `, 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"] }] }); }
5018
5072
  }
5019
5073
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesMiniFabComponent, decorators: [{
5020
5074
  type: Component,
@@ -5058,13 +5112,14 @@ class KlesFormMiniFabComponent extends KlesFieldAbstract {
5058
5112
  <div [formGroup]="group">
5059
5113
  <kles-mini-fab
5060
5114
  [attr.id]="field.id" [classButton]="ngClass()"
5061
- [name]="field.name" [label]="field.label" [color]="color()"
5115
+ [name]="field.name" [label]="label()" [color]="color()"
5062
5116
  [icon]="icon()"
5063
5117
  [iconSvg]="iconSvg()"
5064
5118
  [value]="field.value"
5065
5119
  [formControlName]="field.name"
5066
- [tooltip]="field.tooltip"
5120
+ [tooltip]="tooltip()"
5067
5121
  [type]="field.buttonType"
5122
+ (action)="triggerAction(field.name, $event)"
5068
5123
  >
5069
5124
  </kles-mini-fab>
5070
5125
  </div>
@@ -5076,13 +5131,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5076
5131
  <div [formGroup]="group">
5077
5132
  <kles-mini-fab
5078
5133
  [attr.id]="field.id" [classButton]="ngClass()"
5079
- [name]="field.name" [label]="field.label" [color]="color()"
5134
+ [name]="field.name" [label]="label()" [color]="color()"
5080
5135
  [icon]="icon()"
5081
5136
  [iconSvg]="iconSvg()"
5082
5137
  [value]="field.value"
5083
5138
  [formControlName]="field.name"
5084
- [tooltip]="field.tooltip"
5139
+ [tooltip]="tooltip()"
5085
5140
  [type]="field.buttonType"
5141
+ (action)="triggerAction(field.name, $event)"
5086
5142
  >
5087
5143
  </kles-mini-fab>
5088
5144
  </div>
@@ -5105,7 +5161,7 @@ class KlesIconButtonComponent extends KlesButtonBase {
5105
5161
  <mat-icon svgIcon="{{ iconSvg }}"></mat-icon>
5106
5162
  }
5107
5163
  </button>
5108
- `, 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"] }] }); }
5109
5165
  }
5110
5166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesIconButtonComponent, decorators: [{
5111
5167
  type: Component,
@@ -5141,37 +5197,43 @@ class KlesFormIconButtonComponent extends KlesFieldAbstract {
5141
5197
  }
5142
5198
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormIconButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5143
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: `
5144
- <div [formGroup]="group">
5145
- <kles-icon-button
5146
- [attr.id]="field.id" [classButton]="ngClass()"
5147
- [name]="field.name" [color]="color()"
5148
- [icon]="icon()"
5149
- [iconSvg]="iconSvg()"
5150
- [value]="field.value"
5151
- [formControlName]="field.name"
5152
- [tooltip]="field.tooltip"
5153
- [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)"
5154
5213
  >
5155
- </kles-icon-button>
5156
- </div>
5214
+ </kles-icon-button>
5215
+ </div>
5157
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" }] }); }
5158
5217
  }
5159
5218
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormIconButtonComponent, decorators: [{
5160
5219
  type: Component,
5161
5220
  args: [{ selector: 'kles-form-icon-button', template: `
5162
- <div [formGroup]="group">
5163
- <kles-icon-button
5164
- [attr.id]="field.id" [classButton]="ngClass()"
5165
- [name]="field.name" [color]="color()"
5166
- [icon]="icon()"
5167
- [iconSvg]="iconSvg()"
5168
- [value]="field.value"
5169
- [formControlName]="field.name"
5170
- [tooltip]="field.tooltip"
5171
- [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)"
5172
5234
  >
5173
- </kles-icon-button>
5174
- </div>
5235
+ </kles-icon-button>
5236
+ </div>
5175
5237
  `, standalone: true, imports: [ReactiveFormsModule, KlesIconButtonComponent] }]
5176
5238
  }] });
5177
5239
 
@@ -5237,10 +5299,10 @@ class KlesFormSelectionListSearchComponent extends KlesFieldAbstract {
5237
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: `
5238
5300
  <div class="selection-list" [formGroup]="group">
5239
5301
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [appearance]="appearance()">
5240
- @if (field.label) {
5241
- <mat-label>{{ field.label }}</mat-label>
5302
+ @if (label()) {
5303
+ <mat-label>{{ label() }}</mat-label>
5242
5304
  }
5243
- <input matInput [placeholder]="field.placeholder" [formControl]="searchControl" />
5305
+ <input matInput [placeholder]="placeholder()" [formControl]="searchControl" />
5244
5306
  <button matSuffix matIconButton aria-label="Clear" (click)="searchControl.reset(); $event.stopPropagation()">
5245
5307
  <mat-icon>close</mat-icon>
5246
5308
  </button>
@@ -5272,17 +5334,17 @@ class KlesFormSelectionListSearchComponent extends KlesFieldAbstract {
5272
5334
  }
5273
5335
  </mat-selection-list>
5274
5336
  </div>
5275
- `, 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" }] }); }
5276
5338
  }
5277
5339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormSelectionListSearchComponent, decorators: [{
5278
5340
  type: Component,
5279
5341
  args: [{ selector: 'kles-form-selection-list-search', template: `
5280
5342
  <div class="selection-list" [formGroup]="group">
5281
5343
  <mat-form-field [subscriptSizing]="field.subscriptSizing" [appearance]="appearance()">
5282
- @if (field.label) {
5283
- <mat-label>{{ field.label }}</mat-label>
5344
+ @if (label()) {
5345
+ <mat-label>{{ label() }}</mat-label>
5284
5346
  }
5285
- <input matInput [placeholder]="field.placeholder" [formControl]="searchControl" />
5347
+ <input matInput [placeholder]="placeholder()" [formControl]="searchControl" />
5286
5348
  <button matSuffix matIconButton aria-label="Clear" (click)="searchControl.reset(); $event.stopPropagation()">
5287
5349
  <mat-icon>close</mat-icon>
5288
5350
  </button>
@@ -5420,11 +5482,11 @@ let KlesFormCheckboxIndeterminateComponent = class KlesFormCheckboxIndeterminate
5420
5482
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormCheckboxIndeterminateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5421
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: `
5422
5484
  <div [formGroup]="group">
5423
- <kles-checkbox-indeterminate matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{
5424
- field.label
5485
+ <kles-checkbox-indeterminate [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{
5486
+ label()
5425
5487
  }}</kles-checkbox-indeterminate>
5426
5488
  </div>
5427
- `, 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"] }] }); }
5428
5490
  };
5429
5491
  KlesFormCheckboxIndeterminateComponent = __decorate([
5430
5492
  FieldMapper({ type: EnumType.checkbox })
@@ -5433,8 +5495,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5433
5495
  type: Component,
5434
5496
  args: [{ selector: 'kles-form-checkbox-indeterminate', template: `
5435
5497
  <div [formGroup]="group">
5436
- <kles-checkbox-indeterminate matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{
5437
- field.label
5498
+ <kles-checkbox-indeterminate [matTooltip]="tooltip()" [attr.id]="field.id" [ngClass]="ngClass()" [color]="color()" [formControlName]="field.name">{{
5499
+ label()
5438
5500
  }}</kles-checkbox-indeterminate>
5439
5501
  </div>
5440
5502
  `, standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule, KlesIndeterminateCheckboxComponent, MatTooltipModule] }]
@@ -5530,12 +5592,12 @@ class KlesFormDateTimeComponent extends KlesFieldAbstract {
5530
5592
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5531
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: `
5532
5594
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()">
5533
- @if (field.label) {
5534
- <mat-label>{{ field.label }}</mat-label>
5595
+ @if (label()) {
5596
+ <mat-label>{{ label() }}</mat-label>
5535
5597
  }
5536
5598
 
5537
- <input matInput matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="field.ngClass" [matDatepicker]="picker" [formControlName]="field.name"
5538
- [placeholder]="field.placeholder" [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">
5539
5601
  <div matSuffix class="suffix">
5540
5602
  <mat-datepicker-toggle [for]="picker"></mat-datepicker-toggle>
5541
5603
  <ng-content></ng-content>
@@ -5543,24 +5605,24 @@ class KlesFormDateTimeComponent extends KlesFieldAbstract {
5543
5605
 
5544
5606
  <kles-mat-datepicker #picker [hasBackdrop]="false"></kles-mat-datepicker>
5545
5607
 
5546
- @if (field.hint) {
5547
- <mat-hint>{{ field.hint }}</mat-hint>
5608
+ @if (hint()) {
5609
+ <mat-hint>{{ hint() }}</mat-hint>
5548
5610
  }
5549
5611
 
5550
5612
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
5551
5613
  </mat-form-field>
5552
- `, 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: "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"] }] }); }
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"] }] }); }
5553
5615
  }
5554
5616
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormDateTimeComponent, decorators: [{
5555
5617
  type: Component,
5556
5618
  args: [{ selector: 'kles-form-datetimepicker', template: `
5557
5619
  <mat-form-field [subscriptSizing]="field.subscriptSizing" class="margin-top" [color]="color()" [formGroup]="group" [appearance]="appearance()">
5558
- @if (field.label) {
5559
- <mat-label>{{ field.label }}</mat-label>
5620
+ @if (label()) {
5621
+ <mat-label>{{ label() }}</mat-label>
5560
5622
  }
5561
5623
 
5562
- <input matInput matTooltip="{{ field.tooltip }}" [attr.id]="field.id" [ngClass]="field.ngClass" [matDatepicker]="picker" [formControlName]="field.name"
5563
- [placeholder]="field.placeholder" [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">
5564
5626
  <div matSuffix class="suffix">
5565
5627
  <mat-datepicker-toggle [for]="picker"></mat-datepicker-toggle>
5566
5628
  <ng-content></ng-content>
@@ -5568,8 +5630,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5568
5630
 
5569
5631
  <kles-mat-datepicker #picker [hasBackdrop]="false"></kles-mat-datepicker>
5570
5632
 
5571
- @if (field.hint) {
5572
- <mat-hint>{{ field.hint }}</mat-hint>
5633
+ @if (hint()) {
5634
+ <mat-hint>{{ hint() }}</mat-hint>
5573
5635
  }
5574
5636
 
5575
5637
  <mat-error matErrorMessage [validations]="field.validations" [asyncValidations]="field.asyncValidations"></mat-error>
@@ -5613,7 +5675,7 @@ class KlesFormCopyComponent {
5613
5675
  <button #tooltip="matTooltip" matIconButton color="primary" type="button" (click)="copy($event)" [matTooltipDisabled]="true" [matTooltip]="tooltipText" matTooltipPosition="above">
5614
5676
  <mat-icon>content_copy</mat-icon>
5615
5677
  </button>
5616
- `, 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 }] }); }
5617
5679
  }
5618
5680
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesFormCopyComponent, decorators: [{
5619
5681
  type: Component,
@@ -5632,6 +5694,705 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
5632
5694
  args: ['tooltip']
5633
5695
  }] } });
5634
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
+
5635
6396
  const components = [
5636
6397
  KlesDynamicFormComponent,
5637
6398
  KlesFormLabelComponent,
@@ -5678,6 +6439,10 @@ const components = [
5678
6439
  KlesFormIconButtonComponent,
5679
6440
  KlesFormSelectionListSearchComponent,
5680
6441
  KlesFormCopyComponent,
6442
+ KlesFormTileComponent,
6443
+ KlesFormActionMenuComponent,
6444
+ KlesFormCurrencyComponent,
6445
+ KlesFormStatusComponent
5681
6446
  ];
5682
6447
  const colorPicker = [ColorPickerComponent, ColorPickerDirective];
5683
6448
  const directives = [KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective];
@@ -5729,7 +6494,11 @@ class KlesMaterialDynamicformsModule {
5729
6494
  KlesIconButtonComponent,
5730
6495
  KlesFormIconButtonComponent,
5731
6496
  KlesFormSelectionListSearchComponent,
5732
- 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,
5733
6502
  KlesFormLabelComponent,
5734
6503
  KlesFormInputComponent,
5735
6504
  KlesFormInputClearableComponent,
@@ -5773,7 +6542,11 @@ class KlesMaterialDynamicformsModule {
5773
6542
  KlesIconButtonComponent,
5774
6543
  KlesFormIconButtonComponent,
5775
6544
  KlesFormSelectionListSearchComponent,
5776
- KlesFormCopyComponent, KlesTransformPipe, ArrayFormatPipe, KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective] }); }
6545
+ KlesFormCopyComponent,
6546
+ KlesFormTileComponent,
6547
+ KlesFormActionMenuComponent,
6548
+ KlesFormCurrencyComponent,
6549
+ KlesFormStatusComponent, KlesTransformPipe, ArrayFormatPipe, KlesDynamicFieldDirective, KlesComponentDirective, MatErrorMessageDirective, MatErrorFormDirective] }); }
5777
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,
5778
6551
  KlesFormLabelComponent,
5779
6552
  KlesFormInputComponent,
@@ -5817,7 +6590,11 @@ class KlesMaterialDynamicformsModule {
5817
6590
  KlesIconButtonComponent,
5818
6591
  KlesFormIconButtonComponent,
5819
6592
  KlesFormSelectionListSearchComponent,
5820
- KlesFormCopyComponent, MatErrorMessageDirective, MatErrorFormDirective, ColorPickerComponent] }); }
6593
+ KlesFormCopyComponent,
6594
+ KlesFormTileComponent,
6595
+ KlesFormActionMenuComponent,
6596
+ KlesFormCurrencyComponent,
6597
+ KlesFormStatusComponent, MatErrorMessageDirective, MatErrorFormDirective, ColorPickerComponent] }); }
5821
6598
  }
5822
6599
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: KlesMaterialDynamicformsModule, decorators: [{
5823
6600
  type: NgModule,
@@ -5894,5 +6671,5 @@ function autocompleteStringValidator(validOptions, optional) {
5894
6671
  * Generated bundle index. Do not edit.
5895
6672
  */
5896
6673
 
5897
- export { AbstractUiState, ArrayFormatPipe, ArrayUiState, ControlUiState, 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 };
5898
6675
  //# sourceMappingURL=3kles-kles-material-dynamicforms.mjs.map