@firestitch/filter 18.2.11 → 18.2.13

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 (147) hide show
  1. package/app/components/filter/filter.component.d.ts +40 -64
  2. package/app/components/filter-chip/filter-chip.component.d.ts +16 -3
  3. package/app/components/filter-chips/filter-chips.component.d.ts +14 -2
  4. package/app/components/filter-drawer/filter-drawer.component.d.ts +2 -5
  5. package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +8 -8
  6. package/app/components/filters-item/base-item/base-item.component.d.ts +3 -9
  7. package/app/components/filters-item/checkbox/checkbox.component.d.ts +6 -5
  8. package/app/components/filters-item/chips/chips.component.d.ts +6 -5
  9. package/app/components/filters-item/date/date.component.d.ts +4 -4
  10. package/app/components/filters-item/date-range/date-range.component.d.ts +7 -6
  11. package/app/components/filters-item/filter-item.component.d.ts +2 -2
  12. package/app/components/filters-item/range/range.component.d.ts +6 -7
  13. package/app/components/filters-item/select/select.component.d.ts +17 -20
  14. package/app/components/filters-item/text/text.component.d.ts +6 -7
  15. package/app/components/filters-item/week/week.component.d.ts +5 -5
  16. package/app/components/keyword-input/keyword-input.component.d.ts +29 -0
  17. package/app/components/saved-filter/saved-filter-autocomplete-chips/saved-filter-autocomplete-chips.component.d.ts +2 -3
  18. package/app/components/saved-filter/saved-filter-manage/components/saved-filter-chips/saved-filter-chips.component.d.ts +1 -1
  19. package/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.d.ts +1 -2
  20. package/app/fs-filter.module.d.ts +20 -24
  21. package/app/helpers/create-filter-item.d.ts +2 -1
  22. package/app/interfaces/items/date.interface.d.ts +1 -1
  23. package/app/models/filter-config.d.ts +2 -2
  24. package/app/models/items/autocomplete-chips-item.d.ts +11 -8
  25. package/app/models/items/autocomplete-item.d.ts +7 -5
  26. package/app/models/items/{autocomplete/base-autocomplete-item.d.ts → base-autocomplete-item.d.ts} +4 -5
  27. package/app/models/items/base-date-item.d.ts +13 -0
  28. package/app/models/items/base-date-range-item.d.ts +17 -0
  29. package/app/models/items/base-item.d.ts +26 -40
  30. package/app/models/items/checkbox-item.d.ts +10 -9
  31. package/app/models/items/chips-item.d.ts +12 -9
  32. package/app/models/items/date-item.d.ts +7 -3
  33. package/app/models/items/date-range-item.d.ts +1 -1
  34. package/app/models/items/date-time-item.d.ts +6 -3
  35. package/app/models/items/date-time-range-item.d.ts +1 -1
  36. package/app/models/items/index.d.ts +0 -4
  37. package/app/models/items/range-item.d.ts +19 -8
  38. package/app/models/items/select-item.d.ts +29 -6
  39. package/app/models/items/text-item.d.ts +7 -6
  40. package/app/models/items/week-item.d.ts +7 -7
  41. package/app/services/filter-controller.service.d.ts +47 -0
  42. package/app/services/focus-controller.service.d.ts +4 -4
  43. package/app/services/index.d.ts +4 -2
  44. package/app/services/keyword-controller.service.d.ts +20 -0
  45. package/app/services/persistance-controller.service.d.ts +10 -4
  46. package/app/services/query-param-controller.service.d.ts +10 -12
  47. package/app/services/root-filter-overlay.service.d.ts +6 -0
  48. package/app/services/saved-filter-controller.service.d.ts +4 -4
  49. package/app/services/sort-controller.service.d.ts +21 -0
  50. package/esm2022/app/components/filter/filter.component.mjs +150 -294
  51. package/esm2022/app/components/filter-chip/filter-chip.component.mjs +24 -32
  52. package/esm2022/app/components/filter-chip-content/filter-chip-content.component.mjs +2 -2
  53. package/esm2022/app/components/filter-chips/filter-chips.component.mjs +22 -8
  54. package/esm2022/app/components/filter-drawer/filter-drawer.component.mjs +7 -14
  55. package/esm2022/app/components/filters-item/autocomplete/autocomplete.component.mjs +6 -6
  56. package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +26 -22
  57. package/esm2022/app/components/filters-item/base-item/base-item.component.mjs +2 -30
  58. package/esm2022/app/components/filters-item/checkbox/checkbox.component.mjs +22 -15
  59. package/esm2022/app/components/filters-item/chips/chips.component.mjs +22 -15
  60. package/esm2022/app/components/filters-item/date/date.component.mjs +24 -20
  61. package/esm2022/app/components/filters-item/date-range/date-range.component.mjs +29 -24
  62. package/esm2022/app/components/filters-item/filter-item.component.mjs +5 -5
  63. package/esm2022/app/components/filters-item/range/range.component.mjs +31 -35
  64. package/esm2022/app/components/filters-item/select/select.component.mjs +57 -45
  65. package/esm2022/app/components/filters-item/text/text.component.mjs +24 -24
  66. package/esm2022/app/components/filters-item/week/week.component.mjs +22 -16
  67. package/esm2022/app/components/keyword-input/keyword-input.component.mjs +104 -0
  68. package/esm2022/app/components/saved-filter/saved-filter-autocomplete-chips/saved-filter-autocomplete-chips.component.mjs +4 -6
  69. package/esm2022/app/components/saved-filter/saved-filter-manage/components/saved-filter-chips/saved-filter-chips.component.mjs +6 -6
  70. package/esm2022/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.mjs +5 -6
  71. package/esm2022/app/fs-filter.module.mjs +1 -16
  72. package/esm2022/app/helpers/parse-item-value-from-stored.mjs +17 -16
  73. package/esm2022/app/interfaces/items/date.interface.mjs +1 -1
  74. package/esm2022/app/models/action.model.mjs +2 -2
  75. package/esm2022/app/models/filter-config.mjs +2 -3
  76. package/esm2022/app/models/items/autocomplete-chips-item.mjs +32 -27
  77. package/esm2022/app/models/items/autocomplete-item.mjs +13 -15
  78. package/esm2022/app/models/items/base-autocomplete-item.mjs +16 -0
  79. package/esm2022/app/models/items/base-date-item.mjs +28 -0
  80. package/esm2022/app/models/items/base-date-range-item.mjs +101 -0
  81. package/esm2022/app/models/items/base-item.mjs +58 -138
  82. package/esm2022/app/models/items/checkbox-item.mjs +35 -26
  83. package/esm2022/app/models/items/chips-item.mjs +50 -59
  84. package/esm2022/app/models/items/date-item.mjs +21 -8
  85. package/esm2022/app/models/items/date-range-item.mjs +2 -2
  86. package/esm2022/app/models/items/date-time-item.mjs +4 -7
  87. package/esm2022/app/models/items/date-time-range-item.mjs +2 -2
  88. package/esm2022/app/models/items/index.mjs +1 -5
  89. package/esm2022/app/models/items/range-item.mjs +48 -44
  90. package/esm2022/app/models/items/select-item.mjs +104 -9
  91. package/esm2022/app/models/items/text-item.mjs +17 -15
  92. package/esm2022/app/models/items/week-item.mjs +22 -38
  93. package/esm2022/app/pipes/remove-isolate-value.pipe.mjs +1 -1
  94. package/esm2022/app/services/filter-controller.service.mjs +209 -0
  95. package/esm2022/app/services/filter-overlay.service.mjs +3 -3
  96. package/esm2022/app/services/focus-controller.service.mjs +3 -3
  97. package/esm2022/app/services/index.mjs +5 -3
  98. package/esm2022/app/services/keyword-controller.service.mjs +49 -0
  99. package/esm2022/app/services/persistance-controller.service.mjs +24 -6
  100. package/esm2022/app/services/query-param-controller.service.mjs +44 -34
  101. package/esm2022/app/services/root-filter-overlay.service.mjs +14 -0
  102. package/esm2022/app/services/saved-filter-controller.service.mjs +20 -18
  103. package/esm2022/app/services/sort-controller.service.mjs +60 -0
  104. package/esm2022/public_api.mjs +1 -2
  105. package/fesm2022/firestitch-filter.mjs +2593 -3243
  106. package/fesm2022/firestitch-filter.mjs.map +1 -1
  107. package/package.json +1 -1
  108. package/public_api.d.ts +0 -1
  109. package/app/components/filters-item/select/backdrop/backdrop.component.d.ts +0 -6
  110. package/app/components/filters-item/select/groups/groups.component.d.ts +0 -13
  111. package/app/components/filters-item/select/multiple/multiple.component.d.ts +0 -16
  112. package/app/components/filters-item/select/simple/simple.component.d.ts +0 -15
  113. package/app/helpers/build-query-params.d.ts +0 -4
  114. package/app/helpers/compare.d.ts +0 -2
  115. package/app/helpers/find-value.d.ts +0 -1
  116. package/app/models/items/autocomplete/index.d.ts +0 -1
  117. package/app/models/items/date/base-date-item.d.ts +0 -17
  118. package/app/models/items/date/index.d.ts +0 -1
  119. package/app/models/items/date-range/base-date-range-item.d.ts +0 -17
  120. package/app/models/items/date-range/index.d.ts +0 -1
  121. package/app/models/items/select/base-select-item.d.ts +0 -16
  122. package/app/models/items/select/index.d.ts +0 -3
  123. package/app/models/items/select/multiple-select-item.d.ts +0 -14
  124. package/app/models/items/select/simple-select-item.d.ts +0 -14
  125. package/app/providers/filter-meta.d.ts +0 -5
  126. package/app/services/item-store.service.d.ts +0 -63
  127. package/app/services/param-controller.service.d.ts +0 -30
  128. package/esm2022/app/components/filters-item/select/backdrop/backdrop.component.mjs +0 -12
  129. package/esm2022/app/components/filters-item/select/groups/groups.component.mjs +0 -47
  130. package/esm2022/app/components/filters-item/select/multiple/multiple.component.mjs +0 -76
  131. package/esm2022/app/components/filters-item/select/simple/simple.component.mjs +0 -56
  132. package/esm2022/app/helpers/build-query-params.mjs +0 -38
  133. package/esm2022/app/helpers/compare.mjs +0 -38
  134. package/esm2022/app/helpers/find-value.mjs +0 -13
  135. package/esm2022/app/models/items/autocomplete/base-autocomplete-item.mjs +0 -19
  136. package/esm2022/app/models/items/autocomplete/index.mjs +0 -2
  137. package/esm2022/app/models/items/date/base-date-item.mjs +0 -55
  138. package/esm2022/app/models/items/date/index.mjs +0 -2
  139. package/esm2022/app/models/items/date-range/base-date-range-item.mjs +0 -124
  140. package/esm2022/app/models/items/date-range/index.mjs +0 -2
  141. package/esm2022/app/models/items/select/base-select-item.mjs +0 -38
  142. package/esm2022/app/models/items/select/index.mjs +0 -4
  143. package/esm2022/app/models/items/select/multiple-select-item.mjs +0 -92
  144. package/esm2022/app/models/items/select/simple-select-item.mjs +0 -66
  145. package/esm2022/app/providers/filter-meta.mjs +0 -10
  146. package/esm2022/app/services/item-store.service.mjs +0 -333
  147. package/esm2022/app/services/param-controller.service.mjs +0 -151
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestitch/filter",
3
- "version": "18.2.11",
3
+ "version": "18.2.13",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/Firestitch/ngx-filter"
package/public_api.d.ts CHANGED
@@ -34,6 +34,5 @@ export { RangeItem } from './app/models/items/range-item';
34
34
  export { SelectItem } from './app/models/items/select-item';
35
35
  export { TextItem } from './app/models/items/text-item';
36
36
  export { FS_FILTER_CONFIG } from './app/injectors/filter-config';
37
- export { buildQueryParams } from './app/helpers/build-query-params';
38
37
  export { filterFromQueryParam, filterToQueryParam } from './app/helpers/query-param-transformers';
39
38
  export { QUERY_PARAM_DELIMITER } from './app/consts/query-param-delimiter';
@@ -1,6 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class SelectBackdropComponent {
3
- constructor();
4
- static ɵfac: i0.ɵɵFactoryDeclaration<SelectBackdropComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectBackdropComponent, "filter-item-select-backdrop", never, {}, {}, never, never, true, never>;
6
- }
@@ -1,13 +0,0 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { MatSelect } from '@angular/material/select';
3
- import * as i0 from "@angular/core";
4
- export declare class SelectGroupsComponent {
5
- cd: ChangeDetectorRef;
6
- select: MatSelect;
7
- item: any;
8
- constructor(cd: ChangeDetectorRef);
9
- compare(o1: any, o2: any): boolean;
10
- markForCheck(): void;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<SelectGroupsComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectGroupsComponent, "filter-item-select-groups", never, { "item": { "alias": "item"; "required": false; }; }, {}, never, never, true, never>;
13
- }
@@ -1,16 +0,0 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { MatSelect } from '@angular/material/select';
3
- import { MultipleSelectItem } from '../../../../models/items/select/multiple-select-item';
4
- import * as i0 from "@angular/core";
5
- export declare class SelectMultipleComponent {
6
- private _cd;
7
- item: MultipleSelectItem;
8
- select: MatSelect;
9
- constructor(_cd: ChangeDetectorRef);
10
- changed(): void;
11
- close(): void;
12
- markForCheck(): void;
13
- isolateChange(filter: any): void;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<SelectMultipleComponent, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectMultipleComponent, "filter-item-select-multiple", never, { "item": { "alias": "item"; "required": false; }; }, {}, never, never, true, never>;
16
- }
@@ -1,15 +0,0 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { MatSelect } from '@angular/material/select';
3
- import { SimpleSelectItem } from '../../../../models/items/select/simple-select-item';
4
- import * as i0 from "@angular/core";
5
- export declare class SelectSimpleComponent {
6
- private _cd;
7
- item: SimpleSelectItem;
8
- select: MatSelect;
9
- constructor(_cd: ChangeDetectorRef);
10
- changed(): void;
11
- isolateChange(filter: any): void;
12
- markForCheck(): void;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<SelectSimpleComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectSimpleComponent, "filter-item-select-simple", never, { "item": { "alias": "item"; "required": false; }; }, {}, never, never, true, never>;
15
- }
@@ -1,4 +0,0 @@
1
- import { KeyValue } from '../interfaces';
2
- import { IFilterConfigItem } from '../interfaces/config.interface';
3
- import { BaseItem } from '../models/items/base-item';
4
- export declare function buildQueryParams(flattenedParams: KeyValue, items: BaseItem<IFilterConfigItem>[]): KeyValue;
@@ -1,2 +0,0 @@
1
- export declare function objectsAreEquals(obj1: any, obj2: any): boolean;
2
- export declare function arraysAreEquals(arr1: any, arr2: any): boolean;
@@ -1 +0,0 @@
1
- export declare function findValue(values: any, value: any, children: any): any;
@@ -1 +0,0 @@
1
- export * from './base-autocomplete-item';
@@ -1,17 +0,0 @@
1
- import { FilterComponent } from '../../../components/filter/filter.component';
2
- import { ItemDateMode } from '../../../enums/item-date-mode.enum';
3
- import { IFilterConfigDateItem } from '../../../interfaces/items/date.interface';
4
- import { BaseItem } from '../base-item';
5
- export declare abstract class BaseDateItem extends BaseItem<IFilterConfigDateItem> {
6
- protected _additionalConfig: unknown;
7
- protected _filter: FilterComponent;
8
- maxYear: number;
9
- mode: ItemDateMode;
10
- constructor(itemConfig: any, _additionalConfig: unknown, _filter: FilterComponent);
11
- get value(): Date;
12
- get queryObject(): Record<string, Date>;
13
- setModel(value: any): void;
14
- get persistanceObject(): Record<string, string>;
15
- protected _validateModel(): void;
16
- protected _init(): void;
17
- }
@@ -1 +0,0 @@
1
- export * from './base-date-item';
@@ -1,17 +0,0 @@
1
- import { IFilterConfigDateRangeItem, IFilterItemDefaultDateRange } from '../../../interfaces/items/date-range.interface';
2
- import { BaseItem } from '../base-item';
3
- export declare abstract class BaseDateRangeItem extends BaseItem<IFilterConfigDateRangeItem> {
4
- get isTypeDateRange(): boolean;
5
- get isTypeDateTimeRange(): boolean;
6
- get isChipVisible(): boolean;
7
- get value(): any;
8
- get queryObject(): Record<string, Date>;
9
- get persistanceObject(): Record<string, string>;
10
- getChipsContent(type?: any): string;
11
- setModel(value: any): void;
12
- clearDateRange(type?: 'from' | 'to', defaultValue?: IFilterItemDefaultDateRange): void;
13
- protected _validateModel(): void;
14
- get hasModelValue(): any;
15
- protected _init(): void;
16
- protected _clearValue(defaultValue?: unknown): void;
17
- }
@@ -1 +0,0 @@
1
- export * from './base-date-range-item';
@@ -1,16 +0,0 @@
1
- import type { FilterComponent } from '../../../components/filter/filter.component';
2
- import { IFilterConfigSelectIsolate, IFilterConfigSelectItem } from '../../../interfaces/items/select.interface';
3
- import { BaseItem } from '../base-item';
4
- export interface IFilterIsolate extends IFilterConfigSelectIsolate {
5
- enabled: boolean;
6
- }
7
- export declare abstract class BaseSelectItem extends BaseItem<IFilterConfigSelectItem> {
8
- protected _additionalConfig: unknown;
9
- protected _filter: FilterComponent;
10
- children: string;
11
- multiple: boolean;
12
- isolate: IFilterIsolate;
13
- constructor(itemConfig: IFilterConfigSelectItem, _additionalConfig: unknown, _filter: FilterComponent);
14
- protected _init(): void;
15
- protected _clearValue(defaultValue?: unknown): void;
16
- }
@@ -1,3 +0,0 @@
1
- export * from './base-select-item';
2
- export * from './multiple-select-item';
3
- export * from './simple-select-item';
@@ -1,14 +0,0 @@
1
- import type { FilterComponent } from '../../../components/filter/filter.component';
2
- import { IFilterConfigSelectItem } from '../../../interfaces/items/select.interface';
3
- import { BaseSelectItem } from './base-select-item';
4
- export declare class MultipleSelectItem extends BaseSelectItem {
5
- constructor(itemConfig: IFilterConfigSelectItem, _persistedValues: any, _filter: FilterComponent);
6
- get value(): any;
7
- get isChipVisible(): boolean;
8
- get _isolateOptionNotSelected(): boolean;
9
- setModel(value: any): void;
10
- getChipsContent(): string;
11
- protected _init(): void;
12
- protected _validateModel(): void;
13
- protected _clearValue(defaultValue?: unknown): void;
14
- }
@@ -1,14 +0,0 @@
1
- import type { FilterComponent } from '../../../components/filter/filter.component';
2
- import { IFilterConfigSelectItem } from '../../../interfaces/items/select.interface';
3
- import { BaseSelectItem } from './base-select-item';
4
- export declare class SimpleSelectItem extends BaseSelectItem {
5
- constructor(itemConfig: IFilterConfigSelectItem, _persistedValues: any, _filter: FilterComponent);
6
- get value(): any;
7
- getChipsContent(type?: any): string;
8
- get isChipVisible(): boolean;
9
- setModel(value: any): void;
10
- protected _init(): void;
11
- protected get _isolateOptionNotSelected(): boolean;
12
- protected _validateModel(): void;
13
- protected _clearValue(defaultValue?: unknown): void;
14
- }
@@ -1,5 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export interface FsFilterMeta {
3
- openedFilters: number;
4
- }
5
- export declare const FS_FILTER_META: InjectionToken<FsFilterMeta>;
@@ -1,63 +0,0 @@
1
- import { OnDestroy } from '@angular/core';
2
- import type { FilterComponent } from '../components/filter/filter.component';
3
- import { FilterSort, IFilterConfigItem, SortItem } from '../interfaces/config.interface';
4
- import { KeyValue } from '../interfaces/external-params.interface';
5
- import { ISortingChangeEvent } from '../interfaces/filter.interface';
6
- import { BaseItem } from '../models/items/base-item';
7
- import { TextItem } from '../models/items/text-item';
8
- import * as i0 from "@angular/core";
9
- interface IValueAsQuery {
10
- onlyPresented?: boolean;
11
- items?: BaseItem<IFilterConfigItem>[];
12
- persisted?: boolean;
13
- }
14
- export declare class ItemStore implements OnDestroy {
15
- sortByItem: BaseItem<IFilterConfigItem>;
16
- sortDirectionItem: BaseItem<IFilterConfigItem>;
17
- keywordItem: TextItem;
18
- filter: FilterComponent;
19
- private _ready$;
20
- private _visibleItems$;
21
- private _items;
22
- private _itemsValuesLoaded;
23
- private _hasKeyword;
24
- private _config;
25
- private _itemsChange$;
26
- private _destroy$;
27
- get items(): BaseItem<IFilterConfigItem>[];
28
- get itemNames(): string[];
29
- get hasKeyword(): boolean;
30
- get itemsChange$(): import("rxjs").Observable<unknown>;
31
- get ready$(): import("rxjs").Observable<boolean>;
32
- ngOnDestroy(): void;
33
- setConfig(config: any): void;
34
- getItemByName(name: string): BaseItem<IFilterConfigItem>;
35
- initItems(items: IFilterConfigItem[]): void;
36
- queryParams(): KeyValue;
37
- filtersClear(): void;
38
- loadAsyncValues(): void;
39
- loadAsyncDefaults(): void;
40
- getSort(): FilterSort;
41
- getSortByValue(): any;
42
- getSortDirectionValue(): any;
43
- updateSort(sort: ISortingChangeEvent): void;
44
- values(onlyPresented?: boolean): Record<string, unknown>;
45
- models(): KeyValue;
46
- valuesAsQuery({ onlyPresented, items, persisted, }?: IValueAsQuery): KeyValue;
47
- init(p: KeyValue): void;
48
- updateItemsWithValues(values: KeyValue): void;
49
- updateSortingItemsValues(items: SortItem[]): void;
50
- destroyItems(): void;
51
- /**
52
- * Some items might need to load async values before they will be shown
53
- */
54
- prepareItems(): void;
55
- private _createItems;
56
- private _subscribeToItemsChanges;
57
- private _initSortingItems;
58
- private _createSortingItems;
59
- private _setKeywordItem;
60
- static ɵfac: i0.ɵɵFactoryDeclaration<ItemStore, never>;
61
- static ɵprov: i0.ɵɵInjectableDeclaration<ItemStore>;
62
- }
63
- export {};
@@ -1,30 +0,0 @@
1
- import { OnDestroy } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { KeyValue } from '../interfaces';
4
- import * as i0 from "@angular/core";
5
- export declare class ParamController implements OnDestroy {
6
- private _pending$;
7
- private _config;
8
- private _destroy$;
9
- private _itemStore;
10
- private _persistanceController;
11
- private _queryParams;
12
- private _savedFilterController;
13
- get params(): KeyValue;
14
- get pending(): boolean;
15
- get pending$(): Observable<boolean>;
16
- ngOnDestroy(): void;
17
- setConfig(config: any): void;
18
- reloadFiltersWithValues(params: KeyValue): void;
19
- initItems(): void;
20
- _initItemsValues(): void;
21
- fetchQueryParams(): void;
22
- private _initQueryParams;
23
- private _initSavedFilters;
24
- private _listenSavedFilterChange;
25
- private _listenItemsChange;
26
- private _saveQueryParams;
27
- private _savePersistedParams;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<ParamController, never>;
29
- static ɵprov: i0.ɵɵInjectableDeclaration<ParamController>;
30
- }
@@ -1,12 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SelectBackdropComponent {
4
- constructor() { }
5
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectBackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SelectBackdropComponent, isStandalone: true, selector: "filter-item-select-backdrop", ngImport: i0, template: "", styles: [":host{position:absolute;z-index:1002;inset:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
- }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectBackdropComponent, decorators: [{
9
- type: Component,
10
- args: [{ selector: 'filter-item-select-backdrop', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "", styles: [":host{position:absolute;z-index:1002;inset:0}\n"] }]
11
- }], ctorParameters: () => [] });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2Ryb3AuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9zZWxlY3QvYmFja2Ryb3AvYmFja2Ryb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9zZWxlY3QvYmFja2Ryb3AvYmFja2Ryb3AuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsR0FBRyxNQUFNLGVBQWUsQ0FBQzs7QUFTcEUsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxnQkFBZSxDQUFDO3dHQURMLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLHVGQ1RwQyxFQUFBOzs0RkRTYSx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0ksNkJBQTZCLG1CQUd0Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZpbHRlci1pdGVtLXNlbGVjdC1iYWNrZHJvcCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYmFja2Ryb3AuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYmFja2Ryb3AuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdEJhY2tkcm9wQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIiwiIl19
@@ -1,47 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild, } from '@angular/core';
2
- import { MatSelect } from '@angular/material/select';
3
- import { MatFormField, MatLabel } from '@angular/material/form-field';
4
- import { FocusToItemDirective } from '../../../../directives/focus-to-item/focus-to-item.directive';
5
- import { FormsModule } from '@angular/forms';
6
- import { FsFormModule } from '@firestitch/form';
7
- import { MatOptgroup, MatOption } from '@angular/material/core';
8
- import { NgStyle } from '@angular/common';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/forms";
11
- import * as i2 from "@firestitch/form";
12
- export class SelectGroupsComponent {
13
- cd;
14
- select;
15
- item;
16
- constructor(cd) {
17
- this.cd = cd;
18
- }
19
- compare(o1, o2) {
20
- return o1 == o2;
21
- }
22
- markForCheck() {
23
- this.cd.markForCheck();
24
- }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectGroupsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectGroupsComponent, isStandalone: true, 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 @for (selectItem of item.values; track selectItem) {\n @if (selectItem[item.children]) {\n <mat-optgroup [label]=\"selectItem.name\">\n @for (subItem of selectItem[item.children]; track subItem) {\n <mat-option\n [value]=\"subItem.value\"\n [ngStyle]=\"selectItem.style\">\n {{ subItem.name }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n <mat-option\n [value]=\"selectItem.value\"\n [ngStyle]=\"selectItem.style\">\n {{ selectItem.name }}\n </mat-option>\n }\n }\n </mat-select>\n</mat-form-field>\n", dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i2.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "component", type: MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectGroupsComponent, decorators: [{
29
- type: Component,
30
- args: [{ selector: 'filter-item-select-groups', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
31
- MatFormField,
32
- MatLabel,
33
- MatSelect,
34
- FocusToItemDirective,
35
- FormsModule,
36
- FsFormModule,
37
- MatOptgroup,
38
- MatOption,
39
- NgStyle,
40
- ], 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 @for (selectItem of item.values; track selectItem) {\n @if (selectItem[item.children]) {\n <mat-optgroup [label]=\"selectItem.name\">\n @for (subItem of selectItem[item.children]; track subItem) {\n <mat-option\n [value]=\"subItem.value\"\n [ngStyle]=\"selectItem.style\">\n {{ subItem.name }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n <mat-option\n [value]=\"selectItem.value\"\n [ngStyle]=\"selectItem.style\">\n {{ selectItem.name }}\n </mat-option>\n }\n }\n </mat-select>\n</mat-form-field>\n" }]
41
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { select: [{
42
- type: ViewChild,
43
- args: ['select', { static: true }]
44
- }], item: [{
45
- type: Input
46
- }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXJzLWl0ZW0vc2VsZWN0L2dyb3Vwcy9ncm91cHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9zZWxlY3QvZ3JvdXBzL2dyb3Vwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FBbUIxQyxNQUFNLE9BQU8scUJBQXFCO0lBS2I7SUFIMkIsTUFBTSxDQUFZO0lBQ2hELElBQUksQ0FBQztJQUVyQixZQUFtQixFQUFxQjtRQUFyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUFHLENBQUM7SUFFckMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ25CLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBYlUscUJBQXFCOzRGQUFyQixxQkFBcUIsK05DakNsQyxzMUJBNEJBLDRDRE5RLFlBQVksNExBQ1osUUFBUSxzREFDUixTQUFTLHdlQUNULG9CQUFvQix1SEFDcEIsV0FBVyw4VkFDWCxZQUFZLDBnQkFDWixXQUFXLG1IQUNYLFNBQVMscUpBQ1QsT0FBTzs7NEZBR0YscUJBQXFCO2tCQWpCakMsU0FBUzsrQkFDSSwyQkFBMkIsbUJBRXBCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osUUFBUTt3QkFDUixTQUFTO3dCQUNULG9CQUFvQjt3QkFDcEIsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsU0FBUzt3QkFDVCxPQUFPO3FCQUNWO3NGQUkyQyxNQUFNO3NCQUFuRCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ3JCLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdExhYmVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGb2N1c1RvSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtdG8taXRlbS9mb2N1cy10by1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZzRm9ybU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuaW1wb3J0IHsgTWF0T3B0Z3JvdXAsIE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmlsdGVyLWl0ZW0tc2VsZWN0LWdyb3VwcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyb3Vwcy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdEZvcm1GaWVsZCxcbiAgICAgICAgTWF0TGFiZWwsXG4gICAgICAgIE1hdFNlbGVjdCxcbiAgICAgICAgRm9jdXNUb0l0ZW1EaXJlY3RpdmUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBGc0Zvcm1Nb2R1bGUsXG4gICAgICAgIE1hdE9wdGdyb3VwLFxuICAgICAgICBNYXRPcHRpb24sXG4gICAgICAgIE5nU3R5bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0R3JvdXBzQ29tcG9uZW50IHtcblxuICBAVmlld0NoaWxkKCdzZWxlY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgc2VsZWN0OiBNYXRTZWxlY3Q7XG4gIEBJbnB1dCgpIHB1YmxpYyBpdGVtO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgcHVibGljIGNvbXBhcmUobzEsIG8yKSB7XG4gICAgcmV0dXJuIG8xID09IG8yO1xuICB9XG5cbiAgcHVibGljIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtbGFiZWw+e3tpdGVtLmxhYmVsfX08L21hdC1sYWJlbD5cbiAgPG1hdC1zZWxlY3RcbiAgICAjc2VsZWN0XG4gICAgW2ZzRmlsdGVyRm9jdXNUcmlnZ2VyXT1cIml0ZW1cIlxuICAgIFsobmdNb2RlbCldPVwiaXRlbS5tb2RlbFwiXG4gICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVcIj5cbiAgICBAZm9yIChzZWxlY3RJdGVtIG9mIGl0ZW0udmFsdWVzOyB0cmFjayBzZWxlY3RJdGVtKSB7XG4gICAgICBAaWYgKHNlbGVjdEl0ZW1baXRlbS5jaGlsZHJlbl0pIHtcbiAgICAgICAgPG1hdC1vcHRncm91cCBbbGFiZWxdPVwic2VsZWN0SXRlbS5uYW1lXCI+XG4gICAgICAgICAgQGZvciAoc3ViSXRlbSBvZiBzZWxlY3RJdGVtW2l0ZW0uY2hpbGRyZW5dOyB0cmFjayBzdWJJdGVtKSB7XG4gICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICBbdmFsdWVdPVwic3ViSXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInNlbGVjdEl0ZW0uc3R5bGVcIj5cbiAgICAgICAgICAgICAge3sgc3ViSXRlbS5uYW1lIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RJdGVtLnZhbHVlXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZWxlY3RJdGVtLnN0eWxlXCI+XG4gICAgICAgICAge3sgc2VsZWN0SXRlbS5uYW1lIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICB9XG4gIDwvbWF0LXNlbGVjdD5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
@@ -1,76 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild, } from '@angular/core';
2
- import { MatSelect } from '@angular/material/select';
3
- import { MultipleSelectItem } from '../../../../models/items/select/multiple-select-item';
4
- import { MatFormField, MatLabel, MatHint } from '@angular/material/form-field';
5
- import { NgClass } from '@angular/common';
6
- import { FocusToItemDirective } from '../../../../directives/focus-to-item/focus-to-item.directive';
7
- import { FormsModule } from '@angular/forms';
8
- import { FsFormModule } from '@firestitch/form';
9
- import { MatOption } from '@angular/material/core';
10
- import { MatCheckbox } from '@angular/material/checkbox';
11
- import { FsFilterIsolateValues } from '../../../../pipes/remove-isolate-value.pipe';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/forms";
14
- import * as i2 from "@firestitch/form";
15
- export class SelectMultipleComponent {
16
- _cd;
17
- item;
18
- select;
19
- constructor(_cd) {
20
- this._cd = _cd;
21
- }
22
- changed() {
23
- if (this.item.isolate) {
24
- this.item.isolate.enabled = false;
25
- if (this.item.multiple && Array.isArray(this.item.model)) {
26
- const index = this.item.model.indexOf(this.item.isolate.value);
27
- if (index > -1) {
28
- this.item.model.splice(index, 1);
29
- }
30
- }
31
- }
32
- }
33
- close() {
34
- this.select.close();
35
- }
36
- markForCheck() {
37
- this._cd.markForCheck();
38
- }
39
- isolateChange(filter) {
40
- if (filter.isolate.enabled) {
41
- filter.model = filter.multiple ? [filter.isolate.value] : filter.isolate.value;
42
- }
43
- else {
44
- if (filter.multiple) {
45
- filter.model = filter.defaultValue ? filter.defaultValue : [];
46
- }
47
- else {
48
- filter.model = filter.defaultValue ? filter.defaultValue : null;
49
- }
50
- }
51
- }
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectMultipleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
53
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectMultipleComponent, isStandalone: true, 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>\n {{ item.label }}\n </mat-label>\n <mat-select\n #select\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n (ngModelChange)=\"changed()\"\n [multiple]=\"item.multiple\">\n @for (item of item.values | fsFilterIsolateValues: item.isolate; track item) {\n <mat-option\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n <mat-hint>\n @if (item.isolate) {\n <mat-checkbox\n (change)=\"isolateChange(item)\"\n [(ngModel)]=\"item.isolate.enabled\">\n <span class=\"checkbox-label\">\n {{ item.isolate.label }}\n </span>\n </mat-checkbox>\n }\n </mat-hint>\n</mat-form-field>", styles: [""], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i2.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: FsFilterIsolateValues, name: "fsFilterIsolateValues" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectMultipleComponent, decorators: [{
56
- type: Component,
57
- args: [{ selector: 'filter-item-select-multiple', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
58
- MatFormField,
59
- NgClass,
60
- MatLabel,
61
- MatSelect,
62
- FocusToItemDirective,
63
- FormsModule,
64
- FsFormModule,
65
- MatOption,
66
- MatHint,
67
- MatCheckbox,
68
- FsFilterIsolateValues,
69
- ], template: "<mat-form-field [ngClass]=\"{ isolate: item.isolate }\">\n <mat-label>\n {{ item.label }}\n </mat-label>\n <mat-select\n #select\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n (ngModelChange)=\"changed()\"\n [multiple]=\"item.multiple\">\n @for (item of item.values | fsFilterIsolateValues: item.isolate; track item) {\n <mat-option\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n <mat-hint>\n @if (item.isolate) {\n <mat-checkbox\n (change)=\"isolateChange(item)\"\n [(ngModel)]=\"item.isolate.enabled\">\n <span class=\"checkbox-label\">\n {{ item.isolate.label }}\n </span>\n </mat-checkbox>\n }\n </mat-hint>\n</mat-form-field>" }]
70
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { item: [{
71
- type: Input
72
- }], select: [{
73
- type: ViewChild,
74
- args: ['select', { static: true }]
75
- }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlwbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9zZWxlY3QvbXVsdGlwbGUvbXVsdGlwbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9zZWxlY3QvbXVsdGlwbGUvbXVsdGlwbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7QUF1QnBGLE1BQU0sT0FBTyx1QkFBdUI7SUFTeEI7SUFOSCxJQUFJLENBQXFCO0lBR3pCLE1BQU0sQ0FBWTtJQUV6QixZQUNVLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7SUFFRyxPQUFPO1FBRVosSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRXRCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFFbEMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUUvRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxhQUFhLENBQUMsTUFBTTtRQUN6QixJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pGLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7d0dBOUNVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLGlPQ3pDcEMsd3hCQTRCaUIsMEREQVQsWUFBWSw0TEFDWixPQUFPLG9GQUNQLFFBQVEsc0RBQ1IsU0FBUyx3ZUFDVCxvQkFBb0IsdUhBQ3BCLFdBQVcsOFZBQ1gsWUFBWSwwZ0JBQ1osU0FBUyxxSkFDVCxPQUFPLDhFQUNQLFdBQVcsbVZBQ1gscUJBQXFCOzs0RkFHaEIsdUJBQXVCO2tCQXBCbkMsU0FBUzsrQkFDSSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxRQUFRO3dCQUNSLFNBQVM7d0JBQ1Qsb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxPQUFPO3dCQUNQLFdBQVc7d0JBQ1gscUJBQXFCO3FCQUN4QjtzRkFLSSxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5cbmltcG9ydCB7IE11bHRpcGxlU2VsZWN0SXRlbSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9pdGVtcy9zZWxlY3QvbXVsdGlwbGUtc2VsZWN0LWl0ZW0nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCwgTWF0SGludCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb2N1c1RvSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtdG8taXRlbS9mb2N1cy10by1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZzRm9ybU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuaW1wb3J0IHsgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IEZzRmlsdGVySXNvbGF0ZVZhbHVlcyB9IGZyb20gJy4uLy4uLy4uLy4uL3BpcGVzL3JlbW92ZS1pc29sYXRlLXZhbHVlLnBpcGUnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmlsdGVyLWl0ZW0tc2VsZWN0LW11bHRpcGxlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlwbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL211bHRpcGxlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE1hdEZvcm1GaWVsZCxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgTWF0TGFiZWwsXG4gICAgICAgIE1hdFNlbGVjdCxcbiAgICAgICAgRm9jdXNUb0l0ZW1EaXJlY3RpdmUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBGc0Zvcm1Nb2R1bGUsXG4gICAgICAgIE1hdE9wdGlvbixcbiAgICAgICAgTWF0SGludCxcbiAgICAgICAgTWF0Q2hlY2tib3gsXG4gICAgICAgIEZzRmlsdGVySXNvbGF0ZVZhbHVlcyxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RNdWx0aXBsZUNvbXBvbmVudCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW06IE11bHRpcGxlU2VsZWN0SXRlbTtcblxuICBAVmlld0NoaWxkKCdzZWxlY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgc2VsZWN0OiBNYXRTZWxlY3Q7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgcHVibGljIGNoYW5nZWQoKSB7XG5cbiAgICBpZiAodGhpcy5pdGVtLmlzb2xhdGUpIHtcblxuICAgICAgdGhpcy5pdGVtLmlzb2xhdGUuZW5hYmxlZCA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5pdGVtLm11bHRpcGxlICYmIEFycmF5LmlzQXJyYXkodGhpcy5pdGVtLm1vZGVsKSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuaXRlbS5tb2RlbC5pbmRleE9mKHRoaXMuaXRlbS5pc29sYXRlLnZhbHVlKTtcblxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgIHRoaXMuaXRlbS5tb2RlbC5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsb3NlKCkge1xuICAgIHRoaXMuc2VsZWN0LmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGlzb2xhdGVDaGFuZ2UoZmlsdGVyKSB7XG4gICAgaWYgKGZpbHRlci5pc29sYXRlLmVuYWJsZWQpIHtcbiAgICAgIGZpbHRlci5tb2RlbCA9IGZpbHRlci5tdWx0aXBsZSA/IFtmaWx0ZXIuaXNvbGF0ZS52YWx1ZV0gOiBmaWx0ZXIuaXNvbGF0ZS52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZpbHRlci5tdWx0aXBsZSkge1xuICAgICAgICBmaWx0ZXIubW9kZWwgPSBmaWx0ZXIuZGVmYXVsdFZhbHVlID8gZmlsdGVyLmRlZmF1bHRWYWx1ZSA6IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlsdGVyLm1vZGVsID0gZmlsdGVyLmRlZmF1bHRWYWx1ZSA/IGZpbHRlci5kZWZhdWx0VmFsdWUgOiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIFtuZ0NsYXNzXT1cInsgaXNvbGF0ZTogaXRlbS5pc29sYXRlIH1cIj5cbiAgPG1hdC1sYWJlbD5cbiAgICB7eyBpdGVtLmxhYmVsIH19XG4gIDwvbWF0LWxhYmVsPlxuICA8bWF0LXNlbGVjdFxuICAgICNzZWxlY3RcbiAgICBbZnNGaWx0ZXJGb2N1c1RyaWdnZXJdPVwiaXRlbVwiXG4gICAgWyhuZ01vZGVsKV09XCJpdGVtLm1vZGVsXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VkKClcIlxuICAgIFttdWx0aXBsZV09XCJpdGVtLm11bHRpcGxlXCI+XG4gICAgQGZvciAoaXRlbSBvZiBpdGVtLnZhbHVlcyB8IGZzRmlsdGVySXNvbGF0ZVZhbHVlczogaXRlbS5pc29sYXRlOyB0cmFjayBpdGVtKSB7XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPlxuICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICB9XG4gIDwvbWF0LXNlbGVjdD5cbiAgPG1hdC1oaW50PlxuICAgIEBpZiAoaXRlbS5pc29sYXRlKSB7XG4gICAgICA8bWF0LWNoZWNrYm94XG4gICAgICAgIChjaGFuZ2UpPVwiaXNvbGF0ZUNoYW5nZShpdGVtKVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5pc29sYXRlLmVuYWJsZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2JveC1sYWJlbFwiPlxuICAgICAgICAgIHt7IGl0ZW0uaXNvbGF0ZS5sYWJlbCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICB9XG4gIDwvbWF0LWhpbnQ+XG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
@@ -1,56 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild, } from '@angular/core';
2
- import { MatSelect } from '@angular/material/select';
3
- import { SimpleSelectItem } from '../../../../models/items/select/simple-select-item';
4
- import { MatFormField, MatLabel } from '@angular/material/form-field';
5
- import { NgClass } from '@angular/common';
6
- import { FocusToItemDirective } from '../../../../directives/focus-to-item/focus-to-item.directive';
7
- import { FormsModule } from '@angular/forms';
8
- import { FsFormModule } from '@firestitch/form';
9
- import { MatOption } from '@angular/material/core';
10
- import { MatCheckbox } from '@angular/material/checkbox';
11
- import { FsFilterIsolateValues } from '../../../../pipes/remove-isolate-value.pipe';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/forms";
14
- import * as i2 from "@firestitch/form";
15
- export class SelectSimpleComponent {
16
- _cd;
17
- item;
18
- select;
19
- constructor(_cd) {
20
- this._cd = _cd;
21
- }
22
- changed() {
23
- if (this.item.isolate) {
24
- this.item.isolate.enabled = false;
25
- }
26
- }
27
- isolateChange(filter) {
28
- filter.model = filter.isolate.enabled ? filter.isolate.value : null;
29
- }
30
- markForCheck() {
31
- this._cd.markForCheck();
32
- }
33
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectSimpleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
34
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectSimpleComponent, isStandalone: true, 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>\n {{ item.label }}\n </mat-label>\n <mat-select\n #select\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n (ngModelChange)=\"changed()\">\n @for (item of item.values | fsFilterIsolateValues: item.isolate; track item) {\n <mat-option\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n</mat-form-field>\n@if (item.isolate) {\n <mat-checkbox\n (change)=\"isolateChange(item)\"\n [(ngModel)]=\"item.isolate.enabled\">\n <span class=\"checkbox-label\">\n {{ item.isolate.label }}\n </span>\n </mat-checkbox>\n}", styles: [""], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: FsFormModule }, { kind: "directive", type: i2.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormGreaterEqual]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: FsFilterIsolateValues, name: "fsFilterIsolateValues" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
35
- }
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectSimpleComponent, decorators: [{
37
- type: Component,
38
- args: [{ selector: 'filter-item-select-simple', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
39
- MatFormField,
40
- NgClass,
41
- MatLabel,
42
- MatSelect,
43
- FocusToItemDirective,
44
- FormsModule,
45
- FsFormModule,
46
- MatOption,
47
- MatCheckbox,
48
- FsFilterIsolateValues,
49
- ], template: "<mat-form-field [ngClass]=\"{ isolate: !!item.isolate }\">\n <mat-label>\n {{ item.label }}\n </mat-label>\n <mat-select\n #select\n [fsFilterFocusTrigger]=\"item\"\n [(ngModel)]=\"item.model\"\n (ngModelChange)=\"changed()\">\n @for (item of item.values | fsFilterIsolateValues: item.isolate; track item) {\n <mat-option\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n</mat-form-field>\n@if (item.isolate) {\n <mat-checkbox\n (change)=\"isolateChange(item)\"\n [(ngModel)]=\"item.isolate.enabled\">\n <span class=\"checkbox-label\">\n {{ item.isolate.label }}\n </span>\n </mat-checkbox>\n}" }]
50
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { item: [{
51
- type: Input
52
- }], select: [{
53
- type: ViewChild,
54
- args: ['select', { static: true }]
55
- }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXJzLWl0ZW0vc2VsZWN0L3NpbXBsZS9zaW1wbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9zZWxlY3Qvc2ltcGxlL3NpbXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7O0FBc0JwRixNQUFNLE9BQU8scUJBQXFCO0lBUXRCO0lBTk0sSUFBSSxDQUFtQjtJQUdoQyxNQUFNLENBQVk7SUFFekIsWUFDVSxHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUM3QixDQUFDO0lBRUcsT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLE1BQU07UUFDekIsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RSxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBdkJVLHFCQUFxQjs0RkFBckIscUJBQXFCLCtOQ3hDbEMsdXJCQXlCQywwRERHTyxZQUFZLDRMQUNaLE9BQU8sb0ZBQ1AsUUFBUSxzREFDUixTQUFTLHdlQUNULG9CQUFvQix1SEFDcEIsV0FBVyw4VkFDWCxZQUFZLDBnQkFDWixTQUFTLHFKQUNULFdBQVcsbVZBQ1gscUJBQXFCOzs0RkFHaEIscUJBQXFCO2tCQW5CakMsU0FBUzsrQkFDSSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxRQUFRO3dCQUNSLFNBQVM7d0JBQ1Qsb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxXQUFXO3dCQUNYLHFCQUFxQjtxQkFDeEI7c0ZBSWEsSUFBSTtzQkFBbkIsS0FBSztnQkFHQyxNQUFNO3NCQURaLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcblxuaW1wb3J0IHsgU2ltcGxlU2VsZWN0SXRlbSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9pdGVtcy9zZWxlY3Qvc2ltcGxlLXNlbGVjdC1pdGVtJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9jdXNUb0l0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzL2ZvY3VzLXRvLWl0ZW0vZm9jdXMtdG8taXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3ggfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBGc0ZpbHRlcklzb2xhdGVWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9waXBlcy9yZW1vdmUtaXNvbGF0ZS12YWx1ZS5waXBlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZpbHRlci1pdGVtLXNlbGVjdC1zaW1wbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zaW1wbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NpbXBsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBNYXRGb3JtRmllbGQsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE1hdExhYmVsLFxuICAgICAgICBNYXRTZWxlY3QsXG4gICAgICAgIEZvY3VzVG9JdGVtRGlyZWN0aXZlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgRnNGb3JtTW9kdWxlLFxuICAgICAgICBNYXRPcHRpb24sXG4gICAgICAgIE1hdENoZWNrYm94LFxuICAgICAgICBGc0ZpbHRlcklzb2xhdGVWYWx1ZXMsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0U2ltcGxlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBwdWJsaWMgaXRlbTogU2ltcGxlU2VsZWN0SXRlbTtcblxuICBAVmlld0NoaWxkKCdzZWxlY3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBcbiAgcHVibGljIHNlbGVjdDogTWF0U2VsZWN0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHB1YmxpYyBjaGFuZ2VkKCkge1xuICAgIGlmICh0aGlzLml0ZW0uaXNvbGF0ZSkge1xuICAgICAgdGhpcy5pdGVtLmlzb2xhdGUuZW5hYmxlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc29sYXRlQ2hhbmdlKGZpbHRlcikge1xuICAgIGZpbHRlci5tb2RlbCA9IGZpbHRlci5pc29sYXRlLmVuYWJsZWQgPyBmaWx0ZXIuaXNvbGF0ZS52YWx1ZSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgW25nQ2xhc3NdPVwieyBpc29sYXRlOiAhIWl0ZW0uaXNvbGF0ZSB9XCI+XG4gIDxtYXQtbGFiZWw+XG4gICAge3sgaXRlbS5sYWJlbCB9fVxuICA8L21hdC1sYWJlbD5cbiAgPG1hdC1zZWxlY3RcbiAgICAjc2VsZWN0XG4gICAgW2ZzRmlsdGVyRm9jdXNUcmlnZ2VyXT1cIml0ZW1cIlxuICAgIFsobmdNb2RlbCldPVwiaXRlbS5tb2RlbFwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlZCgpXCI+XG4gICAgQGZvciAoaXRlbSBvZiBpdGVtLnZhbHVlcyB8IGZzRmlsdGVySXNvbGF0ZVZhbHVlczogaXRlbS5pc29sYXRlOyB0cmFjayBpdGVtKSB7XG4gICAgICA8bWF0LW9wdGlvblxuICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPlxuICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICB9XG4gIDwvbWF0LXNlbGVjdD5cbjwvbWF0LWZvcm0tZmllbGQ+XG5AaWYgKGl0ZW0uaXNvbGF0ZSkge1xuICA8bWF0LWNoZWNrYm94XG4gICAgKGNoYW5nZSk9XCJpc29sYXRlQ2hhbmdlKGl0ZW0pXCJcbiAgICBbKG5nTW9kZWwpXT1cIml0ZW0uaXNvbGF0ZS5lbmFibGVkXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjaGVja2JveC1sYWJlbFwiPlxuICAgICAge3sgaXRlbS5pc29sYXRlLmxhYmVsIH19XG4gICAgPC9zcGFuPlxuICA8L21hdC1jaGVja2JveD5cbn0iXX0=
@@ -1,38 +0,0 @@
1
- import { list as arrayList } from '@firestitch/common';
2
- import { isObject } from 'lodash-es';
3
- import { CheckboxItem, MultipleSelectItem } from '../models/items';
4
- import { arraysAreEquals } from './compare';
5
- import { filterToQueryParam } from './query-param-transformers';
6
- export function buildQueryParams(flattenedParams, items) {
7
- items
8
- .forEach((filterItem) => {
9
- if (filterItem instanceof MultipleSelectItem && filterItem.isolate) {
10
- if (filterItem.multiple && filterItem.value) {
11
- const isolated = arrayList(filterItem.values, 'value').sort();
12
- const value = filterItem.value.sort();
13
- if (arraysAreEquals(value, isolated)) {
14
- flattenedParams[filterItem.name] = null;
15
- }
16
- }
17
- }
18
- else if (filterItem instanceof CheckboxItem) {
19
- if (filterItem.checked) {
20
- flattenedParams[filterItem.name] = filterItem.model;
21
- }
22
- }
23
- else if (filterItem.isTypeAutocomplete) {
24
- if (isObject(filterItem.model)) {
25
- flattenedParams[filterItem.name] = filterToQueryParam(filterItem.model.value, filterItem.model.name);
26
- }
27
- }
28
- else if (filterItem.isTypeAutocompleteChips || filterItem.isTypeChips) {
29
- if (Array.isArray(filterItem.model) && filterItem.model.length) {
30
- flattenedParams[filterItem.name] = filterItem.model.map((item) => {
31
- return filterToQueryParam(item.value, item.name);
32
- }).join(',');
33
- }
34
- }
35
- });
36
- return flattenedParams;
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcXVlcnktcGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9oZWxwZXJzL2J1aWxkLXF1ZXJ5LXBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJckMsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHaEUsTUFBTSxVQUFVLGdCQUFnQixDQUFDLGVBQXlCLEVBQUUsS0FBb0M7SUFDOUYsS0FBSztTQUNGLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ3RCLElBQUksVUFBVSxZQUFZLGtCQUFrQixJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuRSxJQUFJLFVBQVUsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM1QyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFdEMsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ3JDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFLLFVBQVUsWUFBWSxZQUFZLEVBQUUsQ0FBQztZQUMvQyxJQUFHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdEIsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3RELENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZHLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxVQUFVLENBQUMsdUJBQXVCLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0QsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUMvRCxPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUwsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxpc3QgYXMgYXJyYXlMaXN0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0l0ZW0gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hlY2tib3hJdGVtLCBNdWx0aXBsZVNlbGVjdEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMnO1xuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtJztcblxuaW1wb3J0IHsgYXJyYXlzQXJlRXF1YWxzIH0gZnJvbSAnLi9jb21wYXJlJztcbmltcG9ydCB7IGZpbHRlclRvUXVlcnlQYXJhbSB9IGZyb20gJy4vcXVlcnktcGFyYW0tdHJhbnNmb3JtZXJzJztcblxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRRdWVyeVBhcmFtcyhmbGF0dGVuZWRQYXJhbXM6IEtleVZhbHVlLCBpdGVtczogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10pIHtcbiAgaXRlbXNcbiAgICAuZm9yRWFjaCgoZmlsdGVySXRlbSkgPT4ge1xuICAgICAgaWYgKGZpbHRlckl0ZW0gaW5zdGFuY2VvZiBNdWx0aXBsZVNlbGVjdEl0ZW0gJiYgZmlsdGVySXRlbS5pc29sYXRlKSB7XG4gICAgICAgIGlmIChmaWx0ZXJJdGVtLm11bHRpcGxlICYmIGZpbHRlckl0ZW0udmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBpc29sYXRlZCA9IGFycmF5TGlzdChmaWx0ZXJJdGVtLnZhbHVlcywgJ3ZhbHVlJykuc29ydCgpO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVySXRlbS52YWx1ZS5zb3J0KCk7XG5cbiAgICAgICAgICBpZiAoYXJyYXlzQXJlRXF1YWxzKHZhbHVlLCBpc29sYXRlZCkpIHtcbiAgICAgICAgICAgIGZsYXR0ZW5lZFBhcmFtc1tmaWx0ZXJJdGVtLm5hbWVdID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAgKGZpbHRlckl0ZW0gaW5zdGFuY2VvZiBDaGVja2JveEl0ZW0pIHtcbiAgICAgICAgaWYoZmlsdGVySXRlbS5jaGVja2VkKSB7XG4gICAgICAgICAgZmxhdHRlbmVkUGFyYW1zW2ZpbHRlckl0ZW0ubmFtZV0gPSBmaWx0ZXJJdGVtLm1vZGVsO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGZpbHRlckl0ZW0uaXNUeXBlQXV0b2NvbXBsZXRlKSB7XG4gICAgICAgIGlmIChpc09iamVjdChmaWx0ZXJJdGVtLm1vZGVsKSkge1xuICAgICAgICAgIGZsYXR0ZW5lZFBhcmFtc1tmaWx0ZXJJdGVtLm5hbWVdID0gZmlsdGVyVG9RdWVyeVBhcmFtKGZpbHRlckl0ZW0ubW9kZWwudmFsdWUsIGZpbHRlckl0ZW0ubW9kZWwubmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoZmlsdGVySXRlbS5pc1R5cGVBdXRvY29tcGxldGVDaGlwcyB8fCBmaWx0ZXJJdGVtLmlzVHlwZUNoaXBzKSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlckl0ZW0ubW9kZWwpICYmIGZpbHRlckl0ZW0ubW9kZWwubGVuZ3RoKSB7XG4gICAgICAgICAgZmxhdHRlbmVkUGFyYW1zW2ZpbHRlckl0ZW0ubmFtZV0gPSBmaWx0ZXJJdGVtLm1vZGVsLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZpbHRlclRvUXVlcnlQYXJhbShpdGVtLnZhbHVlLCBpdGVtLm5hbWUpO1xuICAgICAgICAgIH0pLmpvaW4oJywnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gIHJldHVybiBmbGF0dGVuZWRQYXJhbXM7XG59XG4iXX0=