@solidev/data 0.0.1-dev.3 → 0.0.1-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/auth/auth-interceptor.service.mjs +13 -4
- package/esm2020/lib/auth/auth.service.mjs +20 -9
- package/esm2020/lib/data/data-backend.mjs +3 -3
- package/esm2020/lib/data/data-model.mjs +5 -1
- package/esm2020/lib/data/data-query.mjs +32 -25
- package/esm2020/lib/data/fields/base.mjs +9 -8
- package/esm2020/lib/data/fields/computed.mjs +10 -0
- package/esm2020/lib/data/fields/index.mjs +2 -1
- package/esm2020/lib/dispedit/choice.pipe.mjs +44 -4
- package/esm2020/lib/dispedit/dispedit/dispedit.component.mjs +17 -6
- package/esm2020/lib/dispedit/factor.pipe.mjs +37 -4
- package/esm2020/lib/dispedit/factorc.pipe.mjs +59 -8
- package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +3 -3
- package/esm2020/lib/dispedit/flags/flags.component.mjs +140 -0
- package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +4 -4
- package/esm2020/lib/dispedit/richedit/richedit.component.mjs +94 -0
- package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +62 -15
- package/esm2020/lib/messages/message-zone/message-zone.component.mjs +3 -3
- package/esm2020/lib/messages/message.service.mjs +3 -3
- package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +5 -5
- package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +4 -4
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +4 -4
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +4 -4
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +5 -6
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +6 -1
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +7 -1
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +7 -7
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +10 -7
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/model-list-filter.mjs +11 -10
- package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +3 -3
- package/esm2020/lib/modellist/model-list.service.mjs +21 -16
- package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2020/lib/updates/update/update.component.mjs +17 -0
- package/esm2020/lib/updates/update.service.mjs +58 -0
- package/esm2020/lib/uploader/ng-file-drop.directive.mjs +3 -3
- package/esm2020/lib/uploader/ng-file-select.directive.mjs +3 -3
- package/esm2020/lib/uploader/ngx-uploader.module.mjs +4 -4
- package/esm2020/lib/utils/tab-memory.service.mjs +20 -11
- package/esm2020/public-api.mjs +5 -1
- package/fesm2015/solidev-data.mjs +752 -201
- package/fesm2015/solidev-data.mjs.map +1 -1
- package/fesm2020/solidev-data.mjs +733 -199
- package/fesm2020/solidev-data.mjs.map +1 -1
- package/lib/auth/auth.service.d.ts +6 -1
- package/lib/data/data-model.d.ts +1 -0
- package/lib/data/data-query.d.ts +14 -11
- package/lib/data/fields/base.d.ts +6 -5
- package/lib/data/fields/computed.d.ts +14 -0
- package/lib/data/fields/index.d.ts +1 -0
- package/lib/dispedit/choice.pipe.d.ts +5 -0
- package/lib/dispedit/dispedit/dispedit.component.d.ts +6 -1
- package/lib/dispedit/factor.pipe.d.ts +7 -0
- package/lib/dispedit/factorc.pipe.d.ts +8 -0
- package/lib/dispedit/fkselect/fkselect.component.d.ts +1 -1
- package/lib/dispedit/flags/flags.component.d.ts +40 -0
- package/lib/dispedit/m2mselect/m2mselect.component.d.ts +1 -1
- package/lib/dispedit/richedit/richedit.component.d.ts +31 -0
- package/lib/dispedit/sdelete/sdelete.component.d.ts +13 -4
- package/lib/messages/message-zone/message-zone.component.d.ts +1 -1
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +1 -1
- package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +2 -2
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.d.ts +1 -0
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.d.ts +6 -1
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +3 -3
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filter.d.ts +4 -2
- package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +1 -1
- package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +1 -1
- package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +1 -1
- package/lib/modellist/model-list.service.d.ts +6 -6
- package/lib/routing/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/updates/update/update.component.d.ts +8 -0
- package/lib/updates/update.service.d.ts +16 -0
- package/lib/uploader/ng-file-drop.directive.d.ts +1 -1
- package/lib/uploader/ng-file-select.directive.d.ts +1 -1
- package/lib/utils/tab-memory.service.d.ts +4 -3
- package/package.json +7 -4
- package/public-api.d.ts +4 -0
|
@@ -20,14 +20,21 @@ export class AuthInterceptor {
|
|
|
20
20
|
if (!req.url.startsWith(this._apiUrl)) {
|
|
21
21
|
return next.handle(req);
|
|
22
22
|
}
|
|
23
|
+
if (req.url.startsWith(this._auth.refreshUrl) ||
|
|
24
|
+
req.url.startsWith(this._auth.loginUrl)) {
|
|
25
|
+
return next.handle(req);
|
|
26
|
+
}
|
|
23
27
|
if (!this._auth.isAnonymous) {
|
|
24
28
|
req = this._addToken(req, this._auth.accessToken);
|
|
25
29
|
}
|
|
26
30
|
return next.handle(req).pipe(catchError((error) => {
|
|
31
|
+
console.log('Catched http error', error);
|
|
27
32
|
if (error instanceof HttpErrorResponse && error.status === 401) {
|
|
33
|
+
console.log('Passing to handle 401');
|
|
28
34
|
return this._handle401Error(req, next);
|
|
29
35
|
}
|
|
30
36
|
else {
|
|
37
|
+
console.log('throwing error');
|
|
31
38
|
return throwError(error);
|
|
32
39
|
}
|
|
33
40
|
}));
|
|
@@ -36,6 +43,7 @@ export class AuthInterceptor {
|
|
|
36
43
|
if (!this._isRefreshing) {
|
|
37
44
|
this._isRefreshing = true;
|
|
38
45
|
this._refreshTokenSubject.next(null);
|
|
46
|
+
console.log('refreshing token');
|
|
39
47
|
return this._auth.refresh().pipe(switchMap((token) => {
|
|
40
48
|
if (token === null) {
|
|
41
49
|
return throwError(() => new HttpErrorResponse({
|
|
@@ -53,6 +61,7 @@ export class AuthInterceptor {
|
|
|
53
61
|
}));
|
|
54
62
|
}
|
|
55
63
|
else {
|
|
64
|
+
console.log('piping to refresh token subject');
|
|
56
65
|
return this._refreshTokenSubject.pipe(filter((token) => token != null), take(1), switchMap((token) => next.handle(this._addToken(request, token.access))));
|
|
57
66
|
}
|
|
58
67
|
}
|
|
@@ -64,9 +73,9 @@ export class AuthInterceptor {
|
|
|
64
73
|
});
|
|
65
74
|
}
|
|
66
75
|
}
|
|
67
|
-
AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
68
|
-
AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
76
|
+
AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: AuthInterceptor, deps: [{ token: DATA_AUTH_SERVICE }, { token: DATA_API_URL }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
77
|
+
AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: AuthInterceptor, providedIn: 'root' });
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: AuthInterceptor, decorators: [{
|
|
70
79
|
type: Injectable,
|
|
71
80
|
args: [{
|
|
72
81
|
providedIn: 'root',
|
|
@@ -78,4 +87,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
|
|
|
78
87
|
type: Inject,
|
|
79
88
|
args: [DATA_API_URL]
|
|
80
89
|
}] }]; } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2F1dGgvYXV0aC1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsaUJBQWlCLEdBSWxCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBRXZELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUVqRCxtQkFBbUIsQ0FBQyxDQUFDO0FBS3ZCLE1BQU0sT0FBTyxlQUFlO0lBSzFCLFlBQ3FDLEtBQXFDLEVBQzFDLE9BQWU7UUFEVixVQUFLLEdBQUwsS0FBSyxDQUFnQztRQUMxQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBTnZDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLHlCQUFvQixHQUMxQixJQUFJLGVBQWUsQ0FBaUMsSUFBSSxDQUFDLENBQUM7SUFLekQsQ0FBQztJQUVKLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ2hELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZ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LEtBQWlDLENBQUMsTUFBTSxDQUFDLENBQ25FLENBQ0YsQ0FDRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sU0FBUyxDQUFDLE9BQXlCLEVBQUUsS0FBYTtRQUN4RCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDbkIsVUFBVSxFQUFFO2dCQUNWLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRTthQUNqQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OzRHQXBGVSxlQUFlLGtCQU1oQixpQkFBaUIsYUFDakIsWUFBWTtnSEFQWCxlQUFlLGNBRmQsTUFBTTsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgSHR0cEhhbmRsZXIsXG4gIEh0dHBJbnRlcmNlcHRvcixcbiAgSHR0cFJlcXVlc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlQmFzZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJSnd0UmVmcmVzaFJlc3BvbnNlSnNvbiB9IGZyb20gJy4vand0JztcbmltcG9ydCB7IERBVEFfQVBJX1VSTCB9IGZyb20gJy4uL2RhdGEvZGF0YS1wYXJhbWV0ZXJzJztcblxuZXhwb3J0IGNvbnN0IERBVEFfQVVUSF9TRVJWSUNFID0gbmV3IEluamVjdGlvblRva2VuPFxuICBBdXRoU2VydmljZUJhc2U8YW55LCBhbnksIGFueT5cbj4oJ2RhdGEuYXV0aC5zZXJ2aWNlJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICBwcml2YXRlIF9pc1JlZnJlc2hpbmcgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuU3ViamVjdCA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxJSnd0UmVmcmVzaFJlc3BvbnNlSnNvbiB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoREFUQV9BVVRIX1NFUlZJQ0UpIHByaXZhdGUgX2F1dGg6IEF1dGhTZXJ2aWNlQmFzZTxhbnksIGFueSwgYW55PixcbiAgICBASW5qZWN0KERBVEFfQVBJX1VSTCkgcHJpdmF0ZSBfYXBpVXJsOiBzdHJpbmdcbiAgKSB7fVxuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgaWYgKHRoaXMuX2F1dGguaXNBbm9ueW1vdXMpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cbiAgICBpZiAoIXJlcS51cmwuc3RhcnRzV2l0aCh0aGlzLl9hcGlVcmwpKSB7XG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcmVxLnVybC5zdGFydHNXaXRoKHRoaXMuX2F1dGgucmVmcmVzaFVybCkgfHxcbiAgICAgIHJlcS51cmwuc3RhcnRzV2l0aCh0aGlzLl9hdXRoLmxvZ2luVXJsKVxuICAgICkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fYXV0aC5pc0Fub255bW91cykge1xuICAgICAgcmVxID0gdGhpcy5fYWRkVG9rZW4ocmVxLCB0aGlzLl9hdXRoLmFjY2Vzc1Rva2VuIGFzIHN0cmluZyk7XG4gICAgfVxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnQ2F0Y2hlZCBodHRwIGVycm9yJywgZXJyb3IpO1xuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSAmJiBlcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdQYXNzaW5nIHRvIGhhbmRsZSA0MDEnKTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5faGFuZGxlNDAxRXJyb3IocmVxLCBuZXh0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmxvZygndGhyb3dpbmcgZXJyb3InKTtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZTQwMUVycm9yKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XG4gICAgaWYgKCF0aGlzLl9pc1JlZnJlc2hpbmcpIHtcbiAgICAgIHRoaXMuX2lzUmVmcmVzaGluZyA9IHRydWU7XG4gICAgICB0aGlzLl9yZWZyZXNoVG9rZW5TdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgICBjb25zb2xlLmxvZygncmVmcmVzaGluZyB0b2tlbicpO1xuICAgICAgcmV0dXJuIHRoaXMuX2F1dGgucmVmcmVzaCgpLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodG9rZW4pID0+IHtcbiAgICAgICAgICBpZiAodG9rZW4gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgIG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgICBlcnJvcjogJ0ZvcmJpZGRlbiwgcGxlYXNlIGxvZyBpbicsXG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IDQwMyxcbiAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6ICdXYXJuaW5nJyxcbiAgICAgICAgICAgICAgICAgIHVybDogcmVxdWVzdC51cmwsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lzUmVmcmVzaGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLl9hZGRUb2tlbihyZXF1ZXN0LCB0b2tlbi5hY2Nlc3MpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygncGlwaW5nIHRvIHJlZnJlc2ggdG9rZW4gc3ViamVjdCcpO1xuICAgICAgcmV0dXJuIHRoaXMuX3JlZnJlc2hUb2tlblN1YmplY3QucGlwZShcbiAgICAgICAgZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4gIT0gbnVsbCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgodG9rZW4pID0+XG4gICAgICAgICAgbmV4dC5oYW5kbGUoXG4gICAgICAgICAgICB0aGlzLl9hZGRUb2tlbihyZXF1ZXN0LCAodG9rZW4gYXMgSUp3dFJlZnJlc2hSZXNwb25zZUpzb24pLmFjY2VzcylcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYWRkVG9rZW4ocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgdG9rZW46IHN0cmluZykge1xuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgYXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __param } from "tslib";
|
|
2
2
|
import { Inject, InjectionToken } from '@angular/core';
|
|
3
3
|
import { Jwt, } from './jwt';
|
|
4
|
-
import { catchError, switchMap, tap
|
|
4
|
+
import { catchError, map, switchMap, tap } from 'rxjs/operators';
|
|
5
5
|
import { of, ReplaySubject, throwError } from 'rxjs';
|
|
6
6
|
/**
|
|
7
7
|
* DATA_API_URL: stores data api base url
|
|
@@ -9,10 +9,12 @@ import { of, ReplaySubject, throwError } from 'rxjs';
|
|
|
9
9
|
export const DATA_AUTH_PARAMS = new InjectionToken('data.auth.params');
|
|
10
10
|
export const DATA_AUTH_USER_SERVICE = new InjectionToken('data.auth.user.service');
|
|
11
11
|
let AuthServiceBase = class AuthServiceBase {
|
|
12
|
-
constructor(userService, _params, _http) {
|
|
12
|
+
constructor(userService, _params, _router, _http, _msgs) {
|
|
13
13
|
this.userService = userService;
|
|
14
14
|
this._params = _params;
|
|
15
|
+
this._router = _router;
|
|
15
16
|
this._http = _http;
|
|
17
|
+
this._msgs = _msgs;
|
|
16
18
|
this._user$ = new ReplaySubject(1);
|
|
17
19
|
this.autoLogin();
|
|
18
20
|
}
|
|
@@ -89,6 +91,7 @@ let AuthServiceBase = class AuthServiceBase {
|
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
93
|
refresh() {
|
|
94
|
+
console.log('service token refresh');
|
|
92
95
|
if (!this._token.refresh) {
|
|
93
96
|
this.logout();
|
|
94
97
|
return of(null);
|
|
@@ -97,12 +100,20 @@ let AuthServiceBase = class AuthServiceBase {
|
|
|
97
100
|
.post(this.refreshUrl, {
|
|
98
101
|
refresh: this._token.refresh,
|
|
99
102
|
})
|
|
100
|
-
.pipe(
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
.pipe(catchError((err, caught) => {
|
|
104
|
+
console.error('Token refresh error', err, caught);
|
|
105
|
+
this.logout();
|
|
106
|
+
this._msgs.warning('Vous devez vous reconnecter');
|
|
107
|
+
this._router.navigate(this._params.loginRoute);
|
|
108
|
+
return of(null);
|
|
109
|
+
}), tap((tok) => {
|
|
110
|
+
if (tok) {
|
|
111
|
+
this._token = new Jwt({
|
|
112
|
+
access: tok.access,
|
|
113
|
+
refresh: this._token.refresh,
|
|
114
|
+
});
|
|
115
|
+
this.saveAuth();
|
|
116
|
+
}
|
|
106
117
|
}));
|
|
107
118
|
}
|
|
108
119
|
};
|
|
@@ -111,4 +122,4 @@ AuthServiceBase = __decorate([
|
|
|
111
122
|
__param(1, Inject(DATA_AUTH_PARAMS))
|
|
112
123
|
], AuthServiceBase);
|
|
113
124
|
export { AuthServiceBase };
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFjLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBSUwsR0FBRyxHQUNKLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVdqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUNoRCxrQkFBa0IsQ0FDbkIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDekIsQ0FBQztBQUVLLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFTMUIsWUFDeUMsV0FBd0IsRUFDN0IsT0FBbUIsRUFDN0MsS0FBaUI7UUFGYyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQzdDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFObkIsV0FBTSxHQUFHLElBQUksYUFBYSxDQUFjLENBQUMsQ0FBQyxDQUFDO1FBUWpELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUks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QUEwQixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzlDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQWlCO1NBQ3ZDLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksR0FBRyxDQUFDO2dCQUNwQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07Z0JBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQVE7YUFDOUIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0NBQ0YsQ0FBQTtBQTlIWSxlQUFlO0lBVXZCLFdBQUEsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUE7SUFDOUIsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtHQVhoQixlQUFlLENBOEgzQjtTQTlIWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSUp3dEJhc2VEYXRhLFxuICBJSnd0UmVmcmVzaFJlc3BvbnNlSnNvbixcbiAgSUp3dFJlc3BvbnNlSnNvbixcbiAgSnd0LFxufSBmcm9tICcuL2p3dCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc3dpdGNoTWFwLCB0YXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoUGFyYW1zIHtcbiAgdG9rZW5Vcmw6IHN0cmluZztcbiAgdG9rZW5SZWZyZXNoVXJsOiBzdHJpbmc7XG4gIGxvZ2luRmllbGQ6IHN0cmluZztcbiAgcGFzc3dvcmRGaWVsZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIERBVEFfQVBJX1VSTDogc3RvcmVzIGRhdGEgYXBpIGJhc2UgdXJsXG4gKi9cbmV4cG9ydCBjb25zdCBEQVRBX0FVVEhfUEFSQU1TID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhQYXJhbXM+KFxuICAnZGF0YS5hdXRoLnBhcmFtcydcbik7XG5leHBvcnQgY29uc3QgREFUQV9BVVRIX1VTRVJfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb2xsZWN0aW9uPGFueT4+KFxuICAnZGF0YS5hdXRoLnVzZXIuc2VydmljZSdcbik7XG5cbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZUJhc2U8XG4gIFVzZXIgZXh0ZW5kcyBEYXRhTW9kZWwsXG4gIFVzZXJTZXJ2aWNlIGV4dGVuZHMgQ29sbGVjdGlvbjxVc2VyPixcbiAgVXNlckRhdGEgZXh0ZW5kcyBJSnd0QmFzZURhdGFcbj4ge1xuICBwcml2YXRlIF91c2VyITogVXNlcjtcbiAgcHJpdmF0ZSBfdXNlciQgPSBuZXcgUmVwbGF5U3ViamVjdDxVc2VyIHwgbnVsbD4oMSk7XG4gIHByaXZhdGUgX3Rva2VuITogSnd0PFVzZXJEYXRhPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERBVEFfQVVUSF9VU0VSX1NFUlZJQ0UpIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgQEluamVjdChEQVRBX0FVVEhfUEFSQU1TKSBwcml2YXRlIF9wYXJhbXM6IEF1dGhQYXJhbXMsXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudFxuICApIHtcbiAgICB0aGlzLmF1dG9Mb2dpbigpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0Fub255bW91cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuX3Rva2VuLmFjY2VzcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWNjZXNzVG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuLmFjY2VzcyA/IHRoaXMuX3Rva2VuLmFjY2VzcyA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW4ucmVmcmVzaCA/IHRoaXMuX3Rva2VuLnJlZnJlc2ggOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50VXNlcigpOiBVc2VyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3VzZXIgJiYgdGhpcy5fdXNlci5pZCA/IHRoaXMuX3VzZXIgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50VXNlciQoKTogT2JzZXJ2YWJsZTxVc2VyIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl91c2VyJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVmcmVzaFVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLl9wYXJhbXMudG9rZW5SZWZyZXNoVXJsfWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxvZ2luVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuX3BhcmFtcy50b2tlblVybH1gO1xuICB9XG5cbiAgcHVibGljIGxvZ291dCgpOiB2b2lkIHtcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnYXV0aCcpO1xuICAgIHRoaXMuX3Rva2VuID0gbmV3IEp3dCgpO1xuICAgIHRoaXMuX3VzZXIgPSB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZSgpO1xuICAgIHRoaXMuX3VzZXIkLm5leHQobnVsbCk7XG4gIH1cblxuICBwdWJsaWMgYXV0b0xvZ2luKCk6IHZvaWQge1xuICAgIGNvbnN0IGxvY2FsQXV0aCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdhdXRoJyk7XG4gICAgaWYgKCFsb2NhbEF1dGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmxvZ291dCgpO1xuICAgIH1cbiAgICBjb25zdCB7IHVzZXIsIHRva2VuIH0gPSBKU09OLnBhcnNlKGxvY2FsQXV0aCk7XG4gICAgdGhpcy5fdG9rZW4gPSBuZXcgSnd0KHRva2VuKTtcbiAgICB0aGlzLl91c2VyID0gdGhpcy51c2VyU2VydmljZS5jcmVhdGUodXNlcik7XG4gICAgdGhpcy5fdXNlciQubmV4dCh0aGlzLl91c2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2dpbih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgcGF5bG9hZDogeyBbX2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIHBheWxvYWRbdGhpcy5fcGFyYW1zLmxvZ2luRmllbGRdID0gdXNlcm5hbWU7XG4gICAgcGF5bG9hZFt0aGlzLl9wYXJhbXMucGFzc3dvcmRGaWVsZF0gPSBwYXNzd29yZDtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PElKd3RSZXNwb25zZUpzb24+KHRoaXMubG9naW5VcmwsIHBheWxvYWQpLnBpcGUoXG4gICAgICB0YXAoKHRvaykgPT4ge1xuICAgICAgICB0aGlzLl90b2tlbiA9IG5ldyBKd3QodG9rKTtcbiAgICAgICAgdGhpcy5zYXZlQXV0aCgpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fdG9rZW4uZGF0YSAmJiB0aGlzLl90b2tlbi5kYXRhLnVzZXJfaWQpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5mZXRjaCh0aGlzLl90b2tlbi5kYXRhIS51c2VyX2lkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnSW52YWxpZCB0b2tlbicpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRhcCgodXNlcjogVXNlcikgPT4ge1xuICAgICAgICB0aGlzLl91c2VyID0gdXNlcjtcbiAgICAgICAgdGhpcy5zYXZlQXV0aCgpO1xuICAgICAgfSksXG4gICAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZUF1dGgoKSB7XG4gICAgaWYgKHRoaXMuaXNBbm9ueW1vdXMpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdhdXRoJyk7XG4gICAgICB0aGlzLl91c2VyJC5uZXh0KG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgJ2F1dGgnLFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgdXNlcjogdGhpcy5fdXNlci50b0pzb24oKSxcbiAgICAgICAgICB0b2tlbjogdGhpcy5fdG9rZW4udG9Kc29uKCksXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5fdXNlciQubmV4dCh0aGlzLl91c2VyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpOiBPYnNlcnZhYmxlPElKd3RSZWZyZXNoUmVzcG9uc2VKc29uIHwgbnVsbD4ge1xuICAgIGlmICghdGhpcy5fdG9rZW4ucmVmcmVzaCkge1xuICAgICAgdGhpcy5sb2dvdXQoKTtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2h0dHBcbiAgICAgIC5wb3N0PElKd3RSZWZyZXNoUmVzcG9uc2VKc29uPih0aGlzLnJlZnJlc2hVcmwsIHtcbiAgICAgICAgcmVmcmVzaDogdGhpcy5fdG9rZW4ucmVmcmVzaCBhcyBzdHJpbmcsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgodG9rKSA9PiB7XG4gICAgICAgICAgdGhpcy5fdG9rZW4gPSBuZXcgSnd0KHtcbiAgICAgICAgICAgIGFjY2VzczogdG9rLmFjY2VzcyxcbiAgICAgICAgICAgIHJlZnJlc2g6IHRoaXMuX3Rva2VuLnJlZnJlc2ghLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuc2F2ZUF1dGgoKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2F1dGgvYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBSUwsR0FBRyxHQUNKLE1BQU0sT0FBTyxDQUFDO0FBRWYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWNqRTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUNoRCxrQkFBa0IsQ0FDbkIsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLElBQUksY0FBYyxDQUN0RCx3QkFBd0IsQ0FDekIsQ0FBQztBQUVLLElBQU0sZUFBZSxHQUFyQixNQUFNLGVBQWU7SUFTMUIsWUFDeUMsV0FBd0IsRUFDN0IsT0FBbUIsRUFDN0MsT0FBZSxFQUNmLEtBQWlCLEVBQ2pCLEtBQXlCO1FBSk0sZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUM3QyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFvQjtRQVIzQixXQUFNLEdBQUcsSUFBSSxhQUFhLENBQWMsQ0FBQyxDQUFDLENBQUM7UUFVakQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzdCLENB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QUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSUp3dEJhc2VEYXRhLFxuICBJSnd0UmVmcmVzaFJlc3BvbnNlSnNvbixcbiAgSUp3dFJlc3BvbnNlSnNvbixcbiAgSnd0LFxufSBmcm9tICcuL2p3dCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RhdGEvZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBEYXRhTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi9tZXNzYWdlcy9tZXNzYWdlLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhQYXJhbXMge1xuICB0b2tlblVybDogc3RyaW5nO1xuICB0b2tlblJlZnJlc2hVcmw6IHN0cmluZztcbiAgbG9naW5GaWVsZDogc3RyaW5nO1xuICBwYXNzd29yZEZpZWxkOiBzdHJpbmc7XG4gIGxvZ2luUm91dGU6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIERBVEFfQVBJX1VSTDogc3RvcmVzIGRhdGEgYXBpIGJhc2UgdXJsXG4gKi9cbmV4cG9ydCBjb25zdCBEQVRBX0FVVEhfUEFSQU1TID0gbmV3IEluamVjdGlvblRva2VuPEF1dGhQYXJhbXM+KFxuICAnZGF0YS5hdXRoLnBhcmFtcydcbik7XG5leHBvcnQgY29uc3QgREFUQV9BVVRIX1VTRVJfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb2xsZWN0aW9uPGFueT4+KFxuICAnZGF0YS5hdXRoLnVzZXIuc2VydmljZSdcbik7XG5cbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZUJhc2U8XG4gIFVzZXIgZXh0ZW5kcyBEYXRhTW9kZWwsXG4gIFVzZXJTZXJ2aWNlIGV4dGVuZHMgQ29sbGVjdGlvbjxVc2VyPixcbiAgVXNlckRhdGEgZXh0ZW5kcyBJSnd0QmFzZURhdGFcbj4ge1xuICBwcml2YXRlIF91c2VyITogVXNlcjtcbiAgcHJpdmF0ZSBfdXNlciQgPSBuZXcgUmVwbGF5U3ViamVjdDxVc2VyIHwgbnVsbD4oMSk7XG4gIHByaXZhdGUgX3Rva2VuITogSnd0PFVzZXJEYXRhPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERBVEFfQVVUSF9VU0VSX1NFUlZJQ0UpIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2UsXG4gICAgQEluamVjdChEQVRBX0FVVEhfUEFSQU1TKSBwcml2YXRlIF9wYXJhbXM6IEF1dGhQYXJhbXMsXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIF9tc2dzOiBEYXRhTWVzc2FnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5hdXRvTG9naW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNBbm9ueW1vdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl90b2tlbi5hY2Nlc3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjY2Vzc1Rva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl90b2tlbi5hY2Nlc3MgPyB0aGlzLl90b2tlbi5hY2Nlc3MgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCByZWZyZXNoVG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuLnJlZnJlc2ggPyB0aGlzLl90b2tlbi5yZWZyZXNoIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudFVzZXIoKTogVXNlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl91c2VyICYmIHRoaXMuX3VzZXIuaWQgPyB0aGlzLl91c2VyIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudFVzZXIkKCk6IE9ic2VydmFibGU8VXNlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fdXNlciQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlZnJlc2hVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5fcGFyYW1zLnRva2VuUmVmcmVzaFVybH1gO1xuICB9XG5cbiAgcHVibGljIGdldCBsb2dpblVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLl9wYXJhbXMudG9rZW5Vcmx9YDtcbiAgfVxuXG4gIHB1YmxpYyBsb2dvdXQoKTogdm9pZCB7XG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ2F1dGgnKTtcbiAgICB0aGlzLl90b2tlbiA9IG5ldyBKd3QoKTtcbiAgICB0aGlzLl91c2VyID0gdGhpcy51c2VyU2VydmljZS5jcmVhdGUoKTtcbiAgICB0aGlzLl91c2VyJC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIGF1dG9Mb2dpbigpOiB2b2lkIHtcbiAgICBjb25zdCBsb2NhbEF1dGggPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYXV0aCcpO1xuICAgIGlmICghbG9jYWxBdXRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2dvdXQoKTtcbiAgICB9XG4gICAgY29uc3QgeyB1c2VyLCB0b2tlbiB9ID0gSlNPTi5wYXJzZShsb2NhbEF1dGgpO1xuICAgIHRoaXMuX3Rva2VuID0gbmV3IEp3dCh0b2tlbik7XG4gICAgdGhpcy5fdXNlciA9IHRoaXMudXNlclNlcnZpY2UuY3JlYXRlKHVzZXIpO1xuICAgIHRoaXMuX3VzZXIkLm5leHQodGhpcy5fdXNlcik7XG4gIH1cblxuICBwdWJsaWMgbG9naW4odXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHBheWxvYWQ6IHsgW19pbmRleDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBwYXlsb2FkW3RoaXMuX3BhcmFtcy5sb2dpbkZpZWxkXSA9IHVzZXJuYW1lO1xuICAgIHBheWxvYWRbdGhpcy5fcGFyYW1zLnBhc3N3b3JkRmllbGRdID0gcGFzc3dvcmQ7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxJSnd0UmVzcG9uc2VKc29uPih0aGlzLmxvZ2luVXJsLCBwYXlsb2FkKS5waXBlKFxuICAgICAgdGFwKCh0b2spID0+IHtcbiAgICAgICAgdGhpcy5fdG9rZW4gPSBuZXcgSnd0KHRvayk7XG4gICAgICAgIHRoaXMuc2F2ZUF1dGgoKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3Rva2VuLmRhdGEgJiYgdGhpcy5fdG9rZW4uZGF0YS51c2VyX2lkKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuZmV0Y2godGhpcy5fdG9rZW4uZGF0YSEudXNlcl9pZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ0ludmFsaWQgdG9rZW4nKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YXAoKHVzZXI6IFVzZXIpID0+IHtcbiAgICAgICAgdGhpcy5fdXNlciA9IHVzZXI7XG4gICAgICAgIHRoaXMuc2F2ZUF1dGgoKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNhdmVBdXRoKCkge1xuICAgIGlmICh0aGlzLmlzQW5vbnltb3VzKSB7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnYXV0aCcpO1xuICAgICAgdGhpcy5fdXNlciQubmV4dChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXG4gICAgICAgICdhdXRoJyxcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIHVzZXI6IHRoaXMuX3VzZXIudG9Kc29uKCksXG4gICAgICAgICAgdG9rZW46IHRoaXMuX3Rva2VuLnRvSnNvbigpLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuX3VzZXIkLm5leHQodGhpcy5fdXNlcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKTogT2JzZXJ2YWJsZTxJSnd0UmVmcmVzaFJlc3BvbnNlSnNvbiB8IG51bGw+IHtcbiAgICBjb25zb2xlLmxvZygnc2VydmljZSB0b2tlbiByZWZyZXNoJyk7XG4gICAgaWYgKCF0aGlzLl90b2tlbi5yZWZyZXNoKSB7XG4gICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faHR0cFxuICAgICAgLnBvc3Q8SUp3dFJlZnJlc2hSZXNwb25zZUpzb24+KHRoaXMucmVmcmVzaFVybCwge1xuICAgICAgICByZWZyZXNoOiB0aGlzLl90b2tlbi5yZWZyZXNoIGFzIHN0cmluZyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyLCBjYXVnaHQpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdUb2tlbiByZWZyZXNoIGVycm9yJywgZXJyLCBjYXVnaHQpO1xuICAgICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICAgICAgdGhpcy5fbXNncy53YXJuaW5nKCdWb3VzIGRldmV6IHZvdXMgcmVjb25uZWN0ZXInKTtcbiAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUodGhpcy5fcGFyYW1zLmxvZ2luUm91dGUpO1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgodG9rKSA9PiB7XG4gICAgICAgICAgaWYgKHRvaykge1xuICAgICAgICAgICAgdGhpcy5fdG9rZW4gPSBuZXcgSnd0KHtcbiAgICAgICAgICAgICAgYWNjZXNzOiB0b2suYWNjZXNzLFxuICAgICAgICAgICAgICByZWZyZXNoOiB0aGlzLl90b2tlbi5yZWZyZXNoISxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zYXZlQXV0aCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -84,9 +84,9 @@ export class DataBackend {
|
|
|
84
84
|
return this._cachedGet(collection, url, { headers, params });
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
DataBackend.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
88
|
-
DataBackend.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
89
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
87
|
+
DataBackend.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DataBackend, deps: [{ token: i1.HttpClient }, { token: i2.TransferState }, { token: PLATFORM_ID }, { token: DATA_API_URL }, { token: DATA_MAX_TRANSFERSTATE_TIME, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
+
DataBackend.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DataBackend, providedIn: 'root' });
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DataBackend, decorators: [{
|
|
90
90
|
type: Injectable,
|
|
91
91
|
args: [{
|
|
92
92
|
providedIn: 'root',
|
|
@@ -145,6 +145,7 @@ export class DataModel {
|
|
|
145
145
|
}
|
|
146
146
|
/**
|
|
147
147
|
* Set field value. If check is true, only set value if all validators pass.
|
|
148
|
+
* Skip setting field value if manager computed flag is true.
|
|
148
149
|
*
|
|
149
150
|
* The validation result is returned.
|
|
150
151
|
*
|
|
@@ -154,6 +155,9 @@ export class DataModel {
|
|
|
154
155
|
* @return null or ValidationError
|
|
155
156
|
*/
|
|
156
157
|
setFV(field, value, check = false) {
|
|
158
|
+
if (this.FM(field).computed) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
157
161
|
if (check) {
|
|
158
162
|
const fc = new FormControl(value);
|
|
159
163
|
for (const v of this.FM(field).validators) {
|
|
@@ -284,4 +288,4 @@ DataModel.__name = '';
|
|
|
284
288
|
// return out.join(' : ');
|
|
285
289
|
// }
|
|
286
290
|
// }
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2RhdGEtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHFCQUFxQixHQUN0QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBaUJwQjs7Ozs7O09BTUc7SUFDSCxZQUFzQixLQUF1QjtRQUF2QixVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUMzQyxNQUFNLEVBQUUsR0FDTixPQUFPLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25ELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1Asa0VBQWtFO1lBQ2xFLE1BQU0sSUFBSSxLQUFLLENBQ2IseUZBQXlGLENBQzFGLENBQUM7U0FDSDtRQUNELG9EQUFvRDtRQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztRQUM1RCxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzNDLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN6QixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLE1BQU0sQ0FBQyxH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WCxvQkFBb0I7QUFDcEIsUUFBUTtBQUNSLG1CQUFtQjtBQUNuQixNQUFNO0FBQ04sRUFBRTtBQUNGLGdEQUFnRDtBQUNoRCxzQkFBc0I7QUFDdEIsaURBQWlEO0FBQ2pELE1BQU07QUFDTixFQUFFO0FBQ0YsZ0NBQWdDO0FBQ2hDLGdDQUFnQztBQUNoQyxrQ0FBa0M7QUFDbEMsZ0RBQWdEO0FBQ2hELGlDQUFpQztBQUNqQyxpRUFBaUU7QUFDakUsbUJBQW1CO0FBQ25CLHVDQUF1QztBQUN2QyxZQUFZO0FBQ1osVUFBVTtBQUNWLFFBQVE7QUFDUixnQ0FBZ0M7QUFDaEMsbUVBQW1FO0FBQ25FLGVBQWU7QUFDZixzQ0FBc0M7QUFDdEMsUUFBUTtBQUNSLEVBQUU7QUFDRiw4QkFBOEI7QUFDOUIsTUFBTTtBQUNOLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlRmllbGRNYW5hZ2VyLFxuICBJRmllbGRTdG9yZWRNZXRhZGF0YSxcbiAgUFJPUEVSVFlfTUVUQURBVEFfS0VZLFxufSBmcm9tICcuL2ZpZWxkcy9iYXNlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9kYXRhLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBEYXRhTW9kZWxGaWVsZHMgPSBSZWFkb25seTxNYXA8c3RyaW5nLCBJRmllbGRTdG9yZWRNZXRhZGF0YTxhbnk+Pj47XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgZGF0YSBtb2RlbC5cbiAqXG4gKiBFYWNoIGNsYXNzIG11c3QgaGF2ZSBhIHN0YXRpYyBfX25hbWVcbiAqIHByaW1hcnkgZmllbGQgaXMgZ2l2ZW4gd2l0aCBpZCBmaWVsZC5cbiAqXG4gKiBTb21lIG1ldGhvZHMgYXJlIHByb3ZpZGVkIHRvIGJlIHVzZWQgd2l0aCBhIGNvbGxlY3Rpb24sIG1vc3RseSBmb3IgQ1JVRCBvcGVyYXRpb25zLlxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFNb2RlbCB7XG4gIC8qKlxuICAgKiBkYXRhIG1vZGVsIG5hbWVcbiAgICogdGhpcyBuZWVkIHRvIGJlIGdpdmVuIGJlY2F1c2UgY2xhc3MgbmFtZSBpcyBub3QgZnVsbHkgYXZhaWxhYmxlIGJlY2F1c2Ugb2YgbWluaWZpY2F0aW9uLlxuICAgKi9cbiAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBfX25hbWU6IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBQcmltYXJ5IGZpZWxkOyByZWFkb25seTsgbXVzdCBiZSBjcmVhdGVkIGFuZCBhdXRvIGluY3JlbWVudGVkIG9uIGRiIHNpZGUuXG4gICAqL1xuICAvLyBAcHJpbWFyeUZpZWxkKHtcbiAgLy8gICBkZXNjcmlwdGlvbjogJ0lEJyxcbiAgLy8gICBoZWxwOiAnSWRlbnRpZmlhbnQgcHJpbWFpcmUnLFxuICAvLyB9KVxuICBwdWJsaWMgaWQhOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgX0Y6IERhdGFNb2RlbEZpZWxkcztcblxuICAvKipcbiAgICogQ29uc3RydWN0b3IgZm9yIGRhdGEgbW9kZWwgaW5zdGFuY2UuXG4gICAqIEEgbWF0Y2hpbmcgY29sbGVjdGlvbiBjYW4gYmUgcHJvdmlkZWQuXG4gICAqIF9fX2ZpZWxkcyByZWFkb25seSBwcm9wZXJ0eSBpcyBhbHNvIHBvcHVsYXRlZCBmcm9tIFJlZmxlY3RlZCBtZXRhZGF0YVxuICAgKlxuICAgKiBAcGFyYW0gX2NvbGwgY29sbGVjdGlvbiB1c2VkIGZvciBDUlVELCBldGMuLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIF9jb2xsPzogQ29sbGVjdGlvbjxhbnk+KSB7XG4gICAgY29uc3QgbWQ6IE1hcDxzdHJpbmcsIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT4+IHwgdW5kZWZpbmVkID1cbiAgICAgIFJlZmxlY3QuZ2V0TWV0YWRhdGEoUFJPUEVSVFlfTUVUQURBVEFfS0VZLCB0aGlzKTtcbiAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgICBpZiAoIW1kKSB7XG4gICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBvY2N1ciBhcyBhbGwgZGF0YW1vZGVsIGhhdmUgYXQgbGVhc3QgaWQgZmllbGRcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ05vIHByb3BlcnR5IG1ldGFkYXRhIGZvdW5kIGZvciB0aGlzIG9iamVjdDsgaXMgdGhlcmUgYSBwcm9wZXJ0eSBpbiBjdXJyZW50IGNvbGxlY3Rpb24gPydcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIEdldCBhbGwgZmllbGRzIGZyb20gY3VycmVudCBjbGFzcyBhbmQgaXRzIHBhcmVudHNcbiAgICBjb25zdCBmaWVsZHMgPSBuZXcgTWFwPHN0cmluZywgSUZpZWxkU3RvcmVkTWV0YWRhdGE8YW55Pj4oKTtcbiAgICBsZXQgcGFyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpO1xuICAgIHdoaWxlIChwYXJlbnQuY29uc3RydWN0b3IubmFtZSAhPT0gJ09iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBtZC5rZXlzKCkpIHtcbiAgICAgICAgY29uc3QgZmllbGROYW1lID0gZi5zcGxpdCgnX18nKVsxXTtcbiAgICAgICAgaWYgKGZpZWxkcy5oYXMoZmllbGROYW1lKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmLmluZGV4T2YocGFyZW50LmNvbnN0cnVjdG9yLl9fbmFtZSArICdfXycpID09PSAwKSB7XG4gICAgICAgICAgZmllbGRzLnNldChmaWVsZE5hbWUsIG1kLmdldChmKSEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocGFyZW50KTtcbiAgICB9XG4gICAgdGhpcy5fRiA9IE9iamVjdC5mcmVlemUoZmllbGRzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgX2NvbGxlY3Rpb24oKTogQ29sbGVjdGlvbjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY29sbCBhcyBDb2xsZWN0aW9uPGFueT47XG4gIH1cblxuICBwdWJsaWMgc2V0IF9jb2xsZWN0aW9uKGNvbGw6IENvbGxlY3Rpb248YW55Pikge1xuICAgIHRoaXMuX2NvbGwgPSBjb2xsO1xuICB9XG5cbiAgLyoqXG4gICAqICBIYXNoTWFwIG9mIGZpZWxkcyBtZXRhZGF0YSAodHlwZSwgbmFtZSwgbWFuYWdlciwgZXRjLi4uKVxuICAgKi9cbiAgcHVibGljIGdldCBGKCk6IERhdGFNb2RlbEZpZWxkcyB7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gICAgaWYgKCF0aGlzLl9GKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YSBtb2RlbCwgZmllbGRzIG1ldGFkYXRhIGlzIG1pc3NpbmcnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX0Y7XG4gIH1cblxuICAvLyBSZXR1cm4gZmllbGQgbmFtZXMgaXRlcmF0b3JcbiAgcHVibGljIGdldCBGTigpOiBJdGVyYWJsZUl0ZXJhdG9yPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLkYua2V5cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIG1vZGVsIGRhdGEgZnJvbSBqc29uLlxuICAgKiBJZiBwYXJ0aWFsIGlzIHRydWUsIG9ubHkgZmllbGRzIHdpdGggbWF0Y2hpbmcgZGF0YSBrZXlzIHdpbGwgYmUgbG9hZGVkXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqL1xuICBwdWJsaWMgZnJvbUpzb24oXG4gICAgZGF0YTogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9LFxuICAgIHsgcGFydGlhbCwgY2hlY2sgfTogeyBwYXJ0aWFsPzogYm9vbGVhbjsgY2hlY2s/OiBib29sZWFuIH0gPSB7XG4gICAgICBwYXJ0aWFsOiBmYWxzZSxcbiAgICAgIGNoZWNrOiBmYWxzZSxcbiAgICB9XG4gICk6IG51bGwgfCBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICBjb25zdCBlcnJvcnM6IHsgW2luZGV4OiBzdHJpbmddOiBudWxsIHwgVmFsaWRhdGlvbkVycm9ycyB9ID0ge307XG4gICAgbGV0IGhhdmVFcnJvciA9IGZhbHNlO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLkZOKSB7XG4gICAgICBpZiAoIXBhcnRpYWwgfHwgKHBhcnRpYWwgJiYgT2JqZWN0LmtleXMoZGF0YSkuaW5kZXhPZihmKSAhPT0gLTEpKSB7XG4gICAgICAgIGNvbnN0IGZlcnIgPSB0aGlzLnNldEZWKGYsIHRoaXMuRk0oZikuZnJvbUpzb24oZGF0YVtmXSksIGNoZWNrKTtcbiAgICAgICAgaWYgKGZlcnIgIT09IG51bGwpIHtcbiAgICAgICAgICBlcnJvcnNbZl0gPSBmZXJyO1xuICAgICAgICAgIGhhdmVFcnJvciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhhdmVFcnJvciA/IGVycm9ycyA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgdG9Kc29uKGZpZWxkcz86IHN0cmluZyB8IHN0cmluZ1tdKTogYW55IHtcbiAgICBpZiAoZmllbGRzICYmICFBcnJheS5pc0FycmF5KGZpZWxkcykpIHtcbiAgICAgIGZpZWxkcyA9IFtmaWVsZHNdO1xuICAgIH1cbiAgICBjb25zdCBvdXQ6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGNvbnN0IGZsID0gdGhpcy5GO1xuICAgIGZvciAoY29uc3QgZiBvZiB0aGlzLkZOKSB7XG4gICAgICBjb25zdCBtZ3IgPSB0aGlzLkZNKGYpO1xuICAgICAgaWYgKCFmaWVsZHMgfHwgZmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBpZiAobWdyLnJlYWRvbmx5KSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgb3V0W2ZdID0gZmwuZ2V0KGYpIS5tYW5hZ2VyLnRvSnNvbih0aGlzLkZWKGYpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChmaWVsZHMuaW5kZXhPZihmKSAhPT0gLTEpIHtcbiAgICAgICAgICBvdXRbZl0gPSBmbC5nZXQoZikhLm1hbmFnZXIudG9Kc29uKHRoaXMuRlYoZikpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uPFQsIFJUIGV4dGVuZHMgeyBbaW5kZXg6IHN0cmluZ106IGFueSB9PihcbiAgICBtZXRob2Q6ICdQT1NUJyB8ICdQQVRDSCcgfCAnR0VUJyB8ICdERUxFVEUnIHwgJ1BVVCcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHtcbiAgICAgIGJvZHkgPSB1bmRlZmluZWQsXG4gICAgICB1cGRhdGUgPSBmYWxzZSxcbiAgICAgIHVwZGF0ZVBhcnRpYWwgPSB0cnVlLFxuICAgICAgdXBkYXRlQ2hlY2sgPSBmYWxzZSxcbiAgICAgIC8vIHVwZGF0ZVJhaXNlID0gZmFsc2UsXG4gICAgICBwYXJhbXMgPSB7fSxcbiAgICAgIGhlYWRlcnMgPSB7fSxcbiAgICB9OiB7XG4gICAgICBib2R5PzogeyBbX2luZGV4OiBzdHJpbmddOiBhbnkgfTtcbiAgICAgIHVwZGF0ZT86IGJvb2xlYW47XG4gICAgICB1cGRhdGVQYXJ0aWFsPzogYm9vbGVhbjtcbiAgICAgIHVwZGF0ZUNoZWNrPzogYm9vbGVhbjtcbiAgICAgIC8vIHVwZGF0ZVJhaXNlPzogYm9vbGVhbjtcbiAgICAgIHBhcmFtcz86IHsgW19pbmRleDogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgICBoZWFkZXJzPzogeyBbX2luZGV4OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICB9ID0ge31cbiAgKTogT2JzZXJ2YWJsZTxSVD4ge1xuICAgIGlmICh0aGlzLl9jb2xsID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTWlzc2luZyBjb2xsZWN0aW9uJykpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY29sbFxuICAgICAgLmFjdGlvbjxSVD4odGhpcywgbWV0aG9kLCBuYW1lLCB7XG4gICAgICAgIGJvZHksXG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmZyb21Kc29uKHJlc3VsdCwge1xuICAgICAgICAgICAgICBwYXJ0aWFsOiB1cGRhdGVQYXJ0aWFsLFxuICAgICAgICAgICAgICBjaGVjazogdXBkYXRlQ2hlY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8vIENhbGxlZCBvbiBtb2RlbCwgcmV0dXJucyB0aGUgbWFuYWdlciBmb3IgYSBmaWVsZC5cbiAgcHVibGljIEZNPEZUPihmaWVsZDogc3RyaW5nKTogQmFzZUZpZWxkTWFuYWdlcjxGVD4ge1xuICAgIGlmICh0aGlzLkYuaGFzKGZpZWxkKSkge1xuICAgICAgcmV0dXJuIHRoaXMuRi5nZXQoZmllbGQpIS5tYW5hZ2VyO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHtmaWVsZH0gbm90IGZvdW5kIGluICR7T2JqZWN0LmtleXModGhpcy5GKS5qb2luKCcsJyl9IG1vZGVsICR7dGhpc31gXG4gICAgKTtcbiAgfVxuXG4gIC8vIFJldHVybiBmaWVsZCB2YWx1ZSwgd2l0aG91dCB0eXBpbmdcbiAgcHVibGljIEZWPEZUPihmaWVsZDogc3RyaW5nKTogRlQge1xuICAgIHJldHVybiAodGhpcyBhcyBhbnkpW2ZpZWxkXSBhcyBGVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgZmllbGQgdmFsdWUuIElmIGNoZWNrIGlzIHRydWUsIG9ubHkgc2V0IHZhbHVlIGlmIGFsbCB2YWxpZGF0b3JzIHBhc3MuXG4gICAqXG4gICAqIFRoZSB2YWxpZGF0aW9uIHJlc3VsdCBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogQHBhcmFtIGZpZWxkIGZpZWxkIG5hbWVcbiAgICogQHBhcmFtIHZhbHVlIGZpZWxkIHZhbHVlZFxuICAgKiBAcGFyYW0gY2hlY2sgZGVmYXVsdCBmYWxzZVxuICAgKiBAcmV0dXJuIG51bGwgb3IgVmFsaWRhdGlvbkVycm9yXG4gICAqL1xuICBwdWJsaWMgc2V0RlY8RlQ+KFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgdmFsdWU6IEZULFxuICAgIGNoZWNrOiBib29sZWFuID0gZmFsc2VcbiAgKTogbnVsbCB8IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGlmIChjaGVjaykge1xuICAgICAgY29uc3QgZmMgPSBuZXcgRm9ybUNvbnRyb2wodmFsdWUpO1xuXG4gICAgICBmb3IgKGNvbnN0IHYgb2YgdGhpcy5GTShmaWVsZCkudmFsaWRhdG9ycykge1xuICAgICAgICBjb25zdCB2YWwgPSB2KGZjKTtcbiAgICAgICAgaWYgKHZhbCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IodmFsKTtcbiAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICh0aGlzIGFzIGFueSlbZmllbGRdID0gdmFsdWU7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBDYWxsZWQgb24gbW9kZWwgd2l0aCBhIGxpc3Qgb2YgZmllbGRzLCByZXR1cm5zIGEgRm9ybUdyb3VwIHdpdGhcbiAgLy8gdGhlc2UgZmllbGRzLCBvciBvbmx5IHRoZSBmb3JtIGNvbnRyb2wgZm9yIG9uZSBmaWVsZC5cbiAgcHVibGljIEZDKCk6IEZvcm1Hcm91cDtcbiAgcHVibGljIEZDKGZpZWxkOiBzdHJpbmcpOiBGb3JtQ29udHJvbDtcbiAgcHVibGljIEZDKGZpZWxkOiBzdHJpbmdbXSk6IEZvcm1Hcm91cDtcbiAgcHVibGljIEZDKGZpZWxkPzogc3RyaW5nIHwgc3RyaW5nW10pOiBGb3JtQ29udHJvbCB8IEZvcm1Hcm91cCB7XG4gICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGZpZWxkID0gQXJyYXkuZnJvbSh0aGlzLkZOKS5maWx0ZXIoKG4pID0+ICF0aGlzLkZNKG4pLnJlYWRvbmx5KTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQpKSB7XG4gICAgICBjb25zdCBmZzogeyBbaW5kZXg6IHN0cmluZ106IEZvcm1Db250cm9sIH0gPSB7fTtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBmaWVsZCkge1xuICAgICAgICBmZ1tmXSA9IHRoaXMuRkMoZikgYXMgRm9ybUNvbnRyb2w7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChmZyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLkZNKGZpZWxkKS5mb3JtQ29udHJvbCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKFxuICAgIHsgdXBkYXRlTW9kZWwgPSB0cnVlIH06IHsgdXBkYXRlTW9kZWw/OiBib29sZWFuIH0gPSB7XG4gICAgICB1cGRhdGVNb2RlbDogdHJ1ZSxcbiAgICB9XG4gICk6IE9ic2VydmFibGU8dGhpcz4ge1xuICAgIGlmICh0aGlzLl9jb2xsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29sbC5zYXZlKHRoaXMsIHsgdXBkYXRlTW9kZWwgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTWlzc2luZyBjb2xsZWN0aW9uJykpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZShcbiAgICBmaWVsZHM6IHN0cmluZ1tdID0gW10sXG4gICAgeyB1cGRhdGVNb2RlbCA9IHRydWUgfTogeyB1cGRhdGVNb2RlbD86IGJvb2xlYW4gfSA9IHtcbiAgICAgIHVwZGF0ZU1vZGVsOiB0cnVlLFxuICAgIH1cbiAgKTogT2JzZXJ2YWJsZTx0aGlzPiB7XG4gICAgaWYgKHRoaXMuX2NvbGwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jb2xsLnVwZGF0ZSh0aGlzLCBmaWVsZHMsIHsgdXBkYXRlTW9kZWwgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTWlzc2luZyBjb2xsZWN0aW9uJykpO1xuICB9XG59XG5cbi8vXG4vLyBleHBvcnQgY2xhc3MgVHJlZURhdGFNb2RlbCBleHRlbmRzIERhdGFNb2RlbCB7XG4vLyAgIHN0YXRpYyBvdmVycmlkZSBfX25hbWUgPSAnVHJlZURhdGFNb2RlbCc7XG4vLyAgIEBkZXRhaWxzRmllbGQoe1xuLy8gICAgIG1vZGVsOiB0aGlzLFxuLy8gICAgIG1hbnk6IHRydWUsXG4vLyAgICAgZGVzY3JpcHRpb246ICdQYXJlbnRzJyxcbi8vICAgfSlcbi8vICAgcHVibGljIHBhcmVudHNfZGV0YWlscz86IHRoaXNbXTtcbi8vXG4vLyAgIEBmb3JlaWduS2V5RmllbGQoe1xuLy8gICAgIHJlcXVpcmVkOiBmYWxzZSxcbi8vICAgICBkZXNjcmlwdGlvbjogJ1N0cnVjdHVyZSBwYXJlbnRlJyxcbi8vICAgICByZWxhdGVkOiAnU3RydWN0dXJlJyxcbi8vICAgfSlcbi8vICAgcHVibGljIHBhcmVudD86IG51bWJlcjtcbi8vXG4vLyAgIEBpbnRlZ2VyRmllbGQoe1xuLy8gICAgIHJlcXVpcmVkOiBmYWxzZSxcbi8vICAgICByZWFkb25seTogdHJ1ZSxcbi8vICAgICBkZXNjcmlwdGlvbjogJ0lEIFRyZWUnLFxuLy8gICB9KVxuLy8gICBwdWJsaWMgdHJlZV9pZCE6IG51bWJlcjtcbi8vXG4vLyAgIEBpbnRlZ2VyRmllbGQoe1xuLy8gICAgIHJlcXVpcmVkOiBmYWxzZSxcbi8vICAgICByZWFkb25seTogdHJ1ZSxcbi8vICAgICBkZXNjcmlwdGlvbjogJ01QVFQgbGVmdCcsXG4vLyAgIH0pXG4vLyAgIHB1YmxpYyBsZnQhOiBudW1iZXI7XG4vL1xuLy8gICBAaW50ZWdlckZpZWxkKHtcbi8vICAgICByZXF1aXJlZDogZmFsc2UsXG4vLyAgICAgcmVhZG9ubHk6IHRydWUsXG4vLyAgICAgZGVzY3JpcHRpb246ICdNUFRUIHJpZ2h0Jyxcbi8vICAgfSlcbi8vICAgcHVibGljIHJnaHQhOiBudW1iZXI7XG4vL1xuLy8gICBAaW50ZWdlckZpZWxkKHtcbi8vICAgICByZXF1aXJlZDogZmFsc2UsXG4vLyAgICAgcmVhZG9ubHk6IHRydWUsXG4vLyAgICAgZGVzY3JpcHRpb246ICdOaXZlYXUgaGnDqXJhcmNoaXF1ZScsXG4vLyAgIH0pXG4vLyAgIHB1YmxpYyBsZXZlbCE6IG51bWJlcjtcbi8vXG4vLyAgIHB1YmxpYyBnZXQgcGFyZW50X2RldGFpbHMoKTogdGhpcyB8IG51bGwge1xuLy8gICAgIGlmICh0aGlzLnBhcmVudHNfZGV0YWlscykge1xuLy8gICAgICAgY29uc3Qgb3V0ID0gdGhpcy5wYXJlbnRzX2RldGFpbHNbdGhpcy5wYXJlbnRzX2RldGFpbHMubGVuZ3RoIC0gMV07XG4vLyAgICAgICBvdXQucGFyZW50c19kZXRhaWxzID0gdGhpcy5wYXJlbnRzX2RldGFpbHMuc2xpY2UoXG4vLyAgICAgICAgIDAsXG4vLyAgICAgICAgIHRoaXMucGFyZW50c19kZXRhaWxzLmxlbmd0aCAtIDFcbi8vICAgICAgICk7XG4vLyAgICAgICByZXR1cm4gb3V0O1xuLy8gICAgIH1cbi8vICAgICByZXR1cm4gbnVsbDtcbi8vICAgfVxuLy9cbi8vICAgcHVibGljIHNldCBwYXJlbnRfZGV0YWlscyhkOiB0aGlzIHwgbnVsbCkge1xuLy8gICAgIGNvbnNvbGUubG9nKGQpO1xuLy8gICAgIHRoaXMucGFyZW50c19kZXRhaWxzID0gZD8ucGFyZW50c19kZXRhaWxzO1xuLy8gICB9XG4vL1xuLy8gICBwdWJsaWMgX2Rpc3BsYXkoKTogc3RyaW5nIHtcbi8vICAgICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4vLyAgICAgaWYgKHRoaXMucGFyZW50c19kZXRhaWxzKSB7XG4vLyAgICAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy5wYXJlbnRzX2RldGFpbHMpIHtcbi8vICAgICAgICAgaWYgKChwIGFzIGFueSkuY29kZSkge1xuLy8gICAgICAgICAgIG91dC5wdXNoKGBbJHsocCBhcyBhbnkpLmNvZGV9XSAkeyhwIGFzIGFueSkubmFtZX1gKTtcbi8vICAgICAgICAgfSBlbHNlIHtcbi8vICAgICAgICAgICBvdXQucHVzaCgocCBhcyBhbnkpLm5hbWUpO1xuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICAgIGlmICgodGhpcyBhcyBhbnkpLmNvZGUpIHtcbi8vICAgICAgIG91dC5wdXNoKGBbJHsodGhpcyBhcyBhbnkpLmNvZGV9XSAkeyh0aGlzIGFzIGFueSkubmFtZX1gKTtcbi8vICAgICB9IGVsc2Uge1xuLy8gICAgICAgb3V0LnB1c2goKHRoaXMgYXMgYW55KS5uYW1lKTtcbi8vICAgICB9XG4vL1xuLy8gICAgIHJldHVybiBvdXQuam9pbignIDogJyk7XG4vLyAgIH1cbi8vIH1cbiJdfQ==
|
|
291
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2RhdGEtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHFCQUFxQixHQUN0QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxTQUFTO0lBaUJwQjs7Ozs7O09BTUc7SUFDSCxZQUFzQixLQUF1QjtRQUF2QixVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUMzQyxNQUFNLEVBQUUsR0FDTixPQUFPLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25ELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1Asa0VBQWtFO1lBQ2xFLE1BQU0sSUFBSSxLQUFLLENBQ2IseUZBQXlGLENBQzFGLENBQUM7U0FDSDtRQUNELG9EQUFvRDtRQUNwRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztRQUM1RCxJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzNDLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUN6QixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLE1BQU0sQ0FBQyxH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Q0FBK0M7QUFDL0Msa0NBQWtDO0FBQ2xDLDJFQUEyRTtBQUMzRSwwREFBMEQ7QUFDMUQsYUFBYTtBQUNiLDBDQUEwQztBQUMxQyxXQUFXO0FBQ1gsb0JBQW9CO0FBQ3BCLFFBQVE7QUFDUixtQkFBbUI7QUFDbkIsTUFBTTtBQUNOLEVBQUU7QUFDRixnREFBZ0Q7QUFDaEQsc0JBQXNCO0FBQ3RCLGlEQUFpRDtBQUNqRCxNQUFNO0FBQ04sRUFBRTtBQUNGLGdDQUFnQztBQUNoQyxnQ0FBZ0M7QUFDaEMsa0NBQWtDO0FBQ2xDLGdEQUFnRDtBQUNoRCxpQ0FBaUM7QUFDakMsaUVBQWlFO0FBQ2pFLG1CQUFtQjtBQUNuQix1Q0FBdUM7QUFDdkMsWUFBWTtBQUNaLFVBQVU7QUFDVixRQUFRO0FBQ1IsZ0NBQWdDO0FBQ2hDLG1FQUFtRTtBQUNuRSxlQUFlO0FBQ2Ysc0NBQXNDO0FBQ3RDLFFBQVE7QUFDUixFQUFFO0FBQ0YsOEJBQThCO0FBQzlCLE1BQU07QUFDTixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUZpZWxkTWFuYWdlcixcbiAgSUZpZWxkU3RvcmVkTWV0YWRhdGEsXG4gIFBST1BFUlRZX01FVEFEQVRBX0tFWSxcbn0gZnJvbSAnLi9maWVsZHMvYmFzZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgRGF0YU1vZGVsRmllbGRzID0gUmVhZG9ubHk8TWFwPHN0cmluZywgSUZpZWxkU3RvcmVkTWV0YWRhdGE8YW55Pj4+O1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGRhdGEgbW9kZWwuXG4gKlxuICogRWFjaCBjbGFzcyBtdXN0IGhhdmUgYSBzdGF0aWMgX19uYW1lXG4gKiBwcmltYXJ5IGZpZWxkIGlzIGdpdmVuIHdpdGggaWQgZmllbGQuXG4gKlxuICogU29tZSBtZXRob2RzIGFyZSBwcm92aWRlZCB0byBiZSB1c2VkIHdpdGggYSBjb2xsZWN0aW9uLCBtb3N0bHkgZm9yIENSVUQgb3BlcmF0aW9ucy5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhTW9kZWwge1xuICAvKipcbiAgICogZGF0YSBtb2RlbCBuYW1lXG4gICAqIHRoaXMgbmVlZCB0byBiZSBnaXZlbiBiZWNhdXNlIGNsYXNzIG5hbWUgaXMgbm90IGZ1bGx5IGF2YWlsYWJsZSBiZWNhdXNlIG9mIG1pbmlmaWNhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgX19uYW1lOiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogUHJpbWFyeSBmaWVsZDsgcmVhZG9ubHk7IG11c3QgYmUgY3JlYXRlZCBhbmQgYXV0byBpbmNyZW1lbnRlZCBvbiBkYiBzaWRlLlxuICAgKi9cbiAgLy8gQHByaW1hcnlGaWVsZCh7XG4gIC8vICAgZGVzY3JpcHRpb246ICdJRCcsXG4gIC8vICAgaGVscDogJ0lkZW50aWZpYW50IHByaW1haXJlJyxcbiAgLy8gfSlcbiAgcHVibGljIGlkITogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IF9GOiBEYXRhTW9kZWxGaWVsZHM7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIGZvciBkYXRhIG1vZGVsIGluc3RhbmNlLlxuICAgKiBBIG1hdGNoaW5nIGNvbGxlY3Rpb24gY2FuIGJlIHByb3ZpZGVkLlxuICAgKiBfX19maWVsZHMgcmVhZG9ubHkgcHJvcGVydHkgaXMgYWxzbyBwb3B1bGF0ZWQgZnJvbSBSZWZsZWN0ZWQgbWV0YWRhdGFcbiAgICpcbiAgICogQHBhcmFtIF9jb2xsIGNvbGxlY3Rpb24gdXNlZCBmb3IgQ1JVRCwgZXRjLi5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY29sbD86IENvbGxlY3Rpb248YW55Pikge1xuICAgIGNvbnN0IG1kOiBNYXA8c3RyaW5nLCBJRmllbGRTdG9yZWRNZXRhZGF0YTxhbnk+PiB8IHVuZGVmaW5lZCA9XG4gICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFBST1BFUlRZX01FVEFEQVRBX0tFWSwgdGhpcyk7XG4gICAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gICAgaWYgKCFtZCkge1xuICAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgb2NjdXIgYXMgYWxsIGRhdGFtb2RlbCBoYXZlIGF0IGxlYXN0IGlkIGZpZWxkXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdObyBwcm9wZXJ0eSBtZXRhZGF0YSBmb3VuZCBmb3IgdGhpcyBvYmplY3Q7IGlzIHRoZXJlIGEgcHJvcGVydHkgaW4gY3VycmVudCBjb2xsZWN0aW9uID8nXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBHZXQgYWxsIGZpZWxkcyBmcm9tIGN1cnJlbnQgY2xhc3MgYW5kIGl0cyBwYXJlbnRzXG4gICAgY29uc3QgZmllbGRzID0gbmV3IE1hcDxzdHJpbmcsIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT4+KCk7XG4gICAgbGV0IHBhcmVudCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtcbiAgICB3aGlsZSAocGFyZW50LmNvbnN0cnVjdG9yLm5hbWUgIT09ICdPYmplY3QnKSB7XG4gICAgICBmb3IgKGNvbnN0IGYgb2YgbWQua2V5cygpKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IGYuc3BsaXQoJ19fJylbMV07XG4gICAgICAgIGlmIChmaWVsZHMuaGFzKGZpZWxkTmFtZSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZi5pbmRleE9mKHBhcmVudC5jb25zdHJ1Y3Rvci5fX25hbWUgKyAnX18nKSA9PT0gMCkge1xuICAgICAgICAgIGZpZWxkcy5zZXQoZmllbGROYW1lLCBtZC5nZXQoZikhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcGFyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHBhcmVudCk7XG4gICAgfVxuICAgIHRoaXMuX0YgPSBPYmplY3QuZnJlZXplKGZpZWxkcyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IF9jb2xsZWN0aW9uKCk6IENvbGxlY3Rpb248YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbGwgYXMgQ29sbGVjdGlvbjxhbnk+O1xuICB9XG5cbiAgcHVibGljIHNldCBfY29sbGVjdGlvbihjb2xsOiBDb2xsZWN0aW9uPGFueT4pIHtcbiAgICB0aGlzLl9jb2xsID0gY29sbDtcbiAgfVxuXG4gIC8qKlxuICAgKiAgSGFzaE1hcCBvZiBmaWVsZHMgbWV0YWRhdGEgKHR5cGUsIG5hbWUsIG1hbmFnZXIsIGV0Yy4uLilcbiAgICovXG4gIHB1YmxpYyBnZXQgRigpOiBEYXRhTW9kZWxGaWVsZHMge1xuICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICAgIGlmICghdGhpcy5fRikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEgbW9kZWwsIGZpZWxkcyBtZXRhZGF0YSBpcyBtaXNzaW5nJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9GO1xuICB9XG5cbiAgLy8gUmV0dXJuIGZpZWxkIG5hbWVzIGl0ZXJhdG9yXG4gIHB1YmxpYyBnZXQgRk4oKTogSXRlcmFibGVJdGVyYXRvcjxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5GLmtleXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBtb2RlbCBkYXRhIGZyb20ganNvbi5cbiAgICogSWYgcGFydGlhbCBpcyB0cnVlLCBvbmx5IGZpZWxkcyB3aXRoIG1hdGNoaW5nIGRhdGEga2V5cyB3aWxsIGJlIGxvYWRlZFxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKi9cbiAgcHVibGljIGZyb21Kc29uKFxuICAgIGRhdGE6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSxcbiAgICB7IHBhcnRpYWwsIGNoZWNrIH06IHsgcGFydGlhbD86IGJvb2xlYW47IGNoZWNrPzogYm9vbGVhbiB9ID0ge1xuICAgICAgcGFydGlhbDogZmFsc2UsXG4gICAgICBjaGVjazogZmFsc2UsXG4gICAgfVxuICApOiBudWxsIHwgVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgY29uc3QgZXJyb3JzOiB7IFtpbmRleDogc3RyaW5nXTogbnVsbCB8IFZhbGlkYXRpb25FcnJvcnMgfSA9IHt9O1xuICAgIGxldCBoYXZlRXJyb3IgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5GTikge1xuICAgICAgaWYgKCFwYXJ0aWFsIHx8IChwYXJ0aWFsICYmIE9iamVjdC5rZXlzKGRhdGEpLmluZGV4T2YoZikgIT09IC0xKSkge1xuICAgICAgICBjb25zdCBmZXJyID0gdGhpcy5zZXRGVihmLCB0aGlzLkZNKGYpLmZyb21Kc29uKGRhdGFbZl0pLCBjaGVjayk7XG4gICAgICAgIGlmIChmZXJyICE9PSBudWxsKSB7XG4gICAgICAgICAgZXJyb3JzW2ZdID0gZmVycjtcbiAgICAgICAgICBoYXZlRXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBoYXZlRXJyb3IgPyBlcnJvcnMgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIHRvSnNvbihmaWVsZHM/OiBzdHJpbmcgfCBzdHJpbmdbXSk6IGFueSB7XG4gICAgaWYgKGZpZWxkcyAmJiAhQXJyYXkuaXNBcnJheShmaWVsZHMpKSB7XG4gICAgICBmaWVsZHMgPSBbZmllbGRzXTtcbiAgICB9XG4gICAgY29uc3Qgb3V0OiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBjb25zdCBmbCA9IHRoaXMuRjtcbiAgICBmb3IgKGNvbnN0IGYgb2YgdGhpcy5GTikge1xuICAgICAgY29uc3QgbWdyID0gdGhpcy5GTShmKTtcbiAgICAgIGlmICghZmllbGRzIHx8IGZpZWxkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaWYgKG1nci5yZWFkb25seSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIG91dFtmXSA9IGZsLmdldChmKSEubWFuYWdlci50b0pzb24odGhpcy5GVihmKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZmllbGRzLmluZGV4T2YoZikgIT09IC0xKSB7XG4gICAgICAgICAgb3V0W2ZdID0gZmwuZ2V0KGYpIS5tYW5hZ2VyLnRvSnNvbih0aGlzLkZWKGYpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgcHVibGljIGFjdGlvbjxULCBSVCBleHRlbmRzIHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfT4oXG4gICAgbWV0aG9kOiAnUE9TVCcgfCAnUEFUQ0gnIHwgJ0dFVCcgfCAnREVMRVRFJyB8ICdQVVQnLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB7XG4gICAgICBib2R5ID0gdW5kZWZpbmVkLFxuICAgICAgdXBkYXRlID0gZmFsc2UsXG4gICAgICB1cGRhdGVQYXJ0aWFsID0gdHJ1ZSxcbiAgICAgIHVwZGF0ZUNoZWNrID0gZmFsc2UsXG4gICAgICAvLyB1cGRhdGVSYWlzZSA9IGZhbHNlLFxuICAgICAgcGFyYW1zID0ge30sXG4gICAgICBoZWFkZXJzID0ge30sXG4gICAgfToge1xuICAgICAgYm9keT86IHsgW19pbmRleDogc3RyaW5nXTogYW55IH07XG4gICAgICB1cGRhdGU/OiBib29sZWFuO1xuICAgICAgdXBkYXRlUGFydGlhbD86IGJvb2xlYW47XG4gICAgICB1cGRhdGVDaGVjaz86IGJvb2xlYW47XG4gICAgICAvLyB1cGRhdGVSYWlzZT86IGJvb2xlYW47XG4gICAgICBwYXJhbXM/OiB7IFtfaW5kZXg6IHN0cmluZ106IHN0cmluZyB9O1xuICAgICAgaGVhZGVycz86IHsgW19pbmRleDogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgfSA9IHt9XG4gICk6IE9ic2VydmFibGU8UlQ+IHtcbiAgICBpZiAodGhpcy5fY29sbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ01pc3NpbmcgY29sbGVjdGlvbicpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NvbGxcbiAgICAgIC5hY3Rpb248UlQ+KHRoaXMsIG1ldGhvZCwgbmFtZSwge1xuICAgICAgICBib2R5LFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgaWYgKHVwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5mcm9tSnNvbihyZXN1bHQsIHtcbiAgICAgICAgICAgICAgcGFydGlhbDogdXBkYXRlUGFydGlhbCxcbiAgICAgICAgICAgICAgY2hlY2s6IHVwZGF0ZUNoZWNrLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvLyBDYWxsZWQgb24gbW9kZWwsIHJldHVybnMgdGhlIG1hbmFnZXIgZm9yIGEgZmllbGQuXG4gIHB1YmxpYyBGTTxGVD4oZmllbGQ6IHN0cmluZyk6IEJhc2VGaWVsZE1hbmFnZXI8RlQ+IHtcbiAgICBpZiAodGhpcy5GLmhhcyhmaWVsZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLkYuZ2V0KGZpZWxkKSEubWFuYWdlcjtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYCR7ZmllbGR9IG5vdCBmb3VuZCBpbiAke09iamVjdC5rZXlzKHRoaXMuRikuam9pbignLCcpfSBtb2RlbCAke3RoaXN9YFxuICAgICk7XG4gIH1cblxuICAvLyBSZXR1cm4gZmllbGQgdmFsdWUsIHdpdGhvdXQgdHlwaW5nXG4gIHB1YmxpYyBGVjxGVD4oZmllbGQ6IHN0cmluZyk6IEZUIHtcbiAgICByZXR1cm4gKHRoaXMgYXMgYW55KVtmaWVsZF0gYXMgRlQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGZpZWxkIHZhbHVlLiBJZiBjaGVjayBpcyB0cnVlLCBvbmx5IHNldCB2YWx1ZSBpZiBhbGwgdmFsaWRhdG9ycyBwYXNzLlxuICAgKiBTa2lwIHNldHRpbmcgZmllbGQgdmFsdWUgaWYgbWFuYWdlciBjb21wdXRlZCBmbGFnIGlzIHRydWUuXG4gICAqXG4gICAqIFRoZSB2YWxpZGF0aW9uIHJlc3VsdCBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogQHBhcmFtIGZpZWxkIGZpZWxkIG5hbWVcbiAgICogQHBhcmFtIHZhbHVlIGZpZWxkIHZhbHVlZFxuICAgKiBAcGFyYW0gY2hlY2sgZGVmYXVsdCBmYWxzZVxuICAgKiBAcmV0dXJuIG51bGwgb3IgVmFsaWRhdGlvbkVycm9yXG4gICAqL1xuICBwdWJsaWMgc2V0RlY8RlQ+KFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgdmFsdWU6IEZULFxuICAgIGNoZWNrOiBib29sZWFuID0gZmFsc2VcbiAgKTogbnVsbCB8IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGlmICh0aGlzLkZNKGZpZWxkKS5jb21wdXRlZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmIChjaGVjaykge1xuICAgICAgY29uc3QgZmMgPSBuZXcgRm9ybUNvbnRyb2wodmFsdWUpO1xuXG4gICAgICBmb3IgKGNvbnN0IHYgb2YgdGhpcy5GTShmaWVsZCkudmFsaWRhdG9ycykge1xuICAgICAgICBjb25zdCB2YWwgPSB2KGZjKTtcbiAgICAgICAgaWYgKHZhbCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IodmFsKTtcbiAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgICh0aGlzIGFzIGFueSlbZmllbGRdID0gdmFsdWU7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBDYWxsZWQgb24gbW9kZWwgd2l0aCBhIGxpc3Qgb2YgZmllbGRzLCByZXR1cm5zIGEgRm9ybUdyb3VwIHdpdGhcbiAgLy8gdGhlc2UgZmllbGRzLCBvciBvbmx5IHRoZSBmb3JtIGNvbnRyb2wgZm9yIG9uZSBmaWVsZC5cbiAgcHVibGljIEZDKCk6IEZvcm1Hcm91cDtcbiAgcHVibGljIEZDKGZpZWxkOiBzdHJpbmcpOiBGb3JtQ29udHJvbDtcbiAgcHVibGljIEZDKGZpZWxkOiBzdHJpbmdbXSk6IEZvcm1Hcm91cDtcbiAgcHVibGljIEZDKGZpZWxkPzogc3RyaW5nIHwgc3RyaW5nW10pOiBGb3JtQ29udHJvbCB8IEZvcm1Hcm91cCB7XG4gICAgaWYgKGZpZWxkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGZpZWxkID0gQXJyYXkuZnJvbSh0aGlzLkZOKS5maWx0ZXIoKG4pID0+ICF0aGlzLkZNKG4pLnJlYWRvbmx5KTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQpKSB7XG4gICAgICBjb25zdCBmZzogeyBbaW5kZXg6IHN0cmluZ106IEZvcm1Db250cm9sIH0gPSB7fTtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBmaWVsZCkge1xuICAgICAgICBmZ1tmXSA9IHRoaXMuRkMoZikgYXMgRm9ybUNvbnRyb2w7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChmZyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLkZNKGZpZWxkKS5mb3JtQ29udHJvbCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlKFxuICAgIHsgdXBkYXRlTW9kZWwgPSB0cnVlIH06IHsgdXBkYXRlTW9kZWw/OiBib29sZWFuIH0gPSB7XG4gICAgICB1cGRhdGVNb2RlbDogdHJ1ZSxcbiAgICB9XG4gICk6IE9ic2VydmFibGU8dGhpcz4ge1xuICAgIGlmICh0aGlzLl9jb2xsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29sbC5zYXZlKHRoaXMsIHsgdXBkYXRlTW9kZWwgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTWlzc2luZyBjb2xsZWN0aW9uJykpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZShcbiAgICBmaWVsZHM6IHN0cmluZ1tdID0gW10sXG4gICAgeyB1cGRhdGVNb2RlbCA9IHRydWUgfTogeyB1cGRhdGVNb2RlbD86IGJvb2xlYW4gfSA9IHtcbiAgICAgIHVwZGF0ZU1vZGVsOiB0cnVlLFxuICAgIH1cbiAgKTogT2JzZXJ2YWJsZTx0aGlzPiB7XG4gICAgaWYgKHRoaXMuX2NvbGwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jb2xsLnVwZGF0ZSh0aGlzLCBmaWVsZHMsIHsgdXBkYXRlTW9kZWwgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTWlzc2luZyBjb2xsZWN0aW9uJykpO1xuICB9XG59XG5cbi8vXG4vLyBleHBvcnQgY2xhc3MgVHJlZURhdGFNb2RlbCBleHRlbmRzIERhdGFNb2RlbCB7XG4vLyAgIHN0YXRpYyBvdmVycmlkZSBfX25hbWUgPSAnVHJlZURhdGFNb2RlbCc7XG4vLyAgIEBkZXRhaWxzRmllbGQoe1xuLy8gICAgIG1vZGVsOiB0aGlzLFxuLy8gICAgIG1hbnk6IHRydWUsXG4vLyAgICAgZGVzY3JpcHRpb246ICdQYXJlbnRzJyxcbi8vICAgfSlcbi8vICAgcHVibGljIHBhcmVudHNfZGV0YWlscz86IHRoaXNbXTtcbi8vXG4vLyAgIEBmb3JlaWduS2V5RmllbGQoe1xuLy8gICAgIHJlcXVpcmVkOiBmYWxzZSxcbi8vICAgICBkZXNjcmlwdGlvbjogJ1N0cnVjdHVyZSBwYXJlbnRlJyxcbi8vICAgICByZWxhdGVkOiAnU3RydWN0dXJlJyxcbi8vICAgfSlcbi8vICAgcHVibGljIHBhcmVudD86IG51bWJlcjtcbi8vXG4vLyAgIEBpbnRlZ2VyRmllbGQoe1xuLy8gICAgIHJlcXVpcmVkOiBmYWxzZSxcbi8vICAgICByZWFkb25seTogdHJ1ZSxcbi8vICAgICBkZXNjcmlwdGlvbjogJ0lEIFRyZWUnLFxuLy8gICB9KVxuLy8gICBwdWJsaWMgdHJlZV9pZCE6IG51bWJlcjtcbi8vXG4vLyAgIEBpbnRlZ2VyRmllbGQoe1xuLy8gICAgIHJlcXVpcmVkOiBmYWxzZSxcbi8vICAgICByZWFkb25seTogdHJ1ZSxcbi8vICAgICBkZXNjcmlwdGlvbjogJ01QVFQgbGVmdCcsXG4vLyAgIH0pXG4vLyAgIHB1YmxpYyBsZnQhOiBudW1iZXI7XG4vL1xuLy8gICBAaW50ZWdlckZpZWxkKHtcbi8vICAgICByZXF1aXJlZDogZmFsc2UsXG4vLyAgICAgcmVhZG9ubHk6IHRydWUsXG4vLyAgICAgZGVzY3JpcHRpb246ICdNUFRUIHJpZ2h0Jyxcbi8vICAgfSlcbi8vICAgcHVibGljIHJnaHQhOiBudW1iZXI7XG4vL1xuLy8gICBAaW50ZWdlckZpZWxkKHtcbi8vICAgICByZXF1aXJlZDogZmFsc2UsXG4vLyAgICAgcmVhZG9ubHk6IHRydWUsXG4vLyAgICAgZGVzY3JpcHRpb246ICdOaXZlYXUgaGnDqXJhcmNoaXF1ZScsXG4vLyAgIH0pXG4vLyAgIHB1YmxpYyBsZXZlbCE6IG51bWJlcjtcbi8vXG4vLyAgIHB1YmxpYyBnZXQgcGFyZW50X2RldGFpbHMoKTogdGhpcyB8IG51bGwge1xuLy8gICAgIGlmICh0aGlzLnBhcmVudHNfZGV0YWlscykge1xuLy8gICAgICAgY29uc3Qgb3V0ID0gdGhpcy5wYXJlbnRzX2RldGFpbHNbdGhpcy5wYXJlbnRzX2RldGFpbHMubGVuZ3RoIC0gMV07XG4vLyAgICAgICBvdXQucGFyZW50c19kZXRhaWxzID0gdGhpcy5wYXJlbnRzX2RldGFpbHMuc2xpY2UoXG4vLyAgICAgICAgIDAsXG4vLyAgICAgICAgIHRoaXMucGFyZW50c19kZXRhaWxzLmxlbmd0aCAtIDFcbi8vICAgICAgICk7XG4vLyAgICAgICByZXR1cm4gb3V0O1xuLy8gICAgIH1cbi8vICAgICByZXR1cm4gbnVsbDtcbi8vICAgfVxuLy9cbi8vICAgcHVibGljIHNldCBwYXJlbnRfZGV0YWlscyhkOiB0aGlzIHwgbnVsbCkge1xuLy8gICAgIGNvbnNvbGUubG9nKGQpO1xuLy8gICAgIHRoaXMucGFyZW50c19kZXRhaWxzID0gZD8ucGFyZW50c19kZXRhaWxzO1xuLy8gICB9XG4vL1xuLy8gICBwdWJsaWMgX2Rpc3BsYXkoKTogc3RyaW5nIHtcbi8vICAgICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4vLyAgICAgaWYgKHRoaXMucGFyZW50c19kZXRhaWxzKSB7XG4vLyAgICAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy5wYXJlbnRzX2RldGFpbHMpIHtcbi8vICAgICAgICAgaWYgKChwIGFzIGFueSkuY29kZSkge1xuLy8gICAgICAgICAgIG91dC5wdXNoKGBbJHsocCBhcyBhbnkpLmNvZGV9XSAkeyhwIGFzIGFueSkubmFtZX1gKTtcbi8vICAgICAgICAgfSBlbHNlIHtcbi8vICAgICAgICAgICBvdXQucHVzaCgocCBhcyBhbnkpLm5hbWUpO1xuLy8gICAgICAgICB9XG4vLyAgICAgICB9XG4vLyAgICAgfVxuLy8gICAgIGlmICgodGhpcyBhcyBhbnkpLmNvZGUpIHtcbi8vICAgICAgIG91dC5wdXNoKGBbJHsodGhpcyBhcyBhbnkpLmNvZGV9XSAkeyh0aGlzIGFzIGFueSkubmFtZX1gKTtcbi8vICAgICB9IGVsc2Uge1xuLy8gICAgICAgb3V0LnB1c2goKHRoaXMgYXMgYW55KS5uYW1lKTtcbi8vICAgICB9XG4vL1xuLy8gICAgIHJldHVybiBvdXQuam9pbignIDogJyk7XG4vLyAgIH1cbi8vIH1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { combineLatest, ReplaySubject, share
|
|
1
|
+
import { combineLatest, ReplaySubject, share } from 'rxjs';
|
|
2
2
|
import { switchMap } from 'rxjs/operators';
|
|
3
3
|
export class Queryset {
|
|
4
4
|
constructor(_coll, options = {}) {
|
|
@@ -13,11 +13,25 @@ export class Queryset {
|
|
|
13
13
|
this.pageSize = 500;
|
|
14
14
|
/** Current page number */
|
|
15
15
|
this.page = 1;
|
|
16
|
-
this._pristine = true;
|
|
17
16
|
this._loading = new ReplaySubject(1);
|
|
17
|
+
/** Loading status (true if currently fetching data) */
|
|
18
|
+
this.loading = this._loading.asObservable().pipe(share());
|
|
18
19
|
this._meta = new ReplaySubject(1);
|
|
20
|
+
/** Results meta part observable */
|
|
21
|
+
this.meta = this._meta.asObservable().pipe(share());
|
|
19
22
|
this._results = new ReplaySubject(1);
|
|
23
|
+
/** Results data part observable */
|
|
24
|
+
this.results = this._results.asObservable().pipe(share());
|
|
25
|
+
this._full = combineLatest([
|
|
26
|
+
this.results,
|
|
27
|
+
this.loading,
|
|
28
|
+
this.meta,
|
|
29
|
+
]);
|
|
30
|
+
/** Full results observable (results, loading, meta) */
|
|
31
|
+
this.full = this._full.pipe(share());
|
|
32
|
+
this._pristine = true;
|
|
20
33
|
/** Default options */
|
|
34
|
+
// console.log('@solidev/data: Creating collection', _coll);
|
|
21
35
|
this.options = { emitFields: true };
|
|
22
36
|
Object.assign(this.options, options);
|
|
23
37
|
}
|
|
@@ -25,25 +39,6 @@ export class Queryset {
|
|
|
25
39
|
get pristine() {
|
|
26
40
|
return this._pristine;
|
|
27
41
|
}
|
|
28
|
-
/** Loading status (true if currently fetching data) */
|
|
29
|
-
get loading() {
|
|
30
|
-
return this._loading.asObservable();
|
|
31
|
-
}
|
|
32
|
-
/** Results meta part observable */
|
|
33
|
-
get meta() {
|
|
34
|
-
return this._meta.asObservable();
|
|
35
|
-
}
|
|
36
|
-
/** Results data part observable */
|
|
37
|
-
get results() {
|
|
38
|
-
return this._results.asObservable();
|
|
39
|
-
}
|
|
40
|
-
/** Full results observable (results, loading, meta) */
|
|
41
|
-
get full() {
|
|
42
|
-
if (!this._full) {
|
|
43
|
-
this._full = combineLatest([this.results, this.loading, this.meta]);
|
|
44
|
-
}
|
|
45
|
-
return this._full.pipe(share());
|
|
46
|
-
}
|
|
47
42
|
/**
|
|
48
43
|
* Update current filter data. Null or undefined values are removed from filter data.
|
|
49
44
|
* @param params filter data
|
|
@@ -118,19 +113,28 @@ export class Queryset {
|
|
|
118
113
|
}
|
|
119
114
|
return f;
|
|
120
115
|
}
|
|
121
|
-
get(refresh = true) {
|
|
122
|
-
console.log('queryset:get', this, refresh);
|
|
116
|
+
get(refresh = true, sync = false) {
|
|
123
117
|
if (!refresh && !this._pristine) {
|
|
118
|
+
// console.log('@solidev/data: Get not refreshing, return current result observable');
|
|
124
119
|
return this.results;
|
|
125
120
|
}
|
|
121
|
+
// console.log('@solidev/data: start get (query)');
|
|
126
122
|
this._loading.next(true);
|
|
123
|
+
const syncQp = {};
|
|
124
|
+
if (sync) {
|
|
125
|
+
syncQp['db'] = 'sync';
|
|
126
|
+
}
|
|
127
127
|
return this._coll
|
|
128
128
|
.raw({
|
|
129
129
|
method: 'GET',
|
|
130
|
-
params:
|
|
130
|
+
params: {
|
|
131
|
+
...this.getQueryParams(),
|
|
132
|
+
...syncQp,
|
|
133
|
+
},
|
|
131
134
|
})
|
|
132
135
|
.pipe(switchMap((result) => {
|
|
133
136
|
// Process results
|
|
137
|
+
// console.log('@solidev/data: have meta');
|
|
134
138
|
this._meta.next({ nav: result.nav, parameters: result.parameters });
|
|
135
139
|
const out = [];
|
|
136
140
|
for (const r of result.results) {
|
|
@@ -138,10 +142,13 @@ export class Queryset {
|
|
|
138
142
|
out.push(m);
|
|
139
143
|
}
|
|
140
144
|
this._pristine = false;
|
|
145
|
+
// console.log('@solidev/data: have loading');
|
|
141
146
|
this._loading.next(false);
|
|
147
|
+
// console.log('@solidev/data: have result');
|
|
142
148
|
this._results.next(out);
|
|
149
|
+
// console.log('@solidev/data: done get');
|
|
143
150
|
return this.results;
|
|
144
151
|
}));
|
|
145
152
|
}
|
|
146
153
|
}
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2RhdGEtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUNMLGFBQWEsRUFHYixhQUFhLEVBQ2IsS0FBSyxHQUNOLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFTLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBcURsRCxNQUFNLE9BQU8sUUFBUTtJQWFuQixZQUFzQixLQUFvQixFQUFFLFVBQTRCLEVBQUU7UUFBcEQsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQVoxQywwQkFBMEI7UUFDbkIsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUNuQywwQkFBMEI7UUFDbkIsYUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNqQyxxQkFBcUI7UUFDZCxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzdCLHdCQUF3QjtRQUNqQixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLDBCQUEwQjtRQUNuQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBU1IsY0FBUyxHQUFHLElBQUksQ0FBQztRQU1qQixhQUFRLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFNekMsVUFBSyxHQUFHLElBQUksYUFBYSxDQUFhLENBQUMsQ0FBQyxDQUFDO1FBTXpDLGFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBTSxDQUFDLENBQUMsQ0FBQztRQXZCM0Msc0JBQXNCO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFHRCxpRUFBaUU7SUFDakUsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lB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LElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiO1lBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9kYXRhLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi9kYXRhLW1vZGVsJztcbmltcG9ydCB7XG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZpcnN0VmFsdWVGcm9tLFxuICBPYnNlcnZhYmxlLFxuICBSZXBsYXlTdWJqZWN0LFxuICBzaGFyZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRGF0YSB7XG4gIFtpbmRleDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZCB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIFNvcnREYXRhID0gc3RyaW5nO1xuXG4vKipcbiAqIFF1ZXJ5c2V0IHBhcmFtZXRlcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUXVlcnlzZXRPcHRpb25zIHtcbiAgLyoqIEVtaXQgZmllbGRzIGxpc3QgKi9cbiAgZW1pdEZpZWxkcz86IGJvb2xlYW47XG4gIC8qKiBRdWVyeXNldCBuYW1lICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBUT0RPOiBzZWUgdXNhZ2UgKi9cbiAgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZTtcbiAgLyoqIFRPRE86IHNlZSB1c2FnZSAqL1xuICByb3V0ZXI/OiBSb3V0ZXI7XG4gIC8qKiBUT0RPOiBzZWUgdXNhZ2UgKi9cbiAgaGFzaD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUXVlcnlOYXYge1xuICBwYWdlOiBudW1iZXI7XG4gIHBhZ2Vfc2l6ZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElRdWVyeU1ldGFOYXYge1xuICBjb3VudDogbnVtYmVyO1xuICBuZXh0OiBudW1iZXIgfCBudWxsO1xuICBwYWdlOiBudW1iZXI7XG4gIHBhZ2VzOiBudW1iZXI7XG4gIHByZXY6IG51bWJlciB8IG51bGw7XG4gIHNpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUXVlcnlNZXRhTmF2UGFyYW1zIHtcbiAgcGFnZTogc3RyaW5nO1xuICBwYWdlX3NpemU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUXVlcnlNZXRhIHtcbiAgbmF2OiBJUXVlcnlNZXRhTmF2O1xuICBwYXJhbWV0ZXJzOiBJUXVlcnlNZXRhTmF2UGFyYW1zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElRdWVyeUZ1bGxSZXNwb25zZTxUPiBleHRlbmRzIElRdWVyeU1ldGEge1xuICByZXN1bHRzOiBUW107XG59XG5cbmV4cG9ydCBjbGFzcyBRdWVyeXNldDxUIGV4dGVuZHMgRGF0YU1vZGVsPiB7XG4gIC8qKiBDdXJyZW50IGZpbHRlciBkYXRhICovXG4gIHB1YmxpYyBmaWx0ZXJEYXRhOiBGaWx0ZXJEYXRhID0ge307XG4gIC8qKiBDdXJyZW50IHNvcnRlciBkYXRhICovXG4gIHB1YmxpYyBzb3J0RGF0YTogU29ydERhdGFbXSA9IFtdO1xuICAvKiogQ3VycmVudCBmaWVsZHMgKi9cbiAgcHVibGljIGZpZWxkczogc3RyaW5nW10gPSBbXTtcbiAgLyoqIEN1cnJlbnQgcGFnZSBzaXplICovXG4gIHB1YmxpYyBwYWdlU2l6ZSA9IDUwMDtcbiAgLyoqIEN1cnJlbnQgcGFnZSBudW1iZXIgKi9cbiAgcHVibGljIHBhZ2UgPSAxO1xuXG4gIHB1YmxpYyBvcHRpb25zOiBJUXVlcnlzZXRPcHRpb25zO1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2NvbGw6IENvbGxlY3Rpb248VD4sIG9wdGlvbnM6IElRdWVyeXNldE9wdGlvbnMgPSB7fSkge1xuICAgIC8qKiBEZWZhdWx0IG9wdGlvbnMgKi9cbiAgICB0aGlzLm9wdGlvbnMgPSB7IGVtaXRGaWVsZHM6IHRydWUgfTtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucywgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIF9wcmlzdGluZSA9IHRydWU7XG4gIC8qKiBQcmlzdGluZSBzdGF0dXMgKHRydWUgaWYgaXQgaGFzIG5vdCBjb2xsZWN0ZWQgcmVzdWx0cyB5ZXQpICovXG4gIHB1YmxpYyBnZXQgcHJpc3RpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXN0aW5lO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZGluZyA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAvKiogTG9hZGluZyBzdGF0dXMgKHRydWUgaWYgY3VycmVudGx5IGZldGNoaW5nIGRhdGEpICovXG4gIHB1YmxpYyBnZXQgbG9hZGluZygpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fbG9hZGluZy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX21ldGEgPSBuZXcgUmVwbGF5U3ViamVjdDxJUXVlcnlNZXRhPigxKTtcbiAgLyoqIFJlc3VsdHMgbWV0YSBwYXJ0IG9ic2VydmFibGUgKi9cbiAgcHVibGljIGdldCBtZXRhKCk6IE9ic2VydmFibGU8SVF1ZXJ5TWV0YT4ge1xuICAgIHJldHVybiB0aGlzLl9tZXRhLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzdWx0cyA9IG5ldyBSZXBsYXlTdWJqZWN0PFRbXT4oMSk7XG4gIC8qKiBSZXN1bHRzIGRhdGEgcGFydCBvYnNlcnZhYmxlICovXG4gIHB1YmxpYyBnZXQgcmVzdWx0cygpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLl9yZXN1bHRzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZnVsbD86IE9ic2VydmFibGU8W1RbXSwgYm9vbGVhbiwgSVF1ZXJ5TWV0YV0+O1xuICAvKiogRnVsbCByZXN1bHRzIG9ic2VydmFibGUgKHJlc3VsdHMsIGxvYWRpbmcsIG1ldGEpICovXG4gIHB1YmxpYyBnZXQgZnVsbCgpOiBPYnNlcnZhYmxlPFtUW10sIGJvb2xlYW4sIElRdWVyeU1ldGFdPiB7XG4gICAgaWYgKCF0aGlzLl9mdWxsKSB7XG4gICAgICB0aGlzLl9mdWxsID0gY29tYmluZUxhdGVzdChbdGhpcy5yZXN1bHRzLCB0aGlzLmxvYWRpbmcsIHRoaXMubWV0YV0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZnVsbC5waXBlKHNoYXJlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjdXJyZW50IGZpbHRlciBkYXRhLiBOdWxsIG9yIHVuZGVmaW5lZCB2YWx1ZXMgYXJlIHJlbW92ZWQgZnJvbSBmaWx0ZXIgZGF0YS5cbiAgICogQHBhcmFtIHBhcmFtcyBmaWx0ZXIgZGF0YVxuICAgKiBAcGFyYW0gdXBkYXRlIGJvb2xlYW4gdG8gdXBkYXRlIGZpbHRlciBkYXRhIGluc3RlYWQgb2YgcmVjcmVhdGluZyBpdCBmcm9tIHNjcmF0Y2hcbiAgICovXG4gIHB1YmxpYyBmaWx0ZXIocGFyYW1zOiBGaWx0ZXJEYXRhID0ge30sIHVwZGF0ZTogYm9vbGVhbiA9IGZhbHNlKTogUXVlcnlzZXQ8VD4ge1xuICAgIGlmICghdXBkYXRlKSB7XG4gICAgICB0aGlzLmZpbHRlckRhdGEgPSB7fTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrIG9mIE9iamVjdC5rZXlzKHBhcmFtcykpIHtcbiAgICAgIGlmIChwYXJhbXNba10gPT09IHVuZGVmaW5lZCB8fCBwYXJhbXNba10gPT09IG51bGwpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuZmlsdGVyRGF0YVtrXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmlsdGVyRGF0YVtrXSA9IHBhcmFtc1trXTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHNvcnRpbmcgcGFyYW1ldGVycywgbGlzdCBvZiBzdHJpbmdzIGdpdmluZyBzb3J0IHBhcmFtZXRlcnMgZS5nLiBzb3J0KFwiK25hbWVcIiwgXCItaWRcIikuXG4gICAqIEBwYXJhbSBzb3J0aW5nIHN0cmluZ3Mgb2Ygc29ydCBwYXJhbWV0ZXJzXG4gICAqL1xuICBwdWJsaWMgc29ydCguLi5zb3J0aW5nOiBzdHJpbmdbXSk6IFF1ZXJ5c2V0PFQ+IHtcbiAgICB0aGlzLnNvcnREYXRhID0gc29ydGluZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgcGFnZSBzaXplLlxuICAgKiBAcGFyYW0gcGFnZVNpemUgcmVxdWlyZWQgcGFnZSBzaXplXG4gICAqL1xuICBwdWJsaWMgcGFnaW5hdGVCeShwYWdlU2l6ZTogbnVtYmVyID0gMjApOiBRdWVyeXNldDxUPiB7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjdXJyZW50IHBhZ2UgbnVtYmVyLlxuICAgKiBAcGFyYW0gcGFnZSByZXF1aXJlZCBwcWdlXG4gICAqIEBwYXJhbSBmcmFnbWVudCBUT0RPOiBmcmFnbWVudCB1c2FnZSBmb3Igcm91dGVyIHVzYWdlXG4gICAqL1xuICBwdWJsaWMgc2V0UGFnZShwYWdlOiBudW1iZXIgPSAxLCBmcmFnbWVudD86IHN0cmluZyk6IFF1ZXJ5c2V0PFQ+IHtcbiAgICBpZiAocGFnZSAhPT0gdGhpcy5wYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xuICAgICAgLy8gaWYgKHRoaXMub3B0aW9ucy5yb3V0ZXIpIHtcbiAgICAgIC8vICAgLy8gVE9ETzogY2hlY2sgYW5kIGZpeCB1c2FnZSBvZiBmcmFnbWVudC9xdWVyeSBwYXJhbXNcbiAgICAgIC8vICAgY29uc3QgZnJhZyA9IGZyYWdtZW50XG4gICAgICAvLyAgICAgPyBmcmFnbWVudFxuICAgICAgLy8gICAgIDogdGhpcy5vcHRpb25zLmhhc2ggfHwgdGhpcy5vcHRpb25zLm5hbWU7XG4gICAgICAvLyAgIGNvbnN0IF8gPSB0aGlzLm9wdGlvbnMucm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICAvLyAgICAgcXVlcnlQYXJhbXM6IHsgcGFnZTogcGFnZS50b1N0cmluZygpIH0sXG4gICAgICAvLyAgICAgZnJhZ21lbnQ6IGZyYWcsXG4gICAgICAvLyAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcbiAgICAgIC8vICAgfSk7XG4gICAgICAvLyB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldEZpZWxkcyhmaWVsZHM6IHN0cmluZ1tdKTogUXVlcnlzZXQ8VD4ge1xuICAgIHRoaXMuZmllbGRzID0gZmllbGRzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGdldFF1ZXJ5UGFyYW1zKCk6IEZpbHRlckRhdGEge1xuICAgIGNvbnN0IGY6IEZpbHRlckRhdGEgPSB7fTtcbiAgICBPYmplY3QuYXNzaWduKGYsIHRoaXMuZmlsdGVyRGF0YSk7XG4gICAgaWYgKHRoaXMuc29ydERhdGEubGVuZ3RoKSB7XG4gICAgICBmWydvcmRlcmluZyddID0gdGhpcy5zb3J0RGF0YS5qb2luKCcsJyk7XG4gICAgfVxuICAgIGZbJ3BhZ2Vfc2l6ZSddID0gdGhpcy5wYWdlU2l6ZTtcbiAgICBmWydwYWdlJ10gPSB0aGlzLnBhZ2U7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5lbWl0RmllbGRzICYmIHRoaXMuZmllbGRzLmxlbmd0aCkge1xuICAgICAgZlsnZmllbGRzJ10gPSB0aGlzLmZpZWxkcy5qb2luKCcsJyk7XG4gICAgfVxuICAgIHJldHVybiBmO1xuICB9XG5cbiAgcHVibGljIGdldChyZWZyZXNoOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgY29uc29sZS5sb2coJ3F1ZXJ5c2V0OmdldCcsIHRoaXMsIHJlZnJlc2gpO1xuICAgIGlmICghcmVmcmVzaCAmJiAhdGhpcy5fcHJpc3RpbmUpIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc3VsdHM7XG4gICAgfVxuICAgIHRoaXMuX2xvYWRpbmcubmV4dCh0cnVlKTtcbiAgICByZXR1cm4gdGhpcy5fY29sbFxuICAgICAgLnJhdzxJUXVlcnlGdWxsUmVzcG9uc2U8VD4+KHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgcGFyYW1zOiB0aGlzLmdldFF1ZXJ5UGFyYW1zKCkgYXMgYW55LFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIC8vIFByb2Nlc3MgcmVzdWx0c1xuICAgICAgICAgIHRoaXMuX21ldGEubmV4dCh7IG5hdjogcmVzdWx0Lm5hdiwgcGFyYW1ldGVyczogcmVzdWx0LnBhcmFtZXRlcnMgfSk7XG4gICAgICAgICAgY29uc3Qgb3V0OiBUW10gPSBbXTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHIgb2YgcmVzdWx0LnJlc3VsdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IG0gPSB0aGlzLl9jb2xsLmZyb21Kc29uKHIpO1xuICAgICAgICAgICAgb3V0LnB1c2gobSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3ByaXN0aW5lID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5fbG9hZGluZy5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLl9yZXN1bHRzLm5leHQob3V0KTtcbiAgICAgICAgICByZXR1cm4gdGhpcy5yZXN1bHRzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2RhdGEtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGFBQWEsRUFBYyxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXlEM0MsTUFBTSxPQUFPLFFBQVE7SUE4Qm5CLFlBQXNCLEtBQW9CLEVBQUUsVUFBNEIsRUFBRTtRQUFwRCxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBN0IxQywwQkFBMEI7UUFDbkIsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUNuQywwQkFBMEI7UUFDbkIsYUFBUSxHQUFlLEVBQUUsQ0FBQztRQUNqQyxxQkFBcUI7UUFDZCxXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzdCLHdCQUF3QjtRQUNqQixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLDBCQUEwQjtRQUNuQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBR1IsYUFBUSxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pELHVEQUF1RDtRQUNoRCxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRCxVQUFLLEdBQUcsSUFBSSxhQUFhLENBQWEsQ0FBQyxDQUFDLENBQUM7UUFDakQsbUNBQW1DO1FBQzVCLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLGFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBTSxDQUFDLENBQUMsQ0FBQztRQUM3QyxtQ0FBbUM7UUFDNUIsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMs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TSxDQUFDLE9BQU8sRUFBRTtnQkFDOUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYjtZQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLDhDQUE4QztZQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQiw2Q0FBNkM7WUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsMENBQTBDO1lBQzFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4vZGF0YS1tb2RlbCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBzaGFyZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyRGF0YSB7XG4gIFtpbmRleDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZCB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3V0RmlsdGVyRGF0YSB7XG4gIFtpbmRleDogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTb3J0RGF0YSA9IHN0cmluZztcblxuLyoqXG4gKiBRdWVyeXNldCBwYXJhbWV0ZXJzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVF1ZXJ5c2V0T3B0aW9ucyB7XG4gIC8qKiBFbWl0IGZpZWxkcyBsaXN0ICovXG4gIGVtaXRGaWVsZHM/OiBib29sZWFuO1xuICAvKiogUXVlcnlzZXQgbmFtZSAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogVE9ETzogc2VlIHVzYWdlICovXG4gIHJvdXRlPzogQWN0aXZhdGVkUm91dGU7XG4gIC8qKiBUT0RPOiBzZWUgdXNhZ2UgKi9cbiAgcm91dGVyPzogUm91dGVyO1xuICAvKiogVE9ETzogc2VlIHVzYWdlICovXG4gIGhhc2g/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVF1ZXJ5TmF2IHtcbiAgcGFnZTogbnVtYmVyO1xuICBwYWdlX3NpemU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUXVlcnlNZXRhTmF2IHtcbiAgY291bnQ6IG51bWJlcjtcbiAgbmV4dDogbnVtYmVyIHwgbnVsbDtcbiAgcGFnZTogbnVtYmVyO1xuICBwYWdlczogbnVtYmVyO1xuICBwcmV2OiBudW1iZXIgfCBudWxsO1xuICBzaXplOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVF1ZXJ5TWV0YU5hdlBhcmFtcyB7XG4gIHBhZ2U6IHN0cmluZztcbiAgcGFnZV9zaXplOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVF1ZXJ5TWV0YSB7XG4gIG5hdjogSVF1ZXJ5TWV0YU5hdjtcbiAgcGFyYW1ldGVyczogSVF1ZXJ5TWV0YU5hdlBhcmFtcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUXVlcnlGdWxsUmVzcG9uc2U8VD4gZXh0ZW5kcyBJUXVlcnlNZXRhIHtcbiAgcmVzdWx0czogVFtdO1xufVxuXG5leHBvcnQgY2xhc3MgUXVlcnlzZXQ8VCBleHRlbmRzIERhdGFNb2RlbD4ge1xuICAvKiogQ3VycmVudCBmaWx0ZXIgZGF0YSAqL1xuICBwdWJsaWMgZmlsdGVyRGF0YTogRmlsdGVyRGF0YSA9IHt9O1xuICAvKiogQ3VycmVudCBzb3J0ZXIgZGF0YSAqL1xuICBwdWJsaWMgc29ydERhdGE6IFNvcnREYXRhW10gPSBbXTtcbiAgLyoqIEN1cnJlbnQgZmllbGRzICovXG4gIHB1YmxpYyBmaWVsZHM6IHN0cmluZ1tdID0gW107XG4gIC8qKiBDdXJyZW50IHBhZ2Ugc2l6ZSAqL1xuICBwdWJsaWMgcGFnZVNpemUgPSA1MDA7XG4gIC8qKiBDdXJyZW50IHBhZ2UgbnVtYmVyICovXG4gIHB1YmxpYyBwYWdlID0gMTtcblxuICBwdWJsaWMgb3B0aW9uczogSVF1ZXJ5c2V0T3B0aW9ucztcbiAgcHJpdmF0ZSBfbG9hZGluZyA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAvKiogTG9hZGluZyBzdGF0dXMgKHRydWUgaWYgY3VycmVudGx5IGZldGNoaW5nIGRhdGEpICovXG4gIHB1YmxpYyBsb2FkaW5nID0gdGhpcy5fbG9hZGluZy5hc09ic2VydmFibGUoKS5waXBlKHNoYXJlKCkpO1xuICBwcml2YXRlIF9tZXRhID0gbmV3IFJlcGxheVN1YmplY3Q8SVF1ZXJ5TWV0YT4oMSk7XG4gIC8qKiBSZXN1bHRzIG1ldGEgcGFydCBvYnNlcnZhYmxlICovXG4gIHB1YmxpYyBtZXRhID0gdGhpcy5fbWV0YS5hc09ic2VydmFibGUoKS5waXBlKHNoYXJlKCkpO1xuICBwcml2YXRlIF9yZXN1bHRzID0gbmV3IFJlcGxheVN1YmplY3Q8VFtdPigxKTtcbiAgLyoqIFJlc3VsdHMgZGF0YSBwYXJ0IG9ic2VydmFibGUgKi9cbiAgcHVibGljIHJlc3VsdHMgPSB0aGlzLl9yZXN1bHRzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmUoKSk7XG4gIHByaXZhdGUgX2Z1bGw6IE9ic2VydmFibGU8W1RbXSwgYm9vbGVhbiwgSVF1ZXJ5TWV0YV0+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5yZXN1bHRzLFxuICAgIHRoaXMubG9hZGluZyxcbiAgICB0aGlzLm1ldGEsXG4gIF0pO1xuICAvKiogRnVsbCByZXN1bHRzIG9ic2VydmFibGUgKHJlc3VsdHMsIGxvYWRpbmcsIG1ldGEpICovXG4gIHB1YmxpYyBmdWxsID0gdGhpcy5fZnVsbC5waXBlKHNoYXJlKCkpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfY29sbDogQ29sbGVjdGlvbjxUPiwgb3B0aW9uczogSVF1ZXJ5c2V0T3B0aW9ucyA9IHt9KSB7XG4gICAgLyoqIERlZmF1bHQgb3B0aW9ucyAqL1xuICAgIC8vIGNvbnNvbGUubG9nKCdAc29saWRldi9kYXRhOiBDcmVhdGluZyBjb2xsZWN0aW9uJywgX2NvbGwpO1xuICAgIHRoaXMub3B0aW9ucyA9IHsgZW1pdEZpZWxkczogdHJ1ZSB9O1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ByaXN0aW5lID0gdHJ1ZTtcblxuICAvKiogUHJpc3RpbmUgc3RhdHVzICh0cnVlIGlmIGl0IGhhcyBub3QgY29sbGVjdGVkIHJlc3VsdHMgeWV0KSAqL1xuICBwdWJsaWMgZ2V0IHByaXN0aW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wcmlzdGluZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY3VycmVudCBmaWx0ZXIgZGF0YS4gTnVsbCBvciB1bmRlZmluZWQgdmFsdWVzIGFyZSByZW1vdmVkIGZyb20gZmlsdGVyIGRhdGEuXG4gICAqIEBwYXJhbSBwYXJhbXMgZmlsdGVyIGRhdGFcbiAgICogQHBhcmFtIHVwZGF0ZSBib29sZWFuIHRvIHVwZGF0ZSBmaWx0ZXIgZGF0YSBpbnN0ZWFkIG9mIHJlY3JlYXRpbmcgaXQgZnJvbSBzY3JhdGNoXG4gICAqL1xuICBwdWJsaWMgZmlsdGVyKHBhcmFtczogRmlsdGVyRGF0YSA9IHt9LCB1cGRhdGU6IGJvb2xlYW4gPSBmYWxzZSk6IFF1ZXJ5c2V0PFQ+IHtcbiAgICBpZiAoIXVwZGF0ZSkge1xuICAgICAgdGhpcy5maWx0ZXJEYXRhID0ge307XG4gICAgfVxuICAgIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKSB7XG4gICAgICBpZiAocGFyYW1zW2tdID09PSB1bmRlZmluZWQgfHwgcGFyYW1zW2tdID09PSBudWxsKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpbHRlckRhdGFba107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbHRlckRhdGFba10gPSBwYXJhbXNba107XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzb3J0aW5nIHBhcmFtZXRlcnMsIGxpc3Qgb2Ygc3RyaW5ncyBnaXZpbmcgc29ydCBwYXJhbWV0ZXJzIGUuZy4gc29ydChcIituYW1lXCIsIFwiLWlkXCIpLlxuICAgKiBAcGFyYW0gc29ydGluZyBzdHJpbmdzIG9mIHNvcnQgcGFyYW1ldGVyc1xuICAgKi9cbiAgcHVibGljIHNvcnQoLi4uc29ydGluZzogc3RyaW5nW10pOiBRdWVyeXNldDxUPiB7XG4gICAgdGhpcy5zb3J0RGF0YSA9IHNvcnRpbmc7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHBhZ2Ugc2l6ZS5cbiAgICogQHBhcmFtIHBhZ2VTaXplIHJlcXVpcmVkIHBhZ2Ugc2l6ZVxuICAgKi9cbiAgcHVibGljIHBhZ2luYXRlQnkocGFnZVNpemU6IG51bWJlciA9IDIwKTogUXVlcnlzZXQ8VD4ge1xuICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY3VycmVudCBwYWdlIG51bWJlci5cbiAgICogQHBhcmFtIHBhZ2UgcmVxdWlyZWQgcHFnZVxuICAgKiBAcGFyYW0gZnJhZ21lbnQgVE9ETzogZnJhZ21lbnQgdXNhZ2UgZm9yIHJvdXRlciB1c2FnZVxuICAgKi9cbiAgcHVibGljIHNldFBhZ2UocGFnZTogbnVtYmVyID0gMSwgZnJhZ21lbnQ/OiBzdHJpbmcpOiBRdWVyeXNldDxUPiB7XG4gICAgaWYgKHBhZ2UgIT09IHRoaXMucGFnZSkge1xuICAgICAgdGhpcy5wYWdlID0gcGFnZTtcbiAgICAgIC8vIGlmICh0aGlzLm9wdGlvbnMucm91dGVyKSB7XG4gICAgICAvLyAgIC8vIFRPRE86IGNoZWNrIGFuZCBmaXggdXNhZ2Ugb2YgZnJhZ21lbnQvcXVlcnkgcGFyYW1zXG4gICAgICAvLyAgIGNvbnN0IGZyYWcgPSBmcmFnbWVudFxuICAgICAgLy8gICAgID8gZnJhZ21lbnRcbiAgICAgIC8vICAgICA6IHRoaXMub3B0aW9ucy5oYXNoIHx8IHRoaXMub3B0aW9ucy5uYW1lO1xuICAgICAgLy8gICBjb25zdCBfID0gdGhpcy5vcHRpb25zLnJvdXRlci5uYXZpZ2F0ZShbXSwge1xuICAgICAgLy8gICAgIHF1ZXJ5UGFyYW1zOiB7IHBhZ2U6IHBhZ2UudG9TdHJpbmcoKSB9LFxuICAgICAgLy8gICAgIGZyYWdtZW50OiBmcmFnLFxuICAgICAgLy8gICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICAvLyAgIH0pO1xuICAgICAgLy8gfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzZXRGaWVsZHMoZmllbGRzOiBzdHJpbmdbXSk6IFF1ZXJ5c2V0PFQ+IHtcbiAgICB0aGlzLmZpZWxkcyA9IGZpZWxkcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRRdWVyeVBhcmFtcygpOiBPdXRGaWx0ZXJEYXRhIHtcbiAgICBjb25zdCBmOiBGaWx0ZXJEYXRhID0ge307XG4gICAgT2JqZWN0LmFzc2lnbihmLCB0aGlzLmZpbHRlckRhdGEpO1xuICAgIGlmICh0aGlzLnNvcnREYXRhLmxlbmd0aCkge1xuICAgICAgZlsnb3JkZXJpbmcnXSA9IHRoaXMuc29ydERhdGEuam9pbignLCcpO1xuICAgIH1cbiAgICBmWydwYWdlX3NpemUnXSA9IHRoaXMucGFnZVNpemU7XG4gICAgZlsncGFnZSddID0gdGhpcy5wYWdlO1xuICAgIGlmICh0aGlzLm9wdGlvbnMuZW1pdEZpZWxkcyAmJiB0aGlzLmZpZWxkcy5sZW5ndGgpIHtcbiAgICAgIGZbJ2ZpZWxkcyddID0gdGhpcy5maWVsZHMuam9pbignLCcpO1xuICAgIH1cbiAgICByZXR1cm4gZiBhcyBPdXRGaWx0ZXJEYXRhO1xuICB9XG5cbiAgcHVibGljIGdldChyZWZyZXNoOiBib29sZWFuID0gdHJ1ZSwgc3luYzogYm9vbGVhbiA9IGZhbHNlKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoIXJlZnJlc2ggJiYgIXRoaXMuX3ByaXN0aW5lKSB7XG4gICAgICAvLyBjb25zb2xlLmxvZygnQHNvbGlkZXYvZGF0YTogR2V0IG5vdCByZWZyZXNoaW5nLCByZXR1cm4gY3VycmVudCByZXN1bHQgb2JzZXJ2YWJsZScpO1xuICAgICAgcmV0dXJuIHRoaXMucmVzdWx0cztcbiAgICB9XG4gICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IHN0YXJ0IGdldCAocXVlcnkpJyk7XG4gICAgdGhpcy5fbG9hZGluZy5uZXh0KHRydWUpO1xuICAgIGNvbnN0IHN5bmNRcDogeyBbaW5kZXg6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgaWYgKHN5bmMpIHtcbiAgICAgIHN5bmNRcFsnZGInXSA9ICdzeW5jJztcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NvbGxcbiAgICAgIC5yYXc8SVF1ZXJ5RnVsbFJlc3BvbnNlPFQ+Pih7XG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnRoaXMuZ2V0UXVlcnlQYXJhbXMoKSxcbiAgICAgICAgICAuLi5zeW5jUXAsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgLy8gUHJvY2VzcyByZXN1bHRzXG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IGhhdmUgbWV0YScpO1xuICAgICAgICAgIHRoaXMuX21ldGEubmV4dCh7IG5hdjogcmVzdWx0Lm5hdiwgcGFyYW1ldGVyczogcmVzdWx0LnBhcmFtZXRlcnMgfSk7XG4gICAgICAgICAgY29uc3Qgb3V0OiBUW10gPSBbXTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHIgb2YgcmVzdWx0LnJlc3VsdHMpIHtcbiAgICAgICAgICAgIGNvbnN0IG0gPSB0aGlzLl9jb2xsLmZyb21Kc29uKHIpO1xuICAgICAgICAgICAgb3V0LnB1c2gobSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3ByaXN0aW5lID0gZmFsc2U7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IGhhdmUgbG9hZGluZycpO1xuICAgICAgICAgIHRoaXMuX2xvYWRpbmcubmV4dChmYWxzZSk7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IGhhdmUgcmVzdWx0Jyk7XG4gICAgICAgICAgdGhpcy5fcmVzdWx0cy5uZXh0KG91dCk7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ0Bzb2xpZGV2L2RhdGE6IGRvbmUgZ2V0Jyk7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucmVzdWx0cztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -24,6 +24,7 @@ export class BaseFieldManager {
|
|
|
24
24
|
constructor(params) {
|
|
25
25
|
this.required = false;
|
|
26
26
|
this.readonly = false;
|
|
27
|
+
this.computed = false;
|
|
27
28
|
this.editorType = 'input.text';
|
|
28
29
|
this.displayType = 'text';
|
|
29
30
|
Object.assign(this, params);
|
|
@@ -66,6 +67,13 @@ export class BaseFieldManager {
|
|
|
66
67
|
toString(data, format = 'default') {
|
|
67
68
|
return `${data}`;
|
|
68
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns default value for model, using args if needed.
|
|
72
|
+
* @param args
|
|
73
|
+
*/
|
|
74
|
+
default(args = {}) {
|
|
75
|
+
return this.getDefaultValue(args);
|
|
76
|
+
}
|
|
69
77
|
/** Return validators
|
|
70
78
|
*
|
|
71
79
|
* @protected
|
|
@@ -77,13 +85,6 @@ export class BaseFieldManager {
|
|
|
77
85
|
}
|
|
78
86
|
return v;
|
|
79
87
|
}
|
|
80
|
-
/**
|
|
81
|
-
* Returns default value for model, using args if needed.
|
|
82
|
-
* @param args
|
|
83
|
-
*/
|
|
84
|
-
default(args = {}) {
|
|
85
|
-
return this.getDefaultValue(args);
|
|
86
|
-
}
|
|
87
88
|
/**
|
|
88
89
|
* Returns default value for model, using args if needed.
|
|
89
90
|
* @param args
|
|
@@ -139,4 +140,4 @@ export function genericDataField(meta, type, manager) {
|
|
|
139
140
|
Reflect.defineMetadata(PROPERTY_METADATA_KEY, allMetadata, target);
|
|
140
141
|
};
|
|
141
142
|
}
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2ZpZWxkcy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU90RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQXFCL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFhM0IsWUFBWSxNQUEwQjtRQVAvQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsZUFBVSxHQUEwQixZQUFZLENBQUM7UUFDakQsZ0JBQVcsR0FBMkIsTUFBTSxDQUFDO1FBR2xELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDOUI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJ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QUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNwRDtRQUNELEVBQUUsR0FBRyxFQUErQixDQUFDO1FBQ3JDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLElBQVcsQ0FBQyxFQUFFO1lBQ3JDLEVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBSSxJQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzNCLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztTQUNwQztRQUNELEVBQUUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2YsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDYixFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vZGF0YS1tb2RlbCc7XG5pbXBvcnQge1xuICBESVNQRURJVF9ESVNQTEFZX1RZUEVTLFxuICBESVNQRURJVF9FRElUT1JfVFlQRVMsXG59IGZyb20gJy4uLy4uL2Rpc3BlZGl0L2Rpc3BlZGl0L2Rpc3BlZGl0LmNvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBQUk9QRVJUWV9NRVRBREFUQV9LRVkgPSBTeW1ib2woJ25neERhdGFNZXRhZGF0YScpO1xuXG4vKipcbiAqIERlc2NyaXB0aXZlIGluZm8gZm9yIGFsbCBmaWVsZHMuXG4gKiBBbGwgYXJlIG9wdGlvbmFsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZE1ldGFkYXRhPEZUPiB7XG4gIC8qKiBGaWVsZCBuYW1lIChmb3IgZGlzcGxheSwgY29sdW1uIHRpdGxlLCBldGMuLikgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqIEZpZWxkIGhlbHAgdGV4dCAoZm9yIGlucHV0KSAqL1xuICBoZWxwPzogc3RyaW5nO1xuICAvKiogRmllbGQgZGVzY3JpcHRpb24gKGZvciBkZXRhaWxzIG9uIGhvdmVyIGV0Yy4uKSAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIEZpZWxkIHJlcXVpcmVkIDogbm8gdW5kZWZpbmVkIGFsbG93ZWQgb24gc2F2ZSA/ICovXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgLyoqIEZpZWxkIGNhbm5vdCBiZSB1cGRhdGVkICovXG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgLyoqIERlZmF1bHQgdmFsdWUgKi9cbiAgZGVmYXVsdFZhbHVlPzogRlQgfCAoKGFyZ3M6IGFueSkgPT4gRlQpIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBCYXNlIGZpZWxkIG1hbmFnZXIsIHN0b3JlcyBtZXRhZGF0YSBhbmQgcHJvdmlkZXMgY29tbW9uIGZpZWxkIHV0aWxpdGllc1xuICpcbiAqIC0gbmFtZSA6IGZpZWxkIG5hbWUsIHNob3VsZCBiZSB0aGUgc2FtZSBpbiBkYXRhIHN0cnVjdHVyZSBhbmQgbW9kZWxcbiAqIC0gaGVscCA6IGZpZWxkIGhlbHAgdGV4dCwgYmxhbmsgYnkgZGVmYXVsdFxuICogLSBkZXNjcmlwdGlvbiA6IGZpZWxkIG5hbWUgZm9yIGh1bWFuc1xuICogLSByZWFkb25seSA6IGZpZWxkIGlzIHJlYWRvbmx5IChjYW5ub3QgYmUgY2hhbmdlZCAvIHB1c2hlZCB0byBhcGkpXG4gKiAtIGRlZmF1bHQgOiBkZWZhdWx0IHZhbHVlIGZvciBmaWVsZFxuICpcbiAqIC0gZWRpdG9yX3R5cGUgOiBlZGl0b3IgdHlwZVxuICogLSBkaXNwbGF5X3R5cGUgOiBkaXNwbGF5IHR5cGVcbiAqXG4gKiAtIGZyb21Kc29uKGRhdGEpIDogZGVzZXJpYWxpemVyXG4gKiAtIHRvSnNvbihkYXRhKSA6IHNlcmlhbGlzZXJcbiAqIC0gdG9TdHJpbmcoZGF0YSxmb3JtYXQpIDogdG8gc3RyaW5nLCBmb3IgZGlzcGxheVxuICpcbiAqIC0gZm9ybUNvbnRyb2wgOiByZXR1cm5zIGZpZWxkIGZvcm0gY29udHJvbFxuICogLSB2YWxpZGF0b3JzIDogcmV0dXJucyBmaWVsZCB2YWxpZGF0b3JcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VGaWVsZE1hbmFnZXI8RlQ+IGltcGxlbWVudHMgSUZpZWxkTWV0YWRhdGE8RlQ+IHtcbiAgLyoqIE5hbWUgaXMgbWFuZGF0b3J5IGluIGEgZmllbGQgbWFuYWdlci4gSXQgaXMgZ2l2ZW4gYnlcbiAgICogZmllbGQgZGVjb3JhdG9yIGlmIG5vdCBkaXJlY3RseSBnaXZlbiBpbiBmaWVsZCBtYW5hZ2VyLiAqL1xuICBwdWJsaWMgbmFtZSE6IHN0cmluZztcbiAgcHVibGljIGRlc2NyaXB0aW9uITogc3RyaW5nO1xuICBwdWJsaWMgaGVscCE6IHN0cmluZztcbiAgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xuICBwdWJsaWMgZGVmYXVsdFZhbHVlPzogRlQgfCAoKGFyZ3M6IGFueSkgPT4gRlQpO1xuXG4gIHB1YmxpYyBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAnaW5wdXQudGV4dCc7XG4gIHB1YmxpYyBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICd0ZXh0JztcblxuICBjb25zdHJ1Y3RvcihwYXJhbXM6IElGaWVsZE1ldGFkYXRhPEZUPikge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgcGFyYW1zKTtcbiAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgdGhpcy5uYW1lID0gJ25vbmFtZSc7XG4gICAgfVxuICAgIGlmICghdGhpcy5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHRoaXMubmFtZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmhlbHApIHtcbiAgICAgIHRoaXMuaGVscCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLmdldERlZmF1bHRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqIFJldHVybiBmaWVsZCB2YWxpZGF0b3JzICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JzKCk7XG4gIH1cblxuICAvKiogUmV0dXJucyBjdXJyZW50IGZpZWxkIG5hbWUgKi9cbiAgcHVibGljIGdldCBmbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUuc3BsaXQoJ19fJylbMV0gfHwgdGhpcy5uYW1lO1xuICB9XG5cbiAgLyoqIENyZWF0ZSBhIG5ldyB0eXBlZCBmb3JtQ29udHJvbCBmb3IgdGhpcyBmaWVsZC4gKi9cbiAgcHVibGljIGZvcm1Db250cm9sKGluc3RhbmNlOiBEYXRhTW9kZWwpOiBGb3JtQ29udHJvbDxGVCB8IG51bGw+IHtcbiAgICByZXR1cm4gbmV3IEZvcm1Db250cm9sPEZUPihcbiAgICAgICgoaW5zdGFuY2UgYXMgYW55KVt0aGlzLmZuYW1lXSBhcyBGVCkgfHwgKHRoaXMuZ2V0RGVmYXVsdFZhbHVlKCkgYXMgRlQpLFxuICAgICAgdGhpcy52YWxpZGF0b3JzXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBKU09OIGRlc2VyaWFsaXplciBiYXNlIG1ldGhvZC4gKi9cbiAgcHVibGljIGZyb21Kc29uKGRhdGE6IGFueSk6IEZUIHtcbiAgICByZXR1cm4gZGF0YSBhcyBGVDtcbiAgfVxuXG4gIC8qKiBKU09OIHNlcmlhbGl6ZXIgYmFzZSBtZXRob2QuICovXG4gIHB1YmxpYyB0b0pzb24oZGF0YTogRlQpOiBhbnkge1xuICAgIHJldHVybiBkYXRhIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IHZhbHVlIChhcyBzdHJpbmcpXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwYXJhbSBmb3JtYXQgKG5vdCB1c2VkKVxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKGRhdGE6IEZULCBmb3JtYXQ6IHN0cmluZyA9ICdkZWZhdWx0Jyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2RhdGF9YDtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gdmFsaWRhdG9yc1xuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICBjb25zdCB2OiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHYucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBkZWZhdWx0IHZhbHVlIGZvciBtb2RlbCwgdXNpbmcgYXJncyBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqL1xuICBwdWJsaWMgZGVmYXVsdChhcmdzOiBhbnkgPSB7fSk6IEZUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0VmFsdWUoYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBkZWZhdWx0IHZhbHVlIGZvciBtb2RlbCwgdXNpbmcgYXJncyBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VmFsdWUoYXJnczogYW55ID0ge30pOiBGVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZShhcmdzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRmllbGQgJHt0aGlzLm5hbWV9IDogbm8gZGVmYXVsdCB2YWx1ZSBmb3IgcmVxdWlyZWQgZmllbGRgXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBGaWVsZCBkYXRhIHN0b3JlZCBvbiByZWZsZWN0ZWQgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkU3RvcmVkTWV0YWRhdGE8RlQ+IGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8RlQ+IHtcbiAgc2VsZjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgbWFuYWdlcjogQmFzZUZpZWxkTWFuYWdlcjxGVD47XG59XG5cbi8qKiBVdGlsIHRvIGdldCBvd24gb2JqZWN0IGtleXMgKi9cbmNvbnN0IG93bktleXMgPSAodGFyZ2V0OiBhbnkpOiBhbnkgPT5cbiAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KS5jb25jYXQoXG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpIGFzIGFueVxuICApO1xuXG4vKiogTWFuYWdlciBjb25zdHJ1Y3RvclxuICogIEZUIGlzIGpzIGZpZWxkIHR5cGU7XG4gKiAgVCBpcyBtYW5hZ2VyIHR5cGVcbiAqICovXG50eXBlIEJhc2VGaWVsZE1hbmFnZXJDb25zdHJ1Y3RvcjxGVCwgVCBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8RlQ+PiA9IG5ldyAoXG4gIHBhcmFtczogYW55XG4pID0+IFQ7XG5cbi8qKlxuICogRmllbGQgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIEZpZWxkRGVjb3JhdG9yRm4gPSAoXG4gIHRhcmdldDogYW55LFxuICBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sXG4pID0+IHZvaWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZpZWxkIGRlY29yYXRvciB0aGF0IGNhbiBvbmx5IGJlIGFwcGxpZWQgd2l0aGluXG4gKiBhbiBvYmplY3QgY29udGFpbmluZyBhIHN0YXRpYyBfX25hbWUgcHJvcGVydHkuXG4gKlxuICpcbiAqIEBwYXJhbSBtZXRhIGZpZWxkIG1ldGFkYXRhXG4gKiBAcGFyYW0gdHlwZSBmaWVsZCB0eXBlIGNvZGVcbiAqIEBwYXJhbSBtYW5hZ2VyIGZpZWxkIG1hbmFnZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyaWNEYXRhRmllbGQ8XG4gIEZULFxuICBNRCBleHRlbmRzIElGaWVsZE1ldGFkYXRhPEZUPixcbiAgTUcgZXh0ZW5kcyBCYXNlRmllbGRNYW5hZ2VyPEZUPlxuPihcbiAgbWV0YTogTUQsXG4gIHR5cGU6IHN0cmluZyxcbiAgbWFuYWdlcjogQmFzZUZpZWxkTWFuYWdlckNvbnN0cnVjdG9yPEZULCBNRz5cbik6IEZpZWxkRGVjb3JhdG9yRm4ge1xuICByZXR1cm4gKHRhcmdldDogRGF0YU1vZGVsLCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sKSA9PiB7XG4gICAgY29uc3QgYWxsTWV0YWRhdGE6IE1hcDxcbiAgICAgIHN0cmluZyxcbiAgICAgIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT5cbiAgICA+ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShQUk9QRVJUWV9NRVRBREFUQV9LRVksIHRhcmdldCkgfHxcbiAgICBuZXcgTWFwPHN0cmluZywgSUZpZWxkU3RvcmVkTWV0YWRhdGE8YW55Pj4oKTtcbiAgICBsZXQgY25hbWU6IHN0cmluZyA9IGAkeyh0YXJnZXQuY29uc3RydWN0b3IgYXMgYW55KS5fX25hbWV9YDtcbiAgICBpZiAoKGNuYW1lID09PSBgdW5kZWZpbmVkYCB8fCBjbmFtZSA9PT0gJycpICYmIHR5cGUgIT09ICdwcmltYXJ5RmllbGQnKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYERlY29yYXRvciAke3R5cGV9IGFsbG93ZWQgb25seSBvbiBjbGFzc2VzIHdpdGggc3RhdGljIF9fbmFtZSBmaWVsZCA6IFwiJHtjbmFtZX1cIiBmb3VuZCBmb3IgLSAke3RhcmdldH1gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBwayA9IGAke2NuYW1lfV9fJHtTdHJpbmcocHJvcGVydHlLZXkpfWA7XG4gICAgbGV0IGNtID0gYWxsTWV0YWRhdGEuZ2V0KHBrKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoY20pIHtcbiAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIG9jY3VyIGFzIG1ldGFkYXRhIGlzIG9iamVjdCBib3VuZCBhbmQgcHJvcGVydHkgbmFtZXMgbXVzdCBiZSB1bmlxdWVcbiAgICAgIHRocm93IEVycm9yKGBGaWVsZCAke3BrfSBhbHJlYWR5IGRlZmluZWQgPSAke2NtfWApO1xuICAgIH1cbiAgICBjbSA9IHt9IGFzIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT47XG4gICAgZm9yIChjb25zdCBrZXkgb2Ygb3duS2V5cyhtZXRhIGFzIGFueSkpIHtcbiAgICAgIChjbSBhcyBhbnkpW2tleV0gPSAobWV0YSBhcyBhbnkpW2tleV07XG4gICAgfVxuICAgIGlmIChtZXRhLm5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY20ubmFtZSA9IGAke1N0cmluZyhwcm9wZXJ0eUtleSl9YDtcbiAgICB9XG4gICAgY20udHlwZSA9IHR5cGU7XG4gICAgY20uc2VsZiA9IHBrO1xuICAgIGNtLm1hbmFnZXIgPSBuZXcgbWFuYWdlcihjbSk7XG4gICAgYWxsTWV0YWRhdGEuc2V0KHBrLCBjbSk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShQUk9QRVJUWV9NRVRBREFUQV9LRVksIGFsbE1ldGFkYXRhLCB0YXJnZXQpO1xuICB9O1xufVxuIl19
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2ZpZWxkcy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU90RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQXFCL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFjM0IsWUFBWSxNQUEwQjtRQVIvQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixlQUFVLEdBQTBCLFlBQVksQ0FBQztRQUNqRCxnQkFBVyxHQUEyQixNQUFNLENBQUM7UUFHbEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztTQUN0QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUM5QjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGlDQUFpQztJ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Tix3RkFBd0Y7WUFDeEYsTUFBTSxLQUFLLENBQUMsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsRUFBRSxHQUFHLEVBQStCLENBQUM7UUFDckMsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBVyxDQUFDLEVBQUU7WUFDckMsRUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFJLElBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDM0IsRUFBRSxDQUFDLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1NBQ3BDO1FBQ0QsRUFBRSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDZixFQUFFLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNiLEVBQUUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi9kYXRhLW1vZGVsJztcbmltcG9ydCB7XG4gIERJU1BFRElUX0RJU1BMQVlfVFlQRVMsXG4gIERJU1BFRElUX0VESVRPUl9UWVBFUyxcbn0gZnJvbSAnLi4vLi4vZGlzcGVkaXQvZGlzcGVkaXQvZGlzcGVkaXQuY29uc3RhbnRzJztcblxuZXhwb3J0IGNvbnN0IFBST1BFUlRZX01FVEFEQVRBX0tFWSA9IFN5bWJvbCgnbmd4RGF0YU1ldGFkYXRhJyk7XG5cbi8qKlxuICogRGVzY3JpcHRpdmUgaW5mbyBmb3IgYWxsIGZpZWxkcy5cbiAqIEFsbCBhcmUgb3B0aW9uYWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkTWV0YWRhdGE8RlQ+IHtcbiAgLyoqIEZpZWxkIG5hbWUgKGZvciBkaXNwbGF5LCBjb2x1bW4gdGl0bGUsIGV0Yy4uKSAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogRmllbGQgaGVscCB0ZXh0IChmb3IgaW5wdXQpICovXG4gIGhlbHA/OiBzdHJpbmc7XG4gIC8qKiBGaWVsZCBkZXNjcmlwdGlvbiAoZm9yIGRldGFpbHMgb24gaG92ZXIgZXRjLi4pICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKiogRmllbGQgcmVxdWlyZWQgOiBubyB1bmRlZmluZWQgYWxsb3dlZCBvbiBzYXZlID8gKi9cbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAvKiogRmllbGQgY2Fubm90IGJlIHVwZGF0ZWQgKi9cbiAgcmVhZG9ubHk/OiBib29sZWFuO1xuICAvKiogRGVmYXVsdCB2YWx1ZSAqL1xuICBkZWZhdWx0VmFsdWU/OiBGVCB8ICgoYXJnczogYW55KSA9PiBGVCkgfCBudWxsO1xufVxuXG4vKipcbiAqIEJhc2UgZmllbGQgbWFuYWdlciwgc3RvcmVzIG1ldGFkYXRhIGFuZCBwcm92aWRlcyBjb21tb24gZmllbGQgdXRpbGl0aWVzXG4gKlxuICogLSBuYW1lIDogZmllbGQgbmFtZSwgc2hvdWxkIGJlIHRoZSBzYW1lIGluIGRhdGEgc3RydWN0dXJlIGFuZCBtb2RlbFxuICogLSBoZWxwIDogZmllbGQgaGVscCB0ZXh0LCBibGFuayBieSBkZWZhdWx0XG4gKiAtIGRlc2NyaXB0aW9uIDogZmllbGQgbmFtZSBmb3IgaHVtYW5zXG4gKiAtIHJlYWRvbmx5IDogZmllbGQgaXMgcmVhZG9ubHkgKGNhbm5vdCBiZSBjaGFuZ2VkIC8gcHVzaGVkIHRvIGFwaSlcbiAqIC0gZGVmYXVsdCA6IGRlZmF1bHQgdmFsdWUgZm9yIGZpZWxkXG4gKlxuICogLSBlZGl0b3JfdHlwZSA6IGVkaXRvciB0eXBlXG4gKiAtIGRpc3BsYXlfdHlwZSA6IGRpc3BsYXkgdHlwZVxuICpcbiAqIC0gZnJvbUpzb24oZGF0YSkgOiBkZXNlcmlhbGl6ZXJcbiAqIC0gdG9Kc29uKGRhdGEpIDogc2VyaWFsaXNlclxuICogLSB0b1N0cmluZyhkYXRhLGZvcm1hdCkgOiB0byBzdHJpbmcsIGZvciBkaXNwbGF5XG4gKlxuICogLSBmb3JtQ29udHJvbCA6IHJldHVybnMgZmllbGQgZm9ybSBjb250cm9sXG4gKiAtIHZhbGlkYXRvcnMgOiByZXR1cm5zIGZpZWxkIHZhbGlkYXRvclxuICovXG5leHBvcnQgY2xhc3MgQmFzZUZpZWxkTWFuYWdlcjxGVD4gaW1wbGVtZW50cyBJRmllbGRNZXRhZGF0YTxGVD4ge1xuICAvKiogTmFtZSBpcyBtYW5kYXRvcnkgaW4gYSBmaWVsZCBtYW5hZ2VyLiBJdCBpcyBnaXZlbiBieVxuICAgKiBmaWVsZCBkZWNvcmF0b3IgaWYgbm90IGRpcmVjdGx5IGdpdmVuIGluIGZpZWxkIG1hbmFnZXIuICovXG4gIHB1YmxpYyBuYW1lITogc3RyaW5nO1xuICBwdWJsaWMgZGVzY3JpcHRpb24hOiBzdHJpbmc7XG4gIHB1YmxpYyBoZWxwITogc3RyaW5nO1xuICBwdWJsaWMgcmVxdWlyZWQgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XG4gIHB1YmxpYyBjb21wdXRlZCA9IGZhbHNlO1xuICBwdWJsaWMgZGVmYXVsdFZhbHVlPzogRlQgfCAoKGFyZ3M6IGFueSkgPT4gRlQpO1xuXG4gIHB1YmxpYyBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAnaW5wdXQudGV4dCc7XG4gIHB1YmxpYyBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICd0ZXh0JztcblxuICBjb25zdHJ1Y3RvcihwYXJhbXM6IElGaWVsZE1ldGFkYXRhPEZUPikge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgcGFyYW1zKTtcbiAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgdGhpcy5uYW1lID0gJ25vbmFtZSc7XG4gICAgfVxuICAgIGlmICghdGhpcy5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHRoaXMubmFtZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmhlbHApIHtcbiAgICAgIHRoaXMuaGVscCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLmdldERlZmF1bHRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqIFJldHVybiBmaWVsZCB2YWxpZGF0b3JzICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JzKCk7XG4gIH1cblxuICAvKiogUmV0dXJucyBjdXJyZW50IGZpZWxkIG5hbWUgKi9cbiAgcHVibGljIGdldCBmbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUuc3BsaXQoJ19fJylbMV0gfHwgdGhpcy5uYW1lO1xuICB9XG5cbiAgLyoqIENyZWF0ZSBhIG5ldyB0eXBlZCBmb3JtQ29udHJvbCBmb3IgdGhpcyBmaWVsZC4gKi9cbiAgcHVibGljIGZvcm1Db250cm9sKGluc3RhbmNlOiBEYXRhTW9kZWwpOiBGb3JtQ29udHJvbDxGVCB8IG51bGw+IHtcbiAgICByZXR1cm4gbmV3IEZvcm1Db250cm9sPEZUPihcbiAgICAgICgoaW5zdGFuY2UgYXMgYW55KVt0aGlzLmZuYW1lXSBhcyBGVCkgfHwgKHRoaXMuZ2V0RGVmYXVsdFZhbHVlKCkgYXMgRlQpLFxuICAgICAgdGhpcy52YWxpZGF0b3JzXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBKU09OIGRlc2VyaWFsaXplciBiYXNlIG1ldGhvZC4gKi9cbiAgcHVibGljIGZyb21Kc29uKGRhdGE6IGFueSk6IEZUIHtcbiAgICByZXR1cm4gZGF0YSBhcyBGVDtcbiAgfVxuXG4gIC8qKiBKU09OIHNlcmlhbGl6ZXIgYmFzZSBtZXRob2QuICovXG4gIHB1YmxpYyB0b0pzb24oZGF0YTogRlQpOiBhbnkge1xuICAgIHJldHVybiBkYXRhIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IHZhbHVlIChhcyBzdHJpbmcpXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwYXJhbSBmb3JtYXQgKG5vdCB1c2VkKVxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKGRhdGE6IEZULCBmb3JtYXQ6IHN0cmluZyA9ICdkZWZhdWx0Jyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2RhdGF9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGRlZmF1bHQgdmFsdWUgZm9yIG1vZGVsLCB1c2luZyBhcmdzIGlmIG5lZWRlZC5cbiAgICogQHBhcmFtIGFyZ3NcbiAgICovXG4gIHB1YmxpYyBkZWZhdWx0KGFyZ3M6IGFueSA9IHt9KTogRlQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRWYWx1ZShhcmdzKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gdmFsaWRhdG9yc1xuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICBjb25zdCB2OiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHYucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBkZWZhdWx0IHZhbHVlIGZvciBtb2RlbCwgdXNpbmcgYXJncyBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VmFsdWUoYXJnczogYW55ID0ge30pOiBGVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZShhcmdzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRmllbGQgJHt0aGlzLm5hbWV9IDogbm8gZGVmYXVsdCB2YWx1ZSBmb3IgcmVxdWlyZWQgZmllbGRgXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBGaWVsZCBkYXRhIHN0b3JlZCBvbiByZWZsZWN0ZWQgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkU3RvcmVkTWV0YWRhdGE8RlQ+IGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8RlQ+IHtcbiAgc2VsZjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgbWFuYWdlcjogQmFzZUZpZWxkTWFuYWdlcjxGVD47XG59XG5cbi8qKiBVdGlsIHRvIGdldCBvd24gb2JqZWN0IGtleXMgKi9cbmNvbnN0IG93bktleXMgPSAodGFyZ2V0OiBhbnkpOiBhbnkgPT5cbiAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KS5jb25jYXQoXG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpIGFzIGFueVxuICApO1xuXG4vKiogTWFuYWdlciBjb25zdHJ1Y3RvclxuICogIEZUIGlzIGpzIGZpZWxkIHR5cGU7XG4gKiAgVCBpcyBtYW5hZ2VyIHR5cGVcbiAqICovXG50eXBlIEJhc2VGaWVsZE1hbmFnZXJDb25zdHJ1Y3RvcjxGVCwgVCBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8RlQ+PiA9IG5ldyAoXG4gIHBhcmFtczogYW55XG4pID0+IFQ7XG5cbi8qKlxuICogRmllbGQgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIEZpZWxkRGVjb3JhdG9yRm4gPSAoXG4gIHRhcmdldDogYW55LFxuICBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sXG4pID0+IHZvaWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZpZWxkIGRlY29yYXRvciB0aGF0IGNhbiBvbmx5IGJlIGFwcGxpZWQgd2l0aGluXG4gKiBhbiBvYmplY3QgY29udGFpbmluZyBhIHN0YXRpYyBfX25hbWUgcHJvcGVydHkuXG4gKlxuICpcbiAqIEBwYXJhbSBtZXRhIGZpZWxkIG1ldGFkYXRhXG4gKiBAcGFyYW0gdHlwZSBmaWVsZCB0eXBlIGNvZGVcbiAqIEBwYXJhbSBtYW5hZ2VyIGZpZWxkIG1hbmFnZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyaWNEYXRhRmllbGQ8XG4gIEZULFxuICBNRCBleHRlbmRzIElGaWVsZE1ldGFkYXRhPEZUPixcbiAgTUcgZXh0ZW5kcyBCYXNlRmllbGRNYW5hZ2VyPEZUPlxuPihcbiAgbWV0YTogTUQsXG4gIHR5cGU6IHN0cmluZyxcbiAgbWFuYWdlcjogQmFzZUZpZWxkTWFuYWdlckNvbnN0cnVjdG9yPEZULCBNRz5cbik6IEZpZWxkRGVjb3JhdG9yRm4ge1xuICByZXR1cm4gKHRhcmdldDogRGF0YU1vZGVsLCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sKSA9PiB7XG4gICAgY29uc3QgYWxsTWV0YWRhdGE6IE1hcDxcbiAgICAgIHN0cmluZyxcbiAgICAgIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT5cbiAgICA+ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShQUk9QRVJUWV9NRVRBREFUQV9LRVksIHRhcmdldCkgfHxcbiAgICBuZXcgTWFwPHN0cmluZywgSUZpZWxkU3RvcmVkTWV0YWRhdGE8YW55Pj4oKTtcbiAgICBsZXQgY25hbWU6IHN0cmluZyA9IGAkeyh0YXJnZXQuY29uc3RydWN0b3IgYXMgYW55KS5fX25hbWV9YDtcbiAgICBpZiAoKGNuYW1lID09PSBgdW5kZWZpbmVkYCB8fCBjbmFtZSA9PT0gJycpICYmIHR5cGUgIT09ICdwcmltYXJ5RmllbGQnKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYERlY29yYXRvciAke3R5cGV9IGFsbG93ZWQgb25seSBvbiBjbGFzc2VzIHdpdGggc3RhdGljIF9fbmFtZSBmaWVsZCA6IFwiJHtjbmFtZX1cIiBmb3VuZCBmb3IgLSAke3RhcmdldH1gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBwayA9IGAke2NuYW1lfV9fJHtTdHJpbmcocHJvcGVydHlLZXkpfWA7XG4gICAgbGV0IGNtID0gYWxsTWV0YWRhdGEuZ2V0KHBrKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoY20pIHtcbiAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIG9jY3VyIGFzIG1ldGFkYXRhIGlzIG9iamVjdCBib3VuZCBhbmQgcHJvcGVydHkgbmFtZXMgbXVzdCBiZSB1bmlxdWVcbiAgICAgIHRocm93IEVycm9yKGBGaWVsZCAke3BrfSBhbHJlYWR5IGRlZmluZWQgPSAke2NtfWApO1xuICAgIH1cbiAgICBjbSA9IHt9IGFzIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT47XG4gICAgZm9yIChjb25zdCBrZXkgb2Ygb3duS2V5cyhtZXRhIGFzIGFueSkpIHtcbiAgICAgIChjbSBhcyBhbnkpW2tleV0gPSAobWV0YSBhcyBhbnkpW2tleV07XG4gICAgfVxuICAgIGlmIChtZXRhLm5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY20ubmFtZSA9IGAke1N0cmluZyhwcm9wZXJ0eUtleSl9YDtcbiAgICB9XG4gICAgY20udHlwZSA9IHR5cGU7XG4gICAgY20uc2VsZiA9IHBrO1xuICAgIGNtLm1hbmFnZXIgPSBuZXcgbWFuYWdlcihjbSk7XG4gICAgYWxsTWV0YWRhdGEuc2V0KHBrLCBjbSk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShQUk9QRVJUWV9NRVRBREFUQV9LRVksIGFsbE1ldGFkYXRhLCB0YXJnZXQpO1xuICB9O1xufVxuIl19
|