@firestitch/filter 18.2.35 → 18.2.37

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 (28) hide show
  1. package/app/components/filter/filter.component.d.ts +4 -2
  2. package/app/directives/{focus-to-item/focus-to-item.directive.d.ts → focus-to-item.directive.d.ts} +1 -1
  3. package/app/directives/heading.directive.d.ts +8 -0
  4. package/app/directives/index.d.ts +3 -0
  5. package/app/fs-filter.module.d.ts +4 -3
  6. package/app/helpers/create-filter-item.d.ts +1 -1
  7. package/esm2022/app/components/filter/filter.component.mjs +9 -4
  8. package/esm2022/app/components/filter-chips/filter-chips.component.mjs +3 -3
  9. package/esm2022/app/components/filters-item/autocomplete/autocomplete.component.mjs +2 -2
  10. package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +2 -2
  11. package/esm2022/app/components/filters-item/date/date.component.mjs +2 -2
  12. package/esm2022/app/components/filters-item/date-range/date-range.component.mjs +2 -2
  13. package/esm2022/app/components/filters-item/range/range.component.mjs +2 -2
  14. package/esm2022/app/components/filters-item/select/select.component.mjs +2 -2
  15. package/esm2022/app/components/filters-item/text/text.component.mjs +2 -2
  16. package/esm2022/app/components/filters-item/week/week.component.mjs +2 -2
  17. package/esm2022/app/directives/focus-to-item.directive.mjs +142 -0
  18. package/esm2022/app/directives/heading.directive.mjs +18 -0
  19. package/esm2022/app/directives/index.mjs +4 -0
  20. package/esm2022/app/directives/{status-bar/status-bar.directive.mjs → status-bar.directive.mjs} +1 -1
  21. package/esm2022/app/fs-filter.module.mjs +7 -4
  22. package/esm2022/public_api.mjs +3 -2
  23. package/fesm2022/firestitch-filter.mjs +46 -22
  24. package/fesm2022/firestitch-filter.mjs.map +1 -1
  25. package/package.json +1 -1
  26. package/public_api.d.ts +2 -1
  27. package/esm2022/app/directives/focus-to-item/focus-to-item.directive.mjs +0 -142
  28. /package/app/directives/{status-bar/status-bar.directive.d.ts → status-bar.directive.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestitch/filter",
3
- "version": "18.2.35",
3
+ "version": "18.2.37",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Firestitch/ngx-filter"
package/public_api.d.ts CHANGED
@@ -2,7 +2,8 @@ export { SavedFilterController } from './app/services/saved-filter-controller.se
2
2
  export { FsFilterModule } from './app/fs-filter.module';
3
3
  export { FilterComponent } from './app/components/filter/filter.component';
4
4
  export { FilterItemComponent } from './app/components/filters-item/filter-item.component';
5
- export { FilterStatusBarDirective } from './app/directives/status-bar/status-bar.directive';
5
+ export { FilterHeadingDirective } from './app/directives/heading.directive';
6
+ export { FilterStatusBarDirective } from './app/directives/status-bar.directive';
6
7
  export { FsFilterAction, FsFilterActionClickFn, FsFilterActionDisabledFn, FsFilterActionShowFn, FsFilterAutoReload, FsFilterFileActionErrorFn, FsFilterFileActionSelectFn, IFsFilterButtonAction, IFsFilterFileAction, IFsFilterMenuAction, IFsFilterMenuActionFileItem, IFsFilterMenuActionGroupItem, IFsFilterMenuActionItem, IFsFilterMenuActionLink, } from './app/interfaces';
7
8
  export { IFilterConfigAutocompleteChipsItem } from './app/interfaces/items/autocomplete-chips.interface';
8
9
  export { IFilterConfigAutocompleteItem } from './app/interfaces/items/autocomplete.interface';
@@ -1,142 +0,0 @@
1
- import { Directive, ElementRef, Input, Optional, Self, } from '@angular/core';
2
- import { MatSelect } from '@angular/material/select';
3
- import { FsAutocompleteComponent } from '@firestitch/autocomplete';
4
- import { FsAutocompleteChipsComponent } from '@firestitch/autocomplete-chips';
5
- import { DateRangePickerFromComponent, DateRangePickerToComponent, FsDatePickerComponent, FsDateScrollPickerComponent, } from '@firestitch/datepicker';
6
- import { Subject } from 'rxjs';
7
- import { delay, takeUntil } from 'rxjs/operators';
8
- import { ItemDateMode } from '../../enums/item-date-mode.enum';
9
- import { ItemType } from '../../enums/item-type.enum';
10
- import { FocusControllerService } from '../../services/focus-controller.service';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../../services/focus-controller.service";
13
- import * as i2 from "@angular/material/select";
14
- import * as i3 from "@firestitch/datepicker";
15
- import * as i4 from "@firestitch/autocomplete";
16
- import * as i5 from "@firestitch/autocomplete-chips";
17
- export class FocusToItemDirective {
18
- _el;
19
- _focusController;
20
- _targetSelect;
21
- _targetDate;
22
- _targetDateScroll;
23
- _targetDateRangeFrom;
24
- _targetDateRangeTo;
25
- _targetAutocomplete;
26
- _targetAutocompleteChips;
27
- _item;
28
- _focusTargetType;
29
- _destroy$ = new Subject();
30
- constructor(_el, _focusController, _targetSelect, _targetDate, _targetDateScroll, _targetDateRangeFrom, _targetDateRangeTo, _targetAutocomplete, _targetAutocompleteChips) {
31
- this._el = _el;
32
- this._focusController = _focusController;
33
- this._targetSelect = _targetSelect;
34
- this._targetDate = _targetDate;
35
- this._targetDateScroll = _targetDateScroll;
36
- this._targetDateRangeFrom = _targetDateRangeFrom;
37
- this._targetDateRangeTo = _targetDateRangeTo;
38
- this._targetAutocomplete = _targetAutocomplete;
39
- this._targetAutocompleteChips = _targetAutocompleteChips;
40
- }
41
- ngOnInit() {
42
- this._focusController
43
- .listenFocusFor$(this._item, this._focusTargetType)
44
- .pipe(delay(500), takeUntil(this._destroy$))
45
- .subscribe(() => {
46
- this._focus();
47
- });
48
- }
49
- ngOnDestroy() {
50
- this._destroy$.next(null);
51
- this._destroy$.complete();
52
- }
53
- _focus() {
54
- switch (this._item.type) {
55
- case ItemType.Select:
56
- {
57
- this._targetSelect.open();
58
- }
59
- break;
60
- case ItemType.Text:
61
- case ItemType.Range:
62
- {
63
- this._el.nativeElement.focus();
64
- }
65
- break;
66
- case ItemType.Date:
67
- {
68
- if (this._item.mode === ItemDateMode.Calendar) {
69
- this._targetDate.open();
70
- }
71
- else {
72
- this._targetDateScroll.open();
73
- }
74
- }
75
- break;
76
- case ItemType.DateRange:
77
- {
78
- if (this._focusTargetType === 'from') {
79
- this._targetDateRangeFrom.open();
80
- }
81
- else {
82
- this._targetDateRangeTo.open();
83
- }
84
- }
85
- break;
86
- case ItemType.AutoComplete:
87
- {
88
- this._targetAutocomplete.focus();
89
- }
90
- break;
91
- case ItemType.AutoCompleteChips:
92
- {
93
- this._targetAutocompleteChips.focus();
94
- }
95
- break;
96
- }
97
- }
98
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FocusToItemDirective, deps: [{ token: i0.ElementRef }, { token: i1.FocusControllerService }, { token: i2.MatSelect, optional: true, self: true }, { token: i3.FsDatePickerComponent, optional: true, self: true }, { token: i3.FsDateScrollPickerComponent, optional: true, self: true }, { token: i3.DateRangePickerFromComponent, optional: true, self: true }, { token: i3.DateRangePickerToComponent, optional: true, self: true }, { token: i4.FsAutocompleteComponent, optional: true, self: true }, { token: i5.FsAutocompleteChipsComponent, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
99
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FocusToItemDirective, isStandalone: true, selector: "[fsFilterFocusTrigger]", inputs: { _item: ["fsFilterFocusTrigger", "_item"], _focusTargetType: ["focusTargetType", "_focusTargetType"] }, ngImport: i0 });
100
- }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FocusToItemDirective, decorators: [{
102
- type: Directive,
103
- args: [{
104
- selector: '[fsFilterFocusTrigger]',
105
- standalone: true,
106
- }]
107
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FocusControllerService }, { type: i2.MatSelect, decorators: [{
108
- type: Optional
109
- }, {
110
- type: Self
111
- }] }, { type: i3.FsDatePickerComponent, decorators: [{
112
- type: Optional
113
- }, {
114
- type: Self
115
- }] }, { type: i3.FsDateScrollPickerComponent, decorators: [{
116
- type: Optional
117
- }, {
118
- type: Self
119
- }] }, { type: i3.DateRangePickerFromComponent, decorators: [{
120
- type: Optional
121
- }, {
122
- type: Self
123
- }] }, { type: i3.DateRangePickerToComponent, decorators: [{
124
- type: Optional
125
- }, {
126
- type: Self
127
- }] }, { type: i4.FsAutocompleteComponent, decorators: [{
128
- type: Optional
129
- }, {
130
- type: Self
131
- }] }, { type: i5.FsAutocompleteChipsComponent, decorators: [{
132
- type: Optional
133
- }, {
134
- type: Self
135
- }] }], propDecorators: { _item: [{
136
- type: Input,
137
- args: ['fsFilterFocusTrigger']
138
- }], _focusTargetType: [{
139
- type: Input,
140
- args: ['focusTargetType']
141
- }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdG8taXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpcmVjdGl2ZXMvZm9jdXMtdG8taXRlbS9mb2N1cy10by1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUcsUUFBUSxFQUFFLElBQUksR0FDdkIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFDTCw0QkFBNEIsRUFBRSwwQkFBMEIsRUFDeEQscUJBQXFCLEVBQ3JCLDJCQUEyQixHQUM1QixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7O0FBT2pGLE1BQU0sT0FBTyxvQkFBb0I7SUFXckI7SUFDQTtJQUNvQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQWhCdEIsS0FBSyxDQUFDO0lBR04sZ0JBQWdCLENBQUM7SUFFakIsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFeEMsWUFDVSxHQUFlLEVBQ2YsZ0JBQXdDLEVBQ3BCLGFBQXdCLEVBQ3hCLFdBQWtDLEVB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bEMsVUFBVSxFQUFFLElBQUk7aUJBQ25COzswQkFjSSxRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7OzBCQUFJLElBQUk7OzBCQUNoQixRQUFROzswQkFBSSxJQUFJO3lDQWhCWCxLQUFLO3NCQURaLEtBQUs7dUJBQUMsc0JBQXNCO2dCQUlyQixnQkFBZ0I7c0JBRHZCLEtBQUs7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsIE9wdGlvbmFsLCBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcblxuaW1wb3J0IHsgRnNBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICdAZmlyZXN0aXRjaC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgRnNBdXRvY29tcGxldGVDaGlwc0NvbXBvbmVudCB9IGZyb20gJ0BmaXJlc3RpdGNoL2F1dG9jb21wbGV0ZS1jaGlwcyc7XG5pbXBvcnQge1xuICBEYXRlUmFuZ2VQaWNrZXJGcm9tQ29tcG9uZW50LCBEYXRlUmFuZ2VQaWNrZXJUb0NvbXBvbmVudCxcbiAgRnNEYXRlUGlja2VyQ29tcG9uZW50LFxuICBGc0RhdGVTY3JvbGxQaWNrZXJDb21wb25lbnQsXG59IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJdGVtRGF0ZU1vZGUgfSBmcm9tICcuLi8uLi9lbnVtcy9pdGVtLWRhdGUtbW9kZS5lbnVtJztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvaXRlbS10eXBlLmVudW0nO1xuaW1wb3J0IHsgRm9jdXNDb250cm9sbGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZvY3VzLWNvbnRyb2xsZXIuc2VydmljZSc7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZnNGaWx0ZXJGb2N1c1RyaWdnZXJdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c1RvSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoJ2ZzRmlsdGVyRm9jdXNUcmlnZ2VyJylcbiAgcHJpdmF0ZSBfaXRlbTtcblxuICBASW5wdXQoJ2ZvY3VzVGFyZ2V0VHlwZScpXG4gIHByaXZhdGUgX2ZvY3VzVGFyZ2V0VHlwZTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfZm9jdXNDb250cm9sbGVyOiBGb2N1c0NvbnRyb2xsZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSBfdGFyZ2V0U2VsZWN0OiBNYXRTZWxlY3QsXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIF90YXJnZXREYXRlOiBGc0RhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIF90YXJnZXREYXRlU2Nyb2xsOiBGc0RhdGVTY3JvbGxQaWNrZXJDb21wb25lbnQsXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIF90YXJnZXREYXRlUmFuZ2VGcm9tOiBEYXRlUmFuZ2VQaWNrZXJGcm9tQ29tcG9uZW50LFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSBfdGFyZ2V0RGF0ZVJhbmdlVG86IERhdGVSYW5nZVBpY2tlclRvQ29tcG9uZW50LFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHJpdmF0ZSBfdGFyZ2V0QXV0b2NvbXBsZXRlOiBGc0F1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgX3RhcmdldEF1dG9jb21wbGV0ZUNoaXBzOiBGc0F1dG9jb21wbGV0ZUNoaXBzQ29tcG9uZW50LFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzQ29udHJvbGxlclxuICAgICAgLmxpc3RlbkZvY3VzRm9yJCh0aGlzLl9pdGVtLCB0aGlzLl9mb2N1c1RhcmdldFR5cGUpXG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoNTAwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9mb2N1cygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dChudWxsKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZm9jdXMoKSB7XG4gICAgc3dpdGNoICh0aGlzLl9pdGVtLnR5cGUpIHtcbiAgICAgIGNhc2UgSXRlbVR5cGUuU2VsZWN0OiB7XG4gICAgICAgIHRoaXMuX3RhcmdldFNlbGVjdC5vcGVuKCk7XG4gICAgICB9IGJyZWFrO1xuXG4gICAgICBjYXNlIEl0ZW1UeXBlLlRleHQ6IGNhc2UgSXRlbVR5cGUuUmFuZ2U6IHtcbiAgICAgICAgdGhpcy5fZWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfSBicmVhaztcblxuICAgICAgY2FzZSBJdGVtVHlwZS5EYXRlOiB7XG4gICAgICAgIGlmICh0aGlzLl9pdGVtLm1vZGUgPT09IEl0ZW1EYXRlTW9kZS5DYWxlbmRhcikge1xuICAgICAgICAgIHRoaXMuX3RhcmdldERhdGUub3BlbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3RhcmdldERhdGVTY3JvbGwub3BlbigpO1xuICAgICAgICB9XG4gICAgICB9IGJyZWFrO1xuICAgICAgY2FzZSBJdGVtVHlwZS5EYXRlUmFuZ2U6IHtcbiAgICAgICAgaWYgKHRoaXMuX2ZvY3VzVGFyZ2V0VHlwZSA9PT0gJ2Zyb20nKSB7XG4gICAgICAgICAgdGhpcy5fdGFyZ2V0RGF0ZVJhbmdlRnJvbS5vcGVuKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fdGFyZ2V0RGF0ZVJhbmdlVG8ub3BlbigpO1xuICAgICAgICB9XG4gICAgICB9IGJyZWFrO1xuXG4gICAgICBjYXNlIEl0ZW1UeXBlLkF1dG9Db21wbGV0ZToge1xuICAgICAgICB0aGlzLl90YXJnZXRBdXRvY29tcGxldGUuZm9jdXMoKTtcbiAgICAgIH0gYnJlYWs7XG5cbiAgICAgIGNhc2UgSXRlbVR5cGUuQXV0b0NvbXBsZXRlQ2hpcHM6IHtcbiAgICAgICAgdGhpcy5fdGFyZ2V0QXV0b2NvbXBsZXRlQ2hpcHMuZm9jdXMoKTtcbiAgICAgIH0gYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=