@ajf/material 18.1.2 → 18.1.3
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/esm2022/form-builder/choices-origin-editor-dialog.mjs +29 -4
- package/esm2022/form-builder/choices-origin-editor.mjs +16 -3
- package/esm2022/form-builder/form-builder-service.mjs +2 -1
- package/esm2022/form-builder/form-builder.mjs +40 -7
- package/esm2022/form-builder/node-properties.mjs +5 -4
- package/esm2022/forms/multiple-choice-field.mjs +41 -28
- package/esm2022/forms/single-choice-field.mjs +40 -27
- package/fesm2022/ajf-material-form-builder.mjs +87 -14
- package/fesm2022/ajf-material-form-builder.mjs.map +1 -1
- package/fesm2022/ajf-material-forms.mjs +77 -54
- package/fesm2022/ajf-material-forms.mjs.map +1 -1
- package/form-builder/choices-origin-editor-dialog.d.ts +3 -0
- package/form-builder/choices-origin-editor.d.ts +4 -1
- package/form-builder/form-builder.d.ts +5 -2
- package/forms/multiple-choice-field.d.ts +12 -7
- package/forms/single-choice-field.d.ts +12 -7
- package/package.json +2 -2
|
@@ -22,45 +22,58 @@
|
|
|
22
22
|
import { AJF_SEARCH_ALERT_THRESHOLD, AJF_WARNING_ALERT_SERVICE, AjfFieldWithChoicesComponent, } from '@ajf/core/forms';
|
|
23
23
|
import { ChangeDetectionStrategy, Component, Inject, Optional, ViewEncapsulation, } from '@angular/core';
|
|
24
24
|
import { FormControl } from '@angular/forms';
|
|
25
|
+
import { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';
|
|
25
26
|
import * as i0 from "@angular/core";
|
|
26
27
|
import * as i1 from "@ajf/core/forms";
|
|
27
|
-
import * as i2 from "@ajf/
|
|
28
|
-
import * as i3 from "@ajf/
|
|
29
|
-
import * as i4 from "@
|
|
30
|
-
import * as i5 from "@angular/
|
|
31
|
-
import * as i6 from "@angular/material/
|
|
32
|
-
import * as i7 from "@angular/
|
|
33
|
-
import * as i8 from "
|
|
34
|
-
import * as i9 from "
|
|
35
|
-
import * as i10 from "
|
|
28
|
+
import * as i2 from "@ajf/core/transloco";
|
|
29
|
+
import * as i3 from "@ajf/material/checkbox-group";
|
|
30
|
+
import * as i4 from "@ajf/core/checkbox-group";
|
|
31
|
+
import * as i5 from "@angular/common";
|
|
32
|
+
import * as i6 from "@angular/material/select";
|
|
33
|
+
import * as i7 from "@angular/material/core";
|
|
34
|
+
import * as i8 from "@angular/forms";
|
|
35
|
+
import * as i9 from "ngx-mat-select-search";
|
|
36
|
+
import * as i10 from "@ngneat/transloco";
|
|
37
|
+
import * as i11 from "./warning-alert-service";
|
|
36
38
|
export class AjfMultipleChoiceFieldComponent extends AjfFieldWithChoicesComponent {
|
|
37
|
-
constructor(cdr, service, was, searchThreshold) {
|
|
39
|
+
constructor(cdr, service, was, searchThreshold, _ts) {
|
|
38
40
|
super(cdr, service, was, searchThreshold);
|
|
39
|
-
this.
|
|
40
|
-
this.
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
this._ts = _ts;
|
|
42
|
+
this.searchFilterCtrl = new FormControl('', { nonNullable: true });
|
|
43
|
+
this.translatedChoices = [];
|
|
44
|
+
this.filteredChoices$ = this.searchFilterCtrl.valueChanges.pipe(startWith(''), debounceTime(150), distinctUntilChanged(), map(search => {
|
|
45
|
+
const choices = this.instance?.filteredChoices || [];
|
|
46
|
+
if (choices.length && this.translatedChoices.length !== choices.length) {
|
|
47
|
+
this.rebuildCache();
|
|
48
|
+
}
|
|
49
|
+
if (!search) {
|
|
50
|
+
return choices;
|
|
51
|
+
}
|
|
52
|
+
const lowerSearch = search.toLowerCase();
|
|
53
|
+
return this.translatedChoices.filter(c => c.label.includes(lowerSearch)).map(c => c.choice);
|
|
54
|
+
}));
|
|
43
55
|
}
|
|
44
|
-
|
|
56
|
+
ngOnInit() {
|
|
57
|
+
super.ngOnInit();
|
|
58
|
+
this.rebuildCache();
|
|
59
|
+
}
|
|
60
|
+
rebuildCache() {
|
|
45
61
|
const choices = this.instance?.filteredChoices || [];
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
search = search.toLowerCase();
|
|
51
|
-
return choices.filter(c => c.label.toLowerCase().includes(search));
|
|
62
|
+
this.translatedChoices = choices.map(c => ({
|
|
63
|
+
choice: c,
|
|
64
|
+
label: this._ts.translate(c.label).toLowerCase(),
|
|
65
|
+
}));
|
|
52
66
|
}
|
|
53
67
|
ngOnDestroy() {
|
|
54
68
|
super.ngOnDestroy();
|
|
55
|
-
this.searchFilterSub.unsubscribe();
|
|
56
69
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfMultipleChoiceFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: AJF_SEARCH_ALERT_THRESHOLD, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfMultipleChoiceFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\" [multiple]=\"true\">\n <mat-option [style.backgroundColor]=\"'white'\">\n <ngx-mat-select-search\n [formControl]=\"searchFilterCtrl\"\n [placeholderLabel]=\"'Search'|transloco\"\n [noEntriesFoundLabel]=\"'Nothing found'|transloco\"\n [enableClearOnEscapePressed]=\"true\">\n </ngx-mat-select-search>\n </mat-option>\n <mat-option [value]=\"choice.value\" *ngFor=\"let choice of filteredChoices
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfMultipleChoiceFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: AJF_SEARCH_ALERT_THRESHOLD, optional: true }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfMultipleChoiceFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\" [multiple]=\"true\">\n <mat-option [style.backgroundColor]=\"'white'\">\n <ngx-mat-select-search\n [formControl]=\"searchFilterCtrl\"\n [placeholderLabel]=\"'Search'|transloco\"\n [noEntriesFoundLabel]=\"'Nothing found'|transloco\"\n [enableClearOnEscapePressed]=\"true\">\n </ngx-mat-select-search>\n </mat-option>\n <mat-option [value]=\"choice.value\" *ngFor=\"let choice of filteredChoices$ | async\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <ajf-checkbox-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [formControl]=\"ctrl!\">\n <ajf-checkbox-group-item [value]=\"choice.value\" *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </ajf-checkbox-group-item>\n </ajf-checkbox-group>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i3.CheckboxGroupItem, selector: "ajf-checkbox-group-item" }, { kind: "directive", type: i4.AjfCheckboxGroup, selector: "ajf-checkbox-group,[ajf-checkbox-group]", inputs: ["value", "name", "disabled"], outputs: ["change"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.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"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i9.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: "pipe", type: i10.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AjfExpandFieldWithChoicesPipe, name: "ajfExpandFieldWithChoices" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
59
72
|
}
|
|
60
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfMultipleChoiceFieldComponent, decorators: [{
|
|
61
74
|
type: Component,
|
|
62
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\" [multiple]=\"true\">\n <mat-option [style.backgroundColor]=\"'white'\">\n <ngx-mat-select-search\n [formControl]=\"searchFilterCtrl\"\n [placeholderLabel]=\"'Search'|transloco\"\n [noEntriesFoundLabel]=\"'Nothing found'|transloco\"\n [enableClearOnEscapePressed]=\"true\">\n </ngx-mat-select-search>\n </mat-option>\n <mat-option [value]=\"choice.value\" *ngFor=\"let choice of filteredChoices
|
|
63
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type:
|
|
75
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\" [multiple]=\"true\">\n <mat-option [style.backgroundColor]=\"'white'\">\n <ngx-mat-select-search\n [formControl]=\"searchFilterCtrl\"\n [placeholderLabel]=\"'Search'|transloco\"\n [noEntriesFoundLabel]=\"'Nothing found'|transloco\"\n [enableClearOnEscapePressed]=\"true\">\n </ngx-mat-select-search>\n </mat-option>\n <mat-option [value]=\"choice.value\" *ngFor=\"let choice of filteredChoices$ | async\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <ajf-checkbox-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [formControl]=\"ctrl!\">\n <ajf-checkbox-group-item [value]=\"choice.value\" *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </ajf-checkbox-group-item>\n </ajf-checkbox-group>\n</ng-template>\n" }]
|
|
76
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: i11.AjfWarningAlertService, decorators: [{
|
|
64
77
|
type: Inject,
|
|
65
78
|
args: [AJF_WARNING_ALERT_SERVICE]
|
|
66
79
|
}] }, { type: undefined, decorators: [{
|
|
@@ -68,5 +81,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
68
81
|
}, {
|
|
69
82
|
type: Inject,
|
|
70
83
|
args: [AJF_SEARCH_ALERT_THRESHOLD]
|
|
71
|
-
}] }] });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
}] }, { type: i2.TranslocoService }] });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUtY2hvaWNlLWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwvZm9ybXMvc3JjL211bHRpcGxlLWNob2ljZS1maWVsZC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsL2Zvcm1zL3NyYy9tdWx0aXBsZS1jaG9pY2UtZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUV6Qiw0QkFBNEIsR0FFN0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxNQUFNLEVBR04sUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFXbEYsTUFBTSxPQUFPLCtCQUNYLFNBQVEsNEJBQStCO0lBU3ZDLFlBQ0UsR0FBc0IsRUFDdEIsT0FBK0IsRUFDSSxHQUEyQixFQUNkLGVBQXVCLEVBQy9ELEdBQXFCO1FBRTdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUZsQyxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQVh0QixxQkFBZ0IsR0FBRyxJQUFJLFdBQVcsQ0FBUyxFQUFFLEVBQUUsRUFBQyxXQUFXLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUlyRSxzQkFBaUIsR0FBOEMsRUFBRSxDQUFDO1FBV3hFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDN0QsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUNiLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLElBQUksRUFBRSxDQUFDO1lBQ3JELElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osT0FBTyxPQUFPLENBQUM7WUFDakIsQ0FBQztZQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVRLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUVyRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDekMsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRTtTQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFUSxXQUFXO1FBQ2xCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QixDQUFDOytHQXJEVSwrQkFBK0IseUZBYWhDLHlCQUF5QixhQUNiLDBCQUEwQjttR0FkckMsK0JBQStCLDJFQ3BENUMsb29DQXlCQTs7NEZEMkJhLCtCQUErQjtrQkFOM0MsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzswQkFlbEMsTUFBTTsyQkFBQyx5QkFBeUI7OzBCQUNoQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAoQykgR251Y29vcCBzb2MuIGNvb3AuXG4gKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3JcbiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhc1xuICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsXG4gKiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEFmZmVyb1xuICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpLlxuICogSWYgbm90LCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLy5cbiAqXG4gKi9cblxuaW1wb3J0IHtcbiAgQUpGX1NFQVJDSF9BTEVSVF9USFJFU0hPTEQsXG4gIEFKRl9XQVJOSU5HX0FMRVJUX1NFUlZJQ0UsXG4gIEFqZkNob2ljZSxcbiAgQWpmRmllbGRXaXRoQ2hvaWNlc0NvbXBvbmVudCxcbiAgQWpmRm9ybVJlbmRlcmVyU2VydmljZSxcbn0gZnJvbSAnQGFqZi9jb3JlL2Zvcm1zJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbmplY3QsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtUcmFuc2xvY29TZXJ2aWNlfSBmcm9tICdAYWpmL2NvcmUvdHJhbnNsb2NvJztcbmltcG9ydCB7QWpmV2FybmluZ0FsZXJ0U2VydmljZX0gZnJvbSAnLi93YXJuaW5nLWFsZXJ0LXNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICdtdWx0aXBsZS1jaG9pY2UtZmllbGQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydtdWx0aXBsZS1jaG9pY2UtZmllbGQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQWpmTXVsdGlwbGVDaG9pY2VGaWVsZENvbXBvbmVudDxUPlxuICBleHRlbmRzIEFqZkZpZWxkV2l0aENob2ljZXNDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICByZWFkb25seSBzZWFyY2hGaWx0ZXJDdHJsID0gbmV3IEZvcm1Db250cm9sPHN0cmluZz4oJycsIHtub25OdWxsYWJsZTogdHJ1ZX0pO1xuXG4gIGZpbHRlcmVkQ2hvaWNlcyQ6IE9ic2VydmFibGU8QWpmQ2hvaWNlPGFueT5bXT47XG5cbiAgcHJpdmF0ZSB0cmFuc2xhdGVkQ2hvaWNlczoge2Nob2ljZTogQWpmQ2hvaWNlPGFueT47IGxhYmVsOiBzdHJpbmd9W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHNlcnZpY2U6IEFqZkZvcm1SZW5kZXJlclNlcnZpY2UsXG4gICAgQEluamVjdChBSkZfV0FSTklOR19BTEVSVF9TRVJWSUNFKSB3YXM6IEFqZldhcm5pbmdBbGVydFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBSkZfU0VBUkNIX0FMRVJUX1RIUkVTSE9MRCkgc2VhcmNoVGhyZXNob2xkOiBudW1iZXIsXG4gICAgcHJpdmF0ZSBfdHM6IFRyYW5zbG9jb1NlcnZpY2UsXG4gICkge1xuICAgIHN1cGVyKGNkciwgc2VydmljZSwgd2FzLCBzZWFyY2hUaHJlc2hvbGQpO1xuXG4gICAgdGhpcy5maWx0ZXJlZENob2ljZXMkID0gdGhpcy5zZWFyY2hGaWx0ZXJDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgIGRlYm91bmNlVGltZSgxNTApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIG1hcChzZWFyY2ggPT4ge1xuICAgICAgICBjb25zdCBjaG9pY2VzID0gdGhpcy5pbnN0YW5jZT8uZmlsdGVyZWRDaG9pY2VzIHx8IFtdO1xuICAgICAgICBpZiAoY2hvaWNlcy5sZW5ndGggJiYgdGhpcy50cmFuc2xhdGVkQ2hvaWNlcy5sZW5ndGggIT09IGNob2ljZXMubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5yZWJ1aWxkQ2FjaGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXNlYXJjaCkge1xuICAgICAgICAgIHJldHVybiBjaG9pY2VzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxvd2VyU2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZWRDaG9pY2VzLmZpbHRlcihjID0+IGMubGFiZWwuaW5jbHVkZXMobG93ZXJTZWFyY2gpKS5tYXAoYyA9PiBjLmNob2ljZSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLnJlYnVpbGRDYWNoZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWJ1aWxkQ2FjaGUoKTogdm9pZCB7XG4gICAgY29uc3QgY2hvaWNlcyA9IHRoaXMuaW5zdGFuY2U/LmZpbHRlcmVkQ2hvaWNlcyB8fCBbXTtcblxuICAgIHRoaXMudHJhbnNsYXRlZENob2ljZXMgPSBjaG9pY2VzLm1hcChjID0+ICh7XG4gICAgICBjaG9pY2U6IGMsXG4gICAgICBsYWJlbDogdGhpcy5fdHMudHJhbnNsYXRlKGMubGFiZWwpLnRvTG93ZXJDYXNlKCksXG4gICAgfSkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImluc3RhbmNlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGluc3RhbmNlfGFqZkV4cGFuZEZpZWxkV2l0aENob2ljZXM6c2VhcmNoVGhyZXNob2xkKTsgZWxzZSBleHBhbmRlZFwiPlxuICAgIDxtYXQtc2VsZWN0ICpuZ0lmPVwiY29udHJvbHxhc3luYyBhcyBjdHJsXCIgW2Zvcm1Db250cm9sXT1cImN0cmwhXCIgW211bHRpcGxlXT1cInRydWVcIj5cbiAgICAgIDxtYXQtb3B0aW9uIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiJ3doaXRlJ1wiPlxuICAgICAgICA8bmd4LW1hdC1zZWxlY3Qtc2VhcmNoXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaEZpbHRlckN0cmxcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cIidTZWFyY2gnfHRyYW5zbG9jb1wiXG4gICAgICAgICAgW25vRW50cmllc0ZvdW5kTGFiZWxdPVwiJ05vdGhpbmcgZm91bmQnfHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2VuYWJsZUNsZWFyT25Fc2NhcGVQcmVzc2VkXT1cInRydWVcIj5cbiAgICAgICAgPC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgKm5nRm9yPVwibGV0IGNob2ljZSBvZiBmaWx0ZXJlZENob2ljZXMkIHwgYXN5bmNcIj5cbiAgICAgICAge3sgY2hvaWNlLmxhYmVsIHwgdHJhbnNsb2NvIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNleHBhbmRlZD5cbiAgPGFqZi1jaGVja2JveC1ncm91cCAqbmdJZj1cImNvbnRyb2x8YXN5bmMgYXMgY3RybFwiIGNsYXNzPVwiYWpmLWNob2ljZXMtY29udGFpbmVyXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjdHJsIVwiPlxuICAgIDxhamYtY2hlY2tib3gtZ3JvdXAtaXRlbSBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgKm5nRm9yPVwibGV0IGNob2ljZSBvZiBpbnN0YW5jZSEuZmlsdGVyZWRDaG9pY2VzXCI+XG4gICAgICB7eyBjaG9pY2UubGFiZWwgfCB0cmFuc2xvY28gfX1cbiAgICA8L2FqZi1jaGVja2JveC1ncm91cC1pdGVtPlxuICA8L2FqZi1jaGVja2JveC1ncm91cD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -21,45 +21,58 @@
|
|
|
21
21
|
*/
|
|
22
22
|
import { AJF_SEARCH_ALERT_THRESHOLD, AJF_WARNING_ALERT_SERVICE, AjfFieldWithChoicesComponent, } from '@ajf/core/forms';
|
|
23
23
|
import { ChangeDetectionStrategy, Component, Inject, Optional, ViewEncapsulation, } from '@angular/core';
|
|
24
|
+
import { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';
|
|
24
25
|
import { FormControl } from '@angular/forms';
|
|
25
26
|
import * as i0 from "@angular/core";
|
|
26
27
|
import * as i1 from "@ajf/core/forms";
|
|
27
|
-
import * as i2 from "@
|
|
28
|
-
import * as i3 from "@angular/
|
|
29
|
-
import * as i4 from "@angular/material/
|
|
30
|
-
import * as i5 from "@angular/material/
|
|
31
|
-
import * as i6 from "@angular/
|
|
32
|
-
import * as i7 from "
|
|
33
|
-
import * as i8 from "
|
|
34
|
-
import * as i9 from "
|
|
28
|
+
import * as i2 from "@ajf/core/transloco";
|
|
29
|
+
import * as i3 from "@angular/common";
|
|
30
|
+
import * as i4 from "@angular/material/radio";
|
|
31
|
+
import * as i5 from "@angular/material/select";
|
|
32
|
+
import * as i6 from "@angular/material/core";
|
|
33
|
+
import * as i7 from "@angular/forms";
|
|
34
|
+
import * as i8 from "ngx-mat-select-search";
|
|
35
|
+
import * as i9 from "@ngneat/transloco";
|
|
36
|
+
import * as i10 from "./warning-alert-service";
|
|
35
37
|
export class AjfSingleChoiceFieldComponent extends AjfFieldWithChoicesComponent {
|
|
36
|
-
constructor(cdr, service, was, searchThreshold) {
|
|
38
|
+
constructor(cdr, service, was, searchThreshold, _ts) {
|
|
37
39
|
super(cdr, service, was, searchThreshold);
|
|
38
|
-
this.
|
|
39
|
-
this.
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
this._ts = _ts;
|
|
41
|
+
this.searchFilterCtrl = new FormControl('', { nonNullable: true });
|
|
42
|
+
this.translatedChoices = [];
|
|
43
|
+
this.filteredChoices$ = this.searchFilterCtrl.valueChanges.pipe(startWith(''), debounceTime(150), distinctUntilChanged(), map(search => {
|
|
44
|
+
const choices = this.instance?.filteredChoices || [];
|
|
45
|
+
if (choices.length && this.translatedChoices.length !== choices.length) {
|
|
46
|
+
this.rebuildCache();
|
|
47
|
+
}
|
|
48
|
+
if (!search) {
|
|
49
|
+
return choices;
|
|
50
|
+
}
|
|
51
|
+
const lowerSearch = search.toLowerCase();
|
|
52
|
+
return this.translatedChoices.filter(c => c.label.includes(lowerSearch)).map(c => c.choice);
|
|
53
|
+
}));
|
|
42
54
|
}
|
|
43
|
-
|
|
55
|
+
ngOnInit() {
|
|
56
|
+
super.ngOnInit();
|
|
57
|
+
this.rebuildCache();
|
|
58
|
+
}
|
|
59
|
+
rebuildCache() {
|
|
44
60
|
const choices = this.instance?.filteredChoices || [];
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
search = search.toLowerCase();
|
|
50
|
-
return choices.filter(c => c.label.toLowerCase().includes(search));
|
|
61
|
+
this.translatedChoices = choices.map(c => ({
|
|
62
|
+
choice: c,
|
|
63
|
+
label: this._ts.translate(c.label).toLowerCase(),
|
|
64
|
+
}));
|
|
51
65
|
}
|
|
52
66
|
ngOnDestroy() {
|
|
53
67
|
super.ngOnDestroy();
|
|
54
|
-
this.searchFilterSub.unsubscribe();
|
|
55
68
|
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfSingleChoiceFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: AJF_SEARCH_ALERT_THRESHOLD, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfSingleChoiceFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold) ; else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\">\n <mat-option [style.backgroundColor]=\"'white'\">\n <ngx-mat-select-search\n [formControl]=\"searchFilterCtrl\"\n [placeholderLabel]=\"'Search'|transloco\"\n [noEntriesFoundLabel]=\"'Nothing found'|transloco\"\n [enableClearOnEscapePressed]=\"true\">\n </ngx-mat-select-search>\n </mat-option>\n <mat-option [value]=\"choice.value\" *ngFor=\"let choice of filteredChoices
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfSingleChoiceFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: AJF_SEARCH_ALERT_THRESHOLD, optional: true }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AjfSingleChoiceFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold) ; else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\">\n <mat-option [style.backgroundColor]=\"'white'\">\n <ngx-mat-select-search\n [formControl]=\"searchFilterCtrl\"\n [placeholderLabel]=\"'Search'|transloco\"\n [noEntriesFoundLabel]=\"'Nothing found'|transloco\"\n [enableClearOnEscapePressed]=\"true\">\n </ngx-mat-select-search>\n </mat-option>\n <mat-option [value]=\"choice.value\" *ngFor=\"let choice of filteredChoices$ | async\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <mat-radio-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [attr.aria-labelledby]=\"instance!.node.name\"\n [formControl]=\"ctrl!\">\n <mat-radio-button [value]=\"choice.value\" *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-radio-button>\n </mat-radio-group>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i5.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"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i8.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: "pipe", type: i9.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AjfExpandFieldWithChoicesPipe, name: "ajfExpandFieldWithChoices" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
58
71
|
}
|
|
59
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AjfSingleChoiceFieldComponent, decorators: [{
|
|
60
73
|
type: Component,
|
|
61
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold) ; else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\">\n <mat-option [style.backgroundColor]=\"'white'\">\n <ngx-mat-select-search\n [formControl]=\"searchFilterCtrl\"\n [placeholderLabel]=\"'Search'|transloco\"\n [noEntriesFoundLabel]=\"'Nothing found'|transloco\"\n [enableClearOnEscapePressed]=\"true\">\n </ngx-mat-select-search>\n </mat-option>\n <mat-option [value]=\"choice.value\" *ngFor=\"let choice of filteredChoices
|
|
62
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type:
|
|
74
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold) ; else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\">\n <mat-option [style.backgroundColor]=\"'white'\">\n <ngx-mat-select-search\n [formControl]=\"searchFilterCtrl\"\n [placeholderLabel]=\"'Search'|transloco\"\n [noEntriesFoundLabel]=\"'Nothing found'|transloco\"\n [enableClearOnEscapePressed]=\"true\">\n </ngx-mat-select-search>\n </mat-option>\n <mat-option [value]=\"choice.value\" *ngFor=\"let choice of filteredChoices$ | async\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <mat-radio-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [attr.aria-labelledby]=\"instance!.node.name\"\n [formControl]=\"ctrl!\">\n <mat-radio-button [value]=\"choice.value\" *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-radio-button>\n </mat-radio-group>\n</ng-template>\n" }]
|
|
75
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: i10.AjfWarningAlertService, decorators: [{
|
|
63
76
|
type: Inject,
|
|
64
77
|
args: [AJF_WARNING_ALERT_SERVICE]
|
|
65
78
|
}] }, { type: undefined, decorators: [{
|
|
@@ -67,5 +80,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
67
80
|
}, {
|
|
68
81
|
type: Inject,
|
|
69
82
|
args: [AJF_SEARCH_ALERT_THRESHOLD]
|
|
70
|
-
}] }] });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
}] }, { type: i2.TranslocoService }] });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLWNob2ljZS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsL2Zvcm1zL3NyYy9zaW5nbGUtY2hvaWNlLWZpZWxkLnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwvZm9ybXMvc3JjL3NpbmdsZS1jaG9pY2UtZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHlCQUF5QixFQUV6Qiw0QkFBNEIsR0FFN0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxNQUFNLEVBR04sUUFBUSxFQUNSLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7OztBQVMzQyxNQUFNLE9BQU8sNkJBQ1gsU0FBUSw0QkFBK0I7SUFTdkMsWUFDRSxHQUFzQixFQUN0QixPQUErQixFQUNJLEdBQTJCLEVBQ2QsZUFBdUIsRUFDL0QsR0FBcUI7UUFFN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRmxDLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBWHRCLHFCQUFnQixHQUFHLElBQUksV0FBVyxDQUFTLEVBQUUsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBSXJFLHNCQUFpQixHQUE4QyxFQUFFLENBQUM7UUFXeEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUM3RCxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQ2IsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFFckQsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN2RSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDO1lBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlGLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLElBQUksRUFBRSxDQUFDO1FBRXJELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFO1NBQ2pELENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7K0dBdERVLDZCQUE2Qix5RkFhOUIseUJBQXlCLGFBQ2IsMEJBQTBCO21HQWRyQyw2QkFBNkIsMkVDcEQxQyxtcENBMEJBOzs0RkQwQmEsNkJBQTZCO2tCQU56QyxTQUFTO3NDQUdTLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQWVsQyxNQUFNOzJCQUFDLHlCQUF5Qjs7MEJBQ2hDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IChDKSBHbnVjb29wIHNvYy4gY29vcC5cbiAqXG4gKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKS5cbiAqXG4gKiBBZHZhbmNlZCBKU09OIGZvcm1zIChhamYpIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxuICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzXG4gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSxcbiAqIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogQWR2YW5jZWQgSlNPTiBmb3JtcyAoYWpmKSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvXG4gKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIEFkdmFuY2VkIEpTT04gZm9ybXMgKGFqZikuXG4gKiBJZiBub3QsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvLlxuICpcbiAqL1xuXG5pbXBvcnQge1xuICBBSkZfU0VBUkNIX0FMRVJUX1RIUkVTSE9MRCxcbiAgQUpGX1dBUk5JTkdfQUxFUlRfU0VSVklDRSxcbiAgQWpmQ2hvaWNlLFxuICBBamZGaWVsZFdpdGhDaG9pY2VzQ29tcG9uZW50LFxuICBBamZGb3JtUmVuZGVyZXJTZXJ2aWNlLFxufSBmcm9tICdAYWpmL2NvcmUvZm9ybXMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1RyYW5zbG9jb1NlcnZpY2V9IGZyb20gJ0BhamYvY29yZS90cmFuc2xvY28nO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtBamZXYXJuaW5nQWxlcnRTZXJ2aWNlfSBmcm9tICcuL3dhcm5pbmctYWxlcnQtc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJ3NpbmdsZS1jaG9pY2UtZmllbGQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzaW5nbGUtY2hvaWNlLWZpZWxkLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFqZlNpbmdsZUNob2ljZUZpZWxkQ29tcG9uZW50PFQ+XG4gIGV4dGVuZHMgQWpmRmllbGRXaXRoQ2hvaWNlc0NvbXBvbmVudDxUPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIHJlYWRvbmx5IHNlYXJjaEZpbHRlckN0cmwgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJywge25vbk51bGxhYmxlOiB0cnVlfSk7XG5cbiAgZmlsdGVyZWRDaG9pY2VzJDogT2JzZXJ2YWJsZTxBamZDaG9pY2U8YW55PltdPjtcblxuICBwcml2YXRlIHRyYW5zbGF0ZWRDaG9pY2VzOiB7Y2hvaWNlOiBBamZDaG9pY2U8YW55PjsgbGFiZWw6IHN0cmluZ31bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgc2VydmljZTogQWpmRm9ybVJlbmRlcmVyU2VydmljZSxcbiAgICBASW5qZWN0KEFKRl9XQVJOSU5HX0FMRVJUX1NFUlZJQ0UpIHdhczogQWpmV2FybmluZ0FsZXJ0U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFKRl9TRUFSQ0hfQUxFUlRfVEhSRVNIT0xEKSBzZWFyY2hUaHJlc2hvbGQ6IG51bWJlcixcbiAgICBwcml2YXRlIF90czogVHJhbnNsb2NvU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoY2RyLCBzZXJ2aWNlLCB3YXMsIHNlYXJjaFRocmVzaG9sZCk7XG5cbiAgICB0aGlzLmZpbHRlcmVkQ2hvaWNlcyQgPSB0aGlzLnNlYXJjaEZpbHRlckN0cmwudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgZGVib3VuY2VUaW1lKDE1MCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgbWFwKHNlYXJjaCA9PiB7XG4gICAgICAgIGNvbnN0IGNob2ljZXMgPSB0aGlzLmluc3RhbmNlPy5maWx0ZXJlZENob2ljZXMgfHwgW107XG5cbiAgICAgICAgaWYgKGNob2ljZXMubGVuZ3RoICYmIHRoaXMudHJhbnNsYXRlZENob2ljZXMubGVuZ3RoICE9PSBjaG9pY2VzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMucmVidWlsZENhY2hlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzZWFyY2gpIHtcbiAgICAgICAgICByZXR1cm4gY2hvaWNlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsb3dlclNlYXJjaCA9IHNlYXJjaC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVkQ2hvaWNlcy5maWx0ZXIoYyA9PiBjLmxhYmVsLmluY2x1ZGVzKGxvd2VyU2VhcmNoKSkubWFwKGMgPT4gYy5jaG9pY2UpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5yZWJ1aWxkQ2FjaGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVidWlsZENhY2hlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNob2ljZXMgPSB0aGlzLmluc3RhbmNlPy5maWx0ZXJlZENob2ljZXMgfHwgW107XG5cbiAgICB0aGlzLnRyYW5zbGF0ZWRDaG9pY2VzID0gY2hvaWNlcy5tYXAoYyA9PiAoe1xuICAgICAgY2hvaWNlOiBjLFxuICAgICAgbGFiZWw6IHRoaXMuX3RzLnRyYW5zbGF0ZShjLmxhYmVsKS50b0xvd2VyQ2FzZSgpLFxuICAgIH0pKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpbnN0YW5jZVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShpbnN0YW5jZXxhamZFeHBhbmRGaWVsZFdpdGhDaG9pY2VzOnNlYXJjaFRocmVzaG9sZCkgOyBlbHNlIGV4cGFuZGVkXCI+XG4gICAgPG1hdC1zZWxlY3QgKm5nSWY9XCJjb250cm9sfGFzeW5jIGFzIGN0cmxcIiBbZm9ybUNvbnRyb2xdPVwiY3RybCFcIj5cbiAgICAgIDxtYXQtb3B0aW9uIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiJ3doaXRlJ1wiPlxuICAgICAgICA8bmd4LW1hdC1zZWxlY3Qtc2VhcmNoXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlYXJjaEZpbHRlckN0cmxcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cIidTZWFyY2gnfHRyYW5zbG9jb1wiXG4gICAgICAgICAgW25vRW50cmllc0ZvdW5kTGFiZWxdPVwiJ05vdGhpbmcgZm91bmQnfHRyYW5zbG9jb1wiXG4gICAgICAgICAgW2VuYWJsZUNsZWFyT25Fc2NhcGVQcmVzc2VkXT1cInRydWVcIj5cbiAgICAgICAgPC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgKm5nRm9yPVwibGV0IGNob2ljZSBvZiBmaWx0ZXJlZENob2ljZXMkIHwgYXN5bmNcIj5cbiAgICAgICAge3sgY2hvaWNlLmxhYmVsIHwgdHJhbnNsb2NvIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNleHBhbmRlZD5cbiAgPG1hdC1yYWRpby1ncm91cCAqbmdJZj1cImNvbnRyb2x8YXN5bmMgYXMgY3RybFwiIGNsYXNzPVwiYWpmLWNob2ljZXMtY29udGFpbmVyXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpbnN0YW5jZSEubm9kZS5uYW1lXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJjdHJsIVwiPlxuICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJjaG9pY2UudmFsdWVcIiAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIGluc3RhbmNlIS5maWx0ZXJlZENob2ljZXNcIj5cbiAgICAgIHt7IGNob2ljZS5sYWJlbCB8IHRyYW5zbG9jbyB9fVxuICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgPC9tYXQtcmFkaW8tZ3JvdXA+XG48L25nLXRlbXBsYXRlPlxuIl19
|