@firestitch/filter 13.0.2 → 13.0.3
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.
- package/app/helpers/build-query-params.d.ts +1 -1
- package/app/helpers/create-filter-item.d.ts +1 -1
- package/app/services/external-params/query-params-controller.service.d.ts +2 -1
- package/esm2020/app/helpers/build-query-params.mjs +4 -3
- package/esm2020/app/services/external-params/query-params-controller.service.mjs +14 -19
- package/fesm2015/firestitch-filter.mjs +23 -27
- package/fesm2015/firestitch-filter.mjs.map +1 -1
- package/fesm2020/firestitch-filter.mjs +23 -27
- package/fesm2020/firestitch-filter.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -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/
|
|
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,6 +1,6 @@
|
|
|
1
1
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
2
|
-
import { FsFilterItemsStore } from '../items-store.service';
|
|
3
2
|
import { Location } from '@angular/common';
|
|
3
|
+
import { FsFilterItemsStore } from '../items-store.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class QueryParamsController {
|
|
6
6
|
private _router;
|
|
@@ -19,6 +19,7 @@ export declare class QueryParamsController {
|
|
|
19
19
|
* Parse query and update filter values
|
|
20
20
|
*/
|
|
21
21
|
fetchFromQueryParams(): void;
|
|
22
|
+
private _replaceState;
|
|
22
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<QueryParamsController, never>;
|
|
23
24
|
static ɵprov: i0.ɵɵInjectableDeclaration<QueryParamsController>;
|
|
24
25
|
}
|
|
@@ -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
|
|
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,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtcXVlcnktcGFyYW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9oZWxwZXJzL2J1aWxkLXF1ZXJ5LXBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUdoRSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsZUFBd0MsRUFBRSxLQUFvQztJQUM3RyxLQUFLO1NBQ0gsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7UUFDdkIsSUFBSSxVQUFVLFlBQVksa0JBQWtCLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRTtZQUNsRSxJQUFJLFVBQVUsQ0FBQyxRQUFRLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtnQkFDM0MsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzlELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRXRDLElBQUksZUFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtvQkFDcEMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7aUJBQ3pDO2FBQ0Y7U0FDRjtRQUVELElBQUksVUFBVSxDQUFDLGtCQUFrQixFQUFFO1lBQ2pDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDOUIsZUFBZSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RHO1NBQ0Y7YUFBTSxJQUFJLFVBQVUsQ0FBQyx1QkFBdUIsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFO1lBQ3ZFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7Z0JBQzlELGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDL0QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkQsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2Q7U0FDRjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxpc3QgYXMgYXJyYXlMaXN0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvY29tbW9uJztcblxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBJRmlsdGVyQ29uZmlnSXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNlSXRlbSB9IGZyb20gJy4uL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0nO1xuaW1wb3J0IHsgTXVsdGlwbGVTZWxlY3RJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2l0ZW1zL3NlbGVjdC9tdWx0aXBsZS1zZWxlY3QtaXRlbSc7XG5pbXBvcnQgeyBhcnJheXNBcmVFcXVhbHMgfSBmcm9tICcuL2NvbXBhcmUnO1xuaW1wb3J0IHsgZmlsdGVyVG9RdWVyeVBhcmFtIH0gZnJvbSAnLi9xdWVyeS1wYXJhbS10cmFuc2Zvcm1lcnMnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFF1ZXJ5UGFyYW1zKGZsYXR0ZW5lZFBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGl0ZW1zOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT5bXSkge1xuICBpdGVtc1xuICAgLmZvckVhY2goKGZpbHRlckl0ZW0pID0+IHtcbiAgICBpZiAoZmlsdGVySXRlbSBpbnN0YW5jZW9mIE11bHRpcGxlU2VsZWN0SXRlbSAmJiBmaWx0ZXJJdGVtLmlzb2xhdGUpIHtcbiAgICAgIGlmIChmaWx0ZXJJdGVtLm11bHRpcGxlICYmIGZpbHRlckl0ZW0udmFsdWUpIHtcbiAgICAgICAgY29uc3QgaXNvbGF0ZWQgPSBhcnJheUxpc3QoZmlsdGVySXRlbS52YWx1ZXMsICd2YWx1ZScpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJJdGVtLnZhbHVlLnNvcnQoKTtcblxuICAgICAgICBpZiAoYXJyYXlzQXJlRXF1YWxzKHZhbHVlLCBpc29sYXRlZCkpIHtcbiAgICAgICAgICBmbGF0dGVuZWRQYXJhbXNbZmlsdGVySXRlbS5uYW1lXSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmlsdGVySXRlbS5pc1R5cGVBdXRvY29tcGxldGUpIHtcbiAgICAgIGlmIChpc09iamVjdChmaWx0ZXJJdGVtLm1vZGVsKSkge1xuICAgICAgICBmbGF0dGVuZWRQYXJhbXNbZmlsdGVySXRlbS5uYW1lXSA9IGZpbHRlclRvUXVlcnlQYXJhbShmaWx0ZXJJdGVtLm1vZGVsLnZhbHVlLCBmaWx0ZXJJdGVtLm1vZGVsLm5hbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZmlsdGVySXRlbS5pc1R5cGVBdXRvY29tcGxldGVDaGlwcyB8fCBmaWx0ZXJJdGVtLmlzVHlwZUNoaXBzKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJJdGVtLm1vZGVsKSAmJiBmaWx0ZXJJdGVtLm1vZGVsLmxlbmd0aCkge1xuICAgICAgICBmbGF0dGVuZWRQYXJhbXNbZmlsdGVySXRlbS5uYW1lXSA9IGZpbHRlckl0ZW0ubW9kZWwubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlclRvUXVlcnlQYXJhbShpdGVtLnZhbHVlLCBpdGVtLm5hbWUpO1xuICAgICAgICB9KS5qb2luKCcsJyk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZmxhdHRlbmVkUGFyYW1zO1xufVxuIl19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
-
import { FsFilterItemsStore } from '../items-store.service';
|
|
4
|
-
import { restoreItems } from '../../helpers/restore-items';
|
|
5
3
|
import { Location } from '@angular/common';
|
|
4
|
+
import { restoreItems } from '../../helpers/restore-items';
|
|
5
|
+
import { FsFilterItemsStore } from '../items-store.service';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@angular/router";
|
|
8
8
|
import * as i2 from "@angular/common";
|
|
@@ -29,23 +29,9 @@ export class QueryParamsController {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
writeStateToQueryParams(params) {
|
|
32
|
-
if (
|
|
33
|
-
|
|
32
|
+
if (this._enabled) {
|
|
33
|
+
this._replaceState(params);
|
|
34
34
|
}
|
|
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
35
|
}
|
|
50
36
|
/**
|
|
51
37
|
* Parse query and update filter values
|
|
@@ -58,10 +44,19 @@ export class QueryParamsController {
|
|
|
58
44
|
].filter((item) => !!item);
|
|
59
45
|
this._fetchedParams = restoreItems(this._route.snapshot.queryParams, items, this._paramsCase);
|
|
60
46
|
}
|
|
47
|
+
_replaceState(data) {
|
|
48
|
+
const url = new URL(window.location.href);
|
|
49
|
+
Object.keys(data)
|
|
50
|
+
.filter((name) => data[name] !== undefined && data[name] !== null)
|
|
51
|
+
.forEach((name) => {
|
|
52
|
+
url.searchParams.set(name, data[name]);
|
|
53
|
+
});
|
|
54
|
+
history.replaceState({}, null, url.search);
|
|
55
|
+
}
|
|
61
56
|
}
|
|
62
57
|
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 });
|
|
63
58
|
QueryParamsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController });
|
|
64
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController, decorators: [{
|
|
65
60
|
type: Injectable
|
|
66
61
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.Location }, { type: i3.FsFilterItemsStore }]; } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcGFyYW1zLWNvbnRyb2xsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvZXh0ZXJuYWwtcGFyYW1zL3F1ZXJ5LXBhcmFtcy1jb250cm9sbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBSTVELE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFDVSxPQUFlLEVBQ2YsTUFBc0IsRUFDdEIsU0FBbUIsRUFDbkIsV0FBK0I7UUFIL0IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBUmpDLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFTdEIsQ0FBQztJQUVKLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVNLElBQUksQ0FBQyxPQUFnQixFQUFFLFVBQTZCO1FBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxNQUFNO1FBQ25DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksb0JBQW9CO1FBQ3pCLE1BQU0sS0FBSyxHQUFHO1lBQ1osR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVO1lBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCO1NBQ25DLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFDaEMsS0FBSyxFQUNMLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLElBQUk7UUFDeEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNkLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDO2FBQ2pFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVMLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7a0hBL0RVLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgcmVzdG9yZUl0ZW1zIH0gZnJvbSAnLi4vLi4vaGVscGVycy9yZXN0b3JlLWl0ZW1zJztcbmltcG9ydCB7IEZzRmlsdGVySXRlbXNTdG9yZSB9IGZyb20gJy4uL2l0ZW1zLXN0b3JlLnNlcnZpY2UnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRdWVyeVBhcmFtc0NvbnRyb2xsZXIge1xuXG4gIHByaXZhdGUgX2VuYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcGFyYW1zQ2FzZTogJ3NuYWtlJyB8ICdjYW1lbCc7XG4gIHByaXZhdGUgX2ZldGNoZWRQYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX2xvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIF9pdGVtc1N0b3JlOiBGc0ZpbHRlckl0ZW1zU3RvcmVcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmV0Y2hlZFBhcmFtcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmV0Y2hlZFBhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBpbml0KGVuYWJsZWQ6IGJvb2xlYW4sIHBhcmFtc0Nhc2U6ICdzbmFrZScgfCAnY2FtZWwnKSB7XG4gICAgdGhpcy5fZW5hYmxlZCA9IGVuYWJsZWQ7XG4gICAgdGhpcy5fcGFyYW1zQ2FzZSA9IHBhcmFtc0Nhc2U7XG5cbiAgICBpZiAodGhpcy5lbmFibGVkKSB7XG4gICAgICB0aGlzLmZldGNoRnJvbVF1ZXJ5UGFyYW1zKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdyaXRlU3RhdGVUb1F1ZXJ5UGFyYW1zKHBhcmFtcykge1xuICAgIGlmICh0aGlzLl9lbmFibGVkKSB7IFxuICAgICAgdGhpcy5fcmVwbGFjZVN0YXRlKHBhcmFtcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIHF1ZXJ5IGFuZCB1cGRhdGUgZmlsdGVyIHZhbHVlc1xuICAgKi9cbiAgcHVibGljIGZldGNoRnJvbVF1ZXJ5UGFyYW1zKCkge1xuICAgIGNvbnN0IGl0ZW1zID0gW1xuICAgICAgLi4udGhpcy5faXRlbXNTdG9yZS5pdGVtcyxcbiAgICAgIHRoaXMuX2l0ZW1zU3RvcmUuc29ydEJ5SXRlbSxcbiAgICAgIHRoaXMuX2l0ZW1zU3RvcmUuc29ydERpcmVjdGlvbkl0ZW0sXG4gICAgXS5maWx0ZXIoKGl0ZW0pID0+ICEhaXRlbSk7XG5cbiAgICB0aGlzLl9mZXRjaGVkUGFyYW1zID0gcmVzdG9yZUl0ZW1zKFxuICAgICAgdGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMsXG4gICAgICBpdGVtcyxcbiAgICAgIHRoaXMuX3BhcmFtc0Nhc2VcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVwbGFjZVN0YXRlKGRhdGEpIHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtcblxuICAgIE9iamVjdC5rZXlzKGRhdGEpXG4gICAgICAuZmlsdGVyKChuYW1lKSA9PiBkYXRhW25hbWVdICE9PSB1bmRlZmluZWQgJiYgZGF0YVtuYW1lXSAhPT0gbnVsbClcbiAgICAgIC5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICAgIHVybC5zZWFyY2hQYXJhbXMuc2V0KG5hbWUsZGF0YVtuYW1lXSk7XG4gICAgICB9KTtcblxuICAgIGhpc3RvcnkucmVwbGFjZVN0YXRlKHt9LCBudWxsLCB1cmwuc2VhcmNoKTtcbiAgfVxufVxuIl19
|
|
@@ -59,16 +59,6 @@ import * as i1$6 from '@angular/cdk/overlay';
|
|
|
59
59
|
import { OverlayConfig } from '@angular/cdk/overlay';
|
|
60
60
|
import * as i1$7 from '@angular/cdk/layout';
|
|
61
61
|
|
|
62
|
-
const QUERY_PARAM_DELIMITER = ':';
|
|
63
|
-
|
|
64
|
-
function filterToQueryParam(value, name) {
|
|
65
|
-
return `${encodeURIComponent(value)}${QUERY_PARAM_DELIMITER}${encodeURIComponent(name)}`;
|
|
66
|
-
}
|
|
67
|
-
function filterFromQueryParam(param) {
|
|
68
|
-
const parts = param.split(QUERY_PARAM_DELIMITER);
|
|
69
|
-
return [decodeURIComponent(parts[0]), decodeURIComponent(parts[1])];
|
|
70
|
-
}
|
|
71
|
-
|
|
72
62
|
function objectsAreEquals(obj1, obj2) {
|
|
73
63
|
const oldKeys = Object.keys(obj1);
|
|
74
64
|
const currKeys = Object.keys(obj2);
|
|
@@ -476,8 +466,19 @@ class MultipleSelectItem extends BaseSelectItem {
|
|
|
476
466
|
}
|
|
477
467
|
}
|
|
478
468
|
|
|
469
|
+
const QUERY_PARAM_DELIMITER = ':';
|
|
470
|
+
|
|
471
|
+
function filterToQueryParam(value, name) {
|
|
472
|
+
return `${encodeURIComponent(value)}${QUERY_PARAM_DELIMITER}${encodeURIComponent(name)}`;
|
|
473
|
+
}
|
|
474
|
+
function filterFromQueryParam(param) {
|
|
475
|
+
const parts = param.split(QUERY_PARAM_DELIMITER);
|
|
476
|
+
return [decodeURIComponent(parts[0]), decodeURIComponent(parts[1])];
|
|
477
|
+
}
|
|
478
|
+
|
|
479
479
|
function buildQueryParams(flattenedParams, items) {
|
|
480
|
-
items
|
|
480
|
+
items
|
|
481
|
+
.forEach((filterItem) => {
|
|
481
482
|
if (filterItem instanceof MultipleSelectItem && filterItem.isolate) {
|
|
482
483
|
if (filterItem.multiple && filterItem.value) {
|
|
483
484
|
const isolated = list(filterItem.values, 'value').sort();
|
|
@@ -1923,23 +1924,9 @@ class QueryParamsController {
|
|
|
1923
1924
|
}
|
|
1924
1925
|
}
|
|
1925
1926
|
writeStateToQueryParams(params) {
|
|
1926
|
-
if (
|
|
1927
|
-
|
|
1927
|
+
if (this._enabled) {
|
|
1928
|
+
this._replaceState(params);
|
|
1928
1929
|
}
|
|
1929
|
-
this._location.replaceState(this._router.createUrlTree([], {
|
|
1930
|
-
relativeTo: this._route,
|
|
1931
|
-
queryParams: params,
|
|
1932
|
-
queryParamsHandling: 'merge',
|
|
1933
|
-
preserveFragment: true,
|
|
1934
|
-
}).toString());
|
|
1935
|
-
// Trying replacing the URL without triggering an Angular navigation change
|
|
1936
|
-
// // Update query
|
|
1937
|
-
// this._router.navigate([], {
|
|
1938
|
-
// replaceUrl: true,
|
|
1939
|
-
// relativeTo: this._route,
|
|
1940
|
-
// queryParams: params,
|
|
1941
|
-
// queryParamsHandling: 'merge',
|
|
1942
|
-
// }).then(() => {});
|
|
1943
1930
|
}
|
|
1944
1931
|
/**
|
|
1945
1932
|
* Parse query and update filter values
|
|
@@ -1952,6 +1939,15 @@ class QueryParamsController {
|
|
|
1952
1939
|
].filter((item) => !!item);
|
|
1953
1940
|
this._fetchedParams = restoreItems(this._route.snapshot.queryParams, items, this._paramsCase);
|
|
1954
1941
|
}
|
|
1942
|
+
_replaceState(data) {
|
|
1943
|
+
const url = new URL(window.location.href);
|
|
1944
|
+
Object.keys(data)
|
|
1945
|
+
.filter((name) => data[name] !== undefined && data[name] !== null)
|
|
1946
|
+
.forEach((name) => {
|
|
1947
|
+
url.searchParams.set(name, data[name]);
|
|
1948
|
+
});
|
|
1949
|
+
history.replaceState({}, null, url.search);
|
|
1950
|
+
}
|
|
1955
1951
|
}
|
|
1956
1952
|
QueryParamsController.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i3.Location }, { token: FsFilterItemsStore }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1957
1953
|
QueryParamsController.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: QueryParamsController });
|