@firestitch/filter 18.2.70 → 18.2.72
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 +14 -3
- package/app/components/filters-item/autocomplete/autocomplete.component.d.ts +2 -1
- package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +2 -1
- package/app/components/filters-item/date/date.component.d.ts +2 -1
- package/app/components/filters-item/date-range/date-range.component.d.ts +2 -1
- package/app/components/filters-item/filter-item.component.d.ts +2 -1
- package/app/components/filters-item/range/range.component.d.ts +2 -1
- package/app/components/filters-item/select/select.component.d.ts +2 -1
- package/app/components/filters-item/text/text.component.d.ts +2 -1
- package/app/components/filters-item/week/week.component.d.ts +2 -1
- package/app/helpers/create-filter-item.d.ts +1 -1
- package/app/interfaces/config.interface.d.ts +1 -0
- package/app/interfaces/items/base.interface.d.ts +1 -0
- package/app/models/filter-config.d.ts +1 -0
- package/app/models/items/base-item.d.ts +7 -0
- package/app/services/filter-controller.service.d.ts +1 -2
- package/esm2022/app/components/filter/filter.component.mjs +2 -2
- package/esm2022/app/components/filter-chips/filter-chips.component.mjs +62 -25
- package/esm2022/app/components/filter-item-dialog/filter-item-dialog.component.mjs +3 -3
- package/esm2022/app/components/filters-item/autocomplete/autocomplete.component.mjs +5 -2
- package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +6 -3
- package/esm2022/app/components/filters-item/date/date.component.mjs +6 -3
- package/esm2022/app/components/filters-item/date-range/date-range.component.mjs +6 -3
- package/esm2022/app/components/filters-item/filter-item.component.mjs +6 -3
- package/esm2022/app/components/filters-item/range/range.component.mjs +6 -3
- package/esm2022/app/components/filters-item/select/select.component.mjs +7 -5
- package/esm2022/app/components/filters-item/text/text.component.mjs +6 -3
- package/esm2022/app/components/filters-item/week/week.component.mjs +6 -3
- package/esm2022/app/interfaces/config.interface.mjs +1 -1
- package/esm2022/app/interfaces/items/base.interface.mjs +1 -1
- package/esm2022/app/models/filter-config.mjs +3 -1
- package/esm2022/app/models/items/base-item.mjs +29 -4
- package/esm2022/app/services/filter-controller.service.mjs +31 -10
- package/fesm2022/firestitch-filter.mjs +167 -57
- package/fesm2022/firestitch-filter.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Injectable, Directive, Input, TemplateRef, DestroyRef, Component, ChangeDetectionStrategy, InjectionToken, KeyValueDiffers, ChangeDetectorRef, Injector, ViewChild, EventEmitter, NgZone,
|
|
2
|
+
import { inject, Injectable, Directive, Input, TemplateRef, DestroyRef, Component, ChangeDetectionStrategy, InjectionToken, KeyValueDiffers, ChangeDetectorRef, Injector, ViewChild, ElementRef, EventEmitter, NgZone, Output, ContentChild, HostBinding, NgModule } from '@angular/core';
|
|
3
3
|
import { FsMessage } from '@firestitch/message';
|
|
4
4
|
import { FsPrompt } from '@firestitch/prompt';
|
|
5
5
|
import { BehaviorSubject, Subject, of, forkJoin, Observable, tap as tap$1, map as map$1, switchMap as switchMap$1, distinctUntilChanged as distinctUntilChanged$1, merge, filter, takeUntil as takeUntil$1, debounceTime as debounceTime$1, fromEvent, combineLatest, interval } from 'rxjs';
|
|
@@ -50,7 +50,7 @@ import { FsChipModule } from '@firestitch/chip';
|
|
|
50
50
|
import { FsSkeletonModule } from '@firestitch/skeleton';
|
|
51
51
|
import * as i1$4 from '@firestitch/label';
|
|
52
52
|
import { FsLabelModule } from '@firestitch/label';
|
|
53
|
-
import { MatFormField, MatLabel, MatPrefix, MatSuffix
|
|
53
|
+
import { MatFormField, MatLabel, MatPrefix, MatSuffix } from '@angular/material/form-field';
|
|
54
54
|
import { MatCheckbox } from '@angular/material/checkbox';
|
|
55
55
|
|
|
56
56
|
class SavedFilterController {
|
|
@@ -792,6 +792,7 @@ class FsFilterConfig {
|
|
|
792
792
|
namespace; // for persistance
|
|
793
793
|
heading;
|
|
794
794
|
subheading;
|
|
795
|
+
maxEnabled;
|
|
795
796
|
constructor(data = {}) {
|
|
796
797
|
this._init(data);
|
|
797
798
|
}
|
|
@@ -802,6 +803,7 @@ class FsFilterConfig {
|
|
|
802
803
|
savedFilters: data.savedFilters,
|
|
803
804
|
autofocus: data.autofocus ?? false,
|
|
804
805
|
chips: data.chips ?? false,
|
|
806
|
+
maxEnabled: data.maxEnabled ?? 0,
|
|
805
807
|
sort: data.sort,
|
|
806
808
|
queryParam: data.queryParam ?? false,
|
|
807
809
|
init: data.init,
|
|
@@ -1002,6 +1004,7 @@ class BaseItem {
|
|
|
1002
1004
|
persistanceDisabled;
|
|
1003
1005
|
queryParamsDisabled;
|
|
1004
1006
|
primary;
|
|
1007
|
+
secondary;
|
|
1005
1008
|
changeCallback;
|
|
1006
1009
|
initCallback;
|
|
1007
1010
|
_type;
|
|
@@ -1009,12 +1012,25 @@ class BaseItem {
|
|
|
1009
1012
|
_hidden$ = new BehaviorSubject(false);
|
|
1010
1013
|
_value$ = new BehaviorSubject({ value: undefined, emitChange: true });
|
|
1011
1014
|
_values$ = new BehaviorSubject(null);
|
|
1015
|
+
_secondaryVisible$ = new BehaviorSubject(false);
|
|
1012
1016
|
_destroy$ = new Subject();
|
|
1013
1017
|
constructor(itemConfig, _filter) {
|
|
1014
1018
|
this._filter = _filter;
|
|
1015
1019
|
this._type = itemConfig.type;
|
|
1016
1020
|
this._initConfig(itemConfig);
|
|
1017
1021
|
}
|
|
1022
|
+
secondaryShow() {
|
|
1023
|
+
this._secondaryVisible$.next(true);
|
|
1024
|
+
}
|
|
1025
|
+
secondaryHide() {
|
|
1026
|
+
this._secondaryVisible$.next(false);
|
|
1027
|
+
}
|
|
1028
|
+
get secondaryVisible$() {
|
|
1029
|
+
return this._secondaryVisible$.asObservable();
|
|
1030
|
+
}
|
|
1031
|
+
get secondaryVisible() {
|
|
1032
|
+
return this._secondaryVisible$.getValue();
|
|
1033
|
+
}
|
|
1018
1034
|
get filter() {
|
|
1019
1035
|
return this._filter;
|
|
1020
1036
|
}
|
|
@@ -1079,6 +1095,10 @@ class BaseItem {
|
|
|
1079
1095
|
get hasValue() {
|
|
1080
1096
|
return this.value !== null && this.value !== undefined;
|
|
1081
1097
|
}
|
|
1098
|
+
get notValue$() {
|
|
1099
|
+
return this.value$
|
|
1100
|
+
.pipe(map(() => !this.hasValue));
|
|
1101
|
+
}
|
|
1082
1102
|
get hasValue$() {
|
|
1083
1103
|
return this.value$
|
|
1084
1104
|
.pipe(map(() => this.hasValue));
|
|
@@ -1122,9 +1142,15 @@ class BaseItem {
|
|
|
1122
1142
|
return this.query;
|
|
1123
1143
|
}
|
|
1124
1144
|
hide() {
|
|
1145
|
+
if (!this.primary) {
|
|
1146
|
+
this.secondaryHide();
|
|
1147
|
+
}
|
|
1125
1148
|
this._hidden$.next(true);
|
|
1126
1149
|
}
|
|
1127
1150
|
show() {
|
|
1151
|
+
if (!this.primary) {
|
|
1152
|
+
this.secondaryShow();
|
|
1153
|
+
}
|
|
1128
1154
|
this._hidden$.next(false);
|
|
1129
1155
|
}
|
|
1130
1156
|
get query() {
|
|
@@ -1190,12 +1216,13 @@ class BaseItem {
|
|
|
1190
1216
|
}
|
|
1191
1217
|
}
|
|
1192
1218
|
_initConfig(item) {
|
|
1193
|
-
const hidden = item.hide ?? !(item.show ?? true);
|
|
1194
1219
|
this.name = item.name;
|
|
1195
1220
|
this.label = item.label;
|
|
1196
|
-
this.primary = item.primary ?? false;
|
|
1221
|
+
this.primary = this.isTypeKeyword || (item.primary ?? false);
|
|
1222
|
+
this.secondary = item.secondary ?? false;
|
|
1197
1223
|
this.chipLabel = item.chipLabel;
|
|
1198
|
-
this._hidden$.next(
|
|
1224
|
+
this._hidden$.next(item.hide ?? !(item.show ?? true));
|
|
1225
|
+
this._secondaryVisible$.next(item.secondary ?? false);
|
|
1199
1226
|
this.clearable = item.clear ?? true;
|
|
1200
1227
|
this.persistanceDisabled = item.disablePersist ?? false;
|
|
1201
1228
|
this.queryParamsDisabled = item.disableQueryParams ?? false;
|
|
@@ -2260,7 +2287,6 @@ class FilterController {
|
|
|
2260
2287
|
_ready$ = new BehaviorSubject(false);
|
|
2261
2288
|
_items = new Map();
|
|
2262
2289
|
_config;
|
|
2263
|
-
_add$ = new Subject();
|
|
2264
2290
|
_init$ = new Subject();
|
|
2265
2291
|
_change$ = new Subject();
|
|
2266
2292
|
_destroy$ = new Subject();
|
|
@@ -2281,9 +2307,6 @@ class FilterController {
|
|
|
2281
2307
|
get init$() {
|
|
2282
2308
|
return this._init$.asObservable();
|
|
2283
2309
|
}
|
|
2284
|
-
get add$() {
|
|
2285
|
-
return this._add$.asObservable();
|
|
2286
|
-
}
|
|
2287
2310
|
get change$() {
|
|
2288
2311
|
return this._change$
|
|
2289
2312
|
.pipe(debounceTime(30));
|
|
@@ -2404,13 +2427,38 @@ class FilterController {
|
|
|
2404
2427
|
.map((item) => {
|
|
2405
2428
|
return item.init(values[item.name]);
|
|
2406
2429
|
}))
|
|
2407
|
-
.pipe(tap(() =>
|
|
2430
|
+
.pipe(tap(() => {
|
|
2431
|
+
this._initEnabledItems();
|
|
2432
|
+
}), tap(() => this.items
|
|
2433
|
+
.forEach((item) => {
|
|
2408
2434
|
item.initCallback(item, this.filter);
|
|
2409
2435
|
})));
|
|
2410
2436
|
}
|
|
2437
|
+
_initEnabledItems() {
|
|
2438
|
+
let enabled = 0;
|
|
2439
|
+
this.items
|
|
2440
|
+
.forEach((item) => {
|
|
2441
|
+
if (!item.primary) {
|
|
2442
|
+
if (item.hasValue) {
|
|
2443
|
+
item.secondaryShow();
|
|
2444
|
+
}
|
|
2445
|
+
}
|
|
2446
|
+
});
|
|
2447
|
+
this.items
|
|
2448
|
+
.forEach((item) => {
|
|
2449
|
+
if (!item.primary) {
|
|
2450
|
+
if (item.secondaryVisible) {
|
|
2451
|
+
enabled++;
|
|
2452
|
+
}
|
|
2453
|
+
else if (enabled < this._config.maxEnabled) {
|
|
2454
|
+
item.secondaryShow();
|
|
2455
|
+
enabled++;
|
|
2456
|
+
}
|
|
2457
|
+
}
|
|
2458
|
+
});
|
|
2459
|
+
}
|
|
2411
2460
|
_addItems(items) {
|
|
2412
|
-
|
|
2413
|
-
this._items = new Map(items
|
|
2461
|
+
const itemMap = items
|
|
2414
2462
|
.filter((item) => {
|
|
2415
2463
|
if (this._items.has(item.name)) {
|
|
2416
2464
|
throw Error('Filter init error. Items name must be unique.');
|
|
@@ -2422,9 +2470,9 @@ class FilterController {
|
|
|
2422
2470
|
if (filterItem instanceof KeywordItem) {
|
|
2423
2471
|
this._keywordController.keywordItem = filterItem;
|
|
2424
2472
|
}
|
|
2425
|
-
this._items.set(item.name, filterItem);
|
|
2426
2473
|
return [item.name, filterItem];
|
|
2427
|
-
})
|
|
2474
|
+
});
|
|
2475
|
+
this._items = new Map(itemMap);
|
|
2428
2476
|
}
|
|
2429
2477
|
_initChanges() {
|
|
2430
2478
|
merge(...this.items
|
|
@@ -2629,6 +2677,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2629
2677
|
|
|
2630
2678
|
class AutocompleteComponent extends BaseItemComponent {
|
|
2631
2679
|
autofocus = false;
|
|
2680
|
+
floatLabel = 'auto';
|
|
2632
2681
|
displayWith = (data) => {
|
|
2633
2682
|
return data ? data.name : data;
|
|
2634
2683
|
};
|
|
@@ -2636,7 +2685,7 @@ class AutocompleteComponent extends BaseItemComponent {
|
|
|
2636
2685
|
return this.item.valuesFn(keyword, this.item.filter);
|
|
2637
2686
|
};
|
|
2638
2687
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2639
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AutocompleteComponent, isStandalone: true, selector: "filter-item-autocomplete", inputs: { autofocus: "autofocus" }, usesInheritance: true, ngImport: i0, template: "<fs-autocomplete\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [(ngModel)]=\"item.value\"\n [placeholder]=\"label\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [showClear]=\"item.clearable\"\n name=\"item.name\">\n <ng-template\n fsAutocompleteTemplate\n let-data=\"data\">\n {{ data.name }}\n </ng-template>\n</fs-autocomplete>", dependencies: [{ kind: "ngmodule", type: FsAutocompleteModule }, { kind: "component", type: i1$2.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "displayWith", "placeholder", "fetchOnFocus", "readonly", "required", "disabled", "formFieldClass", "appearance", "hint", "panelWidth", "panelClass", "showClear"], outputs: ["cleared", "opened", "closed"] }, { kind: "directive", type: i1$2.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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 });
|
|
2688
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AutocompleteComponent, isStandalone: true, selector: "filter-item-autocomplete", inputs: { autofocus: "autofocus", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<fs-autocomplete\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [(ngModel)]=\"item.value\"\n [placeholder]=\"label\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [showClear]=\"item.clearable\"\n name=\"item.name\">\n <ng-template\n fsAutocompleteTemplate\n let-data=\"data\">\n {{ data.name }}\n </ng-template>\n</fs-autocomplete>", dependencies: [{ kind: "ngmodule", type: FsAutocompleteModule }, { kind: "component", type: i1$2.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "displayWith", "placeholder", "fetchOnFocus", "readonly", "required", "disabled", "formFieldClass", "appearance", "hint", "panelWidth", "panelClass", "showClear"], outputs: ["cleared", "opened", "closed"] }, { kind: "directive", type: i1$2.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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 });
|
|
2640
2689
|
}
|
|
2641
2690
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
2642
2691
|
type: Component,
|
|
@@ -2648,10 +2697,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2648
2697
|
], template: "<fs-autocomplete\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [(ngModel)]=\"item.value\"\n [placeholder]=\"label\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [showClear]=\"item.clearable\"\n name=\"item.name\">\n <ng-template\n fsAutocompleteTemplate\n let-data=\"data\">\n {{ data.name }}\n </ng-template>\n</fs-autocomplete>" }]
|
|
2649
2698
|
}], propDecorators: { autofocus: [{
|
|
2650
2699
|
type: Input
|
|
2700
|
+
}], floatLabel: [{
|
|
2701
|
+
type: Input
|
|
2651
2702
|
}] } });
|
|
2652
2703
|
|
|
2653
2704
|
class AutocompletechipsComponent extends BaseItemComponent {
|
|
2654
2705
|
autofocus = false;
|
|
2706
|
+
floatLabel = 'auto';
|
|
2655
2707
|
value;
|
|
2656
2708
|
_injector = inject(Injector);
|
|
2657
2709
|
_cdRef = inject(ChangeDetectorRef);
|
|
@@ -2689,7 +2741,7 @@ class AutocompletechipsComponent extends BaseItemComponent {
|
|
|
2689
2741
|
action.click(filterComponent);
|
|
2690
2742
|
}
|
|
2691
2743
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompletechipsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2692
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AutocompletechipsComponent, isStandalone: true, selector: "filter-item-autocompletechips", inputs: { autofocus: "autofocus" }, usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [ngModel]=\"value\"\n [floatLabel]=\"
|
|
2744
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AutocompletechipsComponent, isStandalone: true, selector: "filter-item-autocompletechips", inputs: { autofocus: "autofocus", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [ngModel]=\"value\"\n [floatLabel]=\"floatLabel\"\n (selected)=\"selected($event)\"\n (removed)=\"removed($event)\"\n (clear)=\"clear()\"\n [allowText]=\"false\"\n [padless]=\"true\"\n [label]=\"label\"\n [size]=\"'small'\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"item.chipColor\"\n [chipIconColor]=\"item.chipIcon\"\n [chipBackground]=\"item.chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.clearable\"\n [removable]=\"item.clearable\"\n [compareWith]=\"compareItems\"\n name=\"model\">\n <ng-template\n fsAutocompleteObject\n let-object=\"object\">\n {{ object.name }}\n </ng-template>\n @for (action of item.panelActions; track action.label) {\n <ng-template\n fsAutocompleteChipsStatic\n (click)=\"actionClick(action)\">\n {{ action.label }}\n </ng-template>\n }\n</fs-autocomplete-chips>", styles: ["fs-autocomplete-chips{min-width:200px;display:block;max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: FsAutocompleteChipsModule }, { kind: "component", type: i1$3.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "appearance", "floatLabel", "readonly", "size", "label", "placeholder", "chipMargin", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "chipPadding", "shape", "hint", "allowText", "allowObject", "delay", "minPanelWidth", "maxPanelHeight", "validateText", "removable", "allowClear", "color", "background", "orderable", "padless", "initOnClick", "fetchOnFocus", "multiple", "multipleAdd", "confirm", "disabled", "groupBy", "panelWidth", "panelClass", "compareWith"], outputs: ["selected", "removed", "reordered", "clear"] }, { kind: "directive", type: i1$3.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }, { kind: "directive", type: i1$3.FsAutocompleteChipsStaticDirective, selector: "[fsAutocompleteChipsStatic]", inputs: ["show", "disable"], outputs: ["click", "selected"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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 });
|
|
2693
2745
|
}
|
|
2694
2746
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutocompletechipsComponent, decorators: [{
|
|
2695
2747
|
type: Component,
|
|
@@ -2698,9 +2750,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2698
2750
|
FocusToItemDirective,
|
|
2699
2751
|
FormsModule,
|
|
2700
2752
|
FsFormModule,
|
|
2701
|
-
], template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [ngModel]=\"value\"\n [floatLabel]=\"
|
|
2753
|
+
], template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"autofocus\"\n [fetch]=\"fetch\"\n [ngModel]=\"value\"\n [floatLabel]=\"floatLabel\"\n (selected)=\"selected($event)\"\n (removed)=\"removed($event)\"\n (clear)=\"clear()\"\n [allowText]=\"false\"\n [padless]=\"true\"\n [label]=\"label\"\n [size]=\"'small'\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"item.chipColor\"\n [chipIconColor]=\"item.chipIcon\"\n [chipBackground]=\"item.chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.clearable\"\n [removable]=\"item.clearable\"\n [compareWith]=\"compareItems\"\n name=\"model\">\n <ng-template\n fsAutocompleteObject\n let-object=\"object\">\n {{ object.name }}\n </ng-template>\n @for (action of item.panelActions; track action.label) {\n <ng-template\n fsAutocompleteChipsStatic\n (click)=\"actionClick(action)\">\n {{ action.label }}\n </ng-template>\n }\n</fs-autocomplete-chips>", styles: ["fs-autocomplete-chips{min-width:200px;display:block;max-width:100%}\n"] }]
|
|
2702
2754
|
}], propDecorators: { autofocus: [{
|
|
2703
2755
|
type: Input
|
|
2756
|
+
}], floatLabel: [{
|
|
2757
|
+
type: Input
|
|
2704
2758
|
}] } });
|
|
2705
2759
|
|
|
2706
2760
|
class CheckboxComponent extends BaseItemComponent {
|
|
@@ -2761,6 +2815,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2761
2815
|
|
|
2762
2816
|
class DateRangeComponent extends BaseItemComponent {
|
|
2763
2817
|
autofocusName;
|
|
2818
|
+
floatLabel = 'auto';
|
|
2764
2819
|
viewType = PickerViewType.Date;
|
|
2765
2820
|
from;
|
|
2766
2821
|
to;
|
|
@@ -2782,7 +2837,7 @@ class DateRangeComponent extends BaseItemComponent {
|
|
|
2782
2837
|
};
|
|
2783
2838
|
}
|
|
2784
2839
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2785
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateRangeComponent, isStandalone: true, selector: "filter-item-date-range", inputs: { autofocusName: "autofocusName" }, usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <mat-form-field\n [floatLabel]=\"
|
|
2840
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DateRangeComponent, isStandalone: true, selector: "filter-item-date-range", inputs: { autofocusName: "autofocusName", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[0] }}\n </mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'from'\"\n [fsDateRangeFrom]=\"item.name\"\n [(ngModel)]=\"from\"\n [clear]=\"item.clearable\"\n [view]=\"viewType\"\n (ngModelChange)=\"change()\"\n name=\"dateFrom\">\n </mat-form-field>\n <div class=\"to\">\n to\n </div>\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[1] }}\n </mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'to'\"\n [fsDateRangeTo]=\"item.name\"\n [(ngModel)]=\"to\"\n (ngModelChange)=\"change()\"\n [clear]=\"item.clearable\"\n [view]=\"viewType\"\n name=\"dateTo\">\n </mat-form-field>\n</div>", styles: [".row{display:flex;flex-direction:row;align-items:center;gap:10px}.row mat-form-field{width:200px}\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: 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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.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: FsDatePickerModule }, { kind: "component", type: i2$1.DateRangePickerFromComponent, selector: "[fsDateRangeFrom],[fsDateRangeFromPicker]", inputs: ["fsDateRangeFrom", "fsDateRangeFromPicker"] }, { kind: "component", type: i2$1.DateRangePickerToComponent, selector: "[fsDateRangeTo],[fsDateRangeToPicker]", inputs: ["fsDateRangeTo", "fsDateRangeToPicker"] }, { 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 });
|
|
2786
2841
|
}
|
|
2787
2842
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateRangeComponent, decorators: [{
|
|
2788
2843
|
type: Component,
|
|
@@ -2794,13 +2849,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2794
2849
|
FocusToItemDirective,
|
|
2795
2850
|
FsDatePickerModule,
|
|
2796
2851
|
FsFormModule,
|
|
2797
|
-
], template: "<div class=\"row\">\n <mat-form-field\n [floatLabel]=\"
|
|
2852
|
+
], template: "<div class=\"row\">\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[0] }}\n </mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'from'\"\n [fsDateRangeFrom]=\"item.name\"\n [(ngModel)]=\"from\"\n [clear]=\"item.clearable\"\n [view]=\"viewType\"\n (ngModelChange)=\"change()\"\n name=\"dateFrom\">\n </mat-form-field>\n <div class=\"to\">\n to\n </div>\n <mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"form-field-padless\">\n <mat-label>\n {{ item.label[1] }}\n </mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"autofocusName === 'to'\"\n [fsDateRangeTo]=\"item.name\"\n [(ngModel)]=\"to\"\n (ngModelChange)=\"change()\"\n [clear]=\"item.clearable\"\n [view]=\"viewType\"\n name=\"dateTo\">\n </mat-form-field>\n</div>", styles: [".row{display:flex;flex-direction:row;align-items:center;gap:10px}.row mat-form-field{width:200px}\n"] }]
|
|
2798
2853
|
}], propDecorators: { autofocusName: [{
|
|
2799
2854
|
type: Input
|
|
2855
|
+
}], floatLabel: [{
|
|
2856
|
+
type: Input
|
|
2800
2857
|
}] } });
|
|
2801
2858
|
|
|
2802
2859
|
class DateComponent extends BaseItemComponent {
|
|
2803
2860
|
autofocus = false;
|
|
2861
|
+
floatLabel = 'auto';
|
|
2804
2862
|
viewType = PickerViewType.Date;
|
|
2805
2863
|
itemDateMode = ItemDateMode;
|
|
2806
2864
|
showYear = true;
|
|
@@ -2823,7 +2881,7 @@ class DateComponent extends BaseItemComponent {
|
|
|
2823
2881
|
});
|
|
2824
2882
|
}
|
|
2825
2883
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2826
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DateComponent, isStandalone: true, selector: "filter-item-date", inputs: { autofocus: "autofocus" }, usesInheritance: true, ngImport: i0, template: "@if (item.mode === itemDateMode.ScrollMonthDayYear || item.mode === itemDateMode.ScrollMonthYear) {\n <mat-form-field\n [floatLabel]=\"
|
|
2884
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DateComponent, isStandalone: true, selector: "filter-item-date", inputs: { autofocus: "autofocus", floatLabel: "floatLabel" }, usesInheritance: true, ngImport: i0, template: "@if (item.mode === itemDateMode.ScrollMonthDayYear || item.mode === itemDateMode.ScrollMonthYear) {\n <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 fsDateScrollPicker\n [placeholder]=\"item.label\"\n [fsFilterFocusTrigger]=\"autofocus\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"item.value = value\"\n [maxYear]=\"item.maxYear\"\n [showMonth]=\"showMonth\"\n [showDay]=\"showDay\"\n [showYear]=\"showYear\"\n [placeholder]=\"item.placeholder\"\n [clear]=\"item.clearable\"\n [name]=\"item.name\">\n </mat-form-field>\n} @else if (item.mode === itemDateMode.Calendar) {\n <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 fsDatePicker\n [fsFilterFocusTrigger]=\"autofocus\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"item.value = value\"\n [maxYear]=\"item.maxYear\"\n [view]=\"viewType\"\n [placeholder]=\"item.label\"\n [clear]=\"item.clearable\"\n [name]=\"item.name\">\n </mat-form-field>\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: 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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsDatePickerModule }, { kind: "component", type: i2$1.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes"], outputs: ["change"] }, { kind: "component", type: i2$1.FsDateScrollPickerComponent, selector: "[fsDateScrollPicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "showMonth", "showYear", "showDay"] }, { 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 });
|
|
2827
2885
|
}
|
|
2828
2886
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DateComponent, decorators: [{
|
|
2829
2887
|
type: Component,
|
|
@@ -2835,13 +2893,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2835
2893
|
FsDatePickerModule,
|
|
2836
2894
|
FocusToItemDirective,
|
|
2837
2895
|
FsFormModule,
|
|
2838
|
-
], template: "@if (item.mode === itemDateMode.ScrollMonthDayYear || item.mode === itemDateMode.ScrollMonthYear) {\n <mat-form-field\n [floatLabel]=\"
|
|
2896
|
+
], template: "@if (item.mode === itemDateMode.ScrollMonthDayYear || item.mode === itemDateMode.ScrollMonthYear) {\n <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 fsDateScrollPicker\n [placeholder]=\"item.label\"\n [fsFilterFocusTrigger]=\"autofocus\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"item.value = value\"\n [maxYear]=\"item.maxYear\"\n [showMonth]=\"showMonth\"\n [showDay]=\"showDay\"\n [showYear]=\"showYear\"\n [placeholder]=\"item.placeholder\"\n [clear]=\"item.clearable\"\n [name]=\"item.name\">\n </mat-form-field>\n} @else if (item.mode === itemDateMode.Calendar) {\n <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 fsDatePicker\n [fsFilterFocusTrigger]=\"autofocus\"\n [(ngModel)]=\"value\"\n (ngModelChange)=\"item.value = value\"\n [maxYear]=\"item.maxYear\"\n [view]=\"viewType\"\n [placeholder]=\"item.label\"\n [clear]=\"item.clearable\"\n [name]=\"item.name\">\n </mat-form-field>\n}" }]
|
|
2839
2897
|
}], propDecorators: { autofocus: [{
|
|
2840
2898
|
type: Input
|
|
2899
|
+
}], floatLabel: [{
|
|
2900
|
+
type: Input
|
|
2841
2901
|
}] } });
|
|
2842
2902
|
|
|
2843
2903
|
class RangeComponent extends BaseItemComponent {
|
|
2844
2904
|
autofocusName;
|
|
2905
|
+
floatLabel = 'auto';
|
|
2845
2906
|
min;
|
|
2846
2907
|
max;
|
|
2847
2908
|
_change$ = new Subject();
|
|
@@ -2869,7 +2930,7 @@ class RangeComponent extends BaseItemComponent {
|
|
|
2869
2930
|
this._change$.next();
|
|
2870
2931
|
}
|
|
2871
2932
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RangeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2872
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: RangeComponent, isStandalone: true, selector: "filter-item-range", inputs: { autofocusName: "autofocusName" }, usesInheritance: true, ngImport: i0, template: "<div class=\"form-field\">\n <mat-form-field\n class=\"filter-range-min\"\n [floatLabel]=\"
|
|
2933
|
+
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 (ngModelChange)=\"change()\"\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'\"\n type=\"number\"\n [(ngModel)]=\"max\"\n (ngModelChange)=\"change()\"\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$1.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$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.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: 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])" }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2873
2934
|
}
|
|
2874
2935
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RangeComponent, decorators: [{
|
|
2875
2936
|
type: Component,
|
|
@@ -2882,13 +2943,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2882
2943
|
FocusToItemDirective,
|
|
2883
2944
|
FsFormModule,
|
|
2884
2945
|
MatSuffix,
|
|
2885
|
-
], template: "<div class=\"form-field\">\n <mat-form-field\n class=\"filter-range-min\"\n [floatLabel]=\"
|
|
2946
|
+
], 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 (ngModelChange)=\"change()\"\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'\"\n type=\"number\"\n [(ngModel)]=\"max\"\n (ngModelChange)=\"change()\"\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"] }]
|
|
2886
2947
|
}], propDecorators: { autofocusName: [{
|
|
2887
2948
|
type: Input
|
|
2949
|
+
}], floatLabel: [{
|
|
2950
|
+
type: Input
|
|
2888
2951
|
}] } });
|
|
2889
2952
|
|
|
2890
2953
|
class SelectComponent {
|
|
2891
2954
|
autofocus = false;
|
|
2955
|
+
floatLabel = 'auto';
|
|
2892
2956
|
item;
|
|
2893
2957
|
select;
|
|
2894
2958
|
value;
|
|
@@ -2932,7 +2996,7 @@ class SelectComponent {
|
|
|
2932
2996
|
}
|
|
2933
2997
|
}
|
|
2934
2998
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2935
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectComponent, isStandalone: true, selector: "filter-item-select", inputs: { autofocus: "autofocus", item: "item" }, viewQueries: [{ propertyName: "select", first: true, predicate: MatSelect, descendants: true, static: true }], ngImport: i0, template: "<mat-form-field\n [ngClass]=\"{ isolate: item.isolate }\"\n [floatLabel]=\"
|
|
2999
|
+
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", item: "item" }, viewQueries: [{ propertyName: "select", first: true, predicate: MatSelect, descendants: true, static: 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 (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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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])" }, { 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 });
|
|
2936
3000
|
}
|
|
2937
3001
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, decorators: [{
|
|
2938
3002
|
type: Component,
|
|
@@ -2946,12 +3010,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2946
3010
|
FsFormModule,
|
|
2947
3011
|
MatOption,
|
|
2948
3012
|
MatOptgroup,
|
|
2949
|
-
MatHint,
|
|
2950
3013
|
MatCheckbox,
|
|
2951
3014
|
AsyncPipe,
|
|
2952
|
-
], template: "<mat-form-field\n [ngClass]=\"{ isolate: item.isolate }\"\n [floatLabel]=\"
|
|
3015
|
+
], 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"] }]
|
|
2953
3016
|
}], propDecorators: { autofocus: [{
|
|
2954
3017
|
type: Input
|
|
3018
|
+
}], floatLabel: [{
|
|
3019
|
+
type: Input
|
|
2955
3020
|
}], item: [{
|
|
2956
3021
|
type: Input
|
|
2957
3022
|
}], select: [{
|
|
@@ -2961,6 +3026,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
2961
3026
|
|
|
2962
3027
|
class TextComponent extends BaseItemComponent {
|
|
2963
3028
|
autofocus = false;
|
|
3029
|
+
floatLabel = 'auto';
|
|
2964
3030
|
value;
|
|
2965
3031
|
_change$ = new Subject();
|
|
2966
3032
|
_cdRef = inject(ChangeDetectorRef);
|
|
@@ -2987,7 +3053,7 @@ class TextComponent extends BaseItemComponent {
|
|
|
2987
3053
|
});
|
|
2988
3054
|
}
|
|
2989
3055
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
2990
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TextComponent, isStandalone: true, selector: "filter-item-text", inputs: { autofocus: "autofocus" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [floatLabel]=\"
|
|
3056
|
+
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 (ngModelChange)=\"change()\"\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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2991
3057
|
}
|
|
2992
3058
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextComponent, decorators: [{
|
|
2993
3059
|
type: Component,
|
|
@@ -3000,13 +3066,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3000
3066
|
ReactiveFormsModule,
|
|
3001
3067
|
FocusToItemDirective,
|
|
3002
3068
|
MatSuffix,
|
|
3003
|
-
], template: "<mat-form-field\n [floatLabel]=\"
|
|
3069
|
+
], 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 (ngModelChange)=\"change()\"\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>" }]
|
|
3004
3070
|
}], propDecorators: { autofocus: [{
|
|
3005
3071
|
type: Input
|
|
3072
|
+
}], floatLabel: [{
|
|
3073
|
+
type: Input
|
|
3006
3074
|
}] } });
|
|
3007
3075
|
|
|
3008
3076
|
class WeekComponent extends BaseItemComponent {
|
|
3009
3077
|
autofocus = false;
|
|
3078
|
+
floatLabel = 'auto';
|
|
3010
3079
|
value;
|
|
3011
3080
|
_cdRef = inject(ChangeDetectorRef);
|
|
3012
3081
|
ngOnInit() {
|
|
@@ -3018,7 +3087,7 @@ class WeekComponent extends BaseItemComponent {
|
|
|
3018
3087
|
});
|
|
3019
3088
|
}
|
|
3020
3089
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WeekComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3021
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: WeekComponent, isStandalone: true, selector: "filter-item-week", inputs: { autofocus: "autofocus" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [floatLabel]=\"
|
|
3090
|
+
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$1.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$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsDatePickerModule }, { kind: "component", type: i2$1.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 });
|
|
3022
3091
|
}
|
|
3023
3092
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WeekComponent, decorators: [{
|
|
3024
3093
|
type: Component,
|
|
@@ -3030,13 +3099,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3030
3099
|
FsDatePickerModule,
|
|
3031
3100
|
FocusToItemDirective,
|
|
3032
3101
|
FsFormModule,
|
|
3033
|
-
], template: "<mat-form-field\n [floatLabel]=\"
|
|
3102
|
+
], 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>" }]
|
|
3034
3103
|
}], propDecorators: { autofocus: [{
|
|
3035
3104
|
type: Input
|
|
3105
|
+
}], floatLabel: [{
|
|
3106
|
+
type: Input
|
|
3036
3107
|
}] } });
|
|
3037
3108
|
|
|
3038
3109
|
class FilterItemComponent {
|
|
3039
3110
|
autofocus = false;
|
|
3111
|
+
floatLabel = 'auto';
|
|
3040
3112
|
autofocusName;
|
|
3041
3113
|
item;
|
|
3042
3114
|
name;
|
|
@@ -3091,7 +3163,7 @@ class FilterItemComponent {
|
|
|
3091
3163
|
this._destroy$.complete();
|
|
3092
3164
|
}
|
|
3093
3165
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3094
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FilterItemComponent, isStandalone: true, selector: "filter-item", inputs: { autofocus: "autofocus", autofocusName: "autofocusName", item: "item", name: "name" }, ngImport: i0, template: "@if (item.visible$ | async) {\n <div class=\"filter filter-{{ item.type }}\">\n @switch (item.type) {\n @case (itemType.Text) {\n <filter-item-text\n class=\"interface\"\n [item]=\"textItem\"\n [autofocus]=\"autofocus\">\n </filter-item-text>\n }\n @case (itemType.Select) {\n <filter-item-select\n class=\"interface\"\n [item]=\"selectItem\"\n [autofocus]=\"autofocus\">\n </filter-item-select>\n }\n @case (itemType.Chips) {\n <filter-item-chips\n class=\"interface\"\n [item]=\"chipsItem\">\n </filter-item-chips>\n }\n @case (itemType.Range) {\n <filter-item-range\n class=\"interface interface-range\"\n [item]=\"rangeItem\"\n [autofocusName]=\"autofocusName\">\n </filter-item-range>\n }\n @case (itemType.AutoComplete) {\n <filter-item-autocomplete\n class=\"interface\"\n [item]=\"autocompleteItem\"\n [autofocus]=\"autofocus\">\n </filter-item-autocomplete>\n }\n @case (itemType.AutoCompleteChips) {\n <filter-item-autocompletechips\n class=\"interface\"\n [item]=\"autocompleteChipsItem\"\n [autofocus]=\"autofocus\">\n </filter-item-autocompletechips>\n }\n @case (itemType.Date) {\n <filter-item-date\n class=\"interface interface-date\"\n [item]=\"dateItem\"\n [autofocus]=\"autofocus\">\n </filter-item-date>\n }\n @case (itemType.DateTime) {\n <filter-item-date\n class=\"interface interface-date\"\n [item]=\"dateTimeItem\"\n [autofocus]=\"autofocus\">\n </filter-item-date>\n }\n @case (itemType.DateRange) {\n <filter-item-date-range\n class=\"interface interface-date\"\n [item]=\"dateRangeItem\"\n [autofocusName]=\"autofocusName\">\n [name]=\"name\">\n </filter-item-date-range>\n }\n @case (itemType.DateTimeRange) {\n <filter-item-date-range\n class=\"interface interface-date\"\n [item]=\"dateTimeRangeItem\"\n [autofocusName]=\"autofocusName\">\n </filter-item-date-range>\n }\n @case (itemType.Week) {\n <filter-item-week\n class=\"interface\"\n [item]=\"weekItem\"\n [autofocus]=\"autofocus\">\n </filter-item-week>\n }\n @case (itemType.Checkbox) {\n <filter-item-checkbox\n class=\"interface interface-checkbox\"\n [item]=\"checkboxItem\"\n [autofocus]=\"autofocus\">\n </filter-item-checkbox>\n }\n }\n </div>\n}", styles: [":host ::ng-deep mat-form-field{margin-top:0!important}:host ::ng-deep mat-form-field .mat-form-field-prefix .text-prefix,:host ::ng-deep mat-form-field .mat-form-field-prefix .text-suffix,:host ::ng-deep mat-form-field .mat-form-field-suffix .text-prefix,:host ::ng-deep mat-form-field .mat-form-field-suffix .text-suffix{top:-.25em;position:relative}:host ::ng-deep mat-form-field:not(.mat-form-field-should-float) .mat-form-field-prefix .text-prefix,:host ::ng-deep mat-form-field:not(.mat-form-field-should-float) .mat-form-field-suffix .text-suffix{display:none}\n"], dependencies: [{ kind: "component", type: TextComponent, selector: "filter-item-text", inputs: ["autofocus"] }, { kind: "component", type: SelectComponent, selector: "filter-item-select", inputs: ["autofocus", "item"] }, { kind: "component", type: ChipsComponent, selector: "filter-item-chips" }, { kind: "component", type: RangeComponent, selector: "filter-item-range", inputs: ["autofocusName"] }, { kind: "component", type: AutocompleteComponent, selector: "filter-item-autocomplete", inputs: ["autofocus"] }, { kind: "component", type: AutocompletechipsComponent, selector: "filter-item-autocompletechips", inputs: ["autofocus"] }, { kind: "component", type: DateComponent, selector: "filter-item-date", inputs: ["autofocus"] }, { kind: "component", type: DateRangeComponent, selector: "filter-item-date-range", inputs: ["autofocusName"] }, { kind: "component", type: WeekComponent, selector: "filter-item-week", inputs: ["autofocus"] }, { kind: "component", type: CheckboxComponent, selector: "filter-item-checkbox" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3166
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FilterItemComponent, isStandalone: true, selector: "filter-item", inputs: { autofocus: "autofocus", floatLabel: "floatLabel", autofocusName: "autofocusName", item: "item", name: "name" }, ngImport: i0, template: "@if (item.visible$ | async) {\n <div class=\"filter filter-{{ item.type }}\">\n @switch (item.type) {\n @case (itemType.Text) {\n <filter-item-text\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"textItem\"\n [autofocus]=\"autofocus\">\n </filter-item-text>\n }\n @case (itemType.Select) {\n <filter-item-select\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"selectItem\"\n [autofocus]=\"autofocus\">\n </filter-item-select>\n }\n @case (itemType.Chips) {\n <filter-item-chips\n class=\"interface\"\n [item]=\"chipsItem\">\n </filter-item-chips>\n }\n @case (itemType.Range) {\n <filter-item-range\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-range\"\n [item]=\"rangeItem\"\n [autofocusName]=\"autofocusName\">\n </filter-item-range>\n }\n @case (itemType.AutoComplete) {\n <filter-item-autocomplete\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"autocompleteItem\"\n [autofocus]=\"autofocus\">\n </filter-item-autocomplete>\n }\n @case (itemType.AutoCompleteChips) {\n <filter-item-autocompletechips\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"autocompleteChipsItem\"\n [autofocus]=\"autofocus\">\n </filter-item-autocompletechips>\n }\n @case (itemType.Date) {\n <filter-item-date\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-date\"\n [item]=\"dateItem\"\n [autofocus]=\"autofocus\">\n </filter-item-date>\n }\n @case (itemType.DateTime) {\n <filter-item-date\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-date\"\n [item]=\"dateTimeItem\"\n [autofocus]=\"autofocus\">\n </filter-item-date>\n }\n @case (itemType.DateRange) {\n <filter-item-date-range\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-date\"\n [item]=\"dateRangeItem\"\n [autofocusName]=\"autofocusName\">\n [name]=\"name\">\n </filter-item-date-range>\n }\n @case (itemType.DateTimeRange) {\n <filter-item-date-range\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-date\"\n [item]=\"dateTimeRangeItem\"\n [autofocusName]=\"autofocusName\">\n </filter-item-date-range>\n }\n @case (itemType.Week) {\n <filter-item-week\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"weekItem\"\n [autofocus]=\"autofocus\">\n </filter-item-week>\n }\n @case (itemType.Checkbox) {\n <filter-item-checkbox\n class=\"interface interface-checkbox\"\n [item]=\"checkboxItem\"\n [autofocus]=\"autofocus\">\n </filter-item-checkbox>\n }\n }\n </div>\n}", styles: [":host ::ng-deep mat-form-field{margin-top:0!important}:host ::ng-deep mat-form-field .mat-form-field-prefix .text-prefix,:host ::ng-deep mat-form-field .mat-form-field-prefix .text-suffix,:host ::ng-deep mat-form-field .mat-form-field-suffix .text-prefix,:host ::ng-deep mat-form-field .mat-form-field-suffix .text-suffix{top:-.25em;position:relative}:host ::ng-deep mat-form-field:not(.mat-form-field-should-float) .mat-form-field-prefix .text-prefix,:host ::ng-deep mat-form-field:not(.mat-form-field-should-float) .mat-form-field-suffix .text-suffix{display:none}\n"], dependencies: [{ kind: "component", type: TextComponent, selector: "filter-item-text", inputs: ["autofocus", "floatLabel"] }, { kind: "component", type: SelectComponent, selector: "filter-item-select", inputs: ["autofocus", "floatLabel", "item"] }, { kind: "component", type: ChipsComponent, selector: "filter-item-chips" }, { kind: "component", type: RangeComponent, selector: "filter-item-range", inputs: ["autofocusName", "floatLabel"] }, { kind: "component", type: AutocompleteComponent, selector: "filter-item-autocomplete", inputs: ["autofocus", "floatLabel"] }, { kind: "component", type: AutocompletechipsComponent, selector: "filter-item-autocompletechips", inputs: ["autofocus", "floatLabel"] }, { kind: "component", type: DateComponent, selector: "filter-item-date", inputs: ["autofocus", "floatLabel"] }, { kind: "component", type: DateRangeComponent, selector: "filter-item-date-range", inputs: ["autofocusName", "floatLabel"] }, { kind: "component", type: WeekComponent, selector: "filter-item-week", inputs: ["autofocus", "floatLabel"] }, { kind: "component", type: CheckboxComponent, selector: "filter-item-checkbox" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3095
3167
|
}
|
|
3096
3168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterItemComponent, decorators: [{
|
|
3097
3169
|
type: Component,
|
|
@@ -3107,9 +3179,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3107
3179
|
WeekComponent,
|
|
3108
3180
|
CheckboxComponent,
|
|
3109
3181
|
AsyncPipe,
|
|
3110
|
-
], template: "@if (item.visible$ | async) {\n <div class=\"filter filter-{{ item.type }}\">\n @switch (item.type) {\n @case (itemType.Text) {\n <filter-item-text\n class=\"interface\"\n [item]=\"textItem\"\n [autofocus]=\"autofocus\">\n </filter-item-text>\n }\n @case (itemType.Select) {\n <filter-item-select\n class=\"interface\"\n [item]=\"selectItem\"\n [autofocus]=\"autofocus\">\n </filter-item-select>\n }\n @case (itemType.Chips) {\n <filter-item-chips\n class=\"interface\"\n [item]=\"chipsItem\">\n </filter-item-chips>\n }\n @case (itemType.Range) {\n <filter-item-range\n class=\"interface interface-range\"\n [item]=\"rangeItem\"\n [autofocusName]=\"autofocusName\">\n </filter-item-range>\n }\n @case (itemType.AutoComplete) {\n <filter-item-autocomplete\n class=\"interface\"\n [item]=\"autocompleteItem\"\n [autofocus]=\"autofocus\">\n </filter-item-autocomplete>\n }\n @case (itemType.AutoCompleteChips) {\n <filter-item-autocompletechips\n class=\"interface\"\n [item]=\"autocompleteChipsItem\"\n [autofocus]=\"autofocus\">\n </filter-item-autocompletechips>\n }\n @case (itemType.Date) {\n <filter-item-date\n class=\"interface interface-date\"\n [item]=\"dateItem\"\n [autofocus]=\"autofocus\">\n </filter-item-date>\n }\n @case (itemType.DateTime) {\n <filter-item-date\n class=\"interface interface-date\"\n [item]=\"dateTimeItem\"\n [autofocus]=\"autofocus\">\n </filter-item-date>\n }\n @case (itemType.DateRange) {\n <filter-item-date-range\n class=\"interface interface-date\"\n [item]=\"dateRangeItem\"\n [autofocusName]=\"autofocusName\">\n [name]=\"name\">\n </filter-item-date-range>\n }\n @case (itemType.DateTimeRange) {\n <filter-item-date-range\n class=\"interface interface-date\"\n [item]=\"dateTimeRangeItem\"\n [autofocusName]=\"autofocusName\">\n </filter-item-date-range>\n }\n @case (itemType.Week) {\n <filter-item-week\n class=\"interface\"\n [item]=\"weekItem\"\n [autofocus]=\"autofocus\">\n </filter-item-week>\n }\n @case (itemType.Checkbox) {\n <filter-item-checkbox\n class=\"interface interface-checkbox\"\n [item]=\"checkboxItem\"\n [autofocus]=\"autofocus\">\n </filter-item-checkbox>\n }\n }\n </div>\n}", styles: [":host ::ng-deep mat-form-field{margin-top:0!important}:host ::ng-deep mat-form-field .mat-form-field-prefix .text-prefix,:host ::ng-deep mat-form-field .mat-form-field-prefix .text-suffix,:host ::ng-deep mat-form-field .mat-form-field-suffix .text-prefix,:host ::ng-deep mat-form-field .mat-form-field-suffix .text-suffix{top:-.25em;position:relative}:host ::ng-deep mat-form-field:not(.mat-form-field-should-float) .mat-form-field-prefix .text-prefix,:host ::ng-deep mat-form-field:not(.mat-form-field-should-float) .mat-form-field-suffix .text-suffix{display:none}\n"] }]
|
|
3182
|
+
], template: "@if (item.visible$ | async) {\n <div class=\"filter filter-{{ item.type }}\">\n @switch (item.type) {\n @case (itemType.Text) {\n <filter-item-text\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"textItem\"\n [autofocus]=\"autofocus\">\n </filter-item-text>\n }\n @case (itemType.Select) {\n <filter-item-select\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"selectItem\"\n [autofocus]=\"autofocus\">\n </filter-item-select>\n }\n @case (itemType.Chips) {\n <filter-item-chips\n class=\"interface\"\n [item]=\"chipsItem\">\n </filter-item-chips>\n }\n @case (itemType.Range) {\n <filter-item-range\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-range\"\n [item]=\"rangeItem\"\n [autofocusName]=\"autofocusName\">\n </filter-item-range>\n }\n @case (itemType.AutoComplete) {\n <filter-item-autocomplete\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"autocompleteItem\"\n [autofocus]=\"autofocus\">\n </filter-item-autocomplete>\n }\n @case (itemType.AutoCompleteChips) {\n <filter-item-autocompletechips\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"autocompleteChipsItem\"\n [autofocus]=\"autofocus\">\n </filter-item-autocompletechips>\n }\n @case (itemType.Date) {\n <filter-item-date\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-date\"\n [item]=\"dateItem\"\n [autofocus]=\"autofocus\">\n </filter-item-date>\n }\n @case (itemType.DateTime) {\n <filter-item-date\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-date\"\n [item]=\"dateTimeItem\"\n [autofocus]=\"autofocus\">\n </filter-item-date>\n }\n @case (itemType.DateRange) {\n <filter-item-date-range\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-date\"\n [item]=\"dateRangeItem\"\n [autofocusName]=\"autofocusName\">\n [name]=\"name\">\n </filter-item-date-range>\n }\n @case (itemType.DateTimeRange) {\n <filter-item-date-range\n [floatLabel]=\"floatLabel\"\n class=\"interface interface-date\"\n [item]=\"dateTimeRangeItem\"\n [autofocusName]=\"autofocusName\">\n </filter-item-date-range>\n }\n @case (itemType.Week) {\n <filter-item-week\n [floatLabel]=\"floatLabel\"\n class=\"interface\"\n [item]=\"weekItem\"\n [autofocus]=\"autofocus\">\n </filter-item-week>\n }\n @case (itemType.Checkbox) {\n <filter-item-checkbox\n class=\"interface interface-checkbox\"\n [item]=\"checkboxItem\"\n [autofocus]=\"autofocus\">\n </filter-item-checkbox>\n }\n }\n </div>\n}", styles: [":host ::ng-deep mat-form-field{margin-top:0!important}:host ::ng-deep mat-form-field .mat-form-field-prefix .text-prefix,:host ::ng-deep mat-form-field .mat-form-field-prefix .text-suffix,:host ::ng-deep mat-form-field .mat-form-field-suffix .text-prefix,:host ::ng-deep mat-form-field .mat-form-field-suffix .text-suffix{top:-.25em;position:relative}:host ::ng-deep mat-form-field:not(.mat-form-field-should-float) .mat-form-field-prefix .text-prefix,:host ::ng-deep mat-form-field:not(.mat-form-field-should-float) .mat-form-field-suffix .text-suffix{display:none}\n"] }]
|
|
3111
3183
|
}], propDecorators: { autofocus: [{
|
|
3112
3184
|
type: Input
|
|
3185
|
+
}], floatLabel: [{
|
|
3186
|
+
type: Input
|
|
3113
3187
|
}], autofocusName: [{
|
|
3114
3188
|
type: Input
|
|
3115
3189
|
}], item: [{
|
|
@@ -3122,7 +3196,7 @@ class FilterItemDialogComponent {
|
|
|
3122
3196
|
item = inject(FILTER_DRAWER_DATA)?.item;
|
|
3123
3197
|
autofocusName = inject(FILTER_DRAWER_DATA)?.autofocusName;
|
|
3124
3198
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterItemDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3125
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FilterItemDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div class=\"filter-item-dialog\">\n <filter-item\n class=\"filter-group\"\n [autofocus]=\"true\"\n [autofocusName]=\"autofocusName\"\n [item]=\"item\">\n </filter-item>\n</div>", styles: [".filter-item-dialog{background-color:#fff;padding:12px;box-shadow:var(--mat-autocomplete-container-elevation-shadow);border-radius:5px}.filter-item-dialog ::ng-deep mat-form-field{margin-top:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: FsFormModule }, { kind: "ngmodule", type: FsSkeletonModule }, { kind: "component", type: FilterItemComponent, selector: "filter-item", inputs: ["autofocus", "autofocusName", "item", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3199
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FilterItemDialogComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<div class=\"filter-item-dialog\">\n <filter-item\n class=\"filter-group\"\n [floatLabel]=\"'always'\"\n [autofocus]=\"true\"\n [autofocusName]=\"autofocusName\"\n [item]=\"item\">\n </filter-item>\n</div>", styles: [".filter-item-dialog{background-color:#fff;padding:12px;box-shadow:var(--mat-autocomplete-container-elevation-shadow);border-radius:5px}.filter-item-dialog ::ng-deep mat-form-field{margin-top:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: FsFormModule }, { kind: "ngmodule", type: FsSkeletonModule }, { kind: "component", type: FilterItemComponent, selector: "filter-item", inputs: ["autofocus", "floatLabel", "autofocusName", "item", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3126
3200
|
}
|
|
3127
3201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterItemDialogComponent, decorators: [{
|
|
3128
3202
|
type: Component,
|
|
@@ -3131,7 +3205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3131
3205
|
FsFormModule,
|
|
3132
3206
|
FsSkeletonModule,
|
|
3133
3207
|
FilterItemComponent,
|
|
3134
|
-
], template: "<div class=\"filter-item-dialog\">\n <filter-item\n class=\"filter-group\"\n [autofocus]=\"true\"\n [autofocusName]=\"autofocusName\"\n [item]=\"item\">\n </filter-item>\n</div>", styles: [".filter-item-dialog{background-color:#fff;padding:12px;box-shadow:var(--mat-autocomplete-container-elevation-shadow);border-radius:5px}.filter-item-dialog ::ng-deep mat-form-field{margin-top:0}\n"] }]
|
|
3208
|
+
], template: "<div class=\"filter-item-dialog\">\n <filter-item\n class=\"filter-group\"\n [floatLabel]=\"'always'\"\n [autofocus]=\"true\"\n [autofocusName]=\"autofocusName\"\n [item]=\"item\">\n </filter-item>\n</div>", styles: [".filter-item-dialog{background-color:#fff;padding:12px;box-shadow:var(--mat-autocomplete-container-elevation-shadow);border-radius:5px}.filter-item-dialog ::ng-deep mat-form-field{margin-top:0}\n"] }]
|
|
3135
3209
|
}] });
|
|
3136
3210
|
|
|
3137
3211
|
class FsFilterSavedFilterChipsComponent {
|
|
@@ -3212,6 +3286,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3212
3286
|
|
|
3213
3287
|
class FsFilterChipsComponent {
|
|
3214
3288
|
ItemType = ItemType;
|
|
3289
|
+
secondaryItems = [];
|
|
3215
3290
|
_filterController = inject(FilterController);
|
|
3216
3291
|
_dialog = inject(MatDialog);
|
|
3217
3292
|
_message = inject(FsMessage);
|
|
@@ -3219,45 +3294,54 @@ class FsFilterChipsComponent {
|
|
|
3219
3294
|
_injector = inject(Injector);
|
|
3220
3295
|
_overlay = inject(Overlay);
|
|
3221
3296
|
_overlayRef;
|
|
3297
|
+
_destroyRef = inject(DestroyRef);
|
|
3298
|
+
_elementRef = inject(ElementRef);
|
|
3299
|
+
_hasSecondaryValue$ = new BehaviorSubject(false);
|
|
3222
3300
|
get items() {
|
|
3223
3301
|
return this._filterController.items
|
|
3224
3302
|
.filter((item) => !item.isTypeKeyword);
|
|
3225
3303
|
}
|
|
3226
|
-
|
|
3304
|
+
addFilter(event) {
|
|
3305
|
+
const item = event.value;
|
|
3306
|
+
item.secondaryShow();
|
|
3307
|
+
setTimeout(() => {
|
|
3308
|
+
this.openChip(item);
|
|
3309
|
+
});
|
|
3310
|
+
}
|
|
3311
|
+
get disabledItems() {
|
|
3227
3312
|
return this.items
|
|
3228
|
-
.filter((item) => !item.primary)
|
|
3229
|
-
|
|
3313
|
+
.filter((item) => !item.secondaryVisible && !item.hasValue && !item.primary);
|
|
3314
|
+
}
|
|
3315
|
+
get hasSecondaryValue$() {
|
|
3316
|
+
return this._hasSecondaryValue$.asObservable();
|
|
3230
3317
|
}
|
|
3231
3318
|
get savedFilterController() {
|
|
3232
3319
|
return this._savedFilterController;
|
|
3233
3320
|
}
|
|
3321
|
+
get hasSecondaryValue() {
|
|
3322
|
+
return this._filterController.items
|
|
3323
|
+
.some((item) => item.hasValue && item.visible && !item.primary);
|
|
3324
|
+
}
|
|
3234
3325
|
ngOnInit() {
|
|
3235
|
-
|
|
3236
|
-
.
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
return !!this.getNestedElement(element, 'cdk-overlay-pane');
|
|
3240
|
-
});
|
|
3241
|
-
const item2 = elements.some((element) => {
|
|
3242
|
-
return !!this.getNestedElement(element, 'filter-chip');
|
|
3243
|
-
});
|
|
3244
|
-
if (!item1 && !item2) {
|
|
3245
|
-
this._destroyOverlay();
|
|
3246
|
-
}
|
|
3247
|
-
});
|
|
3326
|
+
this.secondaryItems = this.items
|
|
3327
|
+
.filter((item) => !item.primary);
|
|
3328
|
+
this._initHasSecondaryValue();
|
|
3329
|
+
this._initChipClick();
|
|
3248
3330
|
}
|
|
3249
3331
|
clear() {
|
|
3250
3332
|
this.items
|
|
3251
3333
|
.filter((item) => item.clearable)
|
|
3252
3334
|
.forEach((item) => {
|
|
3335
|
+
if (!item.secondary) {
|
|
3336
|
+
item.secondaryHide();
|
|
3337
|
+
}
|
|
3253
3338
|
item.clear(false);
|
|
3254
3339
|
});
|
|
3255
3340
|
this._filterController.change();
|
|
3256
|
-
this._savedFilterController.setActiveFilter(null);
|
|
3257
3341
|
}
|
|
3258
|
-
|
|
3342
|
+
openChip(item, name = null) {
|
|
3259
3343
|
this._destroyOverlay();
|
|
3260
|
-
el = this.
|
|
3344
|
+
const el = this._elementRef.nativeElement.querySelector(`[data-filter-item="${item.name}"]`);
|
|
3261
3345
|
const positions = [
|
|
3262
3346
|
{
|
|
3263
3347
|
originX: 'start',
|
|
@@ -3338,7 +3422,10 @@ class FsFilterChipsComponent {
|
|
|
3338
3422
|
this._overlayRef.dispose();
|
|
3339
3423
|
}
|
|
3340
3424
|
}
|
|
3341
|
-
|
|
3425
|
+
removeChip(item, chip) {
|
|
3426
|
+
if (!item.secondary) {
|
|
3427
|
+
item.secondaryHide();
|
|
3428
|
+
}
|
|
3342
3429
|
if (chip.name) {
|
|
3343
3430
|
item.clearByName(chip.name);
|
|
3344
3431
|
}
|
|
@@ -3361,8 +3448,31 @@ class FsFilterChipsComponent {
|
|
|
3361
3448
|
parent: this._injector,
|
|
3362
3449
|
});
|
|
3363
3450
|
}
|
|
3451
|
+
_initChipClick() {
|
|
3452
|
+
fromEvent(document, 'click')
|
|
3453
|
+
.subscribe((event) => {
|
|
3454
|
+
const elements = document.elementsFromPoint(event.clientX, event.clientY);
|
|
3455
|
+
const item1 = elements.some((element) => {
|
|
3456
|
+
return !!this.getNestedElement(element, 'cdk-overlay-pane');
|
|
3457
|
+
});
|
|
3458
|
+
const item2 = elements.some((element) => {
|
|
3459
|
+
return !!this.getNestedElement(element, 'filter-chip');
|
|
3460
|
+
});
|
|
3461
|
+
if (!item1 && !item2) {
|
|
3462
|
+
this._destroyOverlay();
|
|
3463
|
+
}
|
|
3464
|
+
});
|
|
3465
|
+
}
|
|
3466
|
+
_initHasSecondaryValue() {
|
|
3467
|
+
this._hasSecondaryValue$.next(this.hasSecondaryValue);
|
|
3468
|
+
this._filterController.change$
|
|
3469
|
+
.pipe(tap$1(() => {
|
|
3470
|
+
this._hasSecondaryValue$.next(this.hasSecondaryValue);
|
|
3471
|
+
}), takeUntilDestroyed(this._destroyRef))
|
|
3472
|
+
.subscribe();
|
|
3473
|
+
}
|
|
3364
3474
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterChipsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3365
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FsFilterChipsComponent, isStandalone: true, selector: "fs-filter-chips", ngImport: i0, template: "@if (items.length !== 0) {\n @for (item of
|
|
3475
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FsFilterChipsComponent, isStandalone: true, selector: "fs-filter-chips", ngImport: i0, template: "@if (items.length !== 0) {\n @for (item of secondaryItems; track item.name) {\n @if ((item.visible$ | async) && (item.hasValue$ | async)) {\n @for (chip of item.chips$ | async; track chip.label) {\n <fs-chip\n class=\"filter-chip selected\"\n [size]=\"'medium'\"\n [attr.data-filter-item]=\"item.name\"\n (click)=\"openChip(item, chip.name)\">\n @if (chip.value) {\n {{ chip.label + ': ' + chip.value }}\n } @else {\n {{ chip.label }}\n }\n <ng-template\n fsChipSuffix\n [icon]=\"'cancel_circle_outline'\"\n (click)=\"removeChip(item, chip)\">\n </ng-template>\n </fs-chip>\n }\n }\n }\n @for (item of secondaryItems; track item.name) {\n @if ((item.visible$ | async) && (item.notValue$ | async) && (item.secondaryVisible$ | async)) {\n <fs-chip\n class=\"filter-chip\"\n [attr.data-filter-item]=\"item.name\"\n [size]=\"'medium'\"\n (click)=\"openChip(item)\"\n [outlined]=\"true\">\n {{ item.mergedLabel }}\n <ng-template\n fsChipSuffix\n [icon]=\"'add_circle_outline'\"\n (click)=\"openChip(item)\">\n </ng-template>\n </fs-chip>\n }\n }\n <mat-select\n class=\"more-filters-select mat-mdc-outlined-button\"\n [buttonType]=\"'basic'\"\n fsSelectButton\n [placeholder]=\"'More filters'\"\n (selectionChange)=\"addFilter($event)\"\n [deselectOnChange]=\"true\">\n @for (item of disabledItems; track item.name) {\n <mat-option [value]=\"item\">\n {{ item.mergedLabel }}\n </mat-option>\n }\n </mat-select>\n @if (hasSecondaryValue$ | async) {\n <a\n class=\"clear\"\n mat-stroked-button\n (click)=\"clear()\">\n Clear filters\n </a>\n }\n <mat-select\n class=\"saved-filters-select mat-mdc-outlined-button\"\n [buttonType]=\"'basic'\"\n fsSelectButton\n [placeholder]=\"(savedFilterController.activeFilter$ | async) ? savedFilterController.singularLabel + ': ' + (savedFilterController.activeFilter$ | async).name : savedFilterController.pluralLabel\"\n [deselectOnChange]=\"true\">\n @if (savedFilterController.activeFilter$ | async) {\n <mat-option (click)=\"saveActiveFilter()\">\n Update filters\n </mat-option>\n <mat-option (click)=\"saveAs()\">\n Save as new\n </mat-option>\n } @else {\n <mat-option (click)=\"createSavedFilter()\">\n Create new\n </mat-option>\n }\n <mat-option (click)=\"manageSavedFilters()\">\n View all\n </mat-option>\n </mat-select>\n}", styles: [":host{display:flex;flex-wrap:wrap;align-items:center;gap:5px;max-width:100%;margin-top:4px}.saved-filters-select,.more-filters-select,.clear{display:flex;color:inherit;height:30px}.saved-filters-select.clear,.more-filters-select.clear,.clear.clear{padding:0 10px}.saved-filters-select ::ng-deep .mat-mdc-select-value,.more-filters-select ::ng-deep .mat-mdc-select-value,.clear ::ng-deep .mat-mdc-select-value{padding:0 10px}.saved-filters-select ::ng-deep .mat-mdc-select-arrow-wrapper,.more-filters-select ::ng-deep .mat-mdc-select-arrow-wrapper,.clear ::ng-deep .mat-mdc-select-arrow-wrapper{padding-right:10px}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FsChipModule }, { kind: "component", type: i1$5.FsChipComponent, selector: "fs-chip", inputs: ["selectable", "removable", "value", "maxWidth", "width", "backgroundColor", "borderColor", "color", "shape", "outlined", "outlineDash", "icon", "image", "selected", "padding", "contrastColor", "size"], outputs: ["selectedToggled", "removed", "click"] }, { kind: "directive", type: i1$5.FsChipSuffixDirective, selector: "[fsChipSuffix]", inputs: ["icon", "link", "linkTarget", "color", "data", "tooltip"], outputs: ["click"] }, { 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: "component", type: MatOption$1, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FsSelectButtonModule }, { kind: "directive", type: i3$1.FsSelectButtonDirective, selector: "[fsSelectButton]", inputs: ["color", "minWidth", "maxWidth", "width", "buttonType", "deselectOnChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3$2.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: FsButtonDirective, selector: "[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]", inputs: ["name", "dirtySubmit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3366
3476
|
}
|
|
3367
3477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FsFilterChipsComponent, decorators: [{
|
|
3368
3478
|
type: Component,
|
|
@@ -3374,7 +3484,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3374
3484
|
FsSelectButtonModule,
|
|
3375
3485
|
MatButtonModule,
|
|
3376
3486
|
FsButtonDirective,
|
|
3377
|
-
], template: "@if (items.length !== 0) {\n @for (item of
|
|
3487
|
+
], template: "@if (items.length !== 0) {\n @for (item of secondaryItems; track item.name) {\n @if ((item.visible$ | async) && (item.hasValue$ | async)) {\n @for (chip of item.chips$ | async; track chip.label) {\n <fs-chip\n class=\"filter-chip selected\"\n [size]=\"'medium'\"\n [attr.data-filter-item]=\"item.name\"\n (click)=\"openChip(item, chip.name)\">\n @if (chip.value) {\n {{ chip.label + ': ' + chip.value }}\n } @else {\n {{ chip.label }}\n }\n <ng-template\n fsChipSuffix\n [icon]=\"'cancel_circle_outline'\"\n (click)=\"removeChip(item, chip)\">\n </ng-template>\n </fs-chip>\n }\n }\n }\n @for (item of secondaryItems; track item.name) {\n @if ((item.visible$ | async) && (item.notValue$ | async) && (item.secondaryVisible$ | async)) {\n <fs-chip\n class=\"filter-chip\"\n [attr.data-filter-item]=\"item.name\"\n [size]=\"'medium'\"\n (click)=\"openChip(item)\"\n [outlined]=\"true\">\n {{ item.mergedLabel }}\n <ng-template\n fsChipSuffix\n [icon]=\"'add_circle_outline'\"\n (click)=\"openChip(item)\">\n </ng-template>\n </fs-chip>\n }\n }\n <mat-select\n class=\"more-filters-select mat-mdc-outlined-button\"\n [buttonType]=\"'basic'\"\n fsSelectButton\n [placeholder]=\"'More filters'\"\n (selectionChange)=\"addFilter($event)\"\n [deselectOnChange]=\"true\">\n @for (item of disabledItems; track item.name) {\n <mat-option [value]=\"item\">\n {{ item.mergedLabel }}\n </mat-option>\n }\n </mat-select>\n @if (hasSecondaryValue$ | async) {\n <a\n class=\"clear\"\n mat-stroked-button\n (click)=\"clear()\">\n Clear filters\n </a>\n }\n <mat-select\n class=\"saved-filters-select mat-mdc-outlined-button\"\n [buttonType]=\"'basic'\"\n fsSelectButton\n [placeholder]=\"(savedFilterController.activeFilter$ | async) ? savedFilterController.singularLabel + ': ' + (savedFilterController.activeFilter$ | async).name : savedFilterController.pluralLabel\"\n [deselectOnChange]=\"true\">\n @if (savedFilterController.activeFilter$ | async) {\n <mat-option (click)=\"saveActiveFilter()\">\n Update filters\n </mat-option>\n <mat-option (click)=\"saveAs()\">\n Save as new\n </mat-option>\n } @else {\n <mat-option (click)=\"createSavedFilter()\">\n Create new\n </mat-option>\n }\n <mat-option (click)=\"manageSavedFilters()\">\n View all\n </mat-option>\n </mat-select>\n}", styles: [":host{display:flex;flex-wrap:wrap;align-items:center;gap:5px;max-width:100%;margin-top:4px}.saved-filters-select,.more-filters-select,.clear{display:flex;color:inherit;height:30px}.saved-filters-select.clear,.more-filters-select.clear,.clear.clear{padding:0 10px}.saved-filters-select ::ng-deep .mat-mdc-select-value,.more-filters-select ::ng-deep .mat-mdc-select-value,.clear ::ng-deep .mat-mdc-select-value{padding:0 10px}.saved-filters-select ::ng-deep .mat-mdc-select-arrow-wrapper,.more-filters-select ::ng-deep .mat-mdc-select-arrow-wrapper,.clear ::ng-deep .mat-mdc-select-arrow-wrapper{padding-right:10px}\n"] }]
|
|
3378
3488
|
}] });
|
|
3379
3489
|
|
|
3380
3490
|
class KeywordInputComponent {
|
|
@@ -3796,7 +3906,7 @@ class FilterComponent {
|
|
|
3796
3906
|
ActionsController,
|
|
3797
3907
|
KeywordController,
|
|
3798
3908
|
SortController,
|
|
3799
|
-
], queries: [{ propertyName: "statusBar", first: true, predicate: FilterStatusBarDirective, descendants: true }, { propertyName: "headingTemplate", first: true, predicate: FilterHeadingDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "keywordInput", first: true, predicate: KeywordInputComponent, descendants: true }, { propertyName: "reloadEl", first: true, predicate: ["reloadEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"filter-container\"\n [ngClass]=\"{ 'has-primary-filter': primaryFilterVisible$ | async }\"\n [ngClass]=\"{ 'keyword-full-width': keywordFullWidth$ | async }\">\n @if (primaryFilterVisible$ | async) {\n <ng-container *ngTemplateOutlet=\"headingTmpl\"></ng-container>\n }\n <div class=\"filter-bar-container\">\n @if (primaryFilterVisible$ | async) {\n <div class=\"filter-input-container\">\n @if (keywordVisible$ | async) {\n <fs-keyword-input [autofocus]=\"config.autofocus\"></fs-keyword-input>\n }\n @for (item of primaryItems; track item.name) {\n @if (item.visible$ | async) {\n <filter-item [item]=\"item\"></filter-item>\n }\n }\n </div>\n } @else if (hasHeading) {\n <div class=\"filter-heading-container\">\n <ng-container *ngTemplateOutlet=\"headingTmpl\"></ng-container>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"chipsTmpl\"></ng-container>\n }\n <ng-container [ngTemplateOutlet]=\"filterActionsTmpl\"></ng-container>\n </div>\n @if ((primaryFilterVisible$ | async) === true || hasHeading) {\n <ng-container\n [ngTemplateOutlet]=\"chipsTmpl\"\n [ngTemplateOutletContext]=\"{ topMargin: true }\">\n </ng-container>\n }\n <ng-container *ngTemplateOutlet=\"statusBarTmpl\"></ng-container>\n</div>\n<ng-template\n #chipsTmpl\n let-topMargin=\"topMargin\">\n <fs-filter-chips\n class=\"filter-chips\"\n [ngClass]=\"{ 'top-margin': topMargin }\">\n </fs-filter-chips>\n</ng-template>\n<ng-template #statusBarTmpl>\n @if (statusBar) {\n <div\n class=\"filter-status-container\"\n [ngClass]=\"{ 'has-status': !!filterStatus.textContent }\">\n <div\n class=\"filter-status\"\n #filterStatus>\n <ng-container *ngTemplateOutlet=\"statusBar.templateRef\"></ng-container>\n </div>\n </div>\n }\n</ng-template>\n<ng-template #filterActionsTmpl>\n @if ((actionsVisible$ | async)) {\n <div class=\"filter-actions\">\n <ng-container [ngTemplateOutlet]=\"filterToolbarTmpl\"></ng-container>\n <fs-filter-actions\n [actions]=\"actions$ | async\"\n [kebabActions]=\"menuActions$ | async\">\n </fs-filter-actions>\n </div>\n }\n</ng-template>\n<ng-template #filterToolbarTmpl>\n @if (config.reload || config.autoReload || (filtersVisible$ | async)) {\n <div class=\"filter-toolbar\">\n @if (config.reload) {\n <a\n mat-icon-button\n (click)=\"reload($event)\"\n class=\"button-reload\">\n <mat-icon #reloadEl>\n refresh\n </mat-icon>\n </a>\n }\n @if (config.autoReload) {\n <div class=\"filter-reload\">\n <mat-slide-toggle\n name=\"autoReload\"\n class=\"auto-reload\"\n [ngModel]=\"config.autoReload.enabled\"\n (ngModelChange)=\"config.autoReload.enabled = $event\">\n <span>\n Auto refresh\n </span>\n </mat-slide-toggle>\n </div>\n }\n </div>\n }\n</ng-template>\n<ng-template #headingTmpl>\n @if (headingTemplate) {\n <ng-container *ngTemplateOutlet=\"headingTemplate\"></ng-container>\n } @else if (config.heading) {\n <div class=\"heading\">\n <h2>\n {{ config.heading }}\n </h2>\n <div class=\"subheading\">\n {{ config.subheading }}\n </div>\n </div>\n }\n</ng-template>", styles: [":host{margin-bottom:20px;display:block}.filter-status-container{flex-grow:1;display:flex;justify-content:center;flex-direction:column;align-self:flex-end;margin-top:4px}.filter-status-container .filter-status{overflow:hidden;text-overflow:ellipsis}.filter-container{width:100%}.filter-container.has-primary-filter .heading{margin-bottom:10px}.filter-container.has-primary-filter .filter-bar-container{margin-bottom:4px}.filter-container.keyword-full-width .filter-input-container{flex:1}.filter-container.keyword-full-width .filter-input-container fs-keyword-input{flex:1}.filter-container.keyword-full-width .filter-input-container fs-keyword-input ::ng-deep mat-form-field{width:100%}.filter-container .filter-bar-container{flex-direction:row;box-sizing:border-box;display:flex;position:relative;align-items:flex-start}.filter-container .filter-bar-container .filter-input-container{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;min-width:0;gap:5px;flex-wrap:wrap}.filter-container .filter-bar-container .filter-heading-container{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;min-width:0}.filter-container .filter-bar-container .filter-heading-container fs-keyword-input+fs-saved-filter-autocomplete-chips{margin-left:5px}.filter-actions{display:flex;align-items:center;flex:1;justify-content:flex-end}.filter-toolbar{white-space:nowrap;display:flex;align-items:center}.filter-toolbar .button-filters,.filter-toolbar .button-reload{display:flex;--mdc-icon-button-state-layer-size: 40px;padding:8px}.filter-toolbar .button-filters ::ng-deep svg,.filter-toolbar .button-reload ::ng-deep svg{display:flex}.filter-toolbar .button-reload{display:flex;align-items:center}.filter-toolbar .button-reload .auto-reload{margin-right:5px}.filter-toolbar .button-reload .auto-reload span{font-size:80%}.heading{margin-right:8px}.heading h2{margin:0}.heading h2+.subheading{margin:0}@media screen and (min-width: 1200px){html.fs-filter-open body{margin-right:350px}}html.fs-filter-open{scrollbar-width:none}:host ::ng-deep .auto-reload.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(12px,0,0)}:host ::ng-deep .auto-reload:not(.mat-checked) .mat-slide-toggle-content{color:#ccc}:host ::ng-deep .auto-reload .mat-slide-toggle-thumb,:host ::ng-deep .auto-reload .mat-slide-toggle-thumb-container{height:15px;width:15px}:host ::ng-deep .auto-reload .mat-slide-toggle-content{font-size:90%}:host ::ng-deep .auto-reload .mat-slide-toggle-bar{width:26px;height:10px;border-radius:10px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FilterItemComponent, selector: "filter-item", inputs: ["autofocus", "autofocusName", "item", "name"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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])" }, { kind: "ngmodule", type: FsClearModule }, { kind: "component", type: FsFilterChipsComponent, selector: "fs-filter-chips" }, { kind: "component", type: FsFilterActionsComponent, selector: "fs-filter-actions", inputs: ["kebabActions", "actions"] }, { kind: "component", type: MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: KeywordInputComponent, selector: "fs-keyword-input", inputs: ["autofocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3909
|
+
], queries: [{ propertyName: "statusBar", first: true, predicate: FilterStatusBarDirective, descendants: true }, { propertyName: "headingTemplate", first: true, predicate: FilterHeadingDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "keywordInput", first: true, predicate: KeywordInputComponent, descendants: true }, { propertyName: "reloadEl", first: true, predicate: ["reloadEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"filter-container\"\n [ngClass]=\"{ 'has-primary-filter': primaryFilterVisible$ | async }\"\n [ngClass]=\"{ 'keyword-full-width': keywordFullWidth$ | async }\">\n @if (primaryFilterVisible$ | async) {\n <ng-container *ngTemplateOutlet=\"headingTmpl\"></ng-container>\n }\n <div class=\"filter-bar-container\">\n @if (primaryFilterVisible$ | async) {\n <div class=\"filter-input-container\">\n @if (keywordVisible$ | async) {\n <fs-keyword-input [autofocus]=\"config.autofocus\"></fs-keyword-input>\n }\n @for (item of primaryItems; track item.name) {\n @if (item.visible$ | async) {\n <filter-item [item]=\"item\"></filter-item>\n }\n }\n </div>\n } @else if (hasHeading) {\n <div class=\"filter-heading-container\">\n <ng-container *ngTemplateOutlet=\"headingTmpl\"></ng-container>\n </div>\n } @else {\n <ng-container *ngTemplateOutlet=\"chipsTmpl\"></ng-container>\n }\n <ng-container [ngTemplateOutlet]=\"filterActionsTmpl\"></ng-container>\n </div>\n @if ((primaryFilterVisible$ | async) === true || hasHeading) {\n <ng-container\n [ngTemplateOutlet]=\"chipsTmpl\"\n [ngTemplateOutletContext]=\"{ topMargin: true }\">\n </ng-container>\n }\n <ng-container *ngTemplateOutlet=\"statusBarTmpl\"></ng-container>\n</div>\n<ng-template\n #chipsTmpl\n let-topMargin=\"topMargin\">\n <fs-filter-chips\n class=\"filter-chips\"\n [ngClass]=\"{ 'top-margin': topMargin }\">\n </fs-filter-chips>\n</ng-template>\n<ng-template #statusBarTmpl>\n @if (statusBar) {\n <div\n class=\"filter-status-container\"\n [ngClass]=\"{ 'has-status': !!filterStatus.textContent }\">\n <div\n class=\"filter-status\"\n #filterStatus>\n <ng-container *ngTemplateOutlet=\"statusBar.templateRef\"></ng-container>\n </div>\n </div>\n }\n</ng-template>\n<ng-template #filterActionsTmpl>\n @if ((actionsVisible$ | async)) {\n <div class=\"filter-actions\">\n <ng-container [ngTemplateOutlet]=\"filterToolbarTmpl\"></ng-container>\n <fs-filter-actions\n [actions]=\"actions$ | async\"\n [kebabActions]=\"menuActions$ | async\">\n </fs-filter-actions>\n </div>\n }\n</ng-template>\n<ng-template #filterToolbarTmpl>\n @if (config.reload || config.autoReload || (filtersVisible$ | async)) {\n <div class=\"filter-toolbar\">\n @if (config.reload) {\n <a\n mat-icon-button\n (click)=\"reload($event)\"\n class=\"button-reload\">\n <mat-icon #reloadEl>\n refresh\n </mat-icon>\n </a>\n }\n @if (config.autoReload) {\n <div class=\"filter-reload\">\n <mat-slide-toggle\n name=\"autoReload\"\n class=\"auto-reload\"\n [ngModel]=\"config.autoReload.enabled\"\n (ngModelChange)=\"config.autoReload.enabled = $event\">\n <span>\n Auto refresh\n </span>\n </mat-slide-toggle>\n </div>\n }\n </div>\n }\n</ng-template>\n<ng-template #headingTmpl>\n @if (headingTemplate) {\n <ng-container *ngTemplateOutlet=\"headingTemplate\"></ng-container>\n } @else if (config.heading) {\n <div class=\"heading\">\n <h2>\n {{ config.heading }}\n </h2>\n <div class=\"subheading\">\n {{ config.subheading }}\n </div>\n </div>\n }\n</ng-template>", styles: [":host{margin-bottom:20px;display:block}.filter-status-container{flex-grow:1;display:flex;justify-content:center;flex-direction:column;align-self:flex-end;margin-top:4px}.filter-status-container .filter-status{overflow:hidden;text-overflow:ellipsis}.filter-container{width:100%}.filter-container.has-primary-filter .heading{margin-bottom:10px}.filter-container.has-primary-filter .filter-bar-container{margin-bottom:4px}.filter-container.keyword-full-width .filter-input-container{flex:1}.filter-container.keyword-full-width .filter-input-container fs-keyword-input{flex:1}.filter-container.keyword-full-width .filter-input-container fs-keyword-input ::ng-deep mat-form-field{width:100%}.filter-container .filter-bar-container{flex-direction:row;box-sizing:border-box;display:flex;position:relative;align-items:flex-start}.filter-container .filter-bar-container .filter-input-container{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;min-width:0;gap:5px;flex-wrap:wrap}.filter-container .filter-bar-container .filter-heading-container{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;min-width:0}.filter-container .filter-bar-container .filter-heading-container fs-keyword-input+fs-saved-filter-autocomplete-chips{margin-left:5px}.filter-actions{display:flex;align-items:center;flex:1;justify-content:flex-end}.filter-toolbar{white-space:nowrap;display:flex;align-items:center}.filter-toolbar .button-filters,.filter-toolbar .button-reload{display:flex;--mdc-icon-button-state-layer-size: 40px;padding:8px}.filter-toolbar .button-filters ::ng-deep svg,.filter-toolbar .button-reload ::ng-deep svg{display:flex}.filter-toolbar .button-reload{display:flex;align-items:center}.filter-toolbar .button-reload .auto-reload{margin-right:5px}.filter-toolbar .button-reload .auto-reload span{font-size:80%}.heading{margin-right:8px}.heading h2{margin:0}.heading h2+.subheading{margin:0}@media screen and (min-width: 1200px){html.fs-filter-open body{margin-right:350px}}html.fs-filter-open{scrollbar-width:none}:host ::ng-deep .auto-reload.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(12px,0,0)}:host ::ng-deep .auto-reload:not(.mat-checked) .mat-slide-toggle-content{color:#ccc}:host ::ng-deep .auto-reload .mat-slide-toggle-thumb,:host ::ng-deep .auto-reload .mat-slide-toggle-thumb-container{height:15px;width:15px}:host ::ng-deep .auto-reload .mat-slide-toggle-content{font-size:90%}:host ::ng-deep .auto-reload .mat-slide-toggle-bar{width:26px;height:10px;border-radius:10px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: FilterItemComponent, selector: "filter-item", inputs: ["autofocus", "floatLabel", "autofocusName", "item", "name"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { 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])" }, { kind: "ngmodule", type: FsClearModule }, { kind: "component", type: FsFilterChipsComponent, selector: "fs-filter-chips" }, { kind: "component", type: FsFilterActionsComponent, selector: "fs-filter-actions", inputs: ["kebabActions", "actions"] }, { kind: "component", type: MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: KeywordInputComponent, selector: "fs-keyword-input", inputs: ["autofocus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3800
3910
|
}
|
|
3801
3911
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FilterComponent, decorators: [{
|
|
3802
3912
|
type: Component,
|