@firestitch/filter 18.2.73 → 18.2.74
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/app/components/filter-chips/filter-chips.component.d.ts +3 -2
- package/app/components/filter-item-dialog/filter-item-dialog.component.d.ts +2 -0
- package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +3 -5
- package/app/components/filters-item/base-item/base-item.component.d.ts +5 -14
- package/app/components/filters-item/checkbox/checkbox.component.d.ts +0 -1
- package/app/components/filters-item/chips/chips.component.d.ts +3 -2
- package/app/components/filters-item/date/date.component.d.ts +1 -2
- package/app/components/filters-item/date-range/date-range.component.d.ts +3 -4
- package/app/components/filters-item/filter-item.component.d.ts +3 -1
- package/app/components/filters-item/range/range.component.d.ts +3 -5
- package/app/components/filters-item/select/select.component.d.ts +7 -5
- package/app/components/filters-item/text/text.component.d.ts +3 -7
- package/app/components/filters-item/week/week.component.d.ts +0 -1
- package/app/helpers/create-filter-item.d.ts +1 -1
- package/app/injectors/filter-drawer-data.d.ts +8 -1
- package/esm2022/app/components/filter/filter.component.mjs +2 -2
- package/esm2022/app/components/filter-chips/filter-chips.component.mjs +25 -30
- package/esm2022/app/components/filter-item-dialog/filter-item-dialog.component.mjs +4 -3
- package/esm2022/app/components/filters-item/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +7 -23
- package/esm2022/app/components/filters-item/base-item/base-item.component.mjs +11 -24
- package/esm2022/app/components/filters-item/checkbox/checkbox.component.mjs +4 -10
- package/esm2022/app/components/filters-item/chips/chips.component.mjs +6 -3
- package/esm2022/app/components/filters-item/date/date.component.mjs +9 -13
- package/esm2022/app/components/filters-item/date-range/date-range.component.mjs +12 -15
- package/esm2022/app/components/filters-item/filter-item.component.mjs +7 -3
- package/esm2022/app/components/filters-item/range/range.component.mjs +9 -24
- package/esm2022/app/components/filters-item/select/select.component.mjs +27 -24
- package/esm2022/app/components/filters-item/text/text.component.mjs +9 -27
- package/esm2022/app/components/filters-item/week/week.component.mjs +3 -10
- package/esm2022/app/injectors/filter-drawer-data.mjs +1 -1
- package/fesm2022/firestitch-filter.mjs +111 -181
- package/fesm2022/firestitch-filter.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
2
2
|
import { FormsModule } from '@angular/forms';
|
|
3
3
|
import { MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';
|
|
4
4
|
import { MatInput } from '@angular/material/input';
|
|
5
5
|
import { FsFormModule } from '@firestitch/form';
|
|
6
|
-
import { debounceTime, Subject, takeUntil } from 'rxjs';
|
|
7
6
|
import { FocusToItemDirective } from '../../../directives/focus-to-item.directive';
|
|
8
7
|
import { BaseItemComponent } from '../base-item/base-item.component';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
@@ -14,32 +13,18 @@ export class RangeComponent extends BaseItemComponent {
|
|
|
14
13
|
floatLabel = 'auto';
|
|
15
14
|
min;
|
|
16
15
|
max;
|
|
17
|
-
_change$ = new Subject();
|
|
18
|
-
_cdRef = inject(ChangeDetectorRef);
|
|
19
16
|
ngOnInit() {
|
|
20
17
|
this.min = this.item.value?.min;
|
|
21
18
|
this.max = this.item.value?.max;
|
|
22
|
-
this.item.value$
|
|
23
|
-
.pipe(takeUntil(this.destroy$))
|
|
24
|
-
.subscribe((value) => {
|
|
25
|
-
this.min = value?.min;
|
|
26
|
-
this.max = value?.max;
|
|
27
|
-
this._cdRef.detectChanges();
|
|
28
|
-
});
|
|
29
|
-
this._change$
|
|
30
|
-
.pipe(debounceTime(300), takeUntil(this.destroy$))
|
|
31
|
-
.subscribe(() => {
|
|
32
|
-
this.item.value = {
|
|
33
|
-
min: this.min,
|
|
34
|
-
max: this.max,
|
|
35
|
-
};
|
|
36
|
-
});
|
|
37
19
|
}
|
|
38
|
-
|
|
39
|
-
this.
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.item.value = {
|
|
22
|
+
min: this.min,
|
|
23
|
+
max: this.max,
|
|
24
|
+
};
|
|
40
25
|
}
|
|
41
26
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RangeComponent, isStandalone: true, selector: "filter-item-range", inputs: { autofocusName: "autofocusName", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<div class=\"form-field\">\n <mat-form-field\n class=\"filter-range-min\"\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[0] }}\n </mat-label>\n @if (item.prefix) {\n <span\n matTextPrefix\n class=\"text-prefix\"\n [innerHtml]=\"item.prefix\">\n </span>\n }\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'min'\"\n type=\"number\"\n [(ngModel)]=\"min\"\n
|
|
27
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RangeComponent, isStandalone: true, selector: "filter-item-range", inputs: { autofocusName: "autofocusName", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<div class=\"form-field\">\n <mat-form-field\n class=\"filter-range-min\"\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[0] }}\n </mat-label>\n @if (item.prefix) {\n <span\n matTextPrefix\n class=\"text-prefix\"\n [innerHtml]=\"item.prefix\">\n </span>\n }\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'min' || !min\"\n type=\"number\"\n [(ngModel)]=\"min\"\n #from>\n @if (item.suffix) {\n <span\n matSuffix\n class=\"text-suffix\"\n [innerHtml]=\"item.suffix\">\n </span>\n }\n </mat-form-field>\n <mat-form-field\n class=\"filter-range-max\"\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[1] }}\n </mat-label>\n @if (item.prefix) {\n <span\n matTextPrefix\n class=\"text-prefix\"\n [innerHtml]=\"item.prefix\">\n </span>\n }\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'max' || !!min\"\n type=\"number\"\n [(ngModel)]=\"max\"\n #to>\n @if (item.suffix) {\n <span\n matSuffix\n class=\"text-suffix\"\n [innerHtml]=\"item.suffix\">\n </span>\n }\n </mat-form-field>\n</div>", styles: [".form-field{display:flex}.form-field mat-form-field{min-width:0}.form-field mat-form-field+mat-form-field{margin-left:10px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i2.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
43
28
|
}
|
|
44
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RangeComponent, decorators: [{
|
|
45
30
|
type: Component,
|
|
@@ -52,10 +37,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
52
37
|
FocusToItemDirective,
|
|
53
38
|
FsFormModule,
|
|
54
39
|
MatSuffix,
|
|
55
|
-
], template: "<div class=\"form-field\">\n <mat-form-field\n class=\"filter-range-min\"\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[0] }}\n </mat-label>\n @if (item.prefix) {\n <span\n matTextPrefix\n class=\"text-prefix\"\n [innerHtml]=\"item.prefix\">\n </span>\n }\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'min'\"\n type=\"number\"\n [(ngModel)]=\"min\"\n
|
|
40
|
+
], template: "<div class=\"form-field\">\n <mat-form-field\n class=\"filter-range-min\"\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[0] }}\n </mat-label>\n @if (item.prefix) {\n <span\n matTextPrefix\n class=\"text-prefix\"\n [innerHtml]=\"item.prefix\">\n </span>\n }\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'min' || !min\"\n type=\"number\"\n [(ngModel)]=\"min\"\n #from>\n @if (item.suffix) {\n <span\n matSuffix\n class=\"text-suffix\"\n [innerHtml]=\"item.suffix\">\n </span>\n }\n </mat-form-field>\n <mat-form-field\n class=\"filter-range-max\"\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[1] }}\n </mat-label>\n @if (item.prefix) {\n <span\n matTextPrefix\n class=\"text-prefix\"\n [innerHtml]=\"item.prefix\">\n </span>\n }\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'max' || !!min\"\n type=\"number\"\n [(ngModel)]=\"max\"\n #to>\n @if (item.suffix) {\n <span\n matSuffix\n class=\"text-suffix\"\n [innerHtml]=\"item.suffix\">\n </span>\n }\n </mat-form-field>\n</div>", styles: [".form-field{display:flex}.form-field mat-form-field{min-width:0}.form-field mat-form-field+mat-form-field{margin-left:10px}\n"] }]
|
|
56
41
|
}], propDecorators: { autofocusName: [{
|
|
57
42
|
type: Input
|
|
58
43
|
}], floatLabel: [{
|
|
59
44
|
type: Input
|
|
60
45
|
}] } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9yYW5nZS9yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL3JhbmdlL3JhbmdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFvQnJFLE1BQU0sT0FBTyxjQUFlLFNBQVEsaUJBQTRCO0lBRTlDLGFBQWEsQ0FBUztJQUN0QixVQUFVLEdBQXNCLE1BQU0sQ0FBQztJQUVoRCxHQUFHLENBQVM7SUFDWixHQUFHLENBQVM7SUFFWixRQUFRO1FBQ2IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7UUFDaEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDaEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2QsQ0FBQztJQUNKLENBQUM7d0dBbEJVLGNBQWM7NEZBQWQsY0FBYywwS0NyQzNCLHUxQ0F5RE0sdUxEOUJGLFlBQVksNExBQ1osUUFBUSxzREFDUixTQUFTLHFIQUNULFFBQVEsZ1VBQ1IsV0FBVyxpeEJBQ1gsb0JBQW9CLG9HQUNwQixZQUFZLDBnQkFDWixTQUFTOzs0RkFHQSxjQUFjO2tCQWpCMUIsU0FBUzsrQkFDRSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixTQUFTO3FCQUNWOzhCQUllLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCwgTWF0UHJlZml4LCBNYXRTdWZmaXggfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuXG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcblxuXG5pbXBvcnQgeyBGb2N1c1RvSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtdG8taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmFuZ2VJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2l0ZW1zL3JhbmdlLWl0ZW0nO1xuaW1wb3J0IHsgQmFzZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWl0ZW0vYmFzZS1pdGVtLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmlsdGVyLWl0ZW0tcmFuZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYW5nZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRMYWJlbCxcbiAgICBNYXRQcmVmaXgsXG4gICAgTWF0SW5wdXQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRm9jdXNUb0l0ZW1EaXJlY3RpdmUsXG4gICAgRnNGb3JtTW9kdWxlLFxuICAgIE1hdFN1ZmZpeCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUmFuZ2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlSXRlbUNvbXBvbmVudDxSYW5nZUl0ZW0+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBhdXRvZm9jdXNOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBmbG9hdExhYmVsOiAnYXV0bycgfCAnYWx3YXlzJyA9ICdhdXRvJztcbiAgXG4gIHB1YmxpYyBtaW46IG51bWJlcjtcbiAgcHVibGljIG1heDogbnVtYmVyO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1pbiA9IHRoaXMuaXRlbS52YWx1ZT8ubWluO1xuICAgIHRoaXMubWF4ID0gdGhpcy5pdGVtLnZhbHVlPy5tYXg7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtLnZhbHVlID0ge1xuICAgICAgbWluOiB0aGlzLm1pbixcbiAgICAgIG1heDogdGhpcy5tYXgsXG4gICAgfTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZmllbGRcIj5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICBjbGFzcz1cImZpbHRlci1yYW5nZS1taW5cIlxuICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGQtcGFkbGVzc1wiPlxuICAgIDxtYXQtbGFiZWw+XG4gICAgICB7eyBpdGVtLmxhYmVsWzBdIH19XG4gICAgPC9tYXQtbGFiZWw+XG4gICAgQGlmIChpdGVtLnByZWZpeCkge1xuICAgICAgPHNwYW5cbiAgICAgICAgbWF0VGV4dFByZWZpeFxuICAgICAgICBjbGFzcz1cInRleHQtcHJlZml4XCJcbiAgICAgICAgW2lubmVySHRtbF09XCJpdGVtLnByZWZpeFwiPlxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBbZnNGaWx0ZXJGb2N1c1RyaWdnZXJdPVwiYXV0b2ZvY3VzTmFtZSA9PT0gJ21pbicgfHwgIW1pblwiXG4gICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgIFsobmdNb2RlbCldPVwibWluXCJcbiAgICAgICNmcm9tPlxuICAgIEBpZiAoaXRlbS5zdWZmaXgpIHtcbiAgICAgIDxzcGFuXG4gICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICBjbGFzcz1cInRleHQtc3VmZml4XCJcbiAgICAgICAgW2lubmVySHRtbF09XCJpdGVtLnN1ZmZpeFwiPlxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICBjbGFzcz1cImZpbHRlci1yYW5nZS1tYXhcIlxuICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgICBjbGFzcz1cImZvcm0tZmllbGQtcGFkbGVzc1wiPlxuICAgIDxtYXQtbGFiZWw+XG4gICAgICB7eyBpdGVtLmxhYmVsWzFdIH19XG4gICAgPC9tYXQtbGFiZWw+XG4gICAgQGlmIChpdGVtLnByZWZpeCkge1xuICAgICAgPHNwYW5cbiAgICAgICAgbWF0VGV4dFByZWZpeFxuICAgICAgICBjbGFzcz1cInRleHQtcHJlZml4XCJcbiAgICAgICAgW2lubmVySHRtbF09XCJpdGVtLnByZWZpeFwiPlxuICAgICAgPC9zcGFuPlxuICAgIH1cbiAgICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBbZnNGaWx0ZXJGb2N1c1RyaWdnZXJdPVwiYXV0b2ZvY3VzTmFtZSA9PT0gJ21heCcgfHwgISFtaW5cIlxuICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICBbKG5nTW9kZWwpXT1cIm1heFwiXG4gICAgICAjdG8+XG4gICAgQGlmIChpdGVtLnN1ZmZpeCkge1xuICAgICAgPHNwYW5cbiAgICAgICAgbWF0U3VmZml4XG4gICAgICAgIGNsYXNzPVwidGV4dC1zdWZmaXhcIlxuICAgICAgICBbaW5uZXJIdG1sXT1cIml0ZW0uc3VmZml4XCI+XG4gICAgICA8L3NwYW4+XG4gICAgfVxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+Il19
|
|
@@ -6,21 +6,29 @@ import { MatOptgroup, MatOption } from '@angular/material/core';
|
|
|
6
6
|
import { MatFormField, MatLabel } from '@angular/material/form-field';
|
|
7
7
|
import { MatSelect } from '@angular/material/select';
|
|
8
8
|
import { FsFormModule } from '@firestitch/form';
|
|
9
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
10
9
|
import { FocusToItemDirective } from '../../../directives/focus-to-item.directive';
|
|
11
|
-
import {
|
|
10
|
+
import { BaseItemComponent } from '../base-item';
|
|
12
11
|
import * as i0 from "@angular/core";
|
|
13
12
|
import * as i1 from "@angular/forms";
|
|
14
13
|
import * as i2 from "@firestitch/form";
|
|
15
|
-
export class SelectComponent {
|
|
14
|
+
export class SelectComponent extends BaseItemComponent {
|
|
16
15
|
autofocus = false;
|
|
17
16
|
floatLabel = 'auto';
|
|
18
|
-
item;
|
|
19
17
|
select;
|
|
20
18
|
value;
|
|
21
19
|
_cdRef = inject(ChangeDetectorRef);
|
|
22
20
|
_destroyRef = inject(DestroyRef);
|
|
23
21
|
changed() {
|
|
22
|
+
if (!this.item.multiple) {
|
|
23
|
+
this.change();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
selectOpenedChange(opened) {
|
|
27
|
+
if (!opened && !this.item.isolate) {
|
|
28
|
+
this.close();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
change() {
|
|
24
32
|
let value = this.value;
|
|
25
33
|
if (this.item.isolate) {
|
|
26
34
|
if (this.item.multiple) {
|
|
@@ -32,33 +40,30 @@ export class SelectComponent {
|
|
|
32
40
|
}
|
|
33
41
|
this.item.value = value;
|
|
34
42
|
}
|
|
35
|
-
|
|
36
|
-
this.item.
|
|
37
|
-
.
|
|
38
|
-
|
|
39
|
-
this.value = value;
|
|
40
|
-
if (this.item.isolate && !this.item.hasValue) {
|
|
41
|
-
this.item.isolated = false;
|
|
42
|
-
}
|
|
43
|
-
this._cdRef.detectChanges();
|
|
44
|
-
});
|
|
43
|
+
ngOnDestroy() {
|
|
44
|
+
if (this.item.isolate) {
|
|
45
|
+
this.change();
|
|
46
|
+
}
|
|
45
47
|
}
|
|
46
|
-
|
|
47
|
-
this.
|
|
48
|
+
ngOnInit() {
|
|
49
|
+
this.value = this.item.value;
|
|
50
|
+
if (this.item.isolate && !this.item.hasValue) {
|
|
51
|
+
this.item.isolated = false;
|
|
52
|
+
}
|
|
48
53
|
}
|
|
49
54
|
markForCheck() {
|
|
50
55
|
this._cdRef.markForCheck();
|
|
51
56
|
}
|
|
52
57
|
isolateChange(event) {
|
|
53
58
|
if (event.checked) {
|
|
54
|
-
this.
|
|
59
|
+
this.value = this.item.multiple ? this.item.isolateValues : this.item.isolateValues[0];
|
|
55
60
|
}
|
|
56
61
|
else {
|
|
57
|
-
this.
|
|
62
|
+
this.value = this.item.multiple ? [] : null;
|
|
58
63
|
}
|
|
59
64
|
}
|
|
60
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, deps:
|
|
61
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectComponent, isStandalone: true, selector: "filter-item-select", inputs: { autofocus: "autofocus", floatLabel: "floatLabel"
|
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectComponent, isStandalone: true, selector: "filter-item-select", inputs: { autofocus: "autofocus", floatLabel: "floatLabel" }, viewQueries: [{ propertyName: "select", first: true, predicate: MatSelect, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [ngClass]=\"{ isolate: item.isolate }\"\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label }}\n </mat-label>\n <mat-select\n [fsFilterFocusTrigger]=\"autofocus && !item.isolate\"\n [(ngModel)]=\"value\"\n (openedChange)=\"selectOpenedChange($event)\"\n (ngModelChange)=\"changed()\"\n [multiple]=\"item.multiple\">\n @if (item.children) {\n @for (option of item.values$ | async; track option) {\n @if (option[item.children]) {\n <mat-optgroup [label]=\"option.name\">\n @for (childOption of option[item.children]; track childOption.value) {\n <mat-option [value]=\"childOption.value\">\n {{ childOption.name }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n <mat-option [value]=\"option.value\">\n {{ option.name }}\n </mat-option>\n }\n }\n } @else {\n @for (option of item.values$ | async; track option) {\n <mat-option [value]=\"option.value\">\n {{ option.name }}\n </mat-option>\n }\n }\n </mat-select>\n</mat-form-field>\n@if (item.isolate) {\n <div class=\"isolate-checkbox\">\n <mat-checkbox\n (change)=\"isolateChange($event)\"\n [(ngModel)]=\"item.isolated\">\n <span class=\"checkbox-label\">\n {{ item.isolateLabel }}\n </span>\n </mat-checkbox>\n </div>\n}", styles: [":host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper{padding-left:0;padding-right:0;padding-top:8px}:host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper mat-hint .mat-internal-form-field{position:relative}:host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper mat-hint .mat-internal-form-field .mdc-checkbox{position:absolute}:host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper mat-hint .mat-internal-form-field .mdc-label{margin-left:32px;font-size:smaller;line-height:normal}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i2.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
62
67
|
}
|
|
63
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, decorators: [{
|
|
64
69
|
type: Component,
|
|
@@ -74,15 +79,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
74
79
|
MatOptgroup,
|
|
75
80
|
MatCheckbox,
|
|
76
81
|
AsyncPipe,
|
|
77
|
-
], template: "<mat-form-field\n [ngClass]=\"{ isolate: item.isolate }\"\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label }}\n </mat-label>\n <mat-select\n [fsFilterFocusTrigger]=\"autofocus && !item.isolate\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"changed()\"\n [multiple]=\"item.multiple\">\n @if (item.children) {\n @for (option of item.values$ | async; track option) {\n @if (option[item.children]) {\n <mat-optgroup [label]=\"option.name\">\n @for (childOption of option[item.children]; track childOption.value) {\n <mat-option [value]=\"childOption.value\">\n {{ childOption.name }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n <mat-option [value]=\"option.value\">\n {{ option.name }}\n </mat-option>\n }\n }\n } @else {\n @for (option of item.values$ | async; track option) {\n <mat-option [value]=\"option.value\">\n {{ option.name }}\n </mat-option>\n }\n }\n </mat-select>\n</mat-form-field>\n@if (item.isolate) {\n <div class=\"isolate-checkbox\">\n <mat-checkbox\n (change)=\"isolateChange($event)\"\n [(ngModel)]=\"item.isolated\">\n <span class=\"checkbox-label\">\n {{ item.isolateLabel }}\n </span>\n </mat-checkbox>\n </div>\n}", styles: [":host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper{padding-left:0;padding-right:0;padding-top:8px}:host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper mat-hint .mat-internal-form-field{position:relative}:host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper mat-hint .mat-internal-form-field .mdc-checkbox{position:absolute}:host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper mat-hint .mat-internal-form-field .mdc-label{margin-left:32px;font-size:smaller;line-height:normal}\n"] }]
|
|
82
|
+
], template: "<mat-form-field\n [ngClass]=\"{ isolate: item.isolate }\"\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label }}\n </mat-label>\n <mat-select\n [fsFilterFocusTrigger]=\"autofocus && !item.isolate\"\n [(ngModel)]=\"value\"\n (openedChange)=\"selectOpenedChange($event)\"\n (ngModelChange)=\"changed()\"\n [multiple]=\"item.multiple\">\n @if (item.children) {\n @for (option of item.values$ | async; track option) {\n @if (option[item.children]) {\n <mat-optgroup [label]=\"option.name\">\n @for (childOption of option[item.children]; track childOption.value) {\n <mat-option [value]=\"childOption.value\">\n {{ childOption.name }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n <mat-option [value]=\"option.value\">\n {{ option.name }}\n </mat-option>\n }\n }\n } @else {\n @for (option of item.values$ | async; track option) {\n <mat-option [value]=\"option.value\">\n {{ option.name }}\n </mat-option>\n }\n }\n </mat-select>\n</mat-form-field>\n@if (item.isolate) {\n <div class=\"isolate-checkbox\">\n <mat-checkbox\n (change)=\"isolateChange($event)\"\n [(ngModel)]=\"item.isolated\">\n <span class=\"checkbox-label\">\n {{ item.isolateLabel }}\n </span>\n </mat-checkbox>\n </div>\n}", styles: [":host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper{padding-left:0;padding-right:0;padding-top:8px}:host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper mat-hint .mat-internal-form-field{position:relative}:host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper mat-hint .mat-internal-form-field .mdc-checkbox{position:absolute}:host ::ng-deep .isolate .mat-mdc-form-field-hint-wrapper mat-hint .mat-internal-form-field .mdc-label{margin-left:32px;font-size:smaller;line-height:normal}\n"] }]
|
|
78
83
|
}], propDecorators: { autofocus: [{
|
|
79
84
|
type: Input
|
|
80
85
|
}], floatLabel: [{
|
|
81
86
|
type: Input
|
|
82
|
-
}], item: [{
|
|
83
|
-
type: Input
|
|
84
87
|
}], select: [{
|
|
85
88
|
type: ViewChild,
|
|
86
89
|
args: [MatSelect, { static: true }]
|
|
87
90
|
}] } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXJzLWl0ZW0vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFHTCxTQUFTLEVBQ1QsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsV0FBVyxFQUFxQixNQUFNLDRCQUE0QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQXVCakQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQTZCO0lBRWhELFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsVUFBVSxHQUFzQixNQUFNLENBQUM7SUFHaEQsTUFBTSxDQUFZO0lBRWxCLEtBQUssQ0FB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d0JBQ3BCLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixTQUFTO3dCQUNULFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxTQUFTO3FCQUNWOzhCQUllLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFHQyxNQUFNO3NCQURaLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0Q2hlY2tib3gsIE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0T3B0Z3JvdXAsIE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcblxuaW1wb3J0IHsgRnNGb3JtTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZm9ybSc7XG5cblxuaW1wb3J0IHsgRm9jdXNUb0l0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2ZvY3VzLXRvLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaXRlbXMvc2VsZWN0LWl0ZW0nO1xuaW1wb3J0IHsgQmFzZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWl0ZW0nO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpbHRlci1pdGVtLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTmdDbGFzcyxcbiAgICBNYXRMYWJlbCxcbiAgICBNYXRTZWxlY3QsXG4gICAgRm9jdXNUb0l0ZW1EaXJlY3RpdmUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRnNGb3JtTW9kdWxlLFxuICAgIE1hdE9wdGlvbixcbiAgICBNYXRPcHRncm91cCxcbiAgICBNYXRDaGVja2JveCxcbiAgICBBc3luY1BpcGUsICBcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUl0ZW1Db21wb25lbnQ8U2VsZWN0SXRlbT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgcHVibGljIGF1dG9mb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZmxvYXRMYWJlbDogJ2F1dG8nIHwgJ2Fsd2F5cycgPSAnYXV0byc7XG5cbiAgQFZpZXdDaGlsZChNYXRTZWxlY3QsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBzZWxlY3Q6IE1hdFNlbGVjdDtcblxuICBwdWJsaWMgdmFsdWU6IGFueTtcblxuICBwcml2YXRlIF9jZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcHVibGljIGNoYW5nZWQoKSB7XG4gICAgaWYoIXRoaXMuaXRlbS5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5jaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0T3BlbmVkQ2hhbmdlKG9wZW5lZDogYm9vbGVhbikge1xuICAgIGlmKCFvcGVuZWQgJiYgIXRoaXMuaXRlbS5pc29sYXRlKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNoYW5nZSgpIHtcbiAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGlmKHRoaXMuaXRlbS5pc29sYXRlKSB7XG4gICAgICBpZih0aGlzLml0ZW0ubXVsdGlwbGUpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoKHYpID0+IHtcbiAgICAgICAgICByZXR1cm4gIXRoaXMuaXRlbS5pc29sYXRlVmFsdWVzLmluY2x1ZGVzKHYudmFsdWUgYXMgbmV2ZXIpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5pdGVtLmlzb2xhdGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5pdGVtLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYodGhpcy5pdGVtLmlzb2xhdGUpIHtcbiAgICAgIHRoaXMuY2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLml0ZW0udmFsdWU7XG4gICAgaWYodGhpcy5pdGVtLmlzb2xhdGUgJiYgIXRoaXMuaXRlbS5oYXNWYWx1ZSkge1xuICAgICAgdGhpcy5pdGVtLmlzb2xhdGVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBpc29sYXRlQ2hhbmdlKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSkge1xuICAgIGlmKGV2ZW50LmNoZWNrZWQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLml0ZW0ubXVsdGlwbGUgPyB0aGlzLml0ZW0uaXNvbGF0ZVZhbHVlcyA6IHRoaXMuaXRlbS5pc29sYXRlVmFsdWVzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5pdGVtLm11bHRpcGxlID8gW10gOiBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkXG4gICAgW25nQ2xhc3NdPVwieyBpc29sYXRlOiBpdGVtLmlzb2xhdGUgfVwiXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgY2xhc3M9XCJmb3JtLWZpZWxkLXBhZGxlc3NcIj5cbiAgPG1hdC1sYWJlbD5cbiAgICB7eyBpdGVtLmxhYmVsIH19XG4gIDwvbWF0LWxhYmVsPlxuICA8bWF0LXNlbGVjdFxuICAgICAgW2ZzRmlsdGVyRm9jdXNUcmlnZ2VyXT1cImF1dG9mb2N1cyAmJiAhaXRlbS5pc29sYXRlXCJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgKG9wZW5lZENoYW5nZSk9XCJzZWxlY3RPcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VkKClcIlxuICAgICAgW211bHRpcGxlXT1cIml0ZW0ubXVsdGlwbGVcIj5cbiAgICBAaWYgKGl0ZW0uY2hpbGRyZW4pIHtcbiAgICAgIEBmb3IgKG9wdGlvbiBvZiBpdGVtLnZhbHVlcyQgfCBhc3luYzsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgIEBpZiAob3B0aW9uW2l0ZW0uY2hpbGRyZW5dKSB7XG4gICAgICAgICAgPG1hdC1vcHRncm91cCBbbGFiZWxdPVwib3B0aW9uLm5hbWVcIj5cbiAgICAgICAgICAgIEBmb3IgKGNoaWxkT3B0aW9uIG9mIG9wdGlvbltpdGVtLmNoaWxkcmVuXTsgdHJhY2sgY2hpbGRPcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImNoaWxkT3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAge3sgY2hpbGRPcHRpb24ubmFtZSB9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtb3B0Z3JvdXA+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAZm9yIChvcHRpb24gb2YgaXRlbS52YWx1ZXMkIHwgYXN5bmM7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIH1cbiAgPC9tYXQtc2VsZWN0PlxuPC9tYXQtZm9ybS1maWVsZD5cbkBpZiAoaXRlbS5pc29sYXRlKSB7XG4gIDxkaXYgY2xhc3M9XCJpc29sYXRlLWNoZWNrYm94XCI+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgICAoY2hhbmdlKT1cImlzb2xhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5pc29sYXRlZFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2JveC1sYWJlbFwiPlxuICAgICAgICB7eyBpdGVtLmlzb2xhdGVMYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbWF0LWNoZWNrYm94PlxuICA8L2Rpdj5cbn0iXX0=
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
2
2
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
3
|
import { MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';
|
|
4
4
|
import { MatInput } from '@angular/material/input';
|
|
5
|
-
import {
|
|
6
|
-
import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
5
|
+
import { FsCommonModule } from '@firestitch/common';
|
|
7
6
|
import { FocusToItemDirective } from '../../../directives/focus-to-item.directive';
|
|
8
7
|
import { BaseItemComponent } from '../base-item/base-item.component';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
@@ -12,32 +11,14 @@ export class TextComponent extends BaseItemComponent {
|
|
|
12
11
|
autofocus = false;
|
|
13
12
|
floatLabel = 'auto';
|
|
14
13
|
value;
|
|
15
|
-
_change$ = new Subject();
|
|
16
|
-
_cdRef = inject(ChangeDetectorRef);
|
|
17
14
|
ngOnInit() {
|
|
18
|
-
this.
|
|
19
|
-
this._listenValueChanges();
|
|
15
|
+
this.value = this.item.value;
|
|
20
16
|
}
|
|
21
|
-
|
|
22
|
-
this.
|
|
23
|
-
}
|
|
24
|
-
_listenControlValueChanges() {
|
|
25
|
-
this._change$
|
|
26
|
-
.pipe(distinctUntilChanged(), debounceTime(200), takeUntil(this.destroy$))
|
|
27
|
-
.subscribe((value) => {
|
|
28
|
-
this.item.value = value;
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
_listenValueChanges() {
|
|
32
|
-
this.item.value$
|
|
33
|
-
.pipe(takeUntil(this.destroy$))
|
|
34
|
-
.subscribe((value) => {
|
|
35
|
-
this.value = value;
|
|
36
|
-
this._cdRef.detectChanges();
|
|
37
|
-
});
|
|
17
|
+
ngOnDestroy() {
|
|
18
|
+
this.item.value = this.value;
|
|
38
19
|
}
|
|
39
20
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TextComponent, isStandalone: true, selector: "filter-item-text", inputs: { autofocus: "autofocus", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label }}\n </mat-label>\n @if (item.prefix) {\n <span\n matTextPrefix\n [innerHtml]=\"item.prefix\">\n </span>\n }\n <input\n matInput\n [(ngModel)]=\"value\"\n
|
|
21
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TextComponent, isStandalone: true, selector: "filter-item-text", inputs: { autofocus: "autofocus", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label }}\n </mat-label>\n @if (item.prefix) {\n <span\n matTextPrefix\n [innerHtml]=\"item.prefix\">\n </span>\n }\n <input\n matInput\n [(ngModel)]=\"value\"\n [placeholder]=\"item.placeholder\"\n [fsFilterFocusTrigger]=\"autofocus\">\n @if (item.suffix) {\n <span\n matTextSuffix\n [innerHtml]=\"item.suffix\">\n </span>\n }\n</mat-form-field>", styles: [""], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: FsCommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
22
|
}
|
|
42
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextComponent, decorators: [{
|
|
43
24
|
type: Component,
|
|
@@ -50,10 +31,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
50
31
|
ReactiveFormsModule,
|
|
51
32
|
FocusToItemDirective,
|
|
52
33
|
MatSuffix,
|
|
53
|
-
|
|
34
|
+
FsCommonModule,
|
|
35
|
+
], template: "<mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label }}\n </mat-label>\n @if (item.prefix) {\n <span\n matTextPrefix\n [innerHtml]=\"item.prefix\">\n </span>\n }\n <input\n matInput\n [(ngModel)]=\"value\"\n [placeholder]=\"item.placeholder\"\n [fsFilterFocusTrigger]=\"autofocus\">\n @if (item.suffix) {\n <span\n matTextSuffix\n [innerHtml]=\"item.suffix\">\n </span>\n }\n</mat-form-field>" }]
|
|
54
36
|
}], propDecorators: { autofocus: [{
|
|
55
37
|
type: Input
|
|
56
38
|
}], floatLabel: [{
|
|
57
39
|
type: Input
|
|
58
40
|
}] } });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL3RleHQvdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL3RleHQvdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFxQnJFLE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQTJCO0lBRTVDLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsVUFBVSxHQUFzQixNQUFNLENBQUM7SUFFaEQsS0FBSyxDQUFTO0lBRWQsUUFBUTtRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO3dHQWJVLGFBQWE7NEZBQWIsYUFBYSxpS0N0QzFCLDZmQXVCaUIsMERESWIsWUFBWSw0TEFDWixRQUFRLHNEQUNSLFNBQVMscUhBQ1QsUUFBUSxnVUFDUixXQUFXLDhtQkFDWCxtQkFBbUIsK0JBQ25CLG9CQUFvQixxR0FDcEIsU0FBUyxvSEFDVCxjQUFjOzs0RkFHTCxhQUFhO2tCQWxCekIsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixTQUFTO3dCQUNULGNBQWM7cUJBQ2Y7OEJBSWUsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdExhYmVsLCBNYXRQcmVmaXgsIE1hdFN1ZmZpeCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5cblxuaW1wb3J0IHsgRnNDb21tb25Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9jb21tb24nO1xuXG5pbXBvcnQgeyBGb2N1c1RvSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtdG8taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGV4dEl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaXRlbXMvdGV4dC1pdGVtJztcbmltcG9ydCB7IEJhc2VJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1pdGVtL2Jhc2UtaXRlbS5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpbHRlci1pdGVtLXRleHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0TGFiZWwsXG4gICAgTWF0UHJlZml4LFxuICAgIE1hdElucHV0LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9jdXNUb0l0ZW1EaXJlY3RpdmUsXG4gICAgTWF0U3VmZml4LFxuICAgIEZzQ29tbW9uTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUl0ZW1Db21wb25lbnQ8VGV4dEl0ZW0+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBhdXRvZm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGZsb2F0TGFiZWw6ICdhdXRvJyB8ICdhbHdheXMnID0gJ2F1dG8nO1xuICBcbiAgcHVibGljIHZhbHVlOiBzdHJpbmc7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLml0ZW0udmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtLnZhbHVlID0gdGhpcy52YWx1ZTtcbiAgfVxuXG59XG4iLCI8bWF0LWZvcm0tZmllbGRcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICBjbGFzcz1cImZvcm0tZmllbGQtcGFkbGVzc1wiPlxuICA8bWF0LWxhYmVsPlxuICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgPC9tYXQtbGFiZWw+XG4gIEBpZiAoaXRlbS5wcmVmaXgpIHtcbiAgICA8c3BhblxuICAgICAgbWF0VGV4dFByZWZpeFxuICAgICAgW2lubmVySHRtbF09XCJpdGVtLnByZWZpeFwiPlxuICAgIDwvc3Bhbj5cbiAgfVxuICA8aW5wdXRcbiAgICBtYXRJbnB1dFxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJpdGVtLnBsYWNlaG9sZGVyXCJcbiAgICBbZnNGaWx0ZXJGb2N1c1RyaWdnZXJdPVwiYXV0b2ZvY3VzXCI+XG4gIEBpZiAoaXRlbS5zdWZmaXgpIHtcbiAgICA8c3BhblxuICAgICAgbWF0VGV4dFN1ZmZpeFxuICAgICAgW2lubmVySHRtbF09XCJpdGVtLnN1ZmZpeFwiPlxuICAgIDwvc3Bhbj5cbiAgfVxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
|
|
2
2
|
import { FormsModule } from '@angular/forms';
|
|
3
3
|
import { MatFormField, MatLabel } from '@angular/material/form-field';
|
|
4
4
|
import { MatInput } from '@angular/material/input';
|
|
5
5
|
import { FsDatePickerModule } from '@firestitch/datepicker';
|
|
6
6
|
import { FsFormModule } from '@firestitch/form';
|
|
7
|
-
import { takeUntil } from 'rxjs/operators';
|
|
8
7
|
import { FocusToItemDirective } from '../../../directives/focus-to-item.directive';
|
|
9
8
|
import { BaseItemComponent } from '../base-item/base-item.component';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
@@ -15,14 +14,8 @@ export class WeekComponent extends BaseItemComponent {
|
|
|
15
14
|
autofocus = false;
|
|
16
15
|
floatLabel = 'auto';
|
|
17
16
|
value;
|
|
18
|
-
_cdRef = inject(ChangeDetectorRef);
|
|
19
17
|
ngOnInit() {
|
|
20
|
-
this.item.value
|
|
21
|
-
.pipe(takeUntil(this.destroy$))
|
|
22
|
-
.subscribe((value) => {
|
|
23
|
-
this.value = value;
|
|
24
|
-
this._cdRef.detectChanges();
|
|
25
|
-
});
|
|
18
|
+
this.value = this.item.value;
|
|
26
19
|
}
|
|
27
20
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WeekComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
28
21
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: WeekComponent, isStandalone: true, selector: "filter-item-week", inputs: { autofocus: "autofocus", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label }}\n </mat-label>\n <input\n matInput\n fsDateWeekPicker\n [placeholder]=\"item.label\"\n [fsFilterFocusTrigger]=\"autofocus\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"item.value = value\"\n [seedDate]=\"item.seedDate\"\n [clear]=\"item.clearable\"\n [name]=\"item.name\">\n</mat-form-field>", dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsDatePickerModule }, { kind: "component", type: i2.FsDateWeekPickerComponent, selector: "[fsDateWeekPicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "seedDate", "period", "view"], outputs: ["change"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i3.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
@@ -43,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
43
36
|
}], floatLabel: [{
|
|
44
37
|
type: Input
|
|
45
38
|
}] } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vlay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL3dlZWsvd2Vlay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL3dlZWsvd2Vlay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUVuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFrQnJFLE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQTJCO0lBRTVDLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsVUFBVSxHQUFzQixNQUFNLENBQUM7SUFFaEQsS0FBSyxDQUFPO0lBRVosUUFBUTtRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQzt3R0FUVSxhQUFhOzRGQUFiLGFBQWEsaUtDbkMxQiwyYkFnQmlCLDRDRFViLFlBQVksNExBQ1osUUFBUSxzREFDUixRQUFRLGdVQUNSLFdBQVcsOG1CQUNYLGtCQUFrQixtT0FDbEIsb0JBQW9CLG9HQUNwQixZQUFZOzs0RkFHSCxhQUFhO2tCQWZ6QixTQUFTOytCQUNFLGtCQUFrQixtQkFFWCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFFBQVE7d0JBQ1IsUUFBUTt3QkFDUixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixZQUFZO3FCQUNiOzhCQUllLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuXG5pbXBvcnQgeyBGc0RhdGVQaWNrZXJNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlcGlja2VyJztcbmltcG9ydCB7IEZzRm9ybU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuXG5cbmltcG9ydCB7IEZvY3VzVG9JdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9mb2N1cy10by1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXZWVrSXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pdGVtcy93ZWVrLWl0ZW0nO1xuaW1wb3J0IHsgQmFzZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWl0ZW0vYmFzZS1pdGVtLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmlsdGVyLWl0ZW0td2VlaycsXG4gIHRlbXBsYXRlVXJsOiAnLi93ZWVrLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRGb3JtRmllbGQsXG4gICAgTWF0TGFiZWwsXG4gICAgTWF0SW5wdXQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRnNEYXRlUGlja2VyTW9kdWxlLFxuICAgIEZvY3VzVG9JdGVtRGlyZWN0aXZlLFxuICAgIEZzRm9ybU1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2Vla0NvbXBvbmVudCBleHRlbmRzIEJhc2VJdGVtQ29tcG9uZW50PFdlZWtJdGVtPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcHVibGljIGF1dG9mb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZmxvYXRMYWJlbDogJ2F1dG8nIHwgJ2Fsd2F5cycgPSAnYXV0byc7XG5cbiAgcHVibGljIHZhbHVlOiBEYXRlO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnZhbHVlID0gdGhpcy5pdGVtLnZhbHVlO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGRcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICBjbGFzcz1cImZvcm0tZmllbGQtcGFkbGVzc1wiPlxuICA8bWF0LWxhYmVsPlxuICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgPC9tYXQtbGFiZWw+XG4gIDxpbnB1dFxuICAgIG1hdElucHV0XG4gICAgZnNEYXRlV2Vla1BpY2tlclxuICAgIFtwbGFjZWhvbGRlcl09XCJpdGVtLmxhYmVsXCJcbiAgICBbZnNGaWx0ZXJGb2N1c1RyaWdnZXJdPVwiYXV0b2ZvY3VzXCJcbiAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJpdGVtLnZhbHVlID0gdmFsdWVcIlxuICAgIFtzZWVkRGF0ZV09XCJpdGVtLnNlZWREYXRlXCJcbiAgICBbY2xlYXJdPVwiaXRlbS5jbGVhcmFibGVcIlxuICAgIFtuYW1lXT1cIml0ZW0ubmFtZVwiPlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const FILTER_DRAWER_DATA = new InjectionToken('fs.filter-drawer-data');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWRyYXdlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9pbmplY3RvcnMvZmlsdGVyLWRyYXdlci1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPL0MsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQXVGLHVCQUF1QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5pbXBvcnQgeyBJRmlsdGVyQ29uZmlnSXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMnO1xuXG5leHBvcnQgY29uc3QgRklMVEVSX0RSQVdFUl9EQVRBID0gbmV3IEluamVjdGlvblRva2VuPHsgaXRlbTogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+LCBhdXRvZm9jdXNOYW1lOiBzdHJpbmcsIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfT4oJ2ZzLmZpbHRlci1kcmF3ZXItZGF0YScpO1xuIl19
|