@firestitch/filter 12.13.2 → 13.0.1
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/filters-item/autocomplete/autocomplete.component.d.ts +2 -1
- package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +1 -5
- package/app/models/items/autocomplete/base-autocomplete-item.d.ts +1 -1
- package/app/models/items/base-item.d.ts +1 -1
- package/{esm2015/app/classes/actions-controller.js → esm2020/app/classes/actions-controller.mjs} +4 -4
- package/esm2020/app/components/action-button/action-button.component.mjs +24 -0
- package/esm2020/app/components/action-kebab-actions/action-kebab-actions.component.mjs +17 -0
- package/esm2020/app/components/actions/actions.component.mjs +26 -0
- package/esm2020/app/components/filter/filter.component.mjs +572 -0
- package/esm2020/app/components/filter-chip/filter-chip.component.mjs +86 -0
- package/{esm2015/app/components/filter-chip-content/filter-chip-content.component.js → esm2020/app/components/filter-chip-content/filter-chip-content.component.mjs} +5 -10
- package/esm2020/app/components/filter-chips/filter-chips.component.mjs +23 -0
- package/esm2020/app/components/filter-drawer/filter-drawer.component.mjs +71 -0
- package/esm2020/app/components/filter-drawer-actions/filter-drawer-actions.component.mjs +41 -0
- package/esm2020/app/components/filters-item/autocomplete/autocomplete.component.mjs +27 -0
- package/esm2020/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +42 -0
- package/{esm2015/app/components/filters-item/base-item/base-item.component.js → esm2020/app/components/filters-item/base-item/base-item.component.mjs} +4 -4
- package/esm2020/app/components/filters-item/checkbox/checkbox.component.mjs +21 -0
- package/esm2020/app/components/filters-item/chips/chips.component.mjs +28 -0
- package/esm2020/app/components/filters-item/date/date.component.mjs +43 -0
- package/esm2020/app/components/filters-item/date-range/date-range.component.mjs +34 -0
- package/esm2020/app/components/filters-item/filter-item.component.mjs +80 -0
- package/esm2020/app/components/filters-item/range/range.component.mjs +45 -0
- package/esm2020/app/components/filters-item/select/backdrop/backdrop.component.mjs +12 -0
- package/esm2020/app/components/filters-item/select/groups/groups.component.mjs +30 -0
- package/esm2020/app/components/filters-item/select/multiple/multiple.component.mjs +57 -0
- package/esm2020/app/components/filters-item/select/select.component.mjs +51 -0
- package/esm2020/app/components/filters-item/select/simple/simple.component.mjs +43 -0
- package/esm2020/app/components/filters-item/text/text.component.mjs +49 -0
- package/esm2020/app/components/filters-item/week/week.component.mjs +25 -0
- package/esm2020/app/components/saved-filter-edit/saved-filter-edit.component.mjs +55 -0
- package/esm2020/app/components/saved-filters-menu/saved-filters-menu.component.mjs +51 -0
- package/{esm2015/app/directives/focus-to-item/focus-to-item.directive.js → esm2020/app/directives/focus-to-item/focus-to-item.directive.mjs} +4 -4
- package/{esm2015/app/directives/status-bar/status-bar.directive.js → esm2020/app/directives/status-bar/status-bar.directive.mjs} +4 -4
- package/{esm2015/app/fs-filter.module.js → esm2020/app/fs-filter.module.mjs} +10 -7
- package/esm2020/app/models/action.model.mjs +108 -0
- package/esm2020/app/models/filter-config.mjs +66 -0
- package/esm2020/app/models/items/autocomplete/base-autocomplete-item.mjs +14 -0
- package/esm2020/app/models/items/autocomplete-chips-item.mjs +61 -0
- package/{esm2015/app/models/items/autocomplete-item.js → esm2020/app/models/items/autocomplete-item.mjs} +2 -2
- package/{esm2015/app/models/items/base-item.js → esm2020/app/models/items/base-item.mjs} +6 -8
- package/{esm2015/app/models/items/checkbox-item.js → esm2020/app/models/items/checkbox-item.mjs} +2 -2
- package/{esm2015/app/models/items/chips-item.js → esm2020/app/models/items/chips-item.mjs} +2 -2
- package/{esm2015/app/models/items/date-item.js → esm2020/app/models/items/date-item.mjs} +2 -2
- package/esm2020/app/models/items/date-range/base-date-range-item.mjs +135 -0
- package/esm2020/app/models/items/date-time-item.mjs +10 -0
- package/esm2020/app/models/items/range-item.mjs +83 -0
- package/esm2020/app/models/items/select/base-select-item.mjs +37 -0
- package/esm2020/app/models/items/select/multiple-select-item.mjs +88 -0
- package/esm2020/app/models/items/select/simple-select-item.mjs +66 -0
- package/{esm2015/app/models/items/text-item.js → esm2020/app/models/items/text-item.mjs} +2 -2
- package/esm2020/app/models/items/week-item.mjs +94 -0
- package/{esm2015/app/pipes/remove-isolate-value.pipe.js → esm2020/app/pipes/remove-isolate-value.pipe.mjs} +4 -4
- package/esm2020/app/services/external-params/persistance-params-controller.service.mjs +58 -0
- package/{esm2015/app/services/external-params/query-params-controller.service.js → esm2020/app/services/external-params/query-params-controller.service.mjs} +4 -4
- package/esm2020/app/services/external-params/saved-filters-controller.service.mjs +164 -0
- package/esm2020/app/services/external-params-controller.service.mjs +162 -0
- package/{esm2015/app/services/filter-overlay.service.js → esm2020/app/services/filter-overlay.service.mjs} +4 -4
- package/{esm2015/app/services/focus-controller.service.js → esm2020/app/services/focus-controller.service.mjs} +4 -4
- package/esm2020/app/services/items-store.service.mjs +337 -0
- package/fesm2015/{firestitch-filter.js → firestitch-filter.mjs} +965 -1082
- package/fesm2015/firestitch-filter.mjs.map +1 -0
- package/fesm2020/firestitch-filter.mjs +4444 -0
- package/fesm2020/firestitch-filter.mjs.map +1 -0
- package/package.json +20 -7
- package/bundles/firestitch-filter.umd.js +0 -5753
- package/bundles/firestitch-filter.umd.js.map +0 -1
- package/esm2015/app/components/action-button/action-button.component.js +0 -28
- package/esm2015/app/components/action-kebab-actions/action-kebab-actions.component.js +0 -22
- package/esm2015/app/components/actions/actions.component.js +0 -31
- package/esm2015/app/components/filter/filter.component.js +0 -577
- package/esm2015/app/components/filter-chip/filter-chip.component.js +0 -91
- package/esm2015/app/components/filter-chips/filter-chips.component.js +0 -27
- package/esm2015/app/components/filter-drawer/filter-drawer.component.js +0 -76
- package/esm2015/app/components/filter-drawer-actions/filter-drawer-actions.component.js +0 -44
- package/esm2015/app/components/filters-item/autocomplete/autocomplete.component.js +0 -30
- package/esm2015/app/components/filters-item/autocompletechips/autocompletechips.component.js +0 -52
- package/esm2015/app/components/filters-item/checkbox/checkbox.component.js +0 -25
- package/esm2015/app/components/filters-item/chips/chips.component.js +0 -32
- package/esm2015/app/components/filters-item/date/date.component.js +0 -46
- package/esm2015/app/components/filters-item/date-range/date-range.component.js +0 -37
- package/esm2015/app/components/filters-item/filter-item.component.js +0 -84
- package/esm2015/app/components/filters-item/range/range.component.js +0 -48
- package/esm2015/app/components/filters-item/select/backdrop/backdrop.component.js +0 -17
- package/esm2015/app/components/filters-item/select/groups/groups.component.js +0 -33
- package/esm2015/app/components/filters-item/select/multiple/multiple.component.js +0 -61
- package/esm2015/app/components/filters-item/select/select.component.js +0 -55
- package/esm2015/app/components/filters-item/select/simple/simple.component.js +0 -47
- package/esm2015/app/components/filters-item/text/text.component.js +0 -54
- package/esm2015/app/components/filters-item/week/week.component.js +0 -28
- package/esm2015/app/components/saved-filter-edit/saved-filter-edit.component.js +0 -55
- package/esm2015/app/components/saved-filters-menu/saved-filters-menu.component.js +0 -58
- package/esm2015/app/models/action.model.js +0 -109
- package/esm2015/app/models/filter-config.js +0 -67
- package/esm2015/app/models/items/autocomplete/base-autocomplete-item.js +0 -15
- package/esm2015/app/models/items/autocomplete-chips-item.js +0 -62
- package/esm2015/app/models/items/date-range/base-date-range-item.js +0 -137
- package/esm2015/app/models/items/date-time-item.js +0 -10
- package/esm2015/app/models/items/range-item.js +0 -84
- package/esm2015/app/models/items/select/base-select-item.js +0 -34
- package/esm2015/app/models/items/select/multiple-select-item.js +0 -89
- package/esm2015/app/models/items/select/simple-select-item.js +0 -66
- package/esm2015/app/models/items/week-item.js +0 -94
- package/esm2015/app/services/external-params/persistance-params-controller.service.js +0 -58
- package/esm2015/app/services/external-params/saved-filters-controller.service.js +0 -165
- package/esm2015/app/services/external-params-controller.service.js +0 -163
- package/esm2015/app/services/items-store.service.js +0 -341
- package/fesm2015/firestitch-filter.js.map +0 -1
- /package/{esm2015/app/consts/query-param-delimiter.js → esm2020/app/consts/query-param-delimiter.mjs} +0 -0
- /package/{esm2015/app/enums/action-mode.enum.js → esm2020/app/enums/action-mode.enum.mjs} +0 -0
- /package/{esm2015/app/enums/action-type.enum.js → esm2020/app/enums/action-type.enum.mjs} +0 -0
- /package/{esm2015/app/enums/button-style.js → esm2020/app/enums/button-style.mjs} +0 -0
- /package/{esm2015/app/enums/index.js → esm2020/app/enums/index.mjs} +0 -0
- /package/{esm2015/app/enums/item-date-mode.enum.js → esm2020/app/enums/item-date-mode.enum.mjs} +0 -0
- /package/{esm2015/app/enums/item-type.enum.js → esm2020/app/enums/item-type.enum.mjs} +0 -0
- /package/{esm2015/app/enums/picker-view-type.enum.js → esm2020/app/enums/picker-view-type.enum.mjs} +0 -0
- /package/{esm2015/app/helpers/build-query-params.js → esm2020/app/helpers/build-query-params.mjs} +0 -0
- /package/{esm2015/app/helpers/compare.js → esm2020/app/helpers/compare.mjs} +0 -0
- /package/{esm2015/app/helpers/create-filter-item.js → esm2020/app/helpers/create-filter-item.mjs} +0 -0
- /package/{esm2015/app/helpers/find-value.js → esm2020/app/helpers/find-value.mjs} +0 -0
- /package/{esm2015/app/helpers/get-range-name.js → esm2020/app/helpers/get-range-name.mjs} +0 -0
- /package/{esm2015/app/helpers/parse-date.js → esm2020/app/helpers/parse-date.mjs} +0 -0
- /package/{esm2015/app/helpers/parse-item-value-from-stored.js → esm2020/app/helpers/parse-item-value-from-stored.mjs} +0 -0
- /package/{esm2015/app/helpers/query-param-transformers.js → esm2020/app/helpers/query-param-transformers.mjs} +0 -0
- /package/{esm2015/app/helpers/restore-items.js → esm2020/app/helpers/restore-items.mjs} +0 -0
- /package/{esm2015/app/helpers/try-convert-to-number.js → esm2020/app/helpers/try-convert-to-number.mjs} +0 -0
- /package/{esm2015/app/injectors/filter-config.js → esm2020/app/injectors/filter-config.mjs} +0 -0
- /package/{esm2015/app/injectors/filter-drawer-data.js → esm2020/app/injectors/filter-drawer-data.mjs} +0 -0
- /package/{esm2015/app/injectors/filter-drawer-overlay.js → esm2020/app/injectors/filter-drawer-overlay.mjs} +0 -0
- /package/{esm2015/app/interfaces/action.interface.js → esm2020/app/interfaces/action.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/config.interface.js → esm2020/app/interfaces/config.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/external-params.interface.js → esm2020/app/interfaces/external-params.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/filter.interface.js → esm2020/app/interfaces/filter.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/autocomplete-chips.interface.js → esm2020/app/interfaces/items/autocomplete-chips.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/autocomplete.interface.js → esm2020/app/interfaces/items/autocomplete.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/base.interface.js → esm2020/app/interfaces/items/base.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/checkbox.interface.js → esm2020/app/interfaces/items/checkbox.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/chips.interface.js → esm2020/app/interfaces/items/chips.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/date-range.interface.js → esm2020/app/interfaces/items/date-range.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/date.interface.js → esm2020/app/interfaces/items/date.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/range.interface.js → esm2020/app/interfaces/items/range.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/select.interface.js → esm2020/app/interfaces/items/select.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/text.interface.js → esm2020/app/interfaces/items/text.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/items/week.interface.js → esm2020/app/interfaces/items/week.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/saved-filters.interface.js → esm2020/app/interfaces/saved-filters.interface.mjs} +0 -0
- /package/{esm2015/app/interfaces/update-filter-item.interface.js → esm2020/app/interfaces/update-filter-item.interface.mjs} +0 -0
- /package/{esm2015/app/models/action-menu-item.model.js → esm2020/app/models/action-menu-item.model.mjs} +0 -0
- /package/{esm2015/app/models/items/date/base-date-item.js → esm2020/app/models/items/date/base-date-item.mjs} +0 -0
- /package/{esm2015/app/models/items/date-range-item.js → esm2020/app/models/items/date-range-item.mjs} +0 -0
- /package/{esm2015/app/models/items/date-time-range-item.js → esm2020/app/models/items/date-time-range-item.mjs} +0 -0
- /package/{esm2015/app/models/items/select-item.js → esm2020/app/models/items/select-item.mjs} +0 -0
- /package/{esm2015/app/providers/filter-meta.js → esm2020/app/providers/filter-meta.mjs} +0 -0
- /package/{esm2015/firestitch-filter.js → esm2020/firestitch-filter.mjs} +0 -0
- /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
|
@@ -3,20 +3,20 @@ import { Injectable, Optional, Component, ChangeDetectionStrategy, Inject, Input
|
|
|
3
3
|
import { BehaviorSubject, Subject, isObservable, forkJoin, of, timer, combineLatest, fromEvent, merge } 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';
|
|
6
|
-
import { isObject, isFunction, clone,
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
6
|
+
import { isObject, isFunction, clone, toString, isString, pickBy } from 'lodash-es';
|
|
7
|
+
import { simpleFormat, format } from '@firestitch/date';
|
|
8
|
+
import { isValid, isDate, parseISO } from 'date-fns';
|
|
9
|
+
import * as i3$4 from '@firestitch/datepicker';
|
|
10
|
+
import { formatPeriodObject, FsDatePickerModule } from '@firestitch/datepicker';
|
|
11
|
+
import * as i1 from '@firestitch/store';
|
|
12
|
+
import { FsPersistanceStore, FsStoreModule, FsStore } from '@firestitch/store';
|
|
9
13
|
import * as i1$1 from '@angular/router';
|
|
10
14
|
import { RouterModule } from '@angular/router';
|
|
15
|
+
import * as i3 from '@angular/common';
|
|
16
|
+
import { CommonModule } from '@angular/common';
|
|
11
17
|
import * as i1$2 from '@angular/material/dialog';
|
|
12
18
|
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
13
19
|
import * as i6 from '@firestitch/drawer';
|
|
14
|
-
import * as i1 from '@firestitch/store';
|
|
15
|
-
import { FsPersistanceStore, FsStoreModule, FsStore } from '@firestitch/store';
|
|
16
|
-
import { simpleFormat, format } from '@firestitch/date';
|
|
17
|
-
import { parseISO, isValid, isDate } from 'date-fns';
|
|
18
|
-
import * as i3$4 from '@firestitch/datepicker';
|
|
19
|
-
import { formatPeriodObject, FsDatePickerModule } from '@firestitch/datepicker';
|
|
20
20
|
import * as i1$3 from '@angular/material/form-field';
|
|
21
21
|
import * as i2 from '@angular/material/select';
|
|
22
22
|
import { MatSelectModule } from '@angular/material/select';
|
|
@@ -505,565 +505,114 @@ function buildQueryParams(flattenedParams, items) {
|
|
|
505
505
|
return flattenedParams;
|
|
506
506
|
}
|
|
507
507
|
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
return
|
|
508
|
+
class BaseAutocompleteItem extends BaseItem {
|
|
509
|
+
get valuesFn() {
|
|
510
|
+
return this._valuesFn;
|
|
511
511
|
}
|
|
512
|
-
|
|
513
|
-
|
|
512
|
+
_validateModel() {
|
|
513
|
+
//
|
|
514
|
+
}
|
|
515
|
+
_parseConfig(item) {
|
|
516
|
+
var _a;
|
|
517
|
+
this.fetchOnFocus = (_a = item.fetchOnFocus) !== null && _a !== void 0 ? _a : true;
|
|
518
|
+
super._parseConfig(item);
|
|
514
519
|
}
|
|
515
520
|
}
|
|
516
521
|
|
|
517
|
-
class
|
|
518
|
-
static create(config,
|
|
519
|
-
return new
|
|
522
|
+
class AutocompleteChipsItem extends BaseAutocompleteItem {
|
|
523
|
+
static create(config, filter) {
|
|
524
|
+
return new AutocompleteChipsItem(config, null, filter);
|
|
520
525
|
}
|
|
521
526
|
get value() {
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
(isEmpty(this.model.max, { zero: true }) && isEmpty(this.model.min, { zero: true }))) {
|
|
525
|
-
value = undefined;
|
|
527
|
+
if (Array.isArray(this.model) && this.model.length === 0) {
|
|
528
|
+
return undefined;
|
|
526
529
|
}
|
|
527
|
-
return
|
|
530
|
+
return clone(this.model);
|
|
528
531
|
}
|
|
529
532
|
get queryObject() {
|
|
530
533
|
const value = this.value;
|
|
531
534
|
const name = this.name;
|
|
532
535
|
const params = {};
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
536
|
+
if (Array.isArray(value)) {
|
|
537
|
+
params[this.name] = value
|
|
538
|
+
.filter((item) => !!item.value)
|
|
539
|
+
.map((item) => item.value)
|
|
540
|
+
.join(',');
|
|
538
541
|
}
|
|
539
542
|
else {
|
|
540
|
-
params[
|
|
541
|
-
params[paramMaxName] = undefined;
|
|
543
|
+
params[name] = value;
|
|
542
544
|
}
|
|
543
545
|
return params;
|
|
544
546
|
}
|
|
545
547
|
get isChipVisible() {
|
|
546
|
-
return
|
|
548
|
+
return Array.isArray(this.model) && this.model.length > 0;
|
|
547
549
|
}
|
|
548
|
-
getChipsContent(
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
return `${max}`;
|
|
556
|
-
}
|
|
550
|
+
getChipsContent() {
|
|
551
|
+
return this.model
|
|
552
|
+
.reduce((acc, i) => {
|
|
553
|
+
acc.push(i.name);
|
|
554
|
+
return acc;
|
|
555
|
+
}, [])
|
|
556
|
+
.join(', ');
|
|
557
557
|
}
|
|
558
|
-
|
|
559
|
-
if (
|
|
560
|
-
|
|
561
|
-
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.min) {
|
|
562
|
-
this.model.min = defaultValue.min;
|
|
563
|
-
}
|
|
564
|
-
this.model = Object.assign({}, this.model);
|
|
565
|
-
}
|
|
566
|
-
else if (type === 'to') {
|
|
567
|
-
delete this.model.max;
|
|
568
|
-
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.max) {
|
|
569
|
-
this.model.max = defaultValue.max;
|
|
570
|
-
}
|
|
571
|
-
this.model = Object.assign({}, this.model);
|
|
572
|
-
}
|
|
573
|
-
else {
|
|
574
|
-
this.model = defaultValue ? Object.assign({}, defaultValue) : {};
|
|
558
|
+
_init() {
|
|
559
|
+
if (this.model === undefined) {
|
|
560
|
+
this._model = [];
|
|
575
561
|
}
|
|
576
562
|
}
|
|
577
|
-
_validateModel() {
|
|
578
|
-
}
|
|
579
563
|
_parseConfig(item) {
|
|
580
|
-
var _a
|
|
581
|
-
this.
|
|
582
|
-
this.
|
|
583
|
-
this.
|
|
584
|
-
this.
|
|
564
|
+
var _a;
|
|
565
|
+
this.chipImage = (_a = item.chipImage) !== null && _a !== void 0 ? _a : 'image';
|
|
566
|
+
this.chipIcon = item.chipIcon;
|
|
567
|
+
this.chipIconColor = item.chipIconColor;
|
|
568
|
+
this.chipColor = item.chipColor;
|
|
569
|
+
this.chipBackground = item.chipBackground;
|
|
570
|
+
this.chipClass = item.chipClass;
|
|
585
571
|
super._parseConfig(item);
|
|
586
572
|
}
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
}
|
|
573
|
+
_clearValue(defaultValue = undefined) {
|
|
574
|
+
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : [];
|
|
575
|
+
this.search = '';
|
|
576
|
+
}
|
|
577
|
+
_setModel(value) {
|
|
578
|
+
super._setModel(value || []);
|
|
594
579
|
}
|
|
595
580
|
}
|
|
596
581
|
|
|
597
|
-
class
|
|
598
|
-
|
|
599
|
-
return
|
|
600
|
-
}
|
|
601
|
-
get isTypeDateTimeRange() {
|
|
602
|
-
return this.type === ItemType.DateTimeRange;
|
|
603
|
-
}
|
|
604
|
-
get isChipVisible() {
|
|
605
|
-
return this.model && (this.model.from !== undefined || this.model.to !== undefined);
|
|
582
|
+
class AutocompleteItem extends BaseAutocompleteItem {
|
|
583
|
+
static create(config, filter) {
|
|
584
|
+
return new AutocompleteItem(config, null, filter);
|
|
606
585
|
}
|
|
607
586
|
get value() {
|
|
608
587
|
let value = clone(this.model);
|
|
609
|
-
if (!
|
|
610
|
-
(isEmpty(this.model.from, { zero: true }) && isEmpty(this.model.to, { zero: true }))) {
|
|
611
|
-
value = undefined;
|
|
612
|
-
}
|
|
613
|
-
if (isEmpty(value, { zero: true })) {
|
|
588
|
+
if (!this.model || this.model.value === undefined) {
|
|
614
589
|
return undefined;
|
|
615
590
|
}
|
|
616
|
-
|
|
617
|
-
let to = value.to;
|
|
618
|
-
value = {};
|
|
619
|
-
if (from) {
|
|
620
|
-
if (isString(from)) {
|
|
621
|
-
from = parseISO(from);
|
|
622
|
-
}
|
|
623
|
-
if (isValid(from) && isDate(from)) {
|
|
624
|
-
value.from = from;
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
if (to) {
|
|
628
|
-
if (isString(to)) {
|
|
629
|
-
to = parseISO(to);
|
|
630
|
-
}
|
|
631
|
-
if (isValid(to) && isDate(to)) {
|
|
632
|
-
value.to = to;
|
|
633
|
-
}
|
|
634
|
-
}
|
|
591
|
+
value = this.model.value;
|
|
635
592
|
return value;
|
|
636
593
|
}
|
|
637
594
|
get queryObject() {
|
|
638
|
-
const value = this.value
|
|
595
|
+
const value = this.value;
|
|
639
596
|
const name = this.name;
|
|
640
|
-
const
|
|
641
|
-
|
|
642
|
-
return
|
|
643
|
-
[paramFromName]: value.from || undefined,
|
|
644
|
-
[paramToName]: value.to || undefined,
|
|
645
|
-
};
|
|
646
|
-
}
|
|
647
|
-
get persistanceObject() {
|
|
648
|
-
const query = this.queryObject;
|
|
649
|
-
return Object.keys(this.queryObject)
|
|
650
|
-
.reduce((acc, key) => {
|
|
651
|
-
if (!!query[key]) {
|
|
652
|
-
acc[key] = simpleFormat(query[key]);
|
|
653
|
-
}
|
|
654
|
-
else {
|
|
655
|
-
acc[key] = query[key];
|
|
656
|
-
}
|
|
657
|
-
return acc;
|
|
658
|
-
}, {});
|
|
659
|
-
}
|
|
660
|
-
getChipsContent(type = null) {
|
|
661
|
-
const formatTo = this.type === ItemType.DateRange ? 'date' : 'date-time';
|
|
662
|
-
if (type === 'from') {
|
|
663
|
-
const from = this.model.from;
|
|
664
|
-
return `${format(from, formatTo)}`;
|
|
665
|
-
}
|
|
666
|
-
else if (type === 'to') {
|
|
667
|
-
const to = this.model.to;
|
|
668
|
-
return `${format(to, formatTo)}`;
|
|
669
|
-
}
|
|
670
|
-
}
|
|
671
|
-
clearDateRange(type = null, defaultValue = undefined) {
|
|
672
|
-
if (type === 'from') {
|
|
673
|
-
delete this.model.from;
|
|
674
|
-
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.from) {
|
|
675
|
-
this.model.from = defaultValue.from;
|
|
676
|
-
}
|
|
677
|
-
this.model = Object.assign({}, this.model);
|
|
678
|
-
}
|
|
679
|
-
else if (type === 'to') {
|
|
680
|
-
delete this.model.to;
|
|
681
|
-
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.to) {
|
|
682
|
-
this.model.to = defaultValue.to;
|
|
683
|
-
}
|
|
684
|
-
this.model = Object.assign({}, this.model);
|
|
685
|
-
}
|
|
686
|
-
else {
|
|
687
|
-
if (defaultValue) {
|
|
688
|
-
this.model = Object.assign({}, defaultValue);
|
|
689
|
-
}
|
|
690
|
-
else {
|
|
691
|
-
this.model = {};
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
}
|
|
695
|
-
_validateModel() {
|
|
696
|
-
}
|
|
697
|
-
_setModel(value) {
|
|
698
|
-
if (value) {
|
|
699
|
-
if (value.from && (!isDate(value.from) || !isValid(value.from))) {
|
|
700
|
-
value.from = parseISO(value.from);
|
|
701
|
-
}
|
|
702
|
-
if (value.to && (!isDate(value.to) || !isValid(value.to))) {
|
|
703
|
-
value.to = parseISO(value.to);
|
|
704
|
-
}
|
|
705
|
-
}
|
|
706
|
-
super._setModel(value);
|
|
597
|
+
const params = {};
|
|
598
|
+
params[name] = value;
|
|
599
|
+
return params;
|
|
707
600
|
}
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
this.case = (_b = (_a = this._additionalConfig) === null || _a === void 0 ? void 0 : _a.case) !== null && _b !== void 0 ? _b : 'camel';
|
|
711
|
-
super._parseConfig(item);
|
|
601
|
+
getChipsContent() {
|
|
602
|
+
return this.model ? this.model.name : '';
|
|
712
603
|
}
|
|
713
604
|
_init() {
|
|
714
|
-
|
|
715
|
-
this.label = ['Date From', 'Date To'];
|
|
716
|
-
}
|
|
717
|
-
if (!this.model) {
|
|
718
|
-
this.model = this.defaultValue || {};
|
|
719
|
-
}
|
|
605
|
+
//
|
|
720
606
|
}
|
|
721
607
|
_clearValue(defaultValue = undefined) {
|
|
722
|
-
|
|
723
|
-
this.
|
|
608
|
+
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;
|
|
609
|
+
this.search = '';
|
|
724
610
|
}
|
|
725
611
|
}
|
|
726
612
|
|
|
727
|
-
class
|
|
613
|
+
class CheckboxItem extends BaseItem {
|
|
728
614
|
static create(config, filter) {
|
|
729
|
-
return new
|
|
730
|
-
}
|
|
731
|
-
}
|
|
732
|
-
|
|
733
|
-
class DateTimeRangeItem extends BaseDateRangeItem {
|
|
734
|
-
static create(config, filter) {
|
|
735
|
-
return new DateTimeRangeItem(config, null, filter);
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
function tryConvertToNumber(val) {
|
|
740
|
-
return isNaN(val)
|
|
741
|
-
? val
|
|
742
|
-
: +val;
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
function parseItemValueFromStored(item, params, paramCase) {
|
|
746
|
-
const param = params[item.name];
|
|
747
|
-
switch (item.type) {
|
|
748
|
-
case ItemType.Range: {
|
|
749
|
-
const min = params[getRangeName(paramCase, item.name, 'min')];
|
|
750
|
-
const max = params[getRangeName(paramCase, item.name, 'max')];
|
|
751
|
-
return { min: min, max: max };
|
|
752
|
-
}
|
|
753
|
-
case ItemType.DateRange:
|
|
754
|
-
case ItemType.DateTimeRange: {
|
|
755
|
-
const from = params[getRangeName(item.case, item.name, 'from')];
|
|
756
|
-
const to = params[getRangeName(item.case, item.name, 'to')];
|
|
757
|
-
return { from: from, to: to };
|
|
758
|
-
}
|
|
759
|
-
case ItemType.Week: {
|
|
760
|
-
const from = params[getRangeName('camel', item.name, 'from')];
|
|
761
|
-
const to = params[getRangeName('camel', item.name, 'to')];
|
|
762
|
-
const period = params[`${item.name}Period`];
|
|
763
|
-
return { from, to, period };
|
|
764
|
-
}
|
|
765
|
-
case ItemType.Select: {
|
|
766
|
-
if (item.multiple && !!param) {
|
|
767
|
-
const values = param.split(',');
|
|
768
|
-
if (item.isolate) {
|
|
769
|
-
const isolatedValue = Array.isArray(item.isolate.value)
|
|
770
|
-
? item.isolate.value
|
|
771
|
-
: [item.isolate.value];
|
|
772
|
-
item.isolate.enabled = arraysHaveSameElements(isolatedValue, values);
|
|
773
|
-
return item.isolate.enabled
|
|
774
|
-
? isolatedValue
|
|
775
|
-
: values;
|
|
776
|
-
}
|
|
777
|
-
return values;
|
|
778
|
-
}
|
|
779
|
-
else {
|
|
780
|
-
return param;
|
|
781
|
-
}
|
|
782
|
-
}
|
|
783
|
-
case ItemType.Checkbox: {
|
|
784
|
-
if (param === 'true') {
|
|
785
|
-
return true === item.checked;
|
|
786
|
-
}
|
|
787
|
-
else {
|
|
788
|
-
return param === item.checked;
|
|
789
|
-
}
|
|
790
|
-
}
|
|
791
|
-
case ItemType.AutoComplete: {
|
|
792
|
-
const filterParts = filterFromQueryParam(param);
|
|
793
|
-
return {
|
|
794
|
-
name: filterParts[1],
|
|
795
|
-
value: tryConvertToNumber(filterParts[0])
|
|
796
|
-
};
|
|
797
|
-
}
|
|
798
|
-
case ItemType.AutoCompleteChips:
|
|
799
|
-
case ItemType.Chips: {
|
|
800
|
-
const filterParts = param.split(',');
|
|
801
|
-
return filterParts.reduce((arry, value) => {
|
|
802
|
-
const chipParts = filterFromQueryParam(value);
|
|
803
|
-
arry.push({
|
|
804
|
-
name: chipParts[1],
|
|
805
|
-
value: tryConvertToNumber(chipParts[0]),
|
|
806
|
-
});
|
|
807
|
-
return arry;
|
|
808
|
-
}, []);
|
|
809
|
-
}
|
|
810
|
-
default: {
|
|
811
|
-
return param;
|
|
812
|
-
}
|
|
813
|
-
}
|
|
814
|
-
}
|
|
815
|
-
function arraysHaveSameElements(arr1, arr2) {
|
|
816
|
-
arr1 = [...arr1].sort();
|
|
817
|
-
arr2 = [...arr2].sort();
|
|
818
|
-
return arr1.some((item) => {
|
|
819
|
-
return arr2.includes(item);
|
|
820
|
-
});
|
|
821
|
-
}
|
|
822
|
-
|
|
823
|
-
function parseDate(value) {
|
|
824
|
-
if (value && (!isDate(value) || !isValid(value))) {
|
|
825
|
-
return parseISO(value);
|
|
826
|
-
}
|
|
827
|
-
return value;
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
class WeekItem extends BaseItem {
|
|
831
|
-
static create(config, filter) {
|
|
832
|
-
return new WeekItem(config, null, filter);
|
|
833
|
-
}
|
|
834
|
-
get value() {
|
|
835
|
-
let value = clone(this.model);
|
|
836
|
-
if (!isObject(this.model) ||
|
|
837
|
-
(isEmpty(this.model.from, { zero: true }) && isEmpty(this.model.to, { zero: true }))) {
|
|
838
|
-
value = undefined;
|
|
839
|
-
}
|
|
840
|
-
if (isEmpty(value, { zero: true })) {
|
|
841
|
-
return undefined;
|
|
842
|
-
}
|
|
843
|
-
let from = value.from;
|
|
844
|
-
let to = value.to;
|
|
845
|
-
const period = value.period;
|
|
846
|
-
value = {};
|
|
847
|
-
if (from) {
|
|
848
|
-
if (isString(from)) {
|
|
849
|
-
from = parseISO(from);
|
|
850
|
-
}
|
|
851
|
-
if (isValid(from) && isDate(from)) {
|
|
852
|
-
value.from = from;
|
|
853
|
-
}
|
|
854
|
-
}
|
|
855
|
-
if (to) {
|
|
856
|
-
if (isString(to)) {
|
|
857
|
-
to = parseISO(to);
|
|
858
|
-
}
|
|
859
|
-
if (isValid(to) && isDate(to)) {
|
|
860
|
-
value.to = to;
|
|
861
|
-
}
|
|
862
|
-
}
|
|
863
|
-
if (period) {
|
|
864
|
-
value.period = isString(period) ? parseInt(period, 10) : period;
|
|
865
|
-
}
|
|
866
|
-
return value;
|
|
867
|
-
}
|
|
868
|
-
get queryObject() {
|
|
869
|
-
const value = this.value;
|
|
870
|
-
const name = this.name;
|
|
871
|
-
const paramFromName = getRangeName('camel', name, 'from');
|
|
872
|
-
const paramToName = getRangeName('camel', name, 'to');
|
|
873
|
-
const paramPeriodName = `${name}Period`;
|
|
874
|
-
return {
|
|
875
|
-
[paramFromName]: (value === null || value === void 0 ? void 0 : value.from) || undefined,
|
|
876
|
-
[paramToName]: (value === null || value === void 0 ? void 0 : value.to) || undefined,
|
|
877
|
-
[paramPeriodName]: (value === null || value === void 0 ? void 0 : value.period) || undefined,
|
|
878
|
-
};
|
|
879
|
-
}
|
|
880
|
-
get persistanceObject() {
|
|
881
|
-
const query = this.queryObject;
|
|
882
|
-
const name = this.name;
|
|
883
|
-
const paramFromName = getRangeName('camel', name, 'from');
|
|
884
|
-
const paramFromValue = query[paramFromName] && simpleFormat(query[paramFromName]) || query[paramFromName];
|
|
885
|
-
const paramToName = getRangeName('camel', name, 'to');
|
|
886
|
-
const paramToValue = query[paramToName] && simpleFormat(query[paramToName]) || query[paramToName];
|
|
887
|
-
const paramPeriodName = `${name}Period`;
|
|
888
|
-
return {
|
|
889
|
-
[paramFromName]: paramFromValue,
|
|
890
|
-
[paramToName]: paramToValue,
|
|
891
|
-
[paramPeriodName]: query[paramPeriodName],
|
|
892
|
-
};
|
|
893
|
-
}
|
|
894
|
-
getChipsContent(type = null) {
|
|
895
|
-
return formatPeriodObject(this.value);
|
|
896
|
-
}
|
|
897
|
-
_validateModel() { }
|
|
898
|
-
_setModel(value) {
|
|
899
|
-
if (value) {
|
|
900
|
-
value.from = parseDate(value.from);
|
|
901
|
-
value.to = parseDate(value.to);
|
|
902
|
-
value.period = parseInt(value.period, 10) || undefined;
|
|
903
|
-
}
|
|
904
|
-
super._setModel(value);
|
|
905
|
-
}
|
|
906
|
-
_parseConfig(item) {
|
|
907
|
-
super._parseConfig(item);
|
|
908
|
-
this.seedDate = item.seedDate;
|
|
909
|
-
}
|
|
910
|
-
_init() { }
|
|
911
|
-
_clearValue(defaultValue = undefined) {
|
|
912
|
-
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;
|
|
913
|
-
}
|
|
914
|
-
}
|
|
915
|
-
|
|
916
|
-
/**
|
|
917
|
-
* We need this function because when we store persisted/query/remote filter values
|
|
918
|
-
* it stores with different format, ex.: Range will be stored as RangeFrom && RangeTo
|
|
919
|
-
* and in this case we don't know how to restroe those values.
|
|
920
|
-
*
|
|
921
|
-
* This function do convertation for those kinds of stored values
|
|
922
|
-
*
|
|
923
|
-
* @param params
|
|
924
|
-
* @param items
|
|
925
|
-
* @param paramsCase
|
|
926
|
-
*/
|
|
927
|
-
function restoreItems(params, items, paramsCase) {
|
|
928
|
-
const result = {};
|
|
929
|
-
Object.keys(params)
|
|
930
|
-
.forEach((name) => {
|
|
931
|
-
const item = findItemWidthName(items, name);
|
|
932
|
-
if (item) {
|
|
933
|
-
result[item.name] = parseItemValueFromStored(item, params, paramsCase);
|
|
934
|
-
}
|
|
935
|
-
});
|
|
936
|
-
return result;
|
|
937
|
-
}
|
|
938
|
-
function findItemWidthName(items, name) {
|
|
939
|
-
return items
|
|
940
|
-
.find((filterItem) => {
|
|
941
|
-
if (filterItem instanceof RangeItem) {
|
|
942
|
-
return name === getRangeName(filterItem.case, filterItem.name, 'min') ||
|
|
943
|
-
name === getRangeName(filterItem.case, filterItem.name, 'max') ||
|
|
944
|
-
name === filterItem.name;
|
|
945
|
-
}
|
|
946
|
-
else if (filterItem instanceof DateRangeItem || filterItem instanceof DateTimeRangeItem) {
|
|
947
|
-
return name === getRangeName(filterItem.case, filterItem.name, 'from') ||
|
|
948
|
-
name === getRangeName(filterItem.case, filterItem.name, 'to');
|
|
949
|
-
}
|
|
950
|
-
else if (filterItem instanceof WeekItem) {
|
|
951
|
-
return name === getRangeName('camel', filterItem.name, 'from')
|
|
952
|
-
|| name === getRangeName('camel', filterItem.name, 'to')
|
|
953
|
-
|| name === `${filterItem.name}Period`;
|
|
954
|
-
}
|
|
955
|
-
return filterItem.name === name;
|
|
956
|
-
});
|
|
957
|
-
}
|
|
958
|
-
|
|
959
|
-
class BaseAutocompleteItem extends BaseItem {
|
|
960
|
-
get valuesFn() {
|
|
961
|
-
return this._valuesFn;
|
|
962
|
-
}
|
|
963
|
-
_validateModel() {
|
|
964
|
-
//
|
|
965
|
-
}
|
|
966
|
-
_parseConfig(item) {
|
|
967
|
-
var _a;
|
|
968
|
-
this.fetchOnFocus = (_a = item.fetchOnFocus) !== null && _a !== void 0 ? _a : true;
|
|
969
|
-
super._parseConfig(item);
|
|
970
|
-
}
|
|
971
|
-
}
|
|
972
|
-
|
|
973
|
-
class AutocompleteChipsItem extends BaseAutocompleteItem {
|
|
974
|
-
static create(config, filter) {
|
|
975
|
-
return new AutocompleteChipsItem(config, null, filter);
|
|
976
|
-
}
|
|
977
|
-
get value() {
|
|
978
|
-
if (Array.isArray(this.model) && this.model.length === 0) {
|
|
979
|
-
return undefined;
|
|
980
|
-
}
|
|
981
|
-
return clone(this.model);
|
|
982
|
-
}
|
|
983
|
-
get queryObject() {
|
|
984
|
-
const value = this.value;
|
|
985
|
-
const name = this.name;
|
|
986
|
-
const params = {};
|
|
987
|
-
if (Array.isArray(value)) {
|
|
988
|
-
params[this.name] = value
|
|
989
|
-
.filter((item) => !!item.value)
|
|
990
|
-
.map((item) => item.value)
|
|
991
|
-
.join(',');
|
|
992
|
-
}
|
|
993
|
-
else {
|
|
994
|
-
params[name] = value;
|
|
995
|
-
}
|
|
996
|
-
return params;
|
|
997
|
-
}
|
|
998
|
-
get isChipVisible() {
|
|
999
|
-
return Array.isArray(this.model) && this.model.length > 0;
|
|
1000
|
-
}
|
|
1001
|
-
getChipsContent() {
|
|
1002
|
-
return this.model
|
|
1003
|
-
.reduce((acc, i) => {
|
|
1004
|
-
acc.push(i.name);
|
|
1005
|
-
return acc;
|
|
1006
|
-
}, [])
|
|
1007
|
-
.join(', ');
|
|
1008
|
-
}
|
|
1009
|
-
_init() {
|
|
1010
|
-
if (this.model === undefined) {
|
|
1011
|
-
this._model = [];
|
|
1012
|
-
}
|
|
1013
|
-
}
|
|
1014
|
-
_parseConfig(item) {
|
|
1015
|
-
var _a;
|
|
1016
|
-
this.chipImage = (_a = item.chipImage) !== null && _a !== void 0 ? _a : 'image';
|
|
1017
|
-
this.chipIcon = item.chipIcon;
|
|
1018
|
-
this.chipIconColor = item.chipIconColor;
|
|
1019
|
-
this.chipColor = item.chipColor;
|
|
1020
|
-
this.chipBackground = item.chipBackground;
|
|
1021
|
-
this.chipClass = item.chipClass;
|
|
1022
|
-
super._parseConfig(item);
|
|
1023
|
-
}
|
|
1024
|
-
_clearValue(defaultValue = undefined) {
|
|
1025
|
-
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : [];
|
|
1026
|
-
this.search = '';
|
|
1027
|
-
}
|
|
1028
|
-
_setModel(value) {
|
|
1029
|
-
super._setModel(value || []);
|
|
1030
|
-
}
|
|
1031
|
-
}
|
|
1032
|
-
|
|
1033
|
-
class AutocompleteItem extends BaseAutocompleteItem {
|
|
1034
|
-
static create(config, filter) {
|
|
1035
|
-
return new AutocompleteItem(config, null, filter);
|
|
1036
|
-
}
|
|
1037
|
-
get value() {
|
|
1038
|
-
let value = clone(this.model);
|
|
1039
|
-
if (!this.model || this.model.value === undefined) {
|
|
1040
|
-
return undefined;
|
|
1041
|
-
}
|
|
1042
|
-
value = this.model.value;
|
|
1043
|
-
return value;
|
|
1044
|
-
}
|
|
1045
|
-
get queryObject() {
|
|
1046
|
-
const value = this.value;
|
|
1047
|
-
const name = this.name;
|
|
1048
|
-
const params = {};
|
|
1049
|
-
params[name] = value;
|
|
1050
|
-
return params;
|
|
1051
|
-
}
|
|
1052
|
-
getChipsContent() {
|
|
1053
|
-
return this.model ? this.model.name : '';
|
|
1054
|
-
}
|
|
1055
|
-
_init() {
|
|
1056
|
-
//
|
|
1057
|
-
}
|
|
1058
|
-
_clearValue(defaultValue = undefined) {
|
|
1059
|
-
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;
|
|
1060
|
-
this.search = '';
|
|
1061
|
-
}
|
|
1062
|
-
}
|
|
1063
|
-
|
|
1064
|
-
class CheckboxItem extends BaseItem {
|
|
1065
|
-
static create(config, filter) {
|
|
1066
|
-
return new CheckboxItem(config, null, filter);
|
|
615
|
+
return new CheckboxItem(config, null, filter);
|
|
1067
616
|
}
|
|
1068
617
|
get isTypeCheckbox() {
|
|
1069
618
|
return true;
|
|
@@ -1200,9 +749,232 @@ var ItemDateMode;
|
|
|
1200
749
|
|
|
1201
750
|
class BaseDateItem extends BaseItem {
|
|
1202
751
|
get value() {
|
|
1203
|
-
const value = clone(this.model);
|
|
1204
|
-
if (!value || !isValid(value) || !isDate(value)) {
|
|
1205
|
-
return undefined;
|
|
752
|
+
const value = clone(this.model);
|
|
753
|
+
if (!value || !isValid(value) || !isDate(value)) {
|
|
754
|
+
return undefined;
|
|
755
|
+
}
|
|
756
|
+
return value;
|
|
757
|
+
}
|
|
758
|
+
get queryObject() {
|
|
759
|
+
const value = this.value;
|
|
760
|
+
const name = this.name;
|
|
761
|
+
const params = {};
|
|
762
|
+
params[name] = value;
|
|
763
|
+
return params;
|
|
764
|
+
}
|
|
765
|
+
get persistanceObject() {
|
|
766
|
+
const value = this.queryObject[this.name];
|
|
767
|
+
return {
|
|
768
|
+
[this.name]: value ? simpleFormat(value) : undefined,
|
|
769
|
+
};
|
|
770
|
+
}
|
|
771
|
+
_validateModel() {
|
|
772
|
+
}
|
|
773
|
+
_setModel(value) {
|
|
774
|
+
if (value) {
|
|
775
|
+
if (!isDate(value) || !isValid(value)) {
|
|
776
|
+
value = parseISO(value);
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
super._setModel(value);
|
|
780
|
+
}
|
|
781
|
+
_parseConfig(item) {
|
|
782
|
+
this.maxYear = item.maxYear;
|
|
783
|
+
this.mode = item.mode || ItemDateMode.Calendar;
|
|
784
|
+
super._parseConfig(item);
|
|
785
|
+
}
|
|
786
|
+
_init() {
|
|
787
|
+
if (!this.label) {
|
|
788
|
+
this.label = ['Min', 'Max'];
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
class DateItem extends BaseDateItem {
|
|
794
|
+
static create(config, filter) {
|
|
795
|
+
return new DateItem(config, null, filter);
|
|
796
|
+
}
|
|
797
|
+
getChipsContent(type = null) {
|
|
798
|
+
let dateFormat = 'date';
|
|
799
|
+
if (this.mode === ItemDateMode.ScrollMonthYear) {
|
|
800
|
+
dateFormat = 'full-date-dayless';
|
|
801
|
+
}
|
|
802
|
+
return format(this.model, dateFormat);
|
|
803
|
+
}
|
|
804
|
+
_clearValue(defaultValue = undefined) {
|
|
805
|
+
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
function getRangeName(configCase, name, range) {
|
|
810
|
+
if (configCase === 'snake') {
|
|
811
|
+
return name.concat('_').concat(range);
|
|
812
|
+
}
|
|
813
|
+
if (configCase === 'camel') {
|
|
814
|
+
return name.concat(range.charAt(0).toUpperCase()).concat(range.slice(1));
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
class BaseDateRangeItem extends BaseItem {
|
|
819
|
+
get isTypeDateRange() {
|
|
820
|
+
return this.type === ItemType.DateRange;
|
|
821
|
+
}
|
|
822
|
+
get isTypeDateTimeRange() {
|
|
823
|
+
return this.type === ItemType.DateTimeRange;
|
|
824
|
+
}
|
|
825
|
+
get isChipVisible() {
|
|
826
|
+
return this.model && (this.model.from !== undefined || this.model.to !== undefined);
|
|
827
|
+
}
|
|
828
|
+
get value() {
|
|
829
|
+
let value = clone(this.model);
|
|
830
|
+
if (!isObject(this.model) ||
|
|
831
|
+
(isEmpty(this.model.from, { zero: true }) && isEmpty(this.model.to, { zero: true }))) {
|
|
832
|
+
value = undefined;
|
|
833
|
+
}
|
|
834
|
+
if (isEmpty(value, { zero: true })) {
|
|
835
|
+
return undefined;
|
|
836
|
+
}
|
|
837
|
+
let from = value.from;
|
|
838
|
+
let to = value.to;
|
|
839
|
+
value = {};
|
|
840
|
+
if (from) {
|
|
841
|
+
if (isString(from)) {
|
|
842
|
+
from = parseISO(from);
|
|
843
|
+
}
|
|
844
|
+
if (isValid(from) && isDate(from)) {
|
|
845
|
+
value.from = from;
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
if (to) {
|
|
849
|
+
if (isString(to)) {
|
|
850
|
+
to = parseISO(to);
|
|
851
|
+
}
|
|
852
|
+
if (isValid(to) && isDate(to)) {
|
|
853
|
+
value.to = to;
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
return value;
|
|
857
|
+
}
|
|
858
|
+
get queryObject() {
|
|
859
|
+
const value = this.value || {};
|
|
860
|
+
const name = this.name;
|
|
861
|
+
const paramFromName = getRangeName(this.case, name, 'from');
|
|
862
|
+
const paramToName = getRangeName(this.case, name, 'to');
|
|
863
|
+
return {
|
|
864
|
+
[paramFromName]: value.from || undefined,
|
|
865
|
+
[paramToName]: value.to || undefined,
|
|
866
|
+
};
|
|
867
|
+
}
|
|
868
|
+
get persistanceObject() {
|
|
869
|
+
const query = this.queryObject;
|
|
870
|
+
return Object.keys(this.queryObject)
|
|
871
|
+
.reduce((acc, key) => {
|
|
872
|
+
if (!!query[key]) {
|
|
873
|
+
acc[key] = simpleFormat(query[key]);
|
|
874
|
+
}
|
|
875
|
+
else {
|
|
876
|
+
acc[key] = query[key];
|
|
877
|
+
}
|
|
878
|
+
return acc;
|
|
879
|
+
}, {});
|
|
880
|
+
}
|
|
881
|
+
getChipsContent(type = null) {
|
|
882
|
+
const formatTo = this.type === ItemType.DateRange ? 'date' : 'date-time';
|
|
883
|
+
if (type === 'from') {
|
|
884
|
+
const from = this.model.from;
|
|
885
|
+
return `${format(from, formatTo)}`;
|
|
886
|
+
}
|
|
887
|
+
else if (type === 'to') {
|
|
888
|
+
const to = this.model.to;
|
|
889
|
+
return `${format(to, formatTo)}`;
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
clearDateRange(type = null, defaultValue = undefined) {
|
|
893
|
+
if (type === 'from') {
|
|
894
|
+
delete this.model.from;
|
|
895
|
+
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.from) {
|
|
896
|
+
this.model.from = defaultValue.from;
|
|
897
|
+
}
|
|
898
|
+
this.model = Object.assign({}, this.model);
|
|
899
|
+
}
|
|
900
|
+
else if (type === 'to') {
|
|
901
|
+
delete this.model.to;
|
|
902
|
+
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.to) {
|
|
903
|
+
this.model.to = defaultValue.to;
|
|
904
|
+
}
|
|
905
|
+
this.model = Object.assign({}, this.model);
|
|
906
|
+
}
|
|
907
|
+
else {
|
|
908
|
+
if (defaultValue) {
|
|
909
|
+
this.model = Object.assign({}, defaultValue);
|
|
910
|
+
}
|
|
911
|
+
else {
|
|
912
|
+
this.model = {};
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
}
|
|
916
|
+
_validateModel() {
|
|
917
|
+
}
|
|
918
|
+
_setModel(value) {
|
|
919
|
+
if (value) {
|
|
920
|
+
if (value.from && (!isDate(value.from) || !isValid(value.from))) {
|
|
921
|
+
value.from = parseISO(value.from);
|
|
922
|
+
}
|
|
923
|
+
if (value.to && (!isDate(value.to) || !isValid(value.to))) {
|
|
924
|
+
value.to = parseISO(value.to);
|
|
925
|
+
}
|
|
926
|
+
}
|
|
927
|
+
super._setModel(value);
|
|
928
|
+
}
|
|
929
|
+
_parseConfig(item) {
|
|
930
|
+
var _a, _b;
|
|
931
|
+
this.case = (_b = (_a = this._additionalConfig) === null || _a === void 0 ? void 0 : _a.case) !== null && _b !== void 0 ? _b : 'camel';
|
|
932
|
+
super._parseConfig(item);
|
|
933
|
+
}
|
|
934
|
+
_init() {
|
|
935
|
+
if (!this.label) {
|
|
936
|
+
this.label = ['Date From', 'Date To'];
|
|
937
|
+
}
|
|
938
|
+
if (!this.model) {
|
|
939
|
+
this.model = this.defaultValue || {};
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
_clearValue(defaultValue = undefined) {
|
|
943
|
+
var _a;
|
|
944
|
+
this.model = (_a = this.defaultValue) !== null && _a !== void 0 ? _a : {};
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
class DateRangeItem extends BaseDateRangeItem {
|
|
949
|
+
static create(config, filter) {
|
|
950
|
+
return new DateRangeItem(config, null, filter);
|
|
951
|
+
}
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
class DateTimeItem extends BaseDateItem {
|
|
955
|
+
static create(config, filter) {
|
|
956
|
+
return new DateTimeItem(config, null, filter);
|
|
957
|
+
}
|
|
958
|
+
_clearValue(defaultValue = undefined) {
|
|
959
|
+
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
class DateTimeRangeItem extends BaseDateRangeItem {
|
|
964
|
+
static create(config, filter) {
|
|
965
|
+
return new DateTimeRangeItem(config, null, filter);
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
class RangeItem extends BaseItem {
|
|
970
|
+
static create(config, additionalConfig, filter) {
|
|
971
|
+
return new RangeItem(config, additionalConfig, filter);
|
|
972
|
+
}
|
|
973
|
+
get value() {
|
|
974
|
+
let value = clone(this.model);
|
|
975
|
+
if (!isObject(this.model) ||
|
|
976
|
+
(isEmpty(this.model.max, { zero: true }) && isEmpty(this.model.min, { zero: true }))) {
|
|
977
|
+
value = undefined;
|
|
1206
978
|
}
|
|
1207
979
|
return value;
|
|
1208
980
|
}
|
|
@@ -1210,59 +982,67 @@ class BaseDateItem extends BaseItem {
|
|
|
1210
982
|
const value = this.value;
|
|
1211
983
|
const name = this.name;
|
|
1212
984
|
const params = {};
|
|
1213
|
-
|
|
985
|
+
const paramMinName = getRangeName(this.case, name, 'min');
|
|
986
|
+
const paramMaxName = getRangeName(this.case, name, 'max');
|
|
987
|
+
if (isObject(value)) {
|
|
988
|
+
params[paramMinName] = value.min || undefined;
|
|
989
|
+
params[paramMaxName] = value.max || undefined;
|
|
990
|
+
}
|
|
991
|
+
else {
|
|
992
|
+
params[paramMinName] = undefined;
|
|
993
|
+
params[paramMaxName] = undefined;
|
|
994
|
+
}
|
|
1214
995
|
return params;
|
|
1215
996
|
}
|
|
1216
|
-
get
|
|
1217
|
-
|
|
1218
|
-
return {
|
|
1219
|
-
[this.name]: value ? simpleFormat(value) : undefined,
|
|
1220
|
-
};
|
|
997
|
+
get isChipVisible() {
|
|
998
|
+
return this.model && (this.model.min !== undefined || this.model.max !== undefined);
|
|
1221
999
|
}
|
|
1222
|
-
|
|
1000
|
+
getChipsContent(type) {
|
|
1001
|
+
if (type === 'from') {
|
|
1002
|
+
const min = this.model.min;
|
|
1003
|
+
return `${min}`;
|
|
1004
|
+
}
|
|
1005
|
+
else if (type === 'to') {
|
|
1006
|
+
const max = this.model.max;
|
|
1007
|
+
return `${max}`;
|
|
1008
|
+
}
|
|
1223
1009
|
}
|
|
1224
|
-
|
|
1225
|
-
if (
|
|
1226
|
-
|
|
1227
|
-
|
|
1010
|
+
clearRange(type = null, defaultValue = undefined) {
|
|
1011
|
+
if (type === 'from') {
|
|
1012
|
+
delete this.model.min;
|
|
1013
|
+
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.min) {
|
|
1014
|
+
this.model.min = defaultValue.min;
|
|
1228
1015
|
}
|
|
1016
|
+
this.model = Object.assign({}, this.model);
|
|
1229
1017
|
}
|
|
1230
|
-
|
|
1018
|
+
else if (type === 'to') {
|
|
1019
|
+
delete this.model.max;
|
|
1020
|
+
if (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.max) {
|
|
1021
|
+
this.model.max = defaultValue.max;
|
|
1022
|
+
}
|
|
1023
|
+
this.model = Object.assign({}, this.model);
|
|
1024
|
+
}
|
|
1025
|
+
else {
|
|
1026
|
+
this.model = defaultValue ? Object.assign({}, defaultValue) : {};
|
|
1027
|
+
}
|
|
1028
|
+
}
|
|
1029
|
+
_validateModel() {
|
|
1231
1030
|
}
|
|
1232
1031
|
_parseConfig(item) {
|
|
1233
|
-
|
|
1234
|
-
this.
|
|
1032
|
+
var _a, _b;
|
|
1033
|
+
this.options = item.options;
|
|
1034
|
+
this.prefix = item.prefix;
|
|
1035
|
+
this.suffix = item.suffix;
|
|
1036
|
+
this.case = (_b = (_a = this._additionalConfig) === null || _a === void 0 ? void 0 : _a.case) !== null && _b !== void 0 ? _b : 'camel';
|
|
1235
1037
|
super._parseConfig(item);
|
|
1236
1038
|
}
|
|
1237
1039
|
_init() {
|
|
1238
1040
|
if (!this.label) {
|
|
1239
1041
|
this.label = ['Min', 'Max'];
|
|
1240
1042
|
}
|
|
1241
|
-
|
|
1242
|
-
}
|
|
1243
|
-
|
|
1244
|
-
class DateItem extends BaseDateItem {
|
|
1245
|
-
static create(config, filter) {
|
|
1246
|
-
return new DateItem(config, null, filter);
|
|
1247
|
-
}
|
|
1248
|
-
getChipsContent(type = null) {
|
|
1249
|
-
let dateFormat = 'date';
|
|
1250
|
-
if (this.mode === ItemDateMode.ScrollMonthYear) {
|
|
1251
|
-
dateFormat = 'full-date-dayless';
|
|
1043
|
+
if (!this.model) {
|
|
1044
|
+
this.model = this.defaultValue || {};
|
|
1252
1045
|
}
|
|
1253
|
-
return format(this.model, dateFormat);
|
|
1254
|
-
}
|
|
1255
|
-
_clearValue(defaultValue = undefined) {
|
|
1256
|
-
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;
|
|
1257
|
-
}
|
|
1258
|
-
}
|
|
1259
|
-
|
|
1260
|
-
class DateTimeItem extends BaseDateItem {
|
|
1261
|
-
static create(config, filter) {
|
|
1262
|
-
return new DateTimeItem(config, null, filter);
|
|
1263
|
-
}
|
|
1264
|
-
_clearValue(defaultValue = undefined) {
|
|
1265
|
-
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;
|
|
1266
1046
|
}
|
|
1267
1047
|
}
|
|
1268
1048
|
|
|
@@ -1385,6 +1165,99 @@ class TextItem extends BaseItem {
|
|
|
1385
1165
|
}
|
|
1386
1166
|
}
|
|
1387
1167
|
|
|
1168
|
+
function parseDate(value) {
|
|
1169
|
+
if (value && (!isDate(value) || !isValid(value))) {
|
|
1170
|
+
return parseISO(value);
|
|
1171
|
+
}
|
|
1172
|
+
return value;
|
|
1173
|
+
}
|
|
1174
|
+
|
|
1175
|
+
class WeekItem extends BaseItem {
|
|
1176
|
+
static create(config, filter) {
|
|
1177
|
+
return new WeekItem(config, null, filter);
|
|
1178
|
+
}
|
|
1179
|
+
get value() {
|
|
1180
|
+
let value = clone(this.model);
|
|
1181
|
+
if (!isObject(this.model) ||
|
|
1182
|
+
(isEmpty(this.model.from, { zero: true }) && isEmpty(this.model.to, { zero: true }))) {
|
|
1183
|
+
value = undefined;
|
|
1184
|
+
}
|
|
1185
|
+
if (isEmpty(value, { zero: true })) {
|
|
1186
|
+
return undefined;
|
|
1187
|
+
}
|
|
1188
|
+
let from = value.from;
|
|
1189
|
+
let to = value.to;
|
|
1190
|
+
const period = value.period;
|
|
1191
|
+
value = {};
|
|
1192
|
+
if (from) {
|
|
1193
|
+
if (isString(from)) {
|
|
1194
|
+
from = parseISO(from);
|
|
1195
|
+
}
|
|
1196
|
+
if (isValid(from) && isDate(from)) {
|
|
1197
|
+
value.from = from;
|
|
1198
|
+
}
|
|
1199
|
+
}
|
|
1200
|
+
if (to) {
|
|
1201
|
+
if (isString(to)) {
|
|
1202
|
+
to = parseISO(to);
|
|
1203
|
+
}
|
|
1204
|
+
if (isValid(to) && isDate(to)) {
|
|
1205
|
+
value.to = to;
|
|
1206
|
+
}
|
|
1207
|
+
}
|
|
1208
|
+
if (period) {
|
|
1209
|
+
value.period = isString(period) ? parseInt(period, 10) : period;
|
|
1210
|
+
}
|
|
1211
|
+
return value;
|
|
1212
|
+
}
|
|
1213
|
+
get queryObject() {
|
|
1214
|
+
const value = this.value;
|
|
1215
|
+
const name = this.name;
|
|
1216
|
+
const paramFromName = getRangeName('camel', name, 'from');
|
|
1217
|
+
const paramToName = getRangeName('camel', name, 'to');
|
|
1218
|
+
const paramPeriodName = `${name}Period`;
|
|
1219
|
+
return {
|
|
1220
|
+
[paramFromName]: (value === null || value === void 0 ? void 0 : value.from) || undefined,
|
|
1221
|
+
[paramToName]: (value === null || value === void 0 ? void 0 : value.to) || undefined,
|
|
1222
|
+
[paramPeriodName]: (value === null || value === void 0 ? void 0 : value.period) || undefined,
|
|
1223
|
+
};
|
|
1224
|
+
}
|
|
1225
|
+
get persistanceObject() {
|
|
1226
|
+
const query = this.queryObject;
|
|
1227
|
+
const name = this.name;
|
|
1228
|
+
const paramFromName = getRangeName('camel', name, 'from');
|
|
1229
|
+
const paramFromValue = query[paramFromName] && simpleFormat(query[paramFromName]) || query[paramFromName];
|
|
1230
|
+
const paramToName = getRangeName('camel', name, 'to');
|
|
1231
|
+
const paramToValue = query[paramToName] && simpleFormat(query[paramToName]) || query[paramToName];
|
|
1232
|
+
const paramPeriodName = `${name}Period`;
|
|
1233
|
+
return {
|
|
1234
|
+
[paramFromName]: paramFromValue,
|
|
1235
|
+
[paramToName]: paramToValue,
|
|
1236
|
+
[paramPeriodName]: query[paramPeriodName],
|
|
1237
|
+
};
|
|
1238
|
+
}
|
|
1239
|
+
getChipsContent(type = null) {
|
|
1240
|
+
return formatPeriodObject(this.value);
|
|
1241
|
+
}
|
|
1242
|
+
_validateModel() { }
|
|
1243
|
+
_setModel(value) {
|
|
1244
|
+
if (value) {
|
|
1245
|
+
value.from = parseDate(value.from);
|
|
1246
|
+
value.to = parseDate(value.to);
|
|
1247
|
+
value.period = parseInt(value.period, 10) || undefined;
|
|
1248
|
+
}
|
|
1249
|
+
super._setModel(value);
|
|
1250
|
+
}
|
|
1251
|
+
_parseConfig(item) {
|
|
1252
|
+
super._parseConfig(item);
|
|
1253
|
+
this.seedDate = item.seedDate;
|
|
1254
|
+
}
|
|
1255
|
+
_init() { }
|
|
1256
|
+
_clearValue(defaultValue = undefined) {
|
|
1257
|
+
this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : undefined;
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1388
1261
|
function createFilterItem(item, config, filter) {
|
|
1389
1262
|
switch (item.type) {
|
|
1390
1263
|
case ItemType.Select: {
|
|
@@ -1842,23 +1715,150 @@ class FsFilterItemsStore {
|
|
|
1842
1715
|
{ name: 'Descending', value: 'desc' },
|
|
1843
1716
|
],
|
|
1844
1717
|
};
|
|
1845
|
-
if (this._config.sort && this._config.sort.direction) {
|
|
1846
|
-
sortDirectionItem.default = this._config.sort.direction;
|
|
1847
|
-
}
|
|
1848
|
-
this.sortDirectionItem = new SimpleSelectItem(sortDirectionItem, null, this.filter);
|
|
1718
|
+
if (this._config.sort && this._config.sort.direction) {
|
|
1719
|
+
sortDirectionItem.default = this._config.sort.direction;
|
|
1720
|
+
}
|
|
1721
|
+
this.sortDirectionItem = new SimpleSelectItem(sortDirectionItem, null, this.filter);
|
|
1722
|
+
}
|
|
1723
|
+
}
|
|
1724
|
+
_setKeywordItem() {
|
|
1725
|
+
this.keywordItem = this
|
|
1726
|
+
.items
|
|
1727
|
+
.find((item) => item.isTypeKeyword);
|
|
1728
|
+
}
|
|
1729
|
+
}
|
|
1730
|
+
FsFilterItemsStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterItemsStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1731
|
+
FsFilterItemsStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterItemsStore });
|
|
1732
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterItemsStore, decorators: [{
|
|
1733
|
+
type: Injectable
|
|
1734
|
+
}], ctorParameters: function () { return []; } });
|
|
1735
|
+
|
|
1736
|
+
function tryConvertToNumber(val) {
|
|
1737
|
+
return isNaN(val)
|
|
1738
|
+
? val
|
|
1739
|
+
: +val;
|
|
1740
|
+
}
|
|
1741
|
+
|
|
1742
|
+
function parseItemValueFromStored(item, params, paramCase) {
|
|
1743
|
+
const param = params[item.name];
|
|
1744
|
+
switch (item.type) {
|
|
1745
|
+
case ItemType.Range: {
|
|
1746
|
+
const min = params[getRangeName(paramCase, item.name, 'min')];
|
|
1747
|
+
const max = params[getRangeName(paramCase, item.name, 'max')];
|
|
1748
|
+
return { min: min, max: max };
|
|
1749
|
+
}
|
|
1750
|
+
case ItemType.DateRange:
|
|
1751
|
+
case ItemType.DateTimeRange: {
|
|
1752
|
+
const from = params[getRangeName(item.case, item.name, 'from')];
|
|
1753
|
+
const to = params[getRangeName(item.case, item.name, 'to')];
|
|
1754
|
+
return { from: from, to: to };
|
|
1755
|
+
}
|
|
1756
|
+
case ItemType.Week: {
|
|
1757
|
+
const from = params[getRangeName('camel', item.name, 'from')];
|
|
1758
|
+
const to = params[getRangeName('camel', item.name, 'to')];
|
|
1759
|
+
const period = params[`${item.name}Period`];
|
|
1760
|
+
return { from, to, period };
|
|
1761
|
+
}
|
|
1762
|
+
case ItemType.Select: {
|
|
1763
|
+
if (item.multiple && !!param) {
|
|
1764
|
+
const values = param.split(',');
|
|
1765
|
+
if (item.isolate) {
|
|
1766
|
+
const isolatedValue = Array.isArray(item.isolate.value)
|
|
1767
|
+
? item.isolate.value
|
|
1768
|
+
: [item.isolate.value];
|
|
1769
|
+
item.isolate.enabled = arraysHaveSameElements(isolatedValue, values);
|
|
1770
|
+
return item.isolate.enabled
|
|
1771
|
+
? isolatedValue
|
|
1772
|
+
: values;
|
|
1773
|
+
}
|
|
1774
|
+
return values;
|
|
1775
|
+
}
|
|
1776
|
+
else {
|
|
1777
|
+
return param;
|
|
1778
|
+
}
|
|
1779
|
+
}
|
|
1780
|
+
case ItemType.Checkbox: {
|
|
1781
|
+
if (param === 'true') {
|
|
1782
|
+
return true === item.checked;
|
|
1783
|
+
}
|
|
1784
|
+
else {
|
|
1785
|
+
return param === item.checked;
|
|
1786
|
+
}
|
|
1787
|
+
}
|
|
1788
|
+
case ItemType.AutoComplete: {
|
|
1789
|
+
const filterParts = filterFromQueryParam(param);
|
|
1790
|
+
return {
|
|
1791
|
+
name: filterParts[1],
|
|
1792
|
+
value: tryConvertToNumber(filterParts[0])
|
|
1793
|
+
};
|
|
1794
|
+
}
|
|
1795
|
+
case ItemType.AutoCompleteChips:
|
|
1796
|
+
case ItemType.Chips: {
|
|
1797
|
+
const filterParts = param.split(',');
|
|
1798
|
+
return filterParts.reduce((arry, value) => {
|
|
1799
|
+
const chipParts = filterFromQueryParam(value);
|
|
1800
|
+
arry.push({
|
|
1801
|
+
name: chipParts[1],
|
|
1802
|
+
value: tryConvertToNumber(chipParts[0]),
|
|
1803
|
+
});
|
|
1804
|
+
return arry;
|
|
1805
|
+
}, []);
|
|
1806
|
+
}
|
|
1807
|
+
default: {
|
|
1808
|
+
return param;
|
|
1849
1809
|
}
|
|
1850
|
-
}
|
|
1851
|
-
_setKeywordItem() {
|
|
1852
|
-
this.keywordItem = this
|
|
1853
|
-
.items
|
|
1854
|
-
.find((item) => item.isTypeKeyword);
|
|
1855
1810
|
}
|
|
1856
1811
|
}
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1812
|
+
function arraysHaveSameElements(arr1, arr2) {
|
|
1813
|
+
arr1 = [...arr1].sort();
|
|
1814
|
+
arr2 = [...arr2].sort();
|
|
1815
|
+
return arr1.some((item) => {
|
|
1816
|
+
return arr2.includes(item);
|
|
1817
|
+
});
|
|
1818
|
+
}
|
|
1819
|
+
|
|
1820
|
+
/**
|
|
1821
|
+
* We need this function because when we store persisted/query/remote filter values
|
|
1822
|
+
* it stores with different format, ex.: Range will be stored as RangeFrom && RangeTo
|
|
1823
|
+
* and in this case we don't know how to restroe those values.
|
|
1824
|
+
*
|
|
1825
|
+
* This function do convertation for those kinds of stored values
|
|
1826
|
+
*
|
|
1827
|
+
* @param params
|
|
1828
|
+
* @param items
|
|
1829
|
+
* @param paramsCase
|
|
1830
|
+
*/
|
|
1831
|
+
function restoreItems(params, items, paramsCase) {
|
|
1832
|
+
const result = {};
|
|
1833
|
+
Object.keys(params)
|
|
1834
|
+
.forEach((name) => {
|
|
1835
|
+
const item = findItemWidthName(items, name);
|
|
1836
|
+
if (item) {
|
|
1837
|
+
result[item.name] = parseItemValueFromStored(item, params, paramsCase);
|
|
1838
|
+
}
|
|
1839
|
+
});
|
|
1840
|
+
return result;
|
|
1841
|
+
}
|
|
1842
|
+
function findItemWidthName(items, name) {
|
|
1843
|
+
return items
|
|
1844
|
+
.find((filterItem) => {
|
|
1845
|
+
if (filterItem instanceof RangeItem) {
|
|
1846
|
+
return name === getRangeName(filterItem.case, filterItem.name, 'min') ||
|
|
1847
|
+
name === getRangeName(filterItem.case, filterItem.name, 'max') ||
|
|
1848
|
+
name === filterItem.name;
|
|
1849
|
+
}
|
|
1850
|
+
else if (filterItem instanceof DateRangeItem || filterItem instanceof DateTimeRangeItem) {
|
|
1851
|
+
return name === getRangeName(filterItem.case, filterItem.name, 'from') ||
|
|
1852
|
+
name === getRangeName(filterItem.case, filterItem.name, 'to');
|
|
1853
|
+
}
|
|
1854
|
+
else if (filterItem instanceof WeekItem) {
|
|
1855
|
+
return name === getRangeName('camel', filterItem.name, 'from')
|
|
1856
|
+
|| name === getRangeName('camel', filterItem.name, 'to')
|
|
1857
|
+
|| name === `${filterItem.name}Period`;
|
|
1858
|
+
}
|
|
1859
|
+
return filterItem.name === name;
|
|
1860
|
+
});
|
|
1861
|
+
}
|
|
1862
1862
|
|
|
1863
1863
|
const FILTER_STORE_KEY = 'fs-filter-persist';
|
|
1864
1864
|
class PersistanceParamsController extends FsPersistanceStore {
|
|
@@ -1891,15 +1891,17 @@ class PersistanceParamsController extends FsPersistanceStore {
|
|
|
1891
1891
|
}
|
|
1892
1892
|
}
|
|
1893
1893
|
}
|
|
1894
|
-
PersistanceParamsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1895
|
-
PersistanceParamsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1896
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1894
|
+
PersistanceParamsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PersistanceParamsController, deps: [{ token: i1.FsStore }, { token: i1$1.ActivatedRoute }, { token: i3.Location }, { token: FsFilterItemsStore }, { token: i1$2.MatDialogRef, optional: true }, { token: i6.DrawerRef, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1895
|
+
PersistanceParamsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PersistanceParamsController });
|
|
1896
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: PersistanceParamsController, decorators: [{
|
|
1897
1897
|
type: Injectable
|
|
1898
|
-
}], ctorParameters: function () {
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
type:
|
|
1902
|
-
|
|
1898
|
+
}], ctorParameters: function () {
|
|
1899
|
+
return [{ type: i1.FsStore }, { type: i1$1.ActivatedRoute }, { type: i3.Location }, { type: FsFilterItemsStore }, { type: i1$2.MatDialogRef, decorators: [{
|
|
1900
|
+
type: Optional
|
|
1901
|
+
}] }, { type: i6.DrawerRef, decorators: [{
|
|
1902
|
+
type: Optional
|
|
1903
|
+
}] }];
|
|
1904
|
+
} });
|
|
1903
1905
|
|
|
1904
1906
|
class QueryParamsController {
|
|
1905
1907
|
constructor(_router, _route, _location, _itemsStore) {
|
|
@@ -1953,9 +1955,9 @@ class QueryParamsController {
|
|
|
1953
1955
|
this._fetchedParams = restoreItems(this._route.snapshot.queryParams, items, this._paramsCase);
|
|
1954
1956
|
}
|
|
1955
1957
|
}
|
|
1956
|
-
QueryParamsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1957
|
-
QueryParamsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1958
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1958
|
+
QueryParamsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i3.Location }, { token: FsFilterItemsStore }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1959
|
+
QueryParamsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController });
|
|
1960
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController, decorators: [{
|
|
1959
1961
|
type: Injectable
|
|
1960
1962
|
}], ctorParameters: function () { return [{ type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: i3.Location }, { type: FsFilterItemsStore }]; } });
|
|
1961
1963
|
|
|
@@ -1987,18 +1989,17 @@ class FsFilterSavedFilterEditComponent {
|
|
|
1987
1989
|
this._saveCallback = this.data.saveCallback;
|
|
1988
1990
|
}
|
|
1989
1991
|
}
|
|
1990
|
-
FsFilterSavedFilterEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1991
|
-
FsFilterSavedFilterEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
1992
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1992
|
+
FsFilterSavedFilterEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterSavedFilterEditComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$2.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1993
|
+
FsFilterSavedFilterEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsFilterSavedFilterEditComponent, selector: "ng-component", ngImport: i0, template: "<form fsForm [submit]=\"save\">\n <h1 mat-dialog-title>\n Save Filter\n </h1>\n <div mat-dialog-content>\n <mat-form-field>\n <mat-label>Save as</mat-label>\n <mat-select [(ngModel)]=\"saveAsFilter\" name=\"saveAs\">\n <mat-option value=\"new\">New filter</mat-option>\n <mat-optgroup label=\"Saved filters:\">\n <ng-container *ngFor=\"let filter of savedFilters\">\n <mat-option [value]=\"filter\">{{ filter.name }}</mat-option>\n </ng-container>\n </mat-optgroup>\n </mat-select>\n </mat-form-field>\n <br>\n <mat-form-field *ngIf=\"saveAsFilter === 'new'\">\n <mat-label>Name</mat-label>\n <input matInput name=\"filter-name\" [(ngModel)]=\"savedFilterName\" required>\n </mat-form-field>\n </div>\n <div mat-dialog-actions>\n <button mat-button\n type=\"submit\"\n color=\"primary\">\n {{ saveAsFilter === 'new' ? 'Create' : 'Save' }}\n </button>\n\n <button mat-button\n type=\"button\"\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </div>\n</form>\n", components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i3$1.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { type: i1$4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.FsFormDirective, selector: "[fsForm]", inputs: ["wrapperSelector", "messageSelector", "hintSelector", "labelSelector", "autocomplete", "shortcuts", "confirm", "confirmDialog", "confirmDrawer", "confirmBrowser", "confirmTabs", "dirtySubmitButton", "submit", "successDelay", "errorDelay", "tabGroup", "deactivationGuard"], outputs: ["fsForm", "invalid", "valid", "submitted", "reseted", "cleared"], exportAs: ["fsForm"] }, { type: i1$2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1$2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1$3.MatLabel, selector: "mat-label" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$2.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"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i7.FsFormRequiredDirective, selector: "[fsFormRequired],[ngModel][required]", inputs: ["fsFormRequired", "required", "fsFormRequiredMessage"] }, { type: i1$2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i7.FsButtonDirective, selector: "[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]", inputs: ["name", "dirtySubmit", "form"] }, { type: i1$2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1994
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterSavedFilterEditComponent, decorators: [{
|
|
1993
1995
|
type: Component,
|
|
1994
|
-
args: [{
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
type:
|
|
2000
|
-
|
|
2001
|
-
}] }, { type: i1$2.MatDialogRef }]; } });
|
|
1996
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<form fsForm [submit]=\"save\">\n <h1 mat-dialog-title>\n Save Filter\n </h1>\n <div mat-dialog-content>\n <mat-form-field>\n <mat-label>Save as</mat-label>\n <mat-select [(ngModel)]=\"saveAsFilter\" name=\"saveAs\">\n <mat-option value=\"new\">New filter</mat-option>\n <mat-optgroup label=\"Saved filters:\">\n <ng-container *ngFor=\"let filter of savedFilters\">\n <mat-option [value]=\"filter\">{{ filter.name }}</mat-option>\n </ng-container>\n </mat-optgroup>\n </mat-select>\n </mat-form-field>\n <br>\n <mat-form-field *ngIf=\"saveAsFilter === 'new'\">\n <mat-label>Name</mat-label>\n <input matInput name=\"filter-name\" [(ngModel)]=\"savedFilterName\" required>\n </mat-form-field>\n </div>\n <div mat-dialog-actions>\n <button mat-button\n type=\"submit\"\n color=\"primary\">\n {{ saveAsFilter === 'new' ? 'Create' : 'Save' }}\n </button>\n\n <button mat-button\n type=\"button\"\n [mat-dialog-close]=\"null\">\n Cancel\n </button>\n </div>\n</form>\n" }]
|
|
1997
|
+
}], ctorParameters: function () {
|
|
1998
|
+
return [{ type: undefined, decorators: [{
|
|
1999
|
+
type: Inject,
|
|
2000
|
+
args: [MAT_DIALOG_DATA]
|
|
2001
|
+
}] }, { type: i1$2.MatDialogRef }];
|
|
2002
|
+
} });
|
|
2002
2003
|
|
|
2003
2004
|
class SavedFiltersController {
|
|
2004
2005
|
constructor(_itemsStore, _dialog) {
|
|
@@ -2148,9 +2149,9 @@ class SavedFiltersController {
|
|
|
2148
2149
|
this._enabled$.next(value);
|
|
2149
2150
|
}
|
|
2150
2151
|
}
|
|
2151
|
-
SavedFiltersController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2152
|
-
SavedFiltersController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2152
|
+
SavedFiltersController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SavedFiltersController, deps: [{ token: FsFilterItemsStore }, { token: i1$2.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2153
|
+
SavedFiltersController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SavedFiltersController });
|
|
2154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SavedFiltersController, decorators: [{
|
|
2154
2155
|
type: Injectable
|
|
2155
2156
|
}], ctorParameters: function () { return [{ type: FsFilterItemsStore }, { type: i1$2.MatDialog }]; } });
|
|
2156
2157
|
|
|
@@ -2294,220 +2295,39 @@ class ExternalParamsController {
|
|
|
2294
2295
|
onlyPresented: false,
|
|
2295
2296
|
items: targetItems,
|
|
2296
2297
|
persisted: true,
|
|
2297
|
-
}), targetItems);
|
|
2298
|
-
this._persistanceStore.save(params);
|
|
2299
|
-
}
|
|
2300
|
-
}
|
|
2301
|
-
ExternalParamsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ExternalParamsController, deps: [{ token: FsFilterItemsStore }, { token: PersistanceParamsController }, { token: QueryParamsController }, { token: SavedFiltersController }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2302
|
-
ExternalParamsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ExternalParamsController });
|
|
2303
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ExternalParamsController, decorators: [{
|
|
2304
|
-
type: Injectable
|
|
2305
|
-
}], ctorParameters: function () { return [{ type: FsFilterItemsStore }, { type: PersistanceParamsController }, { type: QueryParamsController }, { type: SavedFiltersController }]; } });
|
|
2306
|
-
|
|
2307
|
-
class ActionMenuItem {
|
|
2308
|
-
constructor(config = {}, _parent) {
|
|
2309
|
-
this._parent = _parent;
|
|
2310
|
-
this.items = [];
|
|
2311
|
-
this._isGroup = false;
|
|
2312
|
-
this._visible$ = new BehaviorSubject(true);
|
|
2313
|
-
this._disabled$ = new BehaviorSubject(false);
|
|
2314
|
-
this._init(config);
|
|
2315
|
-
}
|
|
2316
|
-
get isGroup() {
|
|
2317
|
-
return this._isGroup;
|
|
2318
|
-
}
|
|
2319
|
-
get visible() {
|
|
2320
|
-
return this._visible$.getValue();
|
|
2321
|
-
}
|
|
2322
|
-
get visible$() {
|
|
2323
|
-
return this._visible$.asObservable();
|
|
2324
|
-
}
|
|
2325
|
-
set disabled(value) {
|
|
2326
|
-
this._disabled$.next(value);
|
|
2327
|
-
}
|
|
2328
|
-
get disabled() {
|
|
2329
|
-
return this._disabled$.getValue();
|
|
2330
|
-
}
|
|
2331
|
-
get disabled$() {
|
|
2332
|
-
return this._disabled$.asObservable();
|
|
2333
|
-
}
|
|
2334
|
-
updateVisibility() {
|
|
2335
|
-
const visible = !!this._showFn ? this._showFn() : true;
|
|
2336
|
-
if (!visible || !this.isGroup) {
|
|
2337
|
-
this._visible$.next(visible);
|
|
2338
|
-
return;
|
|
2339
|
-
}
|
|
2340
|
-
const numberOfVisibleChildren = this.items
|
|
2341
|
-
.reduce((acc, item) => {
|
|
2342
|
-
item.updateVisibility();
|
|
2343
|
-
if (item.visible) {
|
|
2344
|
-
acc++;
|
|
2345
|
-
}
|
|
2346
|
-
return acc;
|
|
2347
|
-
}, 0);
|
|
2348
|
-
this._visible$.next(!!numberOfVisibleChildren);
|
|
2349
|
-
}
|
|
2350
|
-
_init(config) {
|
|
2351
|
-
this.label = config.label;
|
|
2352
|
-
this.icon = config.icon;
|
|
2353
|
-
this._showFn = config.show;
|
|
2354
|
-
if ('items' in config) {
|
|
2355
|
-
this._isGroup = true;
|
|
2356
|
-
if (Array.isArray(config.items)) {
|
|
2357
|
-
this.items = config
|
|
2358
|
-
.items
|
|
2359
|
-
.map((item) => new ActionMenuItem(item, this));
|
|
2360
|
-
}
|
|
2361
|
-
this.updateVisibility();
|
|
2362
|
-
}
|
|
2363
|
-
else {
|
|
2364
|
-
this.click = config.click;
|
|
2365
|
-
this.routerLink = config.link;
|
|
2366
|
-
if (!this._parent) {
|
|
2367
|
-
this.updateVisibility();
|
|
2368
|
-
}
|
|
2369
|
-
}
|
|
2370
|
-
}
|
|
2371
|
-
}
|
|
2372
|
-
|
|
2373
|
-
class Action {
|
|
2374
|
-
constructor(filterConfig, actionConfig = {}) {
|
|
2375
|
-
this.primary = true;
|
|
2376
|
-
this.isReorderAction = false;
|
|
2377
|
-
this.classArray = [];
|
|
2378
|
-
this.items = [];
|
|
2379
|
-
this._visible$ = new BehaviorSubject(true);
|
|
2380
|
-
this._disabled$ = new BehaviorSubject(false);
|
|
2381
|
-
this._init(filterConfig, actionConfig);
|
|
2382
|
-
}
|
|
2383
|
-
get visible() {
|
|
2384
|
-
return this._visible$.getValue();
|
|
2385
|
-
}
|
|
2386
|
-
get visible$() {
|
|
2387
|
-
return this._visible$.asObservable();
|
|
2388
|
-
}
|
|
2389
|
-
set disabled(value) {
|
|
2390
|
-
this._disabled$.next(value);
|
|
2391
|
-
}
|
|
2392
|
-
get disabled() {
|
|
2393
|
-
return this._disabled$.getValue();
|
|
2394
|
-
}
|
|
2395
|
-
get disabled$() {
|
|
2396
|
-
return this._disabled$.asObservable();
|
|
2397
|
-
}
|
|
2398
|
-
updateVisibility() {
|
|
2399
|
-
const visible = !!this._showFn ? this._showFn() : true;
|
|
2400
|
-
if (!visible || this.mode !== ActionMode.Menu) {
|
|
2401
|
-
this._visible$.next(visible);
|
|
2402
|
-
return;
|
|
2403
|
-
}
|
|
2404
|
-
const hasVisibleChildren = this.items.some((item) => item.visible);
|
|
2405
|
-
this._visible$.next(hasVisibleChildren);
|
|
2406
|
-
}
|
|
2407
|
-
updateDisabledState() {
|
|
2408
|
-
if (this._disabledFn) {
|
|
2409
|
-
this.disabled = this._disabledFn();
|
|
2410
|
-
}
|
|
2411
|
-
}
|
|
2412
|
-
_init(filterConfig, config = {}) {
|
|
2413
|
-
var _a, _b, _c, _d, _e, _f;
|
|
2414
|
-
config.mode = (_a = config.mode) !== null && _a !== void 0 ? _a : ActionMode.Button;
|
|
2415
|
-
this.primary = (_b = config.primary) !== null && _b !== void 0 ? _b : true;
|
|
2416
|
-
this.color = config.color;
|
|
2417
|
-
this.tooltip = config.tooltip;
|
|
2418
|
-
this.label = config.label;
|
|
2419
|
-
this.mode = config.mode;
|
|
2420
|
-
this.icon = config.icon;
|
|
2421
|
-
this.iconPlacement = config.iconPlacement;
|
|
2422
|
-
this._showFn = config.show;
|
|
2423
|
-
this.tabIndex = (_c = config.tabIndex) !== null && _c !== void 0 ? _c : 0;
|
|
2424
|
-
this.menu = config.menu;
|
|
2425
|
-
if (!this.type) {
|
|
2426
|
-
this.type = (config.type || ((_d = filterConfig.button) === null || _d === void 0 ? void 0 : _d.style) || ActionType.Raised);
|
|
2427
|
-
if (this.type === ActionType.Stroked && this.primary) {
|
|
2428
|
-
this.type = ActionType.Flat;
|
|
2429
|
-
}
|
|
2430
|
-
}
|
|
2431
|
-
if (config.multiple !== undefined) {
|
|
2432
|
-
this.multiple = config.multiple;
|
|
2433
|
-
}
|
|
2434
|
-
if (config.className) {
|
|
2435
|
-
this.className = config.className;
|
|
2436
|
-
this.classArray = this.className
|
|
2437
|
-
.split(' ');
|
|
2438
|
-
}
|
|
2439
|
-
if (this.primary) {
|
|
2440
|
-
this.color = 'primary';
|
|
2441
|
-
}
|
|
2442
|
-
switch (config.mode) {
|
|
2443
|
-
case ActionMode.Button:
|
|
2444
|
-
{
|
|
2445
|
-
this.customize = config.customize;
|
|
2446
|
-
this.click = (_e = config.click) !== null && _e !== void 0 ? _e : (() => { });
|
|
2447
|
-
this._disabledFn = config.disabled;
|
|
2448
|
-
this.updateDisabledState();
|
|
2449
|
-
}
|
|
2450
|
-
break;
|
|
2451
|
-
case ActionMode.Menu:
|
|
2452
|
-
{
|
|
2453
|
-
if (config.items && Array.isArray(config.items)) {
|
|
2454
|
-
this.items = config.items.map((item) => new ActionMenuItem(item));
|
|
2455
|
-
}
|
|
2456
|
-
}
|
|
2457
|
-
break;
|
|
2458
|
-
case ActionMode.File:
|
|
2459
|
-
{
|
|
2460
|
-
this.fileSelected = config.select;
|
|
2461
|
-
this.fileError = config.error;
|
|
2462
|
-
this.accept = config.accept;
|
|
2463
|
-
this.imageQuality = config.imageQuality;
|
|
2464
|
-
this.minWidth = config.minWidth;
|
|
2465
|
-
this.minHeight = config.minHeight;
|
|
2466
|
-
this.maxWidth = config.maxWidth;
|
|
2467
|
-
this.maxHeight = config.maxHeight;
|
|
2468
|
-
this.click = (_f = config.click) !== null && _f !== void 0 ? _f : (() => { });
|
|
2469
|
-
this._disabledFn = config.disabled;
|
|
2470
|
-
this.updateDisabledState();
|
|
2471
|
-
}
|
|
2472
|
-
break;
|
|
2473
|
-
}
|
|
2474
|
-
this.updateVisibility();
|
|
2298
|
+
}), targetItems);
|
|
2299
|
+
this._persistanceStore.save(params);
|
|
2475
2300
|
}
|
|
2476
|
-
}
|
|
2301
|
+
}
|
|
2302
|
+
ExternalParamsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ExternalParamsController, deps: [{ token: FsFilterItemsStore }, { token: PersistanceParamsController }, { token: QueryParamsController }, { token: SavedFiltersController }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2303
|
+
ExternalParamsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ExternalParamsController });
|
|
2304
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ExternalParamsController, decorators: [{
|
|
2305
|
+
type: Injectable
|
|
2306
|
+
}], ctorParameters: function () { return [{ type: FsFilterItemsStore }, { type: PersistanceParamsController }, { type: QueryParamsController }, { type: SavedFiltersController }]; } });
|
|
2477
2307
|
|
|
2478
2308
|
class FsFilterActionButtonComponent {
|
|
2479
2309
|
constructor() {
|
|
2480
2310
|
this.ActionType = ActionType;
|
|
2481
2311
|
}
|
|
2482
2312
|
}
|
|
2483
|
-
FsFilterActionButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2484
|
-
FsFilterActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
2485
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2313
|
+
FsFilterActionButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2314
|
+
FsFilterActionButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsFilterActionButtonComponent, selector: "fs-filter-action-button", inputs: { action: "action" }, host: { classAttribute: "action-button" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"action.type\">\n <button\n type=\"button\"\n *ngSwitchCase=\"ActionType.Icon\"\n mat-icon-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.Fab\"\n mat-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Mini Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.MiniFab\"\n mat-mini-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <button \n type=\"button\"\n *ngSwitchDefault\n mat-button\n [ngClass]=\"{ \n 'mat-raised-button': action.type === 'raised',\n 'mat-flat-button': action.type === 'flat',\n 'mat-stroked-button': action.type === 'stroked',\n 'mat-button': action.type === 'basic',\n 'mat-icon-button': action.type === 'icon'\n }\"\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [class]=\"action.classArray.join(' ')\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.icon else withIcon\">\n {{action.label}}\n </ng-container>\n\n <ng-template #withIcon>\n <mat-icon *ngIf=\"!action.iconPlacement || action.iconPlacement === 'left'\">{{action.icon}}</mat-icon>\n {{action.label}}\n <mat-icon *ngIf=\"action.iconPlacement === 'right'\">{{action.icon}}</mat-icon>\n </ng-template>\n </ng-template>\n</ng-container>\n", components: [{ type: i1$4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i7.FsButtonDirective, selector: "[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]", inputs: ["name", "dirtySubmit", "form"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterActionButtonComponent, decorators: [{
|
|
2486
2316
|
type: Component,
|
|
2487
|
-
args: [{
|
|
2488
|
-
selector: 'fs-filter-action-button',
|
|
2489
|
-
templateUrl: './action-button.component.html',
|
|
2490
|
-
host: {
|
|
2317
|
+
args: [{ selector: 'fs-filter-action-button', host: {
|
|
2491
2318
|
class: 'action-button',
|
|
2492
|
-
},
|
|
2493
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2494
|
-
}]
|
|
2319
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"action.type\">\n <button\n type=\"button\"\n *ngSwitchCase=\"ActionType.Icon\"\n mat-icon-button\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.Fab\"\n mat-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <!-- Mini Fab button -->\n <button \n type=\"button\"\n *ngSwitchCase=\"ActionType.MiniFab\"\n mat-mini-fab\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [ngClass]=\"action.classArray\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <button \n type=\"button\"\n *ngSwitchDefault\n mat-button\n [ngClass]=\"{ \n 'mat-raised-button': action.type === 'raised',\n 'mat-flat-button': action.type === 'flat',\n 'mat-stroked-button': action.type === 'stroked',\n 'mat-button': action.type === 'basic',\n 'mat-icon-button': action.type === 'icon'\n }\"\n (click)=\"action.click && action.click($event)\"\n [color]=\"action.color\"\n [class]=\"action.classArray.join(' ')\"\n [disabled]=\"action.disabled$ | async\"\n [tabIndex]=\"action.tabIndex\">\n <ng-template [ngTemplateOutlet]=\"buttonContent\"></ng-template>\n </button>\n\n <ng-template #buttonContent>\n <ng-container *ngIf=\"!action.icon else withIcon\">\n {{action.label}}\n </ng-container>\n\n <ng-template #withIcon>\n <mat-icon *ngIf=\"!action.iconPlacement || action.iconPlacement === 'left'\">{{action.icon}}</mat-icon>\n {{action.label}}\n <mat-icon *ngIf=\"action.iconPlacement === 'right'\">{{action.icon}}</mat-icon>\n </ng-template>\n </ng-template>\n</ng-container>\n" }]
|
|
2495
2320
|
}], propDecorators: { action: [{
|
|
2496
2321
|
type: Input
|
|
2497
2322
|
}] } });
|
|
2498
2323
|
|
|
2499
2324
|
class FsFilterActionKebabActionsComponent {
|
|
2500
2325
|
}
|
|
2501
|
-
FsFilterActionKebabActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2502
|
-
FsFilterActionKebabActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
2503
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2326
|
+
FsFilterActionKebabActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterActionKebabActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2327
|
+
FsFilterActionKebabActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsFilterActionKebabActionsComponent, selector: "fs-filter-action-kebab-actions", inputs: { kebabActions: "kebabActions" }, ngImport: i0, template: "<button \n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n [fsMenuTriggerFor]=\"kebabActionsMenu\">\n <mat-icon>more_vert</mat-icon>\n</button>\n<fs-menu #kebabActionsMenu>\n <ng-container *ngFor=\"let action of kebabActions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <!-- Case when actions was collapsed from action with mode = 'menu'-->\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group>\n <ng-template fs-group-menu-item-template>\n {{ action.label }} <mat-icon style=\"margin: 0;\">arrow_right</mat-icon> {{childAction.label}}\n </ng-template>\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template \n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template \n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{ action.label }} <mat-icon style=\"margin: 0;\">arrow_right</mat-icon>{{ childAction.label }}\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template \n fs-menu-file-item\n [fsClass]=\"action.classArray\"\n [multiple]=\"action.multiple\"\n [accept]=\"action.accept || '*'\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (error)=\"action.fileError($event)\"\n (select)=\"action.fileSelected($event)\"\n (click)=\"action.click($event)\">\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon> {{action.label}}\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-template \n fs-menu-item\n (click)=\"action.click($event)\"\n [fsClass]=\"action.classArray\">\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon> {{action.label}}\n </ng-template>\n </ng-container>\n\n </ng-container>\n </ng-container>\n</fs-menu>\n", styles: [".menu-button{width:36px;height:36px;line-height:36px}\n"], components: [{ type: i1$4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3$3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }], directives: [{ type: i3$3.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { type: i3$3.FsGroupMenuItemTemplateDirective, selector: "[fs-group-menu-item-template]" }, { type: i3$3.FsMenuFileItemDirective, selector: "[fs-menu-file-item]", inputs: ["multiple", "accept", "minWidth", "minHeight", "imageWidth", "imageHeight"], outputs: ["select", "error"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2328
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterActionKebabActionsComponent, decorators: [{
|
|
2504
2329
|
type: Component,
|
|
2505
|
-
args: [{
|
|
2506
|
-
selector: 'fs-filter-action-kebab-actions',
|
|
2507
|
-
styleUrls: ['./action-kebab-actions.component.scss'],
|
|
2508
|
-
templateUrl: './action-kebab-actions.component.html',
|
|
2509
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2510
|
-
}]
|
|
2330
|
+
args: [{ selector: 'fs-filter-action-kebab-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button \n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n [fsMenuTriggerFor]=\"kebabActionsMenu\">\n <mat-icon>more_vert</mat-icon>\n</button>\n<fs-menu #kebabActionsMenu>\n <ng-container *ngFor=\"let action of kebabActions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <!-- Case when actions was collapsed from action with mode = 'menu'-->\n <ng-container *ngSwitchCase=\"'menu'\">\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group>\n <ng-template fs-group-menu-item-template>\n {{ action.label }} <mat-icon style=\"margin: 0;\">arrow_right</mat-icon> {{childAction.label}}\n </ng-template>\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template \n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template \n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{ action.label }} <mat-icon style=\"margin: 0;\">arrow_right</mat-icon>{{ childAction.label }}\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <ng-template \n fs-menu-file-item\n [fsClass]=\"action.classArray\"\n [multiple]=\"action.multiple\"\n [accept]=\"action.accept || '*'\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (error)=\"action.fileError($event)\"\n (select)=\"action.fileSelected($event)\"\n (click)=\"action.click($event)\">\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon> {{action.label}}\n </ng-template>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <ng-template \n fs-menu-item\n (click)=\"action.click($event)\"\n [fsClass]=\"action.classArray\">\n <mat-icon *ngIf=\"action.icon\">{{action.icon}}</mat-icon> {{action.label}}\n </ng-template>\n </ng-container>\n\n </ng-container>\n </ng-container>\n</fs-menu>\n", styles: [".menu-button{width:36px;height:36px;line-height:36px}\n"] }]
|
|
2511
2331
|
}], propDecorators: { kebabActions: [{
|
|
2512
2332
|
type: Input
|
|
2513
2333
|
}] } });
|
|
@@ -2518,16 +2338,11 @@ class FsFilterActionsComponent {
|
|
|
2518
2338
|
this.actions = [];
|
|
2519
2339
|
}
|
|
2520
2340
|
}
|
|
2521
|
-
FsFilterActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2522
|
-
FsFilterActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
2523
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2341
|
+
FsFilterActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2342
|
+
FsFilterActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsFilterActionsComponent, selector: "fs-filter-actions", inputs: { kebabActions: "kebabActions", actions: "actions" }, ngImport: i0, template: "<!-- Buttons -->\n<ng-container *ngFor=\"let action of actions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"'button'\">\n <fs-filter-action-button\n [action]=\"action\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'menu'\">\n <fs-filter-action-button\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n\n <fs-menu #someRef>\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template\n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template\n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <fs-file\n class=\"action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n <fs-filter-action-button \n [action]=\"action\">\n </fs-filter-action-button>\n </fs-file>\n </ng-container>\n </ng-container>\n</ng-container>\n<!-- /Buttons -->\n<!-- menu -->\n<ng-container *ngIf=\"kebabActions?.length\">\n <fs-filter-action-kebab-actions\n [kebabActions]=\"kebabActions\">\n </fs-filter-action-kebab-actions>\n</ng-container>\n", styles: [":host{display:inline-flex}.action-button{display:block}.action-button+.action-button,fs-menu+.action-button{margin-left:5px}.menu-button{width:36px;height:36px;line-height:36px}\n"], components: [{ type: FsFilterActionButtonComponent, selector: "fs-filter-action-button", inputs: ["action"] }, { type: i3$3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4$1.FsFileComponent, selector: "fs-file", inputs: ["minHeight", "minWidth", "orientate", "multiple", "capture", "allowClick", "allowDrop", "accept", "disabled", "imageWidth", "imageHeight", "imageQuality"], outputs: ["select", "selectPreviews", "error", "clicked", "declined"] }, { type: FsFilterActionKebabActionsComponent, selector: "fs-filter-action-kebab-actions", inputs: ["kebabActions"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i7$1.FsPopoverDirective, selector: "[fsPopover]", inputs: ["text", "template", "data", "leaveDelay", "showDelay", "maxWidth", "wrapperClass", "autoShow", "autoClose", "loadingDiameter", "loading", "indication", "position", "theme", "size", "trigger", "enabled"] }, { type: i3$3.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterActionsComponent, decorators: [{
|
|
2524
2344
|
type: Component,
|
|
2525
|
-
args: [{
|
|
2526
|
-
selector: 'fs-filter-actions',
|
|
2527
|
-
templateUrl: './actions.component.html',
|
|
2528
|
-
styleUrls: ['./actions.component.scss'],
|
|
2529
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2530
|
-
}]
|
|
2345
|
+
args: [{ selector: 'fs-filter-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Buttons -->\n<ng-container *ngFor=\"let action of actions\">\n <ng-container [ngSwitch]=\"action.mode\">\n <ng-container *ngSwitchCase=\"'button'\">\n <fs-filter-action-button\n [action]=\"action\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'menu'\">\n <fs-filter-action-button\n [action]=\"action\"\n [fsMenuTriggerFor]=\"someRef\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n </fs-filter-action-button>\n\n <fs-menu #someRef>\n <ng-container *ngFor=\"let childAction of action.items\">\n <ng-container *ngIf=\"childAction.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"childAction.label\">\n <ng-container *ngFor=\"let subAction of childAction.items\">\n <ng-template\n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [hidden]=\"!(subAction.visible$ | async)\"\n (click)=\"subAction.click($event)\">\n <mat-icon *ngIf=\"subAction.icon\">{{subAction.icon}}</mat-icon>\n {{subAction.label}}\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template\n fs-menu-item\n [link]=\"childAction.routerLink?.link\"\n [queryParams]=\"childAction.routerLink?.queryParams\"\n [hidden]=\"!(childAction.visible$ | async)\"\n (click)=\"childAction.click($event);\">\n <mat-icon *ngIf=\"childAction.icon\">{{childAction.icon}}</mat-icon>\n {{childAction.label}}\n </ng-template>\n </ng-template>\n </ng-container>\n </fs-menu>\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'file'\">\n <fs-file\n class=\"action-button\"\n [accept]=\"action.accept || '*'\"\n [multiple]=\"action.multiple\"\n [minWidth]=\"action.minWidth\"\n [minHeight]=\"action.minHeight\"\n [imageWidth]=\"action.maxWidth\"\n [imageHeight]=\"action.maxHeight\"\n (select)=\"action.fileSelected($event)\"\n (error)=\"action.fileError($event)\"\n (clicked)=\"action.click($event)\"\n fsPopover\n [enabled]=\"!!action.tooltip\"\n [text]=\"action.tooltip\">\n <fs-filter-action-button \n [action]=\"action\">\n </fs-filter-action-button>\n </fs-file>\n </ng-container>\n </ng-container>\n</ng-container>\n<!-- /Buttons -->\n<!-- menu -->\n<ng-container *ngIf=\"kebabActions?.length\">\n <fs-filter-action-kebab-actions\n [kebabActions]=\"kebabActions\">\n </fs-filter-action-kebab-actions>\n</ng-container>\n", styles: [":host{display:inline-flex}.action-button{display:block}.action-button+.action-button,fs-menu+.action-button{margin-left:5px}.menu-button{width:36px;height:36px;line-height:36px}\n"] }]
|
|
2531
2346
|
}], propDecorators: { kebabActions: [{
|
|
2532
2347
|
type: Input
|
|
2533
2348
|
}], actions: [{
|
|
@@ -2586,16 +2401,11 @@ class FsFilterChipContentComponent {
|
|
|
2586
2401
|
}
|
|
2587
2402
|
}
|
|
2588
2403
|
}
|
|
2589
|
-
FsFilterChipContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2590
|
-
FsFilterChipContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
2591
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2404
|
+
FsFilterChipContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterChipContentComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2405
|
+
FsFilterChipContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsFilterChipContentComponent, selector: "fs-filter-chip-content", inputs: { item: "item", type: "type" }, ngImport: i0, template: "{{ content }}\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2406
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterChipContentComponent, decorators: [{
|
|
2592
2407
|
type: Component,
|
|
2593
|
-
args: [{
|
|
2594
|
-
selector: 'fs-filter-chip-content',
|
|
2595
|
-
templateUrl: './filter-chip-content.component.html',
|
|
2596
|
-
styleUrls: ['./filter-chip-content.component.scss'],
|
|
2597
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2598
|
-
}]
|
|
2408
|
+
args: [{ selector: 'fs-filter-chip-content', changeDetection: ChangeDetectionStrategy.OnPush, template: "{{ content }}\n", styles: [""] }]
|
|
2599
2409
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
|
|
2600
2410
|
type: Input
|
|
2601
2411
|
}], type: [{
|
|
@@ -2633,9 +2443,9 @@ class FocusControllerService {
|
|
|
2633
2443
|
this._focusOn.next(null);
|
|
2634
2444
|
}
|
|
2635
2445
|
}
|
|
2636
|
-
FocusControllerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2637
|
-
FocusControllerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2638
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2446
|
+
FocusControllerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FocusControllerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2447
|
+
FocusControllerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FocusControllerService });
|
|
2448
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FocusControllerService, decorators: [{
|
|
2639
2449
|
type: Injectable
|
|
2640
2450
|
}], ctorParameters: function () { return []; } });
|
|
2641
2451
|
|
|
@@ -2703,16 +2513,11 @@ class FsFilterChipComponent {
|
|
|
2703
2513
|
}));
|
|
2704
2514
|
}
|
|
2705
2515
|
}
|
|
2706
|
-
FsFilterChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2707
|
-
FsFilterChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
2708
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2516
|
+
FsFilterChipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterChipComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: FocusControllerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2517
|
+
FsFilterChipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsFilterChipComponent, selector: "fs-filter-chip", inputs: { item: "item" }, ngImport: i0, template: "<ng-container *ngIf=\"!item.hasPendingValues || (chipDelayedRender$ | async)\">\n <ng-container *ngIf=\"rangeItem; else defaultChip\">\n <fs-chip\n *ngIf=\"item.model?.min || item.model?.from\"\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear\"\n size=\"small\"\n (click)=\"focusOnItem('from')\"\n (removed)=\"removeItem($event, 'from')\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item, type: 'from' }\"\n ></ng-template>\n </fs-chip>\n\n <fs-chip\n *ngIf=\"item.model?.max || item.model?.to\"\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear\"\n size=\"small\"\n (click)=\"focusOnItem('to')\"\n (removed)=\"removeItem($event, 'to')\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item, type: 'to' }\"\n ></ng-template>\n </fs-chip>\n\n </ng-container>\n\n <ng-template #defaultChip>\n <fs-chip\n *ngIf=\"itemVisible\"\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear\"\n size=\"small\"\n (click)=\"focusOnItem()\"\n (removed)=\"removeItem($event)\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-template>\n </fs-chip>\n </ng-template>\n\n <ng-template #chipContent let-item=\"item\" let-type=\"type\">\n <ng-container *ngIf=\"!item.hasPendingValues && !item.loading; else lodaingValues\">\n <fs-filter-chip-content [item]=\"item\" [type]=\"type\"></fs-filter-chip-content>\n </ng-container>\n\n <ng-template #lodaingValues>\n Loading...\n </ng-template>\n </ng-template>\n</ng-container>\n\n", styles: ["fs-chip{cursor:pointer;color:#6f6f6f}\n"], components: [{ type: i2$2.FsChipComponent, selector: "fs-chip", inputs: ["size", "value", "backgroundColor", "borderColor", "color", "outlined", "removable", "selectable", "selected", "image"], outputs: ["selectedToggled", "removed"] }, { type: FsFilterChipContentComponent, selector: "fs-filter-chip-content", inputs: ["item", "type"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2518
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterChipComponent, decorators: [{
|
|
2709
2519
|
type: Component,
|
|
2710
|
-
args: [{
|
|
2711
|
-
selector: 'fs-filter-chip',
|
|
2712
|
-
templateUrl: './filter-chip.component.html',
|
|
2713
|
-
styleUrls: ['./filter-chip.component.scss'],
|
|
2714
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2715
|
-
}]
|
|
2520
|
+
args: [{ selector: 'fs-filter-chip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!item.hasPendingValues || (chipDelayedRender$ | async)\">\n <ng-container *ngIf=\"rangeItem; else defaultChip\">\n <fs-chip\n *ngIf=\"item.model?.min || item.model?.from\"\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear\"\n size=\"small\"\n (click)=\"focusOnItem('from')\"\n (removed)=\"removeItem($event, 'from')\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item, type: 'from' }\"\n ></ng-template>\n </fs-chip>\n\n <fs-chip\n *ngIf=\"item.model?.max || item.model?.to\"\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear\"\n size=\"small\"\n (click)=\"focusOnItem('to')\"\n (removed)=\"removeItem($event, 'to')\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item, type: 'to' }\"\n ></ng-template>\n </fs-chip>\n\n </ng-container>\n\n <ng-template #defaultChip>\n <fs-chip\n *ngIf=\"itemVisible\"\n [value]=\"item\"\n [selectable]=\"false\"\n [removable]=\"item.showClear\"\n size=\"small\"\n (click)=\"focusOnItem()\"\n (removed)=\"removeItem($event)\">\n <ng-template\n [ngTemplateOutlet]=\"chipContent\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-template>\n </fs-chip>\n </ng-template>\n\n <ng-template #chipContent let-item=\"item\" let-type=\"type\">\n <ng-container *ngIf=\"!item.hasPendingValues && !item.loading; else lodaingValues\">\n <fs-filter-chip-content [item]=\"item\" [type]=\"type\"></fs-filter-chip-content>\n </ng-container>\n\n <ng-template #lodaingValues>\n Loading...\n </ng-template>\n </ng-template>\n</ng-container>\n\n", styles: ["fs-chip{cursor:pointer;color:#6f6f6f}\n"] }]
|
|
2716
2521
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: FocusControllerService }]; }, propDecorators: { item: [{
|
|
2717
2522
|
type: Input
|
|
2718
2523
|
}] } });
|
|
@@ -2723,16 +2528,11 @@ class FsFilterChipsComponent {
|
|
|
2723
2528
|
this.chips = [];
|
|
2724
2529
|
}
|
|
2725
2530
|
}
|
|
2726
|
-
FsFilterChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2727
|
-
FsFilterChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
2728
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2531
|
+
FsFilterChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterChipsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2532
|
+
FsFilterChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsFilterChipsComponent, selector: "fs-filter-chips", inputs: { filters: "filters" }, ngImport: i0, template: "<fs-chips [(ngModel)]=\"chips\">\n <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>\n</fs-chips>\n", styles: [""], components: [{ type: i2$2.FsChipsComponent, selector: "fs-chips", inputs: ["compare", "multiple"] }, { type: FsFilterChipComponent, selector: "fs-filter-chip", inputs: ["item"] }], directives: [{ type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2533
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterChipsComponent, decorators: [{
|
|
2729
2534
|
type: Component,
|
|
2730
|
-
args: [{
|
|
2731
|
-
selector: 'fs-filter-chips',
|
|
2732
|
-
templateUrl: './filter-chips.component.html',
|
|
2733
|
-
styleUrls: ['./filter-chips.component.scss'],
|
|
2734
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2735
|
-
}]
|
|
2535
|
+
args: [{ selector: 'fs-filter-chips', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-chips [(ngModel)]=\"chips\">\n <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>\n</fs-chips>\n", styles: [""] }]
|
|
2736
2536
|
}], propDecorators: { filters: [{
|
|
2737
2537
|
type: Input
|
|
2738
2538
|
}] } });
|
|
@@ -2758,15 +2558,11 @@ class FsFilterDrawerActionsComponent {
|
|
|
2758
2558
|
.openSavedFilterEditDialog();
|
|
2759
2559
|
}
|
|
2760
2560
|
}
|
|
2761
|
-
FsFilterDrawerActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2762
|
-
FsFilterDrawerActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
2763
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2561
|
+
FsFilterDrawerActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterDrawerActionsComponent, deps: [{ token: ExternalParamsController }], target: i0.ɵɵFactoryTarget.Component });
|
|
2562
|
+
FsFilterDrawerActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsFilterDrawerActionsComponent, selector: "fs-filter-drawer-actions", outputs: { _clear: "clear", _done: "done" }, ngImport: i0, template: "<button type=\"button\" mat-button color=\"primary\" (click)=\"done()\">Done</button>\n<button type=\"button\" mat-button (click)=\"clear()\">Clear</button>\n<ng-container *ngIf=\"savedFilters.enabled$ | async\">\n <button type=\"button\" mat-button (click)=\"saveFilters()\">Save</button>\n</ng-container>\n\n", components: [{ type: i1$4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i7.FsButtonDirective, selector: "[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]", inputs: ["name", "dirtySubmit", "form"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2563
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterDrawerActionsComponent, decorators: [{
|
|
2764
2564
|
type: Component,
|
|
2765
|
-
args: [{
|
|
2766
|
-
selector: 'fs-filter-drawer-actions',
|
|
2767
|
-
templateUrl: './filter-drawer-actions.component.html',
|
|
2768
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2769
|
-
}]
|
|
2565
|
+
args: [{ selector: 'fs-filter-drawer-actions', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button type=\"button\" mat-button color=\"primary\" (click)=\"done()\">Done</button>\n<button type=\"button\" mat-button (click)=\"clear()\">Clear</button>\n<ng-container *ngIf=\"savedFilters.enabled$ | async\">\n <button type=\"button\" mat-button (click)=\"saveFilters()\">Save</button>\n</ng-container>\n\n" }]
|
|
2770
2566
|
}], ctorParameters: function () { return [{ type: ExternalParamsController }]; }, propDecorators: { _clear: [{
|
|
2771
2567
|
type: Output,
|
|
2772
2568
|
args: ['clear']
|
|
@@ -2823,9 +2619,9 @@ class BaseItemComponent {
|
|
|
2823
2619
|
this._debouncer$.next();
|
|
2824
2620
|
}
|
|
2825
2621
|
}
|
|
2826
|
-
BaseItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2827
|
-
BaseItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
2828
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2622
|
+
BaseItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BaseItemComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2623
|
+
BaseItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: BaseItemComponent, selector: "base-item", inputs: { item: "item", inline: "inline" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2624
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: BaseItemComponent, decorators: [{
|
|
2829
2625
|
type: Component,
|
|
2830
2626
|
args: [{
|
|
2831
2627
|
selector: 'base-item',
|
|
@@ -2909,42 +2705,44 @@ class FocusToItemDirective {
|
|
|
2909
2705
|
}
|
|
2910
2706
|
}
|
|
2911
2707
|
}
|
|
2912
|
-
FocusToItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2913
|
-
FocusToItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
2914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2708
|
+
FocusToItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FocusToItemDirective, deps: [{ token: i0.ElementRef }, { token: FocusControllerService }, { token: i2.MatSelect, optional: true, self: true }, { token: i3$4.FsDatePickerComponent, optional: true, self: true }, { token: i3$4.FsDateScrollPickerComponent, optional: true, self: true }, { token: i3$4.DateRangePickerFromComponent, optional: true, self: true }, { token: i3$4.DateRangePickerToComponent, optional: true, self: true }, { token: i4$2.FsAutocompleteComponent, optional: true, self: true }, { token: i5.FsAutocompleteChipsComponent, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2709
|
+
FocusToItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: { _item: ["fsFilterFocusTrigger", "_item"], _focusTargetType: ["focusTargetType", "_focusTargetType"] }, ngImport: i0 });
|
|
2710
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FocusToItemDirective, decorators: [{
|
|
2915
2711
|
type: Directive,
|
|
2916
2712
|
args: [{
|
|
2917
2713
|
selector: '[fsFilterFocusTrigger]',
|
|
2918
2714
|
}]
|
|
2919
|
-
}], ctorParameters: function () {
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
type:
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
type:
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
type:
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
type:
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
type:
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
type:
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2715
|
+
}], ctorParameters: function () {
|
|
2716
|
+
return [{ type: i0.ElementRef }, { type: FocusControllerService }, { type: i2.MatSelect, decorators: [{
|
|
2717
|
+
type: Optional
|
|
2718
|
+
}, {
|
|
2719
|
+
type: Self
|
|
2720
|
+
}] }, { type: i3$4.FsDatePickerComponent, decorators: [{
|
|
2721
|
+
type: Optional
|
|
2722
|
+
}, {
|
|
2723
|
+
type: Self
|
|
2724
|
+
}] }, { type: i3$4.FsDateScrollPickerComponent, decorators: [{
|
|
2725
|
+
type: Optional
|
|
2726
|
+
}, {
|
|
2727
|
+
type: Self
|
|
2728
|
+
}] }, { type: i3$4.DateRangePickerFromComponent, decorators: [{
|
|
2729
|
+
type: Optional
|
|
2730
|
+
}, {
|
|
2731
|
+
type: Self
|
|
2732
|
+
}] }, { type: i3$4.DateRangePickerToComponent, decorators: [{
|
|
2733
|
+
type: Optional
|
|
2734
|
+
}, {
|
|
2735
|
+
type: Self
|
|
2736
|
+
}] }, { type: i4$2.FsAutocompleteComponent, decorators: [{
|
|
2737
|
+
type: Optional
|
|
2738
|
+
}, {
|
|
2739
|
+
type: Self
|
|
2740
|
+
}] }, { type: i5.FsAutocompleteChipsComponent, decorators: [{
|
|
2741
|
+
type: Optional
|
|
2742
|
+
}, {
|
|
2743
|
+
type: Self
|
|
2744
|
+
}] }];
|
|
2745
|
+
}, propDecorators: { _item: [{
|
|
2948
2746
|
type: Input,
|
|
2949
2747
|
args: ['fsFilterFocusTrigger']
|
|
2950
2748
|
}], _focusTargetType: [{
|
|
@@ -2983,16 +2781,11 @@ class TextComponent extends BaseItemComponent {
|
|
|
2983
2781
|
});
|
|
2984
2782
|
}
|
|
2985
2783
|
}
|
|
2986
|
-
TextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2987
|
-
TextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
2988
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2784
|
+
TextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TextComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2785
|
+
TextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: TextComponent, selector: "filter-item-text", usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <span matPrefix *ngIf=\"item.prefix\" [innerHtml]=\"item.prefix\"></span>\n <input matInput [formControl]=\"textControl\" [fsFilterFocusTrigger]=\"item\">\n <span matSuffix *ngIf=\"item.suffix\" [innerHtml]=\"item.suffix\"></span>\n</mat-form-field>\n", styles: [""], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i1$3.MatLabel, selector: "mat-label" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatPrefix, selector: "[matPrefix]" }, { type: i3$2.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"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2786
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: TextComponent, decorators: [{
|
|
2989
2787
|
type: Component,
|
|
2990
|
-
args: [{
|
|
2991
|
-
selector: 'filter-item-text',
|
|
2992
|
-
templateUrl: './text.component.html',
|
|
2993
|
-
styleUrls: ['./text.component.scss'],
|
|
2994
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
2995
|
-
}]
|
|
2788
|
+
args: [{ selector: 'filter-item-text', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <span matPrefix *ngIf=\"item.prefix\" [innerHtml]=\"item.prefix\"></span>\n <input matInput [formControl]=\"textControl\" [fsFilterFocusTrigger]=\"item\">\n <span matSuffix *ngIf=\"item.suffix\" [innerHtml]=\"item.suffix\"></span>\n</mat-form-field>\n", styles: [""] }]
|
|
2996
2789
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
|
|
2997
2790
|
|
|
2998
2791
|
class FsFilterIsolateValues {
|
|
@@ -3005,9 +2798,9 @@ class FsFilterIsolateValues {
|
|
|
3005
2798
|
});
|
|
3006
2799
|
}
|
|
3007
2800
|
}
|
|
3008
|
-
FsFilterIsolateValues.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3009
|
-
FsFilterIsolateValues.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "
|
|
3010
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2801
|
+
FsFilterIsolateValues.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterIsolateValues, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
2802
|
+
FsFilterIsolateValues.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterIsolateValues, name: "fsFilterIsolateValues" });
|
|
2803
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterIsolateValues, decorators: [{
|
|
3011
2804
|
type: Pipe,
|
|
3012
2805
|
args: [{
|
|
3013
2806
|
name: 'fsFilterIsolateValues',
|
|
@@ -3046,16 +2839,11 @@ class SelectMultipleComponent {
|
|
|
3046
2839
|
}
|
|
3047
2840
|
}
|
|
3048
2841
|
}
|
|
3049
|
-
SelectMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3050
|
-
SelectMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3051
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2842
|
+
SelectMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectMultipleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2843
|
+
SelectMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SelectMultipleComponent, selector: "filter-item-select-multiple", 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 [multiple]=\"item.multiple\">\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"], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i4$3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$3.MatLabel, selector: "mat-label" }, { type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsFilterIsolateValues": FsFilterIsolateValues }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2844
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectMultipleComponent, decorators: [{
|
|
3052
2845
|
type: Component,
|
|
3053
|
-
args: [{
|
|
3054
|
-
selector: 'filter-item-select-multiple',
|
|
3055
|
-
templateUrl: './multiple.component.html',
|
|
3056
|
-
styleUrls: ['./multiple.component.scss'],
|
|
3057
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3058
|
-
}]
|
|
2846
|
+
args: [{ selector: 'filter-item-select-multiple', 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 [multiple]=\"item.multiple\">\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"] }]
|
|
3059
2847
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
|
|
3060
2848
|
type: Input
|
|
3061
2849
|
}], select: [{
|
|
@@ -3081,16 +2869,11 @@ class SelectSimpleComponent {
|
|
|
3081
2869
|
}
|
|
3082
2870
|
}
|
|
3083
2871
|
}
|
|
3084
|
-
SelectSimpleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3085
|
-
SelectSimpleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3086
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2872
|
+
SelectSimpleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectSimpleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2873
|
+
SelectSimpleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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 *ngFor=\"let item of item.values | fsFilterIsolateValues: item.isolate\"\n [value]=\"item.value\"\n >\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"], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i4$3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$3.MatLabel, selector: "mat-label" }, { type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsFilterIsolateValues": FsFilterIsolateValues }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2874
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectSimpleComponent, decorators: [{
|
|
3087
2875
|
type: Component,
|
|
3088
|
-
args: [{
|
|
3089
|
-
selector: 'filter-item-select-simple',
|
|
3090
|
-
templateUrl: './simple.component.html',
|
|
3091
|
-
styleUrls: ['./simple.component.scss'],
|
|
3092
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3093
|
-
}]
|
|
2876
|
+
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 *ngFor=\"let item of item.values | fsFilterIsolateValues: item.isolate\"\n [value]=\"item.value\"\n >\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"] }]
|
|
3094
2877
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
|
|
3095
2878
|
type: Input
|
|
3096
2879
|
}], select: [{
|
|
@@ -3106,15 +2889,11 @@ class SelectGroupsComponent {
|
|
|
3106
2889
|
return o1 == o2;
|
|
3107
2890
|
}
|
|
3108
2891
|
}
|
|
3109
|
-
SelectGroupsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3110
|
-
SelectGroupsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2892
|
+
SelectGroupsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectGroupsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2893
|
+
SelectGroupsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SelectGroupsComponent, selector: "filter-item-select-groups", inputs: { item: "item" }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <mat-select\n #select\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [compareWith]=\"compare\">\n <ng-container *ngFor=\"let selectItem of item.values\">\n <ng-container *ngIf=\"selectItem[item.children]; else simpleOption\">\n <mat-optgroup [label]=\"selectItem.name\">\n <mat-option *ngFor=\"let subItem of selectItem[item.children]\"\n [value]=\"subItem.value\"\n [ngStyle]=\"selectItem.style\">\n {{ subItem.name }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n\n <ng-template #simpleOption>\n <mat-option\n [value]=\"selectItem.value\"\n [ngStyle]=\"selectItem.style\">\n {{ selectItem.name }}\n </mat-option>\n </ng-template>\n </ng-container>\n </mat-select>\n</mat-form-field>\n", components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3$1.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1$3.MatLabel, selector: "mat-label" }, { type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2894
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectGroupsComponent, decorators: [{
|
|
3112
2895
|
type: Component,
|
|
3113
|
-
args: [{
|
|
3114
|
-
selector: 'filter-item-select-groups',
|
|
3115
|
-
templateUrl: './groups.component.html',
|
|
3116
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3117
|
-
}]
|
|
2896
|
+
args: [{ selector: 'filter-item-select-groups', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <mat-select\n #select\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [compareWith]=\"compare\">\n <ng-container *ngFor=\"let selectItem of item.values\">\n <ng-container *ngIf=\"selectItem[item.children]; else simpleOption\">\n <mat-optgroup [label]=\"selectItem.name\">\n <mat-option *ngFor=\"let subItem of selectItem[item.children]\"\n [value]=\"subItem.value\"\n [ngStyle]=\"selectItem.style\">\n {{ subItem.name }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n\n <ng-template #simpleOption>\n <mat-option\n [value]=\"selectItem.value\"\n [ngStyle]=\"selectItem.style\">\n {{ selectItem.name }}\n </mat-option>\n </ng-template>\n </ng-container>\n </mat-select>\n</mat-form-field>\n" }]
|
|
3118
2897
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { select: [{
|
|
3119
2898
|
type: ViewChild,
|
|
3120
2899
|
args: ['select', { static: true }]
|
|
@@ -3154,15 +2933,11 @@ class SelectComponent extends BaseItemComponent {
|
|
|
3154
2933
|
}
|
|
3155
2934
|
}
|
|
3156
2935
|
}
|
|
3157
|
-
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3158
|
-
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2936
|
+
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2937
|
+
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SelectComponent, selector: "filter-item-select", viewQueries: [{ propertyName: "selectedItem", first: true, predicate: ["selectItem"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"(item.loading$ | async) else itemSelect\">\n <mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <mat-select disabled></mat-select>\n </mat-form-field>\n</ng-container>\n\n<ng-template #itemSelect>\n <ng-container *ngIf=\"(values$ | async)?.length\">\n <ng-container *ngIf=\"item.multiple && !item.children\">\n <filter-item-select-multiple\n [item]=\"multipleSelectItem\"\n #selectItem>\n </filter-item-select-multiple>\n </ng-container>\n\n <ng-container *ngIf=\"!item.multiple && !item.children\">\n <filter-item-select-simple\n [item]=\"simpleSelectItem\"\n #selectItem>\n </filter-item-select-simple>\n </ng-container>\n\n <ng-container *ngIf=\"item.children\">\n <filter-item-select-groups\n [item]=\"item\"\n #selectItem>\n </filter-item-select-groups>\n </ng-container>\n </ng-container>\n</ng-template>\n", components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: SelectMultipleComponent, selector: "filter-item-select-multiple", inputs: ["item"] }, { type: SelectSimpleComponent, selector: "filter-item-select-simple", inputs: ["item"] }, { type: SelectGroupsComponent, selector: "filter-item-select-groups", inputs: ["item"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatLabel, selector: "mat-label" }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2938
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, decorators: [{
|
|
3160
2939
|
type: Component,
|
|
3161
|
-
args: [{
|
|
3162
|
-
selector: 'filter-item-select',
|
|
3163
|
-
templateUrl: './select.component.html',
|
|
3164
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3165
|
-
}]
|
|
2940
|
+
args: [{ selector: 'filter-item-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"(item.loading$ | async) else itemSelect\">\n <mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <mat-select disabled></mat-select>\n </mat-form-field>\n</ng-container>\n\n<ng-template #itemSelect>\n <ng-container *ngIf=\"(values$ | async)?.length\">\n <ng-container *ngIf=\"item.multiple && !item.children\">\n <filter-item-select-multiple\n [item]=\"multipleSelectItem\"\n #selectItem>\n </filter-item-select-multiple>\n </ng-container>\n\n <ng-container *ngIf=\"!item.multiple && !item.children\">\n <filter-item-select-simple\n [item]=\"simpleSelectItem\"\n #selectItem>\n </filter-item-select-simple>\n </ng-container>\n\n <ng-container *ngIf=\"item.children\">\n <filter-item-select-groups\n [item]=\"item\"\n #selectItem>\n </filter-item-select-groups>\n </ng-container>\n </ng-container>\n</ng-template>\n" }]
|
|
3166
2941
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { selectedItem: [{
|
|
3167
2942
|
type: ViewChild,
|
|
3168
2943
|
args: ['selectItem']
|
|
@@ -3181,16 +2956,11 @@ class ChipsComponent extends BaseItemComponent {
|
|
|
3181
2956
|
return modelValue.value === chipValue.value;
|
|
3182
2957
|
}
|
|
3183
2958
|
}
|
|
3184
|
-
ChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3185
|
-
ChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2959
|
+
ChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ChipsComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2960
|
+
ChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: ChipsComponent, selector: "filter-item-chips", usesInheritance: true, ngImport: i0, template: "<ng-template [ngIf]=\"item.values?.length\">\n <fs-label-field>\n <fs-label>{{item.label}}</fs-label>\n <fs-chips [(ngModel)]=\"item.model\"\n [compare]=\"compareFn\"\n [multiple]=\"item.multiple\">\n <fs-chip *ngFor=\"let value of item.values\"\n [value]=\"value\"\n [selectable]=\"true\">\n {{ value.name }}\n </fs-chip>\n </fs-chips>\n </fs-label-field>\n</ng-template>\n\n<ng-template [ngIf]=\"item.loading\">{{ item.label }} loading...</ng-template>\n", styles: ["fs-chip{line-height:40px}\n"], components: [{ type: i1$5.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i1$5.FsLabelComponent, selector: "fs-label" }, { type: i2$2.FsChipsComponent, selector: "fs-chips", inputs: ["compare", "multiple"] }, { type: i2$2.FsChipComponent, selector: "fs-chip", inputs: ["size", "value", "backgroundColor", "borderColor", "color", "outlined", "removable", "selectable", "selected", "image"], outputs: ["selectedToggled", "removed"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2961
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ChipsComponent, decorators: [{
|
|
3187
2962
|
type: Component,
|
|
3188
|
-
args: [{
|
|
3189
|
-
selector: 'filter-item-chips',
|
|
3190
|
-
templateUrl: './chips.component.html',
|
|
3191
|
-
styleUrls: ['./chips.component.scss'],
|
|
3192
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3193
|
-
}]
|
|
2963
|
+
args: [{ selector: 'filter-item-chips', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template [ngIf]=\"item.values?.length\">\n <fs-label-field>\n <fs-label>{{item.label}}</fs-label>\n <fs-chips [(ngModel)]=\"item.model\"\n [compare]=\"compareFn\"\n [multiple]=\"item.multiple\">\n <fs-chip *ngFor=\"let value of item.values\"\n [value]=\"value\"\n [selectable]=\"true\">\n {{ value.name }}\n </fs-chip>\n </fs-chips>\n </fs-label-field>\n</ng-template>\n\n<ng-template [ngIf]=\"item.loading\">{{ item.label }} loading...</ng-template>\n", styles: ["fs-chip{line-height:40px}\n"] }]
|
|
3194
2964
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
|
|
3195
2965
|
|
|
3196
2966
|
class RangeComponent extends BaseItemComponent {
|
|
@@ -3214,15 +2984,11 @@ class RangeComponent extends BaseItemComponent {
|
|
|
3214
2984
|
});
|
|
3215
2985
|
}
|
|
3216
2986
|
}
|
|
3217
|
-
RangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3218
|
-
RangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2987
|
+
RangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RangeComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2988
|
+
RangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: RangeComponent, selector: "filter-item-range", viewQueries: [{ propertyName: "from", first: true, predicate: ["from"], descendants: true, static: true }, { propertyName: "to", first: true, predicate: ["to"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"form-field\">\n <mat-form-field class=\"filter-range-min\">\n <mat-label>{{item.label[0]}}</mat-label>\n <span matPrefix *ngIf=\"item.prefix\" [innerHtml]=\"item.prefix\"></span>\n <input \n matInput\n [fsFilterFocusTrigger]=\"item\"\n [focusTargetType]=\"'from'\"\n type=\"text\"\n inputmode=\"decimal\"\n [(ngModel)]=\"item.model.min\"\n #from>\n <span matSuffix *ngIf=\"item.suffix\" [innerHtml]=\"item.suffix\"></span>\n </mat-form-field>\n\n <mat-form-field class=\"filter-range-max\">\n <mat-label>{{item.label[1]}}</mat-label>\n <span matPrefix *ngIf=\"item.prefix\" [innerHtml]=\"item.prefix\"></span>\n <input \n matInput\n [fsFilterFocusTrigger]=\"item\"\n [focusTargetType]=\"'to'\"\n type=\"text\"\n inputmode=\"decimal\"\n [(ngModel)]=\"item.model.max\"\n #to>\n <span matSuffix *ngIf=\"item.suffix\" [innerHtml]=\"item.suffix\"></span>\n </mat-form-field>\n</div>\n", 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"], components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i1$3.MatLabel, selector: "mat-label" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatPrefix, selector: "[matPrefix]" }, { type: i3$2.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"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i1$3.MatSuffix, selector: "[matSuffix]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2989
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RangeComponent, decorators: [{
|
|
3220
2990
|
type: Component,
|
|
3221
|
-
args: [{
|
|
3222
|
-
selector: 'filter-item-range',
|
|
3223
|
-
templateUrl: './range.component.html',
|
|
3224
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3225
|
-
}]
|
|
2991
|
+
args: [{ selector: 'filter-item-range', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-field\">\n <mat-form-field class=\"filter-range-min\">\n <mat-label>{{item.label[0]}}</mat-label>\n <span matPrefix *ngIf=\"item.prefix\" [innerHtml]=\"item.prefix\"></span>\n <input \n matInput\n [fsFilterFocusTrigger]=\"item\"\n [focusTargetType]=\"'from'\"\n type=\"text\"\n inputmode=\"decimal\"\n [(ngModel)]=\"item.model.min\"\n #from>\n <span matSuffix *ngIf=\"item.suffix\" [innerHtml]=\"item.suffix\"></span>\n </mat-form-field>\n\n <mat-form-field class=\"filter-range-max\">\n <mat-label>{{item.label[1]}}</mat-label>\n <span matPrefix *ngIf=\"item.prefix\" [innerHtml]=\"item.prefix\"></span>\n <input \n matInput\n [fsFilterFocusTrigger]=\"item\"\n [focusTargetType]=\"'to'\"\n type=\"text\"\n inputmode=\"decimal\"\n [(ngModel)]=\"item.model.max\"\n #to>\n <span matSuffix *ngIf=\"item.suffix\" [innerHtml]=\"item.suffix\"></span>\n </mat-form-field>\n</div>\n", 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"] }]
|
|
3226
2992
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { from: [{
|
|
3227
2993
|
type: ViewChild,
|
|
3228
2994
|
args: ['from', { static: true }]
|
|
@@ -3244,15 +3010,11 @@ class AutocompleteComponent extends BaseItemComponent {
|
|
|
3244
3010
|
};
|
|
3245
3011
|
}
|
|
3246
3012
|
}
|
|
3247
|
-
AutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3248
|
-
AutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3249
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3013
|
+
AutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3014
|
+
AutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: AutocompleteComponent, selector: "filter-item-autocomplete", usesInheritance: true, ngImport: i0, template: "<fs-autocomplete\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [(ngModel)]=\"item.model\"\n [placeholder]=\"label\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [showClear]=\"item.showClear\"\n name=\"item.name\">\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n {{data.name}}\n </ng-template>\n</fs-autocomplete>\n", components: [{ type: i4$2.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "displayWith", "placeholder", "fetchOnFocus", "readonly", "required", "disabled", "formFieldClass", "appearance", "hint", "panelWidth", "panelClass", "showClear"], outputs: ["cleared", "opened", "closed"] }], directives: [{ type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i4$2.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3015
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
3250
3016
|
type: Component,
|
|
3251
|
-
args: [{
|
|
3252
|
-
selector: 'filter-item-autocomplete',
|
|
3253
|
-
templateUrl: './autocomplete.component.html',
|
|
3254
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3255
|
-
}]
|
|
3017
|
+
args: [{ selector: 'filter-item-autocomplete', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-autocomplete\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [(ngModel)]=\"item.model\"\n [placeholder]=\"label\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [showClear]=\"item.showClear\"\n name=\"item.name\">\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n {{data.name}}\n </ng-template>\n</fs-autocomplete>\n" }]
|
|
3256
3018
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
|
|
3257
3019
|
|
|
3258
3020
|
class AutocompletechipsComponent extends BaseItemComponent {
|
|
@@ -3264,13 +3026,6 @@ class AutocompletechipsComponent extends BaseItemComponent {
|
|
|
3264
3026
|
return this.item.valuesFn(keyword, this.item.filter);
|
|
3265
3027
|
};
|
|
3266
3028
|
}
|
|
3267
|
-
// SP-T1747
|
|
3268
|
-
clicked() {
|
|
3269
|
-
this.chipBackground = this.item.chipBackground;
|
|
3270
|
-
this.chipColor = this.item.chipColor;
|
|
3271
|
-
this.chipIcon = this.item.chipIcon;
|
|
3272
|
-
this._cd.markForCheck();
|
|
3273
|
-
}
|
|
3274
3029
|
addAutocompleteChipItem(event) {
|
|
3275
3030
|
if (event.data && this.item.model.indexOf(event.data.value) === -1) {
|
|
3276
3031
|
this.item.model.push(event.data);
|
|
@@ -3289,15 +3044,11 @@ class AutocompletechipsComponent extends BaseItemComponent {
|
|
|
3289
3044
|
return (item1 === null || item1 === void 0 ? void 0 : item1.value) === (item2 === null || item2 === void 0 ? void 0 : item2.value);
|
|
3290
3045
|
}
|
|
3291
3046
|
}
|
|
3292
|
-
AutocompletechipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3293
|
-
AutocompletechipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3294
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3047
|
+
AutocompletechipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AutocompletechipsComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3048
|
+
AutocompletechipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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 [fetchOnFocus]=\"item.fetchOnFocus\"\n [placeholder]=\"label\"\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>\n\n<!--<mat-form-field floatLabel=\"auto\">\n <mat-label>{{item.label}}</mat-label>\n <mat-chip-list #chipList>\n <mat-chip *ngFor=\"let item of item.model\"\n (removed)=\"removeAutocompleteChipItem(item)\">\n {{ item.name }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input #chipsInput\n type=\"text\"\n matInput\n [(ngModel)]=\"item.selectedValue\"\n (ngModelChange)=\"onAutocompleteChipsChange(chipsInput)\"\n [name]=\"item.name\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"autocompleteChipsInput\">\n </mat-chip-list>\n\n <mat-autocomplete #autocompleteChipsInput=\"matAutocomplete\"\n (optionSelected)=\"addAutocompleteChipItem( $event)\"\n >\n <mat-option *ngFor=\"let item of item.values$ | async\" [value]=\"item\">\n {{ item.name }}\n </mat-option>\n </mat-autocomplete>\n <mat-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n</mat-form-field>-->\n", components: [{ type: i5.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "appearance", "readonly", "size", "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"] }], directives: [{ type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i5.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3049
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: AutocompletechipsComponent, decorators: [{
|
|
3295
3050
|
type: Component,
|
|
3296
|
-
args: [{
|
|
3297
|
-
selector: 'filter-item-autocompletechips',
|
|
3298
|
-
templateUrl: './autocompletechips.component.html',
|
|
3299
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3300
|
-
}]
|
|
3051
|
+
args: [{ selector: 'filter-item-autocompletechips', changeDetection: ChangeDetectionStrategy.OnPush, 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 [fetchOnFocus]=\"item.fetchOnFocus\"\n [placeholder]=\"label\"\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>\n\n<!--<mat-form-field floatLabel=\"auto\">\n <mat-label>{{item.label}}</mat-label>\n <mat-chip-list #chipList>\n <mat-chip *ngFor=\"let item of item.model\"\n (removed)=\"removeAutocompleteChipItem(item)\">\n {{ item.name }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input #chipsInput\n type=\"text\"\n matInput\n [(ngModel)]=\"item.selectedValue\"\n (ngModelChange)=\"onAutocompleteChipsChange(chipsInput)\"\n [name]=\"item.name\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"autocompleteChipsInput\">\n </mat-chip-list>\n\n <mat-autocomplete #autocompleteChipsInput=\"matAutocomplete\"\n (optionSelected)=\"addAutocompleteChipItem( $event)\"\n >\n <mat-option *ngFor=\"let item of item.values$ | async\" [value]=\"item\">\n {{ item.name }}\n </mat-option>\n </mat-autocomplete>\n <mat-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n</mat-form-field>-->\n" }]
|
|
3301
3052
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
|
|
3302
3053
|
|
|
3303
3054
|
class DateComponent extends BaseItemComponent {
|
|
@@ -3323,15 +3074,11 @@ class DateComponent extends BaseItemComponent {
|
|
|
3323
3074
|
}
|
|
3324
3075
|
}
|
|
3325
3076
|
}
|
|
3326
|
-
DateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3327
|
-
DateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3328
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3077
|
+
DateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DateComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3078
|
+
DateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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 matInput\n fsDatePicker\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [maxYear]=\"item.maxYear\"\n [view]=\"viewType\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n <mat-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n</mat-form-field>\n\n<ng-template #elseMode>\n <mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <input matInput\n fsDateScrollPicker\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-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n </mat-form-field>\n</ng-template>\n", components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3$4.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes", "weekStartsOn"], outputs: ["change"] }, { type: i3$4.FsDateScrollPickerComponent, selector: "[fsDateScrollPicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "showMonth", "showYear", "showDay"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatLabel, selector: "mat-label" }, { type: i3$2.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"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i1$3.MatPlaceholder, selector: "mat-placeholder" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3079
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DateComponent, decorators: [{
|
|
3329
3080
|
type: Component,
|
|
3330
|
-
args: [{
|
|
3331
|
-
selector: 'filter-item-date',
|
|
3332
|
-
templateUrl: './date.component.html',
|
|
3333
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3334
|
-
}]
|
|
3081
|
+
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 matInput\n fsDatePicker\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [maxYear]=\"item.maxYear\"\n [view]=\"viewType\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n <mat-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n</mat-form-field>\n\n<ng-template #elseMode>\n <mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <input matInput\n fsDateScrollPicker\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-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n </mat-form-field>\n</ng-template>\n" }]
|
|
3335
3082
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
|
|
3336
3083
|
|
|
3337
3084
|
class DateRangeComponent extends BaseItemComponent {
|
|
@@ -3350,15 +3097,11 @@ class DateRangeComponent extends BaseItemComponent {
|
|
|
3350
3097
|
}
|
|
3351
3098
|
}
|
|
3352
3099
|
}
|
|
3353
|
-
DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3354
|
-
DateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3100
|
+
DateRangeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DateRangeComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3101
|
+
DateRangeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: DateRangeComponent, selector: "filter-item-date-range", usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{item.label[0]}}</mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"item\"\n [focusTargetType]=\"'from'\"\n [fsDateRangeFrom]=\"item.name\"\n [(ngModel)]=\"item.model.from\"\n (ngModelChange)=\"itemChange()\"\n [clear]=\"item.showClear\"\n [view]=\"viewType\"\n name=\"date_from\">\n</mat-form-field>\n\n<mat-form-field>\n <mat-label>{{item.label[1]}}</mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"item\"\n [focusTargetType]=\"'to'\"\n [fsDateRangeTo]=\"item.name\"\n [(ngModel)]=\"item.model.to\"\n (ngModelChange)=\"itemChange()\"\n [clear]=\"item.showClear\"\n [view]=\"viewType\"\n name=\"date_to\">\n</mat-form-field>\n", components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3$4.DateRangePickerFromComponent, selector: "[fsDateRangeFrom],[fsDateRangeFromPicker]", inputs: ["fsDateRangeFrom", "fsDateRangeFromPicker"] }, { type: i3$4.DateRangePickerToComponent, selector: "[fsDateRangeTo],[fsDateRangeToPicker]", inputs: ["fsDateRangeTo", "fsDateRangeToPicker"] }], directives: [{ type: i1$3.MatLabel, selector: "mat-label" }, { type: i3$2.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"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):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 });
|
|
3102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DateRangeComponent, decorators: [{
|
|
3356
3103
|
type: Component,
|
|
3357
|
-
args: [{
|
|
3358
|
-
selector: 'filter-item-date-range',
|
|
3359
|
-
templateUrl: './date-range.component.html',
|
|
3360
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3361
|
-
}]
|
|
3104
|
+
args: [{ selector: 'filter-item-date-range', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field>\n <mat-label>{{item.label[0]}}</mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"item\"\n [focusTargetType]=\"'from'\"\n [fsDateRangeFrom]=\"item.name\"\n [(ngModel)]=\"item.model.from\"\n (ngModelChange)=\"itemChange()\"\n [clear]=\"item.showClear\"\n [view]=\"viewType\"\n name=\"date_from\">\n</mat-form-field>\n\n<mat-form-field>\n <mat-label>{{item.label[1]}}</mat-label>\n <input\n matInput\n [fsFilterFocusTrigger]=\"item\"\n [focusTargetType]=\"'to'\"\n [fsDateRangeTo]=\"item.name\"\n [(ngModel)]=\"item.model.to\"\n (ngModelChange)=\"itemChange()\"\n [clear]=\"item.showClear\"\n [view]=\"viewType\"\n name=\"date_to\">\n</mat-form-field>\n" }]
|
|
3362
3105
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
|
|
3363
3106
|
|
|
3364
3107
|
class WeekComponent extends BaseItemComponent {
|
|
@@ -3369,15 +3112,11 @@ class WeekComponent extends BaseItemComponent {
|
|
|
3369
3112
|
}
|
|
3370
3113
|
ngOnInit() { }
|
|
3371
3114
|
}
|
|
3372
|
-
WeekComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3373
|
-
WeekComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3374
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3115
|
+
WeekComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: WeekComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3116
|
+
WeekComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: WeekComponent, selector: "filter-item-week", usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <input matInput\n fsDateWeekPicker\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [seedDate]=\"item.seedDate\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n <mat-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n</mat-form-field>\n", components: [{ type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3$4.FsDateWeekPickerComponent, selector: "[fsDateWeekPicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "seedDate", "period", "view", "weekStartsOn"], outputs: ["change"] }], directives: [{ type: i1$3.MatLabel, selector: "mat-label" }, { type: i3$2.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"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$3.MatPlaceholder, selector: "mat-placeholder" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: WeekComponent, decorators: [{
|
|
3375
3118
|
type: Component,
|
|
3376
|
-
args: [{
|
|
3377
|
-
selector: 'filter-item-week',
|
|
3378
|
-
templateUrl: './week.component.html',
|
|
3379
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3380
|
-
}]
|
|
3119
|
+
args: [{ selector: 'filter-item-week', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field>\n <mat-label>{{item.label}}</mat-label>\n <input matInput\n fsDateWeekPicker\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n [seedDate]=\"item.seedDate\"\n [clear]=\"item.showClear\"\n [name]=\"item.name\">\n <mat-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n</mat-form-field>\n" }]
|
|
3381
3120
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
|
|
3382
3121
|
|
|
3383
3122
|
class CheckboxComponent extends BaseItemComponent {
|
|
@@ -3387,16 +3126,11 @@ class CheckboxComponent extends BaseItemComponent {
|
|
|
3387
3126
|
this._cd = _cd;
|
|
3388
3127
|
}
|
|
3389
3128
|
}
|
|
3390
|
-
CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3391
|
-
CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3392
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3129
|
+
CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3130
|
+
CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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>\n", styles: ["fs-label-field{margin:0}\n"], components: [{ type: i1$5.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i4$3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], directives: [{ type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):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 });
|
|
3131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: CheckboxComponent, decorators: [{
|
|
3393
3132
|
type: Component,
|
|
3394
|
-
args: [{
|
|
3395
|
-
selector: 'filter-item-checkbox',
|
|
3396
|
-
templateUrl: './checkbox.component.html',
|
|
3397
|
-
styleUrls: ['checkbox.component.scss'],
|
|
3398
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3399
|
-
}]
|
|
3133
|
+
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>\n", styles: ["fs-label-field{margin:0}\n"] }]
|
|
3400
3134
|
}], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
|
|
3401
3135
|
|
|
3402
3136
|
class FilterItemComponent {
|
|
@@ -3453,15 +3187,11 @@ class FilterItemComponent {
|
|
|
3453
3187
|
this._destroy$.complete();
|
|
3454
3188
|
}
|
|
3455
3189
|
}
|
|
3456
|
-
FilterItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3457
|
-
FilterItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3458
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3190
|
+
FilterItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FilterItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
3191
|
+
FilterItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FilterItemComponent, selector: "filter-item", inputs: { item: "item" }, ngImport: i0, template: "<div class=\"filter filter-{{ item.type }}\">\n\n <ng-container [ngSwitch]=\"item.type\">\n <filter-item-text \n class=\"interface\"\n *ngSwitchCase=\"itemType.Text\"\n [item]=\"textItem\">\n </filter-item-text>\n\n <filter-item-select \n class=\"interface\"\n *ngSwitchCase=\"itemType.Select\"\n [item]=\"baseSelectItem\">\n </filter-item-select>\n\n <filter-item-chips \n class=\"interface\"\n *ngSwitchCase=\"itemType.Chips\"\n [item]=\"chipsItem\">\n </filter-item-chips>\n\n <filter-item-range \n class=\"interface interface-range\"\n *ngSwitchCase=\"itemType.Range\"\n [item]=\"rangeItem\">\n </filter-item-range>\n\n <filter-item-autocomplete \n class=\"interface\"\n *ngSwitchCase=\"itemType.AutoComplete\"\n [item]=\"autocompleteItem\">\n </filter-item-autocomplete>\n\n <filter-item-autocompletechips \n class=\"interface\"\n *ngSwitchCase=\"itemType.AutoCompleteChips\"\n [item]=\"autocompleteChipsItem\">\n </filter-item-autocompletechips>\n\n <filter-item-date \n class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.Date\"\n [item]=\"dateItem\">\n </filter-item-date>\n\n <filter-item-date \n class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateTime\"\n [item]=\"dateTimeItem\">\n </filter-item-date>\n\n <filter-item-date-range \n class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateRange\"\n [item]=\"dateRangeItem\">\n </filter-item-date-range>\n\n <filter-item-date-range \n class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateTimeRange\"\n [item]=\"dateTimeRangeItem\">\n </filter-item-date-range>\n\n <filter-item-week \n class=\"interface\"\n *ngSwitchCase=\"itemType.Week\"\n [item]=\"weekItem\">\n </filter-item-week>\n\n <filter-item-checkbox \n class=\"interface interface-checkbox\"\n *ngSwitchCase=\"itemType.Checkbox\"\n [item]=\"checkboxItem\">\n </filter-item-checkbox>\n </ng-container>\n\n</div>\n", components: [{ type: TextComponent, selector: "filter-item-text" }, { type: SelectComponent, selector: "filter-item-select" }, { type: ChipsComponent, selector: "filter-item-chips" }, { type: RangeComponent, selector: "filter-item-range" }, { type: AutocompleteComponent, selector: "filter-item-autocomplete" }, { type: AutocompletechipsComponent, selector: "filter-item-autocompletechips" }, { type: DateComponent, selector: "filter-item-date" }, { type: DateRangeComponent, selector: "filter-item-date-range" }, { type: WeekComponent, selector: "filter-item-week" }, { type: CheckboxComponent, selector: "filter-item-checkbox" }], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FilterItemComponent, decorators: [{
|
|
3459
3193
|
type: Component,
|
|
3460
|
-
args: [{
|
|
3461
|
-
selector: 'filter-item',
|
|
3462
|
-
templateUrl: './filter-item.component.html',
|
|
3463
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3464
|
-
}]
|
|
3194
|
+
args: [{ selector: 'filter-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filter filter-{{ item.type }}\">\n\n <ng-container [ngSwitch]=\"item.type\">\n <filter-item-text \n class=\"interface\"\n *ngSwitchCase=\"itemType.Text\"\n [item]=\"textItem\">\n </filter-item-text>\n\n <filter-item-select \n class=\"interface\"\n *ngSwitchCase=\"itemType.Select\"\n [item]=\"baseSelectItem\">\n </filter-item-select>\n\n <filter-item-chips \n class=\"interface\"\n *ngSwitchCase=\"itemType.Chips\"\n [item]=\"chipsItem\">\n </filter-item-chips>\n\n <filter-item-range \n class=\"interface interface-range\"\n *ngSwitchCase=\"itemType.Range\"\n [item]=\"rangeItem\">\n </filter-item-range>\n\n <filter-item-autocomplete \n class=\"interface\"\n *ngSwitchCase=\"itemType.AutoComplete\"\n [item]=\"autocompleteItem\">\n </filter-item-autocomplete>\n\n <filter-item-autocompletechips \n class=\"interface\"\n *ngSwitchCase=\"itemType.AutoCompleteChips\"\n [item]=\"autocompleteChipsItem\">\n </filter-item-autocompletechips>\n\n <filter-item-date \n class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.Date\"\n [item]=\"dateItem\">\n </filter-item-date>\n\n <filter-item-date \n class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateTime\"\n [item]=\"dateTimeItem\">\n </filter-item-date>\n\n <filter-item-date-range \n class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateRange\"\n [item]=\"dateRangeItem\">\n </filter-item-date-range>\n\n <filter-item-date-range \n class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateTimeRange\"\n [item]=\"dateTimeRangeItem\">\n </filter-item-date-range>\n\n <filter-item-week \n class=\"interface\"\n *ngSwitchCase=\"itemType.Week\"\n [item]=\"weekItem\">\n </filter-item-week>\n\n <filter-item-checkbox \n class=\"interface interface-checkbox\"\n *ngSwitchCase=\"itemType.Checkbox\"\n [item]=\"checkboxItem\">\n </filter-item-checkbox>\n </ng-container>\n\n</div>\n" }]
|
|
3465
3195
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
|
|
3466
3196
|
type: Input
|
|
3467
3197
|
}] } });
|
|
@@ -3504,29 +3234,197 @@ class FilterDrawerComponent {
|
|
|
3504
3234
|
this.done();
|
|
3505
3235
|
}
|
|
3506
3236
|
}
|
|
3507
|
-
FilterDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3508
|
-
FilterDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
3509
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3237
|
+
FilterDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FilterDrawerComponent, deps: [{ token: FILTER_DRAWER_OVERLAY }, { token: FILTER_DRAWER_DATA }, { token: ExternalParamsController }, { token: i0.ChangeDetectorRef }, { token: FsFilterItemsStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
3238
|
+
FilterDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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>tune</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: [":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:85vw;max-width:350px;display:flex;flex-direction:column;height:100%;padding-top:env(safe-area-inset-top)}.filters .filters-wrap .filter-items{overflow-y: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}\n"], components: [{ type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: FilterItemComponent, selector: "filter-item", inputs: ["item"] }, { type: FsFilterDrawerActionsComponent, selector: "fs-filter-drawer-actions", outputs: ["clear", "done"] }], directives: [{ type: i6$1.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FilterDrawerComponent, decorators: [{
|
|
3510
3240
|
type: Component,
|
|
3511
|
-
args: [{
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
type: Inject,
|
|
3522
|
-
args: [FILTER_DRAWER_DATA]
|
|
3523
|
-
}] }, { type: ExternalParamsController }, { type: i0.ChangeDetectorRef }, { type: FsFilterItemsStore }]; }, propDecorators: { inline: [{
|
|
3241
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"filters\">\n <div class=\"filters-wrap\">\n\n <div class=\"filter-by\">\n <mat-icon>tune</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: [":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:85vw;max-width:350px;display:flex;flex-direction:column;height:100%;padding-top:env(safe-area-inset-top)}.filters .filters-wrap .filter-items{overflow-y: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}\n"] }]
|
|
3242
|
+
}], ctorParameters: function () {
|
|
3243
|
+
return [{ type: i1$6.OverlayRef, decorators: [{
|
|
3244
|
+
type: Inject,
|
|
3245
|
+
args: [FILTER_DRAWER_OVERLAY]
|
|
3246
|
+
}] }, { type: undefined, decorators: [{
|
|
3247
|
+
type: Inject,
|
|
3248
|
+
args: [FILTER_DRAWER_DATA]
|
|
3249
|
+
}] }, { type: ExternalParamsController }, { type: i0.ChangeDetectorRef }, { type: FsFilterItemsStore }];
|
|
3250
|
+
}, propDecorators: { inline: [{
|
|
3524
3251
|
type: Input
|
|
3525
3252
|
}], updateWindowWidth: [{
|
|
3526
3253
|
type: HostListener,
|
|
3527
3254
|
args: ['window:resize']
|
|
3528
3255
|
}] } });
|
|
3529
3256
|
|
|
3257
|
+
class ActionMenuItem {
|
|
3258
|
+
constructor(config = {}, _parent) {
|
|
3259
|
+
this._parent = _parent;
|
|
3260
|
+
this.items = [];
|
|
3261
|
+
this._isGroup = false;
|
|
3262
|
+
this._visible$ = new BehaviorSubject(true);
|
|
3263
|
+
this._disabled$ = new BehaviorSubject(false);
|
|
3264
|
+
this._init(config);
|
|
3265
|
+
}
|
|
3266
|
+
get isGroup() {
|
|
3267
|
+
return this._isGroup;
|
|
3268
|
+
}
|
|
3269
|
+
get visible() {
|
|
3270
|
+
return this._visible$.getValue();
|
|
3271
|
+
}
|
|
3272
|
+
get visible$() {
|
|
3273
|
+
return this._visible$.asObservable();
|
|
3274
|
+
}
|
|
3275
|
+
set disabled(value) {
|
|
3276
|
+
this._disabled$.next(value);
|
|
3277
|
+
}
|
|
3278
|
+
get disabled() {
|
|
3279
|
+
return this._disabled$.getValue();
|
|
3280
|
+
}
|
|
3281
|
+
get disabled$() {
|
|
3282
|
+
return this._disabled$.asObservable();
|
|
3283
|
+
}
|
|
3284
|
+
updateVisibility() {
|
|
3285
|
+
const visible = !!this._showFn ? this._showFn() : true;
|
|
3286
|
+
if (!visible || !this.isGroup) {
|
|
3287
|
+
this._visible$.next(visible);
|
|
3288
|
+
return;
|
|
3289
|
+
}
|
|
3290
|
+
const numberOfVisibleChildren = this.items
|
|
3291
|
+
.reduce((acc, item) => {
|
|
3292
|
+
item.updateVisibility();
|
|
3293
|
+
if (item.visible) {
|
|
3294
|
+
acc++;
|
|
3295
|
+
}
|
|
3296
|
+
return acc;
|
|
3297
|
+
}, 0);
|
|
3298
|
+
this._visible$.next(!!numberOfVisibleChildren);
|
|
3299
|
+
}
|
|
3300
|
+
_init(config) {
|
|
3301
|
+
this.label = config.label;
|
|
3302
|
+
this.icon = config.icon;
|
|
3303
|
+
this._showFn = config.show;
|
|
3304
|
+
if ('items' in config) {
|
|
3305
|
+
this._isGroup = true;
|
|
3306
|
+
if (Array.isArray(config.items)) {
|
|
3307
|
+
this.items = config
|
|
3308
|
+
.items
|
|
3309
|
+
.map((item) => new ActionMenuItem(item, this));
|
|
3310
|
+
}
|
|
3311
|
+
this.updateVisibility();
|
|
3312
|
+
}
|
|
3313
|
+
else {
|
|
3314
|
+
this.click = config.click;
|
|
3315
|
+
this.routerLink = config.link;
|
|
3316
|
+
if (!this._parent) {
|
|
3317
|
+
this.updateVisibility();
|
|
3318
|
+
}
|
|
3319
|
+
}
|
|
3320
|
+
}
|
|
3321
|
+
}
|
|
3322
|
+
|
|
3323
|
+
class Action {
|
|
3324
|
+
constructor(filterConfig, actionConfig = {}) {
|
|
3325
|
+
this.primary = true;
|
|
3326
|
+
this.isReorderAction = false;
|
|
3327
|
+
this.classArray = [];
|
|
3328
|
+
this.items = [];
|
|
3329
|
+
this._visible$ = new BehaviorSubject(true);
|
|
3330
|
+
this._disabled$ = new BehaviorSubject(false);
|
|
3331
|
+
this._init(filterConfig, actionConfig);
|
|
3332
|
+
}
|
|
3333
|
+
get visible() {
|
|
3334
|
+
return this._visible$.getValue();
|
|
3335
|
+
}
|
|
3336
|
+
get visible$() {
|
|
3337
|
+
return this._visible$.asObservable();
|
|
3338
|
+
}
|
|
3339
|
+
set disabled(value) {
|
|
3340
|
+
this._disabled$.next(value);
|
|
3341
|
+
}
|
|
3342
|
+
get disabled() {
|
|
3343
|
+
return this._disabled$.getValue();
|
|
3344
|
+
}
|
|
3345
|
+
get disabled$() {
|
|
3346
|
+
return this._disabled$.asObservable();
|
|
3347
|
+
}
|
|
3348
|
+
updateVisibility() {
|
|
3349
|
+
const visible = !!this._showFn ? this._showFn() : true;
|
|
3350
|
+
if (!visible || this.mode !== ActionMode.Menu) {
|
|
3351
|
+
this._visible$.next(visible);
|
|
3352
|
+
return;
|
|
3353
|
+
}
|
|
3354
|
+
const hasVisibleChildren = this.items.some((item) => item.visible);
|
|
3355
|
+
this._visible$.next(hasVisibleChildren);
|
|
3356
|
+
}
|
|
3357
|
+
updateDisabledState() {
|
|
3358
|
+
if (this._disabledFn) {
|
|
3359
|
+
this.disabled = this._disabledFn();
|
|
3360
|
+
}
|
|
3361
|
+
}
|
|
3362
|
+
_init(filterConfig, config = {}) {
|
|
3363
|
+
var _a, _b, _c, _d, _e, _f;
|
|
3364
|
+
config.mode = (_a = config.mode) !== null && _a !== void 0 ? _a : ActionMode.Button;
|
|
3365
|
+
this.primary = (_b = config.primary) !== null && _b !== void 0 ? _b : true;
|
|
3366
|
+
this.color = config.color;
|
|
3367
|
+
this.tooltip = config.tooltip;
|
|
3368
|
+
this.label = config.label;
|
|
3369
|
+
this.mode = config.mode;
|
|
3370
|
+
this.icon = config.icon;
|
|
3371
|
+
this.iconPlacement = config.iconPlacement;
|
|
3372
|
+
this._showFn = config.show;
|
|
3373
|
+
this.tabIndex = (_c = config.tabIndex) !== null && _c !== void 0 ? _c : 0;
|
|
3374
|
+
this.menu = config.menu;
|
|
3375
|
+
if (!this.type) {
|
|
3376
|
+
this.type = (config.type || ((_d = filterConfig.button) === null || _d === void 0 ? void 0 : _d.style) || ActionType.Raised);
|
|
3377
|
+
if (this.type === ActionType.Stroked && this.primary) {
|
|
3378
|
+
this.type = ActionType.Flat;
|
|
3379
|
+
}
|
|
3380
|
+
}
|
|
3381
|
+
if (config.multiple !== undefined) {
|
|
3382
|
+
this.multiple = config.multiple;
|
|
3383
|
+
}
|
|
3384
|
+
if (config.className) {
|
|
3385
|
+
this.className = config.className;
|
|
3386
|
+
this.classArray = this.className
|
|
3387
|
+
.split(' ');
|
|
3388
|
+
}
|
|
3389
|
+
if (this.primary) {
|
|
3390
|
+
this.color = 'primary';
|
|
3391
|
+
}
|
|
3392
|
+
switch (config.mode) {
|
|
3393
|
+
case ActionMode.Button:
|
|
3394
|
+
{
|
|
3395
|
+
this.customize = config.customize;
|
|
3396
|
+
this.click = (_e = config.click) !== null && _e !== void 0 ? _e : (() => { });
|
|
3397
|
+
this._disabledFn = config.disabled;
|
|
3398
|
+
this.updateDisabledState();
|
|
3399
|
+
}
|
|
3400
|
+
break;
|
|
3401
|
+
case ActionMode.Menu:
|
|
3402
|
+
{
|
|
3403
|
+
if (config.items && Array.isArray(config.items)) {
|
|
3404
|
+
this.items = config.items.map((item) => new ActionMenuItem(item));
|
|
3405
|
+
}
|
|
3406
|
+
}
|
|
3407
|
+
break;
|
|
3408
|
+
case ActionMode.File:
|
|
3409
|
+
{
|
|
3410
|
+
this.fileSelected = config.select;
|
|
3411
|
+
this.fileError = config.error;
|
|
3412
|
+
this.accept = config.accept;
|
|
3413
|
+
this.imageQuality = config.imageQuality;
|
|
3414
|
+
this.minWidth = config.minWidth;
|
|
3415
|
+
this.minHeight = config.minHeight;
|
|
3416
|
+
this.maxWidth = config.maxWidth;
|
|
3417
|
+
this.maxHeight = config.maxHeight;
|
|
3418
|
+
this.click = (_f = config.click) !== null && _f !== void 0 ? _f : (() => { });
|
|
3419
|
+
this._disabledFn = config.disabled;
|
|
3420
|
+
this.updateDisabledState();
|
|
3421
|
+
}
|
|
3422
|
+
break;
|
|
3423
|
+
}
|
|
3424
|
+
this.updateVisibility();
|
|
3425
|
+
}
|
|
3426
|
+
}
|
|
3427
|
+
|
|
3530
3428
|
class ActionsController {
|
|
3531
3429
|
constructor(_breakpointObserver) {
|
|
3532
3430
|
this._breakpointObserver = _breakpointObserver;
|
|
@@ -3641,9 +3539,9 @@ class ActionsController {
|
|
|
3641
3539
|
});
|
|
3642
3540
|
}
|
|
3643
3541
|
}
|
|
3644
|
-
ActionsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3645
|
-
ActionsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3646
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3542
|
+
ActionsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ActionsController, deps: [{ token: i1$7.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3543
|
+
ActionsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ActionsController });
|
|
3544
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: ActionsController, decorators: [{
|
|
3647
3545
|
type: Injectable
|
|
3648
3546
|
}], ctorParameters: function () { return [{ type: i1$7.BreakpointObserver }]; } });
|
|
3649
3547
|
|
|
@@ -3753,23 +3651,25 @@ class FsFilterOverlayService {
|
|
|
3753
3651
|
});
|
|
3754
3652
|
}
|
|
3755
3653
|
}
|
|
3756
|
-
FsFilterOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3757
|
-
FsFilterOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
3758
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3654
|
+
FsFilterOverlayService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterOverlayService, deps: [{ token: FS_FILTER_META }, { token: i0.Injector }, { token: i1$6.Overlay }, { token: FocusControllerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3655
|
+
FsFilterOverlayService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterOverlayService });
|
|
3656
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterOverlayService, decorators: [{
|
|
3759
3657
|
type: Injectable
|
|
3760
|
-
}], ctorParameters: function () {
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3658
|
+
}], ctorParameters: function () {
|
|
3659
|
+
return [{ type: undefined, decorators: [{
|
|
3660
|
+
type: Inject,
|
|
3661
|
+
args: [FS_FILTER_META]
|
|
3662
|
+
}] }, { type: i0.Injector }, { type: i1$6.Overlay }, { type: FocusControllerService }];
|
|
3663
|
+
} });
|
|
3764
3664
|
|
|
3765
3665
|
class FilterStatusBarDirective {
|
|
3766
3666
|
constructor(templateRef) {
|
|
3767
3667
|
this.templateRef = templateRef;
|
|
3768
3668
|
}
|
|
3769
3669
|
}
|
|
3770
|
-
FilterStatusBarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
3771
|
-
FilterStatusBarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "
|
|
3772
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
3670
|
+
FilterStatusBarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FilterStatusBarDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3671
|
+
FilterStatusBarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.4.0", type: FilterStatusBarDirective, selector: "[fsFilterStatusBar]", ngImport: i0 });
|
|
3672
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FilterStatusBarDirective, decorators: [{
|
|
3773
3673
|
type: Directive,
|
|
3774
3674
|
args: [{
|
|
3775
3675
|
selector: '[fsFilterStatusBar]',
|
|
@@ -4253,8 +4153,8 @@ class FilterComponent {
|
|
|
4253
4153
|
this._hasFilterChips$.next(hasFilterChips);
|
|
4254
4154
|
}
|
|
4255
4155
|
}
|
|
4256
|
-
FilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4257
|
-
FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
4156
|
+
FilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FilterComponent, deps: [{ token: FS_FILTER_CONFIG, optional: true }, { token: FsFilterOverlayService }, { token: i0.NgZone }, { token: ExternalParamsController }, { token: FsFilterItemsStore }, { token: ActionsController }], target: i0.ɵɵFactoryTarget.Component });
|
|
4157
|
+
FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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: [
|
|
4258
4158
|
FsFilterOverlayService,
|
|
4259
4159
|
ExternalParamsController,
|
|
4260
4160
|
PersistanceParamsController,
|
|
@@ -4263,15 +4163,10 @@ FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
4263
4163
|
FsFilterItemsStore,
|
|
4264
4164
|
SavedFiltersController,
|
|
4265
4165
|
ActionsController,
|
|
4266
|
-
], queries: [{ propertyName: "statusBar", first: true, predicate: FilterStatusBarDirective, descendants: true }], viewQueries: [{ propertyName: "keywordMatInput", first: true, predicate: ["keywordMatInput"], descendants: true, read: MatInput }], 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\">\n <mat-form-field \n [floatLabel]=\"'never'\" \n class=\"form-field-padless\" \n [ngClass]=\"search\"\n appearance=\"outline\">\n <span matPrefix>\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-button\n class=\"filters-button\"\n [ngClass]=\"{\n 'mat-raised-button': config.button.style === 'raised' && config.button.label,\n 'mat-flat-button': config.button.style === 'flat' && config.button.label,\n 'mat-stroked-button': config.button.style === 'stroked' && config.button.label,\n 'mat-button': config.button.style === 'basic' && config.button.label,\n 'mat-icon-button': config.button.style === 'icon' || !config.button.label \n }\"\n (click)=\"changeVisibilityClick(!showFilterMenu, $event)\"\n [color]=\"config.button.color\">\n <mat-icon *ngIf=\"config.button.icon\">{{config.button.icon}}</mat-icon>\n {{ config.button.label }}\n </a>\n </ng-container>\n </ng-container>\n <a \n mat-icon-button\n (click)=\"reload($event)\"\n class=\"reload\"\n *ngIf=\"config.reload\">\n <mat-icon>refresh</mat-icon>\n </a>\n </div>\n</ng-template>", styles: [".fs-filter{margin-bottom:20px;display:block}.fs-filter.has-keyword .filter-status-container.has-status{margin-top:4px}.fs-filter:not(.has-keyword) .filter-status-container:not(.has-status)+fs-filter-chips{margin-top:0}.fs-filter:not(.has-keyword) .filter-inner-container{display:flex}.fs-filter:not(.has-keyword) .filter-toobar{justify-content:flex-end}.fs-filter .filter-status-container{flex-grow:1;display:flex;justify-content:center;flex-direction:column;align-self:flex-end}.fs-filter .filter-status-container .filter-status{overflow:hidden;text-overflow:ellipsis;line-height:17px}.fs-filter .filter-container{width:100%}.fs-filter .filter-inner-container{flex-direction:row;box-sizing:border-box;display:flex;position:relative;align-items:center}.fs-filter .filter-inner-container .filter-keyword{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;min-width:0}.fs-filter .filter-inner-container .filter-keyword mat-form-field{max-width:100%;min-width:100px;margin-right:6px}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-wrapper{margin-bottom:0}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-prefix .mat-icon{font-size:22px;color:#626262}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-infix{width:250px}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-prefix,.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-suffix{top:.45em}.fs-filter .filter-inner-container .filter-keyword .mat-form-field-suffix{display:flex}.fs-filter .filter-inner-container .filter-keyword .mat-form-field-suffix .mat-icon-button{height:24px;width:24px}.fs-filter .filter-actions{display:flex;align-items:center}.fs-filter .filter-toobar{flex:1;white-space:nowrap;display:flex;align-items:center}.fs-filter .filter-toobar .
|
|
4267
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4166
|
+
], queries: [{ propertyName: "statusBar", first: true, predicate: FilterStatusBarDirective, descendants: true }], viewQueries: [{ propertyName: "keywordMatInput", first: true, predicate: ["keywordMatInput"], descendants: true, read: MatInput }], 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\">\n <mat-form-field \n [floatLabel]=\"'never'\" \n class=\"form-field-padless\" \n [ngClass]=\"search\"\n appearance=\"outline\">\n <span matPrefix>\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-button\n class=\"filters-button\"\n [ngClass]=\"{\n 'mat-raised-button': config.button.style === 'raised' && config.button.label,\n 'mat-flat-button': config.button.style === 'flat' && config.button.label,\n 'mat-stroked-button': config.button.style === 'stroked' && config.button.label,\n 'mat-button': config.button.style === 'basic' && config.button.label,\n 'mat-icon-button': config.button.style === 'icon' || !config.button.label \n }\"\n (click)=\"changeVisibilityClick(!showFilterMenu, $event)\"\n [color]=\"config.button.color\">\n <mat-icon *ngIf=\"config.button.icon\">{{config.button.icon}}</mat-icon>\n {{ config.button.label }}\n </a>\n </ng-container>\n </ng-container>\n <a \n mat-icon-button\n (click)=\"reload($event)\"\n class=\"reload\"\n *ngIf=\"config.reload\">\n <mat-icon>refresh</mat-icon>\n </a>\n </div>\n</ng-template>", styles: [".fs-filter{margin-bottom:20px;display:block}.fs-filter.has-keyword .filter-status-container.has-status{margin-top:4px}.fs-filter:not(.has-keyword) .filter-status-container:not(.has-status)+fs-filter-chips{margin-top:0}.fs-filter:not(.has-keyword) .filter-inner-container{display:flex}.fs-filter:not(.has-keyword) .filter-toobar{justify-content:flex-end}.fs-filter .filter-status-container{flex-grow:1;display:flex;justify-content:center;flex-direction:column;align-self:flex-end}.fs-filter .filter-status-container .filter-status{overflow:hidden;text-overflow:ellipsis;line-height:17px}.fs-filter .filter-container{width:100%}.fs-filter .filter-inner-container{flex-direction:row;box-sizing:border-box;display:flex;position:relative;align-items:center}.fs-filter .filter-inner-container .filter-keyword{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;min-width:0}.fs-filter .filter-inner-container .filter-keyword mat-form-field{max-width:100%;min-width:100px;margin-right:6px}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-wrapper{margin-bottom:0}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-prefix .mat-icon{font-size:22px;color:#626262}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-infix{width:250px}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-prefix,.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-suffix{top:.45em}.fs-filter .filter-inner-container .filter-keyword .mat-form-field-suffix{display:flex}.fs-filter .filter-inner-container .filter-keyword .mat-form-field-suffix .mat-icon-button{height:24px;width:24px}.fs-filter .filter-actions{display:flex;align-items:center}.fs-filter .filter-toobar{flex:1;white-space:nowrap;display:flex;align-items:center}.fs-filter .filter-toobar .reload{margin-left:-6px}.fs-filter .results{min-height:90px;position:relative;overflow-x:auto;overflow-y:hidden}.fs-filter fs-filter-chips{margin-top:4px;display:block}@media screen and (min-width: 599px){.filter-actions{margin-left:10px}.filters-button+fs-filter-actions:not(:empty){margin-left:5px}}@media screen and (max-width: 600px){.filter-actions{margin-left:5px}.filter-actions .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){body.fs-filter-open{margin-right:350px}.fs-filter-backdrop{display:none}}body.fs-filter-open::-webkit-scrollbar{width:0;background:transparent}\n"], components: [{ type: FsFilterChipsComponent, selector: "fs-filter-chips", inputs: ["filters"] }, { type: i1$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.FsClearComponent, selector: "[fsClear]", inputs: ["ngModel", "fsClear"], outputs: ["ngModelChange", "cleared"] }, { type: FsFilterActionsComponent, selector: "fs-filter-actions", inputs: ["kebabActions", "actions"] }, { type: i1$4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$3.MatPrefix, selector: "[matPrefix]" }, { type: i3$2.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"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i7.FsButtonDirective, selector: "[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]", inputs: ["name", "dirtySubmit", "form"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
4167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FilterComponent, decorators: [{
|
|
4268
4168
|
type: Component,
|
|
4269
|
-
args: [{
|
|
4270
|
-
selector: 'fs-filter',
|
|
4271
|
-
styleUrls: ['./filter.component.scss'],
|
|
4272
|
-
templateUrl: './filter.component.html',
|
|
4273
|
-
encapsulation: ViewEncapsulation.None,
|
|
4274
|
-
providers: [
|
|
4169
|
+
args: [{ selector: 'fs-filter', encapsulation: ViewEncapsulation.None, providers: [
|
|
4275
4170
|
FsFilterOverlayService,
|
|
4276
4171
|
ExternalParamsController,
|
|
4277
4172
|
PersistanceParamsController,
|
|
@@ -4280,15 +4175,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4280
4175
|
FsFilterItemsStore,
|
|
4281
4176
|
SavedFiltersController,
|
|
4282
4177
|
ActionsController,
|
|
4283
|
-
],
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4178
|
+
], 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\">\n <mat-form-field \n [floatLabel]=\"'never'\" \n class=\"form-field-padless\" \n [ngClass]=\"search\"\n appearance=\"outline\">\n <span matPrefix>\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-button\n class=\"filters-button\"\n [ngClass]=\"{\n 'mat-raised-button': config.button.style === 'raised' && config.button.label,\n 'mat-flat-button': config.button.style === 'flat' && config.button.label,\n 'mat-stroked-button': config.button.style === 'stroked' && config.button.label,\n 'mat-button': config.button.style === 'basic' && config.button.label,\n 'mat-icon-button': config.button.style === 'icon' || !config.button.label \n }\"\n (click)=\"changeVisibilityClick(!showFilterMenu, $event)\"\n [color]=\"config.button.color\">\n <mat-icon *ngIf=\"config.button.icon\">{{config.button.icon}}</mat-icon>\n {{ config.button.label }}\n </a>\n </ng-container>\n </ng-container>\n <a \n mat-icon-button\n (click)=\"reload($event)\"\n class=\"reload\"\n *ngIf=\"config.reload\">\n <mat-icon>refresh</mat-icon>\n </a>\n </div>\n</ng-template>", styles: [".fs-filter{margin-bottom:20px;display:block}.fs-filter.has-keyword .filter-status-container.has-status{margin-top:4px}.fs-filter:not(.has-keyword) .filter-status-container:not(.has-status)+fs-filter-chips{margin-top:0}.fs-filter:not(.has-keyword) .filter-inner-container{display:flex}.fs-filter:not(.has-keyword) .filter-toobar{justify-content:flex-end}.fs-filter .filter-status-container{flex-grow:1;display:flex;justify-content:center;flex-direction:column;align-self:flex-end}.fs-filter .filter-status-container .filter-status{overflow:hidden;text-overflow:ellipsis;line-height:17px}.fs-filter .filter-container{width:100%}.fs-filter .filter-inner-container{flex-direction:row;box-sizing:border-box;display:flex;position:relative;align-items:center}.fs-filter .filter-inner-container .filter-keyword{flex-direction:row;box-sizing:border-box;display:flex;align-items:center;min-width:0}.fs-filter .filter-inner-container .filter-keyword mat-form-field{max-width:100%;min-width:100px;margin-right:6px}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-wrapper{margin-bottom:0}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-prefix .mat-icon{font-size:22px;color:#626262}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-infix{width:250px}.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-prefix,.fs-filter .filter-inner-container .filter-keyword mat-form-field .mat-form-field-suffix{top:.45em}.fs-filter .filter-inner-container .filter-keyword .mat-form-field-suffix{display:flex}.fs-filter .filter-inner-container .filter-keyword .mat-form-field-suffix .mat-icon-button{height:24px;width:24px}.fs-filter .filter-actions{display:flex;align-items:center}.fs-filter .filter-toobar{flex:1;white-space:nowrap;display:flex;align-items:center}.fs-filter .filter-toobar .reload{margin-left:-6px}.fs-filter .results{min-height:90px;position:relative;overflow-x:auto;overflow-y:hidden}.fs-filter fs-filter-chips{margin-top:4px;display:block}@media screen and (min-width: 599px){.filter-actions{margin-left:10px}.filters-button+fs-filter-actions:not(:empty){margin-left:5px}}@media screen and (max-width: 600px){.filter-actions{margin-left:5px}.filter-actions .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){body.fs-filter-open{margin-right:350px}.fs-filter-backdrop{display:none}}body.fs-filter-open::-webkit-scrollbar{width:0;background:transparent}\n"] }]
|
|
4179
|
+
}], ctorParameters: function () {
|
|
4180
|
+
return [{ type: FsFilterConfig, decorators: [{
|
|
4181
|
+
type: Optional
|
|
4182
|
+
}, {
|
|
4183
|
+
type: Inject,
|
|
4184
|
+
args: [FS_FILTER_CONFIG]
|
|
4185
|
+
}] }, { type: FsFilterOverlayService }, { type: i0.NgZone }, { type: ExternalParamsController }, { type: FsFilterItemsStore }, { type: ActionsController }];
|
|
4186
|
+
}, propDecorators: { setConfig: [{
|
|
4292
4187
|
type: Input,
|
|
4293
4188
|
args: ['config']
|
|
4294
4189
|
}], setFilter: [{
|
|
@@ -4327,16 +4222,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4327
4222
|
class SelectBackdropComponent {
|
|
4328
4223
|
constructor() { }
|
|
4329
4224
|
}
|
|
4330
|
-
SelectBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4331
|
-
SelectBackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
4332
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4225
|
+
SelectBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectBackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4226
|
+
SelectBackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: SelectBackdropComponent, selector: "filter-item-select-backdrop", ngImport: i0, template: "", styles: [":host{position:absolute;z-index:1002;inset:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectBackdropComponent, decorators: [{
|
|
4333
4228
|
type: Component,
|
|
4334
|
-
args: [{
|
|
4335
|
-
selector: 'filter-item-select-backdrop',
|
|
4336
|
-
styleUrls: ['./backdrop.component.scss'],
|
|
4337
|
-
templateUrl: './backdrop.component.html',
|
|
4338
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4339
|
-
}]
|
|
4229
|
+
args: [{ selector: 'filter-item-select-backdrop', changeDetection: ChangeDetectionStrategy.OnPush, template: "", styles: [":host{position:absolute;z-index:1002;inset:0}\n"] }]
|
|
4340
4230
|
}], ctorParameters: function () { return []; } });
|
|
4341
4231
|
|
|
4342
4232
|
class FsSavedFiltersMenuComponent {
|
|
@@ -4367,18 +4257,11 @@ class FsSavedFiltersMenuComponent {
|
|
|
4367
4257
|
this.manage.emit();
|
|
4368
4258
|
}
|
|
4369
4259
|
}
|
|
4370
|
-
FsSavedFiltersMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4371
|
-
FsSavedFiltersMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
4372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4260
|
+
FsSavedFiltersMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsSavedFiltersMenuComponent, deps: [{ token: FsFilterItemsStore }, { token: ExternalParamsController }, { token: SavedFiltersController }], target: i0.ɵɵFactoryTarget.Component });
|
|
4261
|
+
FsSavedFiltersMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FsSavedFiltersMenuComponent, selector: "fs-filter-saved-filters-menu", outputs: { select: "select", clear: "clear", manage: "manage" }, ngImport: i0, template: "<a [fsMenuTriggerFor]=\"menu\" class=\"selector\">{{ (activeFilter$ | async)?.name || 'Not selected' }}</a>\n\n<fs-menu #menu>\n <ng-container *ngIf=\"activeFilter$ | async\">\n <ng-template fs-menu-item (click)=\"removeActiveFilter()\">\n None\n </ng-template>\n </ng-container>\n <ng-container *ngFor=\"let filter of filters$ | async\">\n <ng-template fs-menu-item (click)=\"selectFilter(filter)\">\n {{ filter.name }}\n </ng-template>\n </ng-container>\n <ng-template fs-menu-item class=\"saved-filter-last-item\" (click)=\"manageFilters()\">\n Manage\n </ng-template>\n</fs-menu>\n", styles: [":host ::ng-deep .selector{cursor:pointer}\n"], components: [{ type: i3$3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }], directives: [{ type: i3$3.FsMenuTriggerDirective, selector: "[fsMenuTriggerFor]", inputs: ["fsMenuTriggerFor"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4262
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsSavedFiltersMenuComponent, decorators: [{
|
|
4373
4263
|
type: Component,
|
|
4374
|
-
args: [{
|
|
4375
|
-
selector: 'fs-filter-saved-filters-menu',
|
|
4376
|
-
templateUrl: './saved-filters-menu.component.html',
|
|
4377
|
-
styleUrls: [
|
|
4378
|
-
'./saved-filters-menu.component.scss',
|
|
4379
|
-
],
|
|
4380
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4381
|
-
}]
|
|
4264
|
+
args: [{ selector: 'fs-filter-saved-filters-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<a [fsMenuTriggerFor]=\"menu\" class=\"selector\">{{ (activeFilter$ | async)?.name || 'Not selected' }}</a>\n\n<fs-menu #menu>\n <ng-container *ngIf=\"activeFilter$ | async\">\n <ng-template fs-menu-item (click)=\"removeActiveFilter()\">\n None\n </ng-template>\n </ng-container>\n <ng-container *ngFor=\"let filter of filters$ | async\">\n <ng-template fs-menu-item (click)=\"selectFilter(filter)\">\n {{ filter.name }}\n </ng-template>\n </ng-container>\n <ng-template fs-menu-item class=\"saved-filter-last-item\" (click)=\"manageFilters()\">\n Manage\n </ng-template>\n</fs-menu>\n", styles: [":host ::ng-deep .selector{cursor:pointer}\n"] }]
|
|
4382
4265
|
}], ctorParameters: function () { return [{ type: FsFilterItemsStore }, { type: ExternalParamsController }, { type: SavedFiltersController }]; }, propDecorators: { select: [{
|
|
4383
4266
|
type: Output
|
|
4384
4267
|
}], clear: [{
|
|
@@ -4402,8 +4285,8 @@ class FsFilterModule {
|
|
|
4402
4285
|
};
|
|
4403
4286
|
}
|
|
4404
4287
|
}
|
|
4405
|
-
FsFilterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
4406
|
-
FsFilterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
|
|
4288
|
+
FsFilterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
4289
|
+
FsFilterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterModule, declarations: [BaseItemComponent,
|
|
4407
4290
|
FilterComponent,
|
|
4408
4291
|
FilterItemComponent,
|
|
4409
4292
|
FsFilterChipsComponent,
|
|
@@ -4462,7 +4345,7 @@ FsFilterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
|
|
|
4462
4345
|
PortalModule], exports: [FilterComponent,
|
|
4463
4346
|
FilterStatusBarDirective,
|
|
4464
4347
|
FsSavedFiltersMenuComponent] });
|
|
4465
|
-
FsFilterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
4348
|
+
FsFilterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterModule, providers: [
|
|
4466
4349
|
FsStore,
|
|
4467
4350
|
], imports: [[
|
|
4468
4351
|
CommonModule,
|
|
@@ -4493,7 +4376,7 @@ FsFilterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
|
|
|
4493
4376
|
FsPopoverModule,
|
|
4494
4377
|
PortalModule,
|
|
4495
4378
|
]] });
|
|
4496
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
4379
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FsFilterModule, decorators: [{
|
|
4497
4380
|
type: NgModule,
|
|
4498
4381
|
args: [{
|
|
4499
4382
|
imports: [
|
|
@@ -4576,4 +4459,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
4576
4459
|
*/
|
|
4577
4460
|
|
|
4578
4461
|
export { ActionMode, ActionType, AutocompleteChipsItem, AutocompleteItem, BaseItem, ButtonStyle, CheckboxItem, ChipsItem, DateItem, DateRangeItem, DateTimeItem, DateTimeRangeItem, ExternalParamsController, FS_FILTER_CONFIG, FilterComponent, FilterItemComponent, FilterStatusBarDirective, FsFilterModule, FsSavedFiltersMenuComponent, ItemDateMode, ItemType, QUERY_PARAM_DELIMITER, RangeItem, SavedFiltersController, SelectItem, TextItem, buildQueryParams, filterFromQueryParam, filterToQueryParam };
|
|
4579
|
-
//# sourceMappingURL=firestitch-filter.
|
|
4462
|
+
//# sourceMappingURL=firestitch-filter.mjs.map
|