@one-paragon/angular-utilities 0.0.24 → 0.0.27
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/esm2020/http-request-state/HttpRequestStateStore.mjs +2 -1
- package/esm2020/rxjs/rxjs-operators.mjs +5 -2
- package/esm2020/table-builder/classes/TableState.mjs +9 -1
- package/esm2020/table-builder/classes/data-filter.mjs +2 -2
- package/esm2020/table-builder/classes/filter-info.mjs +12 -2
- package/esm2020/table-builder/classes/table-builder-general-settings.mjs +16 -1
- package/esm2020/table-builder/classes/table-store.mjs +45 -5
- package/esm2020/table-builder/components/column-builder/column-builder.component.mjs +4 -3
- package/esm2020/table-builder/components/date-filter/date-filter.component.mjs +2 -2
- package/esm2020/table-builder/components/filter/filter.component.mjs +1 -1
- package/esm2020/table-builder/components/filter/in-list/in-list-filter.component.mjs +4 -4
- package/esm2020/table-builder/components/generic-table/generic-table.component.mjs +4 -3
- package/esm2020/table-builder/components/header-menu/header-menu.component.mjs +3 -3
- package/esm2020/table-builder/components/number-filter/number-filter.component.mjs +2 -2
- package/esm2020/table-builder/components/table-container/table-container.mjs +100 -32
- package/esm2020/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +5 -2
- package/esm2020/table-builder/directives/index.mjs +2 -1
- package/esm2020/table-builder/directives/tb-filter.directive.mjs +380 -0
- package/esm2020/table-builder/enums/filterTypes.mjs +2 -1
- package/esm2020/table-builder/services/export-to-csv.service.mjs +2 -2
- package/esm2020/table-builder/services/table-template-service.mjs +1 -1
- package/esm2020/table-builder/table-builder.module.mjs +32 -3
- package/fesm2015/one-paragon-angular-utilities.mjs +866 -317
- package/fesm2015/one-paragon-angular-utilities.mjs.map +1 -1
- package/fesm2020/one-paragon-angular-utilities.mjs +865 -321
- package/fesm2020/one-paragon-angular-utilities.mjs.map +1 -1
- package/http-request-state/HttpRequestStateStore.d.ts +1 -1
- package/package.json +1 -1
- package/rxjs/rxjs-operators.d.ts +2 -0
- package/table-builder/classes/TableState.d.ts +9 -2
- package/table-builder/classes/data-filter.d.ts +2 -2
- package/table-builder/classes/filter-info.d.ts +14 -3
- package/table-builder/classes/table-builder-general-settings.d.ts +10 -0
- package/table-builder/classes/table-store.d.ts +26 -6
- package/table-builder/components/column-builder/column-builder.component.d.ts +1 -0
- package/table-builder/components/filter/filter.component.d.ts +13 -0
- package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +1 -1
- package/table-builder/components/generic-table/generic-table.component.d.ts +1 -0
- package/table-builder/components/table-container/table-container.d.ts +11 -20
- package/table-builder/directives/index.d.ts +1 -0
- package/table-builder/directives/tb-filter.directive.d.ts +119 -0
- package/table-builder/enums/filterTypes.d.ts +2 -1
- package/table-builder/table-builder.module.d.ts +11 -10
|
@@ -47,6 +47,7 @@ export class HttpRequestStateStore extends ComponentStore {
|
|
|
47
47
|
onError(cb) {
|
|
48
48
|
this.errorHandled = true;
|
|
49
49
|
this.on(this.selectError$, cb);
|
|
50
|
+
return this;
|
|
50
51
|
}
|
|
51
52
|
onSuccess(cb) {
|
|
52
53
|
this.on(this.selectResponse$, cb);
|
|
@@ -74,4 +75,4 @@ HttpRequestStateStore.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0",
|
|
|
74
75
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: HttpRequestStateStore, decorators: [{
|
|
75
76
|
type: Directive
|
|
76
77
|
}], ctorParameters: function () { return [{ type: undefined }, { type: undefined }]; } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZVN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2h0dHAtcmVxdWVzdC1zdGF0ZS9IdHRwUmVxdWVzdFN0YXRlU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQXlDLE1BQU0sU0FBUyxDQUFDO0FBQzVILE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFDLE1BQU0sT0FBTyxxQkFBK0MsU0FBUSxjQUF5QztJQUV6RyxZQUFvQixHQUFpQyxFQUFVLE9BQTZCO1FBQzFGLEtBQUssQ0FBQyxFQUFDLGFBQWEsRUFBRSxJQUFXLEVBQUUsUUFBUSxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUM7UUFEdkMsUUFBRyxHQUFILEdBQUcsQ0FBOEI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQVVwRix1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDaEMsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUU7Z0JBQzVELE9BQU8s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O0lBQ3RCLENBQUM7O2tIQXRHUSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RGYWN0b3J5LCBIdHRwUmVxdWVzdFN0cmF0ZWd5LCBIdHRwUmVxdWVzdFN0YXR1cywgSHR0cFJlcXVlc3RTdGF0ZSwgUmVxdWVzdFN0YXRlT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBjcmVhdGVGYWlsdXJlLCBjcmVhdGVTdWNjZXNzLCBpblByb2dyZXNzLCBpc0Vycm9yU3RhdGUsIGlzU3VjY2Vzc1N0YXRlLCBub3RTdGFydGVkIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCBwbHVjaywgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcEVycm9yIH0gZnJvbSAnLi4vcnhqcy9tYXBFcnJvcic7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSB9IGZyb20gJy4uL3J4anMvZGVmYXVsdFNoYXJlUmVwbGF5JztcclxuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXNwb25zZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSxUPiB7XHJcbiAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgcmVzcG9uc2U6IEh0dHBSZXF1ZXN0U3RhdGU8VD47XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVlc3RTdGF0ZVN0b3JlPFRQYXJhbSBleHRlbmRzIGFueVtdLCBUPiBleHRlbmRzIENvbXBvbmVudFN0b3JlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sVD4+IHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogSHR0cFJlcXVlc3RGYWN0b3J5PFRQYXJhbSxUPiAscHJpdmF0ZSBvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9ucykge1xyXG4gICAgICBzdXBlcih7cmVxdWVzdFBhcmFtczogbnVsbCBhcyBhbnkgLHJlc3BvbnNlOm5vdFN0YXJ0ZWR9KTtcclxuICAgICAgdGhpcy5yZXF1ZXN0ID0gKHRoaXMub3B0aW9ucz8uc3RyYXRlZ3kgPT09IEh0dHBSZXF1ZXN0U3RyYXRlZ3kuc2luZ2xlVXNlKSA/IHRoaXMuc2luZ2xlVXNlUmVxdWVzdCA6ICB0aGlzLmZsYXR0ZW5lZFJlcXVlc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXQoKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3JlcXVlc3RQYXJhbXM6bnVsbCBhcyBhbnkscmVzcG9uc2U6bm90U3RhcnRlZH0pO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwcml2YXRlIGZsYXR0ZW5pbmdTdHJhdGVneSA9ICgpID0+IHtcclxuICAgICAgaWYodGhpcy5vcHRpb25zPy5zdHJhdGVneSAhPT0gSHR0cFJlcXVlc3RTdHJhdGVneS5jb25jdXJyZW50KSB7XHJcbiAgICAgICAgcmV0dXJuIHN3aXRjaE1hcCggKHBhcmFtczogWy4uLlRQYXJhbV0pID0+IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpICApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBtZXJnZU1hcCggKHBhcmFtczogWy4uLlRQYXJhbV0pID0+IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlcXVlc3RFZmZlY3Q6ICh2YWx1ZTogWy4uLlRQYXJhbV0gKSA9PiBTdWJzY3JpcHRpb24gPSB0aGlzLmVmZmVjdCgob2JzOiBPYnNlcnZhYmxlPFsuLi5UUGFyYW1dPikgPT4ge1xyXG4gICAgICByZXR1cm4gKG9icykucGlwZShcclxuICAgICAgICB0aGlzLmZsYXR0ZW5pbmdTdHJhdGVneSgpLFxyXG4gICAgICAgIHRhcDxSZXF1ZXN0UmVzcG9uc2U8VFBhcmFtLCBUPj4oc3RhdGUgPT4gdGhpcy5zZXRTdGF0ZShzdGF0ZSkpLFxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHJpdmF0ZSBmbGF0dGVuZWRSZXF1ZXN0ID0gKC4uLnZhbHVlOiBbLi4uVFBhcmFtXSkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0RWZmZWN0KHZhbHVlKSBhcyBTdWJzY3JpcHRpb247XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHNpbmdsZVVzZVJlcXVlc3QgPSAoLi4udmFsdWU6IFsuLi5UUGFyYW1dKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmdldCgpLnJlc3BvbnNlLnN0YXR1cyAhPT0gSHR0cFJlcXVlc3RTdGF0dXMubm90U3RhcnRlZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInN0YXRlIGNhbiBub3QgYmUgcmV1c2VkLiBlaXRoZXIgcmVzZXQgdGhlIHN0YXRlIGJ5IGNhbGxpbmcgcmVzZXQoKSBvciB1c2UgYSBzdGF0ZSByZXF1ZXN0ZXIgdGhhdCBhbGxvd3MgY29uY3VycmVudCByZXF1ZXN0cy5cIik7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdEVmZmVjdCh2YWx1ZSkgYXMgU3Vic2NyaXB0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdEh0dHBTdGF0ZSQgPSB0aGlzLnN0YXRlJC5waXBlKHBsdWNrKCdyZXNwb25zZScpKTtcclxuXHJcbiAgICBzZWxlY3RTdGF0dXMkID0gdGhpcy5zZWxlY3RIdHRwU3RhdGUkLnBpcGUocGx1Y2soJ3N0YXR1cycpKTtcclxuXHJcbiAgICBzZWxlY3RFcnJvciQgPSB0aGlzLnN0YXRlJC5waXBlKFxyXG4gICAgICBtYXAociA9PiByLnJlc3BvbnNlKSxcclxuICAgICAgZmlsdGVyKGlzRXJyb3JTdGF0ZSksXHJcbiAgICAgIG1hcCggc3RhdGUgPT4gc3RhdGUuZXJyb3IpXHJcbiAgICApO1xyXG5cclxuICAgIHNlbGVjdFJlc3BvbnNlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChyID0+IHIucmVzcG9uc2UpLFxyXG4gICAgICBmaWx0ZXIoaXNTdWNjZXNzU3RhdGUpLFxyXG4gICAgICBtYXAoIHN0YXRlID0+IHN0YXRlLmJvZHkpXHJcbiAgICApO1xyXG5cclxuICAgIGVycm9ySGFuZGxlZCA9IGZhbHNlO1xyXG4gICAgb25FcnJvciggY2I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5lcnJvckhhbmRsZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uKHRoaXMuc2VsZWN0RXJyb3IkLCBjYik7XHJcbiAgICB9XHJcblxyXG4gICAgb25TdWNjZXNzKCBjYjogKGJvZHk6IFQpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFJlc3BvbnNlJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NXaXRoUmVxdWVzdChmdW5jOiAoc3RhdGU6IHtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICAgIGJvZHk6IFQ7XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoICh7cmVxdWVzdFBhcmFtcyxyZXNwb25zZX0pID0+IHtcclxuICAgICAgICBpZihpc1N1Y2Nlc3NTdGF0ZShyZXNwb25zZSkpe1xyXG4gICAgICAgICAgZnVuYyh7cmVxdWVzdFBhcmFtcyxib2R5OiByZXNwb25zZS5ib2R5fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zOiBbLi4uVFBhcmFtXSkgOiBPYnNlcnZhYmxlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sVD4+IHtcclxuICAgICAgcmV0dXJuICB0aGlzLnJlcSguLi5wYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgbWFwKGNyZWF0ZVN1Y2Nlc3MpLFxyXG4gICAgICAgIG1hcEVycm9yKGNyZWF0ZUZhaWx1cmUpLFxyXG4gICAgICAgIHN0YXJ0V2l0aChpblByb2dyZXNzKSxcclxuICAgICAgICBtYXAoIHN0YXRlID0+ICh7cmVxdWVzdFBhcmFtczpwYXJhbXMscmVzcG9uc2U6c3RhdGV9KSksXHJcbiAgICAgICAgZGVmYXVsdFNoYXJlUmVwbGF5KClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgb25VcGRhdGUoZnVuYzogKHN0YXRlOiB7XHJcbiAgICAgIHJlcXVlc3RQYXJhbXM6IFsuLi5UUGFyYW1dO1xyXG4gICAgICByZXNwb25zZTogSHR0cFJlcXVlc3RTdGF0ZTxUPjtcclxuICAgIH0pID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnN0YXRlJCxmdW5jKTtcclxuICAgIH1cclxuXHJcbiAgICBvbiA9IDxWPihzcmNPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFY+LCBmdW5jOiAob2JqOiBWKSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZWZmZWN0KChzcmM6IE9ic2VydmFibGU8Vj4pID0+IHtcclxuICAgICAgICByZXR1cm4gc3JjLnBpcGUodGFwKGZ1bmMpKTtcclxuICAgICAgfSkoc3JjT2JzZXJ2YWJsZSkgYXMgU3Vic2NyaXB0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcXVlc3Q6ICguLi52YWx1ZTogWy4uLlRQYXJhbV0gKSA9PiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuIl19
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZVN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2h0dHAtcmVxdWVzdC1zdGF0ZS9IdHRwUmVxdWVzdFN0YXRlU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQXlDLE1BQU0sU0FBUyxDQUFDO0FBQzVILE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMvRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFDLE1BQU0sT0FBTyxxQkFBK0MsU0FBUSxjQUF5QztJQUV6RyxZQUFvQixHQUFpQyxFQUFVLE9BQTZCO1FBQzFGLEtBQUssQ0FBQyxFQUFDLGFBQWEsRUFBRSxJQUFXLEVBQUUsUUFBUSxFQUFDLFVBQVUsRUFBQyxDQUFDLENBQUM7UUFEdkMsUUFBRyxHQUFILEdBQUcsQ0FBOEI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQVVwRix1QkFBa0IsR0FBRyxHQUFHLEVBQUU7WUFDaEMsSUFBRyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUU7Z0JBQzVELE9BQU8s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LENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7a0hBdkdRLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdEZhY3RvcnksIEh0dHBSZXF1ZXN0U3RyYXRlZ3ksIEh0dHBSZXF1ZXN0U3RhdHVzLCBIdHRwUmVxdWVzdFN0YXRlLCBSZXF1ZXN0U3RhdGVPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IGNyZWF0ZUZhaWx1cmUsIGNyZWF0ZVN1Y2Nlc3MsIGluUHJvZ3Jlc3MsIGlzRXJyb3JTdGF0ZSwgaXNTdWNjZXNzU3RhdGUsIG5vdFN0YXJ0ZWQgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHBsdWNrLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgbWFwRXJyb3IgfSBmcm9tICcuLi9yeGpzL21hcEVycm9yJztcclxuaW1wb3J0IHsgZGVmYXVsdFNoYXJlUmVwbGF5IH0gZnJvbSAnLi4vcnhqcy9kZWZhdWx0U2hhcmVSZXBsYXknO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdFJlc3BvbnNlPFRQYXJhbSBleHRlbmRzIGFueVtdLFQ+IHtcclxuICByZXF1ZXN0UGFyYW1zOiBbLi4uVFBhcmFtXTtcclxuICByZXNwb25zZTogSHR0cFJlcXVlc3RTdGF0ZTxUPjtcclxufVxyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtIGV4dGVuZHMgYW55W10sIFQ+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8UmVxdWVzdFJlc3BvbnNlPFRQYXJhbSxUPj4ge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxOiBIdHRwUmVxdWVzdEZhY3Rvcnk8VFBhcmFtLFQ+ICxwcml2YXRlIG9wdGlvbnM/OiBSZXF1ZXN0U3RhdGVPcHRpb25zKSB7XHJcbiAgICAgIHN1cGVyKHtyZXF1ZXN0UGFyYW1zOiBudWxsIGFzIGFueSAscmVzcG9uc2U6bm90U3RhcnRlZH0pO1xyXG4gICAgICB0aGlzLnJlcXVlc3QgPSAodGhpcy5vcHRpb25zPy5zdHJhdGVneSA9PT0gSHR0cFJlcXVlc3RTdHJhdGVneS5zaW5nbGVVc2UpID8gdGhpcy5zaW5nbGVVc2VSZXF1ZXN0IDogIHRoaXMuZmxhdHRlbmVkUmVxdWVzdDtcclxuICAgIH1cclxuXHJcbiAgICByZXNldCgpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7cmVxdWVzdFBhcmFtczpudWxsIGFzIGFueSxyZXNwb25zZTpub3RTdGFydGVkfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHByaXZhdGUgZmxhdHRlbmluZ1N0cmF0ZWd5ID0gKCkgPT4ge1xyXG4gICAgICBpZih0aGlzLm9wdGlvbnM/LnN0cmF0ZWd5ICE9PSBIdHRwUmVxdWVzdFN0cmF0ZWd5LmNvbmN1cnJlbnQpIHtcclxuICAgICAgICByZXR1cm4gc3dpdGNoTWFwKCAocGFyYW1zOiBbLi4uVFBhcmFtXSkgPT4gdGhpcy5jcmVhdGVSZXF1ZXN0KC4uLnBhcmFtcykgICk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG1lcmdlTWFwKCAocGFyYW1zOiBbLi4uVFBhcmFtXSkgPT4gdGhpcy5jcmVhdGVSZXF1ZXN0KC4uLnBhcmFtcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVxdWVzdEVmZmVjdDogKHZhbHVlOiBbLi4uVFBhcmFtXSApID0+IFN1YnNjcmlwdGlvbiA9IHRoaXMuZWZmZWN0KChvYnM6IE9ic2VydmFibGU8Wy4uLlRQYXJhbV0+KSA9PiB7XHJcbiAgICAgIHJldHVybiAob2JzKS5waXBlKFxyXG4gICAgICAgIHRoaXMuZmxhdHRlbmluZ1N0cmF0ZWd5KCksXHJcbiAgICAgICAgdGFwPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PihzdGF0ZSA9PiB0aGlzLnNldFN0YXRlKHN0YXRlKSksXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBwcml2YXRlIGZsYXR0ZW5lZFJlcXVlc3QgPSAoLi4udmFsdWU6IFsuLi5UUGFyYW1dKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RFZmZlY3QodmFsdWUpIGFzIFN1YnNjcmlwdGlvbjtcclxuICAgIH1cclxuICAgIHByaXZhdGUgc2luZ2xlVXNlUmVxdWVzdCA9ICguLi52YWx1ZTogWy4uLlRQYXJhbV0pID0+IHtcclxuICAgICAgaWYgKHRoaXMuZ2V0KCkucmVzcG9uc2Uuc3RhdHVzICE9PSBIdHRwUmVxdWVzdFN0YXR1cy5ub3RTdGFydGVkKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic3RhdGUgY2FuIG5vdCBiZSByZXVzZWQuIGVpdGhlciByZXNldCB0aGUgc3RhdGUgYnkgY2FsbGluZyByZXNldCgpIG9yIHVzZSBhIHN0YXRlIHJlcXVlc3RlciB0aGF0IGFsbG93cyBjb25jdXJyZW50IHJlcXVlc3RzLlwiKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0RWZmZWN0KHZhbHVlKSBhcyBTdWJzY3JpcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0SHR0cFN0YXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUocGx1Y2soJ3Jlc3BvbnNlJykpO1xyXG5cclxuICAgIHNlbGVjdFN0YXR1cyQgPSB0aGlzLnNlbGVjdEh0dHBTdGF0ZSQucGlwZShwbHVjaygnc3RhdHVzJykpO1xyXG5cclxuICAgIHNlbGVjdEVycm9yJCA9IHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChyID0+IHIucmVzcG9uc2UpLFxyXG4gICAgICBmaWx0ZXIoaXNFcnJvclN0YXRlKSxcclxuICAgICAgbWFwKCBzdGF0ZSA9PiBzdGF0ZS5lcnJvcilcclxuICAgICk7XHJcblxyXG4gICAgc2VsZWN0UmVzcG9uc2UkID0gdGhpcy5zdGF0ZSQucGlwZShcclxuICAgICAgbWFwKHIgPT4gci5yZXNwb25zZSksXHJcbiAgICAgIGZpbHRlcihpc1N1Y2Nlc3NTdGF0ZSksXHJcbiAgICAgIG1hcCggc3RhdGUgPT4gc3RhdGUuYm9keSlcclxuICAgICk7XHJcblxyXG4gICAgZXJyb3JIYW5kbGVkID0gZmFsc2U7XHJcbiAgICBvbkVycm9yKCBjYjogKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdm9pZCkge1xyXG4gICAgICB0aGlzLmVycm9ySGFuZGxlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMub24odGhpcy5zZWxlY3RFcnJvciQsIGNiKTtcclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgb25TdWNjZXNzKCBjYjogKGJvZHk6IFQpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFJlc3BvbnNlJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NXaXRoUmVxdWVzdChmdW5jOiAoc3RhdGU6IHtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICAgIGJvZHk6IFQ7XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoICh7cmVxdWVzdFBhcmFtcyxyZXNwb25zZX0pID0+IHtcclxuICAgICAgICBpZihpc1N1Y2Nlc3NTdGF0ZShyZXNwb25zZSkpe1xyXG4gICAgICAgICAgZnVuYyh7cmVxdWVzdFBhcmFtcyxib2R5OiByZXNwb25zZS5ib2R5fSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zOiBbLi4uVFBhcmFtXSkgOiBPYnNlcnZhYmxlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sVD4+IHtcclxuICAgICAgcmV0dXJuICB0aGlzLnJlcSguLi5wYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgbWFwKGNyZWF0ZVN1Y2Nlc3MpLFxyXG4gICAgICAgIG1hcEVycm9yKGNyZWF0ZUZhaWx1cmUpLFxyXG4gICAgICAgIHN0YXJ0V2l0aChpblByb2dyZXNzKSxcclxuICAgICAgICBtYXAoIHN0YXRlID0+ICh7cmVxdWVzdFBhcmFtczpwYXJhbXMscmVzcG9uc2U6c3RhdGV9KSksXHJcbiAgICAgICAgZGVmYXVsdFNoYXJlUmVwbGF5KClcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgb25VcGRhdGUoZnVuYzogKHN0YXRlOiB7XHJcbiAgICAgIHJlcXVlc3RQYXJhbXM6IFsuLi5UUGFyYW1dO1xyXG4gICAgICByZXNwb25zZTogSHR0cFJlcXVlc3RTdGF0ZTxUPjtcclxuICAgIH0pID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnN0YXRlJCxmdW5jKTtcclxuICAgIH1cclxuXHJcbiAgICBvbiA9IDxWPihzcmNPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFY+LCBmdW5jOiAob2JqOiBWKSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuZWZmZWN0KChzcmM6IE9ic2VydmFibGU8Vj4pID0+IHtcclxuICAgICAgICByZXR1cm4gc3JjLnBpcGUodGFwKGZ1bmMpKTtcclxuICAgICAgfSkoc3JjT2JzZXJ2YWJsZSkgYXMgU3Vic2NyaXB0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcXVlc3Q6ICguLi52YWx1ZTogWy4uLlRQYXJhbV0gKSA9PiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuIl19
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { flatten } from 'lodash';
|
|
2
2
|
import { Observable, combineLatest, Subscription } from 'rxjs';
|
|
3
|
-
import { filter, map, pairwise, startWith } from 'rxjs/operators';
|
|
3
|
+
import { filter, first, map, pairwise, startWith } from 'rxjs/operators';
|
|
4
|
+
export const onceWhen = (predicate) => (src) => {
|
|
5
|
+
return src.pipe(filter(predicate), first());
|
|
6
|
+
};
|
|
4
7
|
export const mapArray = (mapFunc) => (source) => source.pipe(map(src => src.map(mapFunc)));
|
|
5
8
|
export const filterArray = (filterFunc) => (source) => source.pipe(map(src => src.filter(filterFunc)));
|
|
6
9
|
export function onWait(val) {
|
|
@@ -74,4 +77,4 @@ export function notNull() {
|
|
|
74
77
|
return source.pipe(filter((o) => !!o));
|
|
75
78
|
};
|
|
76
79
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhqcy1vcGVyYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvcnhqcy9yeGpzLW9wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBOEMsTUFBTSxNQUFNLENBQUM7QUFDM0csT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBUSxTQUFTLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0YsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLENBQUksU0FBdUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFrQixFQUFrQixFQUFFO0lBQzdGLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBTyxPQUFzQixFQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQXVCLEVBQUUsRUFBRSxDQUNyRixNQUFNLENBQUMsSUFBSSxDQUFFLEdBQUcsQ0FBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUUsQ0FBRSxDQUFDO0FBRWhELE1BQU0sQ0FBRSxNQUFNLFdBQVcsR0FBRyxDQUFJLFVBQStCLEVBQUcsRUFBRSxDQUFDLENBQUMsTUFBdUIsRUFBRSxFQUFFLENBQy9GLE1BQU0sQ0FBQyxJQUFJLENBQUUsR0FBRyxDQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBRSxDQUFFLENBQUM7QUFFdEQsTUFBTSxVQUFVLE1BQU0sQ0FBZ0IsR0FBTTtJQUMxQyxPQUFPLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBQy9CLE9BQU8sSUFBSSxVQUFVLENBQUksVUFBVSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBRyxDQUFDLE9BQU8sRUFBRTtvQkFDWCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN0QjtZQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxTQUFTLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLENBQUMsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUM7Z0JBQzlDLEtBQUssQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUEsQ0FBQyxDQUFDO2dCQUNwRCxRQUFRLEtBQUssT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdEQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUE7QUFFSCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUksT0FBMEIsRUFBbUIsRUFBRTtJQUM5RSxPQUFPLGFBQWEsQ0FDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDMUMsQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFFLENBQzNCLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLFVBQVUsU0FBUyxDQUFFLFlBQWlDLEVBQUUsZUFBd0IsSUFBSTtJQUN4RixPQUFPLENBQUksTUFBcUIsRUFBa0IsRUFBRTtRQUNsRCxPQUFPLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hDLElBQUksSUFBSSxHQUFHLFlBQVksQ0FBQztZQUN4QixNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxHQUFHLENBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUUsQ0FBQyxDQUFDO1lBQzdELFlBQVksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLEtBQUs7b0JBQ1IsSUFBRyxJQUFJLEVBQUU7d0JBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDdkI7Z0JBQ0gsQ0FBQztnQkFDRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDdEMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7YUFDckMsQ0FBQyxDQUFDLENBQUM7WUFDSixPQUFPLFlBQVksQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFFLE9BQXdCO0lBQ25ELE9BQU8sQ0FBSSxNQUFxQixFQUFrQixFQUFFO1FBQ2xELE9BQU8sSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDaEMsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUN4QyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDckIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0QsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsS0FBSztvQkFDUixJQUFHLFFBQVEsRUFBRTt3QkFDWCxRQUFRLEdBQUcsS0FBSyxDQUFDO3FCQUNsQjt5QkFBTTt3QkFDTCxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUN2QjtnQkFDSCxDQUFDO2dCQUNELEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN0QyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTthQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNKLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBSSxhQUFpQjtJQUNyRCxPQUFPLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBQy9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU87SUFDckIsT0FBUSxDQUFDLE1BQXdDLEVBQUUsRUFBRTtRQUNuRCxPQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBdUIsRUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUE7SUFDekUsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmxhdHRlbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBTdWJzY3JpcHRpb24sIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT3BlcmF0b3JGdW5jdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgbWFwLCBwYWlyd2lzZSwgc2Nhbiwgc3RhcnRXaXRoLCBzd2l0Y2hBbGwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IG9uY2VXaGVuID0gPFQ+KHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+KSA9PiAoc3JjOiBPYnNlcnZhYmxlPFQ+KSA6IE9ic2VydmFibGU8VD4gPT4ge1xuICByZXR1cm4gc3JjLnBpcGUoZmlsdGVyKHByZWRpY2F0ZSksZmlyc3QoKSk7XG59XG5cbmV4cG9ydCBjb25zdCBtYXBBcnJheSA9IDxULCBVPihtYXBGdW5jOiAoc3JjOiBUKSA9PiBVICkgPT4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUW10+KSA9PlxuICBzb3VyY2UucGlwZSggbWFwKCBzcmMgPT4gc3JjLm1hcChtYXBGdW5jKSApICk7XG5cbmV4cG9ydCAgY29uc3QgZmlsdGVyQXJyYXkgPSA8VD4oZmlsdGVyRnVuYzogKHNyYzogVCkgPT4gYm9vbGVhbiApID0+IChzb3VyY2U6IE9ic2VydmFibGU8VFtdPikgPT5cbiAgc291cmNlLnBpcGUoIG1hcCggc3JjID0+IHNyYy5maWx0ZXIoZmlsdGVyRnVuYykgKSApO1xuXG5leHBvcnQgZnVuY3Rpb24gb25XYWl0PFQsViBleHRlbmRzIFQ+KHZhbDogVikgOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gKHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxUPihzdWJzY3JpYmVyID0+IHtcbiAgICAgIGxldCBlbWl0dGVkID0gZmFsc2U7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYoIWVtaXR0ZWQpIHtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsKTtcbiAgICAgICAgfVxuICAgICAgfSwgMCk7XG4gICAgICBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dCh4KSB7IGVtaXR0ZWQgPSB0cnVlOyBzdWJzY3JpYmVyLm5leHQoeCkgfSxcbiAgICAgICAgZXJyb3IoZXJyKSB7IGVtaXR0ZWQgPSB0cnVlOyBzdWJzY3JpYmVyLmVycm9yKGVycikgfSxcbiAgICAgICAgY29tcGxldGUoKSB7IGVtaXR0ZWQgPSB0cnVlOyBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7IH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVBcnJheXMgPSA8VD4oc291cmNlczogT2JzZXJ2YWJsZTxUW10+W10pOiBPYnNlcnZhYmxlPFRbXT4gPT4ge1xuICByZXR1cm4gY29tYmluZUxhdGVzdChcbiAgICBzb3VyY2VzLm1hcCggc3JjID0+IHNyYy5waXBlKG9uV2FpdChbXSkpKVxuICApLnBpcGUoXG4gICAgbWFwKCByZXMgPT4gZmxhdHRlbihyZXMpIClcbiAgKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hPZmYoIHN3aXRjaFNvdXJjZTogT2JzZXJ2YWJsZTxib29sZWFuPiwgZGVmYXVsdFN0YXRlOiBib29sZWFuID0gdHJ1ZSkge1xuICByZXR1cm4gPFQ+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikgOiBPYnNlcnZhYmxlPFQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NpYmVyID0+IHtcbiAgICAgIGxldCBpc09uID0gZGVmYXVsdFN0YXRlO1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgICAgc3Vic2NyaXB0aW9uLmFkZCggc3dpdGNoU291cmNlLnN1YnNjcmliZSggb24gPT4gaXNPbiA9IG9uICkpO1xuICAgICAgc3Vic2NyaXB0aW9uLmFkZChzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dCh2YWx1ZSkge1xuICAgICAgICAgIGlmKGlzT24pIHtcbiAgICAgICAgICAgIHN1YnNjaWJlci5uZXh0KHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiBzdWJzY2liZXIuZXJyb3IoZXJyb3IpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gc3Vic2NpYmVyLmNvbXBsZXRlKClcbiAgICAgIH0pKTtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb247XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNraXBPbmVXaGVuKCBza2lwcGVyOiBPYnNlcnZhYmxlPGFueT4gKSB7XG4gIHJldHVybiA8VD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSA6IE9ic2VydmFibGU8VD4gPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShzdWJzcmliZXIgPT4ge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgICAgbGV0IHNraXBOZXh0ID0gZmFsc2U7XG4gICAgICBzdWJzY3JpcHRpb24uYWRkKHNraXBwZXIuc3Vic2NyaWJlKCBfID0+IHNraXBOZXh0ID0gdHJ1ZSkpO1xuICAgICAgc3Vic2NyaXB0aW9uLmFkZChzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dCh2YWx1ZSkge1xuICAgICAgICAgIGlmKHNraXBOZXh0KSB7XG4gICAgICAgICAgICBza2lwTmV4dCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdWJzcmliZXIubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4gc3Vic3JpYmVyLmVycm9yKGVycm9yKSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHN1YnNyaWJlci5jb21wbGV0ZSgpXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmV2aW91c0FuZEN1cnJlbnQ8VD4oc3RhcnRpbmdWYWx1ZSA6IFQpIDogT3BlcmF0b3JGdW5jdGlvbjxULCBbVCwgVF0+IHtcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8VD4pID0+IHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoc3RhcnRXaXRoKHN0YXJ0aW5nVmFsdWUpLCBwYWlyd2lzZSgpKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbm90TnVsbDxUPigpOiBPcGVyYXRvckZ1bmN0aW9uPChUIHwgbnVsbCB8IHVuZGVmaW5lZCksIFQ+IHtcbiAgcmV0dXJuICAoc291cmNlOiBPYnNlcnZhYmxlPFQgfCBudWxsIHwgdW5kZWZpbmVkPikgPT4ge1xuICAgIHJldHVybiAgc291cmNlLnBpcGUoZmlsdGVyKCAobzogVCB8IG51bGwgfCB1bmRlZmluZWQpOiBvIGlzIFQgPT4gISFvKSApXG4gIH1cbn1cblxuIl19
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { NotPersisitedTableSettings, PesrsistedTableSettings } from './table-builder-general-settings';
|
|
2
|
+
export var InitializationState;
|
|
3
|
+
(function (InitializationState) {
|
|
4
|
+
InitializationState[InitializationState["Created"] = 0] = "Created";
|
|
5
|
+
InitializationState[InitializationState["MetaDataLoaded"] = 1] = "MetaDataLoaded";
|
|
6
|
+
InitializationState[InitializationState["LoadedFromStore"] = 2] = "LoadedFromStore";
|
|
7
|
+
InitializationState[InitializationState["Ready"] = 3] = "Ready";
|
|
8
|
+
})(InitializationState || (InitializationState = {}));
|
|
2
9
|
export const defaultTableState = {
|
|
10
|
+
initializationState: InitializationState.Created,
|
|
3
11
|
metaData: {},
|
|
4
12
|
filters: {},
|
|
5
13
|
hiddenKeys: [],
|
|
@@ -9,4 +17,4 @@ export const defaultTableState = {
|
|
|
9
17
|
notPersisitedTableSettings: new NotPersisitedTableSettings(),
|
|
10
18
|
pageSize: 10,
|
|
11
19
|
};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFibGVTdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NsYXNzZXMvVGFibGVTdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQWlCdkcsTUFBTSxDQUFOLElBQVksbUJBS1g7QUFMRCxXQUFZLG1CQUFtQjtJQUM3QixtRUFBTyxDQUFBO0lBQ1AsaUZBQWMsQ0FBQTtJQUNkLG1GQUFlLENBQUE7SUFDZiwrREFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUxXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFLOUI7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBZTtJQUMzQyxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPO0lBQ2hELFFBQVEsRUFBRSxFQUFFO0lBQ1osT0FBTyxFQUFFLEVBQUU7SUFDWCxVQUFVLEVBQUUsRUFBRTtJQUNkLE1BQU0sRUFBRSxFQUFFO0lBQ1YsV0FBVyxFQUFDLEVBQUMsS0FBSyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLEtBQUssRUFBQyxFQUFFLEVBQUM7SUFDekMsc0JBQXNCLEVBQUcsSUFBSSx1QkFBdUIsRUFBRTtJQUN0RCwwQkFBMEIsRUFBRyxJQUFJLDBCQUEwQixFQUFFO0lBQzdELFFBQVEsRUFBRSxFQUFFO0NBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1c3RvbUZpbHRlciwgRmlsdGVySW5mbyB9IGZyb20gJy4vZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kaWN0aW9uYXJ5JztcclxuaW1wb3J0IHsgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IE5vdFBlcnNpc2l0ZWRUYWJsZVNldHRpbmdzLCBQZXNyc2lzdGVkVGFibGVTZXR0aW5ncyB9IGZyb20gJy4vdGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGVyc2lzdGVkVGFibGVTdGF0ZSB7XHJcbiAgaGlkZGVuS2V5cz86IHN0cmluZyBbXTtcclxuICBwYWdlU2l6ZT86IG51bWJlcjtcclxuICBmaWx0ZXJzOiBEaWN0aW9uYXJ5PEZpbHRlckluZm8gfCBDdXN0b21GaWx0ZXI+O1xyXG4gIHNvcnRlZCA6IFNvcnQgW107XHJcbiAgdXNlckRlZmluZWQgOiB7b3JkZXI6RGljdGlvbmFyeTxudW1iZXI+LHdpZHRoczpEaWN0aW9uYXJ5PG51bWJlcj4sdGFibGU6e3dpZHRoPzpudW1iZXJ9fTtcclxuICBwZXJzaXN0ZWRUYWJsZVNldHRpbmdzIDogUGVzcnNpc3RlZFRhYmxlU2V0dGluZ3M7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTdGF0ZSBleHRlbmRzIFJlcXVpcmVkPFBlcnNpc3RlZFRhYmxlU3RhdGU+IHtcclxuICBpbml0aWFsaXphdGlvblN0YXRlOiBJbml0aWFsaXphdGlvblN0YXRlO1xyXG4gIG1ldGFEYXRhOiBEaWN0aW9uYXJ5PE1ldGFEYXRhPjtcclxuICBub3RQZXJzaXNpdGVkVGFibGVTZXR0aW5ncyA6IE5vdFBlcnNpc2l0ZWRUYWJsZVNldHRpbmdzO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBJbml0aWFsaXphdGlvblN0YXRlIHtcclxuICBDcmVhdGVkLFxyXG4gIE1ldGFEYXRhTG9hZGVkLFxyXG4gIExvYWRlZEZyb21TdG9yZSxcclxuICBSZWFkeSxcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRUYWJsZVN0YXRlOiBUYWJsZVN0YXRlID0ge1xyXG4gIGluaXRpYWxpemF0aW9uU3RhdGU6IEluaXRpYWxpemF0aW9uU3RhdGUuQ3JlYXRlZCxcclxuICBtZXRhRGF0YToge30sXHJcbiAgZmlsdGVyczoge30sXHJcbiAgaGlkZGVuS2V5czogW10sXHJcbiAgc29ydGVkOiBbXSxcclxuICB1c2VyRGVmaW5lZDp7b3JkZXI6e30sd2lkdGhzOnt9LHRhYmxlOnt9fSxcclxuICBwZXJzaXN0ZWRUYWJsZVNldHRpbmdzIDogbmV3IFBlc3JzaXN0ZWRUYWJsZVNldHRpbmdzKCksXHJcbiAgbm90UGVyc2lzaXRlZFRhYmxlU2V0dGluZ3MgOiBuZXcgTm90UGVyc2lzaXRlZFRhYmxlU2V0dGluZ3MoKSxcclxuICBwYWdlU2l6ZTogMTAsXHJcbn07XHJcbiJdfQ==
|
|
@@ -15,8 +15,8 @@ export class DataFilter {
|
|
|
15
15
|
appendFilters(filters$) {
|
|
16
16
|
return new DataFilter(combineArrays([
|
|
17
17
|
this.filters$ ?? of([]),
|
|
18
|
-
filters$.pipe(map(fltrs => fltrs.map(filter => createFilterFunc(filter))))
|
|
18
|
+
filters$.pipe(map(fltrs => fltrs.filter(f => f.active).map(filter => createFilterFunc(filter))))
|
|
19
19
|
]));
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL2RhdGEtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0UsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFBb0IsUUFBb0Q7UUFBcEQsYUFBUSxHQUFSLFFBQVEsQ0FBNEM7SUFDeEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFXLEVBQUUsT0FBcUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBRSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFzQjtRQUMvQixPQUFPLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9DLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUNwRCxXQUFXLENBQUMsRUFBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxRQUFvRDtRQUNoRSxPQUFPLElBQUksVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuRyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY29tYmluZUFycmF5cyB9IGZyb20gJy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY3JlYXRlRmlsdGVyRnVuYywgQ3VzdG9tRmlsdGVyLCBGaWx0ZXJJbmZvIH0gZnJvbSAnLi9maWx0ZXItaW5mbyc7XG5cbmV4cG9ydCBjbGFzcyBEYXRhRmlsdGVyPFQgPSBhbnk+IHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbHRlcnMkOiBPYnNlcnZhYmxlPCBBcnJheTwgKHZhbDogYW55KSA9PiBib29sZWFuPj4gKSB7XG4gIH1cblxuICBmaWx0ZXIoZGF0YTogYW55W10sIGZpbHRlcnM6IEFycmF5PCh2YWw6IGFueSkgPT4gYm9vbGVhbj4gKTogYW55W10ge1xuICAgIHJldHVybiBkYXRhLmZpbHRlciggciA9PiBmaWx0ZXJzLmV2ZXJ5KCBmbHRyID0+IGZsdHIocikpICk7XG4gIH1cblxuICBmaWx0ZXJEYXRhKGRhdGEkOiBPYnNlcnZhYmxlPFRbXT4pIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbZGF0YSQsIHRoaXMuZmlsdGVycyRdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YSwgZmlsdGVyc10pID0+IHRoaXMuZmlsdGVyKGRhdGEsIGZpbHRlcnMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHtidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZX0pXG4gICAgKTtcbiAgfVxuXG4gIGFwcGVuZEZpbHRlcnMoZmlsdGVycyQ6IE9ic2VydmFibGU8KEZpbHRlckluZm8gfCBDdXN0b21GaWx0ZXIgKVtdPikgOiBEYXRhRmlsdGVyIHtcbiAgICByZXR1cm4gbmV3IERhdGFGaWx0ZXIoY29tYmluZUFycmF5cyhbXG4gICAgICB0aGlzLmZpbHRlcnMkID8/IG9mKFtdKSxcbiAgICAgIGZpbHRlcnMkLnBpcGUobWFwKGZsdHJzID0+IGZsdHJzLmZpbHRlciggZiA9PiBmLmFjdGl2ZSApLm1hcChmaWx0ZXIgPT4gY3JlYXRlRmlsdGVyRnVuYyhmaWx0ZXIpKSkpXG4gICAgXSkpO1xuICB9XG59XG4iXX0=
|
|
@@ -38,9 +38,19 @@ const filterTypeFuncMap = {
|
|
|
38
38
|
[FieldType.Enum]: EnumFilterFuncs,
|
|
39
39
|
[FieldType.Link]: StringFilterFuncs,
|
|
40
40
|
};
|
|
41
|
+
export function isCustomFilter(filter) {
|
|
42
|
+
return filter && filter.filterType === FilterType.Custom;
|
|
43
|
+
}
|
|
44
|
+
export function isFilterInfo(filter) {
|
|
45
|
+
return filter && typeof filter.key === 'string' && filter.filterType !== FilterType.Custom;
|
|
46
|
+
}
|
|
47
|
+
const defaultPredicate = () => true;
|
|
41
48
|
export function createFilterFunc(filter) {
|
|
49
|
+
if (isCustomFilter(filter)) {
|
|
50
|
+
return filter.active ? filter.predicate : defaultPredicate;
|
|
51
|
+
}
|
|
42
52
|
if (filter.filterValue === undefined) {
|
|
43
|
-
return
|
|
53
|
+
return defaultPredicate;
|
|
44
54
|
}
|
|
45
55
|
const func = filterTypeFuncMap[filter.fieldType][filter.filterType](filter);
|
|
46
56
|
if (!func) {
|
|
@@ -57,4 +67,4 @@ export function createFilterFunc(filter) {
|
|
|
57
67
|
};
|
|
58
68
|
}
|
|
59
69
|
const FalseyValueCanBeIncludedFilterTypes = [FilterType.IsNull, FilterType.NumberNotEqual, FilterType.DateIsNotOn, FilterType.StringDoesNotContain];
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL2ZpbHRlci1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQXNCLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hKLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBcUJyRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTJDO0lBQ25FLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFHLGVBQWU7SUFDckMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUcsYUFBYTtJQUNoQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRyxlQUFlO0lBQ3RDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFHLGVBQWU7SUFDbkMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUcsZUFBZTtJQUNwQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRyxlQUFlO0lBQ3BDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFHLGdCQUFnQjtJQUN0QyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRyxlQUFlO0lBQ3pDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFHLGVB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QkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RyaW5nRmlsdGVyTWFwLCBEYXRlRmlsdGVyTWFwLCBOdW1iZXJGaWx0ZXJNYXAsIEJvb2xlYW5GaWx0ZXJNYXAsIEZpbHRlclR5cGUsIEZpbHRlclRvRmlsdGVyc01hcCwgRW51bUZpbHRlck1hcCB9IGZyb20gJy4uL2VudW1zL2ZpbHRlclR5cGVzJztcbmltcG9ydCB7IEVudW1GaWx0ZXJGdW5jcywgU3RyaW5nRmlsdGVyRnVuY3MgfSBmcm9tICcuLi9mdW5jdGlvbnMvc3RyaW5nLWZpbHRlci1mdW5jdGlvbic7XG5pbXBvcnQgeyBOdW1iZXJGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9udW1iZXItZmlsdGVyLWZ1bmN0aW9uJztcbmltcG9ydCB7IERhdGVGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kYXRlLWZpbHRlci1mdW5jdGlvbic7XG5pbXBvcnQgeyBCb29sZWFuRmlsdGVyRnVuY3MgfSBmcm9tICcuLi9mdW5jdGlvbnMvYm9vbGVhbi1maWx0ZXItZnVuY3Rpb24nO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xuXG50eXBlIEZpbHRlclR5cGVNYXBUeXBlID0geyBba2V5IGluIEZpZWxkVHlwZV06IEZpbHRlclRvRmlsdGVyc01hcH07XG5leHBvcnQgdHlwZSBVbm1hcHBlZFR5cGVzID0gRmllbGRUeXBlLkV4cHJlc3Npb24gfFxuICBGaWVsZFR5cGUuSGlkZGVuIHxcbiAgRmllbGRUeXBlLkltYWdlVXJsO1xuXG5cbmV4cG9ydCB0eXBlIG1hcHBlZEZpZWxkVHlwZXMgPVxuICBGaWVsZFR5cGUuVW5rbm93biB8XG4gIEZpZWxkVHlwZS5EYXRlIHxcbiAgRmllbGRUeXBlLkN1cnJlbmN5IHxcbiAgRmllbGRUeXBlLkFycmF5IHxcbiAgRmllbGRUeXBlLk51bWJlciB8XG4gIEZpZWxkVHlwZS5TdHJpbmcgfFxuICBGaWVsZFR5cGUuQm9vbGVhbiB8XG4gIEZpZWxkVHlwZS5QaG9uZU51bWJlciB8XG4gIEZpZWxkVHlwZS5MaW5rIHxcbiAgRmllbGRUeXBlLkVudW07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJUeXBlTWFwOiBPbWl0PEZpbHRlclR5cGVNYXBUeXBlLCBVbm1hcHBlZFR5cGVzPiA9IHtcbiAgW0ZpZWxkVHlwZS5Vbmtub3duXSA6IFN0cmluZ0ZpbHRlck1hcCxcbiAgW0ZpZWxkVHlwZS5EYXRlXSA6IERhdGVGaWx0ZXJNYXAsXG4gIFtGaWVsZFR5cGUuQ3VycmVuY3ldIDogTnVtYmVyRmlsdGVyTWFwLFxuICBbRmllbGRUeXBlLkFycmF5XSA6IFN0cmluZ0ZpbHRlck1hcCxcbiAgW0ZpZWxkVHlwZS5OdW1iZXJdIDogTnVtYmVyRmlsdGVyTWFwLFxuICBbRmllbGRUeXBlLlN0cmluZ10gOiBTdHJpbmdGaWx0ZXJNYXAsXG4gIFtGaWVsZFR5cGUuQm9vbGVhbl0gOiBCb29sZWFuRmlsdGVyTWFwLFxuICBbRmllbGRUeXBlLlBob25lTnVtYmVyXSA6IFN0cmluZ0ZpbHRlck1hcCxcbiAgW0ZpZWxkVHlwZS5MaW5rXSA6IFN0cmluZ0ZpbHRlck1hcCxcbiAgW0ZpZWxkVHlwZS5FbnVtXSA6IEVudW1GaWx0ZXJNYXAsXG59O1xuXG5jb25zdCBmaWx0ZXJGYWN0b3J5TWFwOiBEaWN0aW9uYXJ5PEZpbHRlckZ1bmM8YW55LGFueT4+ID0ge1xuICBbRmlsdGVyVHlwZS5BbmRdIDogKGZpbHRlcjogRmlsdGVySW5mbyApOiAoKG9iajogYW55KSA9PiBib29sZWFuKSA9PiAge1xuICAgIGNvbnN0IGZpbHRlcnMgPSAoZmlsdGVyLmZpbHRlclZhbHVlIGFzIEZpbHRlckluZm9bXSkubWFwKGNyZWF0ZUZpbHRlckZ1bmMpO1xuICAgIHJldHVybiAob2JqOiBhbnkpIDogYm9vbGVhbiA9PiBmaWx0ZXJzLmV2ZXJ5KCBmID0+IGYob2JqKSk7XG4gIH0sXG4gIFtGaWx0ZXJUeXBlLkluXSA6IChmaWx0ZXI6IEZpbHRlckluZm8gKTogKG9iajogYW55KSA9PiBib29sZWFuID0+ICB7XG4gICAgY29uc3QgZmlsdGVycyA9IChmaWx0ZXIuZmlsdGVyVmFsdWUgYXMgRmlsdGVySW5mb1tdKS5tYXAoY3JlYXRlRmlsdGVyRnVuYyk7XG4gICAgcmV0dXJuIChvYmo6IGFueSkgOiBib29sZWFuID0+IGZpbHRlcnMuc29tZSggZiA9PiBmKG9iaikpO1xuICB9LFxufTtcblxuY29uc3QgZmlsdGVyVHlwZUZ1bmNNYXAgOiBEaWN0aW9uYXJ5PERpY3Rpb25hcnk8RmlsdGVyRnVuYzxhbnksYW55Pj4+ID0ge1xuICBbRmllbGRUeXBlLlN0cmluZ10gOiBTdHJpbmdGaWx0ZXJGdW5jcyxcbiAgW0ZpZWxkVHlwZS5BcnJheV0gOiBTdHJpbmdGaWx0ZXJGdW5jcyxcbiAgW0ZpZWxkVHlwZS5DdXJyZW5jeV0gOiBOdW1iZXJGaWx0ZXJGdW5jcyxcbiAgW0ZpZWxkVHlwZS5QaG9uZU51bWJlcl0gOiBTdHJpbmdGaWx0ZXJGdW5jcyxcbiAgW0ZpZWxkVHlwZS5EYXRlXSA6IERhdGVGaWx0ZXJGdW5jcyxcbiAgW0ZpZWxkVHlwZS5OdW1iZXJdIDogTnVtYmVyRmlsdGVyRnVuY3MsXG4gIFtGaWVsZFR5cGUuQm9vbGVhbl0gOiBCb29sZWFuRmlsdGVyRnVuY3MsXG4gIFtGaWVsZFR5cGUuVW5rbm93bl0gOiBTdHJpbmdGaWx0ZXJGdW5jcyxcbiAgW0ZpZWxkVHlwZS5FbnVtXSA6IEVudW1GaWx0ZXJGdW5jcyAsXG4gIFtGaWVsZFR5cGUuTGlua10gOiBTdHJpbmdGaWx0ZXJGdW5jcyxcbn07XG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckluZm88VCBleHRlbmRzIEZpZWxkVHlwZSA9IGFueT4ge1xuICAgIGZpbHRlcklkOiBzdHJpbmc7XG4gICAgZmlsdGVyVHlwZTogRmlsdGVyVHlwZTtcbiAgICBmaWx0ZXJWYWx1ZTogYW55O1xuICAgIGtleTogc3RyaW5nO1xuICAgIGZpZWxkVHlwZTogVDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWFsRmlsdGVyPFQgZXh0ZW5kcyBGaWVsZFR5cGUgPSBhbnk+IHtcbiAgZmlsdGVySWQ/OiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICBmaWVsZFR5cGU6IFQ7XG4gIGZpbHRlclR5cGU/OiBGaWx0ZXJUeXBlO1xuICBmaWx0ZXJWYWx1ZT86IGFueTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRmlsdGVyRnVuYyhmaWx0ZXI6IEZpbHRlckluZm8pOiAodmFsOiBhbnkpID0+IGJvb2xlYW4gIHtcbiAgaWYgKGZpbHRlci5maWx0ZXJWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuICgpID0+IHRydWU7XG4gIH1cblxuICBjb25zdCBmdW5jID0gZmlsdGVyVHlwZUZ1bmNNYXBbZmlsdGVyLmZpZWxkVHlwZV1bZmlsdGVyLmZpbHRlclR5cGVdKGZpbHRlcik7XG4gIGlmKCFmdW5jKSB7XG4gICAgaWYoZmlsdGVyRmFjdG9yeU1hcFtmaWx0ZXIuZmlsdGVyVHlwZV0pe1xuICAgICAgcmV0dXJuIGZpbHRlckZhY3RvcnlNYXBbZmlsdGVyLmZpbHRlclR5cGUhXShmaWx0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNhbm5vdEJlVHJ1ZUZvck51bGwgPSAhRmFsc2V5VmFsdWVDYW5CZUluY2x1ZGVkRmlsdGVyVHlwZXMuaW5jbHVkZXMoZmlsdGVyLmZpbHRlclR5cGUhKTtcbiAgcmV0dXJuIChyb3dPYmopID0+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHJvd09ialtmaWx0ZXIua2V5XTtcbiAgICByZXR1cm4gKCh2YWx1ZSA9PSB1bmRlZmluZWQpICYmIGNhbm5vdEJlVHJ1ZUZvck51bGwpXG4gICAgICA/IGZhbHNlXG4gICAgICA6IGZ1bmMoIHZhbHVlKTtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyRnVuYzxULFYgPSBUPiA9IChmaWx0ZXJJbmZvOkZpbHRlckluZm8pID0+ICh2YWw6VikgPT4gYm9vbGVhbjtcbmV4cG9ydCB0eXBlIFJhbmdlPFQ+ID0ge1N0YXJ0OlQsRW5kOlR9O1xuXG5jb25zdCBGYWxzZXlWYWx1ZUNhbkJlSW5jbHVkZWRGaWx0ZXJUeXBlcyA9IFtGaWx0ZXJUeXBlLklzTnVsbCxGaWx0ZXJUeXBlLk51bWJlck5vdEVxdWFsLEZpbHRlclR5cGUuRGF0ZUlzTm90T24sRmlsdGVyVHlwZS5TdHJpbmdEb2VzTm90Q29udGFpbl07XG4iXX0=
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL2ZpbHRlci1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQXNCLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hKLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBc0JyRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQTJDO0lBQ25FLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFHLGVBQWU7SUFDckMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUcsYUFBYTtJQUNoQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRyxlQUFlO0lBQ3RDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFHLGVBQWU7SUFDbkMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUcsZUFBZTtJQUNwQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRyxlQUFlO0lBQ3BDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFHLGdCQUFnQjtJQUN0QyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRyxlQUFlO0lBQ3pDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFHLGVB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RUQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVyxDQUFDLENBQUM7SUFDOUYsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ2hCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsT0FBTyxDQUFDLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxJQUFJLG1CQUFtQixDQUFDO1lBQ2xELENBQUMsQ0FBQyxLQUFLO1lBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUMsQ0FBQztJQUNuQixDQUFDLENBQUM7QUFDSixDQUFDO0FBS0QsTUFBTSxtQ0FBbUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUMsVUFBVSxDQUFDLGNBQWMsRUFBQyxVQUFVLENBQUMsV0FBVyxFQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RyaW5nRmlsdGVyTWFwLCBEYXRlRmlsdGVyTWFwLCBOdW1iZXJGaWx0ZXJNYXAsIEJvb2xlYW5GaWx0ZXJNYXAsIEZpbHRlclR5cGUsIEZpbHRlclRvRmlsdGVyc01hcCwgRW51bUZpbHRlck1hcCB9IGZyb20gJy4uL2VudW1zL2ZpbHRlclR5cGVzJztcbmltcG9ydCB7IEVudW1GaWx0ZXJGdW5jcywgU3RyaW5nRmlsdGVyRnVuY3MgfSBmcm9tICcuLi9mdW5jdGlvbnMvc3RyaW5nLWZpbHRlci1mdW5jdGlvbic7XG5pbXBvcnQgeyBOdW1iZXJGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9udW1iZXItZmlsdGVyLWZ1bmN0aW9uJztcbmltcG9ydCB7IERhdGVGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kYXRlLWZpbHRlci1mdW5jdGlvbic7XG5pbXBvcnQgeyBCb29sZWFuRmlsdGVyRnVuY3MgfSBmcm9tICcuLi9mdW5jdGlvbnMvYm9vbGVhbi1maWx0ZXItZnVuY3Rpb24nO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xuaW1wb3J0IHsgUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbnR5cGUgRmlsdGVyVHlwZU1hcFR5cGUgPSB7IFtrZXkgaW4gRmllbGRUeXBlXTogRmlsdGVyVG9GaWx0ZXJzTWFwfTtcbmV4cG9ydCB0eXBlIFVubWFwcGVkVHlwZXMgPSBGaWVsZFR5cGUuRXhwcmVzc2lvbiB8XG4gIEZpZWxkVHlwZS5IaWRkZW4gfFxuICBGaWVsZFR5cGUuSW1hZ2VVcmw7XG5cblxuZXhwb3J0IHR5cGUgbWFwcGVkRmllbGRUeXBlcyA9XG4gIEZpZWxkVHlwZS5Vbmtub3duIHxcbiAgRmllbGRUeXBlLkRhdGUgfFxuICBGaWVsZFR5cGUuQ3VycmVuY3kgfFxuICBGaWVsZFR5cGUuQXJyYXkgfFxuICBGaWVsZFR5cGUuTnVtYmVyIHxcbiAgRmllbGRUeXBlLlN0cmluZyB8XG4gIEZpZWxkVHlwZS5Cb29sZWFuIHxcbiAgRmllbGRUeXBlLlBob25lTnVtYmVyIHxcbiAgRmllbGRUeXBlLkxpbmsgfFxuICBGaWVsZFR5cGUuRW51bTtcblxuZXhwb3J0IGNvbnN0IGZpbHRlclR5cGVNYXA6IE9taXQ8RmlsdGVyVHlwZU1hcFR5cGUsIFVubWFwcGVkVHlwZXM+ID0ge1xuICBbRmllbGRUeXBlLlVua25vd25dIDogU3RyaW5nRmlsdGVyTWFwLFxuICBbRmllbGRUeXBlLkRhdGVdIDogRGF0ZUZpbHRlck1hcCxcbiAgW0ZpZWxkVHlwZS5DdXJyZW5jeV0gOiBOdW1iZXJGaWx0ZXJNYXAsXG4gIFtGaWVsZFR5cGUuQXJyYXldIDogU3RyaW5nRmlsdGVyTWFwLFxuICBbRmllbGRUeXBlLk51bWJlcl0gOiBOdW1iZXJGaWx0ZXJNYXAsXG4gIFtGaWVsZFR5cGUuU3RyaW5nXSA6IFN0cmluZ0ZpbHRlck1hcCxcbiAgW0ZpZWxkVHlwZS5Cb29sZWFuXSA6IEJvb2xlYW5GaWx0ZXJNYXAsXG4gIFtGaWVsZFR5cGUuUGhvbmVOdW1iZXJdIDogU3RyaW5nRmlsdGVyTWFwLFxuICBbRmllbGRUeXBlLkxpbmtdIDogU3RyaW5nRmlsdGVyTWFwLFxuICBbRmllbGRUeXBlLkVudW1dIDogRW51bUZpbHRlck1hcCxcbn07XG5cbmNvbnN0IGZpbHRlckZhY3RvcnlNYXA6IERpY3Rpb25hcnk8RmlsdGVyRnVuYzxhbnksYW55Pj4gPSB7XG4gIFtGaWx0ZXJUeXBlLkFuZF0gOiAoZmlsdGVyOiBGaWx0ZXJJbmZvICk6ICgob2JqOiBhbnkpID0+IGJvb2xlYW4pID0+ICB7XG4gICAgY29uc3QgZmlsdGVycyA9IChmaWx0ZXIuZmlsdGVyVmFsdWUgYXMgRmlsdGVySW5mb1tdKS5tYXAoY3JlYXRlRmlsdGVyRnVuYyk7XG4gICAgcmV0dXJuIChvYmo6IGFueSkgOiBib29sZWFuID0+IGZpbHRlcnMuZXZlcnkoIGYgPT4gZihvYmopKTtcbiAgfSxcbiAgW0ZpbHRlclR5cGUuSW5dIDogKGZpbHRlcjogRmlsdGVySW5mbyApOiAob2JqOiBhbnkpID0+IGJvb2xlYW4gPT4gIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gKGZpbHRlci5maWx0ZXJWYWx1ZSBhcyBGaWx0ZXJJbmZvW10pLm1hcChjcmVhdGVGaWx0ZXJGdW5jKTtcbiAgICByZXR1cm4gKG9iajogYW55KSA6IGJvb2xlYW4gPT4gZmlsdGVycy5zb21lKCBmID0+IGYob2JqKSk7XG4gIH0sXG59O1xuXG5jb25zdCBmaWx0ZXJUeXBlRnVuY01hcCA6IERpY3Rpb25hcnk8RGljdGlvbmFyeTxGaWx0ZXJGdW5jPGFueSxhbnk+Pj4gPSB7XG4gIFtGaWVsZFR5cGUuU3RyaW5nXSA6IFN0cmluZ0ZpbHRlckZ1bmNzLFxuICBbRmllbGRUeXBlLkFycmF5XSA6IFN0cmluZ0ZpbHRlckZ1bmNzLFxuICBbRmllbGRUeXBlLkN1cnJlbmN5XSA6IE51bWJlckZpbHRlckZ1bmNzLFxuICBbRmllbGRUeXBlLlBob25lTnVtYmVyXSA6IFN0cmluZ0ZpbHRlckZ1bmNzLFxuICBbRmllbGRUeXBlLkRhdGVdIDogRGF0ZUZpbHRlckZ1bmNzLFxuICBbRmllbGRUeXBlLk51bWJlcl0gOiBOdW1iZXJGaWx0ZXJGdW5jcyxcbiAgW0ZpZWxkVHlwZS5Cb29sZWFuXSA6IEJvb2xlYW5GaWx0ZXJGdW5jcyxcbiAgW0ZpZWxkVHlwZS5Vbmtub3duXSA6IFN0cmluZ0ZpbHRlckZ1bmNzLFxuICBbRmllbGRUeXBlLkVudW1dIDogRW51bUZpbHRlckZ1bmNzICxcbiAgW0ZpZWxkVHlwZS5MaW5rXSA6IFN0cmluZ0ZpbHRlckZ1bmNzLFxufTtcblxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJTdGF0ZSB7XG4gIGZpbHRlcklkOiBzdHJpbmc7XG4gIGZpbHRlclR5cGU6IEZpbHRlclR5cGU7XG4gIGZpbHRlclZhbHVlPzogYW55O1xuICBhY3RpdmU/OiBib29sZWFuO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVySW5mbzxUIGV4dGVuZHMgRmllbGRUeXBlID0gYW55PiBleHRlbmRzIEZpbHRlclN0YXRlIHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBmaWVsZFR5cGU6IFQ7XG4gICAgX2lzRXh0ZXJuYWx5TWFuYWdlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbEZpbHRlcjxUIGV4dGVuZHMgRmllbGRUeXBlID0gYW55PiB7XG4gIGZpbHRlcklkPzogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbiAgZmllbGRUeXBlOiBUO1xuICBmaWx0ZXJUeXBlPzogRmlsdGVyVHlwZTtcbiAgZmlsdGVyVmFsdWU/OiBhbnk7XG59XG5cblxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUZpbHRlcjxUIGV4dGVuZHMgRmllbGRUeXBlID0gYW55PiAgZXh0ZW5kcyBGaWx0ZXJTdGF0ZSB7XG4gIHByZWRpY2F0ZTogUHJlZGljYXRlPFQ+O1xuICBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlLkN1c3RvbTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3VzdG9tRmlsdGVyKGZpbHRlciA6IEZpbHRlckluZm8gfCBDdXN0b21GaWx0ZXIpIDogIGZpbHRlciBpcyBDdXN0b21GaWx0ZXIge1xuICByZXR1cm4gZmlsdGVyICYmIGZpbHRlci5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLkN1c3RvbTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsdGVySW5mbyhmaWx0ZXIgOiBGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyKSA6ICBmaWx0ZXIgaXMgRmlsdGVySW5mbyB7XG4gIHJldHVybiAgZmlsdGVyICYmIHR5cGVvZiAoZmlsdGVyIGFzIEZpbHRlckluZm8pLmtleSA9PT0gJ3N0cmluZycgJiYgZmlsdGVyLmZpbHRlclR5cGUgIT09IEZpbHRlclR5cGUuQ3VzdG9tO1xufVxuXG5jb25zdCBkZWZhdWx0UHJlZGljYXRlOiBQcmVkaWNhdGU8YW55PiA9ICgpID0+IHRydWU7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGaWx0ZXJGdW5jKGZpbHRlcjogRmlsdGVySW5mbyB8IEN1c3RvbUZpbHRlcik6IFByZWRpY2F0ZTxhbnk+ICB7XG4gIGlmKGlzQ3VzdG9tRmlsdGVyKGZpbHRlcikpIHtcbiAgICByZXR1cm4gZmlsdGVyLmFjdGl2ZSA/IGZpbHRlci5wcmVkaWNhdGUgOiBkZWZhdWx0UHJlZGljYXRlO1xuICB9XG4gIGlmIChmaWx0ZXIuZmlsdGVyVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBkZWZhdWx0UHJlZGljYXRlO1xuICB9XG5cbiAgY29uc3QgZnVuYyA9IGZpbHRlclR5cGVGdW5jTWFwW2ZpbHRlci5maWVsZFR5cGVdW2ZpbHRlci5maWx0ZXJUeXBlXShmaWx0ZXIpO1xuICBpZighZnVuYykge1xuICAgIGlmKGZpbHRlckZhY3RvcnlNYXBbZmlsdGVyLmZpbHRlclR5cGVdKXtcbiAgICAgIHJldHVybiBmaWx0ZXJGYWN0b3J5TWFwW2ZpbHRlci5maWx0ZXJUeXBlIV0oZmlsdGVyKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBjYW5ub3RCZVRydWVGb3JOdWxsID0gIUZhbHNleVZhbHVlQ2FuQmVJbmNsdWRlZEZpbHRlclR5cGVzLmluY2x1ZGVzKGZpbHRlci5maWx0ZXJUeXBlISk7XG4gIHJldHVybiAocm93T2JqKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSByb3dPYmpbZmlsdGVyLmtleV07XG4gICAgcmV0dXJuICgodmFsdWUgPT0gdW5kZWZpbmVkKSAmJiBjYW5ub3RCZVRydWVGb3JOdWxsKVxuICAgICAgPyBmYWxzZVxuICAgICAgOiBmdW5jKCB2YWx1ZSk7XG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEZpbHRlckZ1bmM8VCxWID0gVD4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiAodmFsOlYpID0+IGJvb2xlYW47XG5leHBvcnQgdHlwZSBSYW5nZTxUPiA9IHtTdGFydDpULEVuZDpUfTtcblxuY29uc3QgRmFsc2V5VmFsdWVDYW5CZUluY2x1ZGVkRmlsdGVyVHlwZXMgPSBbRmlsdGVyVHlwZS5Jc051bGwsRmlsdGVyVHlwZS5OdW1iZXJOb3RFcXVhbCxGaWx0ZXJUeXBlLkRhdGVJc05vdE9uLEZpbHRlclR5cGUuU3RyaW5nRG9lc05vdENvbnRhaW5dO1xuIl19
|
|
@@ -3,9 +3,11 @@ export class GeneralTableSettings {
|
|
|
3
3
|
constructor(settings) {
|
|
4
4
|
this.headerSettings = new TableWrapperHeaderSettings();
|
|
5
5
|
this.footerSettings = new TableWrapperFooterSettings();
|
|
6
|
+
this.columnHeaderSettings = new TableColumnHeaderSettings();
|
|
6
7
|
if (settings) {
|
|
7
8
|
merge(this.headerSettings, settings.headerSettings);
|
|
8
9
|
merge(this.footerSettings, settings.footerSettings);
|
|
10
|
+
merge(this.columnHeaderSettings, settings.columnHeaderSettings);
|
|
9
11
|
}
|
|
10
12
|
}
|
|
11
13
|
}
|
|
@@ -14,6 +16,7 @@ export class TableWrapperHeaderSettings {
|
|
|
14
16
|
this.hideExport = false;
|
|
15
17
|
this.hideFilter = false;
|
|
16
18
|
this.hideColumnSettings = false;
|
|
19
|
+
this.hideHeader = false;
|
|
17
20
|
this.hideSort = false;
|
|
18
21
|
this.collapse = false;
|
|
19
22
|
this.showTitleWhenCollapsed = true;
|
|
@@ -24,6 +27,12 @@ export class TableWrapperFooterSettings {
|
|
|
24
27
|
this.collapse = false;
|
|
25
28
|
}
|
|
26
29
|
}
|
|
30
|
+
export class TableColumnHeaderSettings {
|
|
31
|
+
constructor() {
|
|
32
|
+
this.noFilters = false;
|
|
33
|
+
this.noHeader = false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
27
36
|
export class PesrsistedTableSettings {
|
|
28
37
|
constructor(tableSettings) {
|
|
29
38
|
this.collapseHeader = false;
|
|
@@ -41,13 +50,19 @@ export class NotPersisitedTableSettings {
|
|
|
41
50
|
this.hideColumnSettings = true;
|
|
42
51
|
this.hideSort = true;
|
|
43
52
|
this.showTitleWhenHeaderCollapsed = true;
|
|
53
|
+
this.hideHeader = true;
|
|
54
|
+
this.hideColumnHeaderFilters = true;
|
|
55
|
+
this.hideColumnHeader = true;
|
|
44
56
|
if (tableSettings) {
|
|
45
57
|
this.hideExport = tableSettings.headerSettings.hideExport;
|
|
46
58
|
this.hideColumnSettings = tableSettings.headerSettings.hideColumnSettings;
|
|
47
59
|
this.hideFilter = tableSettings.headerSettings.hideFilter;
|
|
48
60
|
this.hideSort = tableSettings.headerSettings.hideSort;
|
|
49
61
|
this.showTitleWhenHeaderCollapsed = tableSettings.headerSettings.showTitleWhenCollapsed;
|
|
62
|
+
this.hideHeader = tableSettings.headerSettings.hideHeader;
|
|
63
|
+
this.hideColumnHeaderFilters = tableSettings.columnHeaderSettings.noFilters;
|
|
64
|
+
this.hideColumnHeader = tableSettings.columnHeaderSettings.noHeader;
|
|
50
65
|
}
|
|
51
66
|
}
|
|
52
67
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUvQixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQVksUUFBZ0M7UUFPNUMsbUJBQWMsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDbEQsbUJBQWMsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFDbEQseUJBQW9CLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1FBUnJELElBQUcsUUFBUSxFQUFDO1lBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3BELEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNwRCxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztDQUlGO0FBUUQsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQUNFLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFDbEIsZUFBVSxHQUFHLEtBQUssQ0FBQTtRQUNsQix1QkFBa0IsR0FBRyxLQUFLLENBQUE7UUFDMUIsZUFBVSxHQUFHLEtBQUssQ0FBQTtRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFDaEIsMkJBQXNCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTywwQkFBMEI7SUFBdkM7UUFDRSxhQUFRLEdBQUcsS0FBSyxDQUFBO0lBQ2xCLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyx5QkFBeUI7SUFBdEM7UUFDRSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFDbkIsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFZLGFBQThEO1FBTTFFLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBTnJCLElBQUksYUFBYSxFQUFDO1lBQ2hCLElBQUksQ0FBQyxjQUFjLEdBQUksYUFBc0MsQ0FBQyxjQUFjLEVBQUUsUUFBUSxJQUFLLGFBQXlDLENBQUMsY0FBYyxDQUFDO1lBQ3BKLElBQUksQ0FBQyxjQUFjLEdBQUksYUFBc0MsQ0FBQyxjQUFjLEVBQUUsUUFBUSxJQUFLLGFBQXlDLENBQUMsY0FBYyxDQUFDO1NBQ3JKO0lBQ0gsQ0FBQztDQUdGO0FBRUQsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFZLGFBQW9DO1FBWWhELGVBQVUsR0FBRyxJQUFJLENBQUE7UUFDakIsZUFBVSxHQUFHLElBQUksQ0FBQTtRQUNqQix1QkFBa0IsR0FBRyxJQUFJLENBQUE7UUFDekIsYUFBUSxHQUFHLElBQUksQ0FBQTtRQUNmLGlDQUE0QixHQUFHLElBQUksQ0FBQztRQUNwQyxlQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ2pCLDRCQUF1QixHQUFHLElBQUksQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFsQnRCLElBQUcsYUFBYSxFQUFDO1lBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztZQUMxRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztZQUMxRSxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDO1lBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7WUFDdEQsSUFBSSxDQUFDLDRCQUE0QixHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUM7WUFDeEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQztZQUMxRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQztZQUM1RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQztTQUNyRTtJQUNILENBQUM7Q0FTRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlIH0gZnJvbSBcImxvZGFzaFwiO1xuXG5leHBvcnQgY2xhc3MgR2VuZXJhbFRhYmxlU2V0dGluZ3Mge1xuICBjb25zdHJ1Y3RvcihzZXR0aW5ncz8gOiBUYWJsZUJ1aWxkZXJTZXR0aW5ncyl7XG4gICAgaWYoc2V0dGluZ3Mpe1xuICAgICAgbWVyZ2UodGhpcy5oZWFkZXJTZXR0aW5ncywgc2V0dGluZ3MuaGVhZGVyU2V0dGluZ3MpO1xuICAgICAgbWVyZ2UodGhpcy5mb290ZXJTZXR0aW5ncywgc2V0dGluZ3MuZm9vdGVyU2V0dGluZ3MpO1xuICAgICAgbWVyZ2UodGhpcy5jb2x1bW5IZWFkZXJTZXR0aW5ncywgc2V0dGluZ3MuY29sdW1uSGVhZGVyU2V0dGluZ3MpO1xuICAgIH1cbiAgfVxuICBoZWFkZXJTZXR0aW5ncyA9IG5ldyBUYWJsZVdyYXBwZXJIZWFkZXJTZXR0aW5ncygpO1xuICBmb290ZXJTZXR0aW5ncyA9IG5ldyBUYWJsZVdyYXBwZXJGb290ZXJTZXR0aW5ncygpO1xuICBjb2x1bW5IZWFkZXJTZXR0aW5ncyA9IG5ldyBUYWJsZUNvbHVtbkhlYWRlclNldHRpbmdzKCk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVCdWlsZGVyU2V0dGluZ3Mge1xuICBoZWFkZXJTZXR0aW5ncz8gOiBQYXJ0aWFsPFRhYmxlV3JhcHBlckhlYWRlclNldHRpbmdzPjtcbiAgZm9vdGVyU2V0dGluZ3M/IDogUGFydGlhbDxUYWJsZVdyYXBwZXJGb290ZXJTZXR0aW5ncz47XG4gIGNvbHVtbkhlYWRlclNldHRpbmdzPyA6IFBhcnRpYWw8VGFibGVDb2x1bW5IZWFkZXJTZXR0aW5ncz47XG59XG5cbmV4cG9ydCBjbGFzcyBUYWJsZVdyYXBwZXJIZWFkZXJTZXR0aW5ncyB7XG4gIGhpZGVFeHBvcnQgPSBmYWxzZVxuICBoaWRlRmlsdGVyID0gZmFsc2VcbiAgaGlkZUNvbHVtblNldHRpbmdzID0gZmFsc2VcbiAgaGlkZUhlYWRlciA9IGZhbHNlXG4gIGhpZGVTb3J0ID0gZmFsc2VcbiAgY29sbGFwc2UgPSBmYWxzZVxuICBzaG93VGl0bGVXaGVuQ29sbGFwc2VkID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlV3JhcHBlckZvb3RlclNldHRpbmdzIHtcbiAgY29sbGFwc2UgPSBmYWxzZVxufVxuXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5IZWFkZXJTZXR0aW5ncyB7XG4gIG5vRmlsdGVycyA9IGZhbHNlO1xuICBub0hlYWRlciA9IGZhbHNlO1xufVxuXG5leHBvcnQgY2xhc3MgUGVzcnNpc3RlZFRhYmxlU2V0dGluZ3Mge1xuICBjb25zdHJ1Y3Rvcih0YWJsZVNldHRpbmdzPyA6R2VuZXJhbFRhYmxlU2V0dGluZ3MgfCBQZXNyc2lzdGVkVGFibGVTZXR0aW5ncyl7XG4gICAgaWYgKHRhYmxlU2V0dGluZ3Mpe1xuICAgICAgdGhpcy5jb2xsYXBzZUhlYWRlciA9ICh0YWJsZVNldHRpbmdzIGFzIEdlbmVyYWxUYWJsZVNldHRpbmdzKS5oZWFkZXJTZXR0aW5ncz8uY29sbGFwc2UgPz8gKHRhYmxlU2V0dGluZ3MgYXMgUGVzcnNpc3RlZFRhYmxlU2V0dGluZ3MpLmNvbGxhcHNlSGVhZGVyO1xuICAgICAgdGhpcy5jb2xsYXBzZUZvb3RlciA9ICh0YWJsZVNldHRpbmdzIGFzIEdlbmVyYWxUYWJsZVNldHRpbmdzKS5mb290ZXJTZXR0aW5ncz8uY29sbGFwc2UgPz8gKHRhYmxlU2V0dGluZ3MgYXMgUGVzcnNpc3RlZFRhYmxlU2V0dGluZ3MpLmNvbGxhcHNlRm9vdGVyO1xuICAgIH1cbiAgfVxuICBjb2xsYXBzZUhlYWRlciA9IGZhbHNlO1xuICBjb2xsYXBzZUZvb3RlciA9IGZhbHNlO1xufVxuXG5leHBvcnQgY2xhc3MgTm90UGVyc2lzaXRlZFRhYmxlU2V0dGluZ3Mge1xuICBjb25zdHJ1Y3Rvcih0YWJsZVNldHRpbmdzPyA6R2VuZXJhbFRhYmxlU2V0dGluZ3Mpe1xuICAgIGlmKHRhYmxlU2V0dGluZ3Mpe1xuICAgICAgdGhpcy5oaWRlRXhwb3J0ID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncy5oaWRlRXhwb3J0O1xuICAgICAgdGhpcy5oaWRlQ29sdW1uU2V0dGluZ3MgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzLmhpZGVDb2x1bW5TZXR0aW5ncztcbiAgICAgIHRoaXMuaGlkZUZpbHRlciA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3MuaGlkZUZpbHRlcjtcbiAgICAgIHRoaXMuaGlkZVNvcnQgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzLmhpZGVTb3J0O1xuICAgICAgdGhpcy5zaG93VGl0bGVXaGVuSGVhZGVyQ29sbGFwc2VkID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncy5zaG93VGl0bGVXaGVuQ29sbGFwc2VkO1xuICAgICAgdGhpcy5oaWRlSGVhZGVyID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncy5oaWRlSGVhZGVyO1xuICAgICAgdGhpcy5oaWRlQ29sdW1uSGVhZGVyRmlsdGVycyA9IHRhYmxlU2V0dGluZ3MuY29sdW1uSGVhZGVyU2V0dGluZ3Mubm9GaWx0ZXJzO1xuICAgICAgdGhpcy5oaWRlQ29sdW1uSGVhZGVyID0gdGFibGVTZXR0aW5ncy5jb2x1bW5IZWFkZXJTZXR0aW5ncy5ub0hlYWRlcjtcbiAgICB9XG4gIH1cbiAgaGlkZUV4cG9ydCA9IHRydWVcbiAgaGlkZUZpbHRlciA9IHRydWVcbiAgaGlkZUNvbHVtblNldHRpbmdzID0gdHJ1ZVxuICBoaWRlU29ydCA9IHRydWVcbiAgc2hvd1RpdGxlV2hlbkhlYWRlckNvbGxhcHNlZCA9IHRydWU7XG4gIGhpZGVIZWFkZXIgPSB0cnVlXG4gIGhpZGVDb2x1bW5IZWFkZXJGaWx0ZXJzID0gdHJ1ZTtcbiAgaGlkZUNvbHVtbkhlYWRlciA9IHRydWU7XG59XG4iXX0=
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { FieldType } from '../interfaces/report-def';
|
|
2
2
|
import { v4 as uuid } from 'uuid';
|
|
3
|
-
import { defaultTableState } from './TableState';
|
|
3
|
+
import { defaultTableState, InitializationState } from './TableState';
|
|
4
4
|
import { Injectable, Inject } from '@angular/core';
|
|
5
5
|
import { TableBuilderConfigToken } from './TableBuilderConfig';
|
|
6
|
+
import { isCustomFilter, isFilterInfo } from './filter-info';
|
|
6
7
|
import { ComponentStore } from '@ngrx/component-store';
|
|
7
8
|
import update from 'immutability-helper';
|
|
8
9
|
import { last, map, tap } from 'rxjs/operators';
|
|
9
10
|
import { moveItemInArray } from '@angular/cdk/drag-drop';
|
|
10
|
-
import { notNull } from '../../rxjs/rxjs-operators';
|
|
11
|
+
import { notNull, onceWhen } from '../../rxjs/rxjs-operators';
|
|
11
12
|
import { NotPersisitedTableSettings, PesrsistedTableSettings } from './table-builder-general-settings';
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
14
|
+
export function stateIs(initializationState) {
|
|
15
|
+
return (state) => state.initializationState === initializationState;
|
|
16
|
+
}
|
|
13
17
|
export class TableStore extends ComponentStore {
|
|
14
18
|
constructor(config) {
|
|
15
19
|
super({ ...defaultTableState, ...config.defaultTableState });
|
|
@@ -82,7 +86,9 @@ export class TableStore extends ComponentStore {
|
|
|
82
86
|
return this.addFiltersToState(state, filters);
|
|
83
87
|
});
|
|
84
88
|
this.addFiltersToState = (state, filters) => {
|
|
85
|
-
|
|
89
|
+
var customFilters = filters.filter(isCustomFilter);
|
|
90
|
+
var filterInfos = filters.filter(isFilterInfo);
|
|
91
|
+
const filtersObj = filterInfos
|
|
86
92
|
.filter(fltr => Object.keys(state.metaData).some(key => key === fltr.key) || console.warn(`Meta data with key ${fltr.key} not found`))
|
|
87
93
|
.reduce((filtersObj, filter) => {
|
|
88
94
|
if (!filter.filterId) {
|
|
@@ -91,6 +97,12 @@ export class TableStore extends ComponentStore {
|
|
|
91
97
|
filtersObj[filter.filterId] = filter;
|
|
92
98
|
return filtersObj;
|
|
93
99
|
}, {});
|
|
100
|
+
customFilters.forEach(fltr => {
|
|
101
|
+
if (!fltr.filterId) {
|
|
102
|
+
fltr.filterId = uuid();
|
|
103
|
+
}
|
|
104
|
+
filtersObj[fltr.filterId] = fltr;
|
|
105
|
+
});
|
|
94
106
|
return {
|
|
95
107
|
...state,
|
|
96
108
|
filters: { ...state.filters, ...filtersObj }
|
|
@@ -128,6 +140,12 @@ export class TableStore extends ComponentStore {
|
|
|
128
140
|
};
|
|
129
141
|
this.setPageSize = this.updater((state, pageSize) => ({ ...state, pageSize }));
|
|
130
142
|
this.updateState = this.updater(this.updateStateFunc);
|
|
143
|
+
this.updateStateFromPersistedState = this.updater((state, persistedState) => {
|
|
144
|
+
const incomingTableState = this.cleanPersistedState(state, persistedState);
|
|
145
|
+
const newState = this.updateStateFunc(state, incomingTableState);
|
|
146
|
+
newState.initializationState = state.initializationState === InitializationState.MetaDataLoaded ? InitializationState.LoadedFromStore : state.initializationState;
|
|
147
|
+
return newState;
|
|
148
|
+
});
|
|
131
149
|
this.getUserDefinedTableSize$ = this.select(state => state.userDefined.table.width);
|
|
132
150
|
this.setTableWidth = this.updater((state, widthInpixels) => ({ ...state, userDefined: { ...state.userDefined, table: { width: widthInpixels } } }));
|
|
133
151
|
this.mergeMeta = (orig, merge) => {
|
|
@@ -147,6 +165,9 @@ export class TableStore extends ComponentStore {
|
|
|
147
165
|
click: merge.click ?? orig.click,
|
|
148
166
|
};
|
|
149
167
|
};
|
|
168
|
+
this.setIntializationState = this.updater((state, initializationState) => {
|
|
169
|
+
return { ...state, initializationState };
|
|
170
|
+
});
|
|
150
171
|
this.setMetaData = this.updater((state, md) => {
|
|
151
172
|
const metaData = (Array.isArray(md) ? [...md] : [md])
|
|
152
173
|
.reduce((prev, curr) => {
|
|
@@ -163,7 +184,8 @@ export class TableStore extends ComponentStore {
|
|
|
163
184
|
sorted = this.createPreSort(metaData);
|
|
164
185
|
}
|
|
165
186
|
const order = this.initializeOrder(state, metaData);
|
|
166
|
-
|
|
187
|
+
const initializationState = state.initializationState == InitializationState.Created ? InitializationState.MetaDataLoaded : state.initializationState;
|
|
188
|
+
return { ...state, initializationState, metaData, sorted, userDefined: { ...state.userDefined, order: order } };
|
|
167
189
|
});
|
|
168
190
|
this.initializeOrder = (state, mds) => {
|
|
169
191
|
const viewableMetaDataArr = Object.values(mds).filter(a => a.fieldType !== FieldType.Hidden);
|
|
@@ -207,6 +229,24 @@ export class TableStore extends ComponentStore {
|
|
|
207
229
|
onLast(callback) {
|
|
208
230
|
this.on(this.state$.pipe(last()), callback);
|
|
209
231
|
}
|
|
232
|
+
cleanPersistedState(state, pState) {
|
|
233
|
+
const metas = Object.values(state.metaData);
|
|
234
|
+
const filters = Object.values(pState.filters).filter(fltr => isCustomFilter(fltr) || metas.some(m => m.key === fltr.key)).reduce((obj, filter) => {
|
|
235
|
+
obj[filter.filterId] = pState.filters[filter.filterId];
|
|
236
|
+
return obj;
|
|
237
|
+
}, {});
|
|
238
|
+
const sorted = pState.sorted.filter(s => metas.some(m => m.key === s.active));
|
|
239
|
+
return ({ ...pState, filters, sorted });
|
|
240
|
+
}
|
|
241
|
+
runOnceWhen(predicate, func) {
|
|
242
|
+
const obs = this.state$.pipe(onceWhen(predicate));
|
|
243
|
+
this.on(obs, (state) => {
|
|
244
|
+
func(state);
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
onReady(func) {
|
|
248
|
+
this.runOnceWhen(stateIs(InitializationState.Ready), func);
|
|
249
|
+
}
|
|
210
250
|
}
|
|
211
251
|
TableStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: TableStore, deps: [{ token: TableBuilderConfigToken }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
212
252
|
TableStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.1", ngImport: i0, type: TableStore, providedIn: 'root' });
|
|
@@ -227,4 +267,4 @@ export const orderMetaData = (state) => {
|
|
|
227
267
|
:
|
|
228
268
|
Object.values(state.metaData).sort((a, b) => a.order - b.order);
|
|
229
269
|
};
|
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL3RhYmxlLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFtQyxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQXNCLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFHO0FBQ3pELE9BQU8sTUFBTSxNQUFNLHFCQUFxQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUF3QiwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUs3SCxNQUFNLE9BQU8sVUFBVyxTQUFRLGNBQTBCO0lBRXhELFlBQTZDLE1BQTBCO1FBQ3RFLEtBQUssQ0FBRSxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDO1FBYzlELE9BQUUsR0FBRyxDQUFJLGFBQTRCLEVBQUUsSUFBc0IsRUFBRSxFQUFFO1lBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFF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SCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQUU7SUFDaEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0csQ0FBQztZQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQU0sQ0FBQyxDQUFBO0FBQ2xFLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkVHlwZSwgTWV0YURhdGEsIFNvcnREZWYgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVmYXVsdFRhYmxlU3RhdGUsIFBlcnNpc3RlZFRhYmxlU3RhdGUsIFRhYmxlU3RhdGUgfSBmcm9tICcuL1RhYmxlU3RhdGUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXJDb25maWcsIFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuIH0gZnJvbSAnLi9UYWJsZUJ1aWxkZXJDb25maWcnO1xuaW1wb3J0IHsgRmlsdGVySW5mbyB9IGZyb20gJy4vZmlsdGVyLWluZm8nO1xuaW1wb3J0IHsgU29ydCwgU29ydERpcmVjdGlvbiB9ICBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JyA7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZScgIDtcbmltcG9ydCB1cGRhdGUgZnJvbSAnaW1tdXRhYmlsaXR5LWhlbHBlcic7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kaWN0aW9uYXJ5JztcbmltcG9ydCB7IGxhc3QsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IG5vdE51bGwgfSBmcm9tICcuLi8uLi9yeGpzL3J4anMtb3BlcmF0b3JzJztcbmltcG9ydCB7IEdlbmVyYWxUYWJsZVNldHRpbmdzLCBOb3RQZXJzaXNpdGVkVGFibGVTZXR0aW5ncywgUGVzcnNpc3RlZFRhYmxlU2V0dGluZ3MgfSBmcm9tICcuL3RhYmxlLWJ1aWxkZXItZ2VuZXJhbC1zZXR0aW5ncyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVN0b3JlIGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8VGFibGVTdGF0ZT4ge1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pIGNvbmZpZzogVGFibGVCdWlsZGVyQ29uZmlnKSB7XG4gICBzdXBlciggeyAuLi5kZWZhdWx0VGFibGVTdGF0ZSwgLi4uY29uZmlnLmRlZmF1bHRUYWJsZVN0YXRlfSk7XG4gIH1cblxuICBnZXRTYXZhYmxlU3RhdGUoKSA6IE9ic2VydmFibGU8UGVyc2lzdGVkVGFibGVTdGF0ZT4ge1xuICAgIHJldHVybiAgdGhpcy5zdGF0ZSQucGlwZShcbiAgICAgIG1hcCggcyA9PiB7XG4gICAgICAgIGNvbnN0IHNhdmFibGVTdGF0ZSA9IHsuLi5zfSBhcyBQYXJ0aWFsPFRhYmxlU3RhdGU+XG4gICAgICAgIGRlbGV0ZSBzYXZhYmxlU3RhdGUubWV0YURhdGE7XG4gICAgICAgIGRlbGV0ZSBzYXZhYmxlU3RhdGUubm90UGVyc2lzaXRlZFRhYmxlU2V0dGluZ3M7XG4gICAgICAgIHJldHVybiBzYXZhYmxlU3RhdGUgYXMgUGVyc2lzdGVkVGFibGVTdGF0ZTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uID0gPFY+KHNyY09ic2VydmFibGU6IE9ic2VydmFibGU8Vj4sIGZ1bmM6IChvYmo6IFYpID0+IHZvaWQpID0+IHtcbiAgICB0aGlzLmVmZmVjdCgoKSA9PiBzcmNPYnNlcnZhYmxlLnBpcGUoXG4gICAgICB0YXAoZnVuYylcbiAgICApKVxuICB9XG5cbiAgb25MYXN0KGNhbGxiYWNrOiAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IHZvaWQgKSB7XG4gICAgdGhpcy5vbih0aGlzLnN0YXRlJC5waXBlKGxhc3QoKSksY2FsbGJhY2spO1xuICB9XG5cbiAgcmVhZG9ubHkgbWV0YURhdGEkID0gdGhpcy5zZWxlY3QoIHN0YXRlID0+IHN0YXRlLm1ldGFEYXRhKTtcblxuICByZWFkb25seSBtZXRhRGF0YUFycmF5JCA9IHRoaXMuc2VsZWN0KFxuICAgIHRoaXMuc3RhdGUkLFxuICAgIG9yZGVyTWV0YURhdGFcbiAgKTtcblxuICBnZXRNZXRhRGF0YSQgPSAoa2V5OiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxNZXRhRGF0YT4gPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdCggc3RhdGUgPT4gc3RhdGUubWV0YURhdGFba2V5XSAgKS5waXBlKFxuICAgICAgdGFwKG1ldGEgPT4ge2lmKCFtZXRhKWNvbnNvbGUud2FybihgTWV0YSBkYXRhIHdpdGgga2V5ICR7a2V5fSBub3QgZm91bmRgKX0pLFxuICAgICAgbm90TnVsbCgpKVxuICB9XG5cbiAgZ2V0VXNlckRlZmluZWRXaWR0aCQgPSAoa2V5OnN0cmluZykgPT4gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUudXNlckRlZmluZWQud2lkdGhzW2tleV0pO1xuICBnZXRVc2VyRGVmaW5lZFdpZHRocyQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC53aWR0aHMpO1xuXG4gIHByaXZhdGUgZGlzcGxheWVkQ29sdW1ucyA9ICAoc3RhdGU6VGFibGVTdGF0ZSkgPT4gb3JkZXJNZXRhRGF0YShzdGF0ZSkubWFwKG1kID0+IG1kLmtleSlcbiAgICAuZmlsdGVyKGtleSA9PiAhc3RhdGUuaGlkZGVuS2V5cy5pbmNsdWRlcyhrZXkpICYmIHN0YXRlLm1ldGFEYXRhW2tleV0uZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuSGlkZGVuKTtcbiAgcmVhZG9ubHkgZGlzcGxheWVkQ29sdW1ucyQgPSB0aGlzLnNlbGVjdCh0aGlzLmRpc3BsYXllZENvbHVtbnMpO1xuICByZWFkb25seSBoaWRlQ29sdW1uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwga2V5OiBzdHJpbmcpID0+ICh7XG4gICAgLi4uc3RhdGUsXG4gICAgaGlkZGVuS2V5czogWy4uLnN0YXRlLmhpZGRlbktleXMuZmlsdGVyKCBrID0+IGsgIT09IGtleSksIGtleV0sXG4gIH0pKTtcblxuICByZWFkb25seSByZXNldFN0YXRlID0gdGhpcy51cGRhdGVyKChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGhpZGRlbkNvbHVtbnMgPSBPYmplY3QudmFsdWVzKHN0YXRlLm1ldGFEYXRhKVxuICAgICAgLmZpbHRlcihtZCA9PiBtZC5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5IaWRkZW4pXG4gICAgICAubWFwKG1kID0+IG1kLmtleSk7XG4gICAgY29uc3Qgc29ydGVkID0gdGhpcy5jcmVhdGVQcmVTb3J0KHN0YXRlLm1ldGFEYXRhKTtcbiAgICByZXR1cm4gdXBkYXRlKHN0YXRlLCB7XG4gICAgICAgaGlkZGVuS2V5czogeyAkc2V0OiBbLi4uaGlkZGVuQ29sdW1uc10gfSxcbiAgICAgICBmaWx0ZXJzOiB7ICRzZXQ6IHt9IH0sXG4gICAgICAgc29ydGVkOiB7JHNldDogc29ydGVkfSxcbiAgICAgICB1c2VyRGVmaW5lZCA6IHskc2V0OiB7d2lkdGhzOnt9LG9yZGVyOnt9LHRhYmxlOnt9fX0sXG4gICAgICB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2hvd0NvbHVtbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGtleTogc3RyaW5nKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGhpZGRlbktleXM6IHN0YXRlLmhpZGRlbktleXMuZmlsdGVyKCBrID0+IGsgIT09IGtleSksXG4gIH0pKTtcblxuICByZWFkb25seSBzZXRIaWRkZW5Db2x1bW5zID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGlzcGxheUNvbHM6IHtrZXk6IHN0cmluZywgdmlzaWJsZTogYm9vbGVhbn1bXSkgPT4ge1xuXG4gICAgdmFyIGhpZGRlbktleXNTZXQ9IG5ldyBTZXQ8c3RyaW5nPihcbiAgICAgIFtcbiAgICAgICAgLi4uZGlzcGxheUNvbHMuZmlsdGVyKGNvbCA9PiAhY29sLnZpc2libGUpLm1hcChjb2wgPT4gY29sLmtleSksXG4gICAgICAgIC4uLk9iamVjdC52YWx1ZXMoc3RhdGUubWV0YURhdGEpLmZpbHRlcihtZCA9PiBtZC5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5IaWRkZW4pLm1hcChtZCA9PiBtZC5rZXkpXG4gICAgICBdXG4gICAgKTtcblxuICAgIHJldHVybiB1cGRhdGUoIHN0YXRlICwgeyBoaWRkZW5LZXlzOiB7JHNldDogWy4uLmhpZGRlbktleXNTZXRdfX0pO1xuICB9KTtcblxuXG4gIHNldFVzZXJEZWZpbmVkV2lkdGggPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLGNvbFdpZHRoczp7a2V5OiBzdHJpbmcsIHdpZHRoSW5QaXhlbDpudW1iZXJ9W10pID0+IHtcbiAgICBjb25zdCB1c2VyRGVmaW5lZFdpZHRocyA9IHsuLi5zdGF0ZS51c2VyRGVmaW5lZC53aWR0aHN9O1xuICAgIGNvbFdpZHRocy5mb3JFYWNoKGN3ID0+IHtcbiAgICAgIHVzZXJEZWZpbmVkV2lkdGhzW2N3LmtleV0gPSBjdy53aWR0aEluUGl4ZWw7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgdXNlckRlZmluZWQ6IHsuLi5zdGF0ZS51c2VyRGVmaW5lZCx3aWR0aHM6dXNlckRlZmluZWRXaWR0aHN9fTtcbiAgfSk7XG5cbiAgc2V0VXNlckRlZmluZWRPcmRlciA9IHRoaXMudXBkYXRlcigoc3RhdGUsbW92ZWQ6e25ld09yZGVyOm51bWJlcixvbGRPcmRlcjpudW1iZXJ9KT0+e1xuICAgIGNvbnN0IHtuZXdPcmRlciAsb2xkT3JkZXJ9ID0gbW92ZWQ7XG4gICAgY29uc3QgbWRzQXJyID0gb3JkZXJWaWV3YWJsZU1ldGFEYXRhKHN0YXRlKTtcbiAgICBtb3ZlSXRlbUluQXJyYXkobWRzQXJyLG9sZE9yZGVyLG5ld09yZGVyKTtcblxuICAgIGNvbnN0IHVzZXJEZWZpbmVkT3JkZXIgPSBtZHNBcnIucmVkdWNlKChhZ2dyZWdhdGU6IGFueSxjdXJyZW50LGluZGV4KSA9PiB7XG4gICAgICBhZ2dyZWdhdGVbY3VycmVudC5rZXldID0gaW5kZXg7XG4gICAgICByZXR1cm4gYWdncmVnYXRlXG4gICAgfSx7fSk7XG4gICAgcmV0dXJuKHsuLi5zdGF0ZSwgdXNlckRlZmluZWQ6ey4uLnN0YXRlLnVzZXJEZWZpbmVkLG9yZGVyOnVzZXJEZWZpbmVkT3JkZXJ9fSlcbiAgfSlcblxuXG4gIHJlYWRvbmx5IGZpbHRlcnMkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuZmlsdGVycyApO1xuXG4gIHJlYWRvbmx5IGdldEZpbHRlciQgPSAoZmlsdGVySWQ6IHN0cmluZykgOiBPYnNlcnZhYmxlPEZpbHRlckluZm8gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3QoIHN0YXRlID0+IHN0YXRlLmZpbHRlcnNbZmlsdGVySWRdICk7XG4gIH1cbiAgcmVhZG9ubHkgYWRkRmlsdGVyID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIGZpbHRlcjogRmlsdGVySW5mbykgPT4ge1xuICAgIHJldHVybiB0aGlzLmFkZEZpbHRlcnNUb1N0YXRlKHN0YXRlLCBbZmlsdGVyXSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGFkZEZpbHRlcnMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLGZpbHRlcnM6RmlsdGVySW5mb1tdKT0+e1xuICAgIHJldHVybiB0aGlzLmFkZEZpbHRlcnNUb1N0YXRlKHN0YXRlLCBmaWx0ZXJzKTtcbiAgfSlcblxuICBwcml2YXRlIGFkZEZpbHRlcnNUb1N0YXRlID0gKHN0YXRlOlRhYmxlU3RhdGUsZmlsdGVyczpGaWx0ZXJJbmZvW10pIDogVGFibGVTdGF0ZSA9PiB7XG4gICAgY29uc3QgZmlsdGVyc09iaiA9IGZpbHRlcnNcbiAgICAgIC5maWx0ZXIoZmx0ciA9PiBPYmplY3Qua2V5cyhzdGF0ZS5tZXRhRGF0YSkuc29tZShrZXkgPT4ga2V5ID09PSBmbHRyLmtleSkgfHwgY29uc29sZS53YXJuKGBNZXRhIGRhdGEgd2l0aCBrZXkgJHtmbHRyLmtleX0gbm90IGZvdW5kYCkpXG4gICAgICAucmVkdWNlKChmaWx0ZXJzT2JqOiB7W2s6IHN0cmluZ106IGFueX0sZmlsdGVyKT0+e1xuICAgICAgICBpZiAoIWZpbHRlci5maWx0ZXJJZCkge1xuICAgICAgICAgIGZpbHRlci5maWx0ZXJJZCA9IHV1aWQoKTtcbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJzT2JqW2ZpbHRlci5maWx0ZXJJZF0gPSBmaWx0ZXI7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzT2JqO1xuICAgICAgfSx7fSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZmlsdGVycyA6IHsuLi5zdGF0ZS5maWx0ZXJzLCAuLi5maWx0ZXJzT2JqIH1cbiAgICB9O1xuICB9XG5cbiAgcmVhZG9ubHkgcmVtb3ZlRmlsdGVyID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIGZpbHRlcklkOiBzdHJpbmcpID0+XG4gICAgdXBkYXRlKHN0YXRlLCB7ZmlsdGVyczogeyR1bnNldCA6IFtmaWx0ZXJJZCBdfX0pXG4gICk7XG5cbiAgcmVhZG9ubHkgcmVtb3ZlRmlsdGVycyA9IHRoaXMudXBkYXRlciggKHN0YXRlLCBmaWx0ZXJJZHM6IHN0cmluZ1tdKSA9PlxuICAgIHVwZGF0ZShzdGF0ZSwge2ZpbHRlcnM6IHskdW5zZXQgOiBbLi4uZmlsdGVySWRzIF19fSlcbiAgKTtcblxuICByZWFkb25seSBjbGVhckZpbHRlcnMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKT0+XG4gICAgKHsuLi5zdGF0ZSxmaWx0ZXJzOnt9fSkpXG5cblxuICByZWFkb25seSBzb3J0ZWQkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuc29ydGVkKTtcblxuICBjcmVhdGVQcmVTb3J0ID0gKG1ldGFEYXRhczogRGljdGlvbmFyeTxNZXRhRGF0YT4pOiBTb3J0W10gPT4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKG1ldGFEYXRhcykuZmlsdGVyKCggbWV0YURhdGEgKSA6IG1ldGFEYXRhIGlzIE1ldGFEYXRhICYge3ByZVNvcnQ6IFNvcnREZWZ9ID0+ICEhbWV0YURhdGEucHJlU29ydClcbiAgICAuc29ydCgoeyAgcHJlU29ydDogcHMxICB9LCB7IHByZVNvcnQ6IHBzMiB9ICkgPT4gKHBzMS5wcmVjZWRlbmNlIHx8IE51bWJlci5NQVhfVkFMVUUpIC0gKCBwczIucHJlY2VkZW5jZSB8fCBOdW1iZXIuTUFYX1ZBTFVFKSlcbiAgICAubWFwKCgge2tleSwgcHJlU29ydH0gKSA9PiAoeyBhY3RpdmU6IGtleSwgZGlyZWN0aW9uOiBwcmVTb3J0LmRpcmVjdGlvbiB9KSlcbiAgfVxuICByZWFkb25seSBzZXRTb3J0ID0gdGhpcy51cGRhdGVyPHtrZXk6IHN0cmluZywgZGlyZWN0aW9uPzogU29ydERpcmVjdGlvbn0+KChzdGF0ZSwge2tleSwgZGlyZWN0aW9ufSApID0+IHtcbiAgICBjb25zdCBzb3J0QXJyYXkgPSBzdGF0ZS5zb3J0ZWQuZmlsdGVyKCBzID0+IHMuYWN0aXZlICE9PSBrZXkgKTtcbiAgICBpZihkaXJlY3Rpb24pIHtcbiAgICAgIHNvcnRBcnJheS51bnNoaWZ0KHthY3RpdmU6IGtleSwgZGlyZWN0aW9ufSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHNvcnRlZDogc29ydEFycmF5LFxuICAgIH07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNldEFsbFNvcnQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLHNvcnRBcnJheTpTb3J0W10pPT57XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgc29ydGVkOiBzb3J0QXJyYXksXG4gICAgfTtcbiAgfSlcblxuICB1cGRhdGVTdGF0ZUZ1bmMgPSAoc3RhdGU6IFRhYmxlU3RhdGUsIGluY29taW5nVGFibGVTdGF0ZTogUGFydGlhbDxUYWJsZVN0YXRlPikgOiBUYWJsZVN0YXRlID0+IHtcbiAgICBjb25zdCBtZXRhRGF0YSA9IHN0YXRlLm1ldGFEYXRhO1xuICAgIGNvbnN0IHNvcnRlZCA9IGluY29taW5nVGFibGVTdGF0ZS5zb3J0ZWQ/Lmxlbmd0aCA/IGluY29taW5nVGFibGVTdGF0ZS5zb3J0ZWQgOiB0aGlzLmNyZWF0ZVByZVNvcnQobWV0YURhdGEpO1xuICAgIHJldHVybiB7Li4uc3RhdGUsIC4uLmluY29taW5nVGFibGVTdGF0ZSwgbWV0YURhdGEgLCBzb3J0ZWR9O1xuICB9XG5cbiAgcmVhZG9ubHkgc2V0UGFnZVNpemUgPSB0aGlzLnVwZGF0ZXIoIChzdGF0ZSwgcGFnZVNpemU6IG51bWJlcik9PiAoey4uLnN0YXRlLHBhZ2VTaXplfSkpO1xuXG4gIHJlYWRvbmx5IHVwZGF0ZVN0YXRlID0gdGhpcy51cGRhdGVyPFBhcnRpYWw8VGFibGVTdGF0ZT4+KHRoaXMudXBkYXRlU3RhdGVGdW5jKTtcblxuICBnZXRVc2VyRGVmaW5lZFRhYmxlU2l6ZSQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC50YWJsZS53aWR0aCk7XG4gIHNldFRhYmxlV2lkdGggPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLHdpZHRoSW5waXhlbHM6bnVtYmVyKSA9PiAoey4uLnN0YXRlLHVzZXJEZWZpbmVkOiB7Li4uc3RhdGUudXNlckRlZmluZWQsdGFibGU6e3dpZHRoOndpZHRoSW5waXhlbHN9fX0pKSA7XG5cbiAgbWVyZ2VNZXRhID0gKG9yaWc6IE1ldGFEYXRhLCBtZXJnZTogTWV0YURhdGEpOiBNZXRhRGF0YSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBvcmlnLmtleSxcbiAgICAgICAgZGlzcGxheU5hbWU6IG1lcmdlLmRpc3BsYXlOYW1lID8/IG9yaWcuZGlzcGxheU5hbWUsXG4gICAgICAgIGZpZWxkVHlwZTogbWVyZ2UuZmllbGRUeXBlIHx8IG9yaWcuZmllbGRUeXBlLFxuICAgICAgICBhZGRpdGlvbmFsOiB7Li4ub3JpZy5hZGRpdGlvbmFsLCAuLi5tZXJnZS5hZGRpdGlvbmFsfSxcbiAgICAgICAgb3JkZXI6IG1lcmdlLm9yZGVyID8/IG9yaWcub3JkZXIsXG4gICAgICAgIHByZVNvcnQ6IG1lcmdlLnByZVNvcnQgPz8gb3JpZy5wcmVTb3J0LFxuICAgICAgICBfaW50ZXJuYWxOb3RVc2VyRGVmaW5lZDogbWVyZ2UuX2ludGVybmFsTm90VXNlckRlZmluZWQgfHwgb3JpZy5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZCxcbiAgICAgICAgd2lkdGg6IG1lcmdlLndpZHRoID8/IG9yaWcud2lkdGgsXG4gICAgICAgIG5vRXhwb3J0OiBtZXJnZS5ub0V4cG9ydCB8fCBvcmlnLm5vRXhwb3J0LFxuICAgICAgICBub0ZpbHRlcjogbWVyZ2Uubm9GaWx0ZXIgfHwgb3JpZy5ub0ZpbHRlcixcbiAgICAgICAgY3VzdG9tQ2VsbDogbWVyZ2UuY3VzdG9tQ2VsbCA/PyBvcmlnLmN1c3RvbUNlbGwsXG4gICAgICAgIHRyYW5zZm9ybTogbWVyZ2UudHJhbnNmb3JtID8/IG9yaWcudHJhbnNmb3JtLFxuICAgICAgICBjbGljazogbWVyZ2UuY2xpY2sgPz8gb3JpZy5jbGljayxcbiAgICB9O1xuICB9XG5cbiAgcmVhZG9ubHkgc2V0TWV0YURhdGEgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBtZDogTWV0YURhdGFbXSB8IE1ldGFEYXRhICkgPT4ge1xuICAgIGNvbnN0IG1ldGFEYXRhID0gKCBBcnJheS5pc0FycmF5KG1kKSA/IFsuLi5tZF0gOiBbbWRdIClcbiAgICAgIC5yZWR1Y2UoKHByZXY6IERpY3Rpb25hcnk8TWV0YURhdGE+LGN1cnIpID0+IHtcbiAgICAgICAgaWYocHJldltjdXJyLmtleV0pIHtcbiAgICAgICAgICBwcmV2W2N1cnIua2V5XSA9IHRoaXMubWVyZ2VNZXRhKHByZXZbY3Vyci5rZXldLGN1cnIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZbY3Vyci5rZXldID0gY3VycjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH0gLHt9KTtcbiAgICBsZXQgc29ydGVkID0gc3RhdGUuc29ydGVkO1xuICAgIGlmKHNvcnRlZC5sZW5ndGggPT09IDApIHtcbiAgICAgIHNvcnRlZCA9IHRoaXMuY3JlYXRlUHJlU29ydChtZXRhRGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IG9yZGVyID0gdGhpcy5pbml0aWFsaXplT3JkZXIoc3RhdGUsIG1ldGFEYXRhKTtcbiAgICByZXR1cm4gey4uLnN0YXRlLCBtZXRhRGF0YSwgc29ydGVkLCB1c2VyRGVmaW5lZDp7Li4uc3RhdGUudXNlckRlZmluZWQsb3JkZXI6b3JkZXJ9fTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplT3JkZXIgPSAoc3RhdGU6VGFibGVTdGF0ZSxtZHM6IERpY3Rpb25hcnk8TWV0YURhdGE+KSA6IERpY3Rpb25hcnk8bnVtYmVyPiA9PiB7XG4gICAgY29uc3Qgdmlld2FibGVNZXRhRGF0YUFyciA9IE9iamVjdC52YWx1ZXMobWRzKS5maWx0ZXIoYSA9PiBhLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLkhpZGRlbik7XG4gICAgbGV0IHVzZXJEZWZpbmVkT3JkZXIgPSBzdGF0ZS51c2VyRGVmaW5lZC5vcmRlcjtcbiAgICBpZih2aWV3YWJsZU1ldGFEYXRhQXJyLnNvbWUobWV0YSA9PiB1c2VyRGVmaW5lZE9yZGVyW21ldGEua2V5XSA9PSBudWxsKSl7XG4gICAgICByZXR1cm4ge31cbiAgICB9XG4gICAgcmV0dXJuIHVzZXJEZWZpbmVkT3JkZXI7XG4gIH1cblxuICB0b2dnbGVDb2xsYXBzZUhlYWRlciA9IHRoaXMudXBkYXRlcigoc3RhdGUpPT57XG4gICAgY29uc3QgdGFibGVTZXR0aW5ncyA9IHsuLi5zdGF0ZS5wZXJzaXN0ZWRUYWJsZVNldHRpbmdzfTtcbiAgICB0YWJsZVNldHRpbmdzLmNvbGxhcHNlSGVhZGVyID0gIXRhYmxlU2V0dGluZ3MuY29sbGFwc2VIZWFkZXI7XG4gICAgcmV0dXJuICh7Li4uc3RhdGUscGVyc2lzdGVkVGFibGVTZXR0aW5ncyA6IG5ldyBQZXNyc2lzdGVkVGFibGVTZXR0aW5ncyh0YWJsZVNldHRpbmdzKX0pO1xuICB9KVxuXG4gIHRvZ2dsZUNvbGxhcHNlRm9vdGVyID0gdGhpcy51cGRhdGVyKChzdGF0ZSk9PntcbiAgICBjb25zdCB0YWJsZVNldHRpbmdzID0gey4uLnN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3N9O1xuICAgIHRhYmxlU2V0dGluZ3MuY29sbGFwc2VGb290ZXIgPSAhdGFibGVTZXR0aW5ncy5jb2xsYXBzZUZvb3RlcjtcbiAgICByZXR1cm4gKHsuLi5zdGF0ZSxwZXJzaXN0ZWRUYWJsZVNldHRpbmdzIDogbmV3IFBlc3JzaXN0ZWRUYWJsZVNldHRpbmdzKHRhYmxlU2V0dGluZ3MpfSk7XG4gIH0pXG5cblxuICBzZXRUYWJsZVNldHRpbmdzID0gdGhpcy51cGRhdGVyKChzdGF0ZSxzZXR0aW5nczpHZW5lcmFsVGFibGVTZXR0aW5ncyk9PntcbiAgICBjb25zdCBzOlRhYmxlU3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHBlcnNpc3RlZFRhYmxlU2V0dGluZ3MgOiBuZXcgUGVzcnNpc3RlZFRhYmxlU2V0dGluZ3Moc2V0dGluZ3MpLFxuICAgICAgbm90UGVyc2lzaXRlZFRhYmxlU2V0dGluZ3MgOiBuZXcgTm90UGVyc2lzaXRlZFRhYmxlU2V0dGluZ3Moc2V0dGluZ3MpXG4gICAgICB9O1xuICAgIHJldHVybiBzO1xuICB9KTtcblxuICB0YWJsZVNldHRpbmdzJCA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHtcbiAgICBjb25zdCB0cyA6IFBlc3JzaXN0ZWRUYWJsZVNldHRpbmdzICYgTm90UGVyc2lzaXRlZFRhYmxlU2V0dGluZ3MgPVxuICAgICAgey4uLnN0YXRlLnBlcnNpc3RlZFRhYmxlU2V0dGluZ3MsLi4uc3RhdGUubm90UGVyc2lzaXRlZFRhYmxlU2V0dGluZ3N9O1xuICAgIHJldHVybiB0cztcbiAgfSlcbn1cbmV4cG9ydCBjb25zdCBvcmRlclZpZXdhYmxlTWV0YURhdGEgPSAoc3RhdGU6VGFibGVTdGF0ZSkgPT4gb3JkZXJNZXRhRGF0YShzdGF0ZSkuZmlsdGVyKGEgPT4gYS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5IaWRkZW4pO1xuXG5leHBvcnQgY29uc3Qgb3JkZXJNZXRhRGF0YSA9IChzdGF0ZTpUYWJsZVN0YXRlKSA9PiB7XG4gIGNvbnN0IHVzZXJPcmRlckFyciA9IE9iamVjdC5lbnRyaWVzKHN0YXRlLnVzZXJEZWZpbmVkLm9yZGVyKTtcbiAgcmV0dXJuIHVzZXJPcmRlckFyci5sZW5ndGggP1xuICAgT2JqZWN0LnZhbHVlcyhzdGF0ZS5tZXRhRGF0YSkuc29ydCgoYSxiKT0+IHN0YXRlLnVzZXJEZWZpbmVkLm9yZGVyW2Eua2V5XSAtIHN0YXRlLnVzZXJEZWZpbmVkLm9yZGVyW2Iua2V5XSlcbiAgIDpcbiAgIE9iamVjdC52YWx1ZXMoc3RhdGUubWV0YURhdGEpLnNvcnQoKGEsYik9PiBhLm9yZGVyISAtIGIub3JkZXIhKVxufVxuIl19
|
|
270
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jbGFzc2VzL3RhYmxlLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFtQyxNQUFNLGNBQWMsQ0FBQztBQUN2RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQXNCLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUE0QixjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBRztBQUN6RCxPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQXdCLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRTdILE1BQU0sVUFBVSxPQUFPLENBQUMsbUJBQXdDO0lBQzlELE9BQU8sQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEtBQUssbUJBQW1CLENBQUM7QUFDbEYsQ0FBQztBQUtELE1BQU0sT0FBTyxVQUFX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QUFDLENBQUMsQ0FBQyxLQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQU0sQ0FBQyxDQUFBO0FBQ2xFLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkVHlwZSwgTWV0YURhdGEsIFNvcnREZWYgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVmYXVsdFRhYmxlU3RhdGUsIEluaXRpYWxpemF0aW9uU3RhdGUsIFBlcnNpc3RlZFRhYmxlU3RhdGUsIFRhYmxlU3RhdGUgfSBmcm9tICcuL1RhYmxlU3RhdGUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZywgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuL1RhYmxlQnVpbGRlckNvbmZpZyc7XG5pbXBvcnQgeyBDdXN0b21GaWx0ZXIsIEZpbHRlckluZm8sIGlzQ3VzdG9tRmlsdGVyLCBpc0ZpbHRlckluZm8gfSBmcm9tICcuL2ZpbHRlci1pbmZvJztcbmltcG9ydCB7IFNvcnQsIFNvcnREaXJlY3Rpb24gfSAgZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCcgO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnICA7XG5pbXBvcnQgdXBkYXRlIGZyb20gJ2ltbXV0YWJpbGl0eS1oZWxwZXInO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZGljdGlvbmFyeSc7XG5pbXBvcnQgeyBsYXN0LCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBub3ROdWxsLCBvbmNlV2hlbiB9IGZyb20gJy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xuaW1wb3J0IHsgR2VuZXJhbFRhYmxlU2V0dGluZ3MsIE5vdFBlcnNpc2l0ZWRUYWJsZVNldHRpbmdzLCBQZXNyc2lzdGVkVGFibGVTZXR0aW5ncyB9IGZyb20gJy4vdGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHN0YXRlSXMoaW5pdGlhbGl6YXRpb25TdGF0ZTogSW5pdGlhbGl6YXRpb25TdGF0ZSkge1xuICByZXR1cm4gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiBzdGF0ZS5pbml0aWFsaXphdGlvblN0YXRlID09PSBpbml0aWFsaXphdGlvblN0YXRlO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVTdG9yZSBleHRlbmRzIENvbXBvbmVudFN0b3JlPFRhYmxlU3RhdGU+IHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuKSBjb25maWc6IFRhYmxlQnVpbGRlckNvbmZpZykge1xuICAgc3VwZXIoIHsgLi4uZGVmYXVsdFRhYmxlU3RhdGUsIC4uLmNvbmZpZy5kZWZhdWx0VGFibGVTdGF0ZX0pO1xuICB9XG5cbiAgZ2V0U2F2YWJsZVN0YXRlKCkgOiBPYnNlcnZhYmxlPFBlcnNpc3RlZFRhYmxlU3RhdGU+IHtcbiAgICByZXR1cm4gIHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgICBtYXAoIHMgPT4ge1xuICAgICAgICBjb25zdCBzYXZhYmxlU3RhdGUgPSB7Li4uc30gYXMgUGFydGlhbDxUYWJsZVN0YXRlPlxuICAgICAgICBkZWxldGUgc2F2YWJsZVN0YXRlLm1ldGFEYXRhO1xuICAgICAgICBkZWxldGUgc2F2YWJsZVN0YXRlLm5vdFBlcnNpc2l0ZWRUYWJsZVNldHRpbmdzO1xuICAgICAgICByZXR1cm4gc2F2YWJsZVN0YXRlIGFzIFBlcnNpc3RlZFRhYmxlU3RhdGU7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBvbiA9IDxWPihzcmNPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFY+LCBmdW5jOiAob2JqOiBWKSA9PiB2b2lkKSA9PiB7XG4gICAgdGhpcy5lZmZlY3QoKCkgPT4gc3JjT2JzZXJ2YWJsZS5waXBlKFxuICAgICAgdGFwKGZ1bmMpXG4gICAgKSlcbiAgfVxuXG4gIG9uTGFzdChjYWxsYmFjazogKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiB2b2lkICkge1xuICAgIHRoaXMub24odGhpcy5zdGF0ZSQucGlwZShsYXN0KCkpLGNhbGxiYWNrKTtcbiAgfVxuXG4gIHJlYWRvbmx5IG1ldGFEYXRhJCA9IHRoaXMuc2VsZWN0KCBzdGF0ZSA9PiBzdGF0ZS5tZXRhRGF0YSk7XG5cbiAgcmVhZG9ubHkgbWV0YURhdGFBcnJheSQgPSB0aGlzLnNlbGVjdChcbiAgICB0aGlzLnN0YXRlJCxcbiAgICBvcmRlck1ldGFEYXRhXG4gICk7XG5cbiAgZ2V0TWV0YURhdGEkID0gKGtleTogc3RyaW5nKSA6IE9ic2VydmFibGU8TWV0YURhdGE+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3QoIHN0YXRlID0+IHN0YXRlLm1ldGFEYXRhW2tleV0gICkucGlwZShcbiAgICAgIHRhcChtZXRhID0+IHtpZighbWV0YSljb25zb2xlLndhcm4oYE1ldGEgZGF0YSB3aXRoIGtleSAke2tleX0gbm90IGZvdW5kYCl9KSxcbiAgICAgIG5vdE51bGwoKSlcbiAgfVxuXG4gIGdldFVzZXJEZWZpbmVkV2lkdGgkID0gKGtleTpzdHJpbmcpID0+IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLnVzZXJEZWZpbmVkLndpZHRoc1trZXldKTtcbiAgZ2V0VXNlckRlZmluZWRXaWR0aHMkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUudXNlckRlZmluZWQud2lkdGhzKTtcblxuICBwcml2YXRlIGRpc3BsYXllZENvbHVtbnMgPSAgKHN0YXRlOlRhYmxlU3RhdGUpID0+IG9yZGVyTWV0YURhdGEoc3RhdGUpLm1hcChtZCA9PiBtZC5rZXkpXG4gICAgLmZpbHRlcihrZXkgPT4gIXN0YXRlLmhpZGRlbktleXMuaW5jbHVkZXMoa2V5KSAmJiBzdGF0ZS5tZXRhRGF0YVtrZXldLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLkhpZGRlbik7XG4gIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5zZWxlY3QodGhpcy5kaXNwbGF5ZWRDb2x1bW5zKTtcbiAgcmVhZG9ubHkgaGlkZUNvbHVtbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGtleTogc3RyaW5nKSA9PiAoe1xuICAgIC4uLnN0YXRlLFxuICAgIGhpZGRlbktleXM6IFsuLi5zdGF0ZS5oaWRkZW5LZXlzLmZpbHRlciggayA9PiBrICE9PSBrZXkpLCBrZXldLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgcmVzZXRTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUpID0+IHtcbiAgICBjb25zdCBoaWRkZW5Db2x1bW5zID0gT2JqZWN0LnZhbHVlcyhzdGF0ZS5tZXRhRGF0YSlcbiAgICAgIC5maWx0ZXIobWQgPT4gbWQuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuSGlkZGVuKVxuICAgICAgLm1hcChtZCA9PiBtZC5rZXkpO1xuICAgIGNvbnN0IHNvcnRlZCA9IHRoaXMuY3JlYXRlUHJlU29ydChzdGF0ZS5tZXRhRGF0YSk7XG4gICAgcmV0dXJuIHVwZGF0ZShzdGF0ZSwge1xuICAgICAgIGhpZGRlbktleXM6IHsgJHNldDogWy4uLmhpZGRlbkNvbHVtbnNdIH0sXG4gICAgICAgZmlsdGVyczogeyAkc2V0OiB7fSB9LFxuICAgICAgIHNvcnRlZDogeyRzZXQ6IHNvcnRlZH0sXG4gICAgICAgdXNlckRlZmluZWQgOiB7JHNldDoge3dpZHRoczp7fSxvcmRlcjp7fSx0YWJsZTp7fX19LFxuICAgICAgfSk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNob3dDb2x1bW4gPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBrZXk6IHN0cmluZykgPT4gKHtcbiAgICAuLi5zdGF0ZSxcbiAgICBoaWRkZW5LZXlzOiBzdGF0ZS5oaWRkZW5LZXlzLmZpbHRlciggayA9PiBrICE9PSBrZXkpLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgc2V0SGlkZGVuQ29sdW1ucyA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGRpc3BsYXlDb2xzOiB7a2V5OiBzdHJpbmcsIHZpc2libGU6IGJvb2xlYW59W10pID0+IHtcblxuICAgIHZhciBoaWRkZW5LZXlzU2V0PSBuZXcgU2V0PHN0cmluZz4oXG4gICAgICBbXG4gICAgICAgIC4uLmRpc3BsYXlDb2xzLmZpbHRlcihjb2wgPT4gIWNvbC52aXNpYmxlKS5tYXAoY29sID0+IGNvbC5rZXkpLFxuICAgICAgICAuLi5PYmplY3QudmFsdWVzKHN0YXRlLm1ldGFEYXRhKS5maWx0ZXIobWQgPT4gbWQuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuSGlkZGVuKS5tYXAobWQgPT4gbWQua2V5KVxuICAgICAgXVxuICAgICk7XG5cbiAgICByZXR1cm4gdXBkYXRlKCBzdGF0ZSAsIHsgaGlkZGVuS2V5czogeyRzZXQ6IFsuLi5oaWRkZW5LZXlzU2V0XX19KTtcbiAgfSk7XG5cblxuICBzZXRVc2VyRGVmaW5lZFdpZHRoID0gdGhpcy51cGRhdGVyKChzdGF0ZSxjb2xXaWR0aHM6e2tleTogc3RyaW5nLCB3aWR0aEluUGl4ZWw6bnVtYmVyfVtdKSA9PiB7XG4gICAgY29uc3QgdXNlckRlZmluZWRXaWR0aHMgPSB7Li4uc3RhdGUudXNlckRlZmluZWQud2lkdGhzfTtcbiAgICBjb2xXaWR0aHMuZm9yRWFjaChjdyA9PiB7XG4gICAgICB1c2VyRGVmaW5lZFdpZHRoc1tjdy5rZXldID0gY3cud2lkdGhJblBpeGVsO1xuICAgIH0pO1xuICAgIHJldHVybiB7Li4uc3RhdGUsIHVzZXJEZWZpbmVkOiB7Li4uc3RhdGUudXNlckRlZmluZWQsd2lkdGhzOnVzZXJEZWZpbmVkV2lkdGhzfX07XG4gIH0pO1xuXG4gIHNldFVzZXJEZWZpbmVkT3JkZXIgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLG1vdmVkOntuZXdPcmRlcjpudW1iZXIsb2xkT3JkZXI6bnVtYmVyfSk9PntcbiAgICBjb25zdCB7bmV3T3JkZXIgLG9sZE9yZGVyfSA9IG1vdmVkO1xuICAgIGNvbnN0IG1kc0FyciA9IG9yZGVyVmlld2FibGVNZXRhRGF0YShzdGF0ZSk7XG4gICAgbW92ZUl0ZW1JbkFycmF5KG1kc0FycixvbGRPcmRlcixuZXdPcmRlcik7XG5cbiAgICBjb25zdCB1c2VyRGVmaW5lZE9yZGVyID0gbWRzQXJyLnJlZHVjZSgoYWdncmVnYXRlOiBhbnksY3VycmVudCxpbmRleCkgPT4ge1xuICAgICAgYWdncmVnYXRlW2N1cnJlbnQua2V5XSA9IGluZGV4O1xuICAgICAgcmV0dXJuIGFnZ3JlZ2F0ZVxuICAgIH0se30pO1xuICAgIHJldHVybih7Li4uc3RhdGUsIHVzZXJEZWZpbmVkOnsuLi5zdGF0ZS51c2VyRGVmaW5lZCxvcmRlcjp1c2VyRGVmaW5lZE9yZGVyfX0pXG4gIH0pXG5cblxuICByZWFkb25seSBmaWx0ZXJzJCA9IHRoaXMuc2VsZWN0KHN0YXRlID0+IHN0YXRlLmZpbHRlcnMgKTtcblxuICByZWFkb25seSBnZXRGaWx0ZXIkID0gKGZpbHRlcklkOiBzdHJpbmcpIDogT2JzZXJ2YWJsZTxGaWx0ZXJJbmZvIHwgQ3VzdG9tRmlsdGVyIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0KCBzdGF0ZSA9PiBzdGF0ZS5maWx0ZXJzW2ZpbHRlcklkXSApO1xuICB9XG4gIHJlYWRvbmx5IGFkZEZpbHRlciA9IHRoaXMudXBkYXRlciggKHN0YXRlLCBmaWx0ZXI6IEZpbHRlckluZm8gfCBDdXN0b21GaWx0ZXIgKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYWRkRmlsdGVyc1RvU3RhdGUoc3RhdGUsIFtmaWx0ZXJdKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYWRkRmlsdGVycyA9IHRoaXMudXBkYXRlcigoc3RhdGUsZmlsdGVyczooRmlsdGVySW5mbyB8IEN1c3RvbUZpbHRlciApW10pPT57XG4gICAgcmV0dXJuIHRoaXMuYWRkRmlsdGVyc1RvU3RhdGUoc3RhdGUsIGZpbHRlcnMpO1xuICB9KVxuXG5cbiAgcHJpdmF0ZSBhZGRGaWx0ZXJzVG9TdGF0ZSA9IChzdGF0ZTpUYWJsZVN0YXRlLGZpbHRlcnM6KEZpbHRlckluZm8gfCBDdXN0b21GaWx0ZXIpW10pIDogVGFibGVTdGF0ZSA9PiB7XG5cbiAgICB2YXIgY3VzdG9tRmlsdGVycyA9IGZpbHRlcnMuZmlsdGVyKCAgaXNDdXN0b21GaWx0ZXIgKTtcblxuICAgIHZhciBmaWx0ZXJJbmZvcyA9IGZpbHRlcnMuZmlsdGVyKGlzRmlsdGVySW5mbyk7XG5cbiAgICBjb25zdCBmaWx0ZXJzT2JqID0gZmlsdGVySW5mb3NcbiAgICAgIC5maWx0ZXIoZmx0ciA9PiBPYmplY3Qua2V5cyhzdGF0ZS5tZXRhRGF0YSkuc29tZShrZXkgPT4ga2V5ID09PSBmbHRyLmtleSkgfHwgY29uc29sZS53YXJuKGBNZXRhIGRhdGEgd2l0aCBrZXkgJHtmbHRyLmtleX0gbm90IGZvdW5kYCkpXG4gICAgICAucmVkdWNlKChmaWx0ZXJzT2JqOiB7W2s6IHN0cmluZ106IGFueX0sZmlsdGVyKT0+e1xuICAgICAgICBpZiAoIWZpbHRlci5maWx0ZXJJZCkge1xuICAgICAgICAgIGZpbHRlci5maWx0ZXJJZCA9IHV1aWQoKTtcbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJzT2JqW2ZpbHRlci5maWx0ZXJJZF0gPSBmaWx0ZXI7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzT2JqO1xuICAgICAgfSx7fSk7XG5cbiAgICAgIGN1c3RvbUZpbHRlcnMuZm9yRWFjaCggZmx0ciA9PiB7XG4gICAgICAgIGlmKCFmbHRyLmZpbHRlcklkKSB7XG4gICAgICAgICAgZmx0ci5maWx0ZXJJZCA9IHV1aWQoKTtcbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJzT2JqW2ZsdHIuZmlsdGVySWRdID0gZmx0cjtcbiAgICAgIH0pXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZmlsdGVycyA6IHsuLi5zdGF0ZS5maWx0ZXJzLCAuLi5maWx0ZXJzT2JqIH1cbiAgICB9O1xuICB9XG5cbiAgcmVhZG9ubHkgcmVtb3ZlRmlsdGVyID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIGZpbHRlcklkOiBzdHJpbmcpID0+XG4gICAgdXBkYXRlKHN0YXRlLCB7ZmlsdGVyczogeyR1bnNldCA6IFtmaWx0ZXJJZCBdfX0pXG4gICk7XG5cbiAgcmVhZG9ubHkgcmVtb3ZlRmlsdGVycyA9IHRoaXMudXBkYXRlciggKHN0YXRlLCBmaWx0ZXJJZHM6IHN0cmluZ1tdKSA9PlxuICAgIHVwZGF0ZShzdGF0ZSwge2ZpbHRlcnM6IHskdW5zZXQgOiBbLi4uZmlsdGVySWRzIF19fSlcbiAgKTtcblxuICByZWFkb25seSBjbGVhckZpbHRlcnMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKT0+XG4gICAgKHsuLi5zdGF0ZSxmaWx0ZXJzOnt9fSkpXG5cblxuICByZWFkb25seSBzb3J0ZWQkID0gdGhpcy5zZWxlY3Qoc3RhdGUgPT4gc3RhdGUuc29ydGVkKTtcblxuICBjcmVhdGVQcmVTb3J0ID0gKG1ldGFEYXRhczogRGljdGlvbmFyeTxNZXRhRGF0YT4pOiBTb3J0W10gPT4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKG1ldGFEYXRhcykuZmlsdGVyKCggbWV0YURhdGEgKSA6IG1ldGFEYXRhIGlzIE1ldGFEYXRhICYge3ByZVNvcnQ6IFNvcnREZWZ9ID0+ICEhbWV0YURhdGEucHJlU29ydClcbiAgICAuc29ydCgoeyAgcHJlU29ydDogcHMxICB9LCB7IHByZVNvcnQ6IHBzMiB9ICkgPT4gKHBzMS5wcmVjZWRlbmNlIHx8IE51bWJlci5NQVhfVkFMVUUpIC0gKCBwczIucHJlY2VkZW5jZSB8fCBOdW1iZXIuTUFYX1ZBTFVFKSlcbiAgICAubWFwKCgge2tleSwgcHJlU29ydH0gKSA9PiAoeyBhY3RpdmU6IGtleSwgZGlyZWN0aW9uOiBwcmVTb3J0LmRpcmVjdGlvbiB9KSlcbiAgfVxuICByZWFkb25seSBzZXRTb3J0ID0gdGhpcy51cGRhdGVyPHtrZXk6IHN0cmluZywgZGlyZWN0aW9uPzogU29ydERpcmVjdGlvbn0+KChzdGF0ZSwge2tleSwgZGlyZWN0aW9ufSApID0+IHtcbiAgICBjb25zdCBzb3J0QXJyYXkgPSBzdGF0ZS5zb3J0ZWQuZmlsdGVyKCBzID0+IHMuYWN0aXZlICE9PSBrZXkgKTtcbiAgICBpZihkaXJlY3Rpb24pIHtcbiAgICAgIHNvcnRBcnJheS51bnNoaWZ0KHthY3RpdmU6IGtleSwgZGlyZWN0aW9ufSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHNvcnRlZDogc29ydEFycmF5LFxuICAgIH07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNldEFsbFNvcnQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLHNvcnRBcnJheTpTb3J0W10pPT57XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgc29ydGVkOiBzb3J0QXJyYXksXG4gICAgfTtcbiAgfSk7XG5cblxuICB1cGRhdGVTdGF0ZUZ1bmMgPSAoc3RhdGU6IFRhYmxlU3RhdGUsIGluY29taW5nVGFibGVTdGF0ZTogUGFydGlhbDxUYWJsZVN0YXRlPikgOiBUYWJsZVN0YXRlID0+IHtcbiAgICBjb25zdCBtZXRhRGF0YSA9IHN0YXRlLm1ldGFEYXRhO1xuICAgIGNvbnN0IHNvcnRlZCA9IGluY29taW5nVGFibGVTdGF0ZS5zb3J0ZWQ/Lmxlbmd0aCA/IGluY29taW5nVGFibGVTdGF0ZS5zb3J0ZWQgOiB0aGlzLmNyZWF0ZVByZVNvcnQobWV0YURhdGEpO1xuICAgIHJldHVybiB7Li4uc3RhdGUsIC4uLmluY29taW5nVGFibGVTdGF0ZSwgbWV0YURhdGEgLCBzb3J0ZWR9O1xuICB9XG5cbiAgcmVhZG9ubHkgc2V0UGFnZVNpemUgPSB0aGlzLnVwZGF0ZXIoIChzdGF0ZSwgcGFnZVNpemU6IG51bWJlcik9PiAoey4uLnN0YXRlLHBhZ2VTaXplfSkpO1xuXG4gIHJlYWRvbmx5IHVwZGF0ZVN0YXRlID0gdGhpcy51cGRhdGVyPFBhcnRpYWw8VGFibGVTdGF0ZT4+KHRoaXMudXBkYXRlU3RhdGVGdW5jKTtcblxuICBjbGVhblBlcnNpc3RlZFN0YXRlKHN0YXRlOiBUYWJsZVN0YXRlLHBTdGF0ZTogUGVyc2lzdGVkVGFibGVTdGF0ZSkge1xuICAgIGNvbnN0IG1ldGFzID0gT2JqZWN0LnZhbHVlcyhzdGF0ZS5tZXRhRGF0YSk7XG4gICAgY29uc3QgZmlsdGVycyA9IE9iamVjdC52YWx1ZXMocFN0YXRlLmZpbHRlcnMpLmZpbHRlcihmbHRyID0+IGlzQ3VzdG9tRmlsdGVyKGZsdHIpIHx8IG1ldGFzLnNvbWUobSA9PiBtLmtleSA9PT0gZmx0ci5rZXkpKS5yZWR1Y2UoKG9iajogYW55LCBmaWx0ZXIpID0+IHtcbiAgICAgIG9ialtmaWx0ZXIuZmlsdGVySWQhXSA9IHBTdGF0ZS5maWx0ZXJzW2ZpbHRlci5maWx0ZXJJZCFdO1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LCB7fSk7XG4gICAgY29uc3Qgc29ydGVkID0gcFN0YXRlLnNvcnRlZC5maWx0ZXIocyA9PiBtZXRhcy5zb21lKG0gPT4gbS5rZXkgPT09IHMuYWN0aXZlKSk7XG4gICAgcmV0dXJuICh7Li4ucFN0YXRlLGZpbHRlcnMsc29ydGVkfSlcbiAgfVxuXG4gIHJlYWRvbmx5IHVwZGF0ZVN0YXRlRnJvbVBlcnNpc3RlZFN0YXRlID0gdGhpcy51cGRhdGVyKCAoIHN0YXRlOiBUYWJsZVN0YXRlLCBwZXJzaXN0ZWRTdGF0ZTogUGVyc2lzdGVkVGFibGVTdGF0ZSkgOiBUYWJsZVN0YXRlID0+IHtcbiAgICBjb25zdCBpbmNvbWluZ1RhYmxlU3RhdGU6IFBhcnRpYWw8VGFibGVTdGF0ZT4gPSB0aGlzLmNsZWFuUGVyc2lzdGVkU3RhdGUoc3RhdGUscGVyc2lzdGVkU3RhdGUpO1xuICAgIGNvbnN0IG5ld1N0YXRlID0gIHRoaXMudXBkYXRlU3RhdGVGdW5jKHN0YXRlLGluY29taW5nVGFibGVTdGF0ZSk7XG4gICAgbmV3U3RhdGUuaW5pdGlhbGl6YXRpb25TdGF0ZSA9IHN0YXRlLmluaXRpYWxpemF0aW9uU3RhdGUgPT09IEluaXRpYWxpemF0aW9uU3RhdGUuTWV0YURhdGFMb2FkZWQgPyBJbml0aWFsaXphdGlvblN0YXRlLkxvYWRlZEZyb21TdG9yZSA6IHN0YXRlLmluaXRpYWxpemF0aW9uU3RhdGU7XG4gICAgcmV0dXJuIG5ld1N0YXRlO1xuICB9KTtcblxuICBnZXRVc2VyRGVmaW5lZFRhYmxlU2l6ZSQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC50YWJsZS53aWR0aCk7XG4gIHNldFRhYmxlV2lkdGggPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLHdpZHRoSW5waXhlbHM6bnVtYmVyKSA9PiAoey4uLnN0YXRlLHVzZXJEZWZpbmVkOiB7Li4uc3RhdGUudXNlckRlZmluZWQsdGFibGU6e3dpZHRoOndpZHRoSW5waXhlbHN9fX0pKSA7XG5cbiAgbWVyZ2VNZXRhID0gKG9yaWc6IE1ldGFEYXRhLCBtZXJnZTogTWV0YURhdGEpOiBNZXRhRGF0YSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAga2V5OiBvcmlnLmtleSxcbiAgICAgICAgZGlzcGxheU5hbWU6IG1lcmdlLmRpc3BsYXlOYW1lID8/IG9yaWcuZGlzcGxheU5hbWUsXG4gICAgICAgIGZpZWxkVHlwZTogbWVyZ2UuZmllbGRUeXBlIHx8IG9yaWcuZmllbGRUeXBlLFxuICAgICAgICBhZGRpdGlvbmFsOiB7Li4ub3JpZy5hZGRpdGlvbmFsLCAuLi5tZXJnZS5hZGRpdGlvbmFsfSxcbiAgICAgICAgb3JkZXI6IG1lcmdlLm9yZGVyID8/IG9yaWcub3JkZXIsXG4gICAgICAgIHByZVNvcnQ6IG1lcmdlLnByZVNvcnQgPz8gb3JpZy5wcmVTb3J0LFxuICAgICAgICBfaW50ZXJuYWxOb3RVc2VyRGVmaW5lZDogbWVyZ2UuX2ludGVybmFsTm90VXNlckRlZmluZWQgfHwgb3JpZy5faW50ZXJuYWxOb3RVc2VyRGVmaW5lZCxcbiAgICAgICAgd2lkdGg6IG1lcmdlLndpZHRoID8/IG9yaWcud2lkdGgsXG4gICAgICAgIG5vRXhwb3J0OiBtZXJnZS5ub0V4cG9ydCB8fCBvcmlnLm5vRXhwb3J0LFxuICAgICAgICBub0ZpbHRlcjogbWVyZ2Uubm9GaWx0ZXIgfHwgb3JpZy5ub0ZpbHRlcixcbiAgICAgICAgY3VzdG9tQ2VsbDogbWVyZ2UuY3VzdG9tQ2VsbCA/PyBvcmlnLmN1c3RvbUNlbGwsXG4gICAgICAgIHRyYW5zZm9ybTogbWVyZ2UudHJhbnNmb3JtID8/IG9yaWcudHJhbnNmb3JtLFxuICAgICAgICBjbGljazogbWVyZ2UuY2xpY2sgPz8gb3JpZy5jbGljayxcbiAgICB9O1xuICB9XG5cbiAgcmVhZG9ubHkgc2V0SW50aWFsaXphdGlvblN0YXRlID0gdGhpcy51cGRhdGVyKCAoc3RhdGUsIGluaXRpYWxpemF0aW9uU3RhdGU6ICBJbml0aWFsaXphdGlvblN0YXRlKSA9PiB7XG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaW5pdGlhbGl6YXRpb25TdGF0ZX07XG4gIH0pO1xuXG4gIHJ1bk9uY2VXaGVuKHByZWRpY2F0ZTogUHJlZGljYXRlPFRhYmxlU3RhdGU+LCBmdW5jOiAoc3RhdGU6VGFibGVTdGF0ZSkgPT4gdm9pZCkge1xuICAgIGNvbnN0IG9icyA9IHRoaXMuc3RhdGUkLnBpcGUob25jZVdoZW4ocHJlZGljYXRlKSk7XG4gICAgdGhpcy5vbihvYnMsIChzdGF0ZSkgPT4ge1xuICAgICAgZnVuYyhzdGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBvblJlYWR5KCBmdW5jOiAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IHZvaWQgKSB7XG4gICAgdGhpcy5ydW5PbmNlV2hlbihzdGF0ZUlzKEluaXRpYWxpemF0aW9uU3RhdGUuUmVhZHkpLGZ1bmMpO1xuICB9XG5cbiAgcmVhZG9ubHkgc2V0TWV0YURhdGEgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBtZDogTWV0YURhdGFbXSB8IE1ldGFEYXRhICkgPT4ge1xuICAgIGNvbnN0IG1ldGFEYXRhID0gKCBBcnJheS5pc0FycmF5KG1kKSA/IFsuLi5tZF0gOiBbbWRdIClcbiAgICAgIC5yZWR1Y2UoKHByZXY6IERpY3Rpb25hcnk8TWV0YURhdGE+LGN1cnIpID0+IHtcbiAgICAgICAgaWYocHJldltjdXJyLmtleV0pIHtcbiAgICAgICAgICBwcmV2W2N1cnIua2V5XSA9IHRoaXMubWVyZ2VNZXRhKHByZXZbY3Vyci5rZXldLGN1cnIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByZXZbY3Vyci5rZXldID0gY3VycjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH0gLHt9KTtcbiAgICBsZXQgc29ydGVkID0gc3RhdGUuc29ydGVkO1xuICAgIGlmKHNvcnRlZC5sZW5ndGggPT09IDApIHtcbiAgICAgIHNvcnRlZCA9IHRoaXMuY3JlYXRlUHJlU29ydChtZXRhRGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IG9yZGVyID0gdGhpcy5pbml0aWFsaXplT3JkZXIoc3RhdGUsIG1ldGFEYXRhKTtcbiAgICBjb25zdCBpbml0aWFsaXphdGlvblN0YXRlID0gc3RhdGUuaW5pdGlhbGl6YXRpb25TdGF0ZSA9PSBJbml0aWFsaXphdGlvblN0YXRlLkNyZWF0ZWQgPyAgSW5pdGlhbGl6YXRpb25TdGF0ZS5NZXRhRGF0YUxvYWRlZCA6IHN0YXRlLmluaXRpYWxpemF0aW9uU3RhdGU7XG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgaW5pdGlhbGl6YXRpb25TdGF0ZSwgbWV0YURhdGEsIHNvcnRlZCwgdXNlckRlZmluZWQ6ey4uLnN0YXRlLnVzZXJEZWZpbmVkLG9yZGVyOm9yZGVyfX07XG4gIH0pO1xuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZU9yZGVyID0gKHN0YXRlOlRhYmxlU3RhdGUsbWRzOiBEaWN0aW9uYXJ5PE1ldGFEYXRhPikgOiBEaWN0aW9uYXJ5PG51bWJlcj4gPT4ge1xuICAgIGNvbnN0IHZpZXdhYmxlTWV0YURhdGFBcnIgPSBPYmplY3QudmFsdWVzKG1kcykuZmlsdGVyKGEgPT4gYS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5IaWRkZW4pO1xuICAgIGxldCB1c2VyRGVmaW5lZE9yZGVyID0gc3RhdGUudXNlckRlZmluZWQub3JkZXI7XG4gICAgaWYodmlld2FibGVNZXRhRGF0YUFyci5zb21lKG1ldGEgPT4gdXNlckRlZmluZWRPcmRlclttZXRhLmtleV0gPT0gbnVsbCkpe1xuICAgICAgcmV0dXJuIHt9XG4gICAgfVxuICAgIHJldHVybiB1c2VyRGVmaW5lZE9yZGVyO1xuICB9XG5cbiAgdG9nZ2xlQ29sbGFwc2VIZWFkZXIgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlKT0+e1xuICAgIGNvbnN0IHRhYmxlU2V0dGluZ3MgPSB7Li4uc3RhdGUucGVyc2lzdGVkVGFibGVTZXR0aW5nc307XG4gICAgdGFibGVTZXR0aW5ncy5jb2xsYXBzZUhlYWRlciA9ICF0YWJsZVNldHRpbmdzLmNvbGxhcHNlSGVhZGVyO1xuICAgIHJldHVybiAoey4uLnN0YXRlLHBlcnNpc3RlZFRhYmxlU2V0dGluZ3MgOiBuZXcgUGVzcnNpc3RlZFRhYmxlU2V0dGluZ3ModGFibGVTZXR0aW5ncyl9KTtcbiAgfSlcblxuICB0b2dnbGVDb2xsYXBzZUZvb3RlciA9IHRoaXMudXBkYXRlcigoc3RhdGUpPT57XG4gICAgY29uc3QgdGFibGVTZXR0aW5ncyA9IHsuLi5zdGF0ZS5wZXJzaXN0ZWRUYWJsZVNldHRpbmdzfTtcbiAgICB0YWJsZVNldHRpbmdzLmNvbGxhcHNlRm9vdGVyID0gIXRhYmxlU2V0dGluZ3MuY29sbGFwc2VGb290ZXI7XG4gICAgcmV0dXJuICh7Li4uc3RhdGUscGVyc2lzdGVkVGFibGVTZXR0aW5ncyA6IG5ldyBQZXNyc2lzdGVkVGFibGVTZXR0aW5ncyh0YWJsZVNldHRpbmdzKX0pO1xuICB9KVxuXG5cbiAgc2V0VGFibGVTZXR0aW5ncyA9IHRoaXMudXBkYXRlcigoc3RhdGUsc2V0dGluZ3M6R2VuZXJhbFRhYmxlU2V0dGluZ3MpPT57XG4gICAgY29uc3QgczpUYWJsZVN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBwZXJzaXN0ZWRUYWJsZVNldHRpbmdzIDogbmV3IFBlc3JzaXN0ZWRUYWJsZVNldHRpbmdzKHNldHRpbmdzKSxcbiAgICAgIG5vdFBlcnNpc2l0ZWRUYWJsZVNldHRpbmdzIDogbmV3IE5vdFBlcnNpc2l0ZWRUYWJsZVNldHRpbmdzKHNldHRpbmdzKVxuICAgICAgfTtcbiAgICByZXR1cm4gcztcbiAgfSk7XG5cbiAgdGFibGVTZXR0aW5ncyQgPSB0aGlzLnNlbGVjdChzdGF0ZSA9PiB7XG4gICAgY29uc3QgdHMgOiBQZXNyc2lzdGVkVGFibGVTZXR0aW5ncyAmIE5vdFBlcnNpc2l0ZWRUYWJsZVNldHRpbmdzID1cbiAgICAgIHsuLi5zdGF0ZS5wZXJzaXN0ZWRUYWJsZVNldHRpbmdzLC4uLnN0YXRlLm5vdFBlcnNpc2l0ZWRUYWJsZVNldHRpbmdzfTtcbiAgICByZXR1cm4gdHM7XG4gIH0pXG59XG5leHBvcnQgY29uc3Qgb3JkZXJWaWV3YWJsZU1ldGFEYXRhID0gKHN0YXRlOlRhYmxlU3RhdGUpID0+IG9yZGVyTWV0YURhdGEoc3RhdGUpLmZpbHRlcihhID0+IGEuZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuSGlkZGVuKTtcblxuZXhwb3J0IGNvbnN0IG9yZGVyTWV0YURhdGEgPSAoc3RhdGU6VGFibGVTdGF0ZSkgPT4ge1xuICBjb25zdCB1c2VyT3JkZXJBcnIgPSBPYmplY3QuZW50cmllcyhzdGF0ZS51c2VyRGVmaW5lZC5vcmRlcik7XG4gIHJldHVybiB1c2VyT3JkZXJBcnIubGVuZ3RoID9cbiAgIE9iamVjdC52YWx1ZXMoc3RhdGUubWV0YURhdGEpLnNvcnQoKGEsYik9PiBzdGF0ZS51c2VyRGVmaW5lZC5vcmRlclthLmtleV0gLSBzdGF0ZS51c2VyRGVmaW5lZC5vcmRlcltiLmtleV0pXG4gICA6XG4gICBPYmplY3QudmFsdWVzKHN0YXRlLm1ldGFEYXRhKS5zb3J0KChhLGIpPT4gYS5vcmRlciEgLSBiLm9yZGVyISlcbn1cbiJdfQ==
|