@3kles/kles-material-dynamicforms 14.8.2 → 14.9.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.
- package/esm2020/lib/fields/button-toogle-group.component.mjs +7 -4
- package/esm2020/lib/fields/input.component.mjs +4 -1
- package/esm2020/lib/fields/select.component.mjs +15 -8
- package/esm2020/lib/fields/select.lazy-search.component.mjs +269 -0
- package/esm2020/lib/fields/select.search.component.mjs +62 -46
- package/esm2020/lib/fields/selection-list.component.mjs +7 -4
- package/esm2020/lib/interfaces/field.config.interface.mjs +1 -1
- package/esm2020/lib/kles-material-dynamicforms.module.mjs +8 -4
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/3kles-kles-material-dynamicforms.mjs +353 -68
- package/fesm2015/3kles-kles-material-dynamicforms.mjs.map +1 -1
- package/fesm2020/3kles-kles-material-dynamicforms.mjs +353 -68
- package/fesm2020/3kles-kles-material-dynamicforms.mjs.map +1 -1
- package/lib/fields/select.lazy-search.component.d.ts +14 -0
- package/lib/fields/select.search.component.d.ts +2 -0
- package/lib/interfaces/field.config.interface.d.ts +1 -1
- package/lib/kles-material-dynamicforms.module.d.ts +13 -12
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -42,7 +42,7 @@ import { CdkTableModule } from '@angular/cdk/table';
|
|
|
42
42
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
43
43
|
import * as i9 from '@angular/material/progress-spinner';
|
|
44
44
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
45
|
-
import * as
|
|
45
|
+
import * as i10 from '@angular/material/checkbox';
|
|
46
46
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
47
47
|
import { MatDialogModule } from '@angular/material/dialog';
|
|
48
48
|
import * as i9$1 from '@angular/material/autocomplete';
|
|
@@ -52,11 +52,11 @@ import { MatSortModule } from '@angular/material/sort';
|
|
|
52
52
|
import { MatExpansionModule } from '@angular/material/expansion';
|
|
53
53
|
import { MatSnackBarModule } from '@angular/material/snack-bar';
|
|
54
54
|
import { MatTreeModule } from '@angular/material/tree';
|
|
55
|
-
import * as i6$
|
|
55
|
+
import * as i6$1 from '@angular/material/slide-toggle';
|
|
56
56
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
57
57
|
import * as i7$2 from 'ngx-color-picker';
|
|
58
58
|
import { ColorPickerModule } from 'ngx-color-picker';
|
|
59
|
-
import * as
|
|
59
|
+
import * as i11 from '@angular/cdk/scrolling';
|
|
60
60
|
import { ScrollingModule, CdkScrollable, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
61
61
|
import * as i4$5 from '@angular/material/button-toggle';
|
|
62
62
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
@@ -847,6 +847,9 @@ let KlesFormInputComponent = class KlesFormInputComponent extends KlesFieldAbstr
|
|
|
847
847
|
if (this.field.options instanceof Observable) {
|
|
848
848
|
this.options$ = this.field.options;
|
|
849
849
|
}
|
|
850
|
+
else if (this.field.options instanceof Function) {
|
|
851
|
+
this.options$ = this.field.options();
|
|
852
|
+
}
|
|
850
853
|
else {
|
|
851
854
|
this.options$ = of(this.field.options);
|
|
852
855
|
}
|
|
@@ -1068,13 +1071,17 @@ let KlesFormSelectComponent = class KlesFormSelectComponent extends KlesFieldAbs
|
|
|
1068
1071
|
this.openChange$
|
|
1069
1072
|
.pipe(takeUntil(this._onDestroy), switchMap((isOpen) => {
|
|
1070
1073
|
if (isOpen) {
|
|
1071
|
-
if (
|
|
1072
|
-
return of(this.field.options);
|
|
1073
|
-
}
|
|
1074
|
-
else {
|
|
1074
|
+
if (this.field.options instanceof Observable) {
|
|
1075
1075
|
this.isLoading = true;
|
|
1076
1076
|
return this.field.options.pipe(take(1));
|
|
1077
1077
|
}
|
|
1078
|
+
else if (this.field.options instanceof Function) {
|
|
1079
|
+
this.isLoading = true;
|
|
1080
|
+
return this.field.options();
|
|
1081
|
+
}
|
|
1082
|
+
else {
|
|
1083
|
+
return of(this.field.options);
|
|
1084
|
+
}
|
|
1078
1085
|
}
|
|
1079
1086
|
else {
|
|
1080
1087
|
return of(this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null
|
|
@@ -1089,11 +1096,14 @@ let KlesFormSelectComponent = class KlesFormSelectComponent extends KlesFieldAbs
|
|
|
1089
1096
|
});
|
|
1090
1097
|
}
|
|
1091
1098
|
else {
|
|
1092
|
-
if (
|
|
1093
|
-
this.options$ =
|
|
1099
|
+
if (this.field.options instanceof Observable) {
|
|
1100
|
+
this.options$ = this.field.options;
|
|
1101
|
+
}
|
|
1102
|
+
else if (this.field.options instanceof Function) {
|
|
1103
|
+
this.options$ = this.field.options();
|
|
1094
1104
|
}
|
|
1095
1105
|
else {
|
|
1096
|
-
this.options$ = this.field.options;
|
|
1106
|
+
this.options$ = of(this.field.options);
|
|
1097
1107
|
}
|
|
1098
1108
|
}
|
|
1099
1109
|
}
|
|
@@ -1219,7 +1229,7 @@ KlesFormSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
1219
1229
|
<mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
|
|
1220
1230
|
</ng-container>
|
|
1221
1231
|
</mat-form-field>
|
|
1222
|
-
`, isInline: true, styles: ["mat-form-field{width:100%}\n", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],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: i3$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type:
|
|
1232
|
+
`, isInline: true, styles: ["mat-form-field{width:100%}\n", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],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: i3$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i11.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i11.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i11.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] });
|
|
1223
1233
|
KlesFormSelectComponent = __decorate([
|
|
1224
1234
|
FieldMapper({ type: EnumType.select })
|
|
1225
1235
|
], KlesFormSelectComponent);
|
|
@@ -1428,7 +1438,7 @@ KlesFormCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
1428
1438
|
<mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message}}</mat-error>
|
|
1429
1439
|
</ng-container>
|
|
1430
1440
|
</div>
|
|
1431
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],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: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type:
|
|
1441
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],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: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
1432
1442
|
KlesFormCheckboxComponent = __decorate([
|
|
1433
1443
|
FieldMapper({ type: EnumType.checkbox })
|
|
1434
1444
|
], KlesFormCheckboxComponent);
|
|
@@ -2373,20 +2383,7 @@ class KlesFormSelectSearchComponent extends KlesFieldAbstract {
|
|
|
2373
2383
|
}
|
|
2374
2384
|
this.openChange$
|
|
2375
2385
|
.pipe(takeUntil(this._onDestroy), switchMap((isOpen) => {
|
|
2376
|
-
|
|
2377
|
-
if (!(this.field.options instanceof Observable)) {
|
|
2378
|
-
return of(this.field.options);
|
|
2379
|
-
}
|
|
2380
|
-
else {
|
|
2381
|
-
this.isLoading = true;
|
|
2382
|
-
return this.field.options.pipe(take(1));
|
|
2383
|
-
}
|
|
2384
|
-
}
|
|
2385
|
-
else {
|
|
2386
|
-
return of(this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null
|
|
2387
|
-
? (Array.isArray(this.group.controls[this.field.name].value) ?
|
|
2388
|
-
this.group.controls[this.field.name].value : [this.group.controls[this.field.name].value]) : []);
|
|
2389
|
-
}
|
|
2386
|
+
return this.onOpenChange(isOpen);
|
|
2390
2387
|
}))
|
|
2391
2388
|
.subscribe((options) => {
|
|
2392
2389
|
this.options$.next(options);
|
|
@@ -2395,41 +2392,22 @@ class KlesFormSelectSearchComponent extends KlesFieldAbstract {
|
|
|
2395
2392
|
});
|
|
2396
2393
|
}
|
|
2397
2394
|
else {
|
|
2398
|
-
if (
|
|
2399
|
-
this.options$ = of(this.field.options);
|
|
2400
|
-
}
|
|
2401
|
-
else {
|
|
2395
|
+
if (this.field.options instanceof Observable) {
|
|
2402
2396
|
this.options$ = this.field.options;
|
|
2403
2397
|
}
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
if (value) {
|
|
2407
|
-
const search = value.toLowerCase();
|
|
2408
|
-
return this.options$.pipe(map(options => {
|
|
2409
|
-
return options
|
|
2410
|
-
.filter(option => {
|
|
2411
|
-
if (this.field.searchKeys && this.field.searchKeys.length) {
|
|
2412
|
-
return this.field.searchKeys.some(searchKey => {
|
|
2413
|
-
if (option[searchKey]) {
|
|
2414
|
-
return option[searchKey].toString().toLowerCase().indexOf(search) > -1;
|
|
2415
|
-
}
|
|
2416
|
-
return false;
|
|
2417
|
-
}) || (this.field.property ?
|
|
2418
|
-
option[this.field.property].toString().toLowerCase().indexOf(search) > -1 : false);
|
|
2419
|
-
}
|
|
2420
|
-
else {
|
|
2421
|
-
if (this.field.property) {
|
|
2422
|
-
return option[this.field.property].toString().toLowerCase().indexOf(search) > -1;
|
|
2423
|
-
}
|
|
2424
|
-
}
|
|
2425
|
-
return option.toString().toLowerCase().indexOf(search) > -1;
|
|
2426
|
-
});
|
|
2427
|
-
}));
|
|
2398
|
+
else if (this.field.options instanceof Function) {
|
|
2399
|
+
this.options$ = this.field.options();
|
|
2428
2400
|
}
|
|
2429
2401
|
else {
|
|
2430
|
-
|
|
2402
|
+
this.options$ = of(this.field.options);
|
|
2431
2403
|
}
|
|
2432
|
-
}
|
|
2404
|
+
}
|
|
2405
|
+
this.searchControl.valueChanges.pipe(takeUntil(this._onDestroy), startWith(this.searchControl.value), switchMap(value => {
|
|
2406
|
+
return concat(of({ loading: true, options: [] }), this.onSearchChange(value).pipe(map((options) => ({ loading: false, options }))));
|
|
2407
|
+
})).subscribe(({ loading, options }) => {
|
|
2408
|
+
this.isLoading = loading;
|
|
2409
|
+
this.optionsFiltered$.next(options);
|
|
2410
|
+
});
|
|
2433
2411
|
if (this.field.multiple) {
|
|
2434
2412
|
this.group.controls[this.field.name]
|
|
2435
2413
|
.valueChanges.pipe(takeUntil(this._onDestroy), startWith(this.group.controls[this.field.name].value), map((selected) => (this.field.property ? selected === null || selected === void 0 ? void 0 : selected.map(s => s[this.field.property]) : selected)), switchMap(selected => {
|
|
@@ -2465,6 +2443,54 @@ class KlesFormSelectSearchComponent extends KlesFieldAbstract {
|
|
|
2465
2443
|
this.group.controls[this.field.name].patchValue([]);
|
|
2466
2444
|
}
|
|
2467
2445
|
}
|
|
2446
|
+
onOpenChange(isOpen) {
|
|
2447
|
+
if (isOpen) {
|
|
2448
|
+
if (this.field.options instanceof Observable) {
|
|
2449
|
+
this.isLoading = true;
|
|
2450
|
+
return this.field.options.pipe(take(1));
|
|
2451
|
+
}
|
|
2452
|
+
else if (this.field.options instanceof Function) {
|
|
2453
|
+
this.isLoading = true;
|
|
2454
|
+
return this.field.options();
|
|
2455
|
+
}
|
|
2456
|
+
else {
|
|
2457
|
+
return of(this.field.options);
|
|
2458
|
+
}
|
|
2459
|
+
}
|
|
2460
|
+
else {
|
|
2461
|
+
return of(this.group.controls[this.field.name].value !== undefined && this.group.controls[this.field.name].value !== null
|
|
2462
|
+
? (Array.isArray(this.group.controls[this.field.name].value) ?
|
|
2463
|
+
this.group.controls[this.field.name].value : [this.group.controls[this.field.name].value]) : []);
|
|
2464
|
+
}
|
|
2465
|
+
}
|
|
2466
|
+
onSearchChange(value) {
|
|
2467
|
+
if (value) {
|
|
2468
|
+
const search = value.toLowerCase();
|
|
2469
|
+
return this.options$.pipe(map(options => {
|
|
2470
|
+
return options
|
|
2471
|
+
.filter(option => {
|
|
2472
|
+
if (this.field.searchKeys && this.field.searchKeys.length) {
|
|
2473
|
+
return this.field.searchKeys.some(searchKey => {
|
|
2474
|
+
if (option[searchKey]) {
|
|
2475
|
+
return option[searchKey].toString().toLowerCase().indexOf(search) > -1;
|
|
2476
|
+
}
|
|
2477
|
+
return false;
|
|
2478
|
+
}) || (this.field.property ?
|
|
2479
|
+
option[this.field.property].toString().toLowerCase().indexOf(search) > -1 : false);
|
|
2480
|
+
}
|
|
2481
|
+
else {
|
|
2482
|
+
if (this.field.property) {
|
|
2483
|
+
return option[this.field.property].toString().toLowerCase().indexOf(search) > -1;
|
|
2484
|
+
}
|
|
2485
|
+
}
|
|
2486
|
+
return option.toString().toLowerCase().indexOf(search) > -1;
|
|
2487
|
+
});
|
|
2488
|
+
}));
|
|
2489
|
+
}
|
|
2490
|
+
else {
|
|
2491
|
+
return this.options$;
|
|
2492
|
+
}
|
|
2493
|
+
}
|
|
2468
2494
|
openChange($event) {
|
|
2469
2495
|
if (this.field.lazy) {
|
|
2470
2496
|
this.openChange$.next($event);
|
|
@@ -2581,7 +2607,7 @@ KlesFormSelectSearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "1
|
|
|
2581
2607
|
<mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
|
|
2582
2608
|
</ng-container>
|
|
2583
2609
|
</mat-form-field>
|
|
2584
|
-
`, isInline: true, styles: ["mat-form-field{width:100%}\n", ".selectAll{padding:10px 16px}\n", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],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: "directive", type: i3$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type:
|
|
2610
|
+
`, isInline: true, styles: ["mat-form-field{width:100%}\n", ".selectAll{padding:10px 16px}\n", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],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: "directive", type: i3$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i11.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i11.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i11.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i12.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] });
|
|
2585
2611
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KlesFormSelectSearchComponent, decorators: [{
|
|
2586
2612
|
type: Component,
|
|
2587
2613
|
args: [{ selector: 'kles-form-select-search', template: `
|
|
@@ -2775,7 +2801,7 @@ KlesFormSlideToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14
|
|
|
2775
2801
|
<mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message}}</mat-error>
|
|
2776
2802
|
</ng-container>
|
|
2777
2803
|
</div>
|
|
2778
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],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: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6$
|
|
2804
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],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: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
|
|
2779
2805
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KlesFormSlideToggleComponent, decorators: [{
|
|
2780
2806
|
type: Component,
|
|
2781
2807
|
args: [{ selector: 'kles-form-slide-toggle', template: `
|
|
@@ -2794,11 +2820,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
2794
2820
|
class KlesFormSelectionListComponent extends KlesFieldAbstract {
|
|
2795
2821
|
ngOnInit() {
|
|
2796
2822
|
super.ngOnInit();
|
|
2797
|
-
if (
|
|
2798
|
-
this.options$ =
|
|
2823
|
+
if (this.field.options instanceof Observable) {
|
|
2824
|
+
this.options$ = this.field.options;
|
|
2825
|
+
}
|
|
2826
|
+
else if (this.field.options instanceof Function) {
|
|
2827
|
+
this.options$ = this.field.options();
|
|
2799
2828
|
}
|
|
2800
2829
|
else {
|
|
2801
|
-
this.options$ = this.field.options;
|
|
2830
|
+
this.options$ = of(this.field.options);
|
|
2802
2831
|
}
|
|
2803
2832
|
}
|
|
2804
2833
|
ngOnDestroy() {
|
|
@@ -2876,11 +2905,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
2876
2905
|
class KlesFormButtonToogleGroupComponent extends KlesFieldAbstract {
|
|
2877
2906
|
ngOnInit() {
|
|
2878
2907
|
super.ngOnInit();
|
|
2879
|
-
if (
|
|
2880
|
-
this.options$ =
|
|
2908
|
+
if (this.field.options instanceof Observable) {
|
|
2909
|
+
this.options$ = this.field.options;
|
|
2910
|
+
}
|
|
2911
|
+
else if (this.field.options instanceof Function) {
|
|
2912
|
+
this.options$ = this.field.options();
|
|
2881
2913
|
}
|
|
2882
2914
|
else {
|
|
2883
|
-
this.options$ = this.field.options;
|
|
2915
|
+
this.options$ = of(this.field.options);
|
|
2884
2916
|
}
|
|
2885
2917
|
}
|
|
2886
2918
|
ngOnDestroy() {
|
|
@@ -3086,6 +3118,256 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
3086
3118
|
`, styles: ["mat-form-field{width:100%}\n"] }]
|
|
3087
3119
|
}] });
|
|
3088
3120
|
|
|
3121
|
+
class KlesFormSelectLazySearchComponent extends KlesFormSelectSearchComponent {
|
|
3122
|
+
constructor(viewRef, ref) {
|
|
3123
|
+
super(viewRef, ref);
|
|
3124
|
+
this.viewRef = viewRef;
|
|
3125
|
+
this.ref = ref;
|
|
3126
|
+
}
|
|
3127
|
+
ngOnInit() {
|
|
3128
|
+
this.field.lazy = true;
|
|
3129
|
+
super.ngOnInit();
|
|
3130
|
+
this.openChange$.pipe(takeUntil(this._onDestroy))
|
|
3131
|
+
.subscribe((open) => {
|
|
3132
|
+
if (open) {
|
|
3133
|
+
this.searchControl.reset(null);
|
|
3134
|
+
}
|
|
3135
|
+
else {
|
|
3136
|
+
this.searchControl.reset(null, { emitEvent: false });
|
|
3137
|
+
}
|
|
3138
|
+
});
|
|
3139
|
+
}
|
|
3140
|
+
ngOnDestroy() {
|
|
3141
|
+
super.ngOnDestroy();
|
|
3142
|
+
}
|
|
3143
|
+
onSearchChange(value) {
|
|
3144
|
+
if (this.field.options instanceof Function) {
|
|
3145
|
+
if (value) {
|
|
3146
|
+
const search = value.toLowerCase();
|
|
3147
|
+
return this.field.options(search).pipe(take(1));
|
|
3148
|
+
}
|
|
3149
|
+
else {
|
|
3150
|
+
return this.field.options().pipe(take(1));
|
|
3151
|
+
}
|
|
3152
|
+
}
|
|
3153
|
+
else {
|
|
3154
|
+
return super.onSearchChange(value);
|
|
3155
|
+
}
|
|
3156
|
+
}
|
|
3157
|
+
}
|
|
3158
|
+
KlesFormSelectLazySearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KlesFormSelectLazySearchComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3159
|
+
KlesFormSelectLazySearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: KlesFormSelectLazySearchComponent, selector: "kles-form-select-lazy-search", usesInheritance: true, ngImport: i0, template: `
|
|
3160
|
+
<mat-form-field class="margin-top" [color]="field.color" [formGroup]="group">
|
|
3161
|
+
<mat-select matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass"
|
|
3162
|
+
(openedChange)="openChange($event)" [compareWith]="compareFn"
|
|
3163
|
+
[placeholder]="field.placeholder | translate" [formControlName]="field.name" [multiple]="field.multiple">
|
|
3164
|
+
<mat-select-trigger *ngIf="field.triggerComponent">
|
|
3165
|
+
<ng-container klesComponent [component]="field.triggerComponent" [value]="group.controls[field.name].value" [field]="field"></ng-container>
|
|
3166
|
+
</mat-select-trigger>
|
|
3167
|
+
|
|
3168
|
+
<ng-container *ngIf="field.virtualScroll">
|
|
3169
|
+
<mat-option>
|
|
3170
|
+
<ngx-mat-select-search [formControl]="searchControl" [clearSearchInput]="false"
|
|
3171
|
+
placeholderLabel="" noEntriesFoundLabel =""></ngx-mat-select-search>
|
|
3172
|
+
</mat-option>
|
|
3173
|
+
|
|
3174
|
+
<cdk-virtual-scroll-viewport [itemSize]="field.itemSize || 50" [style.height.px]=4*48>
|
|
3175
|
+
<ng-container *ngIf="!isLoading; else emptyOption">
|
|
3176
|
+
<mat-checkbox *ngIf="field.multiple" class="selectAll" [formControl]="selectAllControl"
|
|
3177
|
+
(change)="toggleAllSelection($event)">
|
|
3178
|
+
{{'selectAll' | translate}}
|
|
3179
|
+
</mat-checkbox>
|
|
3180
|
+
<ng-container *ngIf="!field.autocompleteComponent">
|
|
3181
|
+
<mat-option *cdkVirtualFor="let item of optionsFiltered$ | async" [value]="item" [disabled]="item?.disabled">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>
|
|
3182
|
+
|
|
3183
|
+
<ng-container *ngIf="field.multiple">
|
|
3184
|
+
<mat-option *ngFor="let item of group.controls[field.name].value | slice:0:30" [value]="item"
|
|
3185
|
+
style="display:none">
|
|
3186
|
+
{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}
|
|
3187
|
+
</mat-option>
|
|
3188
|
+
</ng-container>
|
|
3189
|
+
|
|
3190
|
+
<ng-container *ngIf="!field.multiple && group.controls[field.name].value">
|
|
3191
|
+
<mat-option *ngFor="let item of [group?.controls[field.name]?.value]" [value]="item" style="display:none">
|
|
3192
|
+
{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}
|
|
3193
|
+
</mat-option>
|
|
3194
|
+
</ng-container>
|
|
3195
|
+
</ng-container>
|
|
3196
|
+
|
|
3197
|
+
<ng-container *ngIf="field.autocompleteComponent">
|
|
3198
|
+
<mat-option *cdkVirtualFor="let item of optionsFiltered$ | async" [value]="item" [disabled]="item?.disabled">
|
|
3199
|
+
<ng-container klesComponent [component]="field.autocompleteComponent" [value]="item" [field]="field"></ng-container>
|
|
3200
|
+
</mat-option>
|
|
3201
|
+
|
|
3202
|
+
<ng-container *ngIf="field.multiple">
|
|
3203
|
+
<mat-option *ngFor="let item of group.controls[field.name].value | slice:0:30" [value]="item"
|
|
3204
|
+
style="display:none">
|
|
3205
|
+
<ng-container klesComponent [component]="field.autocompleteComponent" [value]="item" [field]="field"></ng-container>
|
|
3206
|
+
</mat-option>
|
|
3207
|
+
</ng-container>
|
|
3208
|
+
|
|
3209
|
+
<ng-container *ngIf="!field.multiple && group.controls[field.name].value">
|
|
3210
|
+
<mat-option *ngFor="let item of [group?.controls[field.name]?.value]" [value]="item" style="display:none">
|
|
3211
|
+
<ng-container klesComponent [component]="field.autocompleteComponent" [value]="item" [field]="field"></ng-container>
|
|
3212
|
+
</mat-option>
|
|
3213
|
+
</ng-container>
|
|
3214
|
+
</ng-container>
|
|
3215
|
+
</ng-container>
|
|
3216
|
+
<ng-template #emptyOption>
|
|
3217
|
+
<mat-option class="hide-checkbox" disabled><div fxLayout="row" fxLayoutAlign="space-between center">{{'loading' | translate}}... <mat-spinner class="spinner" diameter="20"></mat-spinner></div></mat-option>
|
|
3218
|
+
</ng-template>
|
|
3219
|
+
</cdk-virtual-scroll-viewport>
|
|
3220
|
+
|
|
3221
|
+
</ng-container>
|
|
3222
|
+
|
|
3223
|
+
<ng-container *ngIf="!field.virtualScroll">
|
|
3224
|
+
<mat-option>
|
|
3225
|
+
<ngx-mat-select-search [formControl]="searchControl" [clearSearchInput]="false"
|
|
3226
|
+
placeholderLabel="" noEntriesFoundLabel =""></ngx-mat-select-search>
|
|
3227
|
+
</mat-option>
|
|
3228
|
+
|
|
3229
|
+
<ng-container *ngIf="!isLoading; else emptyOption">
|
|
3230
|
+
<mat-checkbox *ngIf="field.multiple" class="selectAll" [formControl]="selectAllControl"
|
|
3231
|
+
(change)="toggleAllSelection($event)">
|
|
3232
|
+
{{'selectAll' | translate}}
|
|
3233
|
+
</mat-checkbox>
|
|
3234
|
+
<ng-container *ngIf="!field.autocompleteComponent">
|
|
3235
|
+
<mat-option *ngFor="let item of optionsFiltered$ | async" [value]="item" [disabled]="item?.disabled">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>
|
|
3236
|
+
</ng-container>
|
|
3237
|
+
|
|
3238
|
+
<ng-container *ngIf="field.autocompleteComponent">
|
|
3239
|
+
<mat-option *ngFor="let item of optionsFiltered$ | async" [value]="item" [disabled]="item?.disabled">
|
|
3240
|
+
<ng-container klesComponent [component]="field.autocompleteComponent" [value]="item" [field]="field"></ng-container>
|
|
3241
|
+
</mat-option>
|
|
3242
|
+
</ng-container>
|
|
3243
|
+
</ng-container>
|
|
3244
|
+
|
|
3245
|
+
<ng-template #emptyOption>
|
|
3246
|
+
<mat-option class="hide-checkbox" disabled><div fxLayout="row" fxLayoutAlign="space-between center">{{'loading' | translate}}... <mat-spinner class="spinner" diameter="20"></mat-spinner></div></mat-option>
|
|
3247
|
+
</ng-template>
|
|
3248
|
+
</ng-container>
|
|
3249
|
+
</mat-select>
|
|
3250
|
+
|
|
3251
|
+
<div matSuffix>
|
|
3252
|
+
<ng-content></ng-content>
|
|
3253
|
+
</div>
|
|
3254
|
+
|
|
3255
|
+
<ng-container *ngFor="let validation of field.validations;" ngProjectAs="mat-error">
|
|
3256
|
+
<mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
|
|
3257
|
+
</ng-container>
|
|
3258
|
+
<ng-container *ngFor="let validation of field.asyncValidations;" ngProjectAs="mat-error">
|
|
3259
|
+
<mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
|
|
3260
|
+
</ng-container>
|
|
3261
|
+
</mat-form-field>
|
|
3262
|
+
`, isInline: true, styles: ["mat-form-field{width:100%}\n", ".selectAll{padding:10px 16px}\n", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],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: "directive", type: i3$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i7$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i11.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i11.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i11.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i12.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "directive", type: KlesComponentDirective, selector: "[klesComponent]", inputs: ["component", "value", "field"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: KlesTransformPipe, name: "klesTransform" }] });
|
|
3263
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KlesFormSelectLazySearchComponent, decorators: [{
|
|
3264
|
+
type: Component,
|
|
3265
|
+
args: [{ selector: 'kles-form-select-lazy-search', template: `
|
|
3266
|
+
<mat-form-field class="margin-top" [color]="field.color" [formGroup]="group">
|
|
3267
|
+
<mat-select matTooltip="{{field.tooltip}}" [attr.id]="field.id" [ngClass]="field.ngClass"
|
|
3268
|
+
(openedChange)="openChange($event)" [compareWith]="compareFn"
|
|
3269
|
+
[placeholder]="field.placeholder | translate" [formControlName]="field.name" [multiple]="field.multiple">
|
|
3270
|
+
<mat-select-trigger *ngIf="field.triggerComponent">
|
|
3271
|
+
<ng-container klesComponent [component]="field.triggerComponent" [value]="group.controls[field.name].value" [field]="field"></ng-container>
|
|
3272
|
+
</mat-select-trigger>
|
|
3273
|
+
|
|
3274
|
+
<ng-container *ngIf="field.virtualScroll">
|
|
3275
|
+
<mat-option>
|
|
3276
|
+
<ngx-mat-select-search [formControl]="searchControl" [clearSearchInput]="false"
|
|
3277
|
+
placeholderLabel="" noEntriesFoundLabel =""></ngx-mat-select-search>
|
|
3278
|
+
</mat-option>
|
|
3279
|
+
|
|
3280
|
+
<cdk-virtual-scroll-viewport [itemSize]="field.itemSize || 50" [style.height.px]=4*48>
|
|
3281
|
+
<ng-container *ngIf="!isLoading; else emptyOption">
|
|
3282
|
+
<mat-checkbox *ngIf="field.multiple" class="selectAll" [formControl]="selectAllControl"
|
|
3283
|
+
(change)="toggleAllSelection($event)">
|
|
3284
|
+
{{'selectAll' | translate}}
|
|
3285
|
+
</mat-checkbox>
|
|
3286
|
+
<ng-container *ngIf="!field.autocompleteComponent">
|
|
3287
|
+
<mat-option *cdkVirtualFor="let item of optionsFiltered$ | async" [value]="item" [disabled]="item?.disabled">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>
|
|
3288
|
+
|
|
3289
|
+
<ng-container *ngIf="field.multiple">
|
|
3290
|
+
<mat-option *ngFor="let item of group.controls[field.name].value | slice:0:30" [value]="item"
|
|
3291
|
+
style="display:none">
|
|
3292
|
+
{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}
|
|
3293
|
+
</mat-option>
|
|
3294
|
+
</ng-container>
|
|
3295
|
+
|
|
3296
|
+
<ng-container *ngIf="!field.multiple && group.controls[field.name].value">
|
|
3297
|
+
<mat-option *ngFor="let item of [group?.controls[field.name]?.value]" [value]="item" style="display:none">
|
|
3298
|
+
{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}
|
|
3299
|
+
</mat-option>
|
|
3300
|
+
</ng-container>
|
|
3301
|
+
</ng-container>
|
|
3302
|
+
|
|
3303
|
+
<ng-container *ngIf="field.autocompleteComponent">
|
|
3304
|
+
<mat-option *cdkVirtualFor="let item of optionsFiltered$ | async" [value]="item" [disabled]="item?.disabled">
|
|
3305
|
+
<ng-container klesComponent [component]="field.autocompleteComponent" [value]="item" [field]="field"></ng-container>
|
|
3306
|
+
</mat-option>
|
|
3307
|
+
|
|
3308
|
+
<ng-container *ngIf="field.multiple">
|
|
3309
|
+
<mat-option *ngFor="let item of group.controls[field.name].value | slice:0:30" [value]="item"
|
|
3310
|
+
style="display:none">
|
|
3311
|
+
<ng-container klesComponent [component]="field.autocompleteComponent" [value]="item" [field]="field"></ng-container>
|
|
3312
|
+
</mat-option>
|
|
3313
|
+
</ng-container>
|
|
3314
|
+
|
|
3315
|
+
<ng-container *ngIf="!field.multiple && group.controls[field.name].value">
|
|
3316
|
+
<mat-option *ngFor="let item of [group?.controls[field.name]?.value]" [value]="item" style="display:none">
|
|
3317
|
+
<ng-container klesComponent [component]="field.autocompleteComponent" [value]="item" [field]="field"></ng-container>
|
|
3318
|
+
</mat-option>
|
|
3319
|
+
</ng-container>
|
|
3320
|
+
</ng-container>
|
|
3321
|
+
</ng-container>
|
|
3322
|
+
<ng-template #emptyOption>
|
|
3323
|
+
<mat-option class="hide-checkbox" disabled><div fxLayout="row" fxLayoutAlign="space-between center">{{'loading' | translate}}... <mat-spinner class="spinner" diameter="20"></mat-spinner></div></mat-option>
|
|
3324
|
+
</ng-template>
|
|
3325
|
+
</cdk-virtual-scroll-viewport>
|
|
3326
|
+
|
|
3327
|
+
</ng-container>
|
|
3328
|
+
|
|
3329
|
+
<ng-container *ngIf="!field.virtualScroll">
|
|
3330
|
+
<mat-option>
|
|
3331
|
+
<ngx-mat-select-search [formControl]="searchControl" [clearSearchInput]="false"
|
|
3332
|
+
placeholderLabel="" noEntriesFoundLabel =""></ngx-mat-select-search>
|
|
3333
|
+
</mat-option>
|
|
3334
|
+
|
|
3335
|
+
<ng-container *ngIf="!isLoading; else emptyOption">
|
|
3336
|
+
<mat-checkbox *ngIf="field.multiple" class="selectAll" [formControl]="selectAllControl"
|
|
3337
|
+
(change)="toggleAllSelection($event)">
|
|
3338
|
+
{{'selectAll' | translate}}
|
|
3339
|
+
</mat-checkbox>
|
|
3340
|
+
<ng-container *ngIf="!field.autocompleteComponent">
|
|
3341
|
+
<mat-option *ngFor="let item of optionsFiltered$ | async" [value]="item" [disabled]="item?.disabled">{{(field.property ? item[field.property] : item) | klesTransform:field.pipeTransform}}</mat-option>
|
|
3342
|
+
</ng-container>
|
|
3343
|
+
|
|
3344
|
+
<ng-container *ngIf="field.autocompleteComponent">
|
|
3345
|
+
<mat-option *ngFor="let item of optionsFiltered$ | async" [value]="item" [disabled]="item?.disabled">
|
|
3346
|
+
<ng-container klesComponent [component]="field.autocompleteComponent" [value]="item" [field]="field"></ng-container>
|
|
3347
|
+
</mat-option>
|
|
3348
|
+
</ng-container>
|
|
3349
|
+
</ng-container>
|
|
3350
|
+
|
|
3351
|
+
<ng-template #emptyOption>
|
|
3352
|
+
<mat-option class="hide-checkbox" disabled><div fxLayout="row" fxLayoutAlign="space-between center">{{'loading' | translate}}... <mat-spinner class="spinner" diameter="20"></mat-spinner></div></mat-option>
|
|
3353
|
+
</ng-template>
|
|
3354
|
+
</ng-container>
|
|
3355
|
+
</mat-select>
|
|
3356
|
+
|
|
3357
|
+
<div matSuffix>
|
|
3358
|
+
<ng-content></ng-content>
|
|
3359
|
+
</div>
|
|
3360
|
+
|
|
3361
|
+
<ng-container *ngFor="let validation of field.validations;" ngProjectAs="mat-error">
|
|
3362
|
+
<mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
|
|
3363
|
+
</ng-container>
|
|
3364
|
+
<ng-container *ngFor="let validation of field.asyncValidations;" ngProjectAs="mat-error">
|
|
3365
|
+
<mat-error *ngIf="group.get(field.name).hasError(validation.name)">{{validation.message | translate}}</mat-error>
|
|
3366
|
+
</ng-container>
|
|
3367
|
+
</mat-form-field>
|
|
3368
|
+
`, styles: ["mat-form-field{width:100%}\n", ".selectAll{padding:10px 16px}\n", "::ng-deep .hide-checkbox .mat-pseudo-checkbox{display:none!important}\n"] }]
|
|
3369
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; } });
|
|
3370
|
+
|
|
3089
3371
|
const components = [
|
|
3090
3372
|
KlesDynamicFormComponent,
|
|
3091
3373
|
KlesFormLabelComponent,
|
|
@@ -3118,7 +3400,8 @@ const components = [
|
|
|
3118
3400
|
KlesFormButtonToogleGroupComponent,
|
|
3119
3401
|
KlesFormArrayComponent,
|
|
3120
3402
|
KlesFormRangeComponent,
|
|
3121
|
-
KlesFormClearComponent
|
|
3403
|
+
KlesFormClearComponent,
|
|
3404
|
+
KlesFormSelectLazySearchComponent
|
|
3122
3405
|
];
|
|
3123
3406
|
const directives = [KlesDynamicFieldDirective, KlesComponentDirective];
|
|
3124
3407
|
const pipes = [KlesTransformPipe, ArrayFormatPipe];
|
|
@@ -3161,7 +3444,8 @@ KlesMaterialDynamicformsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "1
|
|
|
3161
3444
|
KlesFormButtonToogleGroupComponent,
|
|
3162
3445
|
KlesFormArrayComponent,
|
|
3163
3446
|
KlesFormRangeComponent,
|
|
3164
|
-
KlesFormClearComponent,
|
|
3447
|
+
KlesFormClearComponent,
|
|
3448
|
+
KlesFormSelectLazySearchComponent, KlesDynamicFieldDirective, KlesComponentDirective, KlesTransformPipe, ArrayFormatPipe], imports: [CommonModule,
|
|
3165
3449
|
ReactiveFormsModule,
|
|
3166
3450
|
TranslateModule,
|
|
3167
3451
|
FlexLayoutModule,
|
|
@@ -3199,7 +3483,8 @@ KlesMaterialDynamicformsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "1
|
|
|
3199
3483
|
KlesFormButtonToogleGroupComponent,
|
|
3200
3484
|
KlesFormArrayComponent,
|
|
3201
3485
|
KlesFormRangeComponent,
|
|
3202
|
-
KlesFormClearComponent,
|
|
3486
|
+
KlesFormClearComponent,
|
|
3487
|
+
KlesFormSelectLazySearchComponent, KlesTransformPipe, ArrayFormatPipe, KlesDynamicFieldDirective, KlesComponentDirective, ColorPickerModule] });
|
|
3203
3488
|
KlesMaterialDynamicformsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: KlesMaterialDynamicformsModule, providers: [
|
|
3204
3489
|
{ provide: ErrorStateMatcher, useClass: KlesFormErrorStateMatcher },
|
|
3205
3490
|
pipes
|
|
@@ -3274,5 +3559,5 @@ function autocompleteStringValidator(validOptions, optional) {
|
|
|
3274
3559
|
* Generated bundle index. Do not edit.
|
|
3275
3560
|
*/
|
|
3276
3561
|
|
|
3277
|
-
export { ArrayFormatPipe, EnumType, FieldMapper, KlesButtonCheckerComponent, KlesButtonComponent, KlesButtonFileComponent, KlesComponentDirective, KlesDynamicFieldDirective, KlesDynamicFormComponent, KlesFieldAbstract, KlesFormArray, KlesFormArrayComponent, KlesFormBadgeComponent, KlesFormButtonCheckerComponent, KlesFormButtonComponent, KlesFormButtonFileComponent, KlesFormButtonToogleGroupComponent, KlesFormCheckboxComponent, KlesFormChipComponent, KlesFormClearComponent, KlesFormColorComponent, KlesFormControl, KlesFormDateComponent, KlesFormErrorStateMatcher, KlesFormGroup, KlesFormGroupComponent, KlesFormIconComponent, KlesFormInputClearableComponent, KlesFormInputComponent, KlesFormLabelComponent, KlesFormLineBreakComponent, KlesFormLinkComponent, KlesFormListFieldComponent, KlesFormRadioComponent, KlesFormRange, KlesFormRangeComponent, KlesFormSelectComponent, KlesFormSelectSearchComponent, KlesFormSelectionListComponent, KlesFormSlideToggleComponent, KlesFormSubmitButtonComponent, KlesFormTextComponent, KlesFormTextareaComponent, KlesMaterialDynamicformsModule, KlesTransformPipe, autocompleteObjectValidator, autocompleteStringValidator, componentMapper, klesFieldControlFactory };
|
|
3562
|
+
export { ArrayFormatPipe, EnumType, FieldMapper, KlesButtonCheckerComponent, KlesButtonComponent, KlesButtonFileComponent, KlesComponentDirective, KlesDynamicFieldDirective, KlesDynamicFormComponent, KlesFieldAbstract, KlesFormArray, KlesFormArrayComponent, KlesFormBadgeComponent, KlesFormButtonCheckerComponent, KlesFormButtonComponent, KlesFormButtonFileComponent, KlesFormButtonToogleGroupComponent, KlesFormCheckboxComponent, KlesFormChipComponent, KlesFormClearComponent, KlesFormColorComponent, KlesFormControl, KlesFormDateComponent, KlesFormErrorStateMatcher, KlesFormGroup, KlesFormGroupComponent, KlesFormIconComponent, KlesFormInputClearableComponent, KlesFormInputComponent, KlesFormLabelComponent, KlesFormLineBreakComponent, KlesFormLinkComponent, KlesFormListFieldComponent, KlesFormRadioComponent, KlesFormRange, KlesFormRangeComponent, KlesFormSelectComponent, KlesFormSelectLazySearchComponent, KlesFormSelectSearchComponent, KlesFormSelectionListComponent, KlesFormSlideToggleComponent, KlesFormSubmitButtonComponent, KlesFormTextComponent, KlesFormTextareaComponent, KlesMaterialDynamicformsModule, KlesTransformPipe, autocompleteObjectValidator, autocompleteStringValidator, componentMapper, klesFieldControlFactory };
|
|
3278
3563
|
//# sourceMappingURL=3kles-kles-material-dynamicforms.mjs.map
|