@firestitch/filter 14.0.1 → 14.0.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 (219) hide show
  1. package/app/classes/actions-controller.d.ts +41 -41
  2. package/app/components/action-button/action-button.component.d.ts +9 -9
  3. package/app/components/action-kebab-actions/action-kebab-actions.component.d.ts +7 -7
  4. package/app/components/actions/actions.component.d.ts +13 -13
  5. package/app/components/filter/filter.component.d.ts +204 -204
  6. package/app/components/filter-chip/filter-chip.component.d.ts +26 -26
  7. package/app/components/filter-chip-content/filter-chip-content.component.d.ts +18 -18
  8. package/app/components/filter-chips/filter-chips.component.d.ts +9 -9
  9. package/app/components/filter-drawer/filter-drawer.component.d.ts +30 -30
  10. package/app/components/filter-drawer-actions/filter-drawer-actions.component.d.ts +15 -15
  11. package/app/components/filters-item/autocomplete/autocomplete.component.d.ts +14 -14
  12. package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +16 -16
  13. package/app/components/filters-item/base-item/base-item.component.d.ts +25 -25
  14. package/app/components/filters-item/checkbox/checkbox.component.d.ts +11 -11
  15. package/app/components/filters-item/chips/chips.component.d.ts +13 -13
  16. package/app/components/filters-item/date/date.component.d.ts +20 -20
  17. package/app/components/filters-item/date-range/date-range.component.d.ts +15 -15
  18. package/app/components/filters-item/filter-item.component.d.ts +39 -39
  19. package/app/components/filters-item/range/range.component.d.ts +15 -15
  20. package/app/components/filters-item/select/backdrop/backdrop.component.d.ts +6 -6
  21. package/app/components/filters-item/select/groups/groups.component.d.ts +12 -12
  22. package/app/components/filters-item/select/multiple/multiple.component.d.ts +15 -15
  23. package/app/components/filters-item/select/select.component.d.ts +23 -23
  24. package/app/components/filters-item/select/simple/simple.component.d.ts +14 -14
  25. package/app/components/filters-item/text/text.component.d.ts +19 -19
  26. package/app/components/filters-item/week/week.component.d.ts +12 -12
  27. package/app/components/saved-filter/index.d.ts +3 -3
  28. package/app/components/saved-filter/saved-filter-edit/index.d.ts +1 -1
  29. package/app/components/saved-filter/saved-filter-edit/saved-filter-edit.component.d.ts +18 -18
  30. package/app/components/saved-filter/saved-filter-manage/index.d.ts +1 -1
  31. package/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.d.ts +16 -16
  32. package/app/components/saved-filter/saved-filters-menu/index.d.ts +1 -1
  33. package/app/components/saved-filter/saved-filters-menu/saved-filters-menu.component.d.ts +23 -23
  34. package/app/consts/query-param-delimiter.d.ts +1 -1
  35. package/app/directives/focus-to-item/focus-to-item.directive.d.ts +27 -27
  36. package/app/directives/status-bar/status-bar.directive.d.ts +8 -8
  37. package/app/enums/action-mode.enum.d.ts +6 -6
  38. package/app/enums/action-type.enum.d.ts +9 -9
  39. package/app/enums/button-style.d.ts +9 -9
  40. package/app/enums/index.d.ts +6 -6
  41. package/app/enums/item-date-mode.enum.d.ts +5 -5
  42. package/app/enums/item-type.enum.d.ts +15 -15
  43. package/app/enums/picker-view-type.enum.d.ts +7 -7
  44. package/app/fs-filter.module.d.ts +70 -70
  45. package/app/helpers/build-query-params.d.ts +3 -3
  46. package/app/helpers/compare.d.ts +2 -2
  47. package/app/helpers/create-filter-item.d.ts +14 -14
  48. package/app/helpers/find-value.d.ts +1 -1
  49. package/app/helpers/get-range-name.d.ts +1 -1
  50. package/app/helpers/parse-date.d.ts +1 -1
  51. package/app/helpers/parse-item-value-from-stored.d.ts +1 -1
  52. package/app/helpers/query-param-transformers.d.ts +2 -2
  53. package/app/helpers/restore-items.d.ts +12 -12
  54. package/app/injectors/filter-config.d.ts +2 -2
  55. package/app/injectors/filter-drawer-data.d.ts +2 -2
  56. package/app/injectors/filter-drawer-overlay.d.ts +2 -2
  57. package/app/interfaces/action.interface.d.ts +81 -81
  58. package/app/interfaces/config.interface.d.ts +66 -66
  59. package/app/interfaces/external-params.interface.d.ts +3 -3
  60. package/app/interfaces/filter.interface.d.ts +4 -4
  61. package/app/interfaces/index.d.ts +6 -6
  62. package/app/interfaces/items/autocomplete-chips.interface.d.ts +15 -15
  63. package/app/interfaces/items/autocomplete.interface.d.ts +9 -9
  64. package/app/interfaces/items/base.interface.d.ts +29 -29
  65. package/app/interfaces/items/checkbox.interface.d.ts +7 -7
  66. package/app/interfaces/items/chips.interface.d.ts +6 -6
  67. package/app/interfaces/items/date-range.interface.d.ts +8 -8
  68. package/app/interfaces/items/date.interface.d.ts +7 -7
  69. package/app/interfaces/items/range.interface.d.ts +13 -13
  70. package/app/interfaces/items/select.interface.d.ts +20 -20
  71. package/app/interfaces/items/text.interface.d.ts +9 -9
  72. package/app/interfaces/items/week.interface.d.ts +7 -7
  73. package/app/interfaces/saved-filters.interface.d.ts +18 -18
  74. package/app/interfaces/update-filter-item.interface.d.ts +4 -4
  75. package/app/models/action-menu-item.model.d.ts +23 -23
  76. package/app/models/action.model.d.ts +54 -54
  77. package/app/models/filter-config.d.ts +31 -31
  78. package/app/models/items/autocomplete/base-autocomplete-item.d.ts +12 -12
  79. package/app/models/items/autocomplete-chips-item.d.ts +20 -20
  80. package/app/models/items/autocomplete-item.d.ts +11 -11
  81. package/app/models/items/base-item.d.ts +80 -80
  82. package/app/models/items/checkbox-item.d.ts +17 -17
  83. package/app/models/items/chips-item.d.ts +18 -18
  84. package/app/models/items/date/base-date-item.d.ts +14 -14
  85. package/app/models/items/date-item.d.ts +8 -8
  86. package/app/models/items/date-range/base-date-range-item.d.ts +21 -21
  87. package/app/models/items/date-range-item.d.ts +6 -6
  88. package/app/models/items/date-time-item.d.ts +7 -7
  89. package/app/models/items/date-time-range-item.d.ts +6 -6
  90. package/app/models/items/range-item.d.ts +23 -23
  91. package/app/models/items/select/base-select-item.d.ts +13 -13
  92. package/app/models/items/select/multiple-select-item.d.ts +14 -14
  93. package/app/models/items/select/simple-select-item.d.ts +14 -14
  94. package/app/models/items/select-item.d.ts +8 -8
  95. package/app/models/items/text-item.d.ts +15 -15
  96. package/app/models/items/week-item.d.ts +18 -18
  97. package/app/pipes/remove-isolate-value.pipe.d.ts +8 -8
  98. package/app/providers/filter-meta.d.ts +5 -5
  99. package/app/services/external-params/persistance-params-controller.service.d.ts +22 -22
  100. package/app/services/external-params/query-params-controller.service.d.ts +22 -22
  101. package/app/services/external-params/saved-filters-controller.service.d.ts +40 -40
  102. package/app/services/external-params-controller.service.d.ts +42 -42
  103. package/app/services/filter-overlay.service.d.ts +36 -36
  104. package/app/services/focus-controller.service.d.ts +18 -18
  105. package/app/services/items-store.service.d.ts +69 -69
  106. package/esm2020/app/classes/actions-controller.mjs +126 -126
  107. package/esm2020/app/components/action-button/action-button.component.mjs +21 -21
  108. package/esm2020/app/components/action-kebab-actions/action-kebab-actions.component.mjs +16 -16
  109. package/esm2020/app/components/actions/actions.component.mjs +41 -41
  110. package/esm2020/app/components/filter/filter.component.mjs +613 -613
  111. package/esm2020/app/components/filter-chip/filter-chip.component.mjs +85 -85
  112. package/esm2020/app/components/filter-chip-content/filter-chip-content.component.mjs +78 -78
  113. package/esm2020/app/components/filter-chips/filter-chips.component.mjs +18 -18
  114. package/esm2020/app/components/filter-drawer/filter-drawer.component.mjs +70 -70
  115. package/esm2020/app/components/filter-drawer-actions/filter-drawer-actions.component.mjs +40 -40
  116. package/esm2020/app/components/filters-item/autocomplete/autocomplete.component.mjs +26 -26
  117. package/esm2020/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +41 -41
  118. package/esm2020/app/components/filters-item/base-item/base-item.component.mjs +62 -62
  119. package/esm2020/app/components/filters-item/checkbox/checkbox.component.mjs +20 -20
  120. package/esm2020/app/components/filters-item/chips/chips.component.mjs +27 -27
  121. package/esm2020/app/components/filters-item/date/date.component.mjs +42 -42
  122. package/esm2020/app/components/filters-item/date-range/date-range.component.mjs +33 -33
  123. package/esm2020/app/components/filters-item/filter-item.component.mjs +79 -79
  124. package/esm2020/app/components/filters-item/range/range.component.mjs +44 -44
  125. package/esm2020/app/components/filters-item/select/backdrop/backdrop.component.mjs +11 -11
  126. package/esm2020/app/components/filters-item/select/groups/groups.component.mjs +29 -29
  127. package/esm2020/app/components/filters-item/select/multiple/multiple.component.mjs +56 -56
  128. package/esm2020/app/components/filters-item/select/select.component.mjs +50 -50
  129. package/esm2020/app/components/filters-item/select/simple/simple.component.mjs +42 -42
  130. package/esm2020/app/components/filters-item/text/text.component.mjs +48 -48
  131. package/esm2020/app/components/filters-item/week/week.component.mjs +24 -24
  132. package/esm2020/app/components/saved-filter/index.mjs +3 -3
  133. package/esm2020/app/components/saved-filter/saved-filter-edit/index.mjs +1 -1
  134. package/esm2020/app/components/saved-filter/saved-filter-edit/saved-filter-edit.component.mjs +49 -49
  135. package/esm2020/app/components/saved-filter/saved-filter-manage/index.mjs +1 -1
  136. package/esm2020/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.mjs +39 -39
  137. package/esm2020/app/components/saved-filter/saved-filters-menu/index.mjs +1 -1
  138. package/esm2020/app/components/saved-filter/saved-filters-menu/saved-filters-menu.component.mjs +51 -51
  139. package/esm2020/app/consts/query-param-delimiter.mjs +1 -1
  140. package/esm2020/app/directives/focus-to-item/focus-to-item.directive.mjs +129 -129
  141. package/esm2020/app/directives/status-bar/status-bar.directive.mjs +15 -15
  142. package/esm2020/app/enums/action-mode.enum.mjs +7 -7
  143. package/esm2020/app/enums/action-type.enum.mjs +11 -11
  144. package/esm2020/app/enums/button-style.mjs +10 -10
  145. package/esm2020/app/enums/index.mjs +6 -6
  146. package/esm2020/app/enums/item-date-mode.enum.mjs +6 -6
  147. package/esm2020/app/enums/item-type.enum.mjs +16 -16
  148. package/esm2020/app/enums/picker-view-type.enum.mjs +8 -8
  149. package/esm2020/app/fs-filter.module.mjs +260 -260
  150. package/esm2020/app/helpers/build-query-params.mjs +32 -32
  151. package/esm2020/app/helpers/compare.mjs +37 -37
  152. package/esm2020/app/helpers/create-filter-item.mjs +54 -54
  153. package/esm2020/app/helpers/find-value.mjs +12 -12
  154. package/esm2020/app/helpers/get-range-name.mjs +8 -8
  155. package/esm2020/app/helpers/parse-date.mjs +7 -7
  156. package/esm2020/app/helpers/parse-item-value-from-stored.mjs +80 -80
  157. package/esm2020/app/helpers/query-param-transformers.mjs +8 -8
  158. package/esm2020/app/helpers/restore-items.mjs +48 -48
  159. package/esm2020/app/injectors/filter-config.mjs +2 -2
  160. package/esm2020/app/injectors/filter-drawer-data.mjs +2 -2
  161. package/esm2020/app/injectors/filter-drawer-overlay.mjs +2 -2
  162. package/esm2020/app/interfaces/action.interface.mjs +1 -1
  163. package/esm2020/app/interfaces/config.interface.mjs +1 -1
  164. package/esm2020/app/interfaces/external-params.interface.mjs +1 -1
  165. package/esm2020/app/interfaces/filter.interface.mjs +1 -1
  166. package/esm2020/app/interfaces/index.mjs +6 -6
  167. package/esm2020/app/interfaces/items/autocomplete-chips.interface.mjs +1 -1
  168. package/esm2020/app/interfaces/items/autocomplete.interface.mjs +1 -1
  169. package/esm2020/app/interfaces/items/base.interface.mjs +1 -1
  170. package/esm2020/app/interfaces/items/checkbox.interface.mjs +1 -1
  171. package/esm2020/app/interfaces/items/chips.interface.mjs +1 -1
  172. package/esm2020/app/interfaces/items/date-range.interface.mjs +1 -1
  173. package/esm2020/app/interfaces/items/date.interface.mjs +1 -1
  174. package/esm2020/app/interfaces/items/range.interface.mjs +1 -1
  175. package/esm2020/app/interfaces/items/select.interface.mjs +1 -1
  176. package/esm2020/app/interfaces/items/text.interface.mjs +1 -1
  177. package/esm2020/app/interfaces/items/week.interface.mjs +1 -1
  178. package/esm2020/app/interfaces/saved-filters.interface.mjs +1 -1
  179. package/esm2020/app/interfaces/update-filter-item.interface.mjs +1 -1
  180. package/esm2020/app/models/action-menu-item.model.mjs +66 -66
  181. package/esm2020/app/models/action.model.mjs +129 -129
  182. package/esm2020/app/models/filter-config.mjs +66 -66
  183. package/esm2020/app/models/items/autocomplete/base-autocomplete-item.mjs +13 -13
  184. package/esm2020/app/models/items/autocomplete-chips-item.mjs +60 -60
  185. package/esm2020/app/models/items/autocomplete-item.mjs +32 -32
  186. package/esm2020/app/models/items/base-item.mjs +233 -233
  187. package/esm2020/app/models/items/checkbox-item.mjs +49 -49
  188. package/esm2020/app/models/items/chips-item.mjs +88 -88
  189. package/esm2020/app/models/items/date/base-date-item.mjs +47 -47
  190. package/esm2020/app/models/items/date-item.mjs +18 -18
  191. package/esm2020/app/models/items/date-range/base-date-range-item.mjs +134 -134
  192. package/esm2020/app/models/items/date-range-item.mjs +6 -6
  193. package/esm2020/app/models/items/date-time-item.mjs +9 -9
  194. package/esm2020/app/models/items/date-time-range-item.mjs +6 -6
  195. package/esm2020/app/models/items/range-item.mjs +82 -82
  196. package/esm2020/app/models/items/select/base-select-item.mjs +36 -36
  197. package/esm2020/app/models/items/select/multiple-select-item.mjs +87 -87
  198. package/esm2020/app/models/items/select/simple-select-item.mjs +65 -65
  199. package/esm2020/app/models/items/select-item.mjs +10 -10
  200. package/esm2020/app/models/items/text-item.mjs +33 -33
  201. package/esm2020/app/models/items/week-item.mjs +93 -93
  202. package/esm2020/app/pipes/remove-isolate-value.pipe.mjs +20 -20
  203. package/esm2020/app/providers/filter-meta.mjs +9 -9
  204. package/esm2020/app/services/external-params/persistance-params-controller.service.mjs +57 -57
  205. package/esm2020/app/services/external-params/query-params-controller.service.mjs +61 -61
  206. package/esm2020/app/services/external-params/saved-filters-controller.service.mjs +162 -162
  207. package/esm2020/app/services/external-params-controller.service.mjs +178 -178
  208. package/esm2020/app/services/filter-overlay.service.mjs +121 -121
  209. package/esm2020/app/services/focus-controller.service.mjs +29 -29
  210. package/esm2020/app/services/items-store.service.mjs +344 -344
  211. package/esm2020/firestitch-filter.mjs +4 -4
  212. package/esm2020/public_api.mjs +35 -35
  213. package/fesm2015/firestitch-filter.mjs +4349 -4349
  214. package/fesm2015/firestitch-filter.mjs.map +1 -1
  215. package/fesm2020/firestitch-filter.mjs +4336 -4336
  216. package/fesm2020/firestitch-filter.mjs.map +1 -1
  217. package/index.d.ts +5 -5
  218. package/package.json +2 -2
  219. package/public_api.d.ts +40 -40
@@ -1,42 +1,42 @@
1
- import { OnDestroy } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { IFilterExternalParams } from '../interfaces/external-params.interface';
4
- import { IFilterSavedFilter } from '../interfaces/saved-filters.interface';
5
- import { PersistanceParamsController } from './external-params/persistance-params-controller.service';
6
- import { QueryParamsController } from './external-params/query-params-controller.service';
7
- import { SavedFiltersController } from './external-params/saved-filters-controller.service';
8
- import { FsFilterItemsStore } from './items-store.service';
9
- import * as i0 from "@angular/core";
10
- export declare class ExternalParamsController implements OnDestroy {
11
- private _itemsStore;
12
- private _persistanceStore;
13
- private _queryParams;
14
- private _savedFilters;
15
- protected _init: any;
16
- private _pending$;
17
- private _shouldResetSavedFilters;
18
- private _config;
19
- private _destroy$;
20
- constructor(_itemsStore: FsFilterItemsStore, _persistanceStore: PersistanceParamsController, _queryParams: QueryParamsController, _savedFilters: SavedFiltersController);
21
- get params(): IFilterExternalParams;
22
- get pending(): boolean;
23
- get pending$(): Observable<boolean>;
24
- get savedFiltersController(): SavedFiltersController;
25
- get savedFiltersEnabled(): boolean;
26
- ngOnDestroy(): void;
27
- setConfig(config: any): void;
28
- setActiveSavedFilter(savedFilter: IFilterSavedFilter): void;
29
- reloadFiltersWithValues(params: IFilterExternalParams, shouldResetSavedFilters?: boolean): void;
30
- initItems(): void;
31
- _initItemsValues(): void;
32
- fetchQueryParams(): void;
33
- private _initPersistance;
34
- private _initQueryParams;
35
- private _initSavedFilters;
36
- private _listenItemsChange;
37
- private _listenAndResetSavedFilters;
38
- private _saveQueryParams;
39
- private _savePersistedParams;
40
- static ɵfac: i0.ɵɵFactoryDeclaration<ExternalParamsController, never>;
41
- static ɵprov: i0.ɵɵInjectableDeclaration<ExternalParamsController>;
42
- }
1
+ import { OnDestroy } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { IFilterExternalParams } from '../interfaces/external-params.interface';
4
+ import { IFilterSavedFilter } from '../interfaces/saved-filters.interface';
5
+ import { PersistanceParamsController } from './external-params/persistance-params-controller.service';
6
+ import { QueryParamsController } from './external-params/query-params-controller.service';
7
+ import { SavedFiltersController } from './external-params/saved-filters-controller.service';
8
+ import { FsFilterItemsStore } from './items-store.service';
9
+ import * as i0 from "@angular/core";
10
+ export declare class ExternalParamsController implements OnDestroy {
11
+ private _itemsStore;
12
+ private _persistanceStore;
13
+ private _queryParams;
14
+ private _savedFilters;
15
+ protected _init: any;
16
+ private _pending$;
17
+ private _shouldResetSavedFilters;
18
+ private _config;
19
+ private _destroy$;
20
+ constructor(_itemsStore: FsFilterItemsStore, _persistanceStore: PersistanceParamsController, _queryParams: QueryParamsController, _savedFilters: SavedFiltersController);
21
+ get params(): IFilterExternalParams;
22
+ get pending(): boolean;
23
+ get pending$(): Observable<boolean>;
24
+ get savedFiltersController(): SavedFiltersController;
25
+ get savedFiltersEnabled(): boolean;
26
+ ngOnDestroy(): void;
27
+ setConfig(config: any): void;
28
+ setActiveSavedFilter(savedFilter: IFilterSavedFilter): void;
29
+ reloadFiltersWithValues(params: IFilterExternalParams, shouldResetSavedFilters?: boolean): void;
30
+ initItems(): void;
31
+ _initItemsValues(): void;
32
+ fetchQueryParams(): void;
33
+ private _initPersistance;
34
+ private _initQueryParams;
35
+ private _initSavedFilters;
36
+ private _listenItemsChange;
37
+ private _listenAndResetSavedFilters;
38
+ private _saveQueryParams;
39
+ private _savePersistedParams;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExternalParamsController, never>;
41
+ static ɵprov: i0.ɵɵInjectableDeclaration<ExternalParamsController>;
42
+ }
@@ -1,36 +1,36 @@
1
- import { Injector, OnDestroy } from '@angular/core';
2
- import { Overlay } from '@angular/cdk/overlay';
3
- import { Subject } from 'rxjs';
4
- import { HtmlClassRenderer } from '@firestitch/html';
5
- import { FilterDrawerComponent } from '../components/filter-drawer/filter-drawer.component';
6
- import { FsFilterMeta } from '../providers/filter-meta';
7
- import { FocusControllerService } from './focus-controller.service';
8
- import * as i0 from "@angular/core";
9
- export declare class FsFilterOverlayService implements OnDestroy {
10
- private _filterMeta;
11
- private _injector;
12
- private _overlay;
13
- private _focusController;
14
- private _htmlClassRenderer;
15
- detach$: Subject<unknown>;
16
- attach$: Subject<unknown>;
17
- private _clearFn;
18
- private _doneFn;
19
- private _destroy$;
20
- private _overlayRef;
21
- constructor(_filterMeta: FsFilterMeta, _injector: Injector, _overlay: Overlay, _focusController: FocusControllerService, _htmlClassRenderer: HtmlClassRenderer);
22
- get isOpened(): boolean;
23
- setClearFn(fn: Function): void;
24
- setDoneFn(fn: Function): void;
25
- close(): void;
26
- open(): FilterDrawerComponent;
27
- ngOnDestroy(): void;
28
- private _createOverlay;
29
- private _openPortalPreview;
30
- private _createInjector;
31
- private _removeFilterClass;
32
- private _addFilterClass;
33
- private _openWhenChipClicked;
34
- static ɵfac: i0.ɵɵFactoryDeclaration<FsFilterOverlayService, never>;
35
- static ɵprov: i0.ɵɵInjectableDeclaration<FsFilterOverlayService>;
36
- }
1
+ import { Injector, OnDestroy } from '@angular/core';
2
+ import { Overlay } from '@angular/cdk/overlay';
3
+ import { Subject } from 'rxjs';
4
+ import { HtmlClassRenderer } from '@firestitch/html';
5
+ import { FilterDrawerComponent } from '../components/filter-drawer/filter-drawer.component';
6
+ import { FsFilterMeta } from '../providers/filter-meta';
7
+ import { FocusControllerService } from './focus-controller.service';
8
+ import * as i0 from "@angular/core";
9
+ export declare class FsFilterOverlayService implements OnDestroy {
10
+ private _filterMeta;
11
+ private _injector;
12
+ private _overlay;
13
+ private _focusController;
14
+ private _htmlClassRenderer;
15
+ detach$: Subject<unknown>;
16
+ attach$: Subject<unknown>;
17
+ private _clearFn;
18
+ private _doneFn;
19
+ private _destroy$;
20
+ private _overlayRef;
21
+ constructor(_filterMeta: FsFilterMeta, _injector: Injector, _overlay: Overlay, _focusController: FocusControllerService, _htmlClassRenderer: HtmlClassRenderer);
22
+ get isOpened(): boolean;
23
+ setClearFn(fn: Function): void;
24
+ setDoneFn(fn: Function): void;
25
+ close(): void;
26
+ open(): FilterDrawerComponent;
27
+ ngOnDestroy(): void;
28
+ private _createOverlay;
29
+ private _openPortalPreview;
30
+ private _createInjector;
31
+ private _removeFilterClass;
32
+ private _addFilterClass;
33
+ private _openWhenChipClicked;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsFilterOverlayService, never>;
35
+ static ɵprov: i0.ɵɵInjectableDeclaration<FsFilterOverlayService>;
36
+ }
@@ -1,18 +1,18 @@
1
- import { BaseItem } from '../models/items/base-item';
2
- import * as i0 from "@angular/core";
3
- export declare class FocusControllerService {
4
- private _focusOn;
5
- constructor();
6
- get focusOn$(): import("rxjs").Observable<{
7
- item: BaseItem<any>;
8
- type: "from" | "to";
9
- }>;
10
- click(item: BaseItem<any>, type?: 'from' | 'to'): void;
11
- listenFocusFor$(targetItem: BaseItem<any>, targetType?: 'from' | 'to'): import("rxjs").Observable<{
12
- item: BaseItem<any>;
13
- type: "from" | "to";
14
- }>;
15
- clearFocus(): void;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<FocusControllerService, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<FocusControllerService>;
18
- }
1
+ import { BaseItem } from '../models/items/base-item';
2
+ import * as i0 from "@angular/core";
3
+ export declare class FocusControllerService {
4
+ private _focusOn;
5
+ constructor();
6
+ get focusOn$(): import("rxjs").Observable<{
7
+ item: BaseItem<any>;
8
+ type: "from" | "to";
9
+ }>;
10
+ click(item: BaseItem<any>, type?: 'from' | 'to'): void;
11
+ listenFocusFor$(targetItem: BaseItem<any>, targetType?: 'from' | 'to'): import("rxjs").Observable<{
12
+ item: BaseItem<any>;
13
+ type: "from" | "to";
14
+ }>;
15
+ clearFocus(): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<FocusControllerService, never>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<FocusControllerService>;
18
+ }
@@ -1,69 +1,69 @@
1
- import { OnDestroy } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import type { FilterComponent } from '../components/filter/filter.component';
4
- import { FilterSort, IFilterConfigItem, SortItem } from '../interfaces/config.interface';
5
- import { IFilterExternalParams } from '../interfaces/external-params.interface';
6
- import { ISortingChangeEvent } from '../interfaces/filter.interface';
7
- import { BaseItem } from '../models/items/base-item';
8
- import { TextItem } from '../models/items/text-item';
9
- import * as i0 from "@angular/core";
10
- interface IValueAsQuery {
11
- onlyPresented?: boolean;
12
- items?: BaseItem<IFilterConfigItem>[];
13
- persisted?: boolean;
14
- }
15
- export declare class FsFilterItemsStore implements OnDestroy {
16
- sortByItem: BaseItem<IFilterConfigItem>;
17
- sortDirectionItem: BaseItem<IFilterConfigItem>;
18
- keywordItem: TextItem;
19
- filter: FilterComponent;
20
- private _ready$;
21
- private _items;
22
- private _visibleItems$;
23
- private _itemsByName;
24
- private _itemsValuesLoaded;
25
- private _hasKeyword;
26
- private _config;
27
- private _itemsChange$;
28
- private _destroy$;
29
- constructor();
30
- get items(): BaseItem<IFilterConfigItem>[];
31
- get itemNames(): string[];
32
- get visibleItems(): BaseItem<IFilterConfigItem>[];
33
- set visibleItems(items: BaseItem<IFilterConfigItem>[]);
34
- get visibleItems$(): Observable<BaseItem<IFilterConfigItem>[]>;
35
- get hasKeyword(): boolean;
36
- get itemsChange$(): Observable<unknown>;
37
- get ready$(): Observable<boolean>;
38
- ngOnDestroy(): void;
39
- setConfig(config: any): void;
40
- getItemByName(name: string): BaseItem<IFilterConfigItem>;
41
- initItems(items: IFilterConfigItem[]): void;
42
- filtersClear(): void;
43
- loadAsyncValues(): void;
44
- loadAsyncDefaults(): void;
45
- getSort(): FilterSort;
46
- getSortByValue(): any;
47
- getSortDirectionValue(): any;
48
- updateSort(sort: ISortingChangeEvent): void;
49
- values(onlyPresented?: boolean): Record<string, unknown>;
50
- valuesAsQuery({ onlyPresented, items, persisted, }?: IValueAsQuery): Record<string, unknown>;
51
- init(p: IFilterExternalParams): void;
52
- updateItemsWithValues(values: IFilterExternalParams): void;
53
- updateSortingItemsValues(items: SortItem[]): void;
54
- destroyItems(): void;
55
- /**
56
- * Some items might need to load async values before they will be shown
57
- */
58
- prepareItems(): void;
59
- updateItemsVisiblity(): void;
60
- private _createItems;
61
- private _subscribeToItemsChanges;
62
- private _lazyInit;
63
- private _initSortingItems;
64
- private _createSortingItems;
65
- private _setKeywordItem;
66
- static ɵfac: i0.ɵɵFactoryDeclaration<FsFilterItemsStore, never>;
67
- static ɵprov: i0.ɵɵInjectableDeclaration<FsFilterItemsStore>;
68
- }
69
- export {};
1
+ import { OnDestroy } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import type { FilterComponent } from '../components/filter/filter.component';
4
+ import { FilterSort, IFilterConfigItem, SortItem } from '../interfaces/config.interface';
5
+ import { IFilterExternalParams } from '../interfaces/external-params.interface';
6
+ import { ISortingChangeEvent } from '../interfaces/filter.interface';
7
+ import { BaseItem } from '../models/items/base-item';
8
+ import { TextItem } from '../models/items/text-item';
9
+ import * as i0 from "@angular/core";
10
+ interface IValueAsQuery {
11
+ onlyPresented?: boolean;
12
+ items?: BaseItem<IFilterConfigItem>[];
13
+ persisted?: boolean;
14
+ }
15
+ export declare class FsFilterItemsStore implements OnDestroy {
16
+ sortByItem: BaseItem<IFilterConfigItem>;
17
+ sortDirectionItem: BaseItem<IFilterConfigItem>;
18
+ keywordItem: TextItem;
19
+ filter: FilterComponent;
20
+ private _ready$;
21
+ private _items;
22
+ private _visibleItems$;
23
+ private _itemsByName;
24
+ private _itemsValuesLoaded;
25
+ private _hasKeyword;
26
+ private _config;
27
+ private _itemsChange$;
28
+ private _destroy$;
29
+ constructor();
30
+ get items(): BaseItem<IFilterConfigItem>[];
31
+ get itemNames(): string[];
32
+ get visibleItems(): BaseItem<IFilterConfigItem>[];
33
+ set visibleItems(items: BaseItem<IFilterConfigItem>[]);
34
+ get visibleItems$(): Observable<BaseItem<IFilterConfigItem>[]>;
35
+ get hasKeyword(): boolean;
36
+ get itemsChange$(): Observable<unknown>;
37
+ get ready$(): Observable<boolean>;
38
+ ngOnDestroy(): void;
39
+ setConfig(config: any): void;
40
+ getItemByName(name: string): BaseItem<IFilterConfigItem>;
41
+ initItems(items: IFilterConfigItem[]): void;
42
+ filtersClear(): void;
43
+ loadAsyncValues(): void;
44
+ loadAsyncDefaults(): void;
45
+ getSort(): FilterSort;
46
+ getSortByValue(): any;
47
+ getSortDirectionValue(): any;
48
+ updateSort(sort: ISortingChangeEvent): void;
49
+ values(onlyPresented?: boolean): Record<string, unknown>;
50
+ valuesAsQuery({ onlyPresented, items, persisted, }?: IValueAsQuery): Record<string, unknown>;
51
+ init(p: IFilterExternalParams): void;
52
+ updateItemsWithValues(values: IFilterExternalParams): void;
53
+ updateSortingItemsValues(items: SortItem[]): void;
54
+ destroyItems(): void;
55
+ /**
56
+ * Some items might need to load async values before they will be shown
57
+ */
58
+ prepareItems(): void;
59
+ updateItemsVisiblity(): void;
60
+ private _createItems;
61
+ private _subscribeToItemsChanges;
62
+ private _lazyInit;
63
+ private _initSortingItems;
64
+ private _createSortingItems;
65
+ private _setKeywordItem;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<FsFilterItemsStore, never>;
67
+ static ɵprov: i0.ɵɵInjectableDeclaration<FsFilterItemsStore>;
68
+ }
69
+ export {};
@@ -1,127 +1,127 @@
1
- import { BreakpointObserver } from '@angular/cdk/layout';
2
- import { Injectable } from '@angular/core';
3
- import { BehaviorSubject, Subject } from 'rxjs';
4
- import { skip, takeUntil } from 'rxjs/operators';
5
- import { Action } from '../models/action.model';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/layout";
8
- export class ActionsController {
9
- constructor(_breakpointObserver) {
10
- this._breakpointObserver = _breakpointObserver;
11
- this._visible$ = new BehaviorSubject(false);
12
- this._actions$ = new BehaviorSubject([]);
13
- this._menuActions$ = new BehaviorSubject([]);
14
- this._destroy$ = new Subject();
15
- this._mobileMedia = '(max-width: 799px)';
16
- this._allActions = [];
17
- this._listenMobileMedia();
18
- }
19
- get menuActions() {
20
- return this._menuActions$.value;
21
- }
22
- get actions() {
23
- return this._actions$.value;
24
- }
25
- get actions$() {
26
- return this._actions$.asObservable();
27
- }
28
- get menuActions$() {
29
- return this._menuActions$.asObservable();
30
- }
31
- get visible$() {
32
- return this._visible$.asObservable();
33
- }
34
- get mobileMode() {
35
- return this._breakpointObserver.isMatched(this._mobileMedia);
36
- }
37
- ngOnDestroy() {
38
- this._destroy$.next();
39
- this._destroy$.complete();
40
- }
41
- setConfig(config) {
42
- this._config = config;
43
- this.initActions(config.actions);
44
- }
45
- initActions(rawActions) {
46
- if (!rawActions || !Array.isArray(rawActions)) {
47
- return;
48
- }
49
- this.show();
50
- this._allActions = rawActions
51
- .map((action) => new Action(this._config, action));
52
- if (this._reorderAction) {
53
- this._allActions.unshift(this._reorderAction);
54
- }
55
- this._classifyActions();
56
- }
57
- show() {
58
- this._visible$.next(true);
59
- }
60
- hide() {
61
- this._visible$.next(false);
62
- }
63
- addReorderAction(action) {
64
- this._allActions.unshift(action);
65
- action.isReorderAction = true;
66
- this._classifyAction(action);
67
- this._reorderAction = action;
68
- }
69
- clearActions() {
70
- this._allActions = [];
71
- this._setActions([]);
72
- this._setKebabActions([]);
73
- }
74
- updateActionsVisibility() {
75
- this._allActions.forEach((action) => action.updateVisibility());
76
- this._classifyActions();
77
- }
78
- updateDisabledState() {
79
- this.actions.forEach((action) => action.updateDisabledState());
80
- }
81
- _setKebabActions(actions) {
82
- this._menuActions$.next(actions);
83
- }
84
- _setActions(actions) {
85
- this._actions$.next(actions);
86
- }
87
- _classifyActions() {
88
- const kebabActions = [];
89
- const actions = [];
90
- const mobileMode = this.mobileMode;
91
- this._allActions
92
- .filter((action) => {
93
- return action.visible;
94
- })
95
- .forEach((action) => {
96
- if (action.menu !== false && (action.menu || mobileMode)) {
97
- kebabActions.push(action);
98
- }
99
- else {
100
- actions.push(action);
101
- }
102
- });
103
- this._setKebabActions(kebabActions);
104
- this._setActions(actions);
105
- }
106
- _classifyAction(action) {
107
- if (action.menu) {
108
- this._setKebabActions([...this.menuActions, action]);
109
- }
110
- else {
111
- this._setActions([...this.actions, action]);
112
- }
113
- }
114
- _listenMobileMedia() {
115
- this._breakpointObserver.observe(this._mobileMedia)
116
- .pipe(skip(1), takeUntil(this._destroy$))
117
- .subscribe(() => {
118
- this._classifyActions();
119
- });
120
- }
121
- }
122
- ActionsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActionsController, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
123
- ActionsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActionsController });
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActionsController, decorators: [{
125
- type: Injectable
126
- }], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
1
+ import { BreakpointObserver } from '@angular/cdk/layout';
2
+ import { Injectable } from '@angular/core';
3
+ import { BehaviorSubject, Subject } from 'rxjs';
4
+ import { skip, takeUntil } from 'rxjs/operators';
5
+ import { Action } from '../models/action.model';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/layout";
8
+ export class ActionsController {
9
+ constructor(_breakpointObserver) {
10
+ this._breakpointObserver = _breakpointObserver;
11
+ this._visible$ = new BehaviorSubject(false);
12
+ this._actions$ = new BehaviorSubject([]);
13
+ this._menuActions$ = new BehaviorSubject([]);
14
+ this._destroy$ = new Subject();
15
+ this._mobileMedia = '(max-width: 799px)';
16
+ this._allActions = [];
17
+ this._listenMobileMedia();
18
+ }
19
+ get menuActions() {
20
+ return this._menuActions$.value;
21
+ }
22
+ get actions() {
23
+ return this._actions$.value;
24
+ }
25
+ get actions$() {
26
+ return this._actions$.asObservable();
27
+ }
28
+ get menuActions$() {
29
+ return this._menuActions$.asObservable();
30
+ }
31
+ get visible$() {
32
+ return this._visible$.asObservable();
33
+ }
34
+ get mobileMode() {
35
+ return this._breakpointObserver.isMatched(this._mobileMedia);
36
+ }
37
+ ngOnDestroy() {
38
+ this._destroy$.next();
39
+ this._destroy$.complete();
40
+ }
41
+ setConfig(config) {
42
+ this._config = config;
43
+ this.initActions(config.actions);
44
+ }
45
+ initActions(rawActions) {
46
+ if (!rawActions || !Array.isArray(rawActions)) {
47
+ return;
48
+ }
49
+ this.show();
50
+ this._allActions = rawActions
51
+ .map((action) => new Action(this._config, action));
52
+ if (this._reorderAction) {
53
+ this._allActions.unshift(this._reorderAction);
54
+ }
55
+ this._classifyActions();
56
+ }
57
+ show() {
58
+ this._visible$.next(true);
59
+ }
60
+ hide() {
61
+ this._visible$.next(false);
62
+ }
63
+ addReorderAction(action) {
64
+ this._allActions.unshift(action);
65
+ action.isReorderAction = true;
66
+ this._classifyAction(action);
67
+ this._reorderAction = action;
68
+ }
69
+ clearActions() {
70
+ this._allActions = [];
71
+ this._setActions([]);
72
+ this._setKebabActions([]);
73
+ }
74
+ updateActionsVisibility() {
75
+ this._allActions.forEach((action) => action.updateVisibility());
76
+ this._classifyActions();
77
+ }
78
+ updateDisabledState() {
79
+ this.actions.forEach((action) => action.updateDisabledState());
80
+ }
81
+ _setKebabActions(actions) {
82
+ this._menuActions$.next(actions);
83
+ }
84
+ _setActions(actions) {
85
+ this._actions$.next(actions);
86
+ }
87
+ _classifyActions() {
88
+ const kebabActions = [];
89
+ const actions = [];
90
+ const mobileMode = this.mobileMode;
91
+ this._allActions
92
+ .filter((action) => {
93
+ return action.visible;
94
+ })
95
+ .forEach((action) => {
96
+ if (action.menu !== false && (action.menu || mobileMode)) {
97
+ kebabActions.push(action);
98
+ }
99
+ else {
100
+ actions.push(action);
101
+ }
102
+ });
103
+ this._setKebabActions(kebabActions);
104
+ this._setActions(actions);
105
+ }
106
+ _classifyAction(action) {
107
+ if (action.menu) {
108
+ this._setKebabActions([...this.menuActions, action]);
109
+ }
110
+ else {
111
+ this._setActions([...this.actions, action]);
112
+ }
113
+ }
114
+ _listenMobileMedia() {
115
+ this._breakpointObserver.observe(this._mobileMedia)
116
+ .pipe(skip(1), takeUntil(this._destroy$))
117
+ .subscribe(() => {
118
+ this._classifyActions();
119
+ });
120
+ }
121
+ }
122
+ ActionsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActionsController, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
123
+ ActionsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActionsController });
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ActionsController, decorators: [{
125
+ type: Injectable
126
+ }], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; } });
127
127
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL2FjdGlvbnMtY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFLaEQsTUFBTSxPQUFPLGlCQUFpQjtJQVk1QixZQUNVLG1CQUF1QztRQUF2Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBWHpDLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUd2QixpQkFBWSxHQUFHLG9CQUFvQixDQUFDO1FBQzdDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBTWpDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxT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QVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQzs7OEdBbkpVLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNraXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRnNGaWx0ZXJBY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2FjdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBGc0ZpbHRlckNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9maWx0ZXItY29uZmlnJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWN0aW9uc0NvbnRyb2xsZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3Zpc2libGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gIHByaXZhdGUgX2FjdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBY3Rpb25bXT4oW10pO1xuICBwcml2YXRlIF9tZW51QWN0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbltdPihbXSk7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfY29uZmlnOiBGc0ZpbHRlckNvbmZpZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tb2JpbGVNZWRpYSA9ICcobWF4LXdpZHRoOiA3OTlweCknO1xuICBwcml2YXRlIF9hbGxBY3Rpb25zOiBBY3Rpb25bXSA9IFtdO1xuICBwcml2YXRlIF9yZW9yZGVyQWN0aW9uOiBBY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICkge1xuICAgIHRoaXMuX2xpc3Rlbk1vYmlsZU1lZGlhKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVBY3Rpb25zKCk6IEFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fbWVudUFjdGlvbnMkLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3Rpb25zKCk6IEFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucyQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGlvbnMkKCk6IE9ic2VydmFibGU8QWN0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9ucyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVBY3Rpb25zJCgpOiBPYnNlcnZhYmxlPEFjdGlvbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX21lbnVBY3Rpb25zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2JpbGVNb2RlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKHRoaXMuX21vYmlsZU1lZGlhKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb25maWcoY29uZmlnOiBGc0ZpbHRlckNvbmZpZykge1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICB0aGlzLmluaXRBY3Rpb25zKGNvbmZpZy5hY3Rpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0QWN0aW9ucyhyYXdBY3Rpb25zOiBGc0ZpbHRlckFjdGlvbltdKSB7XG4gICAgaWYgKCFyYXdBY3Rpb25zIHx8ICFBcnJheS5pc0FycmF5KHJhd0FjdGlvbnMpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93KCk7XG5cbiAgICB0aGlzLl9hbGxBY3Rpb25zID0gcmF3QWN0aW9uc1xuICAgICAgLm1hcCgoYWN0aW9uKSA9PiBuZXcgQWN0aW9uKHRoaXMuX2NvbmZpZywgYWN0aW9uKSk7XG5cbiAgICBpZiAodGhpcy5fcmVvcmRlckFjdGlvbikge1xuICAgICAgdGhpcy5fYWxsQWN0aW9ucy51bnNoaWZ0KHRoaXMuX3Jlb3JkZXJBY3Rpb24pO1xuICAgIH1cblxuICAgIHRoaXMuX2NsYXNzaWZ5QWN0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIHNob3coKSB7XG4gICAgdGhpcy5fdmlzaWJsZSQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlKCkge1xuICAgIHRoaXMuX3Zpc2libGUkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGFkZFJlb3JkZXJBY3Rpb24oYWN0aW9uOiBBY3Rpb24pIHtcbiAgICB0aGlzLl9hbGxBY3Rpb25zLnVuc2hpZnQoYWN0aW9uKTtcblxuICAgIGFjdGlvbi5pc1Jlb3JkZXJBY3Rpb24gPSB0cnVlO1xuXG4gICAgdGhpcy5fY2xhc3NpZnlBY3Rpb24oYWN0aW9uKTtcbiAgICB0aGlzLl9yZW9yZGVyQWN0aW9uID0gYWN0aW9uO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQWN0aW9ucygpIHtcbiAgICB0aGlzLl9hbGxBY3Rpb25zID0gW107XG4gICAgdGhpcy5fc2V0QWN0aW9ucyhbXSk7XG4gICAgdGhpcy5fc2V0S2ViYWJBY3Rpb25zKFtdKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBY3Rpb25zVmlzaWJpbGl0eSgpIHtcbiAgICB0aGlzLl9hbGxBY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4gYWN0aW9uLnVwZGF0ZVZpc2liaWxpdHkoKSk7XG4gICAgdGhpcy5fY2xhc3NpZnlBY3Rpb25zKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRGlzYWJsZWRTdGF0ZSgpIHtcbiAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiBhY3Rpb24udXBkYXRlRGlzYWJsZWRTdGF0ZSgpKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0S2ViYWJBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbltdKSB7XG4gICAgdGhpcy5fbWVudUFjdGlvbnMkLm5leHQoYWN0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbltdKSB7XG4gICAgdGhpcy5fYWN0aW9ucyQubmV4dChhY3Rpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsYXNzaWZ5QWN0aW9ucygpIHtcbiAgICBjb25zdCBrZWJhYkFjdGlvbnMgPSBbXTtcbiAgICBjb25zdCBhY3Rpb25zID0gW107XG4gICAgY29uc3QgbW9iaWxlTW9kZSA9IHRoaXMubW9iaWxlTW9kZTtcblxuICAgIHRoaXMuX2FsbEFjdGlvbnNcbiAgICAgIC5maWx0ZXIoKGFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gYWN0aW9uLnZpc2libGU7XG4gICAgICB9KVxuICAgICAgLmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICBpZiAoYWN0aW9uLm1lbnUgIT09IGZhbHNlICYmIChhY3Rpb24ubWVudSB8fCBtb2JpbGVNb2RlKSkge1xuICAgICAgICAgIGtlYmFiQWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fc2V0S2ViYWJBY3Rpb25zKGtlYmFiQWN0aW9ucyk7XG4gICAgdGhpcy5fc2V0QWN0aW9ucyhhY3Rpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsYXNzaWZ5QWN0aW9uKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgaWYgKGFjdGlvbi5tZW51KSB7XG4gICAgICB0aGlzLl9zZXRLZWJhYkFjdGlvbnMoWy4uLnRoaXMubWVudUFjdGlvbnMsIGFjdGlvbl0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRBY3Rpb25zKFsuLi50aGlzLmFjdGlvbnMsIGFjdGlvbl0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xpc3Rlbk1vYmlsZU1lZGlhKCkge1xuICAgIHRoaXMuX2JyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuX21vYmlsZU1lZGlhKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHNraXAoMSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fY2xhc3NpZnlBY3Rpb25zKCk7XG4gICAgICB9KVxuICB9XG59XG4iXX0=