@firestitch/filter 16.0.0 → 16.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) 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 +9 -9
  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 +24 -24
  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 +17 -17
  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 +19 -19
  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 +21 -21
  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/esm2022/app/classes/actions-controller.mjs +129 -129
  107. package/esm2022/app/components/action-button/action-button.component.mjs +20 -20
  108. package/esm2022/app/components/action-kebab-actions/action-kebab-actions.component.mjs +17 -17
  109. package/esm2022/app/components/actions/actions.component.mjs +39 -39
  110. package/esm2022/app/components/filter/filter.component.mjs +625 -625
  111. package/esm2022/app/components/filter-chip/filter-chip.component.mjs +91 -91
  112. package/esm2022/app/components/filter-chip-content/filter-chip-content.component.mjs +82 -82
  113. package/esm2022/app/components/filter-chips/filter-chips.component.mjs +17 -17
  114. package/esm2022/app/components/filter-drawer/filter-drawer.component.mjs +77 -77
  115. package/esm2022/app/components/filter-drawer-actions/filter-drawer-actions.component.mjs +26 -26
  116. package/esm2022/app/components/filters-item/autocomplete/autocomplete.component.mjs +28 -28
  117. package/esm2022/app/components/filters-item/autocompletechips/autocompletechips.component.mjs +43 -43
  118. package/esm2022/app/components/filters-item/base-item/base-item.component.mjs +67 -67
  119. package/esm2022/app/components/filters-item/checkbox/checkbox.component.mjs +22 -22
  120. package/esm2022/app/components/filters-item/chips/chips.component.mjs +29 -29
  121. package/esm2022/app/components/filters-item/date/date.component.mjs +44 -44
  122. package/esm2022/app/components/filters-item/date-range/date-range.component.mjs +35 -35
  123. package/esm2022/app/components/filters-item/filter-item.component.mjs +81 -81
  124. package/esm2022/app/components/filters-item/range/range.component.mjs +48 -48
  125. package/esm2022/app/components/filters-item/select/backdrop/backdrop.component.mjs +11 -11
  126. package/esm2022/app/components/filters-item/select/groups/groups.component.mjs +32 -32
  127. package/esm2022/app/components/filters-item/select/multiple/multiple.component.mjs +59 -59
  128. package/esm2022/app/components/filters-item/select/select.component.mjs +54 -54
  129. package/esm2022/app/components/filters-item/select/simple/simple.component.mjs +45 -45
  130. package/esm2022/app/components/filters-item/text/text.component.mjs +50 -50
  131. package/esm2022/app/components/filters-item/week/week.component.mjs +25 -25
  132. package/esm2022/app/components/saved-filter/index.mjs +3 -3
  133. package/esm2022/app/components/saved-filter/saved-filter-edit/index.mjs +1 -1
  134. package/esm2022/app/components/saved-filter/saved-filter-edit/saved-filter-edit.component.mjs +54 -54
  135. package/esm2022/app/components/saved-filter/saved-filter-manage/index.mjs +1 -1
  136. package/esm2022/app/components/saved-filter/saved-filter-manage/saved-filter-manage.component.mjs +44 -44
  137. package/esm2022/app/components/saved-filter/saved-filters-menu/index.mjs +1 -1
  138. package/esm2022/app/components/saved-filter/saved-filters-menu/saved-filters-menu.component.mjs +60 -60
  139. package/esm2022/app/consts/query-param-delimiter.mjs +1 -1
  140. package/esm2022/app/directives/focus-to-item/focus-to-item.directive.mjs +140 -140
  141. package/esm2022/app/directives/status-bar/status-bar.directive.mjs +16 -16
  142. package/esm2022/app/enums/action-mode.enum.mjs +7 -7
  143. package/esm2022/app/enums/action-type.enum.mjs +10 -10
  144. package/esm2022/app/enums/button-style.mjs +10 -10
  145. package/esm2022/app/enums/index.mjs +6 -6
  146. package/esm2022/app/enums/item-date-mode.enum.mjs +6 -6
  147. package/esm2022/app/enums/item-type.enum.mjs +16 -16
  148. package/esm2022/app/enums/picker-view-type.enum.mjs +8 -8
  149. package/esm2022/app/fs-filter.module.mjs +260 -260
  150. package/esm2022/app/helpers/build-query-params.mjs +32 -32
  151. package/esm2022/app/helpers/compare.mjs +37 -37
  152. package/esm2022/app/helpers/create-filter-item.mjs +54 -54
  153. package/esm2022/app/helpers/find-value.mjs +12 -12
  154. package/esm2022/app/helpers/get-range-name.mjs +3 -3
  155. package/esm2022/app/helpers/parse-date.mjs +7 -7
  156. package/esm2022/app/helpers/parse-item-value-from-stored.mjs +76 -76
  157. package/esm2022/app/helpers/query-param-transformers.mjs +8 -8
  158. package/esm2022/app/helpers/restore-items.mjs +48 -48
  159. package/esm2022/app/injectors/filter-config.mjs +2 -2
  160. package/esm2022/app/injectors/filter-drawer-data.mjs +2 -2
  161. package/esm2022/app/injectors/filter-drawer-overlay.mjs +2 -2
  162. package/esm2022/app/interfaces/action.interface.mjs +1 -1
  163. package/esm2022/app/interfaces/config.interface.mjs +1 -1
  164. package/esm2022/app/interfaces/external-params.interface.mjs +1 -1
  165. package/esm2022/app/interfaces/filter.interface.mjs +1 -1
  166. package/esm2022/app/interfaces/index.mjs +6 -6
  167. package/esm2022/app/interfaces/items/autocomplete-chips.interface.mjs +1 -1
  168. package/esm2022/app/interfaces/items/autocomplete.interface.mjs +1 -1
  169. package/esm2022/app/interfaces/items/base.interface.mjs +1 -1
  170. package/esm2022/app/interfaces/items/checkbox.interface.mjs +1 -1
  171. package/esm2022/app/interfaces/items/chips.interface.mjs +1 -1
  172. package/esm2022/app/interfaces/items/date-range.interface.mjs +1 -1
  173. package/esm2022/app/interfaces/items/date.interface.mjs +1 -1
  174. package/esm2022/app/interfaces/items/range.interface.mjs +1 -1
  175. package/esm2022/app/interfaces/items/select.interface.mjs +1 -1
  176. package/esm2022/app/interfaces/items/text.interface.mjs +1 -1
  177. package/esm2022/app/interfaces/items/week.interface.mjs +1 -1
  178. package/esm2022/app/interfaces/saved-filters.interface.mjs +1 -1
  179. package/esm2022/app/interfaces/update-filter-item.interface.mjs +1 -1
  180. package/esm2022/app/models/action-menu-item.model.mjs +72 -72
  181. package/esm2022/app/models/action.model.mjs +155 -155
  182. package/esm2022/app/models/filter-config.mjs +78 -78
  183. package/esm2022/app/models/items/autocomplete/base-autocomplete-item.mjs +15 -15
  184. package/esm2022/app/models/items/autocomplete-chips-item.mjs +66 -66
  185. package/esm2022/app/models/items/autocomplete-item.mjs +32 -32
  186. package/esm2022/app/models/items/base-item.mjs +250 -250
  187. package/esm2022/app/models/items/checkbox-item.mjs +51 -51
  188. package/esm2022/app/models/items/chips-item.mjs +89 -89
  189. package/esm2022/app/models/items/date/base-date-item.mjs +49 -49
  190. package/esm2022/app/models/items/date-item.mjs +18 -18
  191. package/esm2022/app/models/items/date-range/base-date-range-item.mjs +123 -123
  192. package/esm2022/app/models/items/date-range-item.mjs +6 -6
  193. package/esm2022/app/models/items/date-time-item.mjs +9 -9
  194. package/esm2022/app/models/items/date-time-range-item.mjs +6 -6
  195. package/esm2022/app/models/items/range-item.mjs +84 -84
  196. package/esm2022/app/models/items/select/base-select-item.mjs +39 -39
  197. package/esm2022/app/models/items/select/multiple-select-item.mjs +87 -87
  198. package/esm2022/app/models/items/select/simple-select-item.mjs +65 -65
  199. package/esm2022/app/models/items/select-item.mjs +11 -11
  200. package/esm2022/app/models/items/text-item.mjs +35 -35
  201. package/esm2022/app/models/items/week-item.mjs +94 -94
  202. package/esm2022/app/pipes/remove-isolate-value.pipe.mjs +20 -20
  203. package/esm2022/app/providers/filter-meta.mjs +9 -9
  204. package/esm2022/app/services/external-params/persistance-params-controller.service.mjs +61 -61
  205. package/esm2022/app/services/external-params/query-params-controller.service.mjs +65 -65
  206. package/esm2022/app/services/external-params/saved-filters-controller.service.mjs +166 -166
  207. package/esm2022/app/services/external-params-controller.service.mjs +184 -184
  208. package/esm2022/app/services/filter-overlay.service.mjs +129 -129
  209. package/esm2022/app/services/focus-controller.service.mjs +28 -28
  210. package/esm2022/app/services/items-store.service.mjs +346 -346
  211. package/esm2022/firestitch-filter.mjs +4 -4
  212. package/esm2022/public_api.mjs +35 -35
  213. package/fesm2022/firestitch-filter.mjs +4516 -4516
  214. package/index.d.ts +5 -5
  215. package/package.json +1 -1
  216. package/public_api.d.ts +40 -40
@@ -1,130 +1,130 @@
1
- import { Inject, Injectable, Injector } from '@angular/core';
2
- import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
3
- import { ComponentPortal, PortalInjector } from '@angular/cdk/portal';
4
- import { Subject } from 'rxjs';
5
- import { filter, takeUntil } from 'rxjs/operators';
6
- import { HtmlClassRenderer } from '@firestitch/html';
7
- import { FilterDrawerComponent } from '../components/filter-drawer/filter-drawer.component';
8
- import { FILTER_DRAWER_DATA } from '../injectors/filter-drawer-data';
9
- import { FILTER_DRAWER_OVERLAY } from '../injectors/filter-drawer-overlay';
10
- import { FS_FILTER_META } from '../providers/filter-meta';
11
- import { FocusControllerService } from './focus-controller.service';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/cdk/overlay";
14
- import * as i2 from "./focus-controller.service";
15
- import * as i3 from "@firestitch/html";
16
- export class FsFilterOverlayService {
17
- _filterMeta;
18
- _injector;
19
- _overlay;
20
- _focusController;
21
- _htmlClassRenderer;
22
- detach$ = new Subject();
23
- attach$ = new Subject();
24
- _clearFn;
25
- _doneFn;
26
- _destroy$ = new Subject();
27
- _overlayRef;
28
- constructor(_filterMeta, _injector, _overlay, _focusController, _htmlClassRenderer) {
29
- this._filterMeta = _filterMeta;
30
- this._injector = _injector;
31
- this._overlay = _overlay;
32
- this._focusController = _focusController;
33
- this._htmlClassRenderer = _htmlClassRenderer;
34
- this._openWhenChipClicked();
35
- }
36
- get isOpened() {
37
- return !!this._overlayRef;
38
- }
39
- setClearFn(fn) {
40
- this._clearFn = fn;
41
- }
42
- setDoneFn(fn) {
43
- this._doneFn = fn;
44
- }
45
- close() {
46
- if (this._overlayRef) {
47
- this._overlayRef.detach();
48
- this._overlayRef = null;
49
- this._removeFilterClass();
50
- }
51
- }
52
- open() {
53
- this._overlayRef = this._createOverlay();
54
- this._overlayRef.backdropClick()
55
- .pipe(takeUntil(this._destroy$))
56
- .subscribe(() => {
57
- this._overlayRef.detach();
58
- });
59
- this._overlayRef.detachments()
60
- .pipe(takeUntil(this._destroy$))
61
- .subscribe(() => {
62
- this.detach$.next();
63
- });
64
- this._overlayRef.attachments()
65
- .pipe(takeUntil(this._destroy$))
66
- .subscribe(() => {
67
- this.attach$.next();
68
- });
69
- this._addFilterClass();
70
- return this._openPortalPreview();
71
- }
72
- ngOnDestroy() {
73
- this._destroy$.next();
74
- this._destroy$.complete();
75
- }
76
- _createOverlay() {
77
- const overlayConfig = new OverlayConfig({
78
- hasBackdrop: true,
79
- backdropClass: 'fs-filter-backdrop',
80
- });
81
- return this._overlay.create(overlayConfig);
82
- }
83
- _openPortalPreview() {
84
- const data = {
85
- done: this._doneFn,
86
- clear: this._clearFn,
87
- };
88
- const injector = this._createInjector(this._injector, data, this._overlayRef);
89
- const containerPortal = new ComponentPortal(FilterDrawerComponent, undefined, injector);
90
- const containerRef = this._overlayRef.attach(containerPortal);
91
- return containerRef.instance;
92
- }
93
- _createInjector(parentInjector, data, overlayRef) {
94
- const injectionTokens = new WeakMap([
95
- [FILTER_DRAWER_DATA, data],
96
- [FILTER_DRAWER_OVERLAY, overlayRef],
97
- ]);
98
- return new PortalInjector(parentInjector, injectionTokens);
99
- }
100
- _removeFilterClass() {
101
- this._filterMeta.openedFilters--;
102
- if (this._filterMeta.openedFilters === 0) {
103
- this._htmlClassRenderer.removeClass('fs-filter-open');
104
- }
105
- }
106
- _addFilterClass() {
107
- this._filterMeta.openedFilters++;
108
- if (this._filterMeta.openedFilters === 1) {
109
- this._htmlClassRenderer.addClass('fs-filter-open');
110
- }
111
- }
112
- _openWhenChipClicked() {
113
- this._focusController.focusOn$
114
- .pipe(filter((v) => !!v), takeUntil(this._destroy$))
115
- .subscribe(() => {
116
- if (!this.isOpened) {
117
- this.open();
118
- }
119
- });
120
- }
121
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsFilterOverlayService, deps: [{ token: FS_FILTER_META }, { token: i0.Injector }, { token: i1.Overlay }, { token: i2.FocusControllerService }, { token: i3.HtmlClassRenderer }], target: i0.ɵɵFactoryTarget.Injectable });
122
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsFilterOverlayService });
123
- }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsFilterOverlayService, decorators: [{
125
- type: Injectable
126
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
127
- type: Inject,
128
- args: [FS_FILTER_META]
129
- }] }, { type: i0.Injector }, { type: i1.Overlay }, { type: i2.FocusControllerService }, { type: i3.HtmlClassRenderer }]; } });
1
+ import { Inject, Injectable, Injector } from '@angular/core';
2
+ import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
3
+ import { ComponentPortal, PortalInjector } from '@angular/cdk/portal';
4
+ import { Subject } from 'rxjs';
5
+ import { filter, takeUntil } from 'rxjs/operators';
6
+ import { HtmlClassRenderer } from '@firestitch/html';
7
+ import { FilterDrawerComponent } from '../components/filter-drawer/filter-drawer.component';
8
+ import { FILTER_DRAWER_DATA } from '../injectors/filter-drawer-data';
9
+ import { FILTER_DRAWER_OVERLAY } from '../injectors/filter-drawer-overlay';
10
+ import { FS_FILTER_META } from '../providers/filter-meta';
11
+ import { FocusControllerService } from './focus-controller.service';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@angular/cdk/overlay";
14
+ import * as i2 from "./focus-controller.service";
15
+ import * as i3 from "@firestitch/html";
16
+ export class FsFilterOverlayService {
17
+ _filterMeta;
18
+ _injector;
19
+ _overlay;
20
+ _focusController;
21
+ _htmlClassRenderer;
22
+ detach$ = new Subject();
23
+ attach$ = new Subject();
24
+ _clearFn;
25
+ _doneFn;
26
+ _destroy$ = new Subject();
27
+ _overlayRef;
28
+ constructor(_filterMeta, _injector, _overlay, _focusController, _htmlClassRenderer) {
29
+ this._filterMeta = _filterMeta;
30
+ this._injector = _injector;
31
+ this._overlay = _overlay;
32
+ this._focusController = _focusController;
33
+ this._htmlClassRenderer = _htmlClassRenderer;
34
+ this._openWhenChipClicked();
35
+ }
36
+ get isOpened() {
37
+ return !!this._overlayRef;
38
+ }
39
+ setClearFn(fn) {
40
+ this._clearFn = fn;
41
+ }
42
+ setDoneFn(fn) {
43
+ this._doneFn = fn;
44
+ }
45
+ close() {
46
+ if (this._overlayRef) {
47
+ this._overlayRef.detach();
48
+ this._overlayRef = null;
49
+ this._removeFilterClass();
50
+ }
51
+ }
52
+ open() {
53
+ this._overlayRef = this._createOverlay();
54
+ this._overlayRef.backdropClick()
55
+ .pipe(takeUntil(this._destroy$))
56
+ .subscribe(() => {
57
+ this._overlayRef.detach();
58
+ });
59
+ this._overlayRef.detachments()
60
+ .pipe(takeUntil(this._destroy$))
61
+ .subscribe(() => {
62
+ this.detach$.next();
63
+ });
64
+ this._overlayRef.attachments()
65
+ .pipe(takeUntil(this._destroy$))
66
+ .subscribe(() => {
67
+ this.attach$.next();
68
+ });
69
+ this._addFilterClass();
70
+ return this._openPortalPreview();
71
+ }
72
+ ngOnDestroy() {
73
+ this._destroy$.next();
74
+ this._destroy$.complete();
75
+ }
76
+ _createOverlay() {
77
+ const overlayConfig = new OverlayConfig({
78
+ hasBackdrop: true,
79
+ backdropClass: 'fs-filter-backdrop',
80
+ });
81
+ return this._overlay.create(overlayConfig);
82
+ }
83
+ _openPortalPreview() {
84
+ const data = {
85
+ done: this._doneFn,
86
+ clear: this._clearFn,
87
+ };
88
+ const injector = this._createInjector(this._injector, data, this._overlayRef);
89
+ const containerPortal = new ComponentPortal(FilterDrawerComponent, undefined, injector);
90
+ const containerRef = this._overlayRef.attach(containerPortal);
91
+ return containerRef.instance;
92
+ }
93
+ _createInjector(parentInjector, data, overlayRef) {
94
+ const injectionTokens = new WeakMap([
95
+ [FILTER_DRAWER_DATA, data],
96
+ [FILTER_DRAWER_OVERLAY, overlayRef],
97
+ ]);
98
+ return new PortalInjector(parentInjector, injectionTokens);
99
+ }
100
+ _removeFilterClass() {
101
+ this._filterMeta.openedFilters--;
102
+ if (this._filterMeta.openedFilters === 0) {
103
+ this._htmlClassRenderer.removeClass('fs-filter-open');
104
+ }
105
+ }
106
+ _addFilterClass() {
107
+ this._filterMeta.openedFilters++;
108
+ if (this._filterMeta.openedFilters === 1) {
109
+ this._htmlClassRenderer.addClass('fs-filter-open');
110
+ }
111
+ }
112
+ _openWhenChipClicked() {
113
+ this._focusController.focusOn$
114
+ .pipe(filter((v) => !!v), takeUntil(this._destroy$))
115
+ .subscribe(() => {
116
+ if (!this.isOpened) {
117
+ this.open();
118
+ }
119
+ });
120
+ }
121
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsFilterOverlayService, deps: [{ token: FS_FILTER_META }, { token: i0.Injector }, { token: i1.Overlay }, { token: i2.FocusControllerService }, { token: i3.HtmlClassRenderer }], target: i0.ɵɵFactoryTarget.Injectable });
122
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsFilterOverlayService });
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsFilterOverlayService, decorators: [{
125
+ type: Injectable
126
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
127
+ type: Inject,
128
+ args: [FS_FILTER_META]
129
+ }] }, { type: i0.Injector }, { type: i1.Overlay }, { type: i2.FocusControllerService }, { type: i3.HtmlClassRenderer }]; } });
130
130
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW92ZXJsYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvZmlsdGVyLW92ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQUlwRSxNQUFNLE9BQU8sc0JBQXNCO0lBWUM7SUFDeEI7SUFDQTtJQUNBO0lBQ0E7SUFkSCxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUN4QixPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUV2QixRQUFRLENBQVc7SUFDbkIsT0FBTyxDQUFXO0lBRWxCLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFCLFdBQVcsQ0FBYTtJQUVoQyxZ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Q0FBQyxRQUFRLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNiO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3dHQXhJVSxzQkFBc0Isa0JBWXZCLGNBQWM7NEdBWmIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVOzswQkFhTixNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEh0bWxDbGFzc1JlbmRlcmVyIH0gZnJvbSAnQGZpcmVzdGl0Y2gvaHRtbCc7XG5cbmltcG9ydCB7IEZpbHRlckRyYXdlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZmlsdGVyLWRyYXdlci9maWx0ZXItZHJhd2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGSUxURVJfRFJBV0VSX0RBVEEgfSBmcm9tICcuLi9pbmplY3RvcnMvZmlsdGVyLWRyYXdlci1kYXRhJztcbmltcG9ydCB7IEZJTFRFUl9EUkFXRVJfT1ZFUkxBWSB9IGZyb20gJy4uL2luamVjdG9ycy9maWx0ZXItZHJhd2VyLW92ZXJsYXknO1xuaW1wb3J0IHsgRlNfRklMVEVSX01FVEEsIEZzRmlsdGVyTWV0YSB9IGZyb20gJy4uL3Byb3ZpZGVycy9maWx0ZXItbWV0YSc7XG5cbmltcG9ydCB7IEZvY3VzQ29udHJvbGxlclNlcnZpY2UgfSBmcm9tICcuL2ZvY3VzLWNvbnRyb2xsZXIuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZzRmlsdGVyT3ZlcmxheVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBkZXRhY2gkID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIGF0dGFjaCQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX2NsZWFyRm46IEZ1bmN0aW9uO1xuICBwcml2YXRlIF9kb25lRm46IEZ1bmN0aW9uO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEZTX0ZJTFRFUl9NRVRBKSBwcml2YXRlIF9maWx0ZXJNZXRhOiBGc0ZpbHRlck1ldGEsXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBfZm9jdXNDb250cm9sbGVyOiBGb2N1c0NvbnRyb2xsZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2h0bWxDbGFzc1JlbmRlcmVyOiBIdG1sQ2xhc3NSZW5kZXJlcixcbiAgKSB7XG4gICAgdGhpcy5fb3BlbldoZW5DaGlwQ2xpY2tlZCgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc09wZW5lZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLl9vdmVybGF5UmVmO1xuICB9XG5cbiAgcHVibGljIHNldENsZWFyRm4oZm46IEZ1bmN0aW9uKSB7XG4gICAgdGhpcy5fY2xlYXJGbiA9IGZuO1xuICB9XG5cbiAgcHVibGljIHNldERvbmVGbihmbjogRnVuY3Rpb24pIHtcbiAgICB0aGlzLl9kb25lRm4gPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpIHtcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSBudWxsO1xuXG4gICAgICB0aGlzLl9yZW1vdmVGaWx0ZXJDbGFzcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9jcmVhdGVPdmVybGF5KCk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2htZW50cygpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmRldGFjaCQubmV4dCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaG1lbnRzKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYXR0YWNoJC5uZXh0KCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX2FkZEZpbHRlckNsYXNzKCk7XG5cbiAgICByZXR1cm4gdGhpcy5fb3BlblBvcnRhbFByZXZpZXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXkoKSB7XG4gICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogJ2ZzLWZpbHRlci1iYWNrZHJvcCcsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIF9vcGVuUG9ydGFsUHJldmlldygpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgZG9uZTogdGhpcy5fZG9uZUZuLFxuICAgICAgY2xlYXI6IHRoaXMuX2NsZWFyRm4sXG4gICAgfTtcbiAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuX2NyZWF0ZUluamVjdG9yKHRoaXMuX2luamVjdG9yLCBkYXRhLCB0aGlzLl9vdmVybGF5UmVmKTtcbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKEZpbHRlckRyYXdlckNvbXBvbmVudCwgdW5kZWZpbmVkLCBpbmplY3Rvcik7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2g8RmlsdGVyRHJhd2VyQ29tcG9uZW50Pihjb250YWluZXJQb3J0YWwpO1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUluamVjdG9yKHBhcmVudEluamVjdG9yLCBkYXRhLCBvdmVybGF5UmVmKSB7XG4gICAgY29uc3QgaW5qZWN0aW9uVG9rZW5zID0gbmV3IFdlYWtNYXA8YW55LCBhbnk+KFtcbiAgICAgIFtGSUxURVJfRFJBV0VSX0RBVEEsIGRhdGFdLFxuICAgICAgW0ZJTFRFUl9EUkFXRVJfT1ZFUkxBWSwgb3ZlcmxheVJlZl0sXG4gICAgXSk7XG5cbiAgICByZXR1cm4gbmV3IFBvcnRhbEluamVjdG9yKHBhcmVudEluamVjdG9yLCBpbmplY3Rpb25Ub2tlbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlRmlsdGVyQ2xhc3MoKSB7XG4gICAgdGhpcy5fZmlsdGVyTWV0YS5vcGVuZWRGaWx0ZXJzLS07XG5cbiAgICBpZiAodGhpcy5fZmlsdGVyTWV0YS5vcGVuZWRGaWx0ZXJzID09PSAwKSB7XG4gICAgICB0aGlzLl9odG1sQ2xhc3NSZW5kZXJlci5yZW1vdmVDbGFzcygnZnMtZmlsdGVyLW9wZW4nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9hZGRGaWx0ZXJDbGFzcygpIHtcbiAgICB0aGlzLl9maWx0ZXJNZXRhLm9wZW5lZEZpbHRlcnMrKztcblxuICAgIGlmICh0aGlzLl9maWx0ZXJNZXRhLm9wZW5lZEZpbHRlcnMgPT09IDEpIHtcbiAgICAgIHRoaXMuX2h0bWxDbGFzc1JlbmRlcmVyLmFkZENsYXNzKCdmcy1maWx0ZXItb3BlbicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX29wZW5XaGVuQ2hpcENsaWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNDb250cm9sbGVyLmZvY3VzT24kXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCh2KSA9PiAhIXYpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5pc09wZW5lZCkge1xuICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,29 +1,29 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { filter, tap } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export class FocusControllerService {
6
- _focusOn = new BehaviorSubject(null);
7
- constructor() { }
8
- get focusOn$() {
9
- return this._focusOn.asObservable();
10
- }
11
- click(item, type = null) {
12
- this._focusOn.next({ item, type });
13
- }
14
- listenFocusFor$(targetItem, targetType = null) {
15
- return this._focusOn
16
- .pipe(filter((event) => !!event), filter(({ item, type }) => {
17
- return targetItem === item && targetType === type;
18
- }), tap(() => this.clearFocus()));
19
- }
20
- clearFocus() {
21
- this._focusOn.next(null);
22
- }
23
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusControllerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
24
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusControllerService });
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusControllerService, decorators: [{
27
- type: Injectable
28
- }], ctorParameters: function () { return []; } });
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { filter, tap } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class FocusControllerService {
6
+ _focusOn = new BehaviorSubject(null);
7
+ constructor() { }
8
+ get focusOn$() {
9
+ return this._focusOn.asObservable();
10
+ }
11
+ click(item, type = null) {
12
+ this._focusOn.next({ item, type });
13
+ }
14
+ listenFocusFor$(targetItem, targetType = null) {
15
+ return this._focusOn
16
+ .pipe(filter((event) => !!event), filter(({ item, type }) => {
17
+ return targetItem === item && targetType === type;
18
+ }), tap(() => this.clearFocus()));
19
+ }
20
+ clearFocus() {
21
+ this._focusOn.next(null);
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusControllerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
24
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusControllerService });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FocusControllerService, decorators: [{
27
+ type: Injectable
28
+ }], ctorParameters: function () { return []; } });
29
29
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtY29udHJvbGxlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlcy9mb2N1cy1jb250cm9sbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTdDLE1BQU0sT0FBTyxzQkFBc0I7SUFFekIsUUFBUSxHQUFHLElBQUksZUFBZSxDQUE4QyxJQUFJLENBQUMsQ0FBQztJQUUxRixnQkFBZSxDQUFDO0lBRWhCLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFtQixFQUFFLE9BQXNCLElBQUk7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRU0sZUFBZSxDQUFDLFVBQXlCLEVBQUUsYUFBNEIsSUFBSTtRQUNoRixPQUFPLElBQUksQ0FBQyxRQUFRO2FBQ2pCLElBQUksQ0FDSCxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDMUIsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUN4QixPQUFPLFVBQVUsS0FBSyxJQUFJLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQztRQUNwRCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQzdCLENBQUE7SUFDTCxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7d0dBM0JVLHNCQUFzQjs0R0FBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9jdXNDb250cm9sbGVyU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBfZm9jdXNPbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBpdGVtOiBCYXNlSXRlbTxhbnk+LCB0eXBlOiAnZnJvbScgfCAndG8nfT4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBnZXQgZm9jdXNPbiQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzT24uYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgY2xpY2soaXRlbTogQmFzZUl0ZW08YW55PiwgdHlwZTogJ2Zyb20nIHwgJ3RvJyA9IG51bGwpIHtcbiAgICB0aGlzLl9mb2N1c09uLm5leHQoeyBpdGVtLCB0eXBlIH0pXG4gIH1cblxuICBwdWJsaWMgbGlzdGVuRm9jdXNGb3IkKHRhcmdldEl0ZW06IEJhc2VJdGVtPGFueT4sIHRhcmdldFR5cGU6ICdmcm9tJyB8ICd0bycgPSBudWxsKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzT25cbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiAhIWV2ZW50KSxcbiAgICAgICAgZmlsdGVyKCh7IGl0ZW0sIHR5cGUgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiB0YXJnZXRJdGVtID09PSBpdGVtICYmIHRhcmdldFR5cGUgPT09IHR5cGU7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5jbGVhckZvY3VzKCkpLFxuICAgICAgKVxuICB9XG5cbiAgcHVibGljIGNsZWFyRm9jdXMoKSB7XG4gICAgdGhpcy5fZm9jdXNPbi5uZXh0KG51bGwpO1xuICB9XG59XG4iXX0=