@firestitch/filter 12.11.0 → 12.11.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 (207) hide show
  1. package/app/classes/actions-controller.d.ts +38 -38
  2. package/app/components/action-button/action-button.component.d.ts +7 -7
  3. package/app/components/action-kebab-actions/action-kebab-actions.component.d.ts +7 -7
  4. package/app/components/actions/actions.component.d.ts +8 -8
  5. package/app/components/filter/filter.component.d.ts +195 -195
  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 +10 -10
  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 +13 -13
  12. package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +20 -20
  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-edit/saved-filter-edit.component.d.ts +18 -18
  28. package/app/components/saved-filters-menu/saved-filters-menu.component.d.ts +23 -23
  29. package/app/consts/query-param-delimiter.d.ts +1 -1
  30. package/app/directives/focus-to-item/focus-to-item.directive.d.ts +27 -27
  31. package/app/directives/status-bar/status-bar.directive.d.ts +5 -5
  32. package/app/enums/action-mode.enum.d.ts +5 -5
  33. package/app/enums/action-type.enum.d.ts +7 -7
  34. package/app/enums/index.d.ts +5 -5
  35. package/app/enums/item-date-mode.enum.d.ts +5 -5
  36. package/app/enums/item-type.enum.d.ts +15 -15
  37. package/app/enums/picker-view-type.enum.d.ts +7 -7
  38. package/app/fs-filter.module.d.ts +64 -65
  39. package/app/helpers/build-query-params.d.ts +3 -3
  40. package/app/helpers/compare.d.ts +2 -2
  41. package/app/helpers/create-filter-item.d.ts +13 -13
  42. package/app/helpers/find-value.d.ts +1 -1
  43. package/app/helpers/get-range-name.d.ts +1 -1
  44. package/app/helpers/parse-date.d.ts +1 -1
  45. package/app/helpers/parse-item-value-from-stored.d.ts +1 -1
  46. package/app/helpers/query-param-transformers.d.ts +2 -2
  47. package/app/helpers/restore-items.d.ts +12 -12
  48. package/app/helpers/try-convert-to-number.d.ts +1 -1
  49. package/app/injectors/filter-config.d.ts +2 -2
  50. package/app/injectors/filter-drawer-data.d.ts +2 -2
  51. package/app/injectors/filter-drawer-overlay.d.ts +2 -2
  52. package/app/interfaces/action.interface.d.ts +70 -70
  53. package/app/interfaces/config.interface.d.ts +61 -61
  54. package/app/interfaces/external-params.interface.d.ts +3 -3
  55. package/app/interfaces/filter.interface.d.ts +4 -4
  56. package/app/interfaces/items/autocomplete-chips.interface.d.ts +12 -12
  57. package/app/interfaces/items/autocomplete.interface.d.ts +6 -6
  58. package/app/interfaces/items/base.interface.d.ts +27 -27
  59. package/app/interfaces/items/checkbox.interface.d.ts +7 -7
  60. package/app/interfaces/items/chips.interface.d.ts +6 -6
  61. package/app/interfaces/items/date-range.interface.d.ts +8 -8
  62. package/app/interfaces/items/date.interface.d.ts +7 -7
  63. package/app/interfaces/items/range.interface.d.ts +13 -13
  64. package/app/interfaces/items/select.interface.d.ts +20 -20
  65. package/app/interfaces/items/text.interface.d.ts +9 -9
  66. package/app/interfaces/items/week.interface.d.ts +7 -7
  67. package/app/interfaces/saved-filters.interface.d.ts +18 -18
  68. package/app/interfaces/update-filter-item.interface.d.ts +4 -4
  69. package/app/models/action-menu-item.model.d.ts +23 -23
  70. package/app/models/action.model.d.ts +46 -46
  71. package/app/models/filter-config.d.ts +30 -30
  72. package/app/models/items/autocomplete/base-autocomplete-item.d.ts +12 -12
  73. package/app/models/items/autocomplete-chips-item.d.ts +19 -19
  74. package/app/models/items/autocomplete-item.d.ts +10 -10
  75. package/app/models/items/base-item.d.ts +75 -75
  76. package/app/models/items/checkbox-item.d.ts +16 -16
  77. package/app/models/items/chips-item.d.ts +17 -17
  78. package/app/models/items/date/base-date-item.d.ts +14 -14
  79. package/app/models/items/date-item.d.ts +7 -7
  80. package/app/models/items/date-range/base-date-range-item.d.ts +21 -21
  81. package/app/models/items/date-range-item.d.ts +5 -5
  82. package/app/models/items/date-time-item.d.ts +6 -6
  83. package/app/models/items/date-time-range-item.d.ts +5 -5
  84. package/app/models/items/range-item.d.ts +22 -22
  85. package/app/models/items/select/base-select-item.d.ts +13 -13
  86. package/app/models/items/select/multiple-select-item.d.ts +13 -13
  87. package/app/models/items/select/simple-select-item.d.ts +13 -13
  88. package/app/models/items/select-item.d.ts +7 -7
  89. package/app/models/items/text-item.d.ts +14 -14
  90. package/app/models/items/week-item.d.ts +17 -17
  91. package/app/pipes/remove-isolate-value.pipe.d.ts +8 -8
  92. package/app/providers/filter-meta.d.ts +5 -5
  93. package/app/services/external-params/persistance-params-controller.service.d.ts +22 -22
  94. package/app/services/external-params/query-params-controller.service.d.ts +24 -24
  95. package/app/services/external-params/saved-filters-controller.service.d.ts +40 -40
  96. package/app/services/external-params-controller.service.d.ts +42 -42
  97. package/app/services/filter-overlay.service.d.ts +34 -34
  98. package/app/services/focus-controller.service.d.ts +18 -18
  99. package/app/services/items-store.service.d.ts +65 -65
  100. package/bundles/firestitch-filter.umd.js +5533 -5535
  101. package/bundles/firestitch-filter.umd.js.map +1 -1
  102. package/esm2015/app/classes/actions-controller.js +122 -122
  103. package/esm2015/app/components/action-button/action-button.component.js +23 -23
  104. package/esm2015/app/components/action-kebab-actions/action-kebab-actions.component.js +21 -21
  105. package/esm2015/app/components/actions/actions.component.js +30 -30
  106. package/esm2015/app/components/filter/filter.component.js +628 -626
  107. package/esm2015/app/components/filter-chip/filter-chip.component.js +90 -90
  108. package/esm2015/app/components/filter-chip-content/filter-chip-content.component.js +83 -83
  109. package/esm2015/app/components/filter-chips/filter-chips.component.js +26 -26
  110. package/esm2015/app/components/filter-drawer/filter-drawer.component.js +75 -75
  111. package/esm2015/app/components/filter-drawer-actions/filter-drawer-actions.component.js +42 -42
  112. package/esm2015/app/components/filters-item/autocomplete/autocomplete.component.js +29 -29
  113. package/esm2015/app/components/filters-item/autocompletechips/autocompletechips.component.js +51 -51
  114. package/esm2015/app/components/filters-item/base-item/base-item.component.js +68 -68
  115. package/esm2015/app/components/filters-item/checkbox/checkbox.component.js +24 -24
  116. package/esm2015/app/components/filters-item/chips/chips.component.js +31 -31
  117. package/esm2015/app/components/filters-item/date/date.component.js +45 -45
  118. package/esm2015/app/components/filters-item/date-range/date-range.component.js +36 -36
  119. package/esm2015/app/components/filters-item/filter-item.component.js +83 -83
  120. package/esm2015/app/components/filters-item/range/range.component.js +48 -49
  121. package/esm2015/app/components/filters-item/select/backdrop/backdrop.component.js +16 -16
  122. package/esm2015/app/components/filters-item/select/groups/groups.component.js +32 -32
  123. package/esm2015/app/components/filters-item/select/multiple/multiple.component.js +60 -60
  124. package/esm2015/app/components/filters-item/select/select.component.js +54 -54
  125. package/esm2015/app/components/filters-item/select/simple/simple.component.js +46 -46
  126. package/esm2015/app/components/filters-item/text/text.component.js +53 -53
  127. package/esm2015/app/components/filters-item/week/week.component.js +27 -27
  128. package/esm2015/app/components/saved-filter-edit/saved-filter-edit.component.js +54 -54
  129. package/esm2015/app/components/saved-filters-menu/saved-filters-menu.component.js +57 -57
  130. package/esm2015/app/consts/query-param-delimiter.js +1 -1
  131. package/esm2015/app/directives/focus-to-item/focus-to-item.directive.js +129 -129
  132. package/esm2015/app/directives/status-bar/status-bar.directive.js +12 -12
  133. package/esm2015/app/enums/action-mode.enum.js +6 -6
  134. package/esm2015/app/enums/action-type.enum.js +8 -8
  135. package/esm2015/app/enums/index.js +5 -5
  136. package/esm2015/app/enums/item-date-mode.enum.js +6 -6
  137. package/esm2015/app/enums/item-type.enum.js +16 -16
  138. package/esm2015/app/enums/picker-view-type.enum.js +8 -8
  139. package/esm2015/app/fs-filter.module.js +235 -239
  140. package/esm2015/app/helpers/build-query-params.js +31 -31
  141. package/esm2015/app/helpers/compare.js +37 -37
  142. package/esm2015/app/helpers/create-filter-item.js +54 -54
  143. package/esm2015/app/helpers/find-value.js +12 -12
  144. package/esm2015/app/helpers/get-range-name.js +8 -8
  145. package/esm2015/app/helpers/parse-date.js +7 -7
  146. package/esm2015/app/helpers/parse-item-value-from-stored.js +81 -81
  147. package/esm2015/app/helpers/query-param-transformers.js +8 -8
  148. package/esm2015/app/helpers/restore-items.js +48 -48
  149. package/esm2015/app/helpers/try-convert-to-number.js +5 -5
  150. package/esm2015/app/injectors/filter-config.js +2 -2
  151. package/esm2015/app/injectors/filter-drawer-data.js +2 -2
  152. package/esm2015/app/injectors/filter-drawer-overlay.js +2 -2
  153. package/esm2015/app/interfaces/action.interface.js +1 -1
  154. package/esm2015/app/interfaces/config.interface.js +1 -1
  155. package/esm2015/app/interfaces/external-params.interface.js +1 -1
  156. package/esm2015/app/interfaces/filter.interface.js +1 -1
  157. package/esm2015/app/interfaces/items/autocomplete-chips.interface.js +1 -1
  158. package/esm2015/app/interfaces/items/autocomplete.interface.js +1 -1
  159. package/esm2015/app/interfaces/items/base.interface.js +1 -1
  160. package/esm2015/app/interfaces/items/checkbox.interface.js +1 -1
  161. package/esm2015/app/interfaces/items/chips.interface.js +1 -1
  162. package/esm2015/app/interfaces/items/date-range.interface.js +1 -1
  163. package/esm2015/app/interfaces/items/date.interface.js +1 -1
  164. package/esm2015/app/interfaces/items/range.interface.js +1 -1
  165. package/esm2015/app/interfaces/items/select.interface.js +1 -1
  166. package/esm2015/app/interfaces/items/text.interface.js +1 -1
  167. package/esm2015/app/interfaces/items/week.interface.js +1 -1
  168. package/esm2015/app/interfaces/saved-filters.interface.js +1 -1
  169. package/esm2015/app/interfaces/update-filter-item.interface.js +1 -1
  170. package/esm2015/app/models/action-menu-item.model.js +66 -66
  171. package/esm2015/app/models/action.model.js +103 -103
  172. package/esm2015/app/models/filter-config.js +65 -65
  173. package/esm2015/app/models/items/autocomplete/base-autocomplete-item.js +13 -13
  174. package/esm2015/app/models/items/autocomplete-chips-item.js +61 -61
  175. package/esm2015/app/models/items/autocomplete-item.js +30 -30
  176. package/esm2015/app/models/items/base-item.js +233 -233
  177. package/esm2015/app/models/items/checkbox-item.js +47 -47
  178. package/esm2015/app/models/items/chips-item.js +83 -83
  179. package/esm2015/app/models/items/date/base-date-item.js +47 -47
  180. package/esm2015/app/models/items/date-item.js +18 -18
  181. package/esm2015/app/models/items/date-range/base-date-range-item.js +136 -136
  182. package/esm2015/app/models/items/date-range-item.js +6 -6
  183. package/esm2015/app/models/items/date-time-item.js +9 -9
  184. package/esm2015/app/models/items/date-time-range-item.js +6 -6
  185. package/esm2015/app/models/items/range-item.js +88 -88
  186. package/esm2015/app/models/items/select/base-select-item.js +33 -33
  187. package/esm2015/app/models/items/select/multiple-select-item.js +90 -90
  188. package/esm2015/app/models/items/select/simple-select-item.js +67 -67
  189. package/esm2015/app/models/items/select-item.js +12 -12
  190. package/esm2015/app/models/items/text-item.js +29 -29
  191. package/esm2015/app/models/items/week-item.js +98 -98
  192. package/esm2015/app/pipes/remove-isolate-value.pipe.js +22 -22
  193. package/esm2015/app/providers/filter-meta.js +9 -9
  194. package/esm2015/app/services/external-params/persistance-params-controller.service.js +57 -57
  195. package/esm2015/app/services/external-params/query-params-controller.service.js +66 -66
  196. package/esm2015/app/services/external-params/saved-filters-controller.service.js +164 -164
  197. package/esm2015/app/services/external-params-controller.service.js +162 -162
  198. package/esm2015/app/services/filter-overlay.service.js +115 -115
  199. package/esm2015/app/services/focus-controller.service.js +29 -29
  200. package/esm2015/app/services/items-store.service.js +340 -340
  201. package/esm2015/firestitch-filter.js +4 -4
  202. package/esm2015/public_api.js +36 -36
  203. package/fesm2015/firestitch-filter.js +4372 -4375
  204. package/fesm2015/firestitch-filter.js.map +1 -1
  205. package/firestitch-filter.d.ts +5 -5
  206. package/package.json +1 -1
  207. package/public_api.d.ts +40 -40
@@ -1,76 +1,76 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, Inject, HostListener } from '@angular/core';
2
- import { OverlayRef } from '@angular/cdk/overlay';
3
- import { FILTER_DRAWER_DATA } from '../../injectors/filter-drawer-data';
4
- import { FILTER_DRAWER_OVERLAY } from '../../injectors/filter-drawer-overlay';
5
- import { FsFilterItemsStore } from '../../services/items-store.service';
6
- import { ExternalParamsController } from '../../services/external-params-controller.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../services/external-params-controller.service";
9
- import * as i2 from "../../services/items-store.service";
10
- import * as i3 from "@angular/material/icon";
11
- import * as i4 from "../filters-item/filter-item.component";
12
- import * as i5 from "../filter-drawer-actions/filter-drawer-actions.component";
13
- import * as i6 from "@firestitch/skeleton";
14
- import * as i7 from "@angular/common";
15
- import * as i8 from "@angular/cdk/overlay";
16
- export class FilterDrawerComponent {
17
- constructor(externalParams, _cd, _itemsStore, overlayRef, data) {
18
- this.externalParams = externalParams;
19
- this._cd = _cd;
20
- this._itemsStore = _itemsStore;
21
- this.overlayRef = overlayRef;
22
- this.data = data;
23
- this.inline = false;
24
- this.windowDesktop = false;
25
- this._itemsStore.prepareItems();
26
- this._clear = data.clear;
27
- this._done = data.done;
28
- this.updateWindowWidth();
29
- }
30
- updateWindowWidth() {
31
- this.windowDesktop = window.innerWidth > 1200;
32
- }
33
- get items$() {
34
- return this._itemsStore.visibleItems$;
35
- }
36
- get sortItem() {
37
- return this._itemsStore.sortByItem;
38
- }
39
- get sortDirectionItem() {
40
- return this._itemsStore.sortDirectionItem;
41
- }
42
- clear() {
43
- this._clear();
44
- // this.overlayRef.detach();
45
- }
46
- done() {
47
- this._done();
48
- this.overlayRef.detach();
49
- }
50
- backdropClick() {
51
- this.done();
52
- }
53
- }
54
- FilterDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterDrawerComponent, deps: [{ token: i1.ExternalParamsController }, { token: i0.ChangeDetectorRef }, { token: i2.FsFilterItemsStore }, { token: FILTER_DRAWER_OVERLAY }, { token: FILTER_DRAWER_DATA }], target: i0.ɵɵFactoryTarget.Component });
55
- FilterDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FilterDrawerComponent, selector: "ng-component", inputs: { inline: "inline" }, host: { listeners: { "window:resize": "updateWindowWidth()" } }, ngImport: i0, template: "<div class=\"filters\">\n <div class=\"filters-wrap\">\n\n <div class=\"filter-by\">\n <mat-icon>tune</mat-icon>\n <span class=\"text\">Filters</span>\n </div>\n\n <div class=\"overflow-shadow filter-items\">\n <div class=\"overflow-shadow-content\">\n <ng-container *fsSkeleton=\"(externalParams.pending$ | async) !== true\">\n <filter-item *ngFor=\"let filterItem of items$ | async\"\n class=\"filter-group\"\n [item]=\"filterItem\">\n </filter-item>\n\n <ng-container *ngIf=\"sortItem && sortItem.values && sortItem.values.length > 0\">\n <filter-item class=\"filter-group sort\"\n [item]=\"sortItem\">\n </filter-item>\n <filter-item class=\"filter-group sort\"\n [item]=\"sortDirectionItem\">\n </filter-item>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <fs-filter-drawer-actions class=\"filter-actions\"\n *ngIf=\"(externalParams.pending$ | async) !== true\"\n (clear)=\"clear()\"\n (done)=\"done()\">\n </fs-filter-drawer-actions>\n </div>\n</div>\n<div class=\"backdrop\" *ngIf=\"!windowDesktop\" (click)=\"backdropClick()\"></div>\n", styles: [":host ::ng-deep mat-form-field{width:100%}.filter-by{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 25px}.filter-by mat-icon{margin-right:8px}.filter-by .text{font-weight:400;font-size:19px}.filter-actions{display:block;box-sizing:border-box;padding:13px}.filter-actions button{margin-right:6px}.filter-actions button:last-child{margin-right:0}.filters{position:fixed;display:block;top:0;right:0;z-index:1002;bottom:0}.filters .filters-wrap{background:#fff;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;width:85vw;max-width:350px;display:flex;flex-direction:column;height:100%;padding-top:calc(env(safe-area-inset-top))}.filters .filters-wrap .filter-items{overflow-y:auto}.filters .filters-wrap .filter-items .overflow-shadow-content{padding:0 25px;box-sizing:border-box}.filters .filter-group{margin:10px 0 0}.filters .filter-group:first-child{margin:0}.filters .filter label{white-space:nowrap;color:#0000008a}.filters .filter .interface.interface-range input,.filters .filter .interface.interface-range .mat-input-wrapper{text-align:center}.filters .filter .interface.interface-range{text-align:center}.filters .filter .interface.interface-datetime fs-datetime.has-time .md-input{width:100%}.filters .filter .interface fs-datetime-range input{text-align:center}.filters .filter .filter-label{width:1%;white-space:nowrap;vertical-align:middle;padding-right:15px}.filters md-autocomplete-container md-input-container{margin:0}.filters .isolate{margin-top:-12px}.filters .isolate .interface{line-height:20px;padding-bottom:1.25em}.filters .isolate md-checkbox{margin:0 0 0 2px}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:900;outline:none}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.FilterItemComponent, selector: "filter-item", inputs: ["item"] }, { type: i5.FsFilterDrawerActionsComponent, selector: "fs-filter-drawer-actions", outputs: ["clear", "done"] }], directives: [{ type: i6.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterDrawerComponent, decorators: [{
57
- type: Component,
58
- args: [{
59
- templateUrl: './filter-drawer.component.html',
60
- styleUrls: ['filter-drawer.component.scss'],
61
- // Commented out because filter items are not updating with a delayed observable. Need to figure this out.
62
- changeDetection: ChangeDetectionStrategy.OnPush,
63
- }]
64
- }], ctorParameters: function () { return [{ type: i1.ExternalParamsController }, { type: i0.ChangeDetectorRef }, { type: i2.FsFilterItemsStore }, { type: i8.OverlayRef, decorators: [{
65
- type: Inject,
66
- args: [FILTER_DRAWER_OVERLAY]
67
- }] }, { type: undefined, decorators: [{
68
- type: Inject,
69
- args: [FILTER_DRAWER_DATA]
70
- }] }]; }, propDecorators: { updateWindowWidth: [{
71
- type: HostListener,
72
- args: ['window:resize']
73
- }], inline: [{
74
- type: Input
75
- }] } });
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, Inject, HostListener } from '@angular/core';
2
+ import { OverlayRef } from '@angular/cdk/overlay';
3
+ import { FILTER_DRAWER_DATA } from '../../injectors/filter-drawer-data';
4
+ import { FILTER_DRAWER_OVERLAY } from '../../injectors/filter-drawer-overlay';
5
+ import { FsFilterItemsStore } from '../../services/items-store.service';
6
+ import { ExternalParamsController } from '../../services/external-params-controller.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../services/external-params-controller.service";
9
+ import * as i2 from "../../services/items-store.service";
10
+ import * as i3 from "@angular/material/icon";
11
+ import * as i4 from "../filters-item/filter-item.component";
12
+ import * as i5 from "../filter-drawer-actions/filter-drawer-actions.component";
13
+ import * as i6 from "@firestitch/skeleton";
14
+ import * as i7 from "@angular/common";
15
+ import * as i8 from "@angular/cdk/overlay";
16
+ export class FilterDrawerComponent {
17
+ constructor(externalParams, _cd, _itemsStore, overlayRef, data) {
18
+ this.externalParams = externalParams;
19
+ this._cd = _cd;
20
+ this._itemsStore = _itemsStore;
21
+ this.overlayRef = overlayRef;
22
+ this.data = data;
23
+ this.inline = false;
24
+ this.windowDesktop = false;
25
+ this._itemsStore.prepareItems();
26
+ this._clear = data.clear;
27
+ this._done = data.done;
28
+ this.updateWindowWidth();
29
+ }
30
+ updateWindowWidth() {
31
+ this.windowDesktop = window.innerWidth > 1200;
32
+ }
33
+ get items$() {
34
+ return this._itemsStore.visibleItems$;
35
+ }
36
+ get sortItem() {
37
+ return this._itemsStore.sortByItem;
38
+ }
39
+ get sortDirectionItem() {
40
+ return this._itemsStore.sortDirectionItem;
41
+ }
42
+ clear() {
43
+ this._clear();
44
+ // this.overlayRef.detach();
45
+ }
46
+ done() {
47
+ this._done();
48
+ this.overlayRef.detach();
49
+ }
50
+ backdropClick() {
51
+ this.done();
52
+ }
53
+ }
54
+ FilterDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterDrawerComponent, deps: [{ token: i1.ExternalParamsController }, { token: i0.ChangeDetectorRef }, { token: i2.FsFilterItemsStore }, { token: FILTER_DRAWER_OVERLAY }, { token: FILTER_DRAWER_DATA }], target: i0.ɵɵFactoryTarget.Component });
55
+ FilterDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FilterDrawerComponent, selector: "ng-component", inputs: { inline: "inline" }, host: { listeners: { "window:resize": "updateWindowWidth()" } }, ngImport: i0, template: "<div class=\"filters\">\n <div class=\"filters-wrap\">\n\n <div class=\"filter-by\">\n <mat-icon>tune</mat-icon>\n <span class=\"text\">Filters</span>\n </div>\n\n <div class=\"overflow-shadow filter-items\">\n <div class=\"overflow-shadow-content\">\n <ng-container *fsSkeleton=\"(externalParams.pending$ | async) !== true\">\n <filter-item *ngFor=\"let filterItem of items$ | async\"\n class=\"filter-group\"\n [item]=\"filterItem\">\n </filter-item>\n\n <ng-container *ngIf=\"sortItem && sortItem.values && sortItem.values.length > 0\">\n <filter-item class=\"filter-group sort\"\n [item]=\"sortItem\">\n </filter-item>\n <filter-item class=\"filter-group sort\"\n [item]=\"sortDirectionItem\">\n </filter-item>\n </ng-container>\n </ng-container>\n </div>\n </div>\n\n <fs-filter-drawer-actions class=\"filter-actions\"\n *ngIf=\"(externalParams.pending$ | async) !== true\"\n (clear)=\"clear()\"\n (done)=\"done()\">\n </fs-filter-drawer-actions>\n </div>\n</div>\n<div class=\"backdrop\" *ngIf=\"!windowDesktop\" (click)=\"backdropClick()\"></div>\n", styles: [":host ::ng-deep mat-form-field{width:100%}.filter-by{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:20px 25px}.filter-by mat-icon{margin-right:8px}.filter-by .text{font-weight:400;font-size:19px}.filter-actions{display:block;box-sizing:border-box;padding:13px}.filter-actions button{margin-right:6px}.filter-actions button:last-child{margin-right:0}.filters{position:fixed;display:block;top:0;right:0;z-index:1002;bottom:0}.filters .filters-wrap{background:#fff;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f;width:85vw;max-width:350px;display:flex;flex-direction:column;height:100%;padding-top:calc(env(safe-area-inset-top))}.filters .filters-wrap .filter-items{overflow-y:auto}.filters .filters-wrap .filter-items .overflow-shadow-content{padding:0 25px;box-sizing:border-box}.filters .filter-group{margin:10px 0 0}.filters .filter-group:first-child{margin:0}.filters .filter label{white-space:nowrap;color:#0000008a}.filters .filter .interface.interface-range input,.filters .filter .interface.interface-range .mat-input-wrapper{text-align:center}.filters .filter .interface.interface-range{text-align:center}.filters .filter .interface.interface-datetime fs-datetime.has-time .md-input{width:100%}.filters .filter .interface fs-datetime-range input{text-align:center}.filters .filter .filter-label{width:1%;white-space:nowrap;vertical-align:middle;padding-right:15px}.filters md-autocomplete-container md-input-container{margin:0}.filters .isolate{margin-top:-12px}.filters .isolate .interface{line-height:20px;padding-bottom:1.25em}.filters .isolate md-checkbox{margin:0 0 0 2px}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:900;outline:none}\n"], components: [{ type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.FilterItemComponent, selector: "filter-item", inputs: ["item"] }, { type: i5.FsFilterDrawerActionsComponent, selector: "fs-filter-drawer-actions", outputs: ["clear", "done"] }], directives: [{ type: i6.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i7.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FilterDrawerComponent, decorators: [{
57
+ type: Component,
58
+ args: [{
59
+ templateUrl: './filter-drawer.component.html',
60
+ styleUrls: ['filter-drawer.component.scss'],
61
+ // Commented out because filter items are not updating with a delayed observable. Need to figure this out.
62
+ changeDetection: ChangeDetectionStrategy.OnPush,
63
+ }]
64
+ }], ctorParameters: function () { return [{ type: i1.ExternalParamsController }, { type: i0.ChangeDetectorRef }, { type: i2.FsFilterItemsStore }, { type: i8.OverlayRef, decorators: [{
65
+ type: Inject,
66
+ args: [FILTER_DRAWER_OVERLAY]
67
+ }] }, { type: undefined, decorators: [{
68
+ type: Inject,
69
+ args: [FILTER_DRAWER_DATA]
70
+ }] }]; }, propDecorators: { updateWindowWidth: [{
71
+ type: HostListener,
72
+ args: ['window:resize']
73
+ }], inline: [{
74
+ type: Input
75
+ }] } });
76
76
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWRyYXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVyLWRyYXdlci9maWx0ZXItZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXItZHJhd2VyL2ZpbHRlci1kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUlsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7Ozs7Ozs7OztBQVU3RixNQUFNLE9BQU8scUJBQXFCO0lBY2hDLFlBQ1MsY0FBd0MsRUFDckMsR0FBc0IsRUFDdEIsV0FBK0IsRUFDRixVQUFzQixFQUN6QixJQUFJO1FBSmpDLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtRQUNyQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDRixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3pCLFNBQUksR0FBSixJQUFJLENBQUE7UUFaMUIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUt4QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQVMzQixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQXhCRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2hELENBQUM7SUF3QkQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztJQUM1QyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLDRCQUE0QjtJQUM5QixDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7bUhBckRVLHFCQUFxQiw2SEFrQnRCLHFCQUFxQixhQUNyQixrQkFBa0I7dUdBbkJqQixxQkFBcUIsbUpDM0JsQywwMUNBb0NBOzRGRFRhLHFCQUFxQjtrQkFOakMsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsZ0NBQWdDO29CQUM3QyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztvQkFDM0MsMEdBQTBHO29CQUMxRyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQW1CSSxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLE1BQU07MkJBQUMsa0JBQWtCOzRDQWhCNUIsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLGVBQWU7Z0JBS2IsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEb0NoZWNrLFxuICBJbnB1dCxcbiAgSW5qZWN0LFxuICBIb3N0TGlzdGVuZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZJTFRFUl9EUkFXRVJfREFUQSB9IGZyb20gJy4uLy4uL2luamVjdG9ycy9maWx0ZXItZHJhd2VyLWRhdGEnO1xuaW1wb3J0IHsgRklMVEVSX0RSQVdFUl9PVkVSTEFZIH0gZnJvbSAnLi4vLi4vaW5qZWN0b3JzL2ZpbHRlci1kcmF3ZXItb3ZlcmxheSc7XG5pbXBvcnQgeyBCYXNlSXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0nO1xuaW1wb3J0IHsgRnNGaWx0ZXJJdGVtc1N0b3JlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaXRlbXMtc3RvcmUuc2VydmljZSc7XG5pbXBvcnQgeyBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlcm5hbC1wYXJhbXMtY29udHJvbGxlci5zZXJ2aWNlJztcblxudHlwZSBJdGVtID0gQmFzZUl0ZW08YW55PjtcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2ZpbHRlci1kcmF3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgLy8gQ29tbWVudGVkIG91dCBiZWNhdXNlIGZpbHRlciBpdGVtcyBhcmUgbm90IHVwZGF0aW5nIHdpdGggYSBkZWxheWVkIG9ic2VydmFibGUuIE5lZWQgdG8gZmlndXJlIHRoaXMgb3V0LlxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyRHJhd2VyQ29tcG9uZW50IHtcblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgdXBkYXRlV2luZG93V2lkdGgoKSB7XG4gICAgdGhpcy53aW5kb3dEZXNrdG9wID0gd2luZG93LmlubmVyV2lkdGggPiAxMjAwO1xuICB9XG5cbiAgQElucHV0KCkgcHVibGljIGlubGluZSA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBfY2xlYXI6IEZ1bmN0aW9uO1xuICBwcm90ZWN0ZWQgX2RvbmU6IEZ1bmN0aW9uO1xuXG4gIHB1YmxpYyB3aW5kb3dEZXNrdG9wID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGV4dGVybmFsUGFyYW1zOiBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIF9pdGVtc1N0b3JlOiBGc0ZpbHRlckl0ZW1zU3RvcmUsXG4gICAgQEluamVjdChGSUxURVJfRFJBV0VSX09WRVJMQVkpIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICBASW5qZWN0KEZJTFRFUl9EUkFXRVJfREFUQSkgcHJpdmF0ZSBkYXRhLFxuICApIHtcbiAgICB0aGlzLl9pdGVtc1N0b3JlLnByZXBhcmVJdGVtcygpO1xuXG4gICAgdGhpcy5fY2xlYXIgPSBkYXRhLmNsZWFyO1xuICAgIHRoaXMuX2RvbmUgPSBkYXRhLmRvbmU7XG5cbiAgICB0aGlzLnVwZGF0ZVdpbmRvd1dpZHRoKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGl0ZW1zJCgpOiBPYnNlcnZhYmxlPEl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1N0b3JlLnZpc2libGVJdGVtcyQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNvcnRJdGVtKCk6IEl0ZW0ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1N0b3JlLnNvcnRCeUl0ZW07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNvcnREaXJlY3Rpb25JdGVtKCk6IEl0ZW0ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1N0b3JlLnNvcnREaXJlY3Rpb25JdGVtO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuX2NsZWFyKCk7XG4gICAgLy8gdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICB9XG5cbiAgcHVibGljIGRvbmUoKSB7XG4gICAgdGhpcy5fZG9uZSgpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrZHJvcENsaWNrKCkge1xuICAgIHRoaXMuZG9uZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmlsdGVyc1wiPlxuICA8ZGl2IGNsYXNzPVwiZmlsdGVycy13cmFwXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWJ5XCI+XG4gICAgICA8bWF0LWljb24+dHVuZTwvbWF0LWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj5GaWx0ZXJzPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm92ZXJmbG93LXNoYWRvdyBmaWx0ZXItaXRlbXNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvdmVyZmxvdy1zaGFkb3ctY29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpmc1NrZWxldG9uPVwiKGV4dGVybmFsUGFyYW1zLnBlbmRpbmckIHwgYXN5bmMpICE9PSB0cnVlXCI+XG4gICAgICAgICAgPGZpbHRlci1pdGVtICpuZ0Zvcj1cImxldCBmaWx0ZXJJdGVtIG9mIGl0ZW1zJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWx0ZXItZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICBbaXRlbV09XCJmaWx0ZXJJdGVtXCI+XG4gICAgICAgICAgPC9maWx0ZXItaXRlbT5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzb3J0SXRlbSAmJiBzb3J0SXRlbS52YWx1ZXMgJiYgc29ydEl0ZW0udmFsdWVzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxmaWx0ZXItaXRlbSBjbGFzcz1cImZpbHRlci1ncm91cCBzb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbV09XCJzb3J0SXRlbVwiPlxuICAgICAgICAgICAgPC9maWx0ZXItaXRlbT5cbiAgICAgICAgICAgIDxmaWx0ZXItaXRlbSBjbGFzcz1cImZpbHRlci1ncm91cCBzb3J0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbV09XCJzb3J0RGlyZWN0aW9uSXRlbVwiPlxuICAgICAgICAgICAgPC9maWx0ZXItaXRlbT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxmcy1maWx0ZXItZHJhd2VyLWFjdGlvbnMgY2xhc3M9XCJmaWx0ZXItYWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIihleHRlcm5hbFBhcmFtcy5wZW5kaW5nJCB8IGFzeW5jKSAhPT0gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xlYXIpPVwiY2xlYXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG9uZSk9XCJkb25lKClcIj5cbiAgICA8L2ZzLWZpbHRlci1kcmF3ZXItYWN0aW9ucz5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJiYWNrZHJvcFwiICpuZ0lmPVwiIXdpbmRvd0Rlc2t0b3BcIiAoY2xpY2spPVwiYmFja2Ryb3BDbGljaygpXCI+PC9kaXY+XG4iXX0=
@@ -1,43 +1,43 @@
1
- import { Component, EventEmitter, Output } from '@angular/core';
2
- import { ExternalParamsController } from '../../services/external-params-controller.service';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../services/external-params-controller.service";
5
- import * as i2 from "@angular/material/button";
6
- import * as i3 from "@angular/common";
7
- export class FsFilterDrawerActionsComponent {
8
- constructor(externalParams) {
9
- this.externalParams = externalParams;
10
- this._clear = new EventEmitter();
11
- this._done = new EventEmitter();
12
- }
13
- get savedFilters() {
14
- return this.externalParams.savedFiltersController;
15
- }
16
- done() {
17
- this._done.emit();
18
- }
19
- clear() {
20
- this._clear.emit();
21
- }
22
- saveFilters() {
23
- this.externalParams
24
- .savedFiltersController
25
- .openSavedFilterEditDialog();
26
- }
27
- }
28
- FsFilterDrawerActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFilterDrawerActionsComponent, deps: [{ token: i1.ExternalParamsController }], target: i0.ɵɵFactoryTarget.Component });
29
- FsFilterDrawerActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsFilterDrawerActionsComponent, selector: "fs-filter-drawer-actions", outputs: { _clear: "clear", _done: "done" }, ngImport: i0, template: "<button type=\"button\" mat-button color=\"primary\" (click)=\"done()\">Done</button>\n<button type=\"button\" mat-button (click)=\"clear()\">Clear</button>\n<ng-container *ngIf=\"savedFilters.enabled$ | async\">\n <button type=\"button\" mat-button (click)=\"saveFilters()\">Save</button>\n</ng-container>\n\n", components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe } });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFilterDrawerActionsComponent, decorators: [{
31
- type: Component,
32
- args: [{
33
- selector: 'fs-filter-drawer-actions',
34
- templateUrl: './filter-drawer-actions.component.html',
35
- }]
36
- }], ctorParameters: function () { return [{ type: i1.ExternalParamsController }]; }, propDecorators: { _clear: [{
37
- type: Output,
38
- args: ['clear']
39
- }], _done: [{
40
- type: Output,
41
- args: ['done']
42
- }] } });
1
+ import { Component, EventEmitter, Output } from '@angular/core';
2
+ import { ExternalParamsController } from '../../services/external-params-controller.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/external-params-controller.service";
5
+ import * as i2 from "@angular/material/button";
6
+ import * as i3 from "@angular/common";
7
+ export class FsFilterDrawerActionsComponent {
8
+ constructor(externalParams) {
9
+ this.externalParams = externalParams;
10
+ this._clear = new EventEmitter();
11
+ this._done = new EventEmitter();
12
+ }
13
+ get savedFilters() {
14
+ return this.externalParams.savedFiltersController;
15
+ }
16
+ done() {
17
+ this._done.emit();
18
+ }
19
+ clear() {
20
+ this._clear.emit();
21
+ }
22
+ saveFilters() {
23
+ this.externalParams
24
+ .savedFiltersController
25
+ .openSavedFilterEditDialog();
26
+ }
27
+ }
28
+ FsFilterDrawerActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFilterDrawerActionsComponent, deps: [{ token: i1.ExternalParamsController }], target: i0.ɵɵFactoryTarget.Component });
29
+ FsFilterDrawerActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsFilterDrawerActionsComponent, selector: "fs-filter-drawer-actions", outputs: { _clear: "clear", _done: "done" }, ngImport: i0, template: "<button type=\"button\" mat-button color=\"primary\" (click)=\"done()\">Done</button>\n<button type=\"button\" mat-button (click)=\"clear()\">Clear</button>\n<ng-container *ngIf=\"savedFilters.enabled$ | async\">\n <button type=\"button\" mat-button (click)=\"saveFilters()\">Save</button>\n</ng-container>\n\n", components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i3.AsyncPipe } });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsFilterDrawerActionsComponent, decorators: [{
31
+ type: Component,
32
+ args: [{
33
+ selector: 'fs-filter-drawer-actions',
34
+ templateUrl: './filter-drawer-actions.component.html',
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: i1.ExternalParamsController }]; }, propDecorators: { _clear: [{
37
+ type: Output,
38
+ args: ['clear']
39
+ }], _done: [{
40
+ type: Output,
41
+ args: ['done']
42
+ }] } });
43
43
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWRyYXdlci1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXItZHJhd2VyLWFjdGlvbnMvZmlsdGVyLWRyYXdlci1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXItZHJhd2VyLWFjdGlvbnMvZmlsdGVyLWRyYXdlci1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7Ozs7QUFRN0YsTUFBTSxPQUFPLDhCQUE4QjtJQVF6QyxZQUFtQixjQUF3QztRQUF4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFMbkQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHbEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFFcUIsQ0FBQztJQUUvRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDO0lBQ3BELENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGNBQWM7YUFDaEIsc0JBQXNCO2FBQ3RCLHlCQUF5QixFQUFFLENBQUM7SUFDakMsQ0FBQzs7NEhBMUJVLDhCQUE4QjtnSEFBOUIsOEJBQThCLDZHQ1QzQyx5VEFNQTs0RkRHYSw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsV0FBVyxFQUFFLHdDQUF3QztpQkFDdEQ7K0dBSVMsTUFBTTtzQkFEYixNQUFNO3VCQUFDLE9BQU87Z0JBSVAsS0FBSztzQkFEWixNQUFNO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlcm5hbC1wYXJhbXMtY29udHJvbGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNhdmVkRmlsdGVyc0NvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leHRlcm5hbC1wYXJhbXMvc2F2ZWQtZmlsdGVycy1jb250cm9sbGVyLnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWZpbHRlci1kcmF3ZXItYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItZHJhd2VyLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBGc0ZpbHRlckRyYXdlckFjdGlvbnNDb21wb25lbnQge1xuXG4gIEBPdXRwdXQoJ2NsZWFyJylcbiAgcHJpdmF0ZSBfY2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgnZG9uZScpXG4gIHByaXZhdGUgX2RvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGV4dGVybmFsUGFyYW1zOiBFeHRlcm5hbFBhcmFtc0NvbnRyb2xsZXIpIHt9XG5cbiAgcHVibGljIGdldCBzYXZlZEZpbHRlcnMoKTogU2F2ZWRGaWx0ZXJzQ29udHJvbGxlciB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxQYXJhbXMuc2F2ZWRGaWx0ZXJzQ29udHJvbGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBkb25lKCk6IHZvaWQge1xuICAgIHRoaXMuX2RvbmUuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuX2NsZWFyLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlRmlsdGVycygpIHtcbiAgICB0aGlzLmV4dGVybmFsUGFyYW1zXG4gICAgICAuc2F2ZWRGaWx0ZXJzQ29udHJvbGxlclxuICAgICAgLm9wZW5TYXZlZEZpbHRlckVkaXREaWFsb2coKTtcbiAgfVxufVxuIiwiPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZG9uZSgpXCI+RG9uZTwvYnV0dG9uPlxuPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiY2xlYXIoKVwiPkNsZWFyPC9idXR0b24+XG48bmctY29udGFpbmVyICpuZ0lmPVwic2F2ZWRGaWx0ZXJzLmVuYWJsZWQkIHwgYXN5bmNcIj5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwic2F2ZUZpbHRlcnMoKVwiPlNhdmU8L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
@@ -1,30 +1,30 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, KeyValueDiffers } from '@angular/core';
2
- import { BaseItemComponent } from '../base-item/base-item.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@firestitch/autocomplete";
5
- import * as i2 from "../../../directives/focus-to-item/focus-to-item.directive";
6
- import * as i3 from "@angular/forms";
7
- export class AutocompleteComponent extends BaseItemComponent {
8
- constructor(_kvDiffers, _cd) {
9
- super(_kvDiffers, _cd);
10
- this._kvDiffers = _kvDiffers;
11
- this._cd = _cd;
12
- this.displayWith = (data) => {
13
- return data ? data.name : data;
14
- };
15
- this.fetch = (keyword) => {
16
- return this.item.valuesFn(keyword);
17
- };
18
- }
19
- }
20
- AutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
21
- AutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AutocompleteComponent, selector: "filter-item-autocomplete", usesInheritance: true, ngImport: i0, template: "<fs-autocomplete\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [(ngModel)]=\"item.model\"\n [placeholder]=\"label\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [showClear]=\"item.clearAllowed\"\n name=\"item.name\">\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n {{data.name}}\n </ng-template>\n</fs-autocomplete>\n", components: [{ type: i1.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "placeholder", "displayWith", "fetchOnFocus", "readonly", "required", "disabled", "hint", "panelWidth", "panelClass", "showClear"], outputs: ["cleared"] }], directives: [{ type: i2.FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutocompleteComponent, decorators: [{
23
- type: Component,
24
- args: [{
25
- selector: 'filter-item-autocomplete',
26
- templateUrl: './autocomplete.component.html',
27
- changeDetection: ChangeDetectionStrategy.OnPush,
28
- }]
29
- }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, KeyValueDiffers } from '@angular/core';
2
+ import { BaseItemComponent } from '../base-item/base-item.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@firestitch/autocomplete";
5
+ import * as i2 from "../../../directives/focus-to-item/focus-to-item.directive";
6
+ import * as i3 from "@angular/forms";
7
+ export class AutocompleteComponent extends BaseItemComponent {
8
+ constructor(_kvDiffers, _cd) {
9
+ super(_kvDiffers, _cd);
10
+ this._kvDiffers = _kvDiffers;
11
+ this._cd = _cd;
12
+ this.displayWith = (data) => {
13
+ return data ? data.name : data;
14
+ };
15
+ this.fetch = (keyword) => {
16
+ return this.item.valuesFn(keyword);
17
+ };
18
+ }
19
+ }
20
+ AutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
21
+ AutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AutocompleteComponent, selector: "filter-item-autocomplete", usesInheritance: true, ngImport: i0, template: "<fs-autocomplete\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [displayWith]=\"displayWith\"\n [(ngModel)]=\"item.model\"\n [placeholder]=\"label\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [showClear]=\"item.clearAllowed\"\n name=\"item.name\">\n <ng-template fsAutocompleteTemplate let-data=\"data\">\n {{data.name}}\n </ng-template>\n</fs-autocomplete>\n", components: [{ type: i1.FsAutocompleteComponent, selector: "fs-autocomplete", inputs: ["fetch", "placeholder", "displayWith", "fetchOnFocus", "readonly", "required", "disabled", "hint", "panelWidth", "panelClass", "showClear"], outputs: ["cleared"] }], directives: [{ type: i2.FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.FsAutocompleteTemplateDirective, selector: "[fsAutocompleteTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutocompleteComponent, decorators: [{
23
+ type: Component,
24
+ args: [{
25
+ selector: 'filter-item-autocomplete',
26
+ templateUrl: './autocomplete.component.html',
27
+ changeDetection: ChangeDetectionStrategy.OnPush,
28
+ }]
29
+ }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWx0ZXJzLWl0ZW0vYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDaEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBU3JFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxpQkFBbUM7SUFFNUUsWUFDWSxVQUEyQixFQUMzQixHQUFzQjtRQUVoQyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSGIsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFLM0IsZ0JBQVcsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDakMsQ0FBQyxDQUFDO1FBRUssVUFBSyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUE7SUFSRCxDQUFDOzttSEFQVSxxQkFBcUI7dUdBQXJCLHFCQUFxQix1RkNoQmxDLDZYQWFBOzRGREdhLHFCQUFxQjtrQkFMakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxXQUFXLEVBQUUsK0JBQStCO29CQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgS2V5VmFsdWVEaWZmZXJzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCYXNlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtaXRlbS9iYXNlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUl0ZW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvaXRlbXMvYXV0b2NvbXBsZXRlLWl0ZW0nO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZpbHRlci1pdGVtLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUl0ZW1Db21wb25lbnQ8QXV0b2NvbXBsZXRlSXRlbT4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfa3ZEaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnMsXG4gICAgcHJvdGVjdGVkIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoX2t2RGlmZmVycywgX2NkKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwbGF5V2l0aCA9IChkYXRhKSA9PiB7XG4gICAgcmV0dXJuIGRhdGEgPyBkYXRhLm5hbWUgOiBkYXRhO1xuICB9O1xuXG4gIHB1YmxpYyBmZXRjaCA9IChrZXl3b3JkKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbS52YWx1ZXNGbihrZXl3b3JkKTtcbiAgfVxufVxuIiwiPGZzLWF1dG9jb21wbGV0ZVxuICBbZnNGaWx0ZXJGb2N1c1RyaWdnZXJdPVwiaXRlbVwiXG4gIFtmZXRjaF09XCJmZXRjaFwiXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIFsobmdNb2RlbCldPVwiaXRlbS5tb2RlbFwiXG4gIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiXG4gIFtmZXRjaE9uRm9jdXNdPVwiaXRlbS5mZXRjaE9uRm9jdXNcIlxuICBbc2hvd0NsZWFyXT1cIml0ZW0uY2xlYXJBbGxvd2VkXCJcbiAgbmFtZT1cIml0ZW0ubmFtZVwiPlxuICA8bmctdGVtcGxhdGUgZnNBdXRvY29tcGxldGVUZW1wbGF0ZSBsZXQtZGF0YT1cImRhdGFcIj5cbiAgICB7e2RhdGEubmFtZX19XG4gIDwvbmctdGVtcGxhdGU+XG48L2ZzLWF1dG9jb21wbGV0ZT5cbiJdfQ==
@@ -1,52 +1,52 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, KeyValueDiffers, } from '@angular/core';
2
- import { remove as arrayRemove } from '@firestitch/common';
3
- import { BaseItemComponent } from '../base-item/base-item.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@firestitch/autocomplete-chips";
6
- import * as i2 from "../../../directives/focus-to-item/focus-to-item.directive";
7
- import * as i3 from "@angular/forms";
8
- export class AutocompletechipsComponent extends BaseItemComponent {
9
- constructor(_kvDiffers, _cd) {
10
- super(_kvDiffers, _cd);
11
- this._kvDiffers = _kvDiffers;
12
- this._cd = _cd;
13
- this.fetch = (keyword) => {
14
- return this.item.valuesFn(keyword);
15
- };
16
- }
17
- // SP-T1747
18
- clicked() {
19
- this.chipBackground = this.item.chipBackground;
20
- this.chipColor = this.item.chipColor;
21
- this.chipIcon = this.item.chipIcon;
22
- this._cd.markForCheck();
23
- }
24
- addAutocompleteChipItem(event) {
25
- if (event.data && this.item.model.indexOf(event.data.value) === -1) {
26
- this.item.model.push(event.data);
27
- this.itemChange();
28
- }
29
- }
30
- removeAutocompleteChipItem(event) {
31
- arrayRemove(this.item.model, { value: event.data.value });
32
- this.itemChange();
33
- }
34
- clearAutocompleteChipItem() {
35
- this.item.clear();
36
- this.itemChange();
37
- }
38
- compareItems(item1, item2) {
39
- return (item1 === null || item1 === void 0 ? void 0 : item1.value) === (item2 === null || item2 === void 0 ? void 0 : item2.value);
40
- }
41
- }
42
- AutocompletechipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutocompletechipsComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
43
- AutocompletechipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AutocompletechipsComponent, selector: "filter-item-autocompletechips", usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [ngModel]=\"item.model\"\n (selected)=\"addAutocompleteChipItem($event)\"\n (removed)=\"removeAutocompleteChipItem($event)\"\n (clear)=\"clearAutocompleteChipItem()\"\n (click)=\"clicked()\"\n [allowText]=\"false\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [placeholder]=\"label\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"chipColor\"\n [chipIconColor]=\"chipIcon\"\n [chipBackground]=\"chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.clearAllowed\"\n [removable]=\"item.clearAllowed\"\n [compareWith]=\"compareItems\"\n [panelWidth]=\"300\"\n name=\"model\">\n <ng-template fsAutocompleteObject let-object=\"object\">\n {{ object.name }}\n </ng-template>\n</fs-autocomplete-chips>\n\n<!--<mat-form-field floatLabel=\"auto\">\n <mat-label>{{item.label}}</mat-label>\n <mat-chip-list #chipList>\n <mat-chip *ngFor=\"let item of item.model\"\n (removed)=\"removeAutocompleteChipItem(item)\">\n {{ item.name }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input #chipsInput\n type=\"text\"\n matInput\n [(ngModel)]=\"item.selectedValue\"\n (ngModelChange)=\"onAutocompleteChipsChange(chipsInput)\"\n [name]=\"item.name\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"autocompleteChipsInput\">\n </mat-chip-list>\n\n <mat-autocomplete #autocompleteChipsInput=\"matAutocomplete\"\n (optionSelected)=\"addAutocompleteChipItem( $event)\"\n >\n <mat-option *ngFor=\"let item of item.values$ | async\" [value]=\"item\">\n {{ item.name }}\n </mat-option>\n </mat-autocomplete>\n <mat-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n</mat-form-field>-->\n", components: [{ type: i1.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "readonly", "size", "placeholder", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "hint", "allowText", "allowObject", "delay", "validateText", "removable", "allowClear", "color", "background", "orderable", "limit", "initOnClick", "fetchOnFocus", "multiple", "confirm", "panelClass", "compareWith", "disabled", "panelWidth"], outputs: ["selected", "removed", "reordered", "clear"] }], directives: [{ type: i2.FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutocompletechipsComponent, decorators: [{
45
- type: Component,
46
- args: [{
47
- selector: 'filter-item-autocompletechips',
48
- templateUrl: './autocompletechips.component.html',
49
- changeDetection: ChangeDetectionStrategy.OnPush,
50
- }]
51
- }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, KeyValueDiffers, } from '@angular/core';
2
+ import { remove as arrayRemove } from '@firestitch/common';
3
+ import { BaseItemComponent } from '../base-item/base-item.component';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@firestitch/autocomplete-chips";
6
+ import * as i2 from "../../../directives/focus-to-item/focus-to-item.directive";
7
+ import * as i3 from "@angular/forms";
8
+ export class AutocompletechipsComponent extends BaseItemComponent {
9
+ constructor(_kvDiffers, _cd) {
10
+ super(_kvDiffers, _cd);
11
+ this._kvDiffers = _kvDiffers;
12
+ this._cd = _cd;
13
+ this.fetch = (keyword) => {
14
+ return this.item.valuesFn(keyword);
15
+ };
16
+ }
17
+ // SP-T1747
18
+ clicked() {
19
+ this.chipBackground = this.item.chipBackground;
20
+ this.chipColor = this.item.chipColor;
21
+ this.chipIcon = this.item.chipIcon;
22
+ this._cd.markForCheck();
23
+ }
24
+ addAutocompleteChipItem(event) {
25
+ if (event.data && this.item.model.indexOf(event.data.value) === -1) {
26
+ this.item.model.push(event.data);
27
+ this.itemChange();
28
+ }
29
+ }
30
+ removeAutocompleteChipItem(event) {
31
+ arrayRemove(this.item.model, { value: event.data.value });
32
+ this.itemChange();
33
+ }
34
+ clearAutocompleteChipItem() {
35
+ this.item.clear();
36
+ this.itemChange();
37
+ }
38
+ compareItems(item1, item2) {
39
+ return (item1 === null || item1 === void 0 ? void 0 : item1.value) === (item2 === null || item2 === void 0 ? void 0 : item2.value);
40
+ }
41
+ }
42
+ AutocompletechipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutocompletechipsComponent, deps: [{ token: i0.KeyValueDiffers }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
43
+ AutocompletechipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AutocompletechipsComponent, selector: "filter-item-autocompletechips", usesInheritance: true, ngImport: i0, template: "<fs-autocomplete-chips\n [fsFilterFocusTrigger]=\"item\"\n [fetch]=\"fetch\"\n [ngModel]=\"item.model\"\n (selected)=\"addAutocompleteChipItem($event)\"\n (removed)=\"removeAutocompleteChipItem($event)\"\n (clear)=\"clearAutocompleteChipItem()\"\n (click)=\"clicked()\"\n [allowText]=\"false\"\n [fetchOnFocus]=\"item.fetchOnFocus\"\n [placeholder]=\"label\"\n [chipImage]=\"item.chipImage\"\n [chipColor]=\"chipColor\"\n [chipIconColor]=\"chipIcon\"\n [chipBackground]=\"chipBackground\"\n [chipIcon]=\"item.chipIcon\"\n [chipClass]=\"item.chipClass\"\n [allowClear]=\"item.clearAllowed\"\n [removable]=\"item.clearAllowed\"\n [compareWith]=\"compareItems\"\n [panelWidth]=\"300\"\n name=\"model\">\n <ng-template fsAutocompleteObject let-object=\"object\">\n {{ object.name }}\n </ng-template>\n</fs-autocomplete-chips>\n\n<!--<mat-form-field floatLabel=\"auto\">\n <mat-label>{{item.label}}</mat-label>\n <mat-chip-list #chipList>\n <mat-chip *ngFor=\"let item of item.model\"\n (removed)=\"removeAutocompleteChipItem(item)\">\n {{ item.name }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip>\n\n <input #chipsInput\n type=\"text\"\n matInput\n [(ngModel)]=\"item.selectedValue\"\n (ngModelChange)=\"onAutocompleteChipsChange(chipsInput)\"\n [name]=\"item.name\"\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"autocompleteChipsInput\">\n </mat-chip-list>\n\n <mat-autocomplete #autocompleteChipsInput=\"matAutocomplete\"\n (optionSelected)=\"addAutocompleteChipItem( $event)\"\n >\n <mat-option *ngFor=\"let item of item.values$ | async\" [value]=\"item\">\n {{ item.name }}\n </mat-option>\n </mat-autocomplete>\n <mat-placeholder *ngIf=\"inline\">{{ item.label }}</mat-placeholder>\n</mat-form-field>-->\n", components: [{ type: i1.FsAutocompleteChipsComponent, selector: "fs-autocomplete-chips", inputs: ["fetch", "readonly", "size", "placeholder", "chipImage", "chipBackground", "chipColor", "chipIcon", "chipIconColor", "chipClass", "hint", "allowText", "allowObject", "delay", "validateText", "removable", "allowClear", "color", "background", "orderable", "limit", "initOnClick", "fetchOnFocus", "multiple", "confirm", "panelClass", "compareWith", "disabled", "panelWidth"], outputs: ["selected", "removed", "reordered", "clear"] }], directives: [{ type: i2.FocusToItemDirective, selector: "[fsFilterFocusTrigger]", inputs: ["fsFilterFocusTrigger", "focusTargetType"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.FsAutocompleteObjectDirective, selector: "[fsAutocompleteObject],[fsAutocompleteChipsTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: AutocompletechipsComponent, decorators: [{
45
+ type: Component,
46
+ args: [{
47
+ selector: 'filter-item-autocompletechips',
48
+ templateUrl: './autocompletechips.component.html',
49
+ changeDetection: ChangeDetectionStrategy.OnPush,
50
+ }]
51
+ }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }, { type: i0.ChangeDetectorRef }]; } });
52
52
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlY2hpcHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2ZpbHRlcnMtaXRlbS9hdXRvY29tcGxldGVjaGlwcy9hdXRvY29tcGxldGVjaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL2F1dG9jb21wbGV0ZWNoaXBzL2F1dG9jb21wbGV0ZWNoaXBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLElBQUksV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBU3JFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxpQkFBd0M7SUFNdEYsWUFDWSxVQUEyQixFQUMzQixHQUFzQjtRQUVoQyxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSGIsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUE4QjNCLFVBQUssR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFBO0lBN0JELENBQUM7SUFFRCxXQUFXO0lBQ0osT0FBTztRQUNaLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQUs7UUFDbEMsSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVNLDBCQUEwQixDQUFDLEtBQUs7UUFDckMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLHlCQUF5QjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBTU0sWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLO1FBQzlCLE9BQU8sQ0FBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsS0FBSyxPQUFLLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxLQUFLLENBQUEsQ0FBQztJQUN2QyxDQUFDOzt3SEE1Q1UsMEJBQTBCOzRHQUExQiwwQkFBMEIsNEZDakJ2Qyx1MkRBdURBOzRGRHRDYSwwQkFBMEI7a0JBTHRDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEtleVZhbHVlRGlmZmVycyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByZW1vdmUgYXMgYXJyYXlSZW1vdmUgfSBmcm9tICdAZmlyZXN0aXRjaC9jb21tb24nO1xuXG5pbXBvcnQgeyBCYXNlSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtaXRlbS9iYXNlLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNoaXBzSXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9pdGVtcy9hdXRvY29tcGxldGUtY2hpcHMtaXRlbSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmlsdGVyLWl0ZW0tYXV0b2NvbXBsZXRlY2hpcHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlY2hpcHNDb21wb25lbnQgZXh0ZW5kcyBCYXNlSXRlbUNvbXBvbmVudDxBdXRvY29tcGxldGVDaGlwc0l0ZW0+IHtcblxuICBwdWJsaWMgY2hpcEJhY2tncm91bmQ6IHN0cmluZztcbiAgcHVibGljIGNoaXBDb2xvcjogc3RyaW5nO1xuICBwdWJsaWMgY2hpcEljb246IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX2t2RGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxuICAgIHByb3RlY3RlZCBfY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKF9rdkRpZmZlcnMsIF9jZCk7XG4gIH1cblxuICAvLyBTUC1UMTc0N1xuICBwdWJsaWMgY2xpY2tlZCgpIHtcbiAgICB0aGlzLmNoaXBCYWNrZ3JvdW5kID0gdGhpcy5pdGVtLmNoaXBCYWNrZ3JvdW5kO1xuICAgIHRoaXMuY2hpcENvbG9yID0gdGhpcy5pdGVtLmNoaXBDb2xvcjtcbiAgICB0aGlzLmNoaXBJY29uID0gdGhpcy5pdGVtLmNoaXBJY29uO1xuICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGFkZEF1dG9jb21wbGV0ZUNoaXBJdGVtKGV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmRhdGEgJiYgdGhpcy5pdGVtLm1vZGVsLmluZGV4T2YoZXZlbnQuZGF0YS52YWx1ZSkgPT09IC0xKSB7XG4gICAgICB0aGlzLml0ZW0ubW9kZWwucHVzaChldmVudC5kYXRhKTtcbiAgICAgIHRoaXMuaXRlbUNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVBdXRvY29tcGxldGVDaGlwSXRlbShldmVudCkge1xuICAgIGFycmF5UmVtb3ZlKHRoaXMuaXRlbS5tb2RlbCwge3ZhbHVlOiBldmVudC5kYXRhLnZhbHVlfSk7XG4gICAgdGhpcy5pdGVtQ2hhbmdlKCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJBdXRvY29tcGxldGVDaGlwSXRlbSgpIHtcbiAgICB0aGlzLml0ZW0uY2xlYXIoKTtcbiAgICB0aGlzLml0ZW1DaGFuZ2UoKVxuICB9XG5cbiAgcHVibGljIGZldGNoID0gKGtleXdvcmQpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtLnZhbHVlc0ZuKGtleXdvcmQpO1xuICB9XG5cbiAgcHVibGljIGNvbXBhcmVJdGVtcyhpdGVtMSwgaXRlbTIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXRlbTE/LnZhbHVlID09PSBpdGVtMj8udmFsdWU7XG4gIH1cbn1cbiIsIjxmcy1hdXRvY29tcGxldGUtY2hpcHNcbiAgW2ZzRmlsdGVyRm9jdXNUcmlnZ2VyXT1cIml0ZW1cIlxuICBbZmV0Y2hdPVwiZmV0Y2hcIlxuICBbbmdNb2RlbF09XCJpdGVtLm1vZGVsXCJcbiAgKHNlbGVjdGVkKT1cImFkZEF1dG9jb21wbGV0ZUNoaXBJdGVtKCRldmVudClcIlxuICAocmVtb3ZlZCk9XCJyZW1vdmVBdXRvY29tcGxldGVDaGlwSXRlbSgkZXZlbnQpXCJcbiAgKGNsZWFyKT1cImNsZWFyQXV0b2NvbXBsZXRlQ2hpcEl0ZW0oKVwiXG4gIChjbGljayk9XCJjbGlja2VkKClcIlxuICBbYWxsb3dUZXh0XT1cImZhbHNlXCJcbiAgW2ZldGNoT25Gb2N1c109XCJpdGVtLmZldGNoT25Gb2N1c1wiXG4gIFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiXG4gIFtjaGlwSW1hZ2VdPVwiaXRlbS5jaGlwSW1hZ2VcIlxuICBbY2hpcENvbG9yXT1cImNoaXBDb2xvclwiXG4gIFtjaGlwSWNvbkNvbG9yXT1cImNoaXBJY29uXCJcbiAgW2NoaXBCYWNrZ3JvdW5kXT1cImNoaXBCYWNrZ3JvdW5kXCJcbiAgW2NoaXBJY29uXT1cIml0ZW0uY2hpcEljb25cIlxuICBbY2hpcENsYXNzXT1cIml0ZW0uY2hpcENsYXNzXCJcbiAgW2FsbG93Q2xlYXJdPVwiaXRlbS5jbGVhckFsbG93ZWRcIlxuICBbcmVtb3ZhYmxlXT1cIml0ZW0uY2xlYXJBbGxvd2VkXCJcbiAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVJdGVtc1wiXG4gIFtwYW5lbFdpZHRoXT1cIjMwMFwiXG4gIG5hbWU9XCJtb2RlbFwiPlxuICA8bmctdGVtcGxhdGUgZnNBdXRvY29tcGxldGVPYmplY3QgbGV0LW9iamVjdD1cIm9iamVjdFwiPlxuICAgIHt7IG9iamVjdC5uYW1lIH19XG4gIDwvbmctdGVtcGxhdGU+XG48L2ZzLWF1dG9jb21wbGV0ZS1jaGlwcz5cblxuPCEtLTxtYXQtZm9ybS1maWVsZCBmbG9hdExhYmVsPVwiYXV0b1wiPlxuICA8bWF0LWxhYmVsPnt7aXRlbS5sYWJlbH19PC9tYXQtbGFiZWw+XG4gIDxtYXQtY2hpcC1saXN0ICNjaGlwTGlzdD5cbiAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbS5tb2RlbFwiXG4gICAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZUF1dG9jb21wbGV0ZUNoaXBJdGVtKGl0ZW0pXCI+XG4gICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XG4gICAgPC9tYXQtY2hpcD5cblxuICAgIDxpbnB1dCAjY2hpcHNJbnB1dFxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5zZWxlY3RlZFZhbHVlXCJcbiAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25BdXRvY29tcGxldGVDaGlwc0NoYW5nZShjaGlwc0lucHV0KVwiXG4gICAgICAgICAgIFtuYW1lXT1cIml0ZW0ubmFtZVwiXG4gICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZUNoaXBzSW5wdXRcIj5cbiAgPC9tYXQtY2hpcC1saXN0PlxuXG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvY29tcGxldGVDaGlwc0lucHV0PVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImFkZEF1dG9jb21wbGV0ZUNoaXBJdGVtKCAkZXZlbnQpXCJcbiAgPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW0udmFsdWVzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICA8bWF0LXBsYWNlaG9sZGVyICpuZ0lmPVwiaW5saW5lXCI+e3sgaXRlbS5sYWJlbCB9fTwvbWF0LXBsYWNlaG9sZGVyPlxuPC9tYXQtZm9ybS1maWVsZD4tLT5cbiJdfQ==