@firestitch/filter 9.10.0 → 12.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/app/classes/actions-controller.d.ts +3 -0
  2. package/app/components/action-button/action-button.component.d.ts +3 -0
  3. package/app/components/action-kebab-actions/action-kebab-actions.component.d.ts +3 -0
  4. package/app/components/actions/actions.component.d.ts +3 -0
  5. package/app/components/filter/filter.component.d.ts +4 -0
  6. package/app/components/filter-chip/filter-chip.component.d.ts +3 -0
  7. package/app/components/filter-chip-content/filter-chip-content.component.d.ts +3 -0
  8. package/app/components/filter-chips/filter-chips.component.d.ts +3 -0
  9. package/app/components/filter-drawer/filter-drawer.component.d.ts +3 -0
  10. package/app/components/filter-drawer-actions/filter-drawer-actions.component.d.ts +3 -0
  11. package/app/components/filters-item/autocomplete/autocomplete.component.d.ts +3 -0
  12. package/app/components/filters-item/autocompletechips/autocompletechips.component.d.ts +3 -0
  13. package/app/components/filters-item/base-item/base-item.component.d.ts +3 -0
  14. package/app/components/filters-item/checkbox/checkbox.component.d.ts +3 -0
  15. package/app/components/filters-item/chips/chips.component.d.ts +3 -0
  16. package/app/components/filters-item/date/date.component.d.ts +3 -0
  17. package/app/components/filters-item/date-range/date-range.component.d.ts +3 -0
  18. package/app/components/filters-item/filter-item.component.d.ts +3 -0
  19. package/app/components/filters-item/range/range.component.d.ts +3 -0
  20. package/app/components/filters-item/select/backdrop/backdrop.component.d.ts +3 -0
  21. package/app/components/filters-item/select/groups/groups.component.d.ts +3 -0
  22. package/app/components/filters-item/select/multiple/multiple.component.d.ts +3 -0
  23. package/app/components/filters-item/select/select.component.d.ts +3 -0
  24. package/app/components/filters-item/select/simple/simple.component.d.ts +3 -0
  25. package/app/components/filters-item/text/text.component.d.ts +3 -0
  26. package/app/components/saved-filter-edit/saved-filter-edit.component.d.ts +3 -0
  27. package/app/components/saved-filters-menu/saved-filters-menu.component.d.ts +3 -0
  28. package/app/directives/focus-to-item/focus-to-item.directive.d.ts +3 -0
  29. package/app/directives/status-bar/status-bar.directive.d.ts +3 -0
  30. package/app/fs-filter.module.d.ts +59 -0
  31. package/app/pipes/remove-isolate-value.pipe.d.ts +3 -0
  32. package/app/services/external-params/persistance-params-controller.service.d.ts +3 -0
  33. package/app/services/external-params/query-params-controller.service.d.ts +3 -0
  34. package/app/services/external-params/saved-filters-controller.service.d.ts +3 -0
  35. package/app/services/external-params-controller.service.d.ts +4 -0
  36. package/app/services/filter-overlay.service.d.ts +7 -1
  37. package/app/services/focus-controller.service.d.ts +4 -3
  38. package/app/services/items-store.service.d.ts +3 -0
  39. package/bundles/firestitch-filter.umd.js +2436 -2328
  40. package/bundles/firestitch-filter.umd.js.map +1 -1
  41. package/esm2015/app/classes/actions-controller.js +10 -12
  42. package/esm2015/app/components/action-button/action-button.component.js +23 -19
  43. package/esm2015/app/components/action-kebab-actions/action-kebab-actions.component.js +22 -17
  44. package/esm2015/app/components/actions/actions.component.js +27 -21
  45. package/esm2015/app/components/filter/filter.component.js +89 -91
  46. package/esm2015/app/components/filter-chip/filter-chip.component.js +22 -24
  47. package/esm2015/app/components/filter-chip-content/filter-chip-content.component.js +20 -26
  48. package/esm2015/app/components/filter-chips/filter-chips.component.js +21 -17
  49. package/esm2015/app/components/filter-drawer/filter-drawer.component.js +35 -37
  50. package/esm2015/app/components/filter-drawer-actions/filter-drawer-actions.component.js +22 -23
  51. package/esm2015/app/components/filters-item/autocomplete/autocomplete.component.js +17 -18
  52. package/esm2015/app/components/filters-item/autocompletechips/autocompletechips.component.js +17 -18
  53. package/esm2015/app/components/filters-item/base-item/base-item.component.js +19 -28
  54. package/esm2015/app/components/filters-item/checkbox/checkbox.component.js +18 -19
  55. package/esm2015/app/components/filters-item/chips/chips.component.js +19 -19
  56. package/esm2015/app/components/filters-item/date/date.component.js +21 -19
  57. package/esm2015/app/components/filters-item/date-range/date-range.component.js +20 -19
  58. package/esm2015/app/components/filters-item/filter-item.component.js +27 -21
  59. package/esm2015/app/components/filters-item/range/range.component.js +29 -28
  60. package/esm2015/app/components/filters-item/select/backdrop/backdrop.component.js +15 -14
  61. package/esm2015/app/components/filters-item/select/groups/groups.component.js +27 -25
  62. package/esm2015/app/components/filters-item/select/multiple/multiple.component.js +30 -26
  63. package/esm2015/app/components/filters-item/select/select.component.js +24 -23
  64. package/esm2015/app/components/filters-item/select/simple/simple.component.js +29 -25
  65. package/esm2015/app/components/filters-item/text/text.component.js +21 -20
  66. package/esm2015/app/components/saved-filter-edit/saved-filter-edit.component.js +25 -17
  67. package/esm2015/app/components/saved-filters-menu/saved-filters-menu.component.js +28 -33
  68. package/esm2015/app/consts/query-param-delimiter.js +1 -1
  69. package/esm2015/app/directives/focus-to-item/focus-to-item.directive.js +53 -47
  70. package/esm2015/app/directives/status-bar/status-bar.directive.js +12 -10
  71. package/esm2015/app/enums/action-mode.enum.js +1 -1
  72. package/esm2015/app/enums/action-type.enum.js +1 -1
  73. package/esm2015/app/enums/item-date-mode.enum.js +1 -1
  74. package/esm2015/app/enums/item-type.enum.js +1 -1
  75. package/esm2015/app/fs-filter.module.js +145 -56
  76. package/esm2015/app/helpers/build-query-params.js +1 -1
  77. package/esm2015/app/helpers/compare.js +1 -1
  78. package/esm2015/app/helpers/create-filter-item.js +1 -1
  79. package/esm2015/app/helpers/find-value.js +1 -1
  80. package/esm2015/app/helpers/get-range-name.js +1 -1
  81. package/esm2015/app/helpers/parse-item-value-from-stored.js +1 -1
  82. package/esm2015/app/helpers/query-param-transformers.js +1 -1
  83. package/esm2015/app/helpers/restore-items.js +1 -1
  84. package/esm2015/app/helpers/try-convert-to-number.js +1 -1
  85. package/esm2015/app/injectors/filter-config.js +1 -1
  86. package/esm2015/app/injectors/filter-drawer-data.js +1 -1
  87. package/esm2015/app/injectors/filter-drawer-overlay.js +1 -1
  88. package/esm2015/app/interfaces/action.interface.js +2 -1
  89. package/esm2015/app/interfaces/config.interface.js +2 -1
  90. package/esm2015/app/interfaces/external-params.interface.js +2 -1
  91. package/esm2015/app/interfaces/filter.interface.js +2 -1
  92. package/esm2015/app/interfaces/items/autocomplete-chips.interface.js +2 -1
  93. package/esm2015/app/interfaces/items/autocomplete.interface.js +2 -1
  94. package/esm2015/app/interfaces/items/base.interface.js +2 -1
  95. package/esm2015/app/interfaces/items/checkbox.interface.js +2 -1
  96. package/esm2015/app/interfaces/items/chips.interface.js +2 -1
  97. package/esm2015/app/interfaces/items/date-range.interface.js +2 -1
  98. package/esm2015/app/interfaces/items/date.interface.js +2 -1
  99. package/esm2015/app/interfaces/items/range.interface.js +2 -1
  100. package/esm2015/app/interfaces/items/select.interface.js +2 -1
  101. package/esm2015/app/interfaces/items/text.interface.js +2 -1
  102. package/esm2015/app/interfaces/saved-filters.interface.js +2 -1
  103. package/esm2015/app/interfaces/update-filter-item.interface.js +2 -1
  104. package/esm2015/app/models/action-menu-item.model.js +1 -1
  105. package/esm2015/app/models/action.model.js +1 -1
  106. package/esm2015/app/models/filter-config.js +1 -1
  107. package/esm2015/app/models/items/autocomplete/base-autocomplete-item.js +1 -1
  108. package/esm2015/app/models/items/autocomplete-chips-item.js +1 -1
  109. package/esm2015/app/models/items/autocomplete-item.js +1 -1
  110. package/esm2015/app/models/items/base-item.js +1 -1
  111. package/esm2015/app/models/items/checkbox-item.js +1 -1
  112. package/esm2015/app/models/items/chips-item.js +1 -1
  113. package/esm2015/app/models/items/date/base-date-item.js +1 -1
  114. package/esm2015/app/models/items/date-item.js +1 -1
  115. package/esm2015/app/models/items/date-range/base-date-range-item.js +1 -1
  116. package/esm2015/app/models/items/date-range-item.js +1 -1
  117. package/esm2015/app/models/items/date-time-item.js +1 -1
  118. package/esm2015/app/models/items/date-time-range-item.js +1 -1
  119. package/esm2015/app/models/items/range-item.js +1 -1
  120. package/esm2015/app/models/items/select/base-select-item.js +1 -1
  121. package/esm2015/app/models/items/select/multiple-select-item.js +1 -1
  122. package/esm2015/app/models/items/select/simple-select-item.js +1 -1
  123. package/esm2015/app/models/items/select-item.js +1 -1
  124. package/esm2015/app/models/items/text-item.js +1 -1
  125. package/esm2015/app/pipes/remove-isolate-value.pipe.js +12 -10
  126. package/esm2015/app/providers/filter-meta.js +1 -1
  127. package/esm2015/app/services/external-params/persistance-params-controller.service.js +19 -24
  128. package/esm2015/app/services/external-params/query-params-controller.service.js +11 -16
  129. package/esm2015/app/services/external-params/saved-filters-controller.service.js +11 -14
  130. package/esm2015/app/services/external-params-controller.service.js +18 -20
  131. package/esm2015/app/services/filter-overlay.service.js +30 -19
  132. package/esm2015/app/services/focus-controller.service.js +10 -18
  133. package/esm2015/app/services/items-store.service.js +9 -9
  134. package/esm2015/firestitch-filter.js +1 -40
  135. package/esm2015/public_api.js +2 -1
  136. package/fesm2015/firestitch-filter.js +1993 -1986
  137. package/fesm2015/firestitch-filter.js.map +1 -1
  138. package/firestitch-filter.d.ts +1 -39
  139. package/package.json +18 -21
  140. package/public_api.d.ts +1 -0
  141. package/bundles/firestitch-filter.umd.min.js +0 -16
  142. package/bundles/firestitch-filter.umd.min.js.map +0 -1
  143. package/esm5/app/classes/actions-controller.js +0 -151
  144. package/esm5/app/components/action-button/action-button.component.js +0 -24
  145. package/esm5/app/components/action-kebab-actions/action-kebab-actions.component.js +0 -21
  146. package/esm5/app/components/actions/actions.component.js +0 -27
  147. package/esm5/app/components/filter/filter.component.js +0 -701
  148. package/esm5/app/components/filter-chip/filter-chip.component.js +0 -99
  149. package/esm5/app/components/filter-chip-content/filter-chip-content.component.js +0 -92
  150. package/esm5/app/components/filter-chips/filter-chips.component.js +0 -22
  151. package/esm5/app/components/filter-drawer/filter-drawer.component.js +0 -91
  152. package/esm5/app/components/filter-drawer-actions/filter-drawer-actions.component.js +0 -49
  153. package/esm5/app/components/filters-item/autocomplete/autocomplete.component.js +0 -34
  154. package/esm5/app/components/filters-item/autocompletechips/autocompletechips.component.js +0 -56
  155. package/esm5/app/components/filters-item/base-item/base-item.component.js +0 -74
  156. package/esm5/app/components/filters-item/checkbox/checkbox.component.js +0 -29
  157. package/esm5/app/components/filters-item/chips/chips.component.js +0 -35
  158. package/esm5/app/components/filters-item/date/date.component.js +0 -46
  159. package/esm5/app/components/filters-item/date-range/date-range.component.js +0 -38
  160. package/esm5/app/components/filters-item/filter-item.component.js +0 -43
  161. package/esm5/app/components/filters-item/range/range.component.js +0 -54
  162. package/esm5/app/components/filters-item/select/backdrop/backdrop.component.js +0 -18
  163. package/esm5/app/components/filters-item/select/groups/groups.component.js +0 -33
  164. package/esm5/app/components/filters-item/select/multiple/multiple.component.js +0 -58
  165. package/esm5/app/components/filters-item/select/select.component.js +0 -46
  166. package/esm5/app/components/filters-item/select/simple/simple.component.js +0 -45
  167. package/esm5/app/components/filters-item/text/text.component.js +0 -58
  168. package/esm5/app/components/saved-filter-edit/saved-filter-edit.component.js +0 -49
  169. package/esm5/app/components/saved-filters-menu/saved-filters-menu.component.js +0 -72
  170. package/esm5/app/consts/query-param-delimiter.js +0 -2
  171. package/esm5/app/directives/focus-to-item/focus-to-item.directive.js +0 -126
  172. package/esm5/app/directives/status-bar/status-bar.directive.js +0 -14
  173. package/esm5/app/enums/action-mode.enum.js +0 -7
  174. package/esm5/app/enums/action-type.enum.js +0 -9
  175. package/esm5/app/enums/item-date-mode.enum.js +0 -7
  176. package/esm5/app/enums/item-type.enum.js +0 -16
  177. package/esm5/app/fs-filter.module.js +0 -152
  178. package/esm5/app/helpers/build-query-params.js +0 -32
  179. package/esm5/app/helpers/compare.js +0 -50
  180. package/esm5/app/helpers/create-filter-item.js +0 -51
  181. package/esm5/app/helpers/find-value.js +0 -13
  182. package/esm5/app/helpers/get-range-name.js +0 -9
  183. package/esm5/app/helpers/parse-item-value-from-stored.js +0 -77
  184. package/esm5/app/helpers/query-param-transformers.js +0 -9
  185. package/esm5/app/helpers/restore-items.js +0 -43
  186. package/esm5/app/helpers/try-convert-to-number.js +0 -6
  187. package/esm5/app/injectors/filter-config.js +0 -3
  188. package/esm5/app/injectors/filter-drawer-data.js +0 -3
  189. package/esm5/app/injectors/filter-drawer-overlay.js +0 -3
  190. package/esm5/app/interfaces/action.interface.js +0 -1
  191. package/esm5/app/interfaces/config.interface.js +0 -1
  192. package/esm5/app/interfaces/external-params.interface.js +0 -1
  193. package/esm5/app/interfaces/filter.interface.js +0 -1
  194. package/esm5/app/interfaces/items/autocomplete-chips.interface.js +0 -1
  195. package/esm5/app/interfaces/items/autocomplete.interface.js +0 -1
  196. package/esm5/app/interfaces/items/base.interface.js +0 -1
  197. package/esm5/app/interfaces/items/checkbox.interface.js +0 -1
  198. package/esm5/app/interfaces/items/chips.interface.js +0 -1
  199. package/esm5/app/interfaces/items/date-range.interface.js +0 -1
  200. package/esm5/app/interfaces/items/date.interface.js +0 -1
  201. package/esm5/app/interfaces/items/range.interface.js +0 -1
  202. package/esm5/app/interfaces/items/select.interface.js +0 -1
  203. package/esm5/app/interfaces/items/text.interface.js +0 -1
  204. package/esm5/app/interfaces/saved-filters.interface.js +0 -1
  205. package/esm5/app/interfaces/update-filter-item.interface.js +0 -1
  206. package/esm5/app/models/action-menu-item.model.js +0 -91
  207. package/esm5/app/models/action.model.js +0 -122
  208. package/esm5/app/models/filter-config.js +0 -139
  209. package/esm5/app/models/items/autocomplete/base-autocomplete-item.js +0 -25
  210. package/esm5/app/models/items/autocomplete-chips-item.js +0 -82
  211. package/esm5/app/models/items/autocomplete-item.js +0 -48
  212. package/esm5/app/models/items/base-item.js +0 -353
  213. package/esm5/app/models/items/checkbox-item.js +0 -73
  214. package/esm5/app/models/items/chips-item.js +0 -114
  215. package/esm5/app/models/items/date/base-date-item.js +0 -68
  216. package/esm5/app/models/items/date-item.js +0 -28
  217. package/esm5/app/models/items/date-range/base-date-range-item.js +0 -173
  218. package/esm5/app/models/items/date-range-item.js +0 -14
  219. package/esm5/app/models/items/date-time-item.js +0 -18
  220. package/esm5/app/models/items/date-time-range-item.js +0 -14
  221. package/esm5/app/models/items/range-item.js +0 -110
  222. package/esm5/app/models/items/select/base-select-item.js +0 -43
  223. package/esm5/app/models/items/select/multiple-select-item.js +0 -82
  224. package/esm5/app/models/items/select/simple-select-item.js +0 -79
  225. package/esm5/app/models/items/select-item.js +0 -17
  226. package/esm5/app/models/items/text-item.js +0 -46
  227. package/esm5/app/pipes/remove-isolate-value.pipe.js +0 -24
  228. package/esm5/app/providers/filter-meta.js +0 -10
  229. package/esm5/app/services/external-params/persistance-params-controller.service.js +0 -65
  230. package/esm5/app/services/external-params/query-params-controller.service.js +0 -66
  231. package/esm5/app/services/external-params/saved-filters-controller.service.js +0 -199
  232. package/esm5/app/services/external-params-controller.service.js +0 -193
  233. package/esm5/app/services/filter-overlay.service.js +0 -111
  234. package/esm5/app/services/focus-controller.service.js +0 -47
  235. package/esm5/app/services/items-store.service.js +0 -342
  236. package/esm5/firestitch-filter.js +0 -44
  237. package/esm5/public_api.js +0 -35
  238. package/fesm5/firestitch-filter.js +0 -5119
  239. package/fesm5/firestitch-filter.js.map +0 -1
  240. package/firestitch-filter.metadata.json +0 -1
@@ -1,17 +0,0 @@
1
- import { MultipleSelectItem } from './select/multiple-select-item';
2
- import { SimpleSelectItem } from './select/simple-select-item';
3
- var SelectItem = /** @class */ (function () {
4
- function SelectItem() {
5
- }
6
- SelectItem.create = function (config) {
7
- if (config.multiple) {
8
- return new MultipleSelectItem(config, null);
9
- }
10
- else {
11
- return new SimpleSelectItem(config, null);
12
- }
13
- };
14
- return SelectItem;
15
- }());
16
- export { SelectItem };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9maWx0ZXIvIiwic291cmNlcyI6WyJhcHAvbW9kZWxzL2l0ZW1zL3NlbGVjdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRy9EO0lBQUE7SUFXQSxDQUFDO0lBVGUsaUJBQU0sR0FBcEIsVUFBcUIsTUFBTTtRQUN6QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDbkIsT0FBTyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUM3QzthQUFNO1lBQ0wsT0FBTyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtTQUMxQztJQUNILENBQUM7SUFHSCxpQkFBQztBQUFELENBQUMsQUFYRCxJQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9pdGVtLXR5cGUuZW51bSc7XG5cbmltcG9ydCB7IE11bHRpcGxlU2VsZWN0SXRlbSB9IGZyb20gJy4vc2VsZWN0L211bHRpcGxlLXNlbGVjdC1pdGVtJztcbmltcG9ydCB7IFNpbXBsZVNlbGVjdEl0ZW0gfSBmcm9tICcuL3NlbGVjdC9zaW1wbGUtc2VsZWN0LWl0ZW0nO1xuXG5cbmV4cG9ydCBjbGFzcyBTZWxlY3RJdGVtIHtcblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShjb25maWcpOiBTaW1wbGVTZWxlY3RJdGVtIHwgTXVsdGlwbGVTZWxlY3RJdGVtIHtcbiAgICBpZiAoY29uZmlnLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gbmV3IE11bHRpcGxlU2VsZWN0SXRlbShjb25maWcsIG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IFNpbXBsZVNlbGVjdEl0ZW0oY29uZmlnLCBudWxsKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBJdGVtVHlwZS5TZWxlY3Q7XG59XG4iXX0=
@@ -1,46 +0,0 @@
1
- import { __extends } from "tslib";
2
- import { BaseItem } from './base-item';
3
- var TextItem = /** @class */ (function (_super) {
4
- __extends(TextItem, _super);
5
- function TextItem() {
6
- return _super !== null && _super.apply(this, arguments) || this;
7
- }
8
- TextItem.create = function (config) {
9
- return new TextItem(config, null);
10
- };
11
- Object.defineProperty(TextItem.prototype, "value", {
12
- get: function () {
13
- return !!this.model ? this.model : null;
14
- },
15
- enumerable: true,
16
- configurable: true
17
- });
18
- Object.defineProperty(TextItem.prototype, "queryObject", {
19
- get: function () {
20
- var value = this.value;
21
- var name = this.name;
22
- var params = {};
23
- params[name] = value;
24
- return params;
25
- },
26
- enumerable: true,
27
- configurable: true
28
- });
29
- TextItem.prototype.getChipsContent = function () {
30
- return this.model;
31
- };
32
- TextItem.prototype._validateModel = function () { };
33
- TextItem.prototype._parseConfig = function (item) {
34
- this.prefix = item.prefix;
35
- this.suffix = item.suffix;
36
- _super.prototype._parseConfig.call(this, item);
37
- };
38
- TextItem.prototype._init = function () { };
39
- TextItem.prototype._clearValue = function (defaultValue) {
40
- if (defaultValue === void 0) { defaultValue = undefined; }
41
- this.model = defaultValue !== null && defaultValue !== void 0 ? defaultValue : '';
42
- };
43
- return TextItem;
44
- }(BaseItem));
45
- export { TextItem };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pdGVtLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvZmlsdGVyLyIsInNvdXJjZXMiOlsiYXBwL21vZGVscy9pdGVtcy90ZXh0LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUtBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdkM7SUFBOEIsNEJBQStCO0lBQTdEOztJQXlDQSxDQUFDO0lBdkNlLGVBQU0sR0FBcEIsVUFBcUIsTUFBNkI7UUFDaEQsT0FBTyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUtELHNCQUFXLDJCQUFLO2FBQWhCO1lBQ0UsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFDLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsaUNBQVc7YUFBdEI7WUFDRSxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3pCLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDdkIsSUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBRWxCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFFckIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQzs7O09BQUE7SUFFTSxrQ0FBZSxHQUF0QjtRQUNFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRVMsaUNBQWMsR0FBeEIsY0FBNEIsQ0FBQztJQUVuQiwrQkFBWSxHQUF0QixVQUF1QixJQUEyQjtRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTFCLGlCQUFNLFlBQVksWUFBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRVMsd0JBQUssR0FBZixjQUFtQixDQUFDO0lBRVYsOEJBQVcsR0FBckIsVUFBc0IsWUFBaUM7UUFBakMsNkJBQUEsRUFBQSx3QkFBaUM7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxZQUFZLGFBQVosWUFBWSxjQUFaLFlBQVksR0FBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUNILGVBQUM7QUFBRCxDQUFDLEFBekNELENBQThCLFFBQVEsR0F5Q3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9pdGVtLXR5cGUuZW51bSc7XG5pbXBvcnQge1xuICBJRmlsdGVyQ29uZmlnVGV4dEl0ZW1cbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pdGVtcy90ZXh0LmludGVyZmFjZSc7XG5cbmltcG9ydCB7IEJhc2VJdGVtIH0gZnJvbSAnLi9iYXNlLWl0ZW0nO1xuXG5cbmV4cG9ydCBjbGFzcyBUZXh0SXRlbSBleHRlbmRzIEJhc2VJdGVtPElGaWx0ZXJDb25maWdUZXh0SXRlbT4ge1xuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlKGNvbmZpZzogSUZpbHRlckNvbmZpZ1RleHRJdGVtKSB7XG4gICAgcmV0dXJuIG5ldyBUZXh0SXRlbShjb25maWcsIG51bGwpO1xuICB9XG5cbiAgcHVibGljIHByZWZpeDogc3RyaW5nO1xuICBwdWJsaWMgc3VmZml4OiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLm1vZGVsID8gdGhpcy5tb2RlbCA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5T2JqZWN0KCkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5uYW1lO1xuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xuXG4gICAgcGFyYW1zW25hbWVdID0gdmFsdWU7XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldENoaXBzQ29udGVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdmFsaWRhdGVNb2RlbCgpIHt9XG5cbiAgcHJvdGVjdGVkIF9wYXJzZUNvbmZpZyhpdGVtOiBJRmlsdGVyQ29uZmlnVGV4dEl0ZW0pIHtcbiAgICB0aGlzLnByZWZpeCA9IGl0ZW0ucHJlZml4O1xuICAgIHRoaXMuc3VmZml4ID0gaXRlbS5zdWZmaXg7XG5cbiAgICBzdXBlci5fcGFyc2VDb25maWcoaXRlbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2luaXQoKSB7fVxuXG4gIHByb3RlY3RlZCBfY2xlYXJWYWx1ZShkZWZhdWx0VmFsdWU6IHVua25vd24gPSB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm1vZGVsID0gZGVmYXVsdFZhbHVlID8/ICcnO1xuICB9XG59XG4iXX0=
@@ -1,24 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Pipe } from '@angular/core';
3
- var FsFilterIsolateValues = /** @class */ (function () {
4
- function FsFilterIsolateValues() {
5
- }
6
- FsFilterIsolateValues.prototype.transform = function (values, isolate) {
7
- if (!isolate) {
8
- return values;
9
- }
10
- else {
11
- return values.filter(function (value) {
12
- return value.value !== isolate.value;
13
- });
14
- }
15
- };
16
- FsFilterIsolateValues = __decorate([
17
- Pipe({
18
- name: 'fsFilterIsolateValues'
19
- })
20
- ], FsFilterIsolateValues);
21
- return FsFilterIsolateValues;
22
- }());
23
- export { FsFilterIsolateValues };
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWlzb2xhdGUtdmFsdWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2ZpbHRlci8iLCJzb3VyY2VzIjpbImFwcC9waXBlcy9yZW1vdmUtaXNvbGF0ZS12YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQU9wRDtJQUFBO0lBVUEsQ0FBQztJQVRDLHlDQUFTLEdBQVQsVUFBVSxNQUF1QixFQUFFLE9BQU87UUFDeEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBTTtZQUNMLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFDLEtBQUs7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsS0FBSyxDQUFBO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBVFUscUJBQXFCO1FBSGpDLElBQUksQ0FBQztZQUNKLElBQUksRUFBRSx1QkFBdUI7U0FDOUIsQ0FBQztPQUNXLHFCQUFxQixDQVVqQztJQUFELDRCQUFDO0NBQUEsQUFWRCxJQVVDO1NBVlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtJztcblxuXG5AUGlwZSh7XG4gIG5hbWU6ICdmc0ZpbHRlcklzb2xhdGVWYWx1ZXMnXG59KVxuZXhwb3J0IGNsYXNzIEZzRmlsdGVySXNvbGF0ZVZhbHVlcyBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWVzOiBCYXNlSXRlbTxhbnk+W10sIGlzb2xhdGUpIHtcbiAgICBpZiAoIWlzb2xhdGUpIHtcbiAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB2YWx1ZXMuZmlsdGVyKCh2YWx1ZSkgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWUudmFsdWUgIT09IGlzb2xhdGUudmFsdWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,10 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export var FS_FILTER_META = new InjectionToken('fs.filter.meta', {
3
- providedIn: 'root',
4
- factory: function () {
5
- return {
6
- openedFilters: 0,
7
- };
8
- }
9
- });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW1ldGEuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9maWx0ZXIvIiwic291cmNlcyI6WyJhcHAvcHJvdmlkZXJzL2ZpbHRlci1tZXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0MsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUN6QixJQUFJLGNBQWMsQ0FBZSxnQkFBZ0IsRUFDL0M7SUFDRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUU7UUFDUCxPQUFPO1lBQ0wsYUFBYSxFQUFFLENBQUM7U0FDakIsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZzRmlsdGVyTWV0YSB7XG4gIG9wZW5lZEZpbHRlcnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IEZTX0ZJTFRFUl9NRVRBID1cbiAgbmV3IEluamVjdGlvblRva2VuPEZzRmlsdGVyTWV0YT4oJ2ZzLmZpbHRlci5tZXRhJyxcbiAgICB7XG4gICAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgb3BlbmVkRmlsdGVyczogMCxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG4iXX0=
@@ -1,65 +0,0 @@
1
- import { __decorate, __extends, __metadata, __param } from "tslib";
2
- import { Injectable, Optional } from '@angular/core';
3
- import { Location } from '@angular/common';
4
- import { ActivatedRoute } from '@angular/router';
5
- import { MatDialogRef } from '@angular/material/dialog';
6
- import { DrawerRef } from '@firestitch/drawer';
7
- import { FsPersistanceStore } from '@firestitch/store';
8
- import { getNormalizedPath } from '@firestitch/common';
9
- import { FsStore } from '@firestitch/store';
10
- import { restoreItems } from '../../helpers/restore-items';
11
- import { FsFilterItemsStore } from '../items-store.service';
12
- var FILTER_STORE_KEY = 'fs-filter-persist';
13
- var PersistanceParamsController = /** @class */ (function (_super) {
14
- __extends(PersistanceParamsController, _super);
15
- function PersistanceParamsController(_store, _route, _location, _itemsStore, _dialogRef, _drawerRef) {
16
- var _this = _super.call(this, _store, _route) || this;
17
- _this._location = _location;
18
- _this._itemsStore = _itemsStore;
19
- _this._dialogRef = _dialogRef;
20
- _this._drawerRef = _drawerRef;
21
- _this.STORE_KEY = FILTER_STORE_KEY;
22
- return _this;
23
- }
24
- Object.defineProperty(PersistanceParamsController.prototype, "enalbed", {
25
- get: function () {
26
- return this._enabled;
27
- },
28
- enumerable: true,
29
- configurable: true
30
- });
31
- PersistanceParamsController.prototype.init = function (persistanceConfig, namespace, paramsCase) {
32
- this._paramsCase = paramsCase;
33
- namespace = namespace !== null && namespace !== void 0 ? namespace : getNormalizedPath(this._location);
34
- var persistanceDisabled = !!this._dialogRef || !!this._drawerRef;
35
- this.setConfig(persistanceConfig, namespace, persistanceDisabled);
36
- };
37
- PersistanceParamsController.prototype.restore = function () {
38
- _super.prototype.restore.call(this);
39
- if (this._value) {
40
- this._value.data = restoreItems(this._value.data, this._itemsStore.items, this._paramsCase);
41
- }
42
- };
43
- PersistanceParamsController.ctorParameters = function () { return [
44
- { type: FsStore },
45
- { type: ActivatedRoute },
46
- { type: Location },
47
- { type: FsFilterItemsStore },
48
- { type: MatDialogRef, decorators: [{ type: Optional }] },
49
- { type: DrawerRef, decorators: [{ type: Optional }] }
50
- ]; };
51
- PersistanceParamsController = __decorate([
52
- Injectable(),
53
- __param(4, Optional()),
54
- __param(5, Optional()),
55
- __metadata("design:paramtypes", [FsStore,
56
- ActivatedRoute,
57
- Location,
58
- FsFilterItemsStore,
59
- MatDialogRef,
60
- DrawerRef])
61
- ], PersistanceParamsController);
62
- return PersistanceParamsController;
63
- }(FsPersistanceStore));
64
- export { PersistanceParamsController };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc2lzdGFuY2UtcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2ZpbHRlci8iLCJzb3VyY2VzIjpbImFwcC9zZXJ2aWNlcy9leHRlcm5hbC1wYXJhbXMvcGVyc2lzdGFuY2UtcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsSUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztBQUk3QztJQUFpRCwrQ0FBdUM7SUFLdEYscUNBQ0UsTUFBZSxFQUNmLE1BQXNCLEVBQ2QsU0FBbUIsRUFDbkIsV0FBK0IsRUFDbkIsVUFBaUMsRUFDakMsVUFBOEI7UUFOcEQsWUFRRSxrQkFBTSxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQ3RCO1FBTlMsZUFBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixpQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDbkIsZ0JBQVUsR0FBVixVQUFVLENBQXVCO1FBQ2pDLGdCQUFVLEdBQVYsVUFBVSxDQUFvQjtRQVQxQyxlQUFTLEdBQUcsZ0JBQWdCLENBQUM7O0lBWXZDLENBQUM7SUFFRCxzQkFBVyxnREFBTzthQUFsQjtZQUNFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDOzs7T0FBQTtJQUVNLDBDQUFJLEdBQVgsVUFDRSxpQkFBc0MsRUFDdEMsU0FBaUIsRUFDakIsVUFBNkI7UUFFN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFFOUIsU0FBUyxHQUFHLFNBQVMsYUFBVCxTQUFTLGNBQVQsU0FBUyxHQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzRCxJQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRW5FLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVNLDZDQUFPLEdBQWQ7UUFDRSxpQkFBTSxPQUFPLFdBQUUsQ0FBQztRQUVoQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQzdGO0lBQ0gsQ0FBQzs7Z0JBakNTLE9BQU87Z0JBQ1AsY0FBYztnQkFDSCxRQUFRO2dCQUNOLGtCQUFrQjtnQkFDUCxZQUFZLHVCQUEzQyxRQUFRO2dCQUN1QixTQUFTLHVCQUF4QyxRQUFROztJQVhBLDJCQUEyQjtRQUR2QyxVQUFVLEVBQUU7UUFXUixXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxRQUFRLEVBQUUsQ0FBQTt5Q0FMSCxPQUFPO1lBQ1AsY0FBYztZQUNILFFBQVE7WUFDTixrQkFBa0I7WUFDUCxZQUFZO1lBQ1osU0FBUztPQVhoQywyQkFBMkIsQ0F5Q3ZDO0lBQUQsa0NBQUM7Q0FBQSxBQXpDRCxDQUFpRCxrQkFBa0IsR0F5Q2xFO1NBekNZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBEcmF3ZXJSZWYgfSBmcm9tICdAZmlyZXN0aXRjaC9kcmF3ZXInO1xuaW1wb3J0IHsgRnNQZXJzaXN0YW5jZVN0b3JlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc3RvcmUnO1xuaW1wb3J0IHsgZ2V0Tm9ybWFsaXplZFBhdGggfSBmcm9tICdAZmlyZXN0aXRjaC9jb21tb24nO1xuaW1wb3J0IHsgRnNTdG9yZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3N0b3JlJztcblxuaW1wb3J0IHsgRnNGaWx0ZXJQZXJzaXN0YW5jZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyByZXN0b3JlSXRlbXMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3Jlc3RvcmUtaXRlbXMnO1xuaW1wb3J0IHsgRnNGaWx0ZXJJdGVtc1N0b3JlIH0gZnJvbSAnLi4vaXRlbXMtc3RvcmUuc2VydmljZSc7XG5cbmNvbnN0IEZJTFRFUl9TVE9SRV9LRVkgPSAnZnMtZmlsdGVyLXBlcnNpc3QnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQZXJzaXN0YW5jZVBhcmFtc0NvbnRyb2xsZXIgZXh0ZW5kcyBGc1BlcnNpc3RhbmNlU3RvcmU8RnNGaWx0ZXJQZXJzaXN0YW5jZT4ge1xuXG4gIHByb3RlY3RlZCBTVE9SRV9LRVkgPSBGSUxURVJfU1RPUkVfS0VZO1xuICBwcm90ZWN0ZWQgX3BhcmFtc0Nhc2U6ICdzbmFrZScgfCAnY2FtZWwnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIF9zdG9yZTogRnNTdG9yZSxcbiAgICBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX2xvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIF9pdGVtc1N0b3JlOiBGc0ZpbHRlckl0ZW1zU3RvcmUsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8dW5rbm93bj4sXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZHJhd2VyUmVmOiBEcmF3ZXJSZWY8dW5rbm93bj4sXG4gICkge1xuICAgIHN1cGVyKF9zdG9yZSwgX3JvdXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW5hbGJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KFxuICAgIHBlcnNpc3RhbmNlQ29uZmlnOiBGc0ZpbHRlclBlcnNpc3RhbmNlLFxuICAgIG5hbWVzcGFjZTogc3RyaW5nLFxuICAgIHBhcmFtc0Nhc2U6ICdzbmFrZScgfCAnY2FtZWwnLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9wYXJhbXNDYXNlID0gcGFyYW1zQ2FzZTtcblxuICAgIG5hbWVzcGFjZSA9IG5hbWVzcGFjZSA/PyBnZXROb3JtYWxpemVkUGF0aCh0aGlzLl9sb2NhdGlvbik7XG4gICAgY29uc3QgcGVyc2lzdGFuY2VEaXNhYmxlZCA9ICEhdGhpcy5fZGlhbG9nUmVmIHx8ICEhdGhpcy5fZHJhd2VyUmVmO1xuXG4gICAgdGhpcy5zZXRDb25maWcocGVyc2lzdGFuY2VDb25maWcsIG5hbWVzcGFjZSwgcGVyc2lzdGFuY2VEaXNhYmxlZCk7XG4gIH1cblxuICBwdWJsaWMgcmVzdG9yZSgpOiB2b2lkIHtcbiAgICBzdXBlci5yZXN0b3JlKCk7XG5cbiAgICBpZiAodGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlLmRhdGEgPSByZXN0b3JlSXRlbXModGhpcy5fdmFsdWUuZGF0YSwgdGhpcy5faXRlbXNTdG9yZS5pdGVtcywgdGhpcy5fcGFyYW1zQ2FzZSk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -1,66 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { ActivatedRoute, Router } from '@angular/router';
4
- import { FsFilterItemsStore } from '../items-store.service';
5
- import { restoreItems } from '../../helpers/restore-items';
6
- var QueryParamsController = /** @class */ (function () {
7
- function QueryParamsController(_router, _route, _itemsStore) {
8
- this._router = _router;
9
- this._route = _route;
10
- this._itemsStore = _itemsStore;
11
- this._enabled = false;
12
- }
13
- Object.defineProperty(QueryParamsController.prototype, "enabled", {
14
- get: function () {
15
- return this._enabled;
16
- },
17
- enumerable: true,
18
- configurable: true
19
- });
20
- Object.defineProperty(QueryParamsController.prototype, "fetchedParams", {
21
- get: function () {
22
- return this._fetchedParams;
23
- },
24
- enumerable: true,
25
- configurable: true
26
- });
27
- QueryParamsController.prototype.init = function (enabled, paramsCase) {
28
- this._enabled = enabled;
29
- this._paramsCase = paramsCase;
30
- if (this.enabled) {
31
- this.fetchFromQueryParams();
32
- }
33
- };
34
- QueryParamsController.prototype.writeStateToQueryParams = function (params) {
35
- if (!this._enabled) {
36
- return;
37
- }
38
- // Update query
39
- this._router.navigate([], {
40
- replaceUrl: true,
41
- relativeTo: this._route,
42
- queryParams: params,
43
- queryParamsHandling: 'merge',
44
- }).then(function () { });
45
- };
46
- /**
47
- * Parse query and update filter values
48
- */
49
- QueryParamsController.prototype.fetchFromQueryParams = function () {
50
- this._fetchedParams = restoreItems(this._route.snapshot.queryParams, this._itemsStore.items, this._paramsCase);
51
- };
52
- QueryParamsController.ctorParameters = function () { return [
53
- { type: Router },
54
- { type: ActivatedRoute },
55
- { type: FsFilterItemsStore }
56
- ]; };
57
- QueryParamsController = __decorate([
58
- Injectable(),
59
- __metadata("design:paramtypes", [Router,
60
- ActivatedRoute,
61
- FsFilterItemsStore])
62
- ], QueryParamsController);
63
- return QueryParamsController;
64
- }());
65
- export { QueryParamsController };
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2ZpbHRlci8iLCJzb3VyY2VzIjpbImFwcC9zZXJ2aWNlcy9leHRlcm5hbC1wYXJhbXMvcXVlcnktcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUkzRDtJQU1FLCtCQUNVLE9BQWUsRUFDZixNQUFzQixFQUN0QixXQUErQjtRQUYvQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBUGpDLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFRdEIsQ0FBQztJQUVKLHNCQUFXLDBDQUFPO2FBQWxCO1lBQ0UsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsZ0RBQWE7YUFBeEI7WUFDRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDN0IsQ0FBQzs7O09BQUE7SUFFTSxvQ0FBSSxHQUFYLFVBQVksT0FBZ0IsRUFBRSxVQUE2QjtRQUN6RCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUU5QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRU0sdURBQXVCLEdBQTlCLFVBQStCLE1BQU07UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFBRSxPQUFNO1NBQUU7UUFFOUIsZUFBZTtRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUN4QixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDdkIsV0FBVyxFQUFFLE1BQU07WUFDbkIsbUJBQW1CLEVBQUUsT0FBTztTQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQU8sQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksb0RBQW9CLEdBQTNCO1FBQ0UsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQ3RCLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7SUFDSixDQUFDOztnQkEzQ2tCLE1BQU07Z0JBQ1AsY0FBYztnQkFDVCxrQkFBa0I7O0lBVDlCLHFCQUFxQjtRQURqQyxVQUFVLEVBQUU7eUNBUVEsTUFBTTtZQUNQLGNBQWM7WUFDVCxrQkFBa0I7T0FUOUIscUJBQXFCLENBbURqQztJQUFELDRCQUFDO0NBQUEsQUFuREQsSUFtREM7U0FuRFkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IEZzRmlsdGVySXRlbXNTdG9yZSB9IGZyb20gJy4uL2l0ZW1zLXN0b3JlLnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVzdG9yZUl0ZW1zIH0gZnJvbSAnLi4vLi4vaGVscGVycy9yZXN0b3JlLWl0ZW1zJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUXVlcnlQYXJhbXNDb250cm9sbGVyIHtcblxuICBwcml2YXRlIF9lbmFibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3BhcmFtc0Nhc2U6ICdzbmFrZScgfCAnY2FtZWwnO1xuICBwcml2YXRlIF9mZXRjaGVkUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIF9pdGVtc1N0b3JlOiBGc0ZpbHRlckl0ZW1zU3RvcmVcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmV0Y2hlZFBhcmFtcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmV0Y2hlZFBhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBpbml0KGVuYWJsZWQ6IGJvb2xlYW4sIHBhcmFtc0Nhc2U6ICdzbmFrZScgfCAnY2FtZWwnKSB7XG4gICAgdGhpcy5fZW5hYmxlZCA9IGVuYWJsZWQ7XG4gICAgdGhpcy5fcGFyYW1zQ2FzZSA9IHBhcmFtc0Nhc2U7XG5cbiAgICBpZiAodGhpcy5lbmFibGVkKSB7XG4gICAgICB0aGlzLmZldGNoRnJvbVF1ZXJ5UGFyYW1zKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdyaXRlU3RhdGVUb1F1ZXJ5UGFyYW1zKHBhcmFtcykge1xuICAgIGlmICghdGhpcy5fZW5hYmxlZCkgeyByZXR1cm4gfVxuXG4gICAgLy8gVXBkYXRlIHF1ZXJ5XG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICByZXBsYWNlVXJsOiB0cnVlLFxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5fcm91dGUsXG4gICAgICBxdWVyeVBhcmFtczogcGFyYW1zLFxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICB9KS50aGVuKCgpID0+IHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBxdWVyeSBhbmQgdXBkYXRlIGZpbHRlciB2YWx1ZXNcbiAgICovXG4gIHB1YmxpYyBmZXRjaEZyb21RdWVyeVBhcmFtcygpIHtcbiAgICB0aGlzLl9mZXRjaGVkUGFyYW1zID0gcmVzdG9yZUl0ZW1zKFxuICAgICAgdGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMsXG4gICAgICB0aGlzLl9pdGVtc1N0b3JlLml0ZW1zLFxuICAgICAgdGhpcy5fcGFyYW1zQ2FzZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,199 +0,0 @@
1
- import { __decorate, __metadata, __read, __spread } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { MatDialog } from '@angular/material/dialog';
4
- import { BehaviorSubject, Subject } from 'rxjs';
5
- import { distinctUntilChanged, take, takeUntil, tap, } from 'rxjs/operators';
6
- import { FsFilterSavedFilterEditComponent } from '../../components/saved-filter-edit/saved-filter-edit.component';
7
- import { restoreItems } from '../../helpers/restore-items';
8
- import { buildQueryParams } from '../../helpers/build-query-params';
9
- import { FsFilterItemsStore } from '../items-store.service';
10
- var SavedFiltersController = /** @class */ (function () {
11
- function SavedFiltersController(_itemsStore, _dialog) {
12
- this._itemsStore = _itemsStore;
13
- this._dialog = _dialog;
14
- this._savedFilters$ = new BehaviorSubject([]);
15
- this._activeFilter$ = new BehaviorSubject(null);
16
- this._enabled$ = new BehaviorSubject(false);
17
- this._destroy$ = new Subject();
18
- }
19
- Object.defineProperty(SavedFiltersController.prototype, "enabled", {
20
- get: function () {
21
- return this._enabled$.getValue();
22
- },
23
- enumerable: true,
24
- configurable: true
25
- });
26
- Object.defineProperty(SavedFiltersController.prototype, "enabled$", {
27
- get: function () {
28
- return this._enabled$
29
- .pipe(distinctUntilChanged());
30
- },
31
- enumerable: true,
32
- configurable: true
33
- });
34
- Object.defineProperty(SavedFiltersController.prototype, "savedFilters", {
35
- get: function () {
36
- return this._savedFilters$.getValue();
37
- },
38
- set: function (filters) {
39
- this._savedFilters$.next(filters);
40
- },
41
- enumerable: true,
42
- configurable: true
43
- });
44
- Object.defineProperty(SavedFiltersController.prototype, "savedFilters$", {
45
- get: function () {
46
- return this._savedFilters$
47
- .pipe(distinctUntilChanged());
48
- },
49
- enumerable: true,
50
- configurable: true
51
- });
52
- Object.defineProperty(SavedFiltersController.prototype, "activeFilter", {
53
- get: function () {
54
- return this._activeFilter$.getValue();
55
- },
56
- enumerable: true,
57
- configurable: true
58
- });
59
- Object.defineProperty(SavedFiltersController.prototype, "activeFilter$", {
60
- get: function () {
61
- return this._activeFilter$
62
- .pipe(distinctUntilChanged());
63
- },
64
- enumerable: true,
65
- configurable: true
66
- });
67
- Object.defineProperty(SavedFiltersController.prototype, "activeFilterData", {
68
- get: function () {
69
- var _a;
70
- return (_a = this._activeFilter$.getValue()) === null || _a === void 0 ? void 0 : _a.filters;
71
- },
72
- enumerable: true,
73
- configurable: true
74
- });
75
- SavedFiltersController.prototype.ngOnDestroy = function () {
76
- this._destroy$.next();
77
- this._destroy$.complete();
78
- };
79
- SavedFiltersController.prototype.init = function (remoteParamsConfig, paramsCase) {
80
- if (!remoteParamsConfig) {
81
- this._setEnabledStatus(false);
82
- return;
83
- }
84
- this._setEnabledStatus(true);
85
- this._paramsCase = paramsCase;
86
- this._config = remoteParamsConfig;
87
- };
88
- SavedFiltersController.prototype.initSavedFilters = function (filters) {
89
- var _this = this;
90
- filters = __spread(filters);
91
- filters.forEach(function (savedFilter) {
92
- savedFilter.filters = restoreItems(savedFilter.filters, _this._itemsStore.items, _this._paramsCase);
93
- });
94
- this.savedFilters = filters;
95
- };
96
- SavedFiltersController.prototype.load = function () {
97
- var _this = this;
98
- return this._config.load()
99
- .pipe(tap(function (response) {
100
- _this.initSavedFilters(response);
101
- }));
102
- };
103
- SavedFiltersController.prototype.save = function (savedFilter) {
104
- return this._config.save(savedFilter);
105
- };
106
- SavedFiltersController.prototype.order = function (savedFilters) {
107
- var _this = this;
108
- return this._config.order(savedFilters)
109
- .pipe(tap(function (response) {
110
- _this.savedFilters = __spread(response);
111
- }));
112
- };
113
- SavedFiltersController.prototype.delete = function (savedFilter) {
114
- var _this = this;
115
- return this._config.delete(savedFilter)
116
- .pipe(tap(function (response) {
117
- _this.savedFilters = _this.savedFilters
118
- .filter(function (f) { return f.id !== response.id; });
119
- }));
120
- };
121
- SavedFiltersController.prototype.setActiveFilter = function (savedFilter) {
122
- if (savedFilter) {
123
- var existingFilter = this.savedFilters
124
- .find(function (f) { return f.id === savedFilter.id; });
125
- if (!existingFilter) {
126
- throw new Error('Saved filter cannot be activated, because it does not exists. Filter ID = ' + savedFilter.id);
127
- }
128
- this._activeFilter$.next(existingFilter);
129
- }
130
- else {
131
- this._activeFilter$.next(null);
132
- }
133
- };
134
- SavedFiltersController.prototype.openSavedFilterEditDialog = function () {
135
- var _this = this;
136
- var params = buildQueryParams(this._itemsStore.valuesAsQuery(), this._itemsStore.items);
137
- var values = this._itemsStore.values(true);
138
- var dialogConfig = {
139
- data: {
140
- params: params,
141
- savedFilters: this.savedFilters,
142
- saveCallback: this.save.bind(this),
143
- },
144
- };
145
- this._dialog
146
- .open(FsFilterSavedFilterEditComponent, dialogConfig)
147
- .beforeClosed()
148
- .pipe(take(1), takeUntil(this._destroy$))
149
- .subscribe(function (updatedFilter) {
150
- if (updatedFilter) {
151
- // get already saved related filter object
152
- var savedFilter = _this.savedFilters
153
- .find(function (f) { return f.id === updatedFilter.id; });
154
- // restore values from query string
155
- updatedFilter.filters = restoreItems(updatedFilter.filters, _this._itemsStore.items, _this._paramsCase);
156
- if (savedFilter) {
157
- Object.assign(savedFilter, updatedFilter);
158
- }
159
- else {
160
- _this.resetActiveFilter();
161
- _this.savedFilters = __spread(_this.savedFilters, [
162
- updatedFilter
163
- ]);
164
- }
165
- _this.updateActiveFilter();
166
- }
167
- });
168
- };
169
- SavedFiltersController.prototype.updateActiveFilter = function () {
170
- // Lookup active filter
171
- var acitveFilter = this.savedFilters
172
- .find(function (f) { return f.active; });
173
- if (acitveFilter) {
174
- this.setActiveFilter(acitveFilter);
175
- }
176
- };
177
- SavedFiltersController.prototype.resetActiveFilter = function () {
178
- // Reset all previously activated filters
179
- this.savedFilters.forEach(function (savedFilter) {
180
- savedFilter.active = false;
181
- });
182
- this.setActiveFilter(null);
183
- };
184
- SavedFiltersController.prototype._setEnabledStatus = function (value) {
185
- this._enabled$.next(value);
186
- };
187
- SavedFiltersController.ctorParameters = function () { return [
188
- { type: FsFilterItemsStore },
189
- { type: MatDialog }
190
- ]; };
191
- SavedFiltersController = __decorate([
192
- Injectable(),
193
- __metadata("design:paramtypes", [FsFilterItemsStore,
194
- MatDialog])
195
- ], SavedFiltersController);
196
- return SavedFiltersController;
197
- }());
198
- export { SavedFiltersController };
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZWQtZmlsdGVycy1jb250cm9sbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9maWx0ZXIvIiwic291cmNlcyI6WyJhcHAvc2VydmljZXMvZXh0ZXJuYWwtcGFyYW1zL3NhdmVkLWZpbHRlcnMtY29udHJvbGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLElBQUksRUFDSixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLGdDQUFnQyxFQUNqQyxNQUFNLGdFQUFnRSxDQUFDO0FBTXhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUk1RDtJQWFFLGdDQUNVLFdBQStCLEVBQy9CLE9BQWtCO1FBRGxCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixZQUFPLEdBQVAsT0FBTyxDQUFXO1FBWGxCLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBRS9ELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUlsRCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUtyQyxDQUFDO0lBRUosc0JBQVcsMkNBQU87YUFBbEI7WUFDRSxPQUFP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O2FBQzNCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFHTixDQUFDO0lBRU0sbURBQWtCLEdBQXpCO1FBQ0UsdUJBQXVCO1FBQ3ZCLElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZO2FBQ25DLElBQUksQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLENBQUMsQ0FBQyxNQUFNLEVBQVIsQ0FBUSxDQUFDLENBQUM7UUFFekIsSUFBSSxZQUFZLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFTSxrREFBaUIsR0FBeEI7UUFDRSx5Q0FBeUM7UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBQyxXQUFXO1lBQ3BDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sa0RBQWlCLEdBQXpCLFVBQTBCLEtBQWM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDNUIsQ0FBQzs7Z0JBek1zQixrQkFBa0I7Z0JBQ3RCLFNBQVM7O0lBZmpCLHNCQUFzQjtRQURsQyxVQUFVLEVBQUU7eUNBZVksa0JBQWtCO1lBQ3RCLFNBQVM7T0FmakIsc0JBQXNCLENBd05sQztJQUFELDZCQUFDO0NBQUEsQUF4TkQsSUF3TkM7U0F4Tlksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIEZzRmlsdGVyU2F2ZWRGaWx0ZXJFZGl0Q29tcG9uZW50XG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2F2ZWQtZmlsdGVyLWVkaXQvc2F2ZWQtZmlsdGVyLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIElGaWx0ZXJTYXZlZEZpbHRlcixcbiAgSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZ1xufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NhdmVkLWZpbHRlcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJFeHRlcm5hbFBhcmFtcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZXh0ZXJuYWwtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyByZXN0b3JlSXRlbXMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3Jlc3RvcmUtaXRlbXMnO1xuaW1wb3J0IHsgYnVpbGRRdWVyeVBhcmFtcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvYnVpbGQtcXVlcnktcGFyYW1zJztcbmltcG9ydCB7IEZzRmlsdGVySXRlbXNTdG9yZSB9IGZyb20gJy4uL2l0ZW1zLXN0b3JlLnNlcnZpY2UnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTYXZlZEZpbHRlcnNDb250cm9sbGVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcm90ZWN0ZWQgX2NvbmZpZzogSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZztcblxuICBwcm90ZWN0ZWQgX3NhdmVkRmlsdGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElGaWx0ZXJTYXZlZEZpbHRlcltdPihbXSk7XG4gIHByb3RlY3RlZCBfYWN0aXZlRmlsdGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUZpbHRlclNhdmVkRmlsdGVyPihudWxsKTtcblxuICBwcm90ZWN0ZWQgX2VuYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIF9wYXJhbXNDYXNlOiAnc25ha2UnIHwgJ2NhbWVsJztcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaXRlbXNTdG9yZTogRnNGaWx0ZXJJdGVtc1N0b3JlLFxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxuICApIHt9XG5cbiAgcHVibGljIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbmFibGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2F2ZWRGaWx0ZXJzKCk6IElGaWx0ZXJTYXZlZEZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fc2F2ZWRGaWx0ZXJzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzYXZlZEZpbHRlcnMkKCk6IE9ic2VydmFibGU8SUZpbHRlclNhdmVkRmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5fc2F2ZWRGaWx0ZXJzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVGaWx0ZXIoKTogSUZpbHRlclNhdmVkRmlsdGVyIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlRmlsdGVyJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVGaWx0ZXIkKCk6IE9ic2VydmFibGU8SUZpbHRlclNhdmVkRmlsdGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUZpbHRlciRcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlRmlsdGVyRGF0YSgpOiBJRmlsdGVyRXh0ZXJuYWxQYXJhbXMge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVGaWx0ZXIkLmdldFZhbHVlKCk/LmZpbHRlcnM7XG4gIH1cblxuICBwdWJsaWMgc2V0IHNhdmVkRmlsdGVycyhmaWx0ZXJzOiBJRmlsdGVyU2F2ZWRGaWx0ZXJbXSkge1xuICAgIHRoaXMuX3NhdmVkRmlsdGVycyQubmV4dChmaWx0ZXJzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KFxuICAgIHJlbW90ZVBhcmFtc0NvbmZpZzogSUZpbHRlclNhdmVkRmlsdGVyc0NvbmZpZyxcbiAgICBwYXJhbXNDYXNlOiAnc25ha2UnIHwgJ2NhbWVsJyxcbiAgKTogdm9pZCB7XG4gICAgaWYgKCFyZW1vdGVQYXJhbXNDb25maWcpIHtcbiAgICAgIHRoaXMuX3NldEVuYWJsZWRTdGF0dXMoZmFsc2UpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX3NldEVuYWJsZWRTdGF0dXModHJ1ZSk7XG5cbiAgICB0aGlzLl9wYXJhbXNDYXNlID0gcGFyYW1zQ2FzZTtcbiAgICB0aGlzLl9jb25maWcgPSByZW1vdGVQYXJhbXNDb25maWc7XG4gIH1cblxuICBwdWJsaWMgaW5pdFNhdmVkRmlsdGVycyhmaWx0ZXJzOiBJRmlsdGVyU2F2ZWRGaWx0ZXJbXSk6IHZvaWQge1xuICAgIGZpbHRlcnMgPSBbLi4uZmlsdGVyc107XG4gICAgZmlsdGVycy5mb3JFYWNoKChzYXZlZEZpbHRlcikgPT4ge1xuICAgICAgc2F2ZWRGaWx0ZXIuZmlsdGVycyA9IHJlc3RvcmVJdGVtcyhcbiAgICAgICAgc2F2ZWRGaWx0ZXIuZmlsdGVycyxcbiAgICAgICAgdGhpcy5faXRlbXNTdG9yZS5pdGVtcyxcbiAgICAgICAgdGhpcy5fcGFyYW1zQ2FzZVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzID0gZmlsdGVycztcbiAgfVxuXG4gIHB1YmxpYyBsb2FkKCk6IE9ic2VydmFibGU8SUZpbHRlclNhdmVkRmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLmluaXRTYXZlZEZpbHRlcnMocmVzcG9uc2UpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZShzYXZlZEZpbHRlcjogSUZpbHRlclNhdmVkRmlsdGVyKTogT2JzZXJ2YWJsZTxJRmlsdGVyU2F2ZWRGaWx0ZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnNhdmUoc2F2ZWRGaWx0ZXIpO1xuICB9XG5cbiAgcHVibGljIG9yZGVyKHNhdmVkRmlsdGVyczogSUZpbHRlclNhdmVkRmlsdGVyW10pOiBPYnNlcnZhYmxlPElGaWx0ZXJTYXZlZEZpbHRlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5vcmRlcihzYXZlZEZpbHRlcnMpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuc2F2ZWRGaWx0ZXJzID0gW1xuICAgICAgICAgICAgLi4ucmVzcG9uc2UsXG4gICAgICAgICAgXTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKHNhdmVkRmlsdGVyOiBJRmlsdGVyU2F2ZWRGaWx0ZXIpOiBPYnNlcnZhYmxlPElGaWx0ZXJTYXZlZEZpbHRlcj4ge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcuZGVsZXRlKHNhdmVkRmlsdGVyKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLnNhdmVkRmlsdGVycyA9IHRoaXMuc2F2ZWRGaWx0ZXJzXG4gICAgICAgICAgICAuZmlsdGVyKChmKSA9PiBmLmlkICE9PSByZXNwb25zZS5pZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHNldEFjdGl2ZUZpbHRlcihzYXZlZEZpbHRlcjogSUZpbHRlclNhdmVkRmlsdGVyKTogdm9pZCB7XG4gICAgaWYgKHNhdmVkRmlsdGVyKSB7XG4gICAgICBjb25zdCBleGlzdGluZ0ZpbHRlciA9IHRoaXMuc2F2ZWRGaWx0ZXJzXG4gICAgICAgIC5maW5kKChmKSA9PiBmLmlkID09PSBzYXZlZEZpbHRlci5pZCk7XG5cbiAgICAgIGlmICghZXhpc3RpbmdGaWx0ZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTYXZlZCBmaWx0ZXIgY2Fubm90IGJlIGFjdGl2YXRlZCwgYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdHMuIEZpbHRlciBJRCA9ICcgKyBzYXZlZEZpbHRlci5pZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2FjdGl2ZUZpbHRlciQubmV4dChleGlzdGluZ0ZpbHRlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2FjdGl2ZUZpbHRlciQubmV4dChudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlblNhdmVkRmlsdGVyRWRpdERpYWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbXMgPSBidWlsZFF1ZXJ5UGFyYW1zKFxuICAgICAgdGhpcy5faXRlbXNTdG9yZS52YWx1ZXNBc1F1ZXJ5KCksXG4gICAgICB0aGlzLl9pdGVtc1N0b3JlLml0ZW1zLFxuICAgICk7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5faXRlbXNTdG9yZS52YWx1ZXModHJ1ZSk7XG5cbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgICBzYXZlZEZpbHRlcnM6IHRoaXMuc2F2ZWRGaWx0ZXJzLFxuICAgICAgICBzYXZlQ2FsbGJhY2s6IHRoaXMuc2F2ZS5iaW5kKHRoaXMpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5fZGlhbG9nXG4gICAgICAub3BlbihGc0ZpbHRlclNhdmVkRmlsdGVyRWRpdENvbXBvbmVudCwgZGlhbG9nQ29uZmlnKVxuICAgICAgLmJlZm9yZUNsb3NlZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHVwZGF0ZWRGaWx0ZXI6IElGaWx0ZXJTYXZlZEZpbHRlciB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKHVwZGF0ZWRGaWx0ZXIpIHtcbiAgICAgICAgICAvLyBnZXQgYWxyZWFkeSBzYXZlZCByZWxhdGVkIGZpbHRlciBvYmplY3RcbiAgICAgICAgICBjb25zdCBzYXZlZEZpbHRlciA9IHRoaXMuc2F2ZWRGaWx0ZXJzXG4gICAgICAgICAgICAuZmluZCgoZikgPT4gZi5pZCA9PT0gdXBkYXRlZEZpbHRlci5pZClcblxuICAgICAgICAgIC8vIHJlc3RvcmUgdmFsdWVzIGZyb20gcXVlcnkgc3RyaW5nXG4gICAgICAgICAgdXBkYXRlZEZpbHRlci5maWx0ZXJzID0gcmVzdG9yZUl0ZW1zKFxuICAgICAgICAgICAgdXBkYXRlZEZpbHRlci5maWx0ZXJzLFxuICAgICAgICAgICAgdGhpcy5faXRlbXNTdG9yZS5pdGVtcyxcbiAgICAgICAgICAgIHRoaXMuX3BhcmFtc0Nhc2VcbiAgICAgICAgICApO1xuXG5cbiAgICAgICAgICBpZiAoc2F2ZWRGaWx0ZXIpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc2F2ZWRGaWx0ZXIsIHVwZGF0ZWRGaWx0ZXIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0QWN0aXZlRmlsdGVyKCk7XG4gICAgICAgICAgICB0aGlzLnNhdmVkRmlsdGVycyA9IFtcbiAgICAgICAgICAgICAgLi4udGhpcy5zYXZlZEZpbHRlcnMsXG4gICAgICAgICAgICAgIHVwZGF0ZWRGaWx0ZXJcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy51cGRhdGVBY3RpdmVGaWx0ZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSlcblxuXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQWN0aXZlRmlsdGVyKCk6IHZvaWQge1xuICAgIC8vIExvb2t1cCBhY3RpdmUgZmlsdGVyXG4gICAgY29uc3QgYWNpdHZlRmlsdGVyID0gdGhpcy5zYXZlZEZpbHRlcnNcbiAgICAgIC5maW5kKChmKSA9PiBmLmFjdGl2ZSk7XG5cbiAgICBpZiAoYWNpdHZlRmlsdGVyKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZUZpbHRlcihhY2l0dmVGaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldEFjdGl2ZUZpbHRlcigpOiB2b2lkIHtcbiAgICAvLyBSZXNldCBhbGwgcHJldmlvdXNseSBhY3RpdmF0ZWQgZmlsdGVyc1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLmZvckVhY2goKHNhdmVkRmlsdGVyKSA9PiB7XG4gICAgICBzYXZlZEZpbHRlci5hY3RpdmUgPSBmYWxzZTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2V0QWN0aXZlRmlsdGVyKG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RW5hYmxlZFN0YXR1cyh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2VuYWJsZWQkLm5leHQodmFsdWUpXG4gIH1cbn1cbiJdfQ==