@firestitch/filter 18.0.3 → 18.0.5
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/filter.component.d.ts +2 -3
- package/app/components/filter-chip-content/filter-chip-content.component.d.ts +1 -1
- package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +1 -1
- package/app/components/filters-item/base-item/base-item.component.d.ts +4 -2
- package/app/components/filters-item/checkbox/checkbox.component.d.ts +1 -1
- package/app/components/filters-item/date/date.component.d.ts +2 -2
- package/app/components/filters-item/range/range.component.d.ts +1 -1
- package/app/components/filters-item/select/select.component.d.ts +5 -5
- package/app/components/filters-item/text/text.component.d.ts +3 -6
- package/app/helpers/create-filter-item.d.ts +1 -1
- package/app/models/filter-config.d.ts +2 -2
- package/app/models/items/autocomplete/base-autocomplete-item.d.ts +1 -1
- package/app/models/items/base-item.d.ts +11 -12
- package/app/models/items/checkbox-item.d.ts +4 -5
- package/app/models/items/date/base-date-item.d.ts +2 -2
- package/app/models/items/date-time-item.d.ts +1 -0
- package/app/services/external-params/persistance-params-controller.service.d.ts +0 -1
- package/app/services/items-store.service.d.ts +1 -2
- package/esm2022/app/components/filter/filter.component.mjs +14 -10
- package/esm2022/app/components/filter-chip-content/filter-chip-content.component.mjs +13 -25
- package/esm2022/app/components/filter-chips/filter-chips.component.mjs +3 -3
- package/esm2022/app/components/filter-drawer/filter-drawer.component.mjs +3 -3
- package/esm2022/app/components/filters-item/autocomplete/autocomplete.component.mjs +1 -1
- package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +1 -1
- package/esm2022/app/components/filters-item/base-item/base-item.component.mjs +7 -1
- package/esm2022/app/components/filters-item/checkbox/checkbox.component.mjs +4 -4
- package/esm2022/app/components/filters-item/date/date.component.mjs +7 -12
- package/esm2022/app/components/filters-item/range/range.component.mjs +3 -3
- package/esm2022/app/components/filters-item/select/select.component.mjs +2 -2
- package/esm2022/app/components/filters-item/select/simple/simple.component.mjs +4 -9
- package/esm2022/app/components/filters-item/text/text.component.mjs +2 -8
- package/esm2022/app/helpers/create-filter-item.mjs +2 -2
- package/esm2022/app/interfaces/items/range.interface.mjs +1 -1
- package/esm2022/app/models/filter-config.mjs +4 -5
- package/esm2022/app/models/items/base-item.mjs +8 -11
- package/esm2022/app/models/items/checkbox-item.mjs +12 -17
- package/esm2022/app/models/items/date/base-date-item.mjs +3 -3
- package/esm2022/app/models/items/date-time-item.mjs +4 -1
- package/esm2022/app/models/items/week-item.mjs +4 -2
- package/esm2022/app/services/external-params/persistance-params-controller.service.mjs +1 -3
- package/esm2022/app/services/items-store.service.mjs +16 -21
- package/fesm2022/firestitch-filter.mjs +87 -116
- 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 { Injectable, Optional, Component, ChangeDetectionStrategy, Inject, Input, EventEmitter, Output, InjectionToken, Directive, Self, ViewChild, Pipe, HostListener, ElementRef, ContentChild, HostBinding, NgModule } from '@angular/core';
|
|
2
|
+
import { Injectable, Optional, Component, ChangeDetectionStrategy, Inject, Input, EventEmitter, Output, InjectionToken, Directive, Self, ViewChild, Pipe, HostListener, inject, ElementRef, ContentChild, HostBinding, NgModule } from '@angular/core';
|
|
3
3
|
import { BehaviorSubject, Subject, isObservable, forkJoin, of, timer, combineLatest, fromEvent, merge, interval } from 'rxjs';
|
|
4
4
|
import { tap, finalize, take, takeUntil, debounceTime, filter as filter$1, distinctUntilChanged, switchMap, mapTo, startWith, map, delay, skip } from 'rxjs/operators';
|
|
5
5
|
import { filter, isArrayEqual, list, isEmpty, getNormalizedPath, remove, FsCommonModule } from '@firestitch/common';
|
|
@@ -37,7 +37,7 @@ import * as i6$2 from '@angular/material/checkbox';
|
|
|
37
37
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
38
38
|
import { MatChipsModule } from '@angular/material/chips';
|
|
39
39
|
import * as i2$2 from '@angular/material/icon';
|
|
40
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
40
|
+
import { MatIconRegistry, MatIconModule } from '@angular/material/icon';
|
|
41
41
|
import * as i12 from '@angular/material/slide-toggle';
|
|
42
42
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
43
43
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
@@ -64,6 +64,7 @@ import * as i5$2 from '@firestitch/skeleton';
|
|
|
64
64
|
import { FsSkeletonModule } from '@firestitch/skeleton';
|
|
65
65
|
import * as i1$3 from '@angular/cdk/overlay';
|
|
66
66
|
import { OverlayConfig } from '@angular/cdk/overlay';
|
|
67
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
67
68
|
import * as i1$4 from '@angular/cdk/layout';
|
|
68
69
|
import * as i3$5 from '@firestitch/html';
|
|
69
70
|
|
|
@@ -137,15 +138,15 @@ class BaseItem {
|
|
|
137
138
|
change;
|
|
138
139
|
init;
|
|
139
140
|
_type;
|
|
140
|
-
_model;
|
|
141
|
+
_model = undefined;
|
|
141
142
|
_pendingValues = false;
|
|
142
143
|
_pendingDefaultValue = false;
|
|
143
144
|
_initializedValues = false;
|
|
145
|
+
_valuesFn;
|
|
144
146
|
_loading$ = new BehaviorSubject(false);
|
|
145
147
|
_value$ = new BehaviorSubject(null);
|
|
146
148
|
_valueChange$ = new Subject();
|
|
147
149
|
_values$ = new BehaviorSubject(null);
|
|
148
|
-
_valuesFn;
|
|
149
150
|
_destroy$ = new Subject();
|
|
150
151
|
_clear$ = new Subject();
|
|
151
152
|
constructor(itemConfig, _additionalConfig, _filter) {
|
|
@@ -242,9 +243,6 @@ class BaseItem {
|
|
|
242
243
|
set loading(value) {
|
|
243
244
|
this._loading$.next(value);
|
|
244
245
|
}
|
|
245
|
-
get _initialized() {
|
|
246
|
-
return !this._pendingDefaultValue && !this._pendingValues && this._initializedValues;
|
|
247
|
-
}
|
|
248
246
|
valueChanged() {
|
|
249
247
|
this._value$.next(this.value);
|
|
250
248
|
if (this.change) {
|
|
@@ -325,9 +323,6 @@ class BaseItem {
|
|
|
325
323
|
this._clear$.next(defaultValue);
|
|
326
324
|
this._clearValue(defaultValue);
|
|
327
325
|
}
|
|
328
|
-
getChipsContent(type) {
|
|
329
|
-
return '';
|
|
330
|
-
}
|
|
331
326
|
destroy() {
|
|
332
327
|
this._destroy$.next(null);
|
|
333
328
|
this._destroy$.complete();
|
|
@@ -345,10 +340,10 @@ class BaseItem {
|
|
|
345
340
|
else {
|
|
346
341
|
this.defaultValue = item.default;
|
|
347
342
|
}
|
|
348
|
-
this.
|
|
349
|
-
this.init = item.init || ((_) => {
|
|
343
|
+
this.init = item.init || (() => {
|
|
350
344
|
//
|
|
351
345
|
});
|
|
346
|
+
this.change = item.change;
|
|
352
347
|
this.hide = item.hide;
|
|
353
348
|
this.showClear = item.clear ?? true;
|
|
354
349
|
this.persistanceDisabled = item.disablePersist ?? false;
|
|
@@ -369,6 +364,9 @@ class BaseItem {
|
|
|
369
364
|
_clearValue(defaultValue = undefined) {
|
|
370
365
|
this.model = defaultValue ?? undefined;
|
|
371
366
|
}
|
|
367
|
+
get _initialized() {
|
|
368
|
+
return !this._pendingDefaultValue && !this._pendingValues && this._initializedValues;
|
|
369
|
+
}
|
|
372
370
|
}
|
|
373
371
|
|
|
374
372
|
class BaseSelectItem extends BaseItem {
|
|
@@ -821,7 +819,9 @@ class WeekItem extends BaseItem {
|
|
|
821
819
|
getChipsContent(type = null) {
|
|
822
820
|
return formatPeriodObject(this.value);
|
|
823
821
|
}
|
|
824
|
-
_validateModel() {
|
|
822
|
+
_validateModel() {
|
|
823
|
+
//
|
|
824
|
+
}
|
|
825
825
|
_setModel(value) {
|
|
826
826
|
if (value) {
|
|
827
827
|
value.from = parseDate(value.from);
|
|
@@ -1069,19 +1069,22 @@ class AutocompleteItem extends BaseAutocompleteItem {
|
|
|
1069
1069
|
}
|
|
1070
1070
|
|
|
1071
1071
|
class CheckboxItem extends BaseItem {
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1072
|
+
_checked;
|
|
1073
|
+
_unchecked;
|
|
1074
|
+
constructor(config, _additionalConfig, filter) {
|
|
1075
|
+
super(config, null, filter);
|
|
1076
|
+
this.defaultValue = config.default === undefined ? this._unchecked : toString(this.defaultValue);
|
|
1077
|
+
this._checked = config.checked ? toString(config.checked) : true;
|
|
1078
|
+
this._unchecked = config.unchecked ? toString(config.unchecked) : false;
|
|
1076
1079
|
}
|
|
1077
1080
|
get isTypeCheckbox() {
|
|
1078
1081
|
return true;
|
|
1079
1082
|
}
|
|
1080
1083
|
get isChipVisible() {
|
|
1081
|
-
return this.value === this.
|
|
1084
|
+
return this.value === this._checked;
|
|
1082
1085
|
}
|
|
1083
1086
|
get value() {
|
|
1084
|
-
const value = this.model ? this.
|
|
1087
|
+
const value = this.model ? this._checked || 'true' : this._unchecked;
|
|
1085
1088
|
if (!value) {
|
|
1086
1089
|
return undefined;
|
|
1087
1090
|
}
|
|
@@ -1100,17 +1103,9 @@ class CheckboxItem extends BaseItem {
|
|
|
1100
1103
|
_validateModel() {
|
|
1101
1104
|
//
|
|
1102
1105
|
}
|
|
1103
|
-
_parseConfig(item) {
|
|
1104
|
-
this.checked = item.checked;
|
|
1105
|
-
this.unchecked = item.unchecked;
|
|
1106
|
-
this.checked = item.checked ? toString(item.checked) : true;
|
|
1107
|
-
this.unchecked = item.unchecked ? toString(item.unchecked) : false;
|
|
1108
|
-
this.defaultValue = item.default === undefined ? this.unchecked : toString(this.defaultValue);
|
|
1109
|
-
super._parseConfig(item);
|
|
1110
|
-
}
|
|
1111
1106
|
_init() {
|
|
1112
|
-
if (this.model === undefined) {
|
|
1113
|
-
this._model = this.
|
|
1107
|
+
if (this.model === undefined && this.defaultValue !== undefined) {
|
|
1108
|
+
this._model = this._checked === this.defaultValue;
|
|
1114
1109
|
}
|
|
1115
1110
|
}
|
|
1116
1111
|
_clearValue(defaultValue = undefined) {
|
|
@@ -1278,6 +1273,9 @@ class DateTimeItem extends BaseDateItem {
|
|
|
1278
1273
|
static create(config, filter) {
|
|
1279
1274
|
return new DateTimeItem(config, null, filter);
|
|
1280
1275
|
}
|
|
1276
|
+
getChipsContent() {
|
|
1277
|
+
return null;
|
|
1278
|
+
}
|
|
1281
1279
|
_clearValue(defaultValue = undefined) {
|
|
1282
1280
|
this.model = defaultValue ?? undefined;
|
|
1283
1281
|
}
|
|
@@ -1438,7 +1436,7 @@ function createFilterItem(item, config, filter) {
|
|
|
1438
1436
|
return AutocompleteChipsItem.create(item, filter);
|
|
1439
1437
|
}
|
|
1440
1438
|
case ItemType.Checkbox: {
|
|
1441
|
-
return CheckboxItem
|
|
1439
|
+
return new CheckboxItem(item, null, filter);
|
|
1442
1440
|
}
|
|
1443
1441
|
case ItemType.Keyword:
|
|
1444
1442
|
case ItemType.Text: {
|
|
@@ -1486,8 +1484,8 @@ var PickerViewType;
|
|
|
1486
1484
|
PickerViewType["MonthRange"] = "monthrange";
|
|
1487
1485
|
})(PickerViewType || (PickerViewType = {}));
|
|
1488
1486
|
|
|
1489
|
-
const
|
|
1490
|
-
const
|
|
1487
|
+
const SortByField = 'sortName';
|
|
1488
|
+
const SortDirectionField = 'sortDirection';
|
|
1491
1489
|
class FsFilterConfig {
|
|
1492
1490
|
load = true;
|
|
1493
1491
|
persist = false;
|
|
@@ -1497,7 +1495,6 @@ class FsFilterConfig {
|
|
|
1497
1495
|
chips = false;
|
|
1498
1496
|
sortValues = null;
|
|
1499
1497
|
sort = null;
|
|
1500
|
-
// public sortDirection = null;
|
|
1501
1498
|
queryParam = false;
|
|
1502
1499
|
init;
|
|
1503
1500
|
change;
|
|
@@ -1550,7 +1547,7 @@ class FsFilterConfig {
|
|
|
1550
1547
|
this.button.label = 'Filters';
|
|
1551
1548
|
}
|
|
1552
1549
|
if (this.button.icon === undefined) {
|
|
1553
|
-
this.button.icon = '
|
|
1550
|
+
this.button.icon = 'filterOutline';
|
|
1554
1551
|
}
|
|
1555
1552
|
if (this.button.style === undefined) {
|
|
1556
1553
|
this.button.style = ButtonStyle.Raised;
|
|
@@ -1570,9 +1567,8 @@ class FsFilterItemsStore {
|
|
|
1570
1567
|
keywordItem = null;
|
|
1571
1568
|
filter;
|
|
1572
1569
|
_ready$ = new BehaviorSubject(false);
|
|
1573
|
-
_items = [];
|
|
1574
1570
|
_visibleItems$ = new BehaviorSubject([]);
|
|
1575
|
-
|
|
1571
|
+
_items = new Map();
|
|
1576
1572
|
_itemsValuesLoaded = false;
|
|
1577
1573
|
_hasKeyword = false;
|
|
1578
1574
|
_config;
|
|
@@ -1582,10 +1578,10 @@ class FsFilterItemsStore {
|
|
|
1582
1578
|
this._lazyInit();
|
|
1583
1579
|
}
|
|
1584
1580
|
get items() {
|
|
1585
|
-
return this._items;
|
|
1581
|
+
return Array.from(this._items.values());
|
|
1586
1582
|
}
|
|
1587
1583
|
get itemNames() {
|
|
1588
|
-
return this.
|
|
1584
|
+
return this.items.map((item) => item.name);
|
|
1589
1585
|
}
|
|
1590
1586
|
get visibleItems() {
|
|
1591
1587
|
return this._visibleItems$.getValue();
|
|
@@ -1611,12 +1607,11 @@ class FsFilterItemsStore {
|
|
|
1611
1607
|
this._destroy$.complete();
|
|
1612
1608
|
}
|
|
1613
1609
|
setConfig(config) {
|
|
1614
|
-
this._itemsByName.clear();
|
|
1615
1610
|
this._config = config;
|
|
1616
1611
|
this.initItems(config.items);
|
|
1617
1612
|
}
|
|
1618
1613
|
getItemByName(name) {
|
|
1619
|
-
return this.
|
|
1614
|
+
return this._items.get(name);
|
|
1620
1615
|
}
|
|
1621
1616
|
initItems(items) {
|
|
1622
1617
|
this._itemsValuesLoaded = false;
|
|
@@ -1738,7 +1733,7 @@ class FsFilterItemsStore {
|
|
|
1738
1733
|
});
|
|
1739
1734
|
if (onlyPresented) {
|
|
1740
1735
|
return pickBy(params, (val) => {
|
|
1741
|
-
return val !==
|
|
1736
|
+
return val !== undefined;
|
|
1742
1737
|
});
|
|
1743
1738
|
}
|
|
1744
1739
|
return params;
|
|
@@ -1785,7 +1780,7 @@ class FsFilterItemsStore {
|
|
|
1785
1780
|
.forEach((item) => item.destroy());
|
|
1786
1781
|
this.sortByItem?.destroy();
|
|
1787
1782
|
this.sortDirectionItem?.destroy();
|
|
1788
|
-
this._items
|
|
1783
|
+
this._items.clear();
|
|
1789
1784
|
this.sortByItem = null;
|
|
1790
1785
|
this.sortDirectionItem = null;
|
|
1791
1786
|
}
|
|
@@ -1803,25 +1798,22 @@ class FsFilterItemsStore {
|
|
|
1803
1798
|
.filter((item) => !item.isTypeKeyword && !item.hide);
|
|
1804
1799
|
}
|
|
1805
1800
|
_createItems(items) {
|
|
1806
|
-
this._items = items
|
|
1801
|
+
this._items = new Map(items
|
|
1807
1802
|
.filter((item) => !item.disable)
|
|
1808
1803
|
.filter((item) => {
|
|
1809
|
-
if (this.
|
|
1804
|
+
if (this._items.has(item.name)) {
|
|
1810
1805
|
throw Error('Filter init error. Items name must be unique.');
|
|
1811
1806
|
}
|
|
1812
|
-
|
|
1813
|
-
this._itemsByName.set(item.name, null);
|
|
1814
|
-
return true;
|
|
1815
|
-
}
|
|
1807
|
+
return true;
|
|
1816
1808
|
})
|
|
1817
1809
|
.map((item) => {
|
|
1818
1810
|
const filterItem = createFilterItem(item, { case: this._config.case }, this.filter);
|
|
1819
1811
|
if (filterItem.type === ItemType.Keyword) {
|
|
1820
1812
|
this._hasKeyword = true;
|
|
1821
1813
|
}
|
|
1822
|
-
this.
|
|
1823
|
-
return filterItem;
|
|
1824
|
-
});
|
|
1814
|
+
this._items.set(item.name, filterItem);
|
|
1815
|
+
return [item.name, filterItem];
|
|
1816
|
+
}));
|
|
1825
1817
|
this._createSortingItems();
|
|
1826
1818
|
}
|
|
1827
1819
|
_subscribeToItemsChanges() {
|
|
@@ -1863,7 +1855,7 @@ class FsFilterItemsStore {
|
|
|
1863
1855
|
_createSortingItems() {
|
|
1864
1856
|
if (this._config.sortValues?.length > 0) {
|
|
1865
1857
|
const sortByItem = {
|
|
1866
|
-
name:
|
|
1858
|
+
name: SortByField,
|
|
1867
1859
|
type: ItemType.Select,
|
|
1868
1860
|
label: 'Sort by',
|
|
1869
1861
|
values: this._config.sortValues,
|
|
@@ -1873,7 +1865,7 @@ class FsFilterItemsStore {
|
|
|
1873
1865
|
}
|
|
1874
1866
|
this.sortByItem = new SimpleSelectItem(sortByItem, null, this.filter);
|
|
1875
1867
|
const sortDirectionItem = {
|
|
1876
|
-
name:
|
|
1868
|
+
name: SortDirectionField,
|
|
1877
1869
|
type: ItemType.Select,
|
|
1878
1870
|
label: 'Sort direction',
|
|
1879
1871
|
values: [
|
|
@@ -1899,13 +1891,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
1899
1891
|
type: Injectable
|
|
1900
1892
|
}], ctorParameters: () => [] });
|
|
1901
1893
|
|
|
1902
|
-
const FILTER_STORE_KEY = 'fs-filter-persist';
|
|
1903
1894
|
class PersistanceParamsController extends FsPersistanceStore {
|
|
1904
1895
|
_location;
|
|
1905
1896
|
_itemsStore;
|
|
1906
1897
|
_dialogRef;
|
|
1907
1898
|
_drawerRef;
|
|
1908
|
-
STORE_KEY = FILTER_STORE_KEY;
|
|
1909
1899
|
_paramsCase;
|
|
1910
1900
|
constructor(_store, _route, _location, _itemsStore, _dialogRef, _drawerRef) {
|
|
1911
1901
|
super(_store, _route);
|
|
@@ -2677,30 +2667,20 @@ class FsFilterChipContentComponent {
|
|
|
2677
2667
|
if (this.item.chipLabel === '') {
|
|
2678
2668
|
return `${result}`;
|
|
2679
2669
|
}
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
const label = getLabelFromArray(this.item.chipLabel, this.type);
|
|
2683
|
-
return `${label}: ${result}`;
|
|
2684
|
-
}
|
|
2685
|
-
else {
|
|
2686
|
-
return `${this.item.chipLabel}: ${result}`;
|
|
2687
|
-
}
|
|
2688
|
-
}
|
|
2689
|
-
}
|
|
2690
|
-
else {
|
|
2691
|
-
if (Array.isArray(this.item.label)) {
|
|
2692
|
-
const label = getLabelFromArray(this.item.label, this.type);
|
|
2670
|
+
if (Array.isArray(this.item.chipLabel)) {
|
|
2671
|
+
const label = getLabelFromArray(this.item.chipLabel, this.type);
|
|
2693
2672
|
return `${label}: ${result}`;
|
|
2694
2673
|
}
|
|
2695
|
-
|
|
2696
|
-
if (this.item.isTypeCheckbox) {
|
|
2697
|
-
return result;
|
|
2698
|
-
}
|
|
2699
|
-
else {
|
|
2700
|
-
return `${this.item.label}: ${result}`;
|
|
2701
|
-
}
|
|
2702
|
-
}
|
|
2674
|
+
return `${this.item.chipLabel}: ${result}`;
|
|
2703
2675
|
}
|
|
2676
|
+
if (Array.isArray(this.item.label)) {
|
|
2677
|
+
const label = getLabelFromArray(this.item.label, this.type);
|
|
2678
|
+
return `${label}: ${result}`;
|
|
2679
|
+
}
|
|
2680
|
+
if (this.item.isTypeCheckbox) {
|
|
2681
|
+
return result;
|
|
2682
|
+
}
|
|
2683
|
+
return `${this.item.label}: ${result}`;
|
|
2704
2684
|
}
|
|
2705
2685
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFilterChipContentComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2706
2686
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFilterChipContentComponent, selector: "fs-filter-chip-content", inputs: { item: "item", type: "type" }, ngImport: i0, template: "{{ content }}\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
@@ -2720,9 +2700,7 @@ function getLabelFromArray(labelArr, type) {
|
|
|
2720
2700
|
else if (type === 'to' && labelArr[1]) {
|
|
2721
2701
|
return `${labelArr[1]}`;
|
|
2722
2702
|
}
|
|
2723
|
-
|
|
2724
|
-
return '';
|
|
2725
|
-
}
|
|
2703
|
+
return '';
|
|
2726
2704
|
}
|
|
2727
2705
|
|
|
2728
2706
|
class FocusControllerService {
|
|
@@ -2833,11 +2811,11 @@ class FsFilterChipsComponent {
|
|
|
2833
2811
|
filters;
|
|
2834
2812
|
ItemType = ItemType;
|
|
2835
2813
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFilterChipsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2836
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFilterChipsComponent, selector: "fs-filter-chips", inputs: { filters: "filters" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of filters\">\n <ng-container *ngIf=\"(item.value$ | async) !== undefined && item.type !== ItemType.Keyword\">\n <fs-filter-chip [item]=\"item\"></fs-filter-chip>\n </ng-container>\n</ng-container
|
|
2814
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FsFilterChipsComponent, selector: "fs-filter-chips", inputs: { filters: "filters" }, ngImport: i0, template: "<ng-container *ngFor=\"let item of filters\">\n <ng-container *ngIf=\"(item.value$ | async) !== undefined && item.type !== ItemType.Keyword\">\n <fs-filter-chip [item]=\"item\"></fs-filter-chip>\n </ng-container>\n</ng-container>", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FsFilterChipComponent, selector: "fs-filter-chip", inputs: ["item"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2837
2815
|
}
|
|
2838
2816
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FsFilterChipsComponent, decorators: [{
|
|
2839
2817
|
type: Component,
|
|
2840
|
-
args: [{ selector: 'fs-filter-chips', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let item of filters\">\n <ng-container *ngIf=\"(item.value$ | async) !== undefined && item.type !== ItemType.Keyword\">\n <fs-filter-chip [item]=\"item\"></fs-filter-chip>\n </ng-container>\n</ng-container
|
|
2818
|
+
args: [{ selector: 'fs-filter-chips', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngFor=\"let item of filters\">\n <ng-container *ngIf=\"(item.value$ | async) !== undefined && item.type !== ItemType.Keyword\">\n <fs-filter-chip [item]=\"item\"></fs-filter-chip>\n </ng-container>\n</ng-container>" }]
|
|
2841
2819
|
}], propDecorators: { filters: [{
|
|
2842
2820
|
type: Input
|
|
2843
2821
|
}] } });
|
|
@@ -2890,6 +2868,12 @@ class BaseItemComponent {
|
|
|
2890
2868
|
this._kvDiffer = this._kvDiffers.find(this.item || {}).create();
|
|
2891
2869
|
this.listenWithDebounce();
|
|
2892
2870
|
}
|
|
2871
|
+
get destroy$() {
|
|
2872
|
+
return this._destroy$.asObservable();
|
|
2873
|
+
}
|
|
2874
|
+
destroy() {
|
|
2875
|
+
return this._destroy$.asObservable();
|
|
2876
|
+
}
|
|
2893
2877
|
ngDoCheck() {
|
|
2894
2878
|
if (this._kvDiffer) {
|
|
2895
2879
|
const changes = this._kvDiffer.diff(this.item);
|
|
@@ -3113,19 +3097,14 @@ class SelectSimpleComponent {
|
|
|
3113
3097
|
}
|
|
3114
3098
|
}
|
|
3115
3099
|
isolateChange(filter) {
|
|
3116
|
-
|
|
3117
|
-
filter.model = filter.isolate.value;
|
|
3118
|
-
}
|
|
3119
|
-
else {
|
|
3120
|
-
filter.model = null;
|
|
3121
|
-
}
|
|
3100
|
+
filter.model = filter.isolate.enabled ? filter.isolate.value : null;
|
|
3122
3101
|
}
|
|
3123
3102
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SelectSimpleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3124
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: SelectSimpleComponent, selector: "filter-item-select-simple", inputs: { item: "item" }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field [ngClass]=\"{ isolate: item.isolate }\">\n <mat-label>{{item.label}}</mat-label>\n <mat-select\n
|
|
3103
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: SelectSimpleComponent, selector: "filter-item-select-simple", inputs: { item: "item" }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field [ngClass]=\"{ isolate: item.isolate }\">\n <mat-label>{{item.label}}</mat-label>\n <mat-select\n #select\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n (ngModelChange)=\"changed()\">\n <mat-option \n *ngFor=\"let item of item.values | fsFilterIsolateValues: item.isolate\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n\n <mat-hint>\n <div *ngIf=\"item.isolate\">\n <mat-checkbox (change)=\"isolateChange(item)\" [(ngModel)]=\"item.isolate.enabled\">\n <span class=\"checkbox-label\">{{ item.isolate.label }}</span>\n </mat-checkbox>\n </div>\n </mat-hint>\n</mat-form-field>\n", styles: [".isolate{margin-bottom:25px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i6$2.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: "directive", type: i9.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: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { kind: "pipe", type: FsFilterIsolateValues, name: "fsFilterIsolateValues" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3125
3104
|
}
|
|
3126
3105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SelectSimpleComponent, decorators: [{
|
|
3127
3106
|
type: Component,
|
|
3128
|
-
args: [{ selector: 'filter-item-select-simple', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [ngClass]=\"{ isolate: item.isolate }\">\n <mat-label>{{item.label}}</mat-label>\n <mat-select\n
|
|
3107
|
+
args: [{ selector: 'filter-item-select-simple', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field [ngClass]=\"{ isolate: item.isolate }\">\n <mat-label>{{item.label}}</mat-label>\n <mat-select\n #select\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n (ngModelChange)=\"changed()\">\n <mat-option \n *ngFor=\"let item of item.values | fsFilterIsolateValues: item.isolate\"\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n </mat-select>\n\n <mat-hint>\n <div *ngIf=\"item.isolate\">\n <mat-checkbox (change)=\"isolateChange(item)\" [(ngModel)]=\"item.isolate.enabled\">\n <span class=\"checkbox-label\">{{ item.isolate.label }}</span>\n </mat-checkbox>\n </div>\n </mat-hint>\n</mat-form-field>\n", styles: [".isolate{margin-bottom:25px}\n"] }]
|
|
3129
3108
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { item: [{
|
|
3130
3109
|
type: Input
|
|
3131
3110
|
}], select: [{
|
|
@@ -3252,7 +3231,6 @@ class TextComponent extends BaseItemComponent {
|
|
|
3252
3231
|
_kvDiffers;
|
|
3253
3232
|
_cd;
|
|
3254
3233
|
textControl = new UntypedFormControl();
|
|
3255
|
-
destroy$ = new Subject();
|
|
3256
3234
|
constructor(_kvDiffers, _cd) {
|
|
3257
3235
|
super(_kvDiffers, _cd);
|
|
3258
3236
|
this._kvDiffers = _kvDiffers;
|
|
@@ -3262,10 +3240,6 @@ class TextComponent extends BaseItemComponent {
|
|
|
3262
3240
|
this._listenControlValueChanges();
|
|
3263
3241
|
this._listenModelChanges();
|
|
3264
3242
|
}
|
|
3265
|
-
ngOnDestroy() {
|
|
3266
|
-
this.destroy$.next(null);
|
|
3267
|
-
this.destroy$.complete();
|
|
3268
|
-
}
|
|
3269
3243
|
_listenControlValueChanges() {
|
|
3270
3244
|
this.textControl.valueChanges
|
|
3271
3245
|
.pipe(distinctUntilChanged(), debounceTime(200), takeUntil(this.destroy$))
|
|
@@ -3324,7 +3298,7 @@ class RangeComponent extends BaseItemComponent {
|
|
|
3324
3298
|
const toListener = fromEvent(this.to.nativeElement, 'keyup')
|
|
3325
3299
|
.pipe(distinctUntilChanged());
|
|
3326
3300
|
merge(fromListener, toListener)
|
|
3327
|
-
.pipe(takeUntil(this.
|
|
3301
|
+
.pipe(takeUntil(this.destroy$))
|
|
3328
3302
|
.subscribe(() => {
|
|
3329
3303
|
this.itemChange();
|
|
3330
3304
|
});
|
|
@@ -3394,7 +3368,7 @@ class AutocompletechipsComponent extends BaseItemComponent {
|
|
|
3394
3368
|
return item1?.value === item2?.value;
|
|
3395
3369
|
}
|
|
3396
3370
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AutocompletechipsComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3397
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: AutocompletechipsComponent, selector: "filter-item-autocompletechips", usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [ngModel]=\"item.model\"\n (selected)=\"addAutocompleteChipItem($event)\"\n (removed)=\"removeAutocompleteChipItem($event)\"\n (clear)=\"clearAutocompleteChipItem()\"\n [allowText]=\"false\"\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.showClear\"\n [removable]=\"item.showClear\"\n [compareWith]=\"compareItems\"\n [panelWidth]=\"300\"\n name=\"model\">\n <ng-template fsAutocompleteObject let-object=\"object\">\n {{ object.name }}\n </ng-template>\n</fs-autocomplete-chips>", dependencies: [{ kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5$1.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "appearance", "floatLabel", "readonly", "size", "label", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "hint", "allowText", "allowObject", "delay", "validateText", "removable", "allowClear", "color", "background", "orderable", "limit", "initOnClick", "fetchOnFocus", "multiple", "confirm", "disabled", "panelWidth", "panelClass", "compareWith"], outputs: ["selected", "removed", "reordered", "clear"] }, { kind: "directive", type: i5$1.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }, { kind: "directive", type: i9.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: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3371
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: AutocompletechipsComponent, selector: "filter-item-autocompletechips", usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [ngModel]=\"item.model\"\n (selected)=\"addAutocompleteChipItem($event)\"\n (removed)=\"removeAutocompleteChipItem($event)\"\n (clear)=\"clearAutocompleteChipItem()\"\n [allowText]=\"false\"\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.showClear\"\n [removable]=\"item.showClear\"\n [compareWith]=\"compareItems\"\n [panelWidth]=\"300\"\n name=\"model\">\n <ng-template fsAutocompleteObject let-object=\"object\">\n {{ object.name }}\n </ng-template>\n</fs-autocomplete-chips>", dependencies: [{ kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5$1.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "appearance", "floatLabel", "readonly", "size", "label", "placeholder", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "hint", "allowText", "allowObject", "delay", "validateText", "removable", "allowClear", "color", "background", "orderable", "limit", "initOnClick", "fetchOnFocus", "multiple", "confirm", "disabled", "panelWidth", "panelClass", "compareWith"], outputs: ["selected", "removed", "reordered", "clear"] }, { kind: "directive", type: i5$1.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }, { kind: "directive", type: i9.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: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3398
3372
|
}
|
|
3399
3373
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AutocompletechipsComponent, decorators: [{
|
|
3400
3374
|
type: Component,
|
|
@@ -3415,22 +3389,17 @@ class DateComponent extends BaseItemComponent {
|
|
|
3415
3389
|
this._cd = _cd;
|
|
3416
3390
|
}
|
|
3417
3391
|
ngOnInit() {
|
|
3418
|
-
|
|
3419
|
-
this.viewType = PickerViewType.DateTime;
|
|
3420
|
-
}
|
|
3421
|
-
else {
|
|
3422
|
-
this.viewType = PickerViewType.Date;
|
|
3423
|
-
}
|
|
3392
|
+
this.viewType = this.item.type === ItemType.DateTime ? PickerViewType.DateTime : PickerViewType.Date;
|
|
3424
3393
|
if (this.item.mode === ItemDateMode.ScrollMonthYear) {
|
|
3425
3394
|
this.showDay = false;
|
|
3426
3395
|
}
|
|
3427
3396
|
}
|
|
3428
3397
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3429
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: DateComponent, selector: "filter-item-date", usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"item.mode===itemDateMode.Calendar; else elseMode\">\n <mat-label>{{item.label}}</mat-label>\n <input
|
|
3398
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: DateComponent, selector: "filter-item-date", usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"item.mode===itemDateMode.Calendar; else elseMode\">\n <mat-label>{{item.label}}</mat-label>\n <input\n matInput\n fsDatePicker\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [maxYear]=\"item.maxYear\"\n [view]=\"viewType\"\n [placeholder]=\"item.label\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n</mat-form-field>\n\n<ng-template #elseMode>\n <mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <input \n matInput\n fsDateScrollPicker\n [placeholder]=\"item.label\"\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [maxYear]=\"item.maxYear\"\n [showMonth]=\"showMonth\"\n [showDay]=\"showDay\"\n [showYear]=\"showYear\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n </mat-form-field>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "component", type: i3$4.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes"], outputs: ["change"] }, { kind: "component", type: i3$4.FsDateScrollPickerComponent, selector: "[fsDateScrollPicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "showMonth", "showYear", "showDay"] }, { kind: "directive", type: i9.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: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3430
3399
|
}
|
|
3431
3400
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DateComponent, decorators: [{
|
|
3432
3401
|
type: Component,
|
|
3433
|
-
args: [{ selector: 'filter-item-date', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field *ngIf=\"item.mode===itemDateMode.Calendar; else elseMode\">\n <mat-label>{{item.label}}</mat-label>\n <input
|
|
3402
|
+
args: [{ selector: 'filter-item-date', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field *ngIf=\"item.mode===itemDateMode.Calendar; else elseMode\">\n <mat-label>{{item.label}}</mat-label>\n <input\n matInput\n fsDatePicker\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [maxYear]=\"item.maxYear\"\n [view]=\"viewType\"\n [placeholder]=\"item.label\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n</mat-form-field>\n\n<ng-template #elseMode>\n <mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <input \n matInput\n fsDateScrollPicker\n [placeholder]=\"item.label\"\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [maxYear]=\"item.maxYear\"\n [showMonth]=\"showMonth\"\n [showDay]=\"showDay\"\n [showYear]=\"showYear\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n </mat-form-field>\n</ng-template>\n" }]
|
|
3434
3403
|
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }] });
|
|
3435
3404
|
|
|
3436
3405
|
class DateRangeComponent extends BaseItemComponent {
|
|
@@ -3467,11 +3436,11 @@ class CheckboxComponent extends BaseItemComponent {
|
|
|
3467
3436
|
this._cd = _cd;
|
|
3468
3437
|
}
|
|
3469
3438
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3470
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CheckboxComponent, selector: "filter-item-checkbox", usesInheritance: true, ngImport: i0, template: "<fs-label-field>\n <mat-checkbox [(ngModel)]=\"item.model\">\n {{ item.label }}\n </mat-checkbox>\n</fs-label-field
|
|
3439
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CheckboxComponent, selector: "filter-item-checkbox", usesInheritance: true, ngImport: i0, template: "<fs-label-field>\n <mat-checkbox \n [(ngModel)]=\"item.model\" \n [name]=\"item.name\">\n {{ item.label }}\n </mat-checkbox>\n</fs-label-field>", styles: ["fs-label-field{margin:0}\n"], dependencies: [{ kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6$2.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: "component", type: i4$2.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { kind: "directive", type: i9.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 });
|
|
3471
3440
|
}
|
|
3472
3441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
3473
3442
|
type: Component,
|
|
3474
|
-
args: [{ selector: 'filter-item-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-label-field>\n <mat-checkbox [(ngModel)]=\"item.model\">\n {{ item.label }}\n </mat-checkbox>\n</fs-label-field
|
|
3443
|
+
args: [{ selector: 'filter-item-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-label-field>\n <mat-checkbox \n [(ngModel)]=\"item.model\" \n [name]=\"item.name\">\n {{ item.label }}\n </mat-checkbox>\n</fs-label-field>", styles: ["fs-label-field{margin:0}\n"] }]
|
|
3475
3444
|
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }] });
|
|
3476
3445
|
|
|
3477
3446
|
class FilterItemComponent {
|
|
@@ -3584,11 +3553,11 @@ class FilterDrawerComponent {
|
|
|
3584
3553
|
this.done();
|
|
3585
3554
|
}
|
|
3586
3555
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FilterDrawerComponent, deps: [{ token: FILTER_DRAWER_OVERLAY }, { token: FILTER_DRAWER_DATA }, { token: ExternalParamsController }, { token: i0.ChangeDetectorRef }, { token: FsFilterItemsStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
3587
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FilterDrawerComponent, selector: "ng-component", inputs: { inline: "inline" }, host: { listeners: { "window:resize": "updateWindowWidth()" } }, ngImport: i0, template: "<div class=\"filters\">\n <div class=\"filters-wrap\">\n\n <div class=\"filter-by\">\n <mat-icon
|
|
3556
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FilterDrawerComponent, selector: "ng-component", inputs: { inline: "inline" }, host: { listeners: { "window:resize": "updateWindowWidth()" } }, ngImport: i0, template: "<div class=\"filters\">\n <div class=\"filters-wrap\">\n\n <div class=\"filter-by\">\n <mat-icon svgIcon=\"filterOutline\"></mat-icon>\n <span class=\"text\">Filters</span>\n </div>\n\n <div class=\"overflow-shadow filter-items\">\n <div class=\"overflow-shadow-content\">\n <ng-container *fsSkeleton=\"(externalParams.pending$ | async) !== true\">\n <filter-item \n *ngFor=\"let filterItem of items$ | async\"\n class=\"filter-group\"\n [item]=\"filterItem\">\n </filter-item>\n\n <ng-container *ngIf=\"sortItem && sortItem.values && sortItem.values.length > 0\">\n <filter-item \n class=\"filter-group sort\"\n [item]=\"sortItem\">\n </filter-item>\n <filter-item \n class=\"filter-group sort\"\n [item]=\"sortDirectionItem\">\n </filter-item>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <fs-filter-drawer-actions \n class=\"filter-actions\"\n *ngIf=\"(externalParams.pending$ | async) !== true\"\n (clear)=\"clear()\"\n (done)=\"done()\">\n </fs-filter-drawer-actions>\n </div>\n</div>\n<div class=\"backdrop\" *ngIf=\"!windowDesktop\" (click)=\"backdropClick()\"></div>\n", styles: ["@charset \"UTF-8\";@media (max-width: 599px){h1[class*=\".top\"][fs\\.lt-xs*=fs-heading][fs\\.lt-xs*=\".top-none\"],h2[class*=\".top\"][fs\\.lt-xs*=fs-heading][fs\\.lt-xs*=\".top-none\"],h3[class*=\".top\"][fs\\.lt-xs*=fs-heading][fs\\.lt-xs*=\".top-none\"]{margin-top:0}}@media (max-width: 1023px){h1[class*=\".top\"][fs\\.lt-sm*=fs-heading][fs\\.lt-sm*=\".top-none\"],h2[class*=\".top\"][fs\\.lt-sm*=fs-heading][fs\\.lt-sm*=\".top-none\"],h3[class*=\".top\"][fs\\.lt-sm*=fs-heading][fs\\.lt-sm*=\".top-none\"]{margin-top:0}}@media (max-width: 1439px){h1[class*=\".top\"][fs\\.lt-md*=fs-heading][fs\\.lt-md*=\".top-none\"],h2[class*=\".top\"][fs\\.lt-md*=fs-heading][fs\\.lt-md*=\".top-none\"],h3[class*=\".top\"][fs\\.lt-md*=fs-heading][fs\\.lt-md*=\".top-none\"]{margin-top:0}}.fs-delimit>*:not(:last-child):after{content:\",\\a0\"}:host ::ng-deep mat-form-field{width:100%}.filter-by{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 25px}.filter-by mat-icon{margin-right:8px}.filter-by .text{font-weight:400;font-size:19px}.filter-actions{display:block;box-sizing:border-box;padding:13px}.filter-actions button{margin-right:6px}.filter-actions button:last-child{margin-right:0}.filters{position:fixed;display:block;top:0;right:0;z-index:1002;bottom:0}.filters .filters-wrap{background:#fff;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;width:100vw;max-width:350px;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);box-sizing:border-box;height:100%}.filters .filters-wrap .filter-items{padding-top:5px;overflow-y:auto;height:auto}.filters .filters-wrap .filter-items .overflow-shadow-content{padding:0 25px;box-sizing:border-box}.filters .filter-group{margin:10px 0 0}.filters .filter-group:first-child{margin:0}.filters .filter label{white-space:nowrap;color:#0000008a}.filters .filter .interface.interface-range input,.filters .filter .interface.interface-range .mat-input-wrapper,.filters .filter .interface.interface-range{text-align:center}.filters .filter .interface.interface-datetime fs-datetime.has-time .md-input{width:100%}.filters .filter .interface fs-datetime-range input{text-align:center}.filters .filter .filter-label{width:1%;white-space:nowrap;vertical-align:middle;padding-right:15px}.filters md-autocomplete-container md-input-container{margin:0}.filters .isolate{margin-top:-12px}.filters .isolate .interface{line-height:20px;padding-bottom:1.25em}.filters .isolate md-checkbox{margin:0 0 0 2px}.backdrop{position:fixed;inset:0;z-index:900;outline:none}@media (max-width: 599px){.filters .filters-wrap{max-width:none}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5$2.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "component", type: FilterItemComponent, selector: "filter-item", inputs: ["item"] }, { kind: "component", type: FsFilterDrawerActionsComponent, selector: "fs-filter-drawer-actions", outputs: ["clear", "done"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3588
3557
|
}
|
|
3589
3558
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FilterDrawerComponent, decorators: [{
|
|
3590
3559
|
type: Component,
|
|
3591
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filters\">\n <div class=\"filters-wrap\">\n\n <div class=\"filter-by\">\n <mat-icon
|
|
3560
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filters\">\n <div class=\"filters-wrap\">\n\n <div class=\"filter-by\">\n <mat-icon svgIcon=\"filterOutline\"></mat-icon>\n <span class=\"text\">Filters</span>\n </div>\n\n <div class=\"overflow-shadow filter-items\">\n <div class=\"overflow-shadow-content\">\n <ng-container *fsSkeleton=\"(externalParams.pending$ | async) !== true\">\n <filter-item \n *ngFor=\"let filterItem of items$ | async\"\n class=\"filter-group\"\n [item]=\"filterItem\">\n </filter-item>\n\n <ng-container *ngIf=\"sortItem && sortItem.values && sortItem.values.length > 0\">\n <filter-item \n class=\"filter-group sort\"\n [item]=\"sortItem\">\n </filter-item>\n <filter-item \n class=\"filter-group sort\"\n [item]=\"sortDirectionItem\">\n </filter-item>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <fs-filter-drawer-actions \n class=\"filter-actions\"\n *ngIf=\"(externalParams.pending$ | async) !== true\"\n (clear)=\"clear()\"\n (done)=\"done()\">\n </fs-filter-drawer-actions>\n </div>\n</div>\n<div class=\"backdrop\" *ngIf=\"!windowDesktop\" (click)=\"backdropClick()\"></div>\n", styles: ["@charset \"UTF-8\";@media (max-width: 599px){h1[class*=\".top\"][fs\\.lt-xs*=fs-heading][fs\\.lt-xs*=\".top-none\"],h2[class*=\".top\"][fs\\.lt-xs*=fs-heading][fs\\.lt-xs*=\".top-none\"],h3[class*=\".top\"][fs\\.lt-xs*=fs-heading][fs\\.lt-xs*=\".top-none\"]{margin-top:0}}@media (max-width: 1023px){h1[class*=\".top\"][fs\\.lt-sm*=fs-heading][fs\\.lt-sm*=\".top-none\"],h2[class*=\".top\"][fs\\.lt-sm*=fs-heading][fs\\.lt-sm*=\".top-none\"],h3[class*=\".top\"][fs\\.lt-sm*=fs-heading][fs\\.lt-sm*=\".top-none\"]{margin-top:0}}@media (max-width: 1439px){h1[class*=\".top\"][fs\\.lt-md*=fs-heading][fs\\.lt-md*=\".top-none\"],h2[class*=\".top\"][fs\\.lt-md*=fs-heading][fs\\.lt-md*=\".top-none\"],h3[class*=\".top\"][fs\\.lt-md*=fs-heading][fs\\.lt-md*=\".top-none\"]{margin-top:0}}.fs-delimit>*:not(:last-child):after{content:\",\\a0\"}:host ::ng-deep mat-form-field{width:100%}.filter-by{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 25px}.filter-by mat-icon{margin-right:8px}.filter-by .text{font-weight:400;font-size:19px}.filter-actions{display:block;box-sizing:border-box;padding:13px}.filter-actions button{margin-right:6px}.filter-actions button:last-child{margin-right:0}.filters{position:fixed;display:block;top:0;right:0;z-index:1002;bottom:0}.filters .filters-wrap{background:#fff;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;width:100vw;max-width:350px;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);box-sizing:border-box;height:100%}.filters .filters-wrap .filter-items{padding-top:5px;overflow-y:auto;height:auto}.filters .filters-wrap .filter-items .overflow-shadow-content{padding:0 25px;box-sizing:border-box}.filters .filter-group{margin:10px 0 0}.filters .filter-group:first-child{margin:0}.filters .filter label{white-space:nowrap;color:#0000008a}.filters .filter .interface.interface-range input,.filters .filter .interface.interface-range .mat-input-wrapper,.filters .filter .interface.interface-range{text-align:center}.filters .filter .interface.interface-datetime fs-datetime.has-time .md-input{width:100%}.filters .filter .interface fs-datetime-range input{text-align:center}.filters .filter .filter-label{width:1%;white-space:nowrap;vertical-align:middle;padding-right:15px}.filters md-autocomplete-container md-input-container{margin:0}.filters .isolate{margin-top:-12px}.filters .isolate .interface{line-height:20px;padding-bottom:1.25em}.filters .isolate md-checkbox{margin:0 0 0 2px}.backdrop{position:fixed;inset:0;z-index:900;outline:none}@media (max-width: 599px){.filters .filters-wrap{max-width:none}}\n"] }]
|
|
3592
3561
|
}], ctorParameters: () => [{ type: i1$3.OverlayRef, decorators: [{
|
|
3593
3562
|
type: Inject,
|
|
3594
3563
|
args: [FILTER_DRAWER_OVERLAY]
|
|
@@ -3874,7 +3843,6 @@ class FilterComponent {
|
|
|
3874
3843
|
_filterItems;
|
|
3875
3844
|
_actions;
|
|
3876
3845
|
_savedFiltersController;
|
|
3877
|
-
_externalParamsController;
|
|
3878
3846
|
set setConfig(config) {
|
|
3879
3847
|
this._initFilterWithConfig(config);
|
|
3880
3848
|
}
|
|
@@ -3905,7 +3873,7 @@ class FilterComponent {
|
|
|
3905
3873
|
_hasFilterChips$ = new BehaviorSubject(false);
|
|
3906
3874
|
_keyword$ = new Subject();
|
|
3907
3875
|
_destroy$ = new Subject();
|
|
3908
|
-
constructor(_defaultConfig, _filterOverlay, _zone, _externalParams, _filterItems, _actions, _savedFiltersController
|
|
3876
|
+
constructor(_defaultConfig, _filterOverlay, _zone, _externalParams, _filterItems, _actions, _savedFiltersController) {
|
|
3909
3877
|
this._defaultConfig = _defaultConfig;
|
|
3910
3878
|
this._filterOverlay = _filterOverlay;
|
|
3911
3879
|
this._zone = _zone;
|
|
@@ -3913,10 +3881,13 @@ class FilterComponent {
|
|
|
3913
3881
|
this._filterItems = _filterItems;
|
|
3914
3882
|
this._actions = _actions;
|
|
3915
3883
|
this._savedFiltersController = _savedFiltersController;
|
|
3916
|
-
this._externalParamsController = _externalParamsController;
|
|
3917
3884
|
this._filterItems.filter = this;
|
|
3918
3885
|
this._listenWhenFilterReady();
|
|
3919
3886
|
this._updateWindowWidth();
|
|
3887
|
+
const iconRegistry = inject(MatIconRegistry);
|
|
3888
|
+
const sanitizer = inject(DomSanitizer);
|
|
3889
|
+
const filterAlt = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px"><path d="M440-160q-17 0-28.5-11.5T400-200v-240L168-736q-15-20-4.5-42t36.5-22h560q26 0 36.5 22t-4.5 42L560-440v240q0 17-11.5 28.5T520-160h-80Zm40-308 198-252H282l198 252Zm0 0Z"/></svg>';
|
|
3890
|
+
iconRegistry.addSvgIconLiteral('filterOutline', sanitizer.bypassSecurityTrustHtml(filterAlt));
|
|
3920
3891
|
this._filterOverlay.attach$
|
|
3921
3892
|
.pipe(takeUntil(this._destroy$))
|
|
3922
3893
|
.subscribe(() => {
|
|
@@ -4390,8 +4361,8 @@ class FilterComponent {
|
|
|
4390
4361
|
});
|
|
4391
4362
|
this._hasFilterChips$.next(hasFilterChips);
|
|
4392
4363
|
}
|
|
4393
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FilterComponent, deps: [{ token: FS_FILTER_CONFIG, optional: true }, { token: FsFilterOverlayService }, { token: i0.NgZone }, { token: ExternalParamsController }, { token: FsFilterItemsStore }, { token: ActionsController }, { token: SavedFiltersController }
|
|
4394
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
4364
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FilterComponent, deps: [{ token: FS_FILTER_CONFIG, optional: true }, { token: FsFilterOverlayService }, { token: i0.NgZone }, { token: ExternalParamsController }, { token: FsFilterItemsStore }, { token: ActionsController }, { token: SavedFiltersController }], target: i0.ɵɵFactoryTarget.Component });
|
|
4365
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: FilterComponent, selector: "fs-filter", inputs: { setConfig: ["config", "setConfig"], setFilter: ["filter", "setFilter"], showSortBy: "showSortBy", showFilterInput: "showFilterInput" }, outputs: { closed: "closed", opened: "opened", ready: "ready" }, host: { properties: { "class.filters-open": "this.showFilterMenu", "class.window-desktop": "this.windowDesktop", "class.fs-filter": "this.fsFilterClass", "class.has-keyword": "this.hasKeyword" } }, providers: [
|
|
4395
4366
|
FsFilterOverlayService,
|
|
4396
4367
|
ExternalParamsController,
|
|
4397
4368
|
PersistanceParamsController,
|
|
@@ -4400,7 +4371,7 @@ class FilterComponent {
|
|
|
4400
4371
|
FsFilterItemsStore,
|
|
4401
4372
|
SavedFiltersController,
|
|
4402
4373
|
ActionsController,
|
|
4403
|
-
], queries: [{ propertyName: "statusBar", first: true, predicate: FilterStatusBarDirective, descendants: true }], viewQueries: [{ propertyName: "keywordMatInput", first: true, predicate: ["keywordMatInput"], descendants: true, read: MatInput }, { propertyName: "reloadEl", first: true, predicate: ["reloadEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"filter-container\">\n <div class=\"filter-inner-container\">\n <ng-container *ngIf=\"!hasKeyword; else filterKeyword\">\n <div>\n <ng-container *ngTemplateOutlet=\"filterStatusBarChips\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container [ngTemplateOutlet]=\"filterToolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"filterActions\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"hasKeyword\">\n <ng-container *ngTemplateOutlet=\"filterStatusBarChips\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #filterStatusBarChips>\n <ng-container *ngIf=\"statusBar\">\n <div class=\"filter-status-container\" [ngClass]=\"{ 'has-status': !!filterStatus.textContent }\">\n <div class=\"filter-status\" #filterStatus>\n <ng-container *ngTemplateOutlet=\"statusBar.templateRef\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"config.chips && hasFilterChips$ | async\">\n <fs-filter-chips\n class=\"filter-chips\"\n [filters]=\"items\">\n </fs-filter-chips>\n </ng-container>\n</ng-template>\n\n<ng-template #filterKeyword>\n <div class=\"filter-keyword\">\n <ng-container *ngIf=\"(keywordVisible$ | async) && !keywordItem?.hide \">\n <mat-form-field\n class=\"form-field-padless\"\n [ngClass]=\"search\"\n appearance=\"outline\">\n <span matPrefix class=\"icon\">\n <mat-icon matPrefix>search</mat-icon>\n </span>\n <input\n #keywordMatInput\n matInput\n [(ngModel)]=\"keyword\"\n (ngModelChange)=\"keywordChange($event)\"\n name=\"filter-input\"\n [fsClear]=\"true\"\n [placeholder]=\"searchPlaceholder\">\n </mat-form-field>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #filterActions>\n <div class=\"filter-actions\">\n <fs-filter-actions\n *ngIf=\"actionsVisible$ | async\"\n [actions]=\"actions$ | async\"\n [kebabActions]=\"menuActions$ | async\">\n </fs-filter-actions>\n </div>\n</ng-template>\n\n<ng-template #filterToolbar>\n <div class=\"filter-toobar\">\n <ng-container *ngIf=\"filtersBtnVisible$ | async\">\n <ng-container *ngIf=\"hasVisibleItemOrSorting\">\n <a\n mat-icon-button\n class=\"button-filters\"\n (click)=\"changeVisibilityClick(!showFilterMenu, $event)\"\n [color]=\"config.button.color\">\n <mat-icon
|
|
4374
|
+
], queries: [{ propertyName: "statusBar", first: true, predicate: FilterStatusBarDirective, descendants: true }], viewQueries: [{ propertyName: "keywordMatInput", first: true, predicate: ["keywordMatInput"], descendants: true, read: MatInput }, { propertyName: "reloadEl", first: true, predicate: ["reloadEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"filter-container\">\n <div class=\"filter-inner-container\">\n <ng-container *ngIf=\"!hasKeyword; else filterKeyword\">\n <div>\n <ng-container *ngTemplateOutlet=\"filterStatusBarChips\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container [ngTemplateOutlet]=\"filterToolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"filterActions\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"hasKeyword\">\n <ng-container *ngTemplateOutlet=\"filterStatusBarChips\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #filterStatusBarChips>\n <ng-container *ngIf=\"statusBar\">\n <div class=\"filter-status-container\" [ngClass]=\"{ 'has-status': !!filterStatus.textContent }\">\n <div class=\"filter-status\" #filterStatus>\n <ng-container *ngTemplateOutlet=\"statusBar.templateRef\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"config.chips && hasFilterChips$ | async\">\n <fs-filter-chips\n class=\"filter-chips\"\n [filters]=\"items\">\n </fs-filter-chips>\n </ng-container>\n</ng-template>\n\n<ng-template #filterKeyword>\n <div class=\"filter-keyword\">\n <ng-container *ngIf=\"(keywordVisible$ | async) && !keywordItem?.hide \">\n <mat-form-field\n class=\"form-field-padless\"\n [ngClass]=\"search\"\n appearance=\"outline\">\n <span matPrefix class=\"icon\">\n <mat-icon matPrefix>search</mat-icon>\n </span>\n <input\n #keywordMatInput\n matInput\n [(ngModel)]=\"keyword\"\n (ngModelChange)=\"keywordChange($event)\"\n name=\"filter-input\"\n [fsClear]=\"true\"\n [placeholder]=\"searchPlaceholder\">\n </mat-form-field>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #filterActions>\n <div class=\"filter-actions\">\n <fs-filter-actions\n *ngIf=\"actionsVisible$ | async\"\n [actions]=\"actions$ | async\"\n [kebabActions]=\"menuActions$ | async\">\n </fs-filter-actions>\n </div>\n</ng-template>\n\n<ng-template #filterToolbar>\n <div class=\"filter-toobar\">\n <ng-container *ngIf=\"filtersBtnVisible$ | async\">\n <ng-container *ngIf=\"hasVisibleItemOrSorting\">\n <a\n mat-icon-button\n class=\"button-filters\"\n (click)=\"changeVisibilityClick(!showFilterMenu, $event)\"\n [color]=\"config.button.color\">\n @if(config.button.icon) { \n <mat-icon svgIcon=\"filterOutline\"></mat-icon>\n }\n {{ config.button.label }}\n </a>\n </ng-container>\n </ng-container> \n <ng-container *ngIf=\"config.reload\">\n <a\n mat-icon-button\n (click)=\"reload($event)\"\n class=\"button-reload\">\n <mat-icon #reloadEl>refresh</mat-icon>\n </a>\n </ng-container>\n <ng-container *ngIf=\"config.autoReload\">\n <mat-slide-toggle \n name=\"autoReload\" \n class=\"auto-reload\"\n [(ngModel)]=\"autoReload\">\n Auto refresh\n </mat-slide-toggle>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{margin-bottom:20px;display:block}:host.has-keyword .filter-status-container.has-status{margin-top:4px}:host:not(.has-keyword) .filter-status-container:not(.has-status)+fs-filter-chips{margin-top:0}:host:not(.has-keyword) .filter-inner-container{display:flex}:host:not(.has-keyword) .filter-toobar{justify-content:flex-end}.filter-status-container{flex-grow:1;display:flex;justify-content:center;flex-direction:column;align-self:flex-end}.filter-status-container .filter-status{overflow:hidden;text-overflow:ellipsis;line-height:17px}.filter-container{width:100%}.filter-inner-container{flex-direction:row;box-sizing:border-box;display:flex;position:relative;align-items:center}.filter-inner-container .filter-keyword{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;min-width:0}.filter-inner-container .filter-keyword mat-form-field{max-width:100%;min-width:100px;margin-right:6px}.filter-inner-container .filter-keyword mat-form-field .icon{margin-left:10px}.filter-inner-container .filter-keyword mat-form-field .icon mat-icon{font-size:24px;color:#626262}.filter-inner-container .filter-keyword mat-form-field ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}.filter-actions{display:flex;align-items:center}.filter-toobar{flex:1;white-space:nowrap;display:flex;align-items:center}.filter-toobar .button-reload{margin-left:-6px}.filter-toobar .button-filters,.filter-toobar .button-reload{display:flex;width:40px;padding:8px;height:40px}.filter-toobar .button-filters ::ng-deep svg,.filter-toobar .button-reload ::ng-deep svg{display:flex}.results{min-height:90px;position:relative;overflow-x:auto;overflow-y:hidden}fs-filter-chips{margin-top:4px;display:block}@media screen and (min-width: 599px){.filter-actions{margin-left:10px}.button-filters+fs-filter-actions:not(:empty){margin-left:5px}}@media screen and (max-width: 600px){.button-filters{margin-left:5px}.button-filters .filters-button{font-size:0;padding:0;min-width:unset;width:36px;height:36px;border-radius:50%;box-shadow:unset!important}}@media screen and (min-width: 1200px){html.fs-filter-open body{margin-right:350px}.fs-filter-backdrop{display:none}}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: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i3$2.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i12.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i9.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: i14.FsClearComponent, selector: "[fsClear]", inputs: ["ngModel", "visible", "fsClear"], outputs: ["ngModelChange", "cleared"] }, { kind: "component", type: FsFilterChipsComponent, selector: "fs-filter-chips", inputs: ["filters"] }, { kind: "component", type: FsFilterActionsComponent, selector: "fs-filter-actions", inputs: ["kebabActions", "actions"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4404
4375
|
}
|
|
4405
4376
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FilterComponent, decorators: [{
|
|
4406
4377
|
type: Component,
|
|
@@ -4413,13 +4384,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
4413
4384
|
FsFilterItemsStore,
|
|
4414
4385
|
SavedFiltersController,
|
|
4415
4386
|
ActionsController,
|
|
4416
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filter-container\">\n <div class=\"filter-inner-container\">\n <ng-container *ngIf=\"!hasKeyword; else filterKeyword\">\n <div>\n <ng-container *ngTemplateOutlet=\"filterStatusBarChips\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container [ngTemplateOutlet]=\"filterToolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"filterActions\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"hasKeyword\">\n <ng-container *ngTemplateOutlet=\"filterStatusBarChips\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #filterStatusBarChips>\n <ng-container *ngIf=\"statusBar\">\n <div class=\"filter-status-container\" [ngClass]=\"{ 'has-status': !!filterStatus.textContent }\">\n <div class=\"filter-status\" #filterStatus>\n <ng-container *ngTemplateOutlet=\"statusBar.templateRef\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"config.chips && hasFilterChips$ | async\">\n <fs-filter-chips\n class=\"filter-chips\"\n [filters]=\"items\">\n </fs-filter-chips>\n </ng-container>\n</ng-template>\n\n<ng-template #filterKeyword>\n <div class=\"filter-keyword\">\n <ng-container *ngIf=\"(keywordVisible$ | async) && !keywordItem?.hide \">\n <mat-form-field\n class=\"form-field-padless\"\n [ngClass]=\"search\"\n appearance=\"outline\">\n <span matPrefix class=\"icon\">\n <mat-icon matPrefix>search</mat-icon>\n </span>\n <input\n #keywordMatInput\n matInput\n [(ngModel)]=\"keyword\"\n (ngModelChange)=\"keywordChange($event)\"\n name=\"filter-input\"\n [fsClear]=\"true\"\n [placeholder]=\"searchPlaceholder\">\n </mat-form-field>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #filterActions>\n <div class=\"filter-actions\">\n <fs-filter-actions\n *ngIf=\"actionsVisible$ | async\"\n [actions]=\"actions$ | async\"\n [kebabActions]=\"menuActions$ | async\">\n </fs-filter-actions>\n </div>\n</ng-template>\n\n<ng-template #filterToolbar>\n <div class=\"filter-toobar\">\n <ng-container *ngIf=\"filtersBtnVisible$ | async\">\n <ng-container *ngIf=\"hasVisibleItemOrSorting\">\n <a\n mat-icon-button\n class=\"button-filters\"\n (click)=\"changeVisibilityClick(!showFilterMenu, $event)\"\n [color]=\"config.button.color\">\n <mat-icon
|
|
4387
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filter-container\">\n <div class=\"filter-inner-container\">\n <ng-container *ngIf=\"!hasKeyword; else filterKeyword\">\n <div>\n <ng-container *ngTemplateOutlet=\"filterStatusBarChips\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container [ngTemplateOutlet]=\"filterToolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"filterActions\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"hasKeyword\">\n <ng-container *ngTemplateOutlet=\"filterStatusBarChips\"></ng-container>\n </ng-container>\n</div>\n\n<ng-template #filterStatusBarChips>\n <ng-container *ngIf=\"statusBar\">\n <div class=\"filter-status-container\" [ngClass]=\"{ 'has-status': !!filterStatus.textContent }\">\n <div class=\"filter-status\" #filterStatus>\n <ng-container *ngTemplateOutlet=\"statusBar.templateRef\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"config.chips && hasFilterChips$ | async\">\n <fs-filter-chips\n class=\"filter-chips\"\n [filters]=\"items\">\n </fs-filter-chips>\n </ng-container>\n</ng-template>\n\n<ng-template #filterKeyword>\n <div class=\"filter-keyword\">\n <ng-container *ngIf=\"(keywordVisible$ | async) && !keywordItem?.hide \">\n <mat-form-field\n class=\"form-field-padless\"\n [ngClass]=\"search\"\n appearance=\"outline\">\n <span matPrefix class=\"icon\">\n <mat-icon matPrefix>search</mat-icon>\n </span>\n <input\n #keywordMatInput\n matInput\n [(ngModel)]=\"keyword\"\n (ngModelChange)=\"keywordChange($event)\"\n name=\"filter-input\"\n [fsClear]=\"true\"\n [placeholder]=\"searchPlaceholder\">\n </mat-form-field>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #filterActions>\n <div class=\"filter-actions\">\n <fs-filter-actions\n *ngIf=\"actionsVisible$ | async\"\n [actions]=\"actions$ | async\"\n [kebabActions]=\"menuActions$ | async\">\n </fs-filter-actions>\n </div>\n</ng-template>\n\n<ng-template #filterToolbar>\n <div class=\"filter-toobar\">\n <ng-container *ngIf=\"filtersBtnVisible$ | async\">\n <ng-container *ngIf=\"hasVisibleItemOrSorting\">\n <a\n mat-icon-button\n class=\"button-filters\"\n (click)=\"changeVisibilityClick(!showFilterMenu, $event)\"\n [color]=\"config.button.color\">\n @if(config.button.icon) { \n <mat-icon svgIcon=\"filterOutline\"></mat-icon>\n }\n {{ config.button.label }}\n </a>\n </ng-container>\n </ng-container> \n <ng-container *ngIf=\"config.reload\">\n <a\n mat-icon-button\n (click)=\"reload($event)\"\n class=\"button-reload\">\n <mat-icon #reloadEl>refresh</mat-icon>\n </a>\n </ng-container>\n <ng-container *ngIf=\"config.autoReload\">\n <mat-slide-toggle \n name=\"autoReload\" \n class=\"auto-reload\"\n [(ngModel)]=\"autoReload\">\n Auto refresh\n </mat-slide-toggle>\n </ng-container>\n </div>\n</ng-template>\n", styles: [":host{margin-bottom:20px;display:block}:host.has-keyword .filter-status-container.has-status{margin-top:4px}:host:not(.has-keyword) .filter-status-container:not(.has-status)+fs-filter-chips{margin-top:0}:host:not(.has-keyword) .filter-inner-container{display:flex}:host:not(.has-keyword) .filter-toobar{justify-content:flex-end}.filter-status-container{flex-grow:1;display:flex;justify-content:center;flex-direction:column;align-self:flex-end}.filter-status-container .filter-status{overflow:hidden;text-overflow:ellipsis;line-height:17px}.filter-container{width:100%}.filter-inner-container{flex-direction:row;box-sizing:border-box;display:flex;position:relative;align-items:center}.filter-inner-container .filter-keyword{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;min-width:0}.filter-inner-container .filter-keyword mat-form-field{max-width:100%;min-width:100px;margin-right:6px}.filter-inner-container .filter-keyword mat-form-field .icon{margin-left:10px}.filter-inner-container .filter-keyword mat-form-field .icon mat-icon{font-size:24px;color:#626262}.filter-inner-container .filter-keyword mat-form-field ::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none}.filter-actions{display:flex;align-items:center}.filter-toobar{flex:1;white-space:nowrap;display:flex;align-items:center}.filter-toobar .button-reload{margin-left:-6px}.filter-toobar .button-filters,.filter-toobar .button-reload{display:flex;width:40px;padding:8px;height:40px}.filter-toobar .button-filters ::ng-deep svg,.filter-toobar .button-reload ::ng-deep svg{display:flex}.results{min-height:90px;position:relative;overflow-x:auto;overflow-y:hidden}fs-filter-chips{margin-top:4px;display:block}@media screen and (min-width: 599px){.filter-actions{margin-left:10px}.button-filters+fs-filter-actions:not(:empty){margin-left:5px}}@media screen and (max-width: 600px){.button-filters{margin-left:5px}.button-filters .filters-button{font-size:0;padding:0;min-width:unset;width:36px;height:36px;border-radius:50%;box-shadow:unset!important}}@media screen and (min-width: 1200px){html.fs-filter-open body{margin-right:350px}.fs-filter-backdrop{display:none}}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"] }]
|
|
4417
4388
|
}], ctorParameters: () => [{ type: FsFilterConfig, decorators: [{
|
|
4418
4389
|
type: Optional
|
|
4419
4390
|
}, {
|
|
4420
4391
|
type: Inject,
|
|
4421
4392
|
args: [FS_FILTER_CONFIG]
|
|
4422
|
-
}] }, { type: FsFilterOverlayService }, { type: i0.NgZone }, { type: ExternalParamsController }, { type: FsFilterItemsStore }, { type: ActionsController }, { type: SavedFiltersController }
|
|
4393
|
+
}] }, { type: FsFilterOverlayService }, { type: i0.NgZone }, { type: ExternalParamsController }, { type: FsFilterItemsStore }, { type: ActionsController }, { type: SavedFiltersController }], propDecorators: { setConfig: [{
|
|
4423
4394
|
type: Input,
|
|
4424
4395
|
args: ['config']
|
|
4425
4396
|
}], setFilter: [{
|