@firestitch/filter 9.8.5 → 9.9.0
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/components/filter/filter.component.d.ts +1 -0
- package/app/components/filters-item/text/text.component.d.ts +2 -0
- package/app/interfaces/items/base.interface.d.ts +3 -1
- package/app/models/items/base-item.d.ts +5 -1
- package/app/services/items-store.service.d.ts +5 -0
- package/bundles/firestitch-filter.umd.js +103 -32
- package/bundles/firestitch-filter.umd.js.map +1 -1
- package/bundles/firestitch-filter.umd.min.js +2 -2
- package/bundles/firestitch-filter.umd.min.js.map +1 -1
- package/esm2015/app/components/filter/filter.component.js +14 -21
- package/esm2015/app/components/filters-item/text/text.component.js +15 -5
- package/esm2015/app/interfaces/items/base.interface.js +1 -1
- package/esm2015/app/models/items/base-item.js +21 -3
- package/esm2015/app/models/items/date-range/base-date-range-item.js +3 -4
- package/esm2015/app/models/items/range-item.js +3 -4
- package/esm2015/app/services/items-store.service.js +38 -5
- package/esm2015/public_api.js +1 -1
- package/esm5/app/components/filter/filter.component.js +22 -22
- package/esm5/app/components/filters-item/text/text.component.js +16 -5
- package/esm5/app/interfaces/items/base.interface.js +1 -1
- package/esm5/app/models/items/base-item.js +26 -3
- package/esm5/app/models/items/date-range/base-date-range-item.js +3 -4
- package/esm5/app/models/items/range-item.js +3 -4
- package/esm5/app/services/items-store.service.js +44 -5
- package/esm5/public_api.js +1 -1
- package/fesm2015/firestitch-filter.js +86 -34
- package/fesm2015/firestitch-filter.js.map +1 -1
- package/fesm5/firestitch-filter.js +105 -34
- package/fesm5/firestitch-filter.js.map +1 -1
- package/firestitch-filter.metadata.json +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +5 -4
|
@@ -25,15 +25,14 @@ var RangeItem = /** @class */ (function (_super) {
|
|
|
25
25
|
});
|
|
26
26
|
Object.defineProperty(RangeItem.prototype, "queryObject", {
|
|
27
27
|
get: function () {
|
|
28
|
-
var _a, _b;
|
|
29
28
|
var value = this.value;
|
|
30
29
|
var name = this.name;
|
|
31
30
|
var params = {};
|
|
32
31
|
var paramMinName = getRangeName(this.case, name, 'min');
|
|
33
32
|
var paramMaxName = getRangeName(this.case, name, 'max');
|
|
34
33
|
if (isObject(value)) {
|
|
35
|
-
params[paramMinName] =
|
|
36
|
-
params[paramMaxName] =
|
|
34
|
+
params[paramMinName] = value.min || null;
|
|
35
|
+
params[paramMaxName] = value.max || null;
|
|
37
36
|
}
|
|
38
37
|
else {
|
|
39
38
|
params[paramMinName] = null;
|
|
@@ -108,4 +107,4 @@ var RangeItem = /** @class */ (function (_super) {
|
|
|
108
107
|
return RangeItem;
|
|
109
108
|
}(BaseItem));
|
|
110
109
|
export { RangeItem };
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2ZpbHRlci8iLCJzb3VyY2VzIjpbImFwcC9tb2RlbHMvaXRlbXMvcmFuZ2UtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU01RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3ZDO0lBQStCLDZCQUFnQztJQUEvRDs7SUF1R0EsQ0FBQztJQXJHZSxnQkFBTSxHQUFwQixVQUFxQixNQUE4QixFQUFFLGdCQUF5QjtRQUM1RSxPQUFPLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFTRCxzQkFBVyw0QkFBSzthQUFoQjtZQUNFLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO2dCQUN2QixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RGLEtBQUssR0FBRyxJQUFJLENBQUM7YUFDZDtZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyxrQ0FBVzthQUF0QjtZQUNFLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDekIsSUFBTSxJ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QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksZUFBRyxJQUFJLENBQUMsaUJBQWlCLDBDQUFFLElBQUksbUNBQUksT0FBTyxDQUFDO1FBRXBELGlCQUFNLFlBQVksWUFBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRVMseUJBQUssR0FBZjtRQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztTQUN0QztJQUNILENBQUM7SUFDSCxnQkFBQztBQUFELENBQUMsQUF2R0QsQ0FBK0IsUUFBUSxHQXVHdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbG9uZSwgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IGdldFJhbmdlTmFtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LXJhbmdlLW5hbWUnO1xuaW1wb3J0IHtcbiAgSUZpbHRlckNvbmZpZ1JhbmdlSXRlbSxcbiAgSUZpbHRlckl0ZW1EZWZhdWx0UmFuZ2UsXG59IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaXRlbXMvcmFuZ2UuaW50ZXJmYWNlJztcblxuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuL2Jhc2UtaXRlbSc7XG5cblxuZXhwb3J0IGNsYXNzIFJhbmdlSXRlbSBleHRlbmRzIEJhc2VJdGVtPElGaWx0ZXJDb25maWdSYW5nZUl0ZW0+IHtcblxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZShjb25maWc6IElGaWx0ZXJDb25maWdSYW5nZUl0ZW0sIGFkZGl0aW9uYWxDb25maWc6IHVua25vd24pIHtcbiAgICByZXR1cm4gbmV3IFJhbmdlSXRlbShjb25maWcsIGFkZGl0aW9uYWxDb25maWcpO1xuICB9XG5cbiAgcHVibGljIGNhc2U6ICdzbmFrZScgfCAnY2FtZWwnO1xuICBwdWJsaWMgb3B0aW9uczogeyBzY2FsZT86IG51bWJlciB9XG4gIHB1YmxpYyBwcmVmaXg6IHN0cmluZztcbiAgcHVibGljIHN1ZmZpeDogc3RyaW5nO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfYWRkaXRpb25hbENvbmZpZzogeyBjYXNlOiAnY2FtZWwnIHwgJ3NuYWtlJyB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICBsZXQgdmFsdWUgPSBjbG9uZSh0aGlzLm1vZGVsKTtcblxuICAgIGlmICghaXNPYmplY3QodGhpcy5tb2RlbCkgfHxcbiAgICAgIChpc0VtcHR5KHRoaXMubW9kZWwubWF4LCB7IHplcm86IHRydWUgfSkgJiYgaXNFbXB0eSh0aGlzLm1vZGVsLm1pbiwgeyB6ZXJvOiB0cnVlIH0pKSkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcXVlcnlPYmplY3QoKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWU7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgY29uc3QgcGFyYW1NaW5OYW1lID0gZ2V0UmFuZ2VOYW1lKHRoaXMuY2FzZSwgbmFtZSwgJ21pbicpO1xuICAgIGNvbnN0IHBhcmFtTWF4TmFtZSA9IGdldFJhbmdlTmFtZSh0aGlzLmNhc2UsIG5hbWUsICdtYXgnKTtcblxuICAgIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHBhcmFtc1twYXJhbU1pbk5hbWVdID0gdmFsdWUubWluIHx8IG51bGw7XG4gICAgICBwYXJhbXNbcGFyYW1NYXhOYW1lXSA9IHZhbHVlLm1heCB8fCBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXNbcGFyYW1NaW5OYW1lXSA9IG51bGw7XG4gICAgICBwYXJhbXNbcGFyYW1NYXhOYW1lXSA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNDaGlwVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbCAmJiAodGhpcy5tb2RlbC5taW4gIT09IHVuZGVmaW5lZCB8fCB0aGlzLm1vZGVsLm1heCAhPT0gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDaGlwc0NvbnRlbnQodHlwZSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGUgPT09ICdmcm9tJykge1xuICAgICAgY29uc3QgbWluID0gdGhpcy5tb2RlbC5taW47XG4gICAgICByZXR1cm4gYCR7bWlufWA7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAndG8nKSB7XG4gICAgICBjb25zdCBtYXggPSB0aGlzLm1vZGVsLm1heDtcbiAgICAgIHJldHVybiBgJHttYXh9YDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXJSYW5nZSh0eXBlOiAnZnJvbScgfCAndG8nID0gbnVsbCwgZGVmYXVsdFZhbHVlOiBJRmlsdGVySXRlbURlZmF1bHRSYW5nZSA9IHVuZGVmaW5lZCkge1xuICAgIGlmICh0eXBlID09PSAnZnJvbScpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLm1vZGVsLm1pbjtcblxuICAgICAgaWYgKGRlZmF1bHRWYWx1ZT8ubWluKSB7XG4gICAgICAgIHRoaXMubW9kZWwubWluID0gZGVmYXVsdFZhbHVlLm1pbjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5tb2RlbCA9IHsgLi4udGhpcy5tb2RlbCB9O1xuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3RvJykge1xuICAgICAgZGVsZXRlIHRoaXMubW9kZWwubWF4O1xuXG4gICAgICBpZiAoZGVmYXVsdFZhbHVlPy5tYXgpIHtcbiAgICAgICAgdGhpcy5tb2RlbC5tYXggPSBkZWZhdWx0VmFsdWUubWF4O1xuICAgICAgfVxuXG4gICAgICB0aGlzLm1vZGVsID0geyAuLi50aGlzLm1vZGVsIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgdGhpcy5tb2RlbCA9IHsgLi4uZGVmYXVsdFZhbHVlIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGVsID0ge307XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF92YWxpZGF0ZU1vZGVsKCkge1xuICB9XG5cbiAgcHJvdGVjdGVkIF9wYXJzZUNvbmZpZyhpdGVtOiBJRmlsdGVyQ29uZmlnUmFuZ2VJdGVtKSB7XG4gICAgdGhpcy5vcHRpb25zID0gaXRlbS5vcHRpb25zO1xuICAgIHRoaXMucHJlZml4ID0gaXRlbS5wcmVmaXg7XG4gICAgdGhpcy5zdWZmaXggPSBpdGVtLnN1ZmZpeDtcbiAgICB0aGlzLmNhc2UgPSB0aGlzLl9hZGRpdGlvbmFsQ29uZmlnPy5jYXNlID8/ICdjYW1lbCc7XG5cbiAgICBzdXBlci5fcGFyc2VDb25maWcoaXRlbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmxhYmVsID0gWydNaW4nLCAnTWF4J107XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLm1vZGVsKSB7XG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy5kZWZhdWx0VmFsdWUgfHwge307XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
4
|
-
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
3
|
+
import { BehaviorSubject, forkJoin, Subject } from 'rxjs';
|
|
4
|
+
import { debounceTime, filter, finalize, takeUntil } from 'rxjs/operators';
|
|
5
5
|
import { pickBy } from 'lodash-es';
|
|
6
6
|
import { ItemType } from '../enums/item-type.enum';
|
|
7
7
|
import { SimpleSelectItem } from '../models/items/select/simple-select-item';
|
|
@@ -14,12 +14,15 @@ var FsFilterItemsStore = /** @class */ (function () {
|
|
|
14
14
|
this.sortByItem = null;
|
|
15
15
|
this.sortDirectionItem = null;
|
|
16
16
|
this.keywordItem = null;
|
|
17
|
+
this._ready$ = new BehaviorSubject(false);
|
|
17
18
|
this._items = [];
|
|
18
19
|
this._visibleItems$ = new BehaviorSubject([]);
|
|
19
20
|
this._itemsByName = new Map();
|
|
20
21
|
this._itemsValuesLoaded = false;
|
|
21
22
|
this._hasKeyword = false;
|
|
22
23
|
this._itemsChange$ = new Subject();
|
|
24
|
+
this._destroy$ = new Subject();
|
|
25
|
+
this._lazyInit();
|
|
23
26
|
}
|
|
24
27
|
Object.defineProperty(FsFilterItemsStore.prototype, "items", {
|
|
25
28
|
get: function () {
|
|
@@ -59,8 +62,17 @@ var FsFilterItemsStore = /** @class */ (function () {
|
|
|
59
62
|
enumerable: true,
|
|
60
63
|
configurable: true
|
|
61
64
|
});
|
|
65
|
+
Object.defineProperty(FsFilterItemsStore.prototype, "ready$", {
|
|
66
|
+
get: function () {
|
|
67
|
+
return this._ready$.asObservable();
|
|
68
|
+
},
|
|
69
|
+
enumerable: true,
|
|
70
|
+
configurable: true
|
|
71
|
+
});
|
|
62
72
|
FsFilterItemsStore.prototype.ngOnDestroy = function () {
|
|
63
73
|
this.destroyItems();
|
|
74
|
+
this._destroy$.next();
|
|
75
|
+
this._destroy$.complete();
|
|
64
76
|
};
|
|
65
77
|
FsFilterItemsStore.prototype.setConfig = function (config) {
|
|
66
78
|
this._itemsByName.clear();
|
|
@@ -74,8 +86,6 @@ var FsFilterItemsStore = /** @class */ (function () {
|
|
|
74
86
|
this._itemsValuesLoaded = false;
|
|
75
87
|
if (Array.isArray(items)) {
|
|
76
88
|
this._createItems(items);
|
|
77
|
-
this.updateVisibleItems();
|
|
78
|
-
this._setKeywordItem();
|
|
79
89
|
}
|
|
80
90
|
};
|
|
81
91
|
FsFilterItemsStore.prototype.filtersClear = function () {
|
|
@@ -114,6 +124,25 @@ var FsFilterItemsStore = /** @class */ (function () {
|
|
|
114
124
|
.filter(function (item) { return item.hasPendingValues; })
|
|
115
125
|
.forEach(function (item) { return item.loadAsyncValues(); });
|
|
116
126
|
};
|
|
127
|
+
FsFilterItemsStore.prototype.loadAsyncDefaults = function () {
|
|
128
|
+
var _this = this;
|
|
129
|
+
var pendingItems = this.items
|
|
130
|
+
.filter(function (item) {
|
|
131
|
+
return item.hasPendingDefaultValue
|
|
132
|
+
&& (item.persistedValue === null || item.persistedValue === undefined);
|
|
133
|
+
});
|
|
134
|
+
if (pendingItems.length > 0) {
|
|
135
|
+
forkJoin(pendingItems
|
|
136
|
+
.map(function (item) { return item.loadDefaultValue(); }))
|
|
137
|
+
.pipe(finalize(function () {
|
|
138
|
+
_this._ready$.next(true);
|
|
139
|
+
}), takeUntil(this._destroy$))
|
|
140
|
+
.subscribe();
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
this._ready$.next(true);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
117
146
|
FsFilterItemsStore.prototype.getSort = function () {
|
|
118
147
|
var sortBy = this.getSortByValue();
|
|
119
148
|
sortBy = sortBy === '__all' ? null : sortBy;
|
|
@@ -170,6 +199,7 @@ var FsFilterItemsStore = /** @class */ (function () {
|
|
|
170
199
|
item.initValues(p[item.name]);
|
|
171
200
|
});
|
|
172
201
|
this._createSortingItems(p);
|
|
202
|
+
this.loadAsyncDefaults();
|
|
173
203
|
this._subscribeToItemsChanges();
|
|
174
204
|
};
|
|
175
205
|
FsFilterItemsStore.prototype.updateItemsWithValues = function (values) {
|
|
@@ -258,6 +288,15 @@ var FsFilterItemsStore = /** @class */ (function () {
|
|
|
258
288
|
});
|
|
259
289
|
}
|
|
260
290
|
};
|
|
291
|
+
FsFilterItemsStore.prototype._lazyInit = function () {
|
|
292
|
+
var _this = this;
|
|
293
|
+
this.ready$
|
|
294
|
+
.pipe(filter(function (state) { return state; }), takeUntil(this._destroy$))
|
|
295
|
+
.subscribe(function () {
|
|
296
|
+
_this.updateVisibleItems();
|
|
297
|
+
_this._setKeywordItem();
|
|
298
|
+
});
|
|
299
|
+
};
|
|
261
300
|
FsFilterItemsStore.prototype._createSortingItems = function (p) {
|
|
262
301
|
var _a;
|
|
263
302
|
if (((_a = this._config.sortValues) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
@@ -300,4 +339,4 @@ var FsFilterItemsStore = /** @class */ (function () {
|
|
|
300
339
|
return FsFilterItemsStore;
|
|
301
340
|
}());
|
|
302
341
|
export { FsFilterItemsStore };
|
|
303
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtc3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2ZpbHRlci8iLCJzb3VyY2VzIjpbImFwcC9zZXJ2aWNlcy9pdGVtcy1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQU1uQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFN0UsT0FBTyxFQUFrQixhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFhcEY7SUFnQkU7UUFkTyxlQUFVLEdBQWdDLElBQUksQ0FBQztRQUMvQyxzQkFBaUIsR0FBZ0MsSUFBSSxDQUFDO1FBQ3RELGdCQUFXLEdBQWEsSUFBSSxDQUFDO1FBRTVCLFdBQU0sR0FBa0MsRUFBRSxDQUFDO1FBQzNDLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQWdDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7UUFFOUQsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR3BCLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUd0QyxDQUFDO0lBRUQsc0JBQVcscUNBQUs7YUFBaEI7WUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyw0Q0FBWTthQUF2QjtZQUNFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxDQUFDO2FBTUQsVUFBd0IsS0FBb0M7WUFDMUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsQ0FBQzs7O09BUkE7SUFFRCxzQkFBVyw2Q0FBYTthQUF4QjtZQUNFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM1QyxDQUFDOzs7T0FBQTtJQU1ELHNCQUFXLDBDQUFVO2FBQXJCO1lBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzFCLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsNENBQVk7YUFBdkI7WUFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25ELENBQUM7OztPQUFBO0lBRU0sd0NBQVcsR0FBbEI7UUFDRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLHNDQUFTLEdBQWhCLFVBQWlCLE1BQU07UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sMENBQWEsR0FBcEIsVUFBcUIsSUFBWTtRQUMvQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxzQ0FBUyxHQUFoQixVQUFpQixLQUEwQjtRQUN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFTSx5Q0FBWSxHQUFuQjs7UUFDRSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFDLElBQUk7WUFDdEIsSUFBSSxJQUFJLFlBQVksU0FBUyxFQUFFO2dCQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDMUM7aUJBQU0sSUFBSSxJQUFJLFlBQVksaUJBQWlCLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUM5QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMvQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQTthQUNoRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO2dCQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQTthQUMzRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNuRTtTQUNGO1FBRUQsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxLQUFLLEdBQUc7SUFDNUIsQ0FBQztJQUVNLDRDQUFlLEdBQXRCO1FBQ0UsSUFBSSxDQUFDLEtBQUs7YUFDUCxNQUFNLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsZ0JBQWdCLEVBQXJCLENBQXFCLENBQUM7YUFDdkMsT0FBTyxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUF0QixDQUFzQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLG9DQUFPLEdBQWQ7UUFDRSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkMsTUFBTSxHQUFHLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRTVDLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pELGFBQWEsR0FBRyxhQUFhLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUVqRSxPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU07WUFDYixTQUFTLEVBQUUsYUFBYTtTQUN6QixDQUFBO0lBQ0gsQ0FBQztJQUVNLDJDQUFjLEdBQXJCO1FBQ0UsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hELENBQUM7SUFFTSxrREFBcUIsR0FBNUI7UUFDRSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RFLENBQUM7SUFFTSx1Q0FBVSxHQUFqQixVQUFrQixJQUF5QjtRQUN6QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFTSxtQ0FBTSxHQUFiLFVBQWMsYUFBcUI7UUFBckIsOEJBQUEsRUFBQSxxQkFBcUI7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLEdBQUcsRUFBRSxJQUFJO1lBQ2pDLElBQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFFekIsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO2dCQUNwQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQzthQUN4QjtZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLDBDQUFhLEdBQXBCLFVBQXFCLEVBSUE7WUFKQSw0QkFJQSxFQUhuQixxQkFBb0IsRUFBcEIseUNBQW9CLEVBQ3BCLGFBQVksRUFBWixpQ0FBWSxFQUNaLGlCQUFpQixFQUFqQixzQ0FBaUI7UUFFakIsSUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxVQUF5QjtZQUN0RCxJQUFNLE1BQU0sR0FBRyxTQUFTO2dCQUN0QixDQUFDLENBQUMsVUFBVSxDQUFDLGlCQUFpQjtnQkFDOUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7WUFFM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLGFBQWEsRUFBRTtZQUNqQixPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBQyxHQUFHO2dCQUN4QixPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sMkNBQWMsR0FBckIsVUFBc0IsQ0FBd0I7UUFDNUMsSUFBSSxDQUFDLEtBQUs7YUFDUCxPQUFPLENBQUMsVUFBQyxJQUFJO1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLGtEQUFxQixHQUE1QixVQUE2QixNQUE2QjtRQUN4RCxJQUFJLENBQUMsS0FBSzthQUNQLE9BQU8sQ0FBQyxVQUFDLElBQUk7WUFDWixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNoQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDZDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUFFO1FBQ2pELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1NBQUU7SUFDakUsQ0FBQztJQUVNLHlDQUFZLEdBQW5COztRQUNFLElBQUksQ0FBQyxLQUFLO2FBQ1AsT0FBTyxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFkLENBQWMsQ0FBQyxDQUFDO1FBQ3JDLE1BQUEsSUFBSSxDQUFDLFVBQVUsMENBQUUsT0FBTyxHQUFHO1FBQzNCLE1BQUEsSUFBSSxDQUFDLGlCQUFpQiwwQ0FBRSxPQUFPLEdBQUc7UUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSx5Q0FBWSxHQUFuQjtRQUNFLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUUvQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRU0sK0NBQWtCLEdBQXpCO1FBQ0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSzthQUMzQixNQUFNLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFqQyxDQUFpQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLHlDQUFZLEdBQXBCLFVBQXFCLEtBQTBCO1FBQS9DLGlCQXdCQztRQXZCQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUs7YUFDaEIsTUFBTSxDQUFDLFVBQUMsSUFBSSxJQUFLLE9BQUEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFiLENBQWEsQ0FBQzthQUMvQixNQUFNLENBQUMsVUFBQyxJQUFJO1lBQ1gsSUFBSSxLQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BDLE1BQU0sS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7YUFDOUQ7aUJBQU07Z0JBQ0wsS0FBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFFdkMsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxVQUFDLElBQUk7WUFDUixJQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRXZFLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUN4QyxLQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUN6QjtZQUVELEtBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFN0MsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFUCxDQUFDO0lBRU8scURBQXdCLEdBQWhDO1FBQUEsaUJBNkJDOztRQTVCQyxJQUFJLENBQUMsS0FBSzthQUNQLE9BQU8sQ0FBQyxVQUFDLElBQUk7WUFDWixJQUFJLENBQUMsWUFBWTtpQkFDZCxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekI7aUJBQ0EsU0FBUyxDQUFDO2dCQUNULEtBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFTCxVQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSwwQ0FBRSxNQUFNLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZO2lCQUN6QixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQ3BDO2lCQUNBLFNBQVMsQ0FBQztnQkFDVCxLQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7WUFFTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWTtpQkFDaEMsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQzNDO2lCQUNBLFNBQVMsQ0FBQztnQkFDVCxLQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVPLGdEQUFtQixHQUEzQixVQUE0QixDQUFDOztRQUMzQixJQUFJLE9BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLDBDQUFFLE1BQU0sSUFBRyxDQUFDLEVBQUU7WUFDdkMsSUFBTSxVQUFVLEdBQUc7Z0JBQ2pCLElBQUksRUFBRSxhQUFhO2dCQUNuQixJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU07Z0JBQ3JCLEtBQUssRUFBRSxTQUFTO2dCQUNoQixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO2FBQ0wsQ0FBQztZQUc3QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDaEQsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDOUM7WUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksZ0JBQWdCLENBQ3BDLFVBQVUsRUFDVixJQUFJLENBQ0wsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFcEQsSUFBTSxpQkFBaUIsR0FBRztnQkFDeEIsSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNO2dCQUNyQixLQUFLLEVBQUUsZ0JBQWdCO2dCQUN2QixNQUFNLEVBQUU7b0JBQ04sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7b0JBQ25DLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2lCQUN0QzthQUN5QixDQUFDO1lBRTdCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNwRCxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3pEO1lBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksZ0JBQWdCLENBQzNDLGlCQUFpQixFQUNqQixJQUFJLENBQ0wsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVPLDRDQUFlLEdBQXZCO1FBQ0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJO2FBQ3BCLEtBQUs7YUFDTCxJQUFJLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsYUFBYSxFQUFsQixDQUFrQixDQUFhLENBQUM7SUFDcEQsQ0FBQztJQW5VVSxrQkFBa0I7UUFEOUIsVUFBVSxFQUFFOztPQUNBLGtCQUFrQixDQW9VOUI7SUFBRCx5QkFBQztDQUFBLEFBcFVELElBb1VDO1NBcFVZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBwaWNrQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQge1xuICBGaWx0ZXJTb3J0LFxuICBJRmlsdGVyQ29uZmlnSXRlbSxcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnLi4vZW51bXMvaXRlbS10eXBlLmVudW0nO1xuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtJztcbmltcG9ydCB7IFNpbXBsZVNlbGVjdEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvc2VsZWN0L3NpbXBsZS1zZWxlY3QtaXRlbSc7XG5pbXBvcnQgeyBJRmlsdGVyQ29uZmlnU2VsZWN0SXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvaXRlbXMvc2VsZWN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGc0ZpbHRlckNvbmZpZywgU09SVF9CWV9GSUVMRCwgU09SVF9ESVJFQ1RJT05fRklFTEQgfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVyLWNvbmZpZyc7XG5pbXBvcnQgeyBjcmVhdGVGaWx0ZXJJdGVtIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtZmlsdGVyLWl0ZW0nO1xuaW1wb3J0IHsgUmFuZ2VJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2l0ZW1zL3JhbmdlLWl0ZW0nO1xuaW1wb3J0IHsgQmFzZURhdGVSYW5nZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvZGF0ZS1yYW5nZS9iYXNlLWRhdGUtcmFuZ2UtaXRlbSc7XG5pbXBvcnQgeyBJU29ydGluZ0NoYW5nZUV2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRleHRJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2l0ZW1zL3RleHQtaXRlbSc7XG5pbXBvcnQgeyBJRmlsdGVyRXh0ZXJuYWxQYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dGVybmFsLXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0Jhc2VJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pdGVtcy9iYXNlLmludGVyZmFjZSc7XG5cbmludGVyZmFjZSBJVmFsdWVBc1F1ZXJ5IHtcbiAgb25seVByZXNlbnRlZD86IGJvb2xlYW47XG4gIGl0ZW1zPzogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W107XG4gIHBlcnNpc3RlZD86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGc0ZpbHRlckl0ZW1zU3RvcmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBzb3J0QnlJdGVtOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT4gPSBudWxsO1xuICBwdWJsaWMgc29ydERpcmVjdGlvbkl0ZW06IEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPiA9IG51bGw7XG4gIHB1YmxpYyBrZXl3b3JkSXRlbTogVGV4dEl0ZW0gPSBudWxsO1xuXG4gIHByaXZhdGUgX2l0ZW1zOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT5bXSA9IFtdO1xuICBwcml2YXRlIF92aXNpYmxlSXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT5bXT4oW10pO1xuICBwcml2YXRlIF9pdGVtc0J5TmFtZSA9IG5ldyBNYXA8c3RyaW5nLCBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT4+KCk7XG5cbiAgcHJpdmF0ZSBfaXRlbXNWYWx1ZXNMb2FkZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaGFzS2V5d29yZCA9IGZhbHNlO1xuICBwcml2YXRlIF9jb25maWc6IEZzRmlsdGVyQ29uZmlnO1xuXG4gIHByaXZhdGUgX2l0ZW1zQ2hhbmdlJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGl0ZW1zKCk6IEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPltdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpc2libGVJdGVtcygpOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGVJdGVtcyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZUl0ZW1zJCgpOiBPYnNlcnZhYmxlPEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGVJdGVtcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZpc2libGVJdGVtcyhpdGVtczogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10pIHtcbiAgICB0aGlzLl92aXNpYmxlSXRlbXMkLm5leHQoaXRlbXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNLZXl3b3JkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9oYXNLZXl3b3JkO1xuICB9XG5cbiAgcHVibGljIGdldCBpdGVtc0NoYW5nZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zQ2hhbmdlJC5waXBlKGRlYm91bmNlVGltZSgzMCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveUl0ZW1zKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0Q29uZmlnKGNvbmZpZykge1xuICAgIHRoaXMuX2l0ZW1zQnlOYW1lLmNsZWFyKCk7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuaW5pdEl0ZW1zKGNvbmZpZy5pdGVtcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SXRlbUJ5TmFtZShuYW1lOiBzdHJpbmcpOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnQmFzZUl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNCeU5hbWUuZ2V0KG5hbWUpO1xuICB9XG5cbiAgcHVibGljIGluaXRJdGVtcyhpdGVtczogSUZpbHRlckNvbmZpZ0l0ZW1bXSkge1xuICAgIHRoaXMuX2l0ZW1zVmFsdWVzTG9hZGVkID0gZmFsc2U7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG4gICAgICB0aGlzLl9jcmVhdGVJdGVtcyhpdGVtcyk7XG4gICAgICB0aGlzLnVwZGF0ZVZpc2libGVJdGVtcygpO1xuICAgICAgdGhpcy5fc2V0S2V5d29yZEl0ZW0oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyc0NsZWFyKCkge1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBSYW5nZUl0ZW0pIHtcbiAgICAgICAgaXRlbS5jbGVhclJhbmdlKG51bGwsIGl0ZW0uZGVmYXVsdFZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIEJhc2VEYXRlUmFuZ2VJdGVtKSB7XG4gICAgICAgIGl0ZW0uY2xlYXJEYXRlUmFuZ2UobnVsbCwgaXRlbS5kZWZhdWx0VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbS5jbGVhcihpdGVtLmRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zb3J0QnlJdGVtKSB7XG4gICAgICBpZiAodGhpcy5fY29uZmlnLnNvcnQpIHtcbiAgICAgICAgdGhpcy5zb3J0QnlJdGVtLm1vZGVsID0gdGhpcy5fY29uZmlnLnNvcnQudmFsdWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc29ydEJ5SXRlbS5jbGVhcih0aGlzLnNvcnRCeUl0ZW0uZGVmYXVsdFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5zb3J0RGlyZWN0aW9uSXRlbSkge1xuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5zb3J0KSB7XG4gICAgICAgIHRoaXMuc29ydERpcmVjdGlvbkl0ZW0ubW9kZWwgPSB0aGlzLl9jb25maWcuc29ydC5kaXJlY3Rpb25cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc29ydERpcmVjdGlvbkl0ZW0uY2xlYXIodGhpcy5zb3J0RGlyZWN0aW9uSXRlbS5kZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMua2V5d29yZEl0ZW0/LmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgbG9hZEFzeW5jVmFsdWVzKCkge1xuICAgIHRoaXMuaXRlbXNcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaGFzUGVuZGluZ1ZhbHVlcylcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmxvYWRBc3luY1ZhbHVlcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTb3J0KCk6IEZpbHRlclNvcnQge1xuICAgIGxldCBzb3J0QnkgPSB0aGlzLmdldFNvcnRCeVZhbHVlKCk7XG4gICAgc29ydEJ5ID0gc29ydEJ5ID09PSAnX19hbGwnID8gbnVsbCA6IHNvcnRCeTtcblxuICAgIGxldCBzb3J0RGlyZWN0aW9uID0gdGhpcy5nZXRTb3J0RGlyZWN0aW9uVmFsdWUoKTtcbiAgICBzb3J0RGlyZWN0aW9uID0gc29ydERpcmVjdGlvbiA9PT0gJ19fYWxsJyA/IG51bGwgOiBzb3J0RGlyZWN0aW9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBzb3J0QnksXG4gICAgICBkaXJlY3Rpb246IHNvcnREaXJlY3Rpb24sXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFNvcnRCeVZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnNvcnRCeUl0ZW0gPyB0aGlzLnNvcnRCeUl0ZW0ubW9kZWwgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFNvcnREaXJlY3Rpb25WYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uSXRlbSA/IHRoaXMuc29ydERpcmVjdGlvbkl0ZW0ubW9kZWwgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVNvcnQoc29ydDogSVNvcnRpbmdDaGFuZ2VFdmVudCkge1xuICAgIGlmIChzb3J0LnNvcnRCeSkge1xuICAgICAgdGhpcy5zb3J0QnlJdGVtLm1vZGVsID0gc29ydC5zb3J0Qnk7XG4gICAgfVxuXG4gICAgaWYgKHNvcnQuc29ydERpcmVjdGlvbikge1xuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uSXRlbS5tb2RlbCA9IHNvcnQuc29ydERpcmVjdGlvbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmFsdWVzKG9ubHlQcmVzZW50ZWQgPSBmYWxzZSk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBpdGVtLnZhbHVlO1xuXG4gICAgICBpZiAoIW9ubHlQcmVzZW50ZWQgfHwgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgYWNjW2l0ZW0ubmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH1cblxuICBwdWJsaWMgdmFsdWVzQXNRdWVyeSh7XG4gICAgb25seVByZXNlbnRlZCA9IHRydWUsXG4gICAgaXRlbXMgPSBudWxsLFxuICAgIHBlcnNpc3RlZCA9IGZhbHNlLFxuICB9OiBJVmFsdWVBc1F1ZXJ5ID0ge30pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG5cbiAgICAoaXRlbXMgfHwgdGhpcy5pdGVtcykuZm9yRWFjaCgoZmlsdGVySXRlbTogQmFzZUl0ZW08YW55PikgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gcGVyc2lzdGVkXG4gICAgICAgID8gZmlsdGVySXRlbS5wZXJzaXN0YW5jZU9iamVjdFxuICAgICAgICA6IGZpbHRlckl0ZW0ucXVlcnlPYmplY3Q7XG5cbiAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCB2YWx1ZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKG9ubHlQcmVzZW50ZWQpIHtcbiAgICAgIHJldHVybiBwaWNrQnkocGFyYW1zLCAodmFsKSA9PiB7XG4gICAgICAgIHJldHVybiB2YWwgIT09IG51bGwgJiYgdmFsICE9PSB2b2lkIDA7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGluaXRJdGVtVmFsdWVzKHA6IElGaWx0ZXJFeHRlcm5hbFBhcmFtcykge1xuICAgIHRoaXMuaXRlbXNcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0uaW5pdFZhbHVlcyhwW2l0ZW0ubmFtZV0pO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9jcmVhdGVTb3J0aW5nSXRlbXMocCk7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9JdGVtc0NoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVJdGVtc1dpdGhWYWx1ZXModmFsdWVzOiBJRmlsdGVyRXh0ZXJuYWxQYXJhbXMpIHtcbiAgICB0aGlzLml0ZW1zXG4gICAgICAuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAodmFsdWVzW2l0ZW0ubmFtZV0pIHtcbiAgICAgICAgICBpdGVtLm1vZGVsID0gdmFsdWVzW2l0ZW0ubmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbS5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLnNvcnRCeUl0ZW0pIHsgdGhpcy5zb3J0QnlJdGVtLmNsZWFyKCk7IH1cbiAgICBpZiAodGhpcy5zb3J0RGlyZWN0aW9uSXRlbSkgeyB0aGlzLnNvcnREaXJlY3Rpb25JdGVtLmNsZWFyKCk7IH1cbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95SXRlbXMoKSB7XG4gICAgdGhpcy5pdGVtc1xuICAgICAgLmZvckVhY2goKGl0ZW0pID0+IGl0ZW0uZGVzdHJveSgpKTtcbiAgICB0aGlzLnNvcnRCeUl0ZW0/LmRlc3Ryb3koKTtcbiAgICB0aGlzLnNvcnREaXJlY3Rpb25JdGVtPy5kZXN0cm95KCk7XG5cbiAgICB0aGlzLl9pdGVtcyA9IFtdO1xuICAgIHRoaXMuc29ydEJ5SXRlbSA9IG51bGw7XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uSXRlbSA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogU29tZSBpdGVtcyBtaWdodCBuZWVkIHRvIGxvYWQgYXN5bmMgdmFsdWVzIGJlZm9yZSB0aGV5IHdpbGwgYmUgc2hvd25cbiAgICovXG4gIHB1YmxpYyBwcmVwYXJlSXRlbXMoKSB7XG4gICAgaWYgKCF0aGlzLl9pdGVtc1ZhbHVlc0xvYWRlZCkge1xuICAgICAgdGhpcy5faXRlbXNWYWx1ZXNMb2FkZWQgPSB0cnVlO1xuXG4gICAgICB0aGlzLmxvYWRBc3luY1ZhbHVlcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVWaXNpYmxlSXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlSXRlbXMgPSB0aGlzLml0ZW1zXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5pc1R5cGVLZXl3b3JkICYmICFpdGVtLmhpZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlSXRlbXMoaXRlbXM6IElGaWx0ZXJDb25maWdJdGVtW10pIHtcbiAgICB0aGlzLl9pdGVtcyA9IGl0ZW1zXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5kaXNhYmxlKVxuICAgICAgLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5faXRlbXNCeU5hbWUuaGFzKGl0ZW0ubmFtZSkpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcignRmlsdGVyIGluaXQgZXJyb3IuIEl0ZW1zIG5hbWUgbXVzdCBiZSB1bmlxdWUuJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5faXRlbXNCeU5hbWUuc2V0KGl0ZW0ubmFtZSwgbnVsbCk7XG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgY29uc3QgZmlsdGVySXRlbSA9IGNyZWF0ZUZpbHRlckl0ZW0oaXRlbSwgeyBjYXNlOiB0aGlzLl9jb25maWcuY2FzZSB9KTtcblxuICAgICAgICBpZiAoZmlsdGVySXRlbS50eXBlID09PSBJdGVtVHlwZS5LZXl3b3JkKSB7XG4gICAgICAgICAgdGhpcy5faGFzS2V5d29yZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pdGVtc0J5TmFtZS5zZXQoaXRlbS5uYW1lLCBmaWx0ZXJJdGVtKTtcblxuICAgICAgICByZXR1cm4gZmlsdGVySXRlbTtcbiAgICAgIH0pO1xuXG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVUb0l0ZW1zQ2hhbmdlcygpIHtcbiAgICB0aGlzLml0ZW1zXG4gICAgICAuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpdGVtLnZhbHVlQ2hhbmdlJFxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKGl0ZW0uZGVzdHJveSQpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zQ2hhbmdlJC5uZXh0KGl0ZW0pO1xuICAgICAgICAgIH0pXG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLl9jb25maWcuc29ydFZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNvcnRCeUl0ZW0udmFsdWVDaGFuZ2UkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLnNvcnRCeUl0ZW0uZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2l0ZW1zQ2hhbmdlJC5uZXh0KHRoaXMuc29ydEJ5SXRlbSk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb25JdGVtLnZhbHVlQ2hhbmdlJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5zb3J0RGlyZWN0aW9uSXRlbS5kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5faXRlbXNDaGFuZ2UkLm5leHQodGhpcy5zb3J0RGlyZWN0aW9uSXRlbSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZVNvcnRpbmdJdGVtcyhwKSB7XG4gICAgaWYgKHRoaXMuX2NvbmZpZy5zb3J0VmFsdWVzPy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzb3J0QnlJdGVtID0ge1xuICAgICAgICBuYW1lOiBTT1JUX0JZX0ZJRUxELFxuICAgICAgICB0eXBlOiBJdGVtVHlwZS5TZWxlY3QsXG4gICAgICAgIGxhYmVsOiAnU29ydCBCeScsXG4gICAgICAgIHZhbHVlczogdGhpcy5fY29uZmlnLnNvcnRWYWx1ZXNcbiAgICAgIH0gYXMgSUZpbHRlckNvbmZpZ1NlbGVjdEl0ZW07XG5cblxuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5zb3J0ICYmIHRoaXMuX2NvbmZpZy5zb3J0LnZhbHVlKSB7XG4gICAgICAgIHNvcnRCeUl0ZW0uZGVmYXVsdCA9IHRoaXMuX2NvbmZpZy5zb3J0LnZhbHVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNvcnRCeUl0ZW0gPSBuZXcgU2ltcGxlU2VsZWN0SXRlbShcbiAgICAgICAgc29ydEJ5SXRlbSxcbiAgICAgICAgbnVsbCxcbiAgICAgICk7XG4gICAgICB0aGlzLnNvcnRCeUl0ZW0uaW5pdFZhbHVlcyhwW3RoaXMuc29ydEJ5SXRlbS5uYW1lXSk7XG5cbiAgICAgIGNvbnN0IHNvcnREaXJlY3Rpb25JdGVtID0ge1xuICAgICAgICBuYW1lOiBTT1JUX0RJUkVDVElPTl9GSUVMRCxcbiAgICAgICAgdHlwZTogSXRlbVR5cGUuU2VsZWN0LFxuICAgICAgICBsYWJlbDogJ1NvcnQgRGlyZWN0aW9uJyxcbiAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgeyBuYW1lOiAnQXNjZW5kaW5nJywgdmFsdWU6ICdhc2MnIH0sXG4gICAgICAgICAgeyBuYW1lOiAnRGVzY2VuZGluZycsIHZhbHVlOiAnZGVzYycgfVxuICAgICAgICBdXG4gICAgICB9IGFzIElGaWx0ZXJDb25maWdTZWxlY3RJdGVtO1xuXG4gICAgICBpZiAodGhpcy5fY29uZmlnLnNvcnQgJiYgdGhpcy5fY29uZmlnLnNvcnQuZGlyZWN0aW9uKSB7XG4gICAgICAgIHNvcnREaXJlY3Rpb25JdGVtLmRlZmF1bHQgPSB0aGlzLl9jb25maWcuc29ydC5kaXJlY3Rpb247XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbkl0ZW0gPSBuZXcgU2ltcGxlU2VsZWN0SXRlbShcbiAgICAgICAgc29ydERpcmVjdGlvbkl0ZW0sXG4gICAgICAgIG51bGxcbiAgICAgICk7XG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb25JdGVtLmluaXRWYWx1ZXMocFt0aGlzLnNvcnREaXJlY3Rpb25JdGVtLm5hbWVdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRLZXl3b3JkSXRlbSgpIHtcbiAgICB0aGlzLmtleXdvcmRJdGVtID0gdGhpc1xuICAgICAgLml0ZW1zXG4gICAgICAuZmluZCgoaXRlbSkgPT4gaXRlbS5pc1R5cGVLZXl3b3JkKSBhcyBUZXh0SXRlbTtcbiAgfVxufVxuIl19
|
|
342
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtc3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2ZpbHRlci8iLCJzb3VyY2VzIjpbImFwcC9zZXJ2aWNlcy9pdGVtcy1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQU1uQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFN0UsT0FBTyxFQUFrQixhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFhcEY7SUFrQkU7UUFoQk8sZUFBVSxHQUFnQyxJQUFJLENBQUM7UUFDL0Msc0JBQWlCLEdBQWdDLElBQUksQ0FBQztRQUN0RCxnQkFBVyxHQUFhLElBQUksQ0FBQztRQUU1QixZQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsV0FBTSxHQUFrQyxFQUFFLENBQUM7UUFDM0MsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUM7UUFDeEUsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBdUMs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QUFDO0lBaFhVLGtCQUFrQjtRQUQ5QixVQUFVLEVBQUU7O09BQ0Esa0JBQWtCLENBaVg5QjtJQUFELHlCQUFDO0NBQUEsQUFqWEQsSUFpWEM7U0FqWFksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBmaW5hbGl6ZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBwaWNrQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQge1xuICBGaWx0ZXJTb3J0LFxuICBJRmlsdGVyQ29uZmlnSXRlbSxcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnLi4vZW51bXMvaXRlbS10eXBlLmVudW0nO1xuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtJztcbmltcG9ydCB7IFNpbXBsZVNlbGVjdEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvc2VsZWN0L3NpbXBsZS1zZWxlY3QtaXRlbSc7XG5pbXBvcnQgeyBJRmlsdGVyQ29uZmlnU2VsZWN0SXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvaXRlbXMvc2VsZWN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGc0ZpbHRlckNvbmZpZywgU09SVF9CWV9GSUVMRCwgU09SVF9ESVJFQ1RJT05fRklFTEQgfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVyLWNvbmZpZyc7XG5pbXBvcnQgeyBjcmVhdGVGaWx0ZXJJdGVtIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtZmlsdGVyLWl0ZW0nO1xuaW1wb3J0IHsgUmFuZ2VJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2l0ZW1zL3JhbmdlLWl0ZW0nO1xuaW1wb3J0IHsgQmFzZURhdGVSYW5nZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvZGF0ZS1yYW5nZS9iYXNlLWRhdGUtcmFuZ2UtaXRlbSc7XG5pbXBvcnQgeyBJU29ydGluZ0NoYW5nZUV2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRleHRJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2l0ZW1zL3RleHQtaXRlbSc7XG5pbXBvcnQgeyBJRmlsdGVyRXh0ZXJuYWxQYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dGVybmFsLXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0Jhc2VJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pdGVtcy9iYXNlLmludGVyZmFjZSc7XG5cbmludGVyZmFjZSBJVmFsdWVBc1F1ZXJ5IHtcbiAgb25seVByZXNlbnRlZD86IGJvb2xlYW47XG4gIGl0ZW1zPzogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W107XG4gIHBlcnNpc3RlZD86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGc0ZpbHRlckl0ZW1zU3RvcmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBzb3J0QnlJdGVtOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT4gPSBudWxsO1xuICBwdWJsaWMgc29ydERpcmVjdGlvbkl0ZW06IEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPiA9IG51bGw7XG4gIHB1YmxpYyBrZXl3b3JkSXRlbTogVGV4dEl0ZW0gPSBudWxsO1xuXG4gIHByaXZhdGUgX3JlYWR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcml2YXRlIF9pdGVtczogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10gPSBbXTtcbiAgcHJpdmF0ZSBfdmlzaWJsZUl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10+KFtdKTtcbiAgcHJpdmF0ZSBfaXRlbXNCeU5hbWUgPSBuZXcgTWFwPHN0cmluZywgQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+PigpO1xuXG4gIHByaXZhdGUgX2l0ZW1zVmFsdWVzTG9hZGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2hhc0tleXdvcmQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY29uZmlnOiBGc0ZpbHRlckNvbmZpZztcblxuICBwcml2YXRlIF9pdGVtc0NoYW5nZSQgPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fbGF6eUluaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXRlbXMoKTogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZUl0ZW1zKCk6IEJhc2VJdGVtPElGaWx0ZXJDb25maWdJdGVtPltdIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUl0ZW1zJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB2aXNpYmxlSXRlbXMkKCk6IE9ic2VydmFibGU8QmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+W10+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUl0ZW1zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmlzaWJsZUl0ZW1zKGl0ZW1zOiBCYXNlSXRlbTxJRmlsdGVyQ29uZmlnSXRlbT5bXSkge1xuICAgIHRoaXMuX3Zpc2libGVJdGVtcyQubmV4dChpdGVtcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0tleXdvcmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc0tleXdvcmQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGl0ZW1zQ2hhbmdlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXNDaGFuZ2UkLnBpcGUoZGVib3VuY2VUaW1lKDMwKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlYWR5JCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZHkkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveUl0ZW1zKCk7XG5cbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb25maWcoY29uZmlnKSB7XG4gICAgdGhpcy5faXRlbXNCeU5hbWUuY2xlYXIoKTtcbiAgICB0aGlzLl9jb25maWcgPSBjb25maWc7XG4gICAgdGhpcy5pbml0SXRlbXMoY29uZmlnLml0ZW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJdGVtQnlOYW1lKG5hbWU6IHN0cmluZyk6IEJhc2VJdGVtPElGaWx0ZXJDb25maWdCYXNlSXRlbT4ge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc0J5TmFtZS5nZXQobmFtZSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdEl0ZW1zKGl0ZW1zOiBJRmlsdGVyQ29uZmlnSXRlbVtdKSB7XG4gICAgdGhpcy5faXRlbXNWYWx1ZXNMb2FkZWQgPSBmYWxzZTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcbiAgICAgIHRoaXMuX2NyZWF0ZUl0ZW1zKGl0ZW1zKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyc0NsZWFyKCkge1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBSYW5nZUl0ZW0pIHtcbiAgICAgICAgaXRlbS5jbGVhclJhbmdlKG51bGwsIGl0ZW0uZGVmYXVsdFZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoaXRlbSBpbnN0YW5jZW9mIEJhc2VEYXRlUmFuZ2VJdGVtKSB7XG4gICAgICAgIGl0ZW0uY2xlYXJEYXRlUmFuZ2UobnVsbCwgaXRlbS5kZWZhdWx0VmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbS5jbGVhcihpdGVtLmRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5zb3J0QnlJdGVtKSB7XG4gICAgICBpZiAodGhpcy5fY29uZmlnLnNvcnQpIHtcbiAgICAgICAgdGhpcy5zb3J0QnlJdGVtLm1vZGVsID0gdGhpcy5fY29uZmlnLnNvcnQudmFsdWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc29ydEJ5SXRlbS5jbGVhcih0aGlzLnNvcnRCeUl0ZW0uZGVmYXVsdFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5zb3J0RGlyZWN0aW9uSXRlbSkge1xuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5zb3J0KSB7XG4gICAgICAgIHRoaXMuc29ydERpcmVjdGlvbkl0ZW0ubW9kZWwgPSB0aGlzLl9jb25maWcuc29ydC5kaXJlY3Rpb25cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc29ydERpcmVjdGlvbkl0ZW0uY2xlYXIodGhpcy5zb3J0RGlyZWN0aW9uSXRlbS5kZWZhdWx0VmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMua2V5d29yZEl0ZW0/LmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgbG9hZEFzeW5jVmFsdWVzKCkge1xuICAgIHRoaXMuaXRlbXNcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaGFzUGVuZGluZ1ZhbHVlcylcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmxvYWRBc3luY1ZhbHVlcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkQXN5bmNEZWZhdWx0cygpOiB2b2lkIHtcbiAgICBjb25zdCBwZW5kaW5nSXRlbXMgPSB0aGlzLml0ZW1zXG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgIHJldHVybiBpdGVtLmhhc1BlbmRpbmdEZWZhdWx0VmFsdWVcbiAgICAgICAgICAmJiAoaXRlbS5wZXJzaXN0ZWRWYWx1ZSA9PT0gbnVsbCB8fCBpdGVtLnBlcnNpc3RlZFZhbHVlID09PSB1bmRlZmluZWQpO1xuICAgICAgfSk7XG5cbiAgICBpZiAocGVuZGluZ0l0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvcmtKb2luKFxuICAgICAgICBwZW5kaW5nSXRlbXNcbiAgICAgICAgICAubWFwKChpdGVtKSA9PiBpdGVtLmxvYWREZWZhdWx0VmFsdWUoKSlcbiAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVhZHkkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JlYWR5JC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRTb3J0KCk6IEZpbHRlclNvcnQge1xuICAgIGxldCBzb3J0QnkgPSB0aGlzLmdldFNvcnRCeVZhbHVlKCk7XG4gICAgc29ydEJ5ID0gc29ydEJ5ID09PSAnX19hbGwnID8gbnVsbCA6IHNvcnRCeTtcblxuICAgIGxldCBzb3J0RGlyZWN0aW9uID0gdGhpcy5nZXRTb3J0RGlyZWN0aW9uVmFsdWUoKTtcbiAgICBzb3J0RGlyZWN0aW9uID0gc29ydERpcmVjdGlvbiA9PT0gJ19fYWxsJyA/IG51bGwgOiBzb3J0RGlyZWN0aW9uO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBzb3J0QnksXG4gICAgICBkaXJlY3Rpb246IHNvcnREaXJlY3Rpb24sXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFNvcnRCeVZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnNvcnRCeUl0ZW0gPyB0aGlzLnNvcnRCeUl0ZW0ubW9kZWwgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldFNvcnREaXJlY3Rpb25WYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uSXRlbSA/IHRoaXMuc29ydERpcmVjdGlvbkl0ZW0ubW9kZWwgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVNvcnQoc29ydDogSVNvcnRpbmdDaGFuZ2VFdmVudCkge1xuICAgIGlmIChzb3J0LnNvcnRCeSkge1xuICAgICAgdGhpcy5zb3J0QnlJdGVtLm1vZGVsID0gc29ydC5zb3J0Qnk7XG4gICAgfVxuXG4gICAgaWYgKHNvcnQuc29ydERpcmVjdGlvbikge1xuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uSXRlbS5tb2RlbCA9IHNvcnQuc29ydERpcmVjdGlvbjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmFsdWVzKG9ubHlQcmVzZW50ZWQgPSBmYWxzZSk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBpdGVtLnZhbHVlO1xuXG4gICAgICBpZiAoIW9ubHlQcmVzZW50ZWQgfHwgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgYWNjW2l0ZW0ubmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gIH1cblxuICBwdWJsaWMgdmFsdWVzQXNRdWVyeSh7XG4gICAgb25seVByZXNlbnRlZCA9IHRydWUsXG4gICAgaXRlbXMgPSBudWxsLFxuICAgIHBlcnNpc3RlZCA9IGZhbHNlLFxuICB9OiBJVmFsdWVBc1F1ZXJ5ID0ge30pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG5cbiAgICAoaXRlbXMgfHwgdGhpcy5pdGVtcykuZm9yRWFjaCgoZmlsdGVySXRlbTogQmFzZUl0ZW08YW55PikgPT4ge1xuICAgICAgY29uc3QgdmFsdWVzID0gcGVyc2lzdGVkXG4gICAgICAgID8gZmlsdGVySXRlbS5wZXJzaXN0YW5jZU9iamVjdFxuICAgICAgICA6IGZpbHRlckl0ZW0ucXVlcnlPYmplY3Q7XG5cbiAgICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCB2YWx1ZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKG9ubHlQcmVzZW50ZWQpIHtcbiAgICAgIHJldHVybiBwaWNrQnkocGFyYW1zLCAodmFsKSA9PiB7XG4gICAgICAgIHJldHVybiB2YWwgIT09IG51bGwgJiYgdmFsICE9PSB2b2lkIDA7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGluaXRJdGVtVmFsdWVzKHA6IElGaWx0ZXJFeHRlcm5hbFBhcmFtcykge1xuICAgIHRoaXMuaXRlbXNcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGl0ZW0uaW5pdFZhbHVlcyhwW2l0ZW0ubmFtZV0pO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9jcmVhdGVTb3J0aW5nSXRlbXMocCk7XG4gICAgdGhpcy5sb2FkQXN5bmNEZWZhdWx0cygpO1xuICAgIHRoaXMuX3N1YnNjcmliZVRvSXRlbXNDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlSXRlbXNXaXRoVmFsdWVzKHZhbHVlczogSUZpbHRlckV4dGVybmFsUGFyYW1zKSB7XG4gICAgdGhpcy5pdGVtc1xuICAgICAgLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKHZhbHVlc1tpdGVtLm5hbWVdKSB7XG4gICAgICAgICAgaXRlbS5tb2RlbCA9IHZhbHVlc1tpdGVtLm5hbWVdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW0uY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5zb3J0QnlJdGVtKSB7IHRoaXMuc29ydEJ5SXRlbS5jbGVhcigpOyB9XG4gICAgaWYgKHRoaXMuc29ydERpcmVjdGlvbkl0ZW0pIHsgdGhpcy5zb3J0RGlyZWN0aW9uSXRlbS5jbGVhcigpOyB9XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveUl0ZW1zKCkge1xuICAgIHRoaXMuaXRlbXNcbiAgICAgIC5mb3JFYWNoKChpdGVtKSA9PiBpdGVtLmRlc3Ryb3koKSk7XG4gICAgdGhpcy5zb3J0QnlJdGVtPy5kZXN0cm95KCk7XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uSXRlbT8uZGVzdHJveSgpO1xuXG4gICAgdGhpcy5faXRlbXMgPSBbXTtcbiAgICB0aGlzLnNvcnRCeUl0ZW0gPSBudWxsO1xuICAgIHRoaXMuc29ydERpcmVjdGlvbkl0ZW0gPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvbWUgaXRlbXMgbWlnaHQgbmVlZCB0byBsb2FkIGFzeW5jIHZhbHVlcyBiZWZvcmUgdGhleSB3aWxsIGJlIHNob3duXG4gICAqL1xuICBwdWJsaWMgcHJlcGFyZUl0ZW1zKCkge1xuICAgIGlmICghdGhpcy5faXRlbXNWYWx1ZXNMb2FkZWQpIHtcbiAgICAgIHRoaXMuX2l0ZW1zVmFsdWVzTG9hZGVkID0gdHJ1ZTtcblxuICAgICAgdGhpcy5sb2FkQXN5bmNWYWx1ZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmlzaWJsZUl0ZW1zKCk6IHZvaWQge1xuICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gdGhpcy5pdGVtc1xuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uaXNUeXBlS2V5d29yZCAmJiAhaXRlbS5oaWRlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUl0ZW1zKGl0ZW1zOiBJRmlsdGVyQ29uZmlnSXRlbVtdKSB7XG4gICAgdGhpcy5faXRlbXMgPSBpdGVtc1xuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uZGlzYWJsZSlcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zQnlOYW1lLmhhcyhpdGVtLm5hbWUpKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoJ0ZpbHRlciBpbml0IGVycm9yLiBJdGVtcyBuYW1lIG11c3QgYmUgdW5pcXVlLicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX2l0ZW1zQnlOYW1lLnNldChpdGVtLm5hbWUsIG51bGwpO1xuXG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAubWFwKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlckl0ZW0gPSBjcmVhdGVGaWx0ZXJJdGVtKGl0ZW0sIHsgY2FzZTogdGhpcy5fY29uZmlnLmNhc2UgfSk7XG5cbiAgICAgICAgaWYgKGZpbHRlckl0ZW0udHlwZSA9PT0gSXRlbVR5cGUuS2V5d29yZCkge1xuICAgICAgICAgIHRoaXMuX2hhc0tleXdvcmQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXRlbXNCeU5hbWUuc2V0KGl0ZW0ubmFtZSwgZmlsdGVySXRlbSk7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlckl0ZW07XG4gICAgICB9KTtcblxuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9JdGVtc0NoYW5nZXMoKSB7XG4gICAgdGhpcy5pdGVtc1xuICAgICAgLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaXRlbS52YWx1ZUNoYW5nZSRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbChpdGVtLmRlc3Ryb3kkKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9pdGVtc0NoYW5nZSQubmV4dChpdGVtKTtcbiAgICAgICAgICB9KVxuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5fY29uZmlnLnNvcnRWYWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5zb3J0QnlJdGVtLnZhbHVlQ2hhbmdlJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5zb3J0QnlJdGVtLmRlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9pdGVtc0NoYW5nZSQubmV4dCh0aGlzLnNvcnRCeUl0ZW0pO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uSXRlbS52YWx1ZUNoYW5nZSRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuc29ydERpcmVjdGlvbkl0ZW0uZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2l0ZW1zQ2hhbmdlJC5uZXh0KHRoaXMuc29ydERpcmVjdGlvbkl0ZW0pO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9sYXp5SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlYWR5JFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoc3RhdGUpID0+IHN0YXRlKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVZpc2libGVJdGVtcygpO1xuICAgICAgICB0aGlzLl9zZXRLZXl3b3JkSXRlbSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVTb3J0aW5nSXRlbXMocCkge1xuICAgIGlmICh0aGlzLl9jb25maWcuc29ydFZhbHVlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc29ydEJ5SXRlbSA9IHtcbiAgICAgICAgbmFtZTogU09SVF9CWV9GSUVMRCxcbiAgICAgICAgdHlwZTogSXRlbVR5cGUuU2VsZWN0LFxuICAgICAgICBsYWJlbDogJ1NvcnQgQnknLFxuICAgICAgICB2YWx1ZXM6IHRoaXMuX2NvbmZpZy5zb3J0VmFsdWVzXG4gICAgICB9IGFzIElGaWx0ZXJDb25maWdTZWxlY3RJdGVtO1xuXG5cbiAgICAgIGlmICh0aGlzLl9jb25maWcuc29ydCAmJiB0aGlzLl9jb25maWcuc29ydC52YWx1ZSkge1xuICAgICAgICBzb3J0QnlJdGVtLmRlZmF1bHQgPSB0aGlzLl9jb25maWcuc29ydC52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zb3J0QnlJdGVtID0gbmV3IFNpbXBsZVNlbGVjdEl0ZW0oXG4gICAgICAgIHNvcnRCeUl0ZW0sXG4gICAgICAgIG51bGwsXG4gICAgICApO1xuICAgICAgdGhpcy5zb3J0QnlJdGVtLmluaXRWYWx1ZXMocFt0aGlzLnNvcnRCeUl0ZW0ubmFtZV0pO1xuXG4gICAgICBjb25zdCBzb3J0RGlyZWN0aW9uSXRlbSA9IHtcbiAgICAgICAgbmFtZTogU09SVF9ESVJFQ1RJT05fRklFTEQsXG4gICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgICAgbGFiZWw6ICdTb3J0IERpcmVjdGlvbicsXG4gICAgICAgIHZhbHVlczogW1xuICAgICAgICAgIHsgbmFtZTogJ0FzY2VuZGluZycsIHZhbHVlOiAnYXNjJyB9LFxuICAgICAgICAgIHsgbmFtZTogJ0Rlc2NlbmRpbmcnLCB2YWx1ZTogJ2Rlc2MnIH1cbiAgICAgICAgXVxuICAgICAgfSBhcyBJRmlsdGVyQ29uZmlnU2VsZWN0SXRlbTtcblxuICAgICAgaWYgKHRoaXMuX2NvbmZpZy5zb3J0ICYmIHRoaXMuX2NvbmZpZy5zb3J0LmRpcmVjdGlvbikge1xuICAgICAgICBzb3J0RGlyZWN0aW9uSXRlbS5kZWZhdWx0ID0gdGhpcy5fY29uZmlnLnNvcnQuZGlyZWN0aW9uO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb25JdGVtID0gbmV3IFNpbXBsZVNlbGVjdEl0ZW0oXG4gICAgICAgIHNvcnREaXJlY3Rpb25JdGVtLFxuICAgICAgICBudWxsXG4gICAgICApO1xuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uSXRlbS5pbml0VmFsdWVzKHBbdGhpcy5zb3J0RGlyZWN0aW9uSXRlbS5uYW1lXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0S2V5d29yZEl0ZW0oKSB7XG4gICAgdGhpcy5rZXl3b3JkSXRlbSA9IHRoaXNcbiAgICAgIC5pdGVtc1xuICAgICAgLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaXNUeXBlS2V5d29yZCkgYXMgVGV4dEl0ZW07XG4gIH1cbn1cbiJdfQ==
|
package/esm5/public_api.js
CHANGED
|
@@ -32,4 +32,4 @@ export { FS_FILTER_CONFIG } from './app/injectors/filter-config';
|
|
|
32
32
|
export { filterToQueryParam, filterFromQueryParam } from './app/helpers/query-param-transformers';
|
|
33
33
|
// Const
|
|
34
34
|
export { QUERY_PARAM_DELIMITER } from './app/consts/query-param-delimiter';
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2ZpbHRlci8iLCJzb3VyY2VzIjpbInB1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBRXpHLFVBQVU7QUFDVixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsYUFBYTtBQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUUxRixhQUFhO0FBQ2IsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUErQzVGLFFBQVE7QUFDUixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFMUQsU0FBUztBQUNULE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRWhFLFlBQVk7QUFDWixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUdqRSxVQUFVO0FBQ1YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFbEcsUUFBUTtBQUNSLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29udHJvbGxlcnNcbmV4cG9ydCB7IEV4dGVybmFsUGFyYW1zQ29udHJvbGxlciB9IGZyb20gJy4vYXBwL3NlcnZpY2VzL2V4dGVybmFsLXBhcmFtcy1jb250cm9sbGVyLnNlcnZpY2UnO1xuZXhwb3J0IHsgU2F2ZWRGaWx0ZXJzQ29udHJvbGxlciB9IGZyb20gJy4vYXBwL3NlcnZpY2VzL2V4dGVybmFsLXBhcmFtcy9zYXZlZC1maWx0ZXJzLWNvbnRyb2xsZXIuc2VydmljZSc7XG5cbi8vIE1vZHVsZXNcbmV4cG9ydCB7IEZzRmlsdGVyTW9kdWxlIH0gZnJvbSAnLi9hcHAvZnMtZmlsdGVyLm1vZHVsZSc7XG5cbi8vIENvbXBvbmVudHNcbmV4cG9ydCB7IEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0IHsgRmlsdGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvZmlsdGVycy1pdGVtL2ZpbHRlci1pdGVtLmNvbXBvbmVudCc7XG5cbi8vIERpcmVjdGl2ZXNcbmV4cG9ydCB7IEZpbHRlclN0YXR1c0JhckRpcmVjdGl2ZSB9IGZyb20gJy4vYXBwL2RpcmVjdGl2ZXMvc3RhdHVzLWJhci9zdGF0dXMtYmFyLmRpcmVjdGl2ZSc7XG5cbi8vIEludGVyZmFjZXNcbmV4cG9ydCB7IElGaWx0ZXJDb25maWdBdXRvY29tcGxldGVJdGVtIH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9pdGVtcy9hdXRvY29tcGxldGUuaW50ZXJmYWNlJztcbmV4cG9ydCB7IElGaWx0ZXJDb25maWdBdXRvY29tcGxldGVDaGlwc0l0ZW0gfSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2l0ZW1zL2F1dG9jb21wbGV0ZS1jaGlwcy5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgSUZpbHRlckNvbmZpZ0Jhc2VJdGVtIH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9pdGVtcy9iYXNlLmludGVyZmFjZSc7XG5leHBvcnQgeyBJRmlsdGVyQ29uZmlnQ2hlY2tib3hJdGVtIH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9pdGVtcy9jaGVja2JveC5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgSUZpbHRlckNvbmZpZ0NoaXBzSXRlbSB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvaXRlbXMvY2hpcHMuaW50ZXJmYWNlJztcbmV4cG9ydCB7IElGaWx0ZXJDb25maWdEYXRlSXRlbSB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvaXRlbXMvZGF0ZS5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgSUZpbHRlckl0ZW1EZWZhdWx0RGF0ZVJhbmdlLCBJRmlsdGVyQ29uZmlnRGF0ZVJhbmdlSXRlbSB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvaXRlbXMvZGF0ZS1yYW5nZS5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgSUZpbHRlckl0ZW1EZWZhdWx0UmFuZ2UsIElGaWx0ZXJDb25maWdSYW5nZUl0ZW0gfSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2l0ZW1zL3JhbmdlLmludGVyZmFjZSc7XG5leHBvcnQgeyBJRmlsdGVyQ29uZmlnU2VsZWN0SXRlbSwgSUZpbHRlckNvbmZpZ1NlbGVjdElzb2xhdGUsIElGaWx0ZXJTZWxlY3RWYWx1ZSwgRmlsdGVyVmFsdWVzUmV0dXJuRm4gfSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2l0ZW1zL3NlbGVjdC5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgSUZpbHRlckNvbmZpZ1RleHRJdGVtIH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9pdGVtcy90ZXh0LmludGVyZmFjZSc7XG5leHBvcnQge1xuICBGc0ZpbHRlckFjdGlvbixcbiAgRnNGaWx0ZXJBY3Rpb25DbGlja0ZuLFxuICBGc0ZpbHRlckFjdGlvblNob3dGbixcbiAgSUZzRmlsdGVyTWVudUFjdGlvbkxpbmssXG4gIElGc0ZpbHRlck1lbnVBY3Rpb25Hcm91cEl0ZW0sXG4gIElGc0ZpbHRlck1lbnVBY3Rpb25JdGVtLFxuICBJRnNGaWx0ZXJNZW51QWN0aW9uLFxuICBJRnNGaWx0ZXJCdXR0b25BY3Rpb24sXG4gIElGc0ZpbHRlckZpbGVBY3Rpb24sXG4gIEZzRmlsdGVyRmlsZUFjdGlvbkVycm9yRm4sXG4gIEZzRmlsdGVyRmlsZUFjdGlvblNlbGVjdEZuLFxuICBGc0ZpbHRlckFjdGlvbkRpc2FibGVkRm4sXG59IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvYWN0aW9uLmludGVyZmFjZSc7XG5cbmV4cG9ydCB7XG4gIEZpbHRlckNvbmZpZyxcbiAgU29ydEl0ZW0sXG4gIENoYW5nZUZuLFxuICBGaWx0ZXJTb3J0LFxuICBTb3J0LFxuICBJRmlsdGVyQ29uZmlnSXRlbSxcbiAgRnNGaWx0ZXJQZXJzaXN0YW5jZSxcbn0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcblxuZXhwb3J0IHtcbiAgSUZpbHRlclNhdmVkRmlsdGVyLFxuICBJRmlsdGVyU2F2ZWRGaWx0ZXJzQ29uZmlnLFxuICBGaWx0ZXJSZW1vdGVEZWxldGUsXG4gIEZpbHRlclJlbW90ZU9yZGVyLFxuICBGaWx0ZXJSZW1vdGVMb2FkLFxuICBGaWx0ZXJSZW1vdGVTYXZlXG59IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvc2F2ZWQtZmlsdGVycy5pbnRlcmZhY2UnO1xuXG4vLyBFbnVtc1xuZXhwb3J0IHsgSXRlbVR5cGUgfSBmcm9tICcuL2FwcC9lbnVtcy9pdGVtLXR5cGUuZW51bSc7XG5leHBvcnQgeyBJdGVtRGF0ZU1vZGUgfSBmcm9tICcuL2FwcC9lbnVtcy9pdGVtLWRhdGUtbW9kZS5lbnVtJztcbmV4cG9ydCB7IEFjdGlvbk1vZGUgfSBmcm9tICcuL2FwcC9lbnVtcy9hY3Rpb24tbW9kZS5lbnVtJztcbmV4cG9ydCB7IEFjdGlvblR5cGUgfSBmcm9tICcuL2FwcC9lbnVtcy9hY3Rpb24tdHlwZS5lbnVtJztcblxuLy8gTW9kZWxzXG5leHBvcnQgeyBEYXRlSXRlbSB9IGZyb20gJy4vYXBwL21vZGVscy9pdGVtcy9kYXRlLWl0ZW0nO1xuZXhwb3J0IHsgRGF0ZVJhbmdlSXRlbSB9IGZyb20gJy4vYXBwL21vZGVscy9pdGVtcy9kYXRlLXJhbmdlLWl0ZW0nO1xuZXhwb3J0IHsgRGF0ZVRpbWVJdGVtIH0gZnJvbSAnLi9hcHAvbW9kZWxzL2l0ZW1zL2RhdGUtdGltZS1pdGVtJztcbmV4cG9ydCB7IERhdGVUaW1lUmFuZ2VJdGVtIH0gZnJvbSAnLi9hcHAvbW9kZWxzL2l0ZW1zL2RhdGUtdGltZS1yYW5nZS1pdGVtJztcbmV4cG9ydCB7IEF1dG9jb21wbGV0ZUl0ZW0gfSBmcm9tICcuL2FwcC9tb2RlbHMvaXRlbXMvYXV0b2NvbXBsZXRlLWl0ZW0nO1xuZXhwb3J0IHsgQXV0b2NvbXBsZXRlQ2hpcHNJdGVtIH0gZnJvbSAnLi9hcHAvbW9kZWxzL2l0ZW1zL2F1dG9jb21wbGV0ZS1jaGlwcy1pdGVtJztcbmV4cG9ydCB7IFJhbmdlSXRlbSB9IGZyb20gJy4vYXBwL21vZGVscy9pdGVtcy9yYW5nZS1pdGVtJztcbmV4cG9ydCB7IFNlbGVjdEl0ZW0gfSBmcm9tICcuL2FwcC9tb2RlbHMvaXRlbXMvc2VsZWN0LWl0ZW0nO1xuZXhwb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuL2FwcC9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtJztcbmV4cG9ydCB7IFRleHRJdGVtIH0gZnJvbSAnLi9hcHAvbW9kZWxzL2l0ZW1zL3RleHQtaXRlbSc7XG5leHBvcnQgeyBDaGlwc0l0ZW0gfSBmcm9tICcuL2FwcC9tb2RlbHMvaXRlbXMvY2hpcHMtaXRlbSc7XG5leHBvcnQgeyBDaGVja2JveEl0ZW0gfSBmcm9tICcuL2FwcC9tb2RlbHMvaXRlbXMvY2hlY2tib3gtaXRlbSc7XG5cbi8vIEluamVjdG9yc1xuZXhwb3J0IHsgRlNfRklMVEVSX0NPTkZJRyB9IGZyb20gJy4vYXBwL2luamVjdG9ycy9maWx0ZXItY29uZmlnJztcblxuXG4vLyBIZWxwZXJzXG5leHBvcnQgeyBmaWx0ZXJUb1F1ZXJ5UGFyYW0sIGZpbHRlckZyb21RdWVyeVBhcmFtIH0gZnJvbSAnLi9hcHAvaGVscGVycy9xdWVyeS1wYXJhbS10cmFuc2Zvcm1lcnMnO1xuXG4vLyBDb25zdFxuZXhwb3J0IHsgUVVFUllfUEFSQU1fREVMSU1JVEVSIH0gZnJvbSAnLi9hcHAvY29uc3RzL3F1ZXJ5LXBhcmFtLWRlbGltaXRlcic7XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __decorate, __metadata, __param } from 'tslib';
|
|
2
2
|
import { Injectable, Optional, Inject, Component, ChangeDetectionStrategy, InjectionToken, ChangeDetectorRef, HostListener, Input, Injector, Directive, EventEmitter, NgZone, Output, ContentChild, TemplateRef, ViewChild, ElementRef, HostBinding, ViewEncapsulation, KeyValueDiffers, Pipe, Self, NgModule } from '@angular/core';
|
|
3
3
|
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
|
|
4
|
-
import { BehaviorSubject, Subject, isObservable, of, fromEvent, merge, timer
|
|
5
|
-
import {
|
|
4
|
+
import { BehaviorSubject, Subject, isObservable, forkJoin, of, fromEvent, combineLatest, merge, timer } from 'rxjs';
|
|
5
|
+
import { tap, finalize, take, takeUntil, debounceTime, filter as filter$1, distinctUntilChanged, switchMap, skip, map, mapTo, startWith, delay } from 'rxjs/operators';
|
|
6
6
|
import { isFunction, clone, isObject, isString, toString, pickBy } from 'lodash-es';
|
|
7
7
|
import { Model, Alias } from 'tsmodels';
|
|
8
8
|
import { filter, isEmpty, getNormalizedPath, list, remove, FsCommonModule } from '@firestitch/common';
|
|
@@ -70,6 +70,7 @@ class BaseItem {
|
|
|
70
70
|
this._additionalConfig = _additionalConfig;
|
|
71
71
|
this._initialized = false;
|
|
72
72
|
this._pendingValues = false;
|
|
73
|
+
this._pendingDefaultValue = false;
|
|
73
74
|
this._loading$ = new BehaviorSubject(false);
|
|
74
75
|
this._value$ = new BehaviorSubject(null);
|
|
75
76
|
this._valueChange$ = new Subject();
|
|
@@ -126,6 +127,9 @@ class BaseItem {
|
|
|
126
127
|
get hasPendingValues() {
|
|
127
128
|
return this._pendingValues;
|
|
128
129
|
}
|
|
130
|
+
get hasPendingDefaultValue() {
|
|
131
|
+
return this._pendingDefaultValue;
|
|
132
|
+
}
|
|
129
133
|
get model() {
|
|
130
134
|
return this._model;
|
|
131
135
|
}
|
|
@@ -187,6 +191,14 @@ class BaseItem {
|
|
|
187
191
|
get persistanceObject() {
|
|
188
192
|
return this.queryObject;
|
|
189
193
|
}
|
|
194
|
+
loadDefaultValue() {
|
|
195
|
+
return this.defaultValueFn()
|
|
196
|
+
.pipe(tap((value) => {
|
|
197
|
+
this.defaultValue = value;
|
|
198
|
+
}), finalize(() => {
|
|
199
|
+
this._pendingDefaultValue = false;
|
|
200
|
+
}));
|
|
201
|
+
}
|
|
190
202
|
initValues(persistedValue) {
|
|
191
203
|
this._initialized = false;
|
|
192
204
|
this.persistedValue = persistedValue;
|
|
@@ -250,7 +262,13 @@ class BaseItem {
|
|
|
250
262
|
this.name = item.name;
|
|
251
263
|
this.label = item.label;
|
|
252
264
|
this.chipLabel = item.chipLabel;
|
|
253
|
-
|
|
265
|
+
if (typeof item.default === 'function') {
|
|
266
|
+
this._pendingDefaultValue = true;
|
|
267
|
+
this.defaultValueFn = item.default;
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
this.defaultValue = item.default;
|
|
271
|
+
}
|
|
254
272
|
this.change = item.change;
|
|
255
273
|
this.hide = item.hide;
|
|
256
274
|
this.clearAllowed = (_a = item.clear) !== null && _a !== void 0 ? _a : true;
|
|
@@ -680,15 +698,14 @@ class RangeItem extends BaseItem {
|
|
|
680
698
|
return value;
|
|
681
699
|
}
|
|
682
700
|
get queryObject() {
|
|
683
|
-
var _a, _b;
|
|
684
701
|
const value = this.value;
|
|
685
702
|
const name = this.name;
|
|
686
703
|
const params = {};
|
|
687
704
|
const paramMinName = getRangeName(this.case, name, 'min');
|
|
688
705
|
const paramMaxName = getRangeName(this.case, name, 'max');
|
|
689
706
|
if (isObject(value)) {
|
|
690
|
-
params[paramMinName] =
|
|
691
|
-
params[paramMaxName] =
|
|
707
|
+
params[paramMinName] = value.min || null;
|
|
708
|
+
params[paramMaxName] = value.max || null;
|
|
692
709
|
}
|
|
693
710
|
else {
|
|
694
711
|
params[paramMinName] = null;
|
|
@@ -794,14 +811,13 @@ class BaseDateRangeItem extends BaseItem {
|
|
|
794
811
|
return value;
|
|
795
812
|
}
|
|
796
813
|
get queryObject() {
|
|
797
|
-
var _a, _b;
|
|
798
814
|
const value = this.value || {};
|
|
799
815
|
const name = this.name;
|
|
800
816
|
const paramFromName = getRangeName(this.case, name, 'from');
|
|
801
817
|
const paramToName = getRangeName(this.case, name, 'to');
|
|
802
818
|
return {
|
|
803
|
-
[paramFromName]:
|
|
804
|
-
[paramToName]:
|
|
819
|
+
[paramFromName]: value.from || null,
|
|
820
|
+
[paramToName]: value.to || null,
|
|
805
821
|
};
|
|
806
822
|
}
|
|
807
823
|
get persistanceObject() {
|
|
@@ -1192,12 +1208,15 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1192
1208
|
this.sortByItem = null;
|
|
1193
1209
|
this.sortDirectionItem = null;
|
|
1194
1210
|
this.keywordItem = null;
|
|
1211
|
+
this._ready$ = new BehaviorSubject(false);
|
|
1195
1212
|
this._items = [];
|
|
1196
1213
|
this._visibleItems$ = new BehaviorSubject([]);
|
|
1197
1214
|
this._itemsByName = new Map();
|
|
1198
1215
|
this._itemsValuesLoaded = false;
|
|
1199
1216
|
this._hasKeyword = false;
|
|
1200
1217
|
this._itemsChange$ = new Subject();
|
|
1218
|
+
this._destroy$ = new Subject();
|
|
1219
|
+
this._lazyInit();
|
|
1201
1220
|
}
|
|
1202
1221
|
get items() {
|
|
1203
1222
|
return this._items;
|
|
@@ -1217,8 +1236,13 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1217
1236
|
get itemsChange$() {
|
|
1218
1237
|
return this._itemsChange$.pipe(debounceTime(30));
|
|
1219
1238
|
}
|
|
1239
|
+
get ready$() {
|
|
1240
|
+
return this._ready$.asObservable();
|
|
1241
|
+
}
|
|
1220
1242
|
ngOnDestroy() {
|
|
1221
1243
|
this.destroyItems();
|
|
1244
|
+
this._destroy$.next();
|
|
1245
|
+
this._destroy$.complete();
|
|
1222
1246
|
}
|
|
1223
1247
|
setConfig(config) {
|
|
1224
1248
|
this._itemsByName.clear();
|
|
@@ -1232,8 +1256,6 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1232
1256
|
this._itemsValuesLoaded = false;
|
|
1233
1257
|
if (Array.isArray(items)) {
|
|
1234
1258
|
this._createItems(items);
|
|
1235
|
-
this.updateVisibleItems();
|
|
1236
|
-
this._setKeywordItem();
|
|
1237
1259
|
}
|
|
1238
1260
|
}
|
|
1239
1261
|
filtersClear() {
|
|
@@ -1272,6 +1294,24 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1272
1294
|
.filter((item) => item.hasPendingValues)
|
|
1273
1295
|
.forEach((item) => item.loadAsyncValues());
|
|
1274
1296
|
}
|
|
1297
|
+
loadAsyncDefaults() {
|
|
1298
|
+
const pendingItems = this.items
|
|
1299
|
+
.filter((item) => {
|
|
1300
|
+
return item.hasPendingDefaultValue
|
|
1301
|
+
&& (item.persistedValue === null || item.persistedValue === undefined);
|
|
1302
|
+
});
|
|
1303
|
+
if (pendingItems.length > 0) {
|
|
1304
|
+
forkJoin(pendingItems
|
|
1305
|
+
.map((item) => item.loadDefaultValue()))
|
|
1306
|
+
.pipe(finalize(() => {
|
|
1307
|
+
this._ready$.next(true);
|
|
1308
|
+
}), takeUntil(this._destroy$))
|
|
1309
|
+
.subscribe();
|
|
1310
|
+
}
|
|
1311
|
+
else {
|
|
1312
|
+
this._ready$.next(true);
|
|
1313
|
+
}
|
|
1314
|
+
}
|
|
1275
1315
|
getSort() {
|
|
1276
1316
|
let sortBy = this.getSortByValue();
|
|
1277
1317
|
sortBy = sortBy === '__all' ? null : sortBy;
|
|
@@ -1326,6 +1366,7 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1326
1366
|
item.initValues(p[item.name]);
|
|
1327
1367
|
});
|
|
1328
1368
|
this._createSortingItems(p);
|
|
1369
|
+
this.loadAsyncDefaults();
|
|
1329
1370
|
this._subscribeToItemsChanges();
|
|
1330
1371
|
}
|
|
1331
1372
|
updateItemsWithValues(values) {
|
|
@@ -1412,6 +1453,14 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1412
1453
|
});
|
|
1413
1454
|
}
|
|
1414
1455
|
}
|
|
1456
|
+
_lazyInit() {
|
|
1457
|
+
this.ready$
|
|
1458
|
+
.pipe(filter$1((state) => state), takeUntil(this._destroy$))
|
|
1459
|
+
.subscribe(() => {
|
|
1460
|
+
this.updateVisibleItems();
|
|
1461
|
+
this._setKeywordItem();
|
|
1462
|
+
});
|
|
1463
|
+
}
|
|
1415
1464
|
_createSortingItems(p) {
|
|
1416
1465
|
var _a;
|
|
1417
1466
|
if (((_a = this._config.sortValues) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
@@ -2656,6 +2705,9 @@ let FilterComponent = class FilterComponent {
|
|
|
2656
2705
|
get visibleItems() {
|
|
2657
2706
|
return this._filterItems.visibleItems;
|
|
2658
2707
|
}
|
|
2708
|
+
get itemsReady$() {
|
|
2709
|
+
return this._filterItems.ready$;
|
|
2710
|
+
}
|
|
2659
2711
|
get hasFilterChips$() {
|
|
2660
2712
|
return this._hasFilterChips$.asObservable();
|
|
2661
2713
|
}
|
|
@@ -2687,21 +2739,6 @@ let FilterComponent = class FilterComponent {
|
|
|
2687
2739
|
this.focus();
|
|
2688
2740
|
}
|
|
2689
2741
|
});
|
|
2690
|
-
if (this.config.init) {
|
|
2691
|
-
if (this._externalParams.pending) {
|
|
2692
|
-
this._externalParams
|
|
2693
|
-
.pending$
|
|
2694
|
-
.pipe(filter$1((pending) => {
|
|
2695
|
-
return !pending;
|
|
2696
|
-
}), takeUntil(this._destroy$))
|
|
2697
|
-
.subscribe(() => {
|
|
2698
|
-
this.init();
|
|
2699
|
-
});
|
|
2700
|
-
}
|
|
2701
|
-
else {
|
|
2702
|
-
this.init();
|
|
2703
|
-
}
|
|
2704
|
-
}
|
|
2705
2742
|
this._listenInternalItemsChange();
|
|
2706
2743
|
this._initOverlay();
|
|
2707
2744
|
}
|
|
@@ -3090,10 +3127,15 @@ let FilterComponent = class FilterComponent {
|
|
|
3090
3127
|
}
|
|
3091
3128
|
// We may need some time to recieve external params and after that ready can be emitted
|
|
3092
3129
|
_listenWhenFilterReady() {
|
|
3093
|
-
|
|
3094
|
-
.pending
|
|
3095
|
-
|
|
3130
|
+
combineLatest([
|
|
3131
|
+
this._externalParams.pending$,
|
|
3132
|
+
this.itemsReady$,
|
|
3133
|
+
])
|
|
3134
|
+
.pipe(filter$1(([pendingParams, itemsReady]) => !pendingParams && itemsReady), takeUntil(this._destroy$))
|
|
3096
3135
|
.subscribe(() => {
|
|
3136
|
+
if (this.config.init) {
|
|
3137
|
+
this.init();
|
|
3138
|
+
}
|
|
3097
3139
|
this.ready.emit();
|
|
3098
3140
|
});
|
|
3099
3141
|
}
|
|
@@ -3170,7 +3212,7 @@ __decorate([
|
|
|
3170
3212
|
FilterComponent = __decorate([
|
|
3171
3213
|
Component({
|
|
3172
3214
|
selector: 'fs-filter',
|
|
3173
|
-
template: "<ng-container *ngIf=\"hasKeyword; else noKeywordFilter\">\n <div class=\"filter-search-container\">\n <div class=\"filter-input-field\">\n <form autocomplete=\"off\" role=\"presentation\" *ngIf=\"keywordVisible$ | async\">\n <mat-form-field floatLabel=\"never\">\n <span matPrefix>\n <mat-icon matPrefix>search</mat-icon>\n </span>\n\n <input\n matInput\n [formControl]=\"searchText\"\n [placeholder]=\"searchPlaceholder\"\n name=\"filter-input\"\n (click)=\"filterInputEvent($event)\"\n class=\"filter-input\">\n\n <a matSuffix\n *ngIf=\"searchText.value && showFilterInput && config.clear\"\n (click)=\"clearSearchText($event)\"\n href=\"javascript:void(0)\"\n class=\"clear\">\n <mat-icon>clear</mat-icon>\n </a>\n\n <a matSuffix\n (click)=\"reload($event)\"\n class=\"reload\"\n *ngIf=\"config.reload\">\n <mat-icon>refresh</mat-icon>\n </a>\n </mat-form-field>\n </form>\n </div>\n <ng-container *ngTemplateOutlet=\"filterActions\"></ng-container>\n </div>\n <div class=\"status-actions\" *ngIf=\"keywordVisible$ | async\">\n <ng-container *ngTemplateOutlet=\"statusBarContainer\"></ng-container>\n <ng-container *ngTemplateOutlet=\"filterChips\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #noKeywordFilter>\n <div class=\"filter-searchless-container\">\n <div class=\"status-actions\">\n <ng-container *ngTemplateOutlet=\"statusBarContainer\"></ng-container>\n <ng-container *ngTemplateOutlet=\"filterChips\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"filterActions\"></ng-container>\n </div>\n</ng-template>\n\n\n<ng-template #filterActions>\n <div class=\"filter-actions\">\n <ng-container *ngIf=\"hasVisibleItemOrSorting && filtersBtnVisible$ | async
|
|
3215
|
+
template: "<ng-container *ngIf=\"hasKeyword; else noKeywordFilter\">\n <div class=\"filter-search-container\">\n <div class=\"filter-input-field\">\n <form autocomplete=\"off\" role=\"presentation\" *ngIf=\"keywordVisible$ | async\">\n <mat-form-field floatLabel=\"never\">\n <span matPrefix>\n <mat-icon matPrefix>search</mat-icon>\n </span>\n\n <input\n #searchTextInput\n matInput\n [formControl]=\"searchText\"\n [placeholder]=\"searchPlaceholder\"\n name=\"filter-input\"\n (click)=\"filterInputEvent($event)\"\n class=\"filter-input\">\n\n <a matSuffix\n *ngIf=\"searchText.value && showFilterInput && config.clear\"\n (click)=\"clearSearchText($event)\"\n href=\"javascript:void(0)\"\n class=\"clear\">\n <mat-icon>clear</mat-icon>\n </a>\n\n <a matSuffix\n (click)=\"reload($event)\"\n class=\"reload\"\n *ngIf=\"config.reload\">\n <mat-icon>refresh</mat-icon>\n </a>\n </mat-form-field>\n </form>\n </div>\n <ng-container *ngTemplateOutlet=\"filterActions\"></ng-container>\n </div>\n <div class=\"status-actions\" *ngIf=\"keywordVisible$ | async\">\n <ng-container *ngTemplateOutlet=\"statusBarContainer\"></ng-container>\n <ng-container *ngTemplateOutlet=\"filterChips\"></ng-container>\n </div>\n</ng-container>\n\n<ng-template #noKeywordFilter>\n <div class=\"filter-searchless-container\">\n <div class=\"status-actions\">\n <ng-container *ngTemplateOutlet=\"statusBarContainer\"></ng-container>\n <ng-container *ngTemplateOutlet=\"filterChips\"></ng-container>\n </div>\n <ng-container *ngTemplateOutlet=\"filterActions\"></ng-container>\n </div>\n</ng-template>\n\n\n<ng-template #filterActions>\n <div class=\"filter-actions\">\n <ng-container *ngIf=\"hasVisibleItemOrSorting && filtersBtnVisible$ | async\">\n <button\n mat-button\n class=\"filters-button\"\n [ngClass]=\"{\n 'mat-raised-button': config.button.style == 'raised',\n 'mat-button': config.button.style == 'basic',\n 'mat-icon-button': config.button.style == 'icon'\n }\"\n (click)=\"changeVisibilityClick(!showFilterMenu, $event)\"\n type=\"button\"\n [color]=\"config.button.color\">\n <mat-icon *ngIf=\"config.button.icon\">{{config.button.icon}}</mat-icon>\n {{ config.button.label }}\n </button>\n </ng-container>\n\n <fs-filter-actions\n *ngIf=\"actionsVisible$ | async\"\n [actions]=\"actions$ | async\"\n [kebabActions]=\"menuActions$ | async\">\n </fs-filter-actions>\n </div>\n</ng-template>\n\n<ng-template #filterChips>\n <fs-filter-chips\n *ngIf=\"config.chips && hasFilterChips$ | async\"\n class=\"filter-chips\"\n [filters]=\"items\">\n </fs-filter-chips>\n</ng-template>\n\n<ng-template #statusBarContainer>\n <div class=\"status-bar\" *ngIf=\"statusBar\">\n <small><ng-container *ngTemplateOutlet=\"statusBar\"></ng-container></small>\n </div>\n</ng-template>\n",
|
|
3174
3216
|
encapsulation: ViewEncapsulation.None,
|
|
3175
3217
|
providers: [
|
|
3176
3218
|
FsFilterOverlayService,
|
|
@@ -3487,16 +3529,26 @@ let TextComponent = class TextComponent extends BaseItemComponent {
|
|
|
3487
3529
|
this.destroy$ = new Subject();
|
|
3488
3530
|
}
|
|
3489
3531
|
ngOnInit() {
|
|
3490
|
-
this.
|
|
3532
|
+
this._listenControlValueChanges();
|
|
3533
|
+
this._listenModelChanges();
|
|
3534
|
+
}
|
|
3535
|
+
ngOnDestroy() {
|
|
3536
|
+
this.destroy$.next();
|
|
3537
|
+
this.destroy$.complete();
|
|
3538
|
+
}
|
|
3539
|
+
_listenControlValueChanges() {
|
|
3491
3540
|
this.textControl.valueChanges
|
|
3492
3541
|
.pipe(distinctUntilChanged(), debounceTime(200), takeUntil(this.destroy$))
|
|
3493
3542
|
.subscribe((value) => {
|
|
3494
3543
|
this.item.model = value;
|
|
3495
3544
|
});
|
|
3496
3545
|
}
|
|
3497
|
-
|
|
3498
|
-
this.
|
|
3499
|
-
|
|
3546
|
+
_listenModelChanges() {
|
|
3547
|
+
this._item.value$
|
|
3548
|
+
.pipe(takeUntil(this.destroy$))
|
|
3549
|
+
.subscribe(() => {
|
|
3550
|
+
this.textControl.setValue(this.item.model, { emitEvent: false });
|
|
3551
|
+
});
|
|
3500
3552
|
}
|
|
3501
3553
|
};
|
|
3502
3554
|
TextComponent.ctorParameters = () => [
|