@firestitch/filter 13.0.2 → 13.0.4

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.
@@ -1,3 +1,3 @@
1
- import { BaseItem } from '../models/items/base-item';
2
1
  import { IFilterConfigItem } from '../interfaces/config.interface';
2
+ import { BaseItem } from '../models/items/base-item';
3
3
  export declare function buildQueryParams(flattenedParams: Record<string, unknown>, items: BaseItem<IFilterConfigItem>[]): Record<string, unknown>;
@@ -11,4 +11,4 @@ import { DateTimeRangeItem } from '../models/items/date-time-range-item';
11
11
  import { RangeItem } from '../models/items/range-item';
12
12
  import { TextItem } from '../models/items/text-item';
13
13
  import { WeekItem } from '../models/items/week-item';
14
- export declare function createFilterItem(item: IFilterConfigItem, config: any, filter: FilterComponent): RangeItem | DateRangeItem | DateTimeRangeItem | WeekItem | AutocompleteChipsItem | AutocompleteItem | CheckboxItem | ChipsItem | DateItem | DateTimeItem | import("../models/items/select/simple-select-item").SimpleSelectItem | import("../models/items/select/multiple-select-item").MultipleSelectItem | TextItem;
14
+ export declare function createFilterItem(item: IFilterConfigItem, config: any, filter: FilterComponent): RangeItem | DateRangeItem | DateTimeRangeItem | WeekItem | AutocompleteChipsItem | AutocompleteItem | CheckboxItem | ChipsItem | DateItem | DateTimeItem | import("../models/items/select/multiple-select-item").MultipleSelectItem | import("../models/items/select/simple-select-item").SimpleSelectItem | TextItem;
@@ -1,16 +1,13 @@
1
- import { ActivatedRoute, Router } from '@angular/router';
1
+ import { ActivatedRoute } from '@angular/router';
2
2
  import { FsFilterItemsStore } from '../items-store.service';
3
- import { Location } from '@angular/common';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class QueryParamsController {
6
- private _router;
7
5
  private _route;
8
- private _location;
9
6
  private _itemsStore;
10
7
  private _enabled;
11
8
  private _paramsCase;
12
9
  private _fetchedParams;
13
- constructor(_router: Router, _route: ActivatedRoute, _location: Location, _itemsStore: FsFilterItemsStore);
10
+ constructor(_route: ActivatedRoute, _itemsStore: FsFilterItemsStore);
14
11
  get enabled(): boolean;
15
12
  get fetchedParams(): Record<string, any>;
16
13
  init(enabled: boolean, paramsCase: 'snake' | 'camel'): void;
@@ -19,6 +16,7 @@ export declare class QueryParamsController {
19
16
  * Parse query and update filter values
20
17
  */
21
18
  fetchFromQueryParams(): void;
19
+ private _replaceState;
22
20
  static ɵfac: i0.ɵɵFactoryDeclaration<QueryParamsController, never>;
23
21
  static ɵprov: i0.ɵɵInjectableDeclaration<QueryParamsController>;
24
22
  }
@@ -1,10 +1,11 @@
1
1
  import { list as arrayList } from '@firestitch/common';
2
2
  import { isObject } from 'lodash-es';
3
- import { filterToQueryParam } from './query-param-transformers';
4
3
  import { MultipleSelectItem } from '../models/items/select/multiple-select-item';
5
4
  import { arraysAreEquals } from './compare';
5
+ import { filterToQueryParam } from './query-param-transformers';
6
6
  export function buildQueryParams(flattenedParams, items) {
7
- items.forEach(filterItem => {
7
+ items
8
+ .forEach((filterItem) => {
8
9
  if (filterItem instanceof MultipleSelectItem && filterItem.isolate) {
9
10
  if (filterItem.multiple && filterItem.value) {
10
11
  const isolated = arrayList(filterItem.values, 'value').sort();
@@ -29,4 +30,4 @@ export function buildQueryParams(flattenedParams, items) {
29
30
  });
30
31
  return flattenedParams;
31
32
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcXVlcnktcGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9oZWxwZXJzL2J1aWxkLXF1ZXJ5LXBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFHakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc1QyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsZUFBd0MsRUFBRSxLQUFvQztJQUM3RyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ3pCLElBQUksVUFBVSxZQUFZLGtCQUFrQixJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDbEUsSUFBSSxVQUFVLENBQUMsUUFBUSxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUU7Z0JBQzNDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM5RCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUV0QyxJQUFJLGVBQWUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUU7b0JBQ3BDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUN6QzthQUNGO1NBQ0Y7UUFFRCxJQUFJLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRTtZQUNqQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN0RztTQUNGO2FBQU0sSUFBSSxVQUFVLENBQUMsdUJBQXVCLElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRTtZQUN2RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUM5RCxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQy9ELE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25ELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNkO1NBQ0Y7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsaXN0IGFzIGFycmF5TGlzdCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgZmlsdGVyVG9RdWVyeVBhcmFtIH0gZnJvbSAnLi9xdWVyeS1wYXJhbS10cmFuc2Zvcm1lcnMnO1xuaW1wb3J0IHsgTXVsdGlwbGVTZWxlY3RJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2l0ZW1zL3NlbGVjdC9tdWx0aXBsZS1zZWxlY3QtaXRlbSc7XG5pbXBvcnQgeyBCYXNlSXRlbSB9IGZyb20gJy4uL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0nO1xuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0l0ZW0gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYXJyYXlzQXJlRXF1YWxzIH0gZnJvbSAnLi9jb21wYXJlJztcblxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRRdWVyeVBhcmFtcyhmbGF0dGVuZWRQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBpdGVtczogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10pIHtcbiAgaXRlbXMuZm9yRWFjaChmaWx0ZXJJdGVtID0+IHtcbiAgICBpZiAoZmlsdGVySXRlbSBpbnN0YW5jZW9mIE11bHRpcGxlU2VsZWN0SXRlbSAmJiBmaWx0ZXJJdGVtLmlzb2xhdGUpIHtcbiAgICAgIGlmIChmaWx0ZXJJdGVtLm11bHRpcGxlICYmIGZpbHRlckl0ZW0udmFsdWUpIHtcbiAgICAgICAgY29uc3QgaXNvbGF0ZWQgPSBhcnJheUxpc3QoZmlsdGVySXRlbS52YWx1ZXMsICd2YWx1ZScpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJJdGVtLnZhbHVlLnNvcnQoKTtcblxuICAgICAgICBpZiAoYXJyYXlzQXJlRXF1YWxzKHZhbHVlLCBpc29sYXRlZCkpIHtcbiAgICAgICAgICBmbGF0dGVuZWRQYXJhbXNbZmlsdGVySXRlbS5uYW1lXSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsdGVySXRlbS5pc1R5cGVBdXRvY29tcGxldGUpIHtcbiAgICAgIGlmIChpc09iamVjdChmaWx0ZXJJdGVtLm1vZGVsKSkge1xuICAgICAgICBmbGF0dGVuZWRQYXJhbXNbZmlsdGVySXRlbS5uYW1lXSA9IGZpbHRlclRvUXVlcnlQYXJhbShmaWx0ZXJJdGVtLm1vZGVsLnZhbHVlLCBmaWx0ZXJJdGVtLm1vZGVsLm5hbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZmlsdGVySXRlbS5pc1R5cGVBdXRvY29tcGxldGVDaGlwcyB8fCBmaWx0ZXJJdGVtLmlzVHlwZUNoaXBzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJJdGVtLm1vZGVsKSAmJiBmaWx0ZXJJdGVtLm1vZGVsLmxlbmd0aCkge1xuICAgICAgICBmbGF0dGVuZWRQYXJhbXNbZmlsdGVySXRlbS5uYW1lXSA9IGZpbHRlckl0ZW0ubW9kZWwubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlclRvUXVlcnlQYXJhbShpdGVtLnZhbHVlLCBpdGVtLm5hbWUpO1xuICAgICAgICB9KS5qb2luKCcsJyk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZmxhdHRlbmVkUGFyYW1zO1xufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcXVlcnktcGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9oZWxwZXJzL2J1aWxkLXF1ZXJ5LXBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdoRSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsZUFBd0MsRUFBRSxLQUFvQztJQUM3RyxLQUFLO1NBQ0gsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDdkIsSUFBSSxVQUFVLFlBQVksa0JBQWtCLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUNsRSxJQUFJLFVBQVUsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtnQkFDM0MsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzlELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRXRDLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtvQkFDcEMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ3pDO2FBQ0Y7U0FDRjtRQUVELElBQUksVUFBVSxDQUFDLGtCQUFrQixFQUFFO1lBQ2pDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDOUIsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RHO1NBQ0Y7YUFBTSxJQUFJLFVBQVUsQ0FBQyx1QkFBdUIsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFO1lBQ3ZFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQzlELGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDL0QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxpc3QgYXMgYXJyYXlMaXN0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBJRmlsdGVyQ29uZmlnSXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNlSXRlbSB9IGZyb20gJy4uL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0nO1xuaW1wb3J0IHsgTXVsdGlwbGVTZWxlY3RJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2l0ZW1zL3NlbGVjdC9tdWx0aXBsZS1zZWxlY3QtaXRlbSc7XG5pbXBvcnQgeyBhcnJheXNBcmVFcXVhbHMgfSBmcm9tICcuL2NvbXBhcmUnO1xuaW1wb3J0IHsgZmlsdGVyVG9RdWVyeVBhcmFtIH0gZnJvbSAnLi9xdWVyeS1wYXJhbS10cmFuc2Zvcm1lcnMnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFF1ZXJ5UGFyYW1zKGZsYXR0ZW5lZFBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGl0ZW1zOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT5bXSkge1xuICBpdGVtc1xuICAgLmZvckVhY2goKGZpbHRlckl0ZW0pID0+IHtcbiAgICBpZiAoZmlsdGVySXRlbSBpbnN0YW5jZW9mIE11bHRpcGxlU2VsZWN0SXRlbSAmJiBmaWx0ZXJJdGVtLmlzb2xhdGUpIHtcbiAgICAgIGlmIChmaWx0ZXJJdGVtLm11bHRpcGxlICYmIGZpbHRlckl0ZW0udmFsdWUpIHtcbiAgICAgICAgY29uc3QgaXNvbGF0ZWQgPSBhcnJheUxpc3QoZmlsdGVySXRlbS52YWx1ZXMsICd2YWx1ZScpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJJdGVtLnZhbHVlLnNvcnQoKTtcblxuICAgICAgICBpZiAoYXJyYXlzQXJlRXF1YWxzKHZhbHVlLCBpc29sYXRlZCkpIHtcbiAgICAgICAgICBmbGF0dGVuZWRQYXJhbXNbZmlsdGVySXRlbS5uYW1lXSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsdGVySXRlbS5pc1R5cGVBdXRvY29tcGxldGUpIHtcbiAgICAgIGlmIChpc09iamVjdChmaWx0ZXJJdGVtLm1vZGVsKSkge1xuICAgICAgICBmbGF0dGVuZWRQYXJhbXNbZmlsdGVySXRlbS5uYW1lXSA9IGZpbHRlclRvUXVlcnlQYXJhbShmaWx0ZXJJdGVtLm1vZGVsLnZhbHVlLCBmaWx0ZXJJdGVtLm1vZGVsLm5hbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZmlsdGVySXRlbS5pc1R5cGVBdXRvY29tcGxldGVDaGlwcyB8fCBmaWx0ZXJJdGVtLmlzVHlwZUNoaXBzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJJdGVtLm1vZGVsKSAmJiBmaWx0ZXJJdGVtLm1vZGVsLmxlbmd0aCkge1xuICAgICAgICBmbGF0dGVuZWRQYXJhbXNbZmlsdGVySXRlbS5uYW1lXSA9IGZpbHRlckl0ZW0ubW9kZWwubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlclRvUXVlcnlQYXJhbShpdGVtLnZhbHVlLCBpdGVtLm5hbWUpO1xuICAgICAgICB9KS5qb2luKCcsJyk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZmxhdHRlbmVkUGFyYW1zO1xufVxuIl19
@@ -1,17 +1,13 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { ActivatedRoute, Router } from '@angular/router';
3
- import { FsFilterItemsStore } from '../items-store.service';
2
+ import { ActivatedRoute } from '@angular/router';
4
3
  import { restoreItems } from '../../helpers/restore-items';
5
- import { Location } from '@angular/common';
4
+ import { FsFilterItemsStore } from '../items-store.service';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "@angular/router";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "../items-store.service";
7
+ import * as i2 from "../items-store.service";
10
8
  export class QueryParamsController {
11
- constructor(_router, _route, _location, _itemsStore) {
12
- this._router = _router;
9
+ constructor(_route, _itemsStore) {
13
10
  this._route = _route;
14
- this._location = _location;
15
11
  this._itemsStore = _itemsStore;
16
12
  this._enabled = false;
17
13
  }
@@ -29,23 +25,9 @@ export class QueryParamsController {
29
25
  }
30
26
  }
31
27
  writeStateToQueryParams(params) {
32
- if (!this._enabled) {
33
- return;
28
+ if (this._enabled) {
29
+ this._replaceState(params);
34
30
  }
35
- this._location.replaceState(this._router.createUrlTree([], {
36
- relativeTo: this._route,
37
- queryParams: params,
38
- queryParamsHandling: 'merge',
39
- preserveFragment: true,
40
- }).toString());
41
- // Trying replacing the URL without triggering an Angular navigation change
42
- // // Update query
43
- // this._router.navigate([], {
44
- // replaceUrl: true,
45
- // relativeTo: this._route,
46
- // queryParams: params,
47
- // queryParamsHandling: 'merge',
48
- // }).then(() => {});
49
31
  }
50
32
  /**
51
33
  * Parse query and update filter values
@@ -58,10 +40,19 @@ export class QueryParamsController {
58
40
  ].filter((item) => !!item);
59
41
  this._fetchedParams = restoreItems(this._route.snapshot.queryParams, items, this._paramsCase);
60
42
  }
43
+ _replaceState(data) {
44
+ const url = new URL(window.location.href);
45
+ Object.keys(data)
46
+ .filter((name) => data[name] !== undefined && data[name] !== null)
47
+ .forEach((name) => {
48
+ url.searchParams.set(name, data[name]);
49
+ });
50
+ history.replaceState({}, null, url.pathname + url.search);
51
+ }
61
52
  }
62
- QueryParamsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.Location }, { token: i3.FsFilterItemsStore }], target: i0.ɵɵFactoryTarget.Injectable });
53
+ QueryParamsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController, deps: [{ token: i1.ActivatedRoute }, { token: i2.FsFilterItemsStore }], target: i0.ɵɵFactoryTarget.Injectable });
63
54
  QueryParamsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController });
64
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController, decorators: [{
65
56
  type: Injectable
66
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.Location }, { type: i3.FsFilterItemsStore }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvZXh0ZXJuYWwtcGFyYW1zL3F1ZXJ5LXBhcmFtcy1jb250cm9sbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBSTNDLE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFDVSxPQUFlLEVBQ2YsTUFBc0IsRUFDdEIsU0FBbUIsRUFDbkIsV0FBK0I7UUFIL0IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBUmpDLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFTdEIsQ0FBQztJQUVKLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVNLElBQUksQ0FBQyxPQUFnQixFQUFFLFVBQTZCO1FBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxNQUFNO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQUUsT0FBTTtTQUFFO1FBRTlCLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQ3pCO1lBQ0UsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ3ZCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLG1CQUFtQixFQUFFLE9BQU87WUFDNUIsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUNKLENBQUMsUUFBUSxFQUFFLENBQ2IsQ0FBQztRQUVGLDJFQUEyRTtRQUMzRSxrQkFBa0I7UUFDbEIsOEJBQThCO1FBQzlCLHNCQUFzQjtRQUN0Qiw2QkFBNkI7UUFDN0IseUJBQXlCO1FBQ3pCLGtDQUFrQztRQUNsQyxxQkFBcUI7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksb0JBQW9CO1FBQ3pCLE1BQU0sS0FBSyxHQUFHO1lBQ1osR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCO1NBQ25DLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFDaEMsS0FBSyxFQUNMLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7SUFDSixDQUFDOztrSEFyRVUscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBGc0ZpbHRlckl0ZW1zU3RvcmUgfSBmcm9tICcuLi9pdGVtcy1zdG9yZS5zZXJ2aWNlJztcbmltcG9ydCB7IHJlc3RvcmVJdGVtcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvcmVzdG9yZS1pdGVtcyc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFF1ZXJ5UGFyYW1zQ29udHJvbGxlciB7XG5cbiAgcHJpdmF0ZSBfZW5hYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9wYXJhbXNDYXNlOiAnc25ha2UnIHwgJ2NhbWVsJztcbiAgcHJpdmF0ZSBfZmV0Y2hlZFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBfbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHByaXZhdGUgX2l0ZW1zU3RvcmU6IEZzRmlsdGVySXRlbXNTdG9yZVxuICApIHt9XG5cbiAgcHVibGljIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBmZXRjaGVkUGFyYW1zKCkge1xuICAgIHJldHVybiB0aGlzLl9mZXRjaGVkUGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGluaXQoZW5hYmxlZDogYm9vbGVhbiwgcGFyYW1zQ2FzZTogJ3NuYWtlJyB8ICdjYW1lbCcpIHtcbiAgICB0aGlzLl9lbmFibGVkID0gZW5hYmxlZDtcbiAgICB0aGlzLl9wYXJhbXNDYXNlID0gcGFyYW1zQ2FzZTtcblxuICAgIGlmICh0aGlzLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMuZmV0Y2hGcm9tUXVlcnlQYXJhbXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgd3JpdGVTdGF0ZVRvUXVlcnlQYXJhbXMocGFyYW1zKSB7XG4gICAgaWYgKCF0aGlzLl9lbmFibGVkKSB7IHJldHVybiB9XG5cbiAgICB0aGlzLl9sb2NhdGlvbi5yZXBsYWNlU3RhdGUoXG4gICAgICB0aGlzLl9yb3V0ZXIuY3JlYXRlVXJsVHJlZShbXSxcbiAgICAgICAgICB7ICAgICAgXG4gICAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLl9yb3V0ZSxcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBwYXJhbXMsXG4gICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAnbWVyZ2UnLFxuICAgICAgICAgICAgcHJlc2VydmVGcmFnbWVudDogdHJ1ZSxcbiAgICAgICAgICB9XG4gICAgICApLnRvU3RyaW5nKClcbiAgICApO1xuICAgIFxuICAgIC8vIFRyeWluZyByZXBsYWNpbmcgdGhlIFVSTCB3aXRob3V0IHRyaWdnZXJpbmcgYW4gQW5ndWxhciBuYXZpZ2F0aW9uIGNoYW5nZVxuICAgIC8vIC8vIFVwZGF0ZSBxdWVyeVxuICAgIC8vIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgIC8vICAgcmVwbGFjZVVybDogdHJ1ZSxcbiAgICAvLyAgIHJlbGF0aXZlVG86IHRoaXMuX3JvdXRlLFxuICAgIC8vICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcbiAgICAvLyAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgLy8gfSkudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2UgcXVlcnkgYW5kIHVwZGF0ZSBmaWx0ZXIgdmFsdWVzXG4gICAqL1xuICBwdWJsaWMgZmV0Y2hGcm9tUXVlcnlQYXJhbXMoKSB7XG4gICAgY29uc3QgaXRlbXMgPSBbXG4gICAgICAuLi50aGlzLl9pdGVtc1N0b3JlLml0ZW1zLFxuICAgICAgdGhpcy5faXRlbXNTdG9yZS5zb3J0QnlJdGVtLFxuICAgICAgdGhpcy5faXRlbXNTdG9yZS5zb3J0RGlyZWN0aW9uSXRlbSxcbiAgICBdLmZpbHRlcigoaXRlbSkgPT4gISFpdGVtKTtcblxuICAgIHRoaXMuX2ZldGNoZWRQYXJhbXMgPSByZXN0b3JlSXRlbXMoXG4gICAgICB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcyxcbiAgICAgIGl0ZW1zLFxuICAgICAgdGhpcy5fcGFyYW1zQ2FzZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
57
+ }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.FsFilterItemsStore }]; } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvZXh0ZXJuYWwtcGFyYW1zL3F1ZXJ5LXBhcmFtcy1jb250cm9sbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBSTVELE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFDVSxNQUFzQixFQUN0QixXQUErQjtRQUQvQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFOakMsYUFBUSxHQUFHLEtBQUssQ0FBQztJQU90QixDQUFDO0lBRUosSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRU0sSUFBSSxDQUFDLE9BQWdCLEVBQUUsVUFBNkI7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVNLHVCQUF1QixDQUFDLE1BQU07UUFDbkMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQkFBb0I7UUFDekIsTUFBTSxLQUFLLEdBQUc7WUFDWixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSztZQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVU7WUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUI7U0FDbkMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUNoQyxLQUFLLEVBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQztJQUNKLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBSTtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2QsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUM7YUFDakUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEIsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUwsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELENBQUM7O2tIQTdEVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyByZXN0b3JlSXRlbXMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3Jlc3RvcmUtaXRlbXMnO1xuaW1wb3J0IHsgRnNGaWx0ZXJJdGVtc1N0b3JlIH0gZnJvbSAnLi4vaXRlbXMtc3RvcmUuc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFF1ZXJ5UGFyYW1zQ29udHJvbGxlciB7XG5cbiAgcHJpdmF0ZSBfZW5hYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9wYXJhbXNDYXNlOiAnc25ha2UnIHwgJ2NhbWVsJztcbiAgcHJpdmF0ZSBfZmV0Y2hlZFBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBfaXRlbXNTdG9yZTogRnNGaWx0ZXJJdGVtc1N0b3JlXG4gICkge31cblxuICBwdWJsaWMgZ2V0IGVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZldGNoZWRQYXJhbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZldGNoZWRQYXJhbXM7XG4gIH1cblxuICBwdWJsaWMgaW5pdChlbmFibGVkOiBib29sZWFuLCBwYXJhbXNDYXNlOiAnc25ha2UnIHwgJ2NhbWVsJykge1xuICAgIHRoaXMuX2VuYWJsZWQgPSBlbmFibGVkO1xuICAgIHRoaXMuX3BhcmFtc0Nhc2UgPSBwYXJhbXNDYXNlO1xuXG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdGhpcy5mZXRjaEZyb21RdWVyeVBhcmFtcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVN0YXRlVG9RdWVyeVBhcmFtcyhwYXJhbXMpIHtcbiAgICBpZiAodGhpcy5fZW5hYmxlZCkgeyBcbiAgICAgIHRoaXMuX3JlcGxhY2VTdGF0ZShwYXJhbXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZSBxdWVyeSBhbmQgdXBkYXRlIGZpbHRlciB2YWx1ZXNcbiAgICovXG4gIHB1YmxpYyBmZXRjaEZyb21RdWVyeVBhcmFtcygpIHtcbiAgICBjb25zdCBpdGVtcyA9IFtcbiAgICAgIC4uLnRoaXMuX2l0ZW1zU3RvcmUuaXRlbXMsXG4gICAgICB0aGlzLl9pdGVtc1N0b3JlLnNvcnRCeUl0ZW0sXG4gICAgICB0aGlzLl9pdGVtc1N0b3JlLnNvcnREaXJlY3Rpb25JdGVtLFxuICAgIF0uZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pO1xuXG4gICAgdGhpcy5fZmV0Y2hlZFBhcmFtcyA9IHJlc3RvcmVJdGVtcyhcbiAgICAgIHRoaXMuX3JvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLFxuICAgICAgaXRlbXMsXG4gICAgICB0aGlzLl9wYXJhbXNDYXNlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlcGxhY2VTdGF0ZShkYXRhKSB7XG4gICAgY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7XG5cbiAgICBPYmplY3Qua2V5cyhkYXRhKVxuICAgICAgLmZpbHRlcigobmFtZSkgPT4gZGF0YVtuYW1lXSAhPT0gdW5kZWZpbmVkICYmIGRhdGFbbmFtZV0gIT09IG51bGwpXG4gICAgICAuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLnNldChuYW1lLGRhdGFbbmFtZV0pO1xuICAgICAgfSk7XG5cbiAgICBoaXN0b3J5LnJlcGxhY2VTdGF0ZSh7fSwgbnVsbCwgdXJsLnBhdGhuYW1lICsgdXJsLnNlYXJjaCk7XG4gIH1cbn1cbiJdfQ==