@firestitch/filter 12.10.0 → 12.10.2

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.
Files changed (23) hide show
  1. package/app/components/filter/filter.component.d.ts +3 -0
  2. package/app/components/filters-item/base-item/base-item.component.d.ts +4 -2
  3. package/app/components/filters-item/date/date.component.d.ts +2 -1
  4. package/app/components/filters-item/date-range/date-range.component.d.ts +2 -1
  5. package/app/components/filters-item/filter-item.component.d.ts +24 -0
  6. package/app/components/filters-item/select/select.component.d.ts +8 -1
  7. package/app/enums/picker-view-type.enum.d.ts +7 -0
  8. package/app/models/items/select/simple-select-item.d.ts +1 -0
  9. package/bundles/firestitch-filter.umd.js +167 -11
  10. package/bundles/firestitch-filter.umd.js.map +1 -1
  11. package/esm2015/app/components/filter/filter.component.js +14 -1
  12. package/esm2015/app/components/filters-item/autocomplete/autocomplete.component.js +2 -2
  13. package/esm2015/app/components/filters-item/autocompletechips/autocompletechips.component.js +2 -2
  14. package/esm2015/app/components/filters-item/base-item/base-item.component.js +12 -2
  15. package/esm2015/app/components/filters-item/date/date.component.js +5 -4
  16. package/esm2015/app/components/filters-item/date-range/date-range.component.js +5 -4
  17. package/esm2015/app/components/filters-item/filter-item.component.js +38 -2
  18. package/esm2015/app/components/filters-item/select/select.component.js +13 -2
  19. package/esm2015/app/enums/picker-view-type.enum.js +9 -0
  20. package/esm2015/app/models/items/select/simple-select-item.js +6 -1
  21. package/fesm2015/firestitch-filter.js +95 -11
  22. package/fesm2015/firestitch-filter.js.map +1 -1
  23. package/package.json +1 -1
@@ -123,6 +123,9 @@ export declare class FilterComponent implements OnInit, AfterViewInit, OnDestroy
123
123
  show(): void;
124
124
  changeVisibilityClick(value: any, event?: any): void;
125
125
  filterInputEvent(event: any): void;
126
+ get itemValues(): any[];
127
+ get nonEmptyItemValues(): any[];
128
+ get hasItemValues(): boolean;
126
129
  getItemValue(name: string): any;
127
130
  showItem(name: string): void;
128
131
  hideItem(name: string): void;
@@ -1,13 +1,14 @@
1
- import { ChangeDetectorRef, DoCheck, KeyValueDiffer, KeyValueDiffers, OnDestroy } from '@angular/core';
1
+ import { ChangeDetectorRef, DoCheck, KeyValueDiffer, KeyValueDiffers, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { BaseItem } from '../../../models/items/base-item';
4
4
  import { IFilterConfigItem } from '../../../interfaces/config.interface';
5
5
  import * as i0 from "@angular/core";
6
- export declare class BaseItemComponent<T extends BaseItem<IFilterConfigItem>> implements DoCheck, OnDestroy {
6
+ export declare class BaseItemComponent<T extends BaseItem<IFilterConfigItem>> implements DoCheck, OnChanges, OnDestroy {
7
7
  protected _kvDiffers: KeyValueDiffers;
8
8
  protected _cd: ChangeDetectorRef;
9
9
  set item(value: T);
10
10
  inline: boolean;
11
+ label: string;
11
12
  protected _item: T;
12
13
  protected _kvDiffer: KeyValueDiffer<string, any>;
13
14
  protected _destroy$: Subject<unknown>;
@@ -15,6 +16,7 @@ export declare class BaseItemComponent<T extends BaseItem<IFilterConfigItem>> im
15
16
  constructor(_kvDiffers: KeyValueDiffers, _cd: ChangeDetectorRef);
16
17
  get item(): T;
17
18
  ngDoCheck(): void;
19
+ ngOnChanges(changes: SimpleChanges): void;
18
20
  ngOnDestroy(): void;
19
21
  listenWithDebounce(): void;
20
22
  itemChange(): void;
@@ -3,11 +3,12 @@ import { BaseItemComponent } from '../base-item/base-item.component';
3
3
  import { ItemDateMode } from '../../../enums/item-date-mode.enum';
4
4
  import { DateItem } from '../../../models/items/date-item';
5
5
  import { DateTimeItem } from '../../../models/items/date-time-item';
6
+ import { PickerViewType } from '../../../enums/picker-view-type.enum';
6
7
  import * as i0 from "@angular/core";
7
8
  export declare class DateComponent extends BaseItemComponent<DateItem | DateTimeItem> implements OnInit {
8
9
  protected _kvDiffers: KeyValueDiffers;
9
10
  protected _cd: ChangeDetectorRef;
10
- viewType: string;
11
+ viewType: PickerViewType;
11
12
  itemDateMode: typeof ItemDateMode;
12
13
  showYear: boolean;
13
14
  showMonth: boolean;
@@ -2,11 +2,12 @@ import { ChangeDetectorRef, KeyValueDiffers, OnInit } from '@angular/core';
2
2
  import { BaseItemComponent } from '../base-item/base-item.component';
3
3
  import { DateRangeItem } from '../../../models/items/date-range-item';
4
4
  import { DateTimeRangeItem } from '../../../models/items/date-time-range-item';
5
+ import { PickerViewType } from '../../../enums/picker-view-type.enum';
5
6
  import * as i0 from "@angular/core";
6
7
  export declare class DateRangeComponent extends BaseItemComponent<DateRangeItem | DateTimeRangeItem> implements OnInit {
7
8
  protected _kvDiffers: KeyValueDiffers;
8
9
  protected _cd: ChangeDetectorRef;
9
- viewType: string;
10
+ viewType: PickerViewType;
10
11
  constructor(_kvDiffers: KeyValueDiffers, _cd: ChangeDetectorRef);
11
12
  ngOnInit(): void;
12
13
  static ɵfac: i0.ɵɵFactoryDeclaration<DateRangeComponent, never>;
@@ -1,10 +1,34 @@
1
1
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { ItemType } from '../../enums/item-type.enum';
3
3
  import { BaseItem } from '../../models/items/base-item';
4
+ import { ChipsItem } from '../../models/items/chips-item';
5
+ import { RangeItem } from '../../models/items/range-item';
6
+ import { TextItem } from '../../models/items/text-item';
7
+ import { AutocompleteItem } from '../../models/items/autocomplete-item';
8
+ import { AutocompleteChipsItem } from '../../models/items/autocomplete-chips-item';
9
+ import { DateItem } from '../../models/items/date-item';
10
+ import { DateTimeItem } from '../../models/items/date-time-item';
11
+ import { DateRangeItem } from '../../models/items/date-range-item';
12
+ import { DateTimeRangeItem } from '../../models/items/date-time-range-item';
13
+ import { WeekItem } from '../../models/items/week-item';
14
+ import { CheckboxItem } from '../../models/items/checkbox-item';
15
+ import { BaseSelectItem } from '../../models/items/select/base-select-item';
4
16
  import * as i0 from "@angular/core";
5
17
  export declare class FilterItemComponent implements OnInit, OnDestroy {
6
18
  private _cdRef;
7
19
  item: BaseItem<any>;
20
+ get textItem(): TextItem;
21
+ get chipsItem(): ChipsItem;
22
+ get baseSelectItem(): BaseSelectItem;
23
+ get rangeItem(): RangeItem;
24
+ get autocompleteItem(): AutocompleteItem;
25
+ get autocompleteChipsItem(): AutocompleteChipsItem;
26
+ get dateItem(): DateItem;
27
+ get dateRangeItem(): DateRangeItem;
28
+ get dateTimeItem(): DateTimeItem;
29
+ get dateTimeRangeItem(): DateTimeRangeItem;
30
+ get weekItem(): WeekItem;
31
+ get checkboxItem(): CheckboxItem;
8
32
  private _destroy$;
9
33
  constructor(_cdRef: ChangeDetectorRef);
10
34
  ngOnInit(): void;
@@ -1,15 +1,22 @@
1
- import { ChangeDetectorRef, KeyValueDiffers, DoCheck } from '@angular/core';
1
+ import { ChangeDetectorRef, KeyValueDiffers, DoCheck, SimpleChanges } from '@angular/core';
2
+ import { Observable } from 'rxjs';
2
3
  import { BaseItemComponent } from '../base-item/base-item.component';
3
4
  import { SelectSimpleComponent } from './simple/simple.component';
4
5
  import { SelectMultipleComponent } from './multiple/multiple.component';
5
6
  import { BaseSelectItem } from '../../../models/items/select/base-select-item';
7
+ import { MultipleSelectItem } from '../../../models/items/select/multiple-select-item';
8
+ import { SimpleSelectItem } from '../../../models/items/select/simple-select-item';
6
9
  import * as i0 from "@angular/core";
7
10
  export declare class SelectComponent extends BaseItemComponent<BaseSelectItem> implements DoCheck {
8
11
  protected _kvDiffers: KeyValueDiffers;
9
12
  protected _cd: ChangeDetectorRef;
10
13
  selectedItem: SelectSimpleComponent | SelectMultipleComponent;
11
14
  allItemsOptionSelected: boolean;
15
+ get multipleSelectItem(): MultipleSelectItem;
16
+ get simpleSelectItem(): SimpleSelectItem;
17
+ values$: Observable<unknown[]>;
12
18
  constructor(_kvDiffers: KeyValueDiffers, _cd: ChangeDetectorRef);
19
+ ngOnChanges(changes: SimpleChanges): void;
13
20
  ngDoCheck(): void;
14
21
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
15
22
  static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "filter-item-select", never, {}, {}, never, never>;
@@ -0,0 +1,7 @@
1
+ export declare enum PickerViewType {
2
+ Date = "date",
3
+ DateTime = "datetime",
4
+ Time = "time",
5
+ Week = "week",
6
+ MonthRange = "monthrange"
7
+ }
@@ -6,6 +6,7 @@ export declare class SimpleSelectItem extends BaseSelectItem {
6
6
  getChipsContent(type?: any): string;
7
7
  get isChipVisible(): boolean;
8
8
  protected _init(): void;
9
+ protected get isolateOptionNotSelected(): boolean;
9
10
  protected _setModel(value: any): void;
10
11
  protected _validateModel(): void;
11
12
  protected _clearValue(defaultValue?: unknown): void;
@@ -1021,6 +1021,15 @@
1021
1021
  this._model = '__all';
1022
1022
  }
1023
1023
  };
1024
+ Object.defineProperty(SimpleSelectItem.prototype, "isolateOptionNotSelected", {
1025
+ get: function () {
1026
+ var modelValue = this.model;
1027
+ var isolate = this.isolate;
1028
+ return isolate && !isolate.enabled && (modelValue === null || modelValue === void 0 ? void 0 : modelValue.length) === 0;
1029
+ },
1030
+ enumerable: false,
1031
+ configurable: true
1032
+ });
1024
1033
  SimpleSelectItem.prototype._setModel = function (value) {
1025
1034
  if (value) {
1026
1035
  if (!isNaN(value)) {
@@ -3099,6 +3108,16 @@
3099
3108
  }
3100
3109
  }
3101
3110
  };
3111
+ BaseItemComponent.prototype.ngOnChanges = function (changes) {
3112
+ if (changes.item) {
3113
+ if (Array.isArray(this.item.label)) {
3114
+ this.label = this.item.label[0];
3115
+ }
3116
+ else {
3117
+ this.label = this.item.label;
3118
+ }
3119
+ }
3120
+ };
3102
3121
  BaseItemComponent.prototype.ngOnDestroy = function () {
3103
3122
  this._destroy$.next();
3104
3123
  this._destroy$.complete();
@@ -3117,7 +3136,7 @@
3117
3136
  return BaseItemComponent;
3118
3137
  }());
3119
3138
  BaseItemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: BaseItemComponent, deps: [{ token: i0__namespace.KeyValueDiffers }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
3120
- BaseItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: BaseItemComponent, selector: "base-item", inputs: { item: "item", inline: "inline" }, ngImport: i0__namespace, template: '', isInline: true, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3139
+ BaseItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: BaseItemComponent, selector: "base-item", inputs: { item: "item", inline: "inline" }, usesOnChanges: true, ngImport: i0__namespace, template: '', isInline: true, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3121
3140
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: BaseItemComponent, decorators: [{
3122
3141
  type: i0.Component,
3123
3142
  args: [{
@@ -3478,6 +3497,25 @@
3478
3497
  _this.allItemsOptionSelected = false;
3479
3498
  return _this;
3480
3499
  }
3500
+ Object.defineProperty(SelectComponent.prototype, "multipleSelectItem", {
3501
+ get: function () {
3502
+ return this.item;
3503
+ },
3504
+ enumerable: false,
3505
+ configurable: true
3506
+ });
3507
+ Object.defineProperty(SelectComponent.prototype, "simpleSelectItem", {
3508
+ get: function () {
3509
+ return this.item;
3510
+ },
3511
+ enumerable: false,
3512
+ configurable: true
3513
+ });
3514
+ SelectComponent.prototype.ngOnChanges = function (changes) {
3515
+ if (changes.item) {
3516
+ this.values$ = this.item.values$;
3517
+ }
3518
+ };
3481
3519
  SelectComponent.prototype.ngDoCheck = function () {
3482
3520
  if (this._kvDiffer) {
3483
3521
  var changes = this._kvDiffer.diff(this.item);
@@ -3492,7 +3530,7 @@
3492
3530
  return SelectComponent;
3493
3531
  }(BaseItemComponent));
3494
3532
  SelectComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SelectComponent, deps: [{ token: i0__namespace.KeyValueDiffers }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
3495
- SelectComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SelectComponent, selector: "filter-item-select", viewQueries: [{ propertyName: "selectedItem", first: true, predicate: ["selectItem"], descendants: true }], usesInheritance: true, ngImport: i0__namespace, 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=\"(item.values$ | async)?.length\">\n <ng-container *ngIf=\"item.multiple && !item.children\">\n <filter-item-select-multiple\n [item]=\"item\"\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]=\"item\"\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__namespace$3.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2__namespace.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__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$3.MatLabel, selector: "mat-label" }], pipes: { "async": i3__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3533
+ SelectComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SelectComponent, selector: "filter-item-select", viewQueries: [{ propertyName: "selectedItem", first: true, predicate: ["selectItem"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace, 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__namespace$3.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i2__namespace.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__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$3.MatLabel, selector: "mat-label" }], pipes: { "async": i3__namespace.AsyncPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3496
3534
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SelectComponent, decorators: [{
3497
3535
  type: i0.Component,
3498
3536
  args: [{
@@ -3592,7 +3630,7 @@
3592
3630
  return AutocompleteComponent;
3593
3631
  }(BaseItemComponent));
3594
3632
  AutocompleteComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AutocompleteComponent, deps: [{ token: i0__namespace.KeyValueDiffers }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
3595
- AutocompleteComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AutocompleteComponent, selector: "filter-item-autocomplete", usesInheritance: true, ngImport: i0__namespace, template: "<fs-autocomplete\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [(ngModel)]=\"item.model\"\n [placeholder]=\"item.label\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [showClear]=\"item.clearAllowed\"\n name=\"item.name\">\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n {{data.name}}\n </ng-template>\n</fs-autocomplete>\n", components: [{ type: i4__namespace$1.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "placeholder", "displayWith", "fetchOnFocus", "readonly", "required", "disabled", "hint", "panelWidth", "panelClass", "showClear"], outputs: ["cleared"] }], directives: [{ type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4__namespace$1.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3633
+ AutocompleteComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AutocompleteComponent, selector: "filter-item-autocomplete", usesInheritance: true, ngImport: i0__namespace, 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.clearAllowed\"\n name=\"item.name\">\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n {{data.name}}\n </ng-template>\n</fs-autocomplete>\n", components: [{ type: i4__namespace$1.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "placeholder", "displayWith", "fetchOnFocus", "readonly", "required", "disabled", "hint", "panelWidth", "panelClass", "showClear"], outputs: ["cleared"] }], directives: [{ type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4__namespace$1.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3596
3634
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AutocompleteComponent, decorators: [{
3597
3635
  type: i0.Component,
3598
3636
  args: [{
@@ -3640,7 +3678,7 @@
3640
3678
  return AutocompletechipsComponent;
3641
3679
  }(BaseItemComponent));
3642
3680
  AutocompletechipsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AutocompletechipsComponent, deps: [{ token: i0__namespace.KeyValueDiffers }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
3643
- AutocompletechipsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AutocompletechipsComponent, selector: "filter-item-autocompletechips", usesInheritance: true, ngImport: i0__namespace, 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 (click)=\"clicked()\"\n [allowText]=\"false\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [placeholder]=\"item.label\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"chipColor\"\n [chipIconColor]=\"chipIcon\"\n [chipBackground]=\"chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.clearAllowed\"\n [removable]=\"item.clearAllowed\"\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__namespace.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "readonly", "size", "placeholder", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "hint", "allowText", "allowObject", "delay", "validateText", "removable", "allowClear", "color", "background", "orderable", "limit", "initOnClick", "fetchOnFocus", "multiple", "confirm", "panelClass", "compareWith", "disabled", "panelWidth"], outputs: ["selected", "removed", "reordered", "clear"] }], directives: [{ type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3681
+ AutocompletechipsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AutocompletechipsComponent, selector: "filter-item-autocompletechips", usesInheritance: true, ngImport: i0__namespace, 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 (click)=\"clicked()\"\n [allowText]=\"false\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [placeholder]=\"label\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"chipColor\"\n [chipIconColor]=\"chipIcon\"\n [chipBackground]=\"chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.clearAllowed\"\n [removable]=\"item.clearAllowed\"\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__namespace.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "readonly", "size", "placeholder", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "hint", "allowText", "allowObject", "delay", "validateText", "removable", "allowClear", "color", "background", "orderable", "limit", "initOnClick", "fetchOnFocus", "multiple", "confirm", "panelClass", "compareWith", "disabled", "panelWidth"], outputs: ["selected", "removed", "reordered", "clear"] }], directives: [{ type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i4__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5__namespace.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3644
3682
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AutocompletechipsComponent, decorators: [{
3645
3683
  type: i0.Component,
3646
3684
  args: [{
@@ -3650,13 +3688,22 @@
3650
3688
  }]
3651
3689
  }], ctorParameters: function () { return [{ type: i0__namespace.KeyValueDiffers }, { type: i0__namespace.ChangeDetectorRef }]; } });
3652
3690
 
3691
+ var PickerViewType;
3692
+ (function (PickerViewType) {
3693
+ PickerViewType["Date"] = "date";
3694
+ PickerViewType["DateTime"] = "datetime";
3695
+ PickerViewType["Time"] = "time";
3696
+ PickerViewType["Week"] = "week";
3697
+ PickerViewType["MonthRange"] = "monthrange";
3698
+ })(PickerViewType || (PickerViewType = {}));
3699
+
3653
3700
  var DateComponent = /** @class */ (function (_super) {
3654
3701
  __extends(DateComponent, _super);
3655
3702
  function DateComponent(_kvDiffers, _cd) {
3656
3703
  var _this = _super.call(this, _kvDiffers, _cd) || this;
3657
3704
  _this._kvDiffers = _kvDiffers;
3658
3705
  _this._cd = _cd;
3659
- _this.viewType = 'date';
3706
+ _this.viewType = PickerViewType.Date;
3660
3707
  _this.itemDateMode = exports.ItemDateMode;
3661
3708
  _this.showYear = true;
3662
3709
  _this.showMonth = true;
@@ -3665,10 +3712,10 @@
3665
3712
  }
3666
3713
  DateComponent.prototype.ngOnInit = function () {
3667
3714
  if (this.item.type === exports.ItemType.DateTime) {
3668
- this.viewType = 'datetime';
3715
+ this.viewType = PickerViewType.DateTime;
3669
3716
  }
3670
3717
  else {
3671
- this.viewType = 'date';
3718
+ this.viewType = PickerViewType.Date;
3672
3719
  }
3673
3720
  if (this.item.mode === exports.ItemDateMode.ScrollMonthYear) {
3674
3721
  this.showDay = false;
@@ -3693,15 +3740,15 @@
3693
3740
  var _this = _super.call(this, _kvDiffers, _cd) || this;
3694
3741
  _this._kvDiffers = _kvDiffers;
3695
3742
  _this._cd = _cd;
3696
- _this.viewType = 'date';
3743
+ _this.viewType = PickerViewType.Date;
3697
3744
  return _this;
3698
3745
  }
3699
3746
  DateRangeComponent.prototype.ngOnInit = function () {
3700
3747
  if (this.item.type === exports.ItemType.DateTimeRange) {
3701
- this.viewType = 'datetime';
3748
+ this.viewType = PickerViewType.DateTime;
3702
3749
  }
3703
3750
  else {
3704
- this.viewType = 'date';
3751
+ this.viewType = PickerViewType.Date;
3705
3752
  }
3706
3753
  };
3707
3754
  return DateRangeComponent;
@@ -3767,6 +3814,90 @@
3767
3814
  this._destroy$ = new rxjs.Subject();
3768
3815
  this.itemType = exports.ItemType;
3769
3816
  }
3817
+ Object.defineProperty(FilterItemComponent.prototype, "textItem", {
3818
+ get: function () {
3819
+ return this.item;
3820
+ },
3821
+ enumerable: false,
3822
+ configurable: true
3823
+ });
3824
+ Object.defineProperty(FilterItemComponent.prototype, "chipsItem", {
3825
+ get: function () {
3826
+ return this.item;
3827
+ },
3828
+ enumerable: false,
3829
+ configurable: true
3830
+ });
3831
+ Object.defineProperty(FilterItemComponent.prototype, "baseSelectItem", {
3832
+ get: function () {
3833
+ return this.item;
3834
+ },
3835
+ enumerable: false,
3836
+ configurable: true
3837
+ });
3838
+ Object.defineProperty(FilterItemComponent.prototype, "rangeItem", {
3839
+ get: function () {
3840
+ return this.item;
3841
+ },
3842
+ enumerable: false,
3843
+ configurable: true
3844
+ });
3845
+ Object.defineProperty(FilterItemComponent.prototype, "autocompleteItem", {
3846
+ get: function () {
3847
+ return this.item;
3848
+ },
3849
+ enumerable: false,
3850
+ configurable: true
3851
+ });
3852
+ Object.defineProperty(FilterItemComponent.prototype, "autocompleteChipsItem", {
3853
+ get: function () {
3854
+ return this.item;
3855
+ },
3856
+ enumerable: false,
3857
+ configurable: true
3858
+ });
3859
+ Object.defineProperty(FilterItemComponent.prototype, "dateItem", {
3860
+ get: function () {
3861
+ return this.item;
3862
+ },
3863
+ enumerable: false,
3864
+ configurable: true
3865
+ });
3866
+ Object.defineProperty(FilterItemComponent.prototype, "dateRangeItem", {
3867
+ get: function () {
3868
+ return this.item;
3869
+ },
3870
+ enumerable: false,
3871
+ configurable: true
3872
+ });
3873
+ Object.defineProperty(FilterItemComponent.prototype, "dateTimeItem", {
3874
+ get: function () {
3875
+ return this.item;
3876
+ },
3877
+ enumerable: false,
3878
+ configurable: true
3879
+ });
3880
+ Object.defineProperty(FilterItemComponent.prototype, "dateTimeRangeItem", {
3881
+ get: function () {
3882
+ return this.item;
3883
+ },
3884
+ enumerable: false,
3885
+ configurable: true
3886
+ });
3887
+ Object.defineProperty(FilterItemComponent.prototype, "weekItem", {
3888
+ get: function () {
3889
+ return this.item;
3890
+ },
3891
+ enumerable: false,
3892
+ configurable: true
3893
+ });
3894
+ Object.defineProperty(FilterItemComponent.prototype, "checkboxItem", {
3895
+ get: function () {
3896
+ return this.item;
3897
+ },
3898
+ enumerable: false,
3899
+ configurable: true
3900
+ });
3770
3901
  FilterItemComponent.prototype.ngOnInit = function () {
3771
3902
  var _this = this;
3772
3903
  this.item.value$
@@ -3782,7 +3913,7 @@
3782
3913
  return FilterItemComponent;
3783
3914
  }());
3784
3915
  FilterItemComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FilterItemComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
3785
- FilterItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FilterItemComponent, selector: "filter-item", inputs: { item: "item" }, ngImport: i0__namespace, template: "<div class=\"filter filter-{{ item.type }}\">\n\n <ng-container [ngSwitch]=\"item.type\">\n <filter-item-text class=\"interface\"\n *ngSwitchCase=\"itemType.Text\"\n [item]=\"item\">\n </filter-item-text>\n\n <filter-item-select class=\"interface\"\n *ngSwitchCase=\"itemType.Select\"\n [item]=\"item\">\n </filter-item-select>\n\n <filter-item-chips class=\"interface\"\n *ngSwitchCase=\"itemType.Chips\"\n [item]=\"item\">\n </filter-item-chips>\n\n <filter-item-range class=\"interface interface-range\"\n *ngSwitchCase=\"itemType.Range\"\n [item]=\"item\">\n </filter-item-range>\n\n <filter-item-autocomplete class=\"interface\"\n *ngSwitchCase=\"itemType.AutoComplete\"\n [item]=\"item\">\n </filter-item-autocomplete>\n\n <filter-item-autocompletechips class=\"interface\"\n *ngSwitchCase=\"itemType.AutoCompleteChips\"\n [item]=\"item\">\n </filter-item-autocompletechips>\n\n <filter-item-date class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.Date\"\n [item]=\"item\">\n </filter-item-date>\n\n <filter-item-date class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateTime\"\n [item]=\"item\">\n </filter-item-date>\n\n <filter-item-date-range class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateRange\"\n [item]=\"item\">\n </filter-item-date-range>\n\n <filter-item-date-range class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateTimeRange\"\n [item]=\"item\">\n </filter-item-date-range>\n\n <filter-item-week class=\"interface\"\n *ngSwitchCase=\"itemType.Week\"\n [item]=\"item\">\n </filter-item-week>\n\n <filter-item-checkbox class=\"interface interface-checkbox\"\n *ngSwitchCase=\"itemType.Checkbox\"\n [item]=\"item\">\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__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3916
+ FilterItemComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FilterItemComponent, selector: "filter-item", inputs: { item: "item" }, ngImport: i0__namespace, template: "<div class=\"filter filter-{{ item.type }}\">\n\n <ng-container [ngSwitch]=\"item.type\">\n <filter-item-text class=\"interface\"\n *ngSwitchCase=\"itemType.Text\"\n [item]=\"textItem\">\n </filter-item-text>\n\n <filter-item-select class=\"interface\"\n *ngSwitchCase=\"itemType.Select\"\n [item]=\"baseSelectItem\">\n </filter-item-select>\n\n <filter-item-chips class=\"interface\"\n *ngSwitchCase=\"itemType.Chips\"\n [item]=\"chipsItem\">\n </filter-item-chips>\n\n <filter-item-range class=\"interface interface-range\"\n *ngSwitchCase=\"itemType.Range\"\n [item]=\"rangeItem\">\n </filter-item-range>\n\n <filter-item-autocomplete class=\"interface\"\n *ngSwitchCase=\"itemType.AutoComplete\"\n [item]=\"autocompleteItem\">\n </filter-item-autocomplete>\n\n <filter-item-autocompletechips class=\"interface\"\n *ngSwitchCase=\"itemType.AutoCompleteChips\"\n [item]=\"autocompleteChipsItem\">\n </filter-item-autocompletechips>\n\n <filter-item-date class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.Date\"\n [item]=\"dateItem\">\n </filter-item-date>\n\n <filter-item-date class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateTime\"\n [item]=\"dateTimeItem\">\n </filter-item-date>\n\n <filter-item-date-range class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateRange\"\n [item]=\"dateRangeItem\">\n </filter-item-date-range>\n\n <filter-item-date-range class=\"interface interface-date\"\n *ngSwitchCase=\"itemType.DateTimeRange\"\n [item]=\"dateTimeRangeItem\">\n </filter-item-date-range>\n\n <filter-item-week class=\"interface\"\n *ngSwitchCase=\"itemType.Week\"\n [item]=\"weekItem\">\n </filter-item-week>\n\n <filter-item-checkbox 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__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
3786
3917
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FilterItemComponent, decorators: [{
3787
3918
  type: i0.Component,
3788
3919
  args: [{
@@ -4933,6 +5064,31 @@
4933
5064
  }
4934
5065
  }
4935
5066
  };
5067
+ Object.defineProperty(FilterComponent.prototype, "itemValues", {
5068
+ get: function () {
5069
+ return this.items
5070
+ .map(function (item) { return item.model; });
5071
+ },
5072
+ enumerable: false,
5073
+ configurable: true
5074
+ });
5075
+ Object.defineProperty(FilterComponent.prototype, "nonEmptyItemValues", {
5076
+ get: function () {
5077
+ return this.items
5078
+ .filter(function (item) { return item.model !== undefined; })
5079
+ .map(function (item) { return item.model; });
5080
+ },
5081
+ enumerable: false,
5082
+ configurable: true
5083
+ });
5084
+ Object.defineProperty(FilterComponent.prototype, "hasItemValues", {
5085
+ get: function () {
5086
+ return this.itemValues
5087
+ .some(function (item) { return item.model !== undefined; });
5088
+ },
5089
+ enumerable: false,
5090
+ configurable: true
5091
+ });
4936
5092
  FilterComponent.prototype.getItemValue = function (name) {
4937
5093
  var item = this.items
4938
5094
  .find(function (item) { return item.name === name; });