@firestitch/filter 9.8.8 → 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/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 +84 -22
- 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/interfaces/items/base.interface.js +1 -1
- package/esm2015/app/models/items/base-item.js +21 -3
- package/esm2015/app/services/items-store.service.js +38 -5
- package/esm5/app/components/filter/filter.component.js +22 -22
- package/esm5/app/interfaces/items/base.interface.js +1 -1
- package/esm5/app/models/items/base-item.js +26 -3
- package/esm5/app/services/items-store.service.js +44 -5
- package/fesm2015/firestitch-filter.js +68 -24
- package/fesm2015/firestitch-filter.js.map +1 -1
- package/fesm5/firestitch-filter.js +86 -24
- package/fesm5/firestitch-filter.js.map +1 -1
- package/firestitch-filter.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { isFunction } from 'lodash-es';
|
|
2
2
|
import { BehaviorSubject, isObservable, Subject } from 'rxjs';
|
|
3
|
-
import { take, takeUntil, } from 'rxjs/operators';
|
|
3
|
+
import { finalize, take, takeUntil, tap, } from 'rxjs/operators';
|
|
4
4
|
import { ItemType } from '../../enums/item-type.enum';
|
|
5
5
|
var BaseItem = /** @class */ (function () {
|
|
6
6
|
function BaseItem(itemConfig, _additionalConfig) {
|
|
7
7
|
this._additionalConfig = _additionalConfig;
|
|
8
8
|
this._initialized = false;
|
|
9
9
|
this._pendingValues = false;
|
|
10
|
+
this._pendingDefaultValue = false;
|
|
10
11
|
this._loading$ = new BehaviorSubject(false);
|
|
11
12
|
this._value$ = new BehaviorSubject(null);
|
|
12
13
|
this._valueChange$ = new Subject();
|
|
@@ -123,6 +124,13 @@ var BaseItem = /** @class */ (function () {
|
|
|
123
124
|
enumerable: true,
|
|
124
125
|
configurable: true
|
|
125
126
|
});
|
|
127
|
+
Object.defineProperty(BaseItem.prototype, "hasPendingDefaultValue", {
|
|
128
|
+
get: function () {
|
|
129
|
+
return this._pendingDefaultValue;
|
|
130
|
+
},
|
|
131
|
+
enumerable: true,
|
|
132
|
+
configurable: true
|
|
133
|
+
});
|
|
126
134
|
Object.defineProperty(BaseItem.prototype, "model", {
|
|
127
135
|
get: function () {
|
|
128
136
|
return this._model;
|
|
@@ -228,6 +236,15 @@ var BaseItem = /** @class */ (function () {
|
|
|
228
236
|
enumerable: true,
|
|
229
237
|
configurable: true
|
|
230
238
|
});
|
|
239
|
+
BaseItem.prototype.loadDefaultValue = function () {
|
|
240
|
+
var _this = this;
|
|
241
|
+
return this.defaultValueFn()
|
|
242
|
+
.pipe(tap(function (value) {
|
|
243
|
+
_this.defaultValue = value;
|
|
244
|
+
}), finalize(function () {
|
|
245
|
+
_this._pendingDefaultValue = false;
|
|
246
|
+
}));
|
|
247
|
+
};
|
|
231
248
|
BaseItem.prototype.initValues = function (persistedValue) {
|
|
232
249
|
this._initialized = false;
|
|
233
250
|
this.persistedValue = persistedValue;
|
|
@@ -291,7 +308,13 @@ var BaseItem = /** @class */ (function () {
|
|
|
291
308
|
this.name = item.name;
|
|
292
309
|
this.label = item.label;
|
|
293
310
|
this.chipLabel = item.chipLabel;
|
|
294
|
-
|
|
311
|
+
if (typeof item.default === 'function') {
|
|
312
|
+
this._pendingDefaultValue = true;
|
|
313
|
+
this.defaultValueFn = item.default;
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
this.defaultValue = item.default;
|
|
317
|
+
}
|
|
295
318
|
this.change = item.change;
|
|
296
319
|
this.hide = item.hide;
|
|
297
320
|
this.clearAllowed = (_a = item.clear) !== null && _a !== void 0 ? _a : true;
|
|
@@ -319,4 +342,4 @@ var BaseItem = /** @class */ (function () {
|
|
|
319
342
|
return BaseItem;
|
|
320
343
|
}());
|
|
321
344
|
export { BaseItem };
|
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pdGVtLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvZmlsdGVyLyIsInNvdXJjZXMiOlsiYXBwL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUNMLElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFPdEQ7SUFrQ0Usa0JBQ0UsVUFBYSxFQUNILGlCQUEwQjtRQUExQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVM7UUFkNUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3JDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWxDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBTXZDLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFLRCxzQkFBVyx3Q0FBa0I7UUFEN0IsR0FBRzthQUNIO1lBQ0UsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDN0MsQ0FBQzs7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RUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFUyw4QkFBVyxHQUFyQixVQUFzQixZQUFpQztRQUFqQyw2QkFBQSxFQUFBLHdCQUFpQztRQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksYUFBWixZQUFZLGNBQVosWUFBWSxHQUFJLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBQ0gsZUFBQztBQUFELENBQUMsQUFsU0QsSUFrU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2l0ZW0tdHlwZS5lbnVtJztcblxuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0NoZWNrYm94SXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaXRlbXMvY2hlY2tib3guaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJDb25maWdCYXNlSXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaXRlbXMvYmFzZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlckl0ZW1EZWZhdWx0UmFuZ2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2l0ZW1zL3JhbmdlLmludGVyZmFjZSc7XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VJdGVtPFQgZXh0ZW5kcyBJRmlsdGVyQ29uZmlnQmFzZUl0ZW0+IHtcblxuICAvLyBDb25maWd1cmFibGUgcHJvcGVydGllc1xuXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nIHwgc3RyaW5nW107XG4gIHB1YmxpYyBjaGlwTGFiZWw6IHN0cmluZyB8IHN0cmluZ1tdO1xuICBwdWJsaWMgaGlkZTogYm9vbGVhbjtcbiAgcHVibGljIGRlZmF1bHRWYWx1ZTogYW55IHwgSUZpbHRlckl0ZW1EZWZhdWx0UmFuZ2U7XG4gIHB1YmxpYyBwZXJzaXN0ZWRWYWx1ZTogdW5rbm93bjtcbiAgcHVibGljIGNsZWFyQWxsb3dlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgcGVyc2lzdGFuY2VEaXNhYmxlZDogYm9vbGVhbjtcbiAgcHVibGljIHF1ZXJ5UGFyYW1zRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgLy8gSW50ZXJuYWwgcHJvcGVydGllc1xuXG4gIHB1YmxpYyBjaGFuZ2U6IChpdGVtOiBCYXNlSXRlbTxUPikgPT4gdm9pZDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3R5cGU6IFRbJ3R5cGUnXTtcblxuICBwcm90ZWN0ZWQgX21vZGVsOiBhbnk7XG4gIHByb3RlY3RlZCBfaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9wZW5kaW5nVmFsdWVzID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHJvdGVjdGVkIF92YWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBwcm90ZWN0ZWQgX3ZhbHVlQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByb3RlY3RlZCBfdmFsdWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIHByb3RlY3RlZCBfdmFsdWVzRm46IChxdWVyeT86IHN0cmluZykgPT4gT2JzZXJ2YWJsZTx1bmtub3duPiB8IHVua25vd247XG5cbiAgcHJvdGVjdGVkIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfY2xlYXIkID0gbmV3IFN1YmplY3Q8dW5rbm93bj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBpdGVtQ29uZmlnOiBULFxuICAgIHByb3RlY3RlZCBfYWRkaXRpb25hbENvbmZpZzogdW5rbm93blxuICApIHtcbiAgICB0aGlzLl90eXBlID0gaXRlbUNvbmZpZy50eXBlO1xuICAgIHRoaXMuX3BhcnNlQ29uZmlnKGl0ZW1Db25maWcpO1xuICB9XG5cbiAgcHVibGljIGFic3RyYWN0IGdldCB2YWx1ZSgpO1xuXG4gIC8vL1xuICBwdWJsaWMgZ2V0IGlzVHlwZUF1dG9jb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5BdXRvQ29tcGxldGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZUF1dG9jb21wbGV0ZUNoaXBzKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEl0ZW1UeXBlLkF1dG9Db21wbGV0ZUNoaXBzO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1R5cGVDaGlwcygpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5DaGlwcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlQ2hlY2tib3goKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuQ2hlY2tib3g7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZVNlbGVjdCgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5TZWxlY3Q7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZURhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuRGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlRGF0ZVJhbmdlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEl0ZW1UeXBlLkRhdGVSYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlUmFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuUmFuZ2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZURhdGVUaW1lUmFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuRGF0ZVRpbWVSYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlRGF0ZVRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuRGF0ZVRpbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZUtleXdvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuS2V5d29yZDtcbiAgfVxuICAvLy8vXG5cbiAgcHVibGljIGdldCBpc0NoaXBWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubW9kZWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlc3Ryb3kkKCkge1xuICAgIHJldHVybiB0aGlzLl9kZXN0cm95JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBUWyd0eXBlJ10ge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNQZW5kaW5nVmFsdWVzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wZW5kaW5nVmFsdWVzO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gIH1cblxuICBwdWJsaWMgc2V0IG1vZGVsKHZhbHVlKSB7XG4gICAgdGhpcy5fc2V0TW9kZWwodmFsdWUpO1xuICAgIHRoaXMudmFsdWVDaGFuZ2VkKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlcyh2YWx1ZXMpIHtcbiAgICB0aGlzLl92YWx1ZXMkLm5leHQodmFsdWVzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlcyQoKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuICB0aGlzLl92YWx1ZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZUNoYW5nZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUkKCkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsZWFyJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xlYXIkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbml0aWFsaXplZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faW5pdGlhbGl6ZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvYWRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2xvYWRpbmckLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHZhbHVlQ2hhbmdlZCgpIHtcbiAgICB0aGlzLl92YWx1ZSQubmV4dCh0aGlzLnZhbHVlKTtcblxuICAgIGlmICh0aGlzLmNoYW5nZSkge1xuICAgICAgdGhpcy5jaGFuZ2UodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlJC5uZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBxdWVyeU9iamVjdCgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWU7XG4gICAgY29uc3QgcGFyYW1zID0ge307XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHBhcmFtc1t0aGlzLm5hbWVdID0gdmFsdWUuam9pbignLCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJhbXNbbmFtZV0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldCBwZXJzaXN0YW5jZU9iamVjdCgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlPYmplY3Q7XG4gIH1cblxuICBwdWJsaWMgaW5pdFZhbHVlcyhwZXJzaXN0ZWRWYWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgdGhpcy5wZXJzaXN0ZWRWYWx1ZSA9IHBlcnNpc3RlZFZhbHVlO1xuICAgIHRoaXMuX2luaXREZWZhdWx0TW9kZWwoKTtcblxuICAgIGNvbnN0IGlzQXV0b2NvbXBsZXRlID0gdGhpcy50eXBlID09PSBJdGVtVHlwZS5BdXRvQ29tcGxldGUgfHwgdGhpcy50eXBlID09PSBJdGVtVHlwZS5BdXRvQ29tcGxldGVDaGlwcztcblxuICAgIGlmICh0aGlzLl92YWx1ZXNGbiAmJiAhaXNBdXRvY29tcGxldGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlc1Jlc3VsdCA9IHRoaXMuX3ZhbHVlc0ZuKCk7XG5cbiAgICAgIGlmIChpc09ic2VydmFibGUodmFsdWVzUmVzdWx0KSkge1xuICAgICAgICB0aGlzLl9wZW5kaW5nVmFsdWVzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzUmVzdWx0O1xuXG4gICAgICAgIC8vIE1vdmUgdG8gc29tZSBvdGhlciBwbGFjZVxuICAgICAgICB0aGlzLl9pbml0KCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbml0KCk7XG4gICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGxvYWRBc3luY1ZhbHVlcyhyZWxvYWQgPSB0cnVlKSB7XG4gICAgaWYgKHJlbG9hZCB8fCAoIXRoaXMubG9hZGluZyAmJiB0aGlzLmhhc1BlbmRpbmdWYWx1ZXMpKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAodGhpcy5fdmFsdWVzRm4oKSBhcyBPYnNlcnZhYmxlPHVua25vd24+KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcbiAgICAgICAgICB0aGlzLl9wZW5kaW5nVmFsdWVzID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5faW5pdCgpO1xuICAgICAgICAgIHRoaXMuX3ZhbGlkYXRlTW9kZWwoKTtcbiAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyKGRlZmF1bHRWYWx1ZTogdW5rbm93biA9IHVuZGVmaW5lZCkge1xuICAgIGlmICh0aGlzLmlzVHlwZVJhbmdlIHx8IHRoaXMuaXNUeXBlRGF0ZVJhbmdlIHx8IHRoaXMuaXNUeXBlRGF0ZVRpbWVSYW5nZSkge1xuICAgICAgY29uc29sZS53YXJuKGBcbiAgICAgICAgRmlsdGVyICR7dGhpcy5uYW1lfSBjYW4gbm90IGJlIGNsZWFyZWQgd2l0aCAuY2xlYXIoKSBtZXRob2QhXG4gICAgICAgIFVzZSBzcGVjaWFsIC5jbGVhclJhbmdlKCkgb3IgY2xlYXJEYXRlUmFuZ2UoKSBpbnN0ZWFkLlxuICAgICAgYClcbiAgICB9XG5cbiAgICB0aGlzLl9jbGVhciQubmV4dChkZWZhdWx0VmFsdWUpO1xuICAgIHRoaXMuX2NsZWFyVmFsdWUoZGVmYXVsdFZhbHVlKTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0Q2hpcHNDb250ZW50KHR5cGUpOiBzdHJpbmcge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG5cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX2luaXQoKTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IF92YWxpZGF0ZU1vZGVsKCk7XG5cbiAgcHJvdGVjdGVkIF9zZXRNb2RlbCh2YWx1ZSkge1xuICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3BhcnNlQ29uZmlnKGl0ZW06IFQpIHtcbiAgICB0aGlzLm5hbWUgPSBpdGVtLm5hbWU7XG4gICAgdGhpcy5sYWJlbCA9IGl0ZW0ubGFiZWw7XG4gICAgdGhpcy5jaGlwTGFiZWwgPSBpdGVtLmNoaXBMYWJlbDtcbiAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IGl0ZW0uZGVmYXVsdDtcbiAgICB0aGlzLmNoYW5nZSA9IGl0ZW0uY2hhbmdlO1xuICAgIHRoaXMuaGlkZSA9IGl0ZW0uaGlkZTtcbiAgICB0aGlzLmNsZWFyQWxsb3dlZCA9IGl0ZW0uY2xlYXIgPz8gdHJ1ZTtcbiAgICB0aGlzLnBlcnNpc3RhbmNlRGlzYWJsZWQgPSBpdGVtLmRpc2FibGVQZXJzaXN0ID8/IGZhbHNlO1xuICAgIHRoaXMucXVlcnlQYXJhbXNEaXNhYmxlZCA9IGl0ZW0uZGlzYWJsZVF1ZXJ5UGFyYW1zID8/IGZhbHNlO1xuXG4gICAgaWYgKGlzRnVuY3Rpb24oaXRlbS52YWx1ZXMpKSB7XG4gICAgICB0aGlzLl92YWx1ZXNGbiA9IGl0ZW0udmFsdWVzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZhbHVlcyA9IGl0ZW0udmFsdWVzO1xuICAgIH1cbiAgfTtcblxuICBwcm90ZWN0ZWQgX2luaXREZWZhdWx0TW9kZWwoKSB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLnBlcnNpc3RlZFZhbHVlID8/IHRoaXMuZGVmYXVsdFZhbHVlO1xuXG4gICAgaWYgKG1vZGVsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2NsZWFyVmFsdWUoZGVmYXVsdFZhbHVlOiB1bmtub3duID0gdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5tb2RlbCA9IGRlZmF1bHRWYWx1ZSA/PyBudWxsO1xuICB9XG59XG4iXX0=
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pdGVtLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvZmlsdGVyLyIsInNvdXJjZXMiOlsiYXBwL21vZGVscy9pdGVtcy9iYXNlLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUUsT0FBTyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU10RDtJQW9DRSxrQkFDRSxVQUFhLEVBQ0gsaUJBQTBCO1FBQTFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUztRQWY1QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBR3JDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWxDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBTXZDLElBQUksQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFLRCxzQkFBVyx3Q0FBa0I7UUFEN0IsR0FBRzthQUNIO1lBQ0UsT0FBTyxJQUFJ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QzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxTQUFHLElBQUksQ0FBQyxLQUFLLG1DQUFJLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsbUJBQW1CLFNBQUcsSUFBSSxDQUFDLGNBQWMsbUNBQUksS0FBSyxDQUFDO1FBQ3hELElBQUksQ0FBQyxtQkFBbUIsU0FBRyxJQUFJLENBQUMsa0JBQWtCLG1DQUFJLEtBQUssQ0FBQztRQUU1RCxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzlCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBQUEsQ0FBQztJQUVRLG9DQUFpQixHQUEzQjs7UUFDRSxJQUFNLEtBQUssU0FBRyxJQUFJLENBQUMsY0FBYyxtQ0FBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXZELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFUyw4QkFBVyxHQUFyQixVQUFzQixZQUFpQztRQUFqQyw2QkFBQSxFQUFBLHdCQUFpQztRQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksYUFBWixZQUFZLGNBQVosWUFBWSxHQUFJLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBQ0gsZUFBQztBQUFELENBQUMsQUEzVEQsSUEyVEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBpc09ic2VydmFibGUsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGZpbmFsaXplLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2l0ZW0tdHlwZS5lbnVtJztcblxuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0Jhc2VJdGVtLCBJRmlsdGVyRGVmYXVsdEZuIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9pdGVtcy9iYXNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRmlsdGVySXRlbURlZmF1bHRSYW5nZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaXRlbXMvcmFuZ2UuaW50ZXJmYWNlJztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUl0ZW08VCBleHRlbmRzIElGaWx0ZXJDb25maWdCYXNlSXRlbT4ge1xuXG4gIC8vIENvbmZpZ3VyYWJsZSBwcm9wZXJ0aWVzXG5cbiAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgcHVibGljIGxhYmVsOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgcHVibGljIGNoaXBMYWJlbDogc3RyaW5nIHwgc3RyaW5nW107XG4gIHB1YmxpYyBoaWRlOiBib29sZWFuO1xuICBwdWJsaWMgZGVmYXVsdFZhbHVlOiBhbnkgfCBJRmlsdGVySXRlbURlZmF1bHRSYW5nZTtcbiAgcHVibGljIGRlZmF1bHRWYWx1ZUZuOiBJRmlsdGVyRGVmYXVsdEZuO1xuICBwdWJsaWMgcGVyc2lzdGVkVmFsdWU6IHVua25vd247XG4gIHB1YmxpYyBjbGVhckFsbG93ZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIHBlcnNpc3RhbmNlRGlzYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBxdWVyeVBhcmFtc0Rpc2FibGVkOiBib29sZWFuO1xuXG4gIC8vIEludGVybmFsIHByb3BlcnRpZXNcblxuICBwdWJsaWMgY2hhbmdlOiAoaXRlbTogQmFzZUl0ZW08VD4pID0+IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF90eXBlOiBUWyd0eXBlJ107XG5cbiAgcHJvdGVjdGVkIF9tb2RlbDogYW55O1xuICBwcm90ZWN0ZWQgX2luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBfcGVuZGluZ1ZhbHVlcyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX3BlbmRpbmdEZWZhdWx0VmFsdWUgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIF9sb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwcm90ZWN0ZWQgX3ZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XG4gIHByb3RlY3RlZCBfdmFsdWVDaGFuZ2UkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJvdGVjdGVkIF92YWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcHJvdGVjdGVkIF92YWx1ZXNGbjogKHF1ZXJ5Pzogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPHVua25vd24+IHwgdW5rbm93bjtcblxuICBwcm90ZWN0ZWQgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9jbGVhciQgPSBuZXcgU3ViamVjdDx1bmtub3duPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGl0ZW1Db25maWc6IFQsXG4gICAgcHJvdGVjdGVkIF9hZGRpdGlvbmFsQ29uZmlnOiB1bmtub3duXG4gICkge1xuICAgIHRoaXMuX3R5cGUgPSBpdGVtQ29uZmlnLnR5cGU7XG4gICAgdGhpcy5fcGFyc2VDb25maWcoaXRlbUNvbmZpZyk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IHZhbHVlKCk7XG5cbiAgLy8vXG4gIHB1YmxpYyBnZXQgaXNUeXBlQXV0b2NvbXBsZXRlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEl0ZW1UeXBlLkF1dG9Db21wbGV0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlQXV0b2NvbXBsZXRlQ2hpcHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuQXV0b0NvbXBsZXRlQ2hpcHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHlwZUNoaXBzKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEl0ZW1UeXBlLkNoaXBzO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1R5cGVDaGVja2JveCgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5DaGVja2JveDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlU2VsZWN0KCkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IEl0ZW1UeXBlLlNlbGVjdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5EYXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1R5cGVEYXRlUmFuZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSXRlbVR5cGUuRGF0ZVJhbmdlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1R5cGVSYW5nZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5SYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlRGF0ZVRpbWVSYW5nZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5EYXRlVGltZVJhbmdlO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1R5cGVEYXRlVGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5EYXRlVGltZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNUeXBlS2V5d29yZCgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBJdGVtVHlwZS5LZXl3b3JkO1xuICB9XG4gIC8vLy9cblxuICBwdWJsaWMgZ2V0IGlzQ2hpcFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5tb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVzdHJveSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rlc3Ryb3kkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB0eXBlKCk6IFRbJ3R5cGUnXSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1BlbmRpbmdWYWx1ZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdWYWx1ZXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1BlbmRpbmdEZWZhdWx0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdEZWZhdWx0VmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgbW9kZWwodmFsdWUpIHtcbiAgICB0aGlzLl9zZXRNb2RlbCh2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWVzKHZhbHVlcykge1xuICAgIHRoaXMuX3ZhbHVlcyQubmV4dCh2YWx1ZXMpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWVzJCgpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICByZXR1cm4gIHRoaXMuX3ZhbHVlcyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlQ2hhbmdlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVDaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xlYXIkKCkge1xuICAgIHJldHVybiB0aGlzLl9jbGVhciQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluaXRpYWxpemVkKCkge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbG9hZGluZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRpbmckLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZGluZyQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgdmFsdWVDaGFuZ2VkKCkge1xuICAgIHRoaXMuX3ZhbHVlJC5uZXh0KHRoaXMudmFsdWUpO1xuXG4gICAgaWYgKHRoaXMuY2hhbmdlKSB7XG4gICAgICB0aGlzLmNoYW5nZSh0aGlzKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UkLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHF1ZXJ5T2JqZWN0KCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZTtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcGFyYW1zW3RoaXMubmFtZV0gPSB2YWx1ZS5qb2luKCcsJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtc1tuYW1lXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBlcnNpc3RhbmNlT2JqZWN0KCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeU9iamVjdDtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkRGVmYXVsdFZhbHVlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlRm4oKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgodmFsdWUpID0+IHtcbiAgICAgICAgICB0aGlzLmRlZmF1bHRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3BlbmRpbmdEZWZhdWx0VmFsdWUgPSBmYWxzZTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIHB1YmxpYyBpbml0VmFsdWVzKHBlcnNpc3RlZFZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5faW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnBlcnNpc3RlZFZhbHVlID0gcGVyc2lzdGVkVmFsdWU7XG4gICAgdGhpcy5faW5pdERlZmF1bHRNb2RlbCgpO1xuXG4gICAgY29uc3QgaXNBdXRvY29tcGxldGUgPSB0aGlzLnR5cGUgPT09IEl0ZW1UeXBlLkF1dG9Db21wbGV0ZSB8fCB0aGlzLnR5cGUgPT09IEl0ZW1UeXBlLkF1dG9Db21wbGV0ZUNoaXBzO1xuXG4gICAgaWYgKHRoaXMuX3ZhbHVlc0ZuICYmICFpc0F1dG9jb21wbGV0ZSkge1xuICAgICAgY29uc3QgdmFsdWVzUmVzdWx0ID0gdGhpcy5fdmFsdWVzRm4oKTtcblxuICAgICAgaWYgKGlzT2JzZXJ2YWJsZSh2YWx1ZXNSZXN1bHQpKSB7XG4gICAgICAgIHRoaXMuX3BlbmRpbmdWYWx1ZXMgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXNSZXN1bHQ7XG5cbiAgICAgICAgLy8gTW92ZSB0byBzb21lIG90aGVyIHBsYWNlXG4gICAgICAgIHRoaXMuX2luaXQoKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2luaXQoKTtcbiAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbG9hZEFzeW5jVmFsdWVzKHJlbG9hZCA9IHRydWUpIHtcbiAgICBpZiAocmVsb2FkIHx8ICghdGhpcy5sb2FkaW5nICYmIHRoaXMuaGFzUGVuZGluZ1ZhbHVlcykpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG5cbiAgICAgICh0aGlzLl92YWx1ZXNGbigpIGFzIE9ic2VydmFibGU8dW5rbm93bj4pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlcykgPT4ge1xuICAgICAgICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICAgICAgICAgIHRoaXMuX3BlbmRpbmdWYWx1ZXMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLl9pbml0KCk7XG4gICAgICAgICAgdGhpcy5fdmFsaWRhdGVNb2RlbCgpO1xuICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoZGVmYXVsdFZhbHVlOiB1bmtub3duID0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuaXNUeXBlUmFuZ2UgfHwgdGhpcy5pc1R5cGVEYXRlUmFuZ2UgfHwgdGhpcy5pc1R5cGVEYXRlVGltZVJhbmdlKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFxuICAgICAgICBGaWx0ZXIgJHt0aGlzLm5hbWV9IGNhbiBub3QgYmUgY2xlYXJlZCB3aXRoIC5jbGVhcigpIG1ldGhvZCFcbiAgICAgICAgVXNlIHNwZWNpYWwgLmNsZWFyUmFuZ2UoKSBvciBjbGVhckRhdGVSYW5nZSgpIGluc3RlYWQuXG4gICAgICBgKVxuICAgIH1cblxuICAgIHRoaXMuX2NsZWFyJC5uZXh0KGRlZmF1bHRWYWx1ZSk7XG4gICAgdGhpcy5fY2xlYXJWYWx1ZShkZWZhdWx0VmFsdWUpO1xuICB9O1xuXG4gIHB1YmxpYyBnZXRDaGlwc0NvbnRlbnQodHlwZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBfaW5pdCgpO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgX3ZhbGlkYXRlTW9kZWwoKTtcblxuICBwcm90ZWN0ZWQgX3NldE1vZGVsKHZhbHVlKSB7XG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfcGFyc2VDb25maWcoaXRlbTogVCkge1xuICAgIHRoaXMubmFtZSA9IGl0ZW0ubmFtZTtcbiAgICB0aGlzLmxhYmVsID0gaXRlbS5sYWJlbDtcbiAgICB0aGlzLmNoaXBMYWJlbCA9IGl0ZW0uY2hpcExhYmVsO1xuXG4gICAgaWYgKHR5cGVvZiBpdGVtLmRlZmF1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuX3BlbmRpbmdEZWZhdWx0VmFsdWUgPSB0cnVlO1xuICAgICAgdGhpcy5kZWZhdWx0VmFsdWVGbiA9IGl0ZW0uZGVmYXVsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWZhdWx0VmFsdWUgPSBpdGVtLmRlZmF1bHQ7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2UgPSBpdGVtLmNoYW5nZTtcbiAgICB0aGlzLmhpZGUgPSBpdGVtLmhpZGU7XG4gICAgdGhpcy5jbGVhckFsbG93ZWQgPSBpdGVtLmNsZWFyID8/IHRydWU7XG4gICAgdGhpcy5wZXJzaXN0YW5jZURpc2FibGVkID0gaXRlbS5kaXNhYmxlUGVyc2lzdCA/PyBmYWxzZTtcbiAgICB0aGlzLnF1ZXJ5UGFyYW1zRGlzYWJsZWQgPSBpdGVtLmRpc2FibGVRdWVyeVBhcmFtcyA/PyBmYWxzZTtcblxuICAgIGlmIChpc0Z1bmN0aW9uKGl0ZW0udmFsdWVzKSkge1xuICAgICAgdGhpcy5fdmFsdWVzRm4gPSBpdGVtLnZhbHVlcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZXMgPSBpdGVtLnZhbHVlcztcbiAgICB9XG4gIH07XG5cbiAgcHJvdGVjdGVkIF9pbml0RGVmYXVsdE1vZGVsKCkge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5wZXJzaXN0ZWRWYWx1ZSA/PyB0aGlzLmRlZmF1bHRWYWx1ZTtcblxuICAgIGlmIChtb2RlbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9jbGVhclZhbHVlKGRlZmF1bHRWYWx1ZTogdW5rbm93biA9IHVuZGVmaW5lZCkge1xuICAgIHRoaXMubW9kZWwgPSBkZWZhdWx0VmFsdWUgPz8gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMtc3RvcmUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL2ZpbHRlci8iLCJzb3VyY2VzIjpbImFwcC9zZXJ2aWNlcy9pdGVtcy1zdG9yZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQU1uQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFN0UsT0FBTyxFQUFrQixhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFhcEY7SUFnQkU7UUFkTyxlQUFVLEdBQWdDLElBQUksQ0FBQztRQUMvQyxzQkFBaUIsR0FBZ0MsSUFBSSxDQUFDO1FBQ3RELGdCQUFXLEdBQWEsSUFBSSxDQUFDO1FBRTVCLFdBQU0sR0FBa0MsRUFBRSxDQUFDO1FBQzNDLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQWdDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXVDLENBQUM7UUFFOUQsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR3BCLGtCQUFhLEdBQUcs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QkFDMUIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNO2dCQUNyQixLQUFLLEVBQUUsZ0JBQWdCO2dCQUN2QixNQUFNLEVBQUU7b0JBQ04sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7b0JBQ25DLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2lCQUN0QzthQUN5QixDQUFDO1lBRTdCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNwRCxpQkFBaUIsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3pEO1lBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksZ0JBQWdCLENBQzNDLGlCQUFpQixFQUNqQixJQUFJLENBQ0wsQ0FBQztZQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVPLDRDQUFlLEdBQXZCO1FBQ0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJO2FBQ3BCLEtBQUs7YUFDTCxJQUFJLENBQUMsVUFBQyxJQUFJLElBQUssT0FBQSxJQUFJLENBQUMsYUFBYSxFQUFsQixDQUFrQixDQUFhLENBQUM7SUFDcEQsQ0FBQztJQW5VVSxrQkFBa0I7UUFEOUIsVUFBVSxFQUFFOztPQUNBLGtCQUFrQixDQW9VOUI7SUFBRCx5QkFBQztDQUFBLEFBcFVELElBb1VDO1NBcFVZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBwaWNrQnkgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQge1xuICBGaWx0ZXJTb3J0LFxuICBJRmlsdGVyQ29uZmlnSXRlbSxcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnLi4vZW51bXMvaXRlbS10eXBlLmVudW0nO1xuaW1wb3J0IHsgQmFzZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvYmFzZS1pdGVtJztcbmltcG9ydCB7IFNpbXBsZVNlbGVjdEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvc2VsZWN0L3NpbXBsZS1zZWxlY3QtaXRlbSc7XG5pbXBvcnQgeyBJRmlsdGVyQ29uZmlnU2VsZWN0SXRlbSB9IGZyb20gJy4uL2ludGVyZmFjZXMvaXRlbXMvc2VsZWN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGc0ZpbHRlckNvbmZpZywgU09SVF9CWV9GSUVMRCwgU09SVF9ESVJFQ1RJT05fRklFTEQgfSBmcm9tICcuLi9tb2RlbHMvZmlsdGVyLWNvbmZpZyc7XG5pbXBvcnQgeyBjcmVhdGVGaWx0ZXJJdGVtIH0gZnJvbSAnLi4vaGVscGVycy9jcmVhdGUtZmlsdGVyLWl0ZW0nO1xuaW1wb3J0IHsgUmFuZ2VJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2l0ZW1zL3JhbmdlLWl0ZW0nO1xuaW1wb3J0IHsgQmFzZURhdGVSYW5nZUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvaXRlbXMvZGF0ZS1yYW5nZS9iYXNlLWRhdGUtcmFuZ2UtaXRlbSc7XG5pbXBvcnQgeyBJU29ydGluZ0NoYW5nZUV2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRleHRJdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2l0ZW1zL3RleHQtaXRlbSc7XG5pbXBvcnQgeyBJRmlsdGVyRXh0ZXJuYWxQYXJhbXMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2V4dGVybmFsLXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlckNvbmZpZ0Jhc2VJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pdGVtcy9iYXNlLmludGVyZmFjZSc7XG5cbmludGVyZmFjZSBJVmFsdWVBc1F1ZXJ5IHtcbiAgb25seVByZXNlbnRlZD86IGJvb2xlYW47XG4gIGl0ZW1zPzogQmFzZUl0ZW08SUZpbHRlckNvbmZpZ0l0ZW0+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==
|
|
@@ -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;
|
|
@@ -1190,12 +1208,15 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1190
1208
|
this.sortByItem = null;
|
|
1191
1209
|
this.sortDirectionItem = null;
|
|
1192
1210
|
this.keywordItem = null;
|
|
1211
|
+
this._ready$ = new BehaviorSubject(false);
|
|
1193
1212
|
this._items = [];
|
|
1194
1213
|
this._visibleItems$ = new BehaviorSubject([]);
|
|
1195
1214
|
this._itemsByName = new Map();
|
|
1196
1215
|
this._itemsValuesLoaded = false;
|
|
1197
1216
|
this._hasKeyword = false;
|
|
1198
1217
|
this._itemsChange$ = new Subject();
|
|
1218
|
+
this._destroy$ = new Subject();
|
|
1219
|
+
this._lazyInit();
|
|
1199
1220
|
}
|
|
1200
1221
|
get items() {
|
|
1201
1222
|
return this._items;
|
|
@@ -1215,8 +1236,13 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1215
1236
|
get itemsChange$() {
|
|
1216
1237
|
return this._itemsChange$.pipe(debounceTime(30));
|
|
1217
1238
|
}
|
|
1239
|
+
get ready$() {
|
|
1240
|
+
return this._ready$.asObservable();
|
|
1241
|
+
}
|
|
1218
1242
|
ngOnDestroy() {
|
|
1219
1243
|
this.destroyItems();
|
|
1244
|
+
this._destroy$.next();
|
|
1245
|
+
this._destroy$.complete();
|
|
1220
1246
|
}
|
|
1221
1247
|
setConfig(config) {
|
|
1222
1248
|
this._itemsByName.clear();
|
|
@@ -1230,8 +1256,6 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1230
1256
|
this._itemsValuesLoaded = false;
|
|
1231
1257
|
if (Array.isArray(items)) {
|
|
1232
1258
|
this._createItems(items);
|
|
1233
|
-
this.updateVisibleItems();
|
|
1234
|
-
this._setKeywordItem();
|
|
1235
1259
|
}
|
|
1236
1260
|
}
|
|
1237
1261
|
filtersClear() {
|
|
@@ -1270,6 +1294,24 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1270
1294
|
.filter((item) => item.hasPendingValues)
|
|
1271
1295
|
.forEach((item) => item.loadAsyncValues());
|
|
1272
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
|
+
}
|
|
1273
1315
|
getSort() {
|
|
1274
1316
|
let sortBy = this.getSortByValue();
|
|
1275
1317
|
sortBy = sortBy === '__all' ? null : sortBy;
|
|
@@ -1324,6 +1366,7 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1324
1366
|
item.initValues(p[item.name]);
|
|
1325
1367
|
});
|
|
1326
1368
|
this._createSortingItems(p);
|
|
1369
|
+
this.loadAsyncDefaults();
|
|
1327
1370
|
this._subscribeToItemsChanges();
|
|
1328
1371
|
}
|
|
1329
1372
|
updateItemsWithValues(values) {
|
|
@@ -1410,6 +1453,14 @@ let FsFilterItemsStore = class FsFilterItemsStore {
|
|
|
1410
1453
|
});
|
|
1411
1454
|
}
|
|
1412
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
|
+
}
|
|
1413
1464
|
_createSortingItems(p) {
|
|
1414
1465
|
var _a;
|
|
1415
1466
|
if (((_a = this._config.sortValues) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
@@ -2654,6 +2705,9 @@ let FilterComponent = class FilterComponent {
|
|
|
2654
2705
|
get visibleItems() {
|
|
2655
2706
|
return this._filterItems.visibleItems;
|
|
2656
2707
|
}
|
|
2708
|
+
get itemsReady$() {
|
|
2709
|
+
return this._filterItems.ready$;
|
|
2710
|
+
}
|
|
2657
2711
|
get hasFilterChips$() {
|
|
2658
2712
|
return this._hasFilterChips$.asObservable();
|
|
2659
2713
|
}
|
|
@@ -2685,21 +2739,6 @@ let FilterComponent = class FilterComponent {
|
|
|
2685
2739
|
this.focus();
|
|
2686
2740
|
}
|
|
2687
2741
|
});
|
|
2688
|
-
if (this.config.init) {
|
|
2689
|
-
if (this._externalParams.pending) {
|
|
2690
|
-
this._externalParams
|
|
2691
|
-
.pending$
|
|
2692
|
-
.pipe(filter$1((pending) => {
|
|
2693
|
-
return !pending;
|
|
2694
|
-
}), takeUntil(this._destroy$))
|
|
2695
|
-
.subscribe(() => {
|
|
2696
|
-
this.init();
|
|
2697
|
-
});
|
|
2698
|
-
}
|
|
2699
|
-
else {
|
|
2700
|
-
this.init();
|
|
2701
|
-
}
|
|
2702
|
-
}
|
|
2703
2742
|
this._listenInternalItemsChange();
|
|
2704
2743
|
this._initOverlay();
|
|
2705
2744
|
}
|
|
@@ -3088,10 +3127,15 @@ let FilterComponent = class FilterComponent {
|
|
|
3088
3127
|
}
|
|
3089
3128
|
// We may need some time to recieve external params and after that ready can be emitted
|
|
3090
3129
|
_listenWhenFilterReady() {
|
|
3091
|
-
|
|
3092
|
-
.pending
|
|
3093
|
-
|
|
3130
|
+
combineLatest([
|
|
3131
|
+
this._externalParams.pending$,
|
|
3132
|
+
this.itemsReady$,
|
|
3133
|
+
])
|
|
3134
|
+
.pipe(filter$1(([pendingParams, itemsReady]) => !pendingParams && itemsReady), takeUntil(this._destroy$))
|
|
3094
3135
|
.subscribe(() => {
|
|
3136
|
+
if (this.config.init) {
|
|
3137
|
+
this.init();
|
|
3138
|
+
}
|
|
3095
3139
|
this.ready.emit();
|
|
3096
3140
|
});
|
|
3097
3141
|
}
|
|
@@ -3168,7 +3212,7 @@ __decorate([
|
|
|
3168
3212
|
FilterComponent = __decorate([
|
|
3169
3213
|
Component({
|
|
3170
3214
|
selector: 'fs-filter',
|
|
3171
|
-
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
|
|
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",
|
|
3172
3216
|
encapsulation: ViewEncapsulation.None,
|
|
3173
3217
|
providers: [
|
|
3174
3218
|
FsFilterOverlayService,
|