@sapphire-ion/framework 1.2.6 → 1.2.8
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HttpClient, HttpEventType } from '@angular/common/http';
|
|
2
|
-
import { BehaviorSubject
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
4
|
import { ApiUrlProviderService } from './api-url-provider.service';
|
|
5
5
|
import { GenericService } from '../generic.service';
|
|
@@ -96,27 +96,52 @@ export class StorageService {
|
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
blob = null;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
lstResponse.push({ path: p, blob: blob });
|
|
99
|
+
/**
|
|
100
|
+
* @param lstFiles
|
|
101
|
+
* lista de arquivos a serem baixados
|
|
102
|
+
* @param onUpdate
|
|
103
|
+
* funcao chamada a cada progresso de download
|
|
104
|
+
* @returns
|
|
105
|
+
* lista de respostas dos arquivos, como promise, quando todos estiverem completos ou deram erro, é retornada
|
|
106
|
+
*/
|
|
107
|
+
async GetBlobBatchLiveReponse(lstFiles, onUpdate) {
|
|
108
|
+
const lst = lstFiles.map(p => ({
|
|
109
|
+
path: p,
|
|
110
|
+
observable: this.GetFile(p),
|
|
111
|
+
progress: 0,
|
|
112
|
+
success: undefined,
|
|
113
|
+
blob: undefined
|
|
118
114
|
}));
|
|
119
|
-
|
|
115
|
+
const isAllComplete = () => lst.every(obs => obs.progress >= 1);
|
|
116
|
+
const getTotalProgressAvg = () => lst.reduce((acc, obs) => acc + obs.progress, 0) / lst.length;
|
|
117
|
+
return new Promise((resolve) => {
|
|
118
|
+
for (const obs of lst) {
|
|
119
|
+
obs.observable.subscribe({
|
|
120
|
+
next: (event) => {
|
|
121
|
+
if (event.type === HttpEventType.DownloadProgress) {
|
|
122
|
+
obs.progress = event.loaded / event.total;
|
|
123
|
+
onUpdate(getTotalProgressAvg(), lst, event.type);
|
|
124
|
+
}
|
|
125
|
+
else if (event.type === HttpEventType.Response) {
|
|
126
|
+
obs.blob = new Blob([event.body], { type: event.body.type });
|
|
127
|
+
obs.success = true;
|
|
128
|
+
if (isAllComplete()) {
|
|
129
|
+
resolve(lst);
|
|
130
|
+
}
|
|
131
|
+
onUpdate(getTotalProgressAvg(), lst, event.type);
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
error: (err) => {
|
|
135
|
+
obs.success = false;
|
|
136
|
+
obs.progress = 1;
|
|
137
|
+
onUpdate(getTotalProgressAvg(), lst);
|
|
138
|
+
if (isAllComplete()) {
|
|
139
|
+
resolve(lst);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
});
|
|
120
145
|
}
|
|
121
146
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, deps: [{ token: i1.HttpClient }, { token: i2.ApiUrlProviderService }, { token: i3.GenericService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
122
147
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, providedIn: 'root' }); }
|
|
@@ -147,4 +172,4 @@ function DownloadFile(data, fileUrl) {
|
|
|
147
172
|
});
|
|
148
173
|
linkElement.dispatchEvent(me);
|
|
149
174
|
}
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsYUFBYSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBUXBELE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ1EsSUFBaUIsRUFDakIscUJBQTRDLEVBQzVDLGNBQThCO1FBRjlCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFHOUIseUJBQW9CLEdBQWUsRUFBRSxDQUFDO0lBRjFDLENBQUM7SUFJRSxXQUFXLENBQUMsSUFBWTtRQUM3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQTtRQUNwRSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxhQUFhLENBQUMsSUFBWSxFQUFFLE1BQVksRUFBRSxPQUFnQixLQUFLO1FBQ3BFLElBQUcsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENB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QUM7K0dBM0hVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQW9JRCxNQUFNLE9BQU8sUUFBUTtJQUduQixZQUFtQixJQUFZO1FBQVosU0FBSSxHQUFKLElBQUksQ0FBUTtRQUQvQixhQUFRLEdBQWlCLE9BQU8sQ0FBQztJQUNBLENBQUM7Q0FDbkM7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUF3QixFQUFFLE9BQU87SUFDckQsTUFBTSxjQUFjLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXZFLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxQyxXQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QyxXQUFXLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUUvRSxJQUFJLEVBQUUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7UUFDN0IsSUFBSSxFQUFFLE1BQU07UUFDWixPQUFPLEVBQUUsSUFBSTtRQUNiLFVBQVUsRUFBRSxLQUFLO0tBQ3BCLENBQUMsQ0FBQztJQUVILFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGxhc3RWYWx1ZUZyb20sIG1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEFwaVVybFByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vYXBpLXVybC1wcm92aWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2VuZXJpY1NlcnZpY2UgfSBmcm9tICcuLi9nZW5lcmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uL3V0aWxzLnNlcnZpY2UnO1xyXG5cclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gIHByaXZhdGUgaHR0cCA6IEh0dHBDbGllbnQsXHJcbiAgcHJpdmF0ZSBhcGlVcmxQcm92aWRlclNlcnZpY2U6IEFwaVVybFByb3ZpZGVyU2VydmljZSxcclxuICBwcml2YXRlIGdlbmVyaWNTZXJ2aWNlOiBHZW5lcmljU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHByaXZhdGUgY3VycmVudGx5RG93bmxvYWRpbmc6IERvd25sb2FkW10gPSBbXTtcclxuXHJcbiAgcHVibGljIEdldFByb2dyZXNzKGZpbGU6IHN0cmluZyk6IG51bWJlcntcclxuICAgIGNvbnN0IERvd25sb2FkID0gdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5maW5kKHAgPT4gcC5maWxlID09IGZpbGUpXHJcbiAgICByZXR1cm4gRG93bmxvYWQgPyBEb3dubG9hZC5wcm9ncmVzcyA6IDA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU3RhcnREb3dubG9hZChmaWxlOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgcG9zdDogYm9vbGVhbiA9IGZhbHNlKTogRG93bmxvYWQge1xyXG4gICAgaWYoIXRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKSl7XHJcbiAgICAgIGNvbnN0IGRvd25sb2FkID0gbmV3IERvd25sb2FkKGZpbGUpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLnB1c2goZG93bmxvYWQpO1xyXG4gICAgICB0aGlzLkhhbmRsZURvd25sb2FkKGRvd25sb2FkLCBwYXJhbXMsIHBvc3QpO1xyXG4gICAgICByZXR1cm4gZG93bmxvYWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5maW5kKHAgPT4gcC5maWxlID09IGZpbGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBIYW5kbGVEb3dubG9hZChkb3dubG9hZDogRG93bmxvYWQsIHBhcmFtcz86IGFueSwgcG9zdDogYm9vbGVhbiA9IGZhbHNlKXtcclxuICAgIHZhciByZXF1ZXN0OiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLkdldEZpbGUoZG93bmxvYWQuZmlsZSwgcGFyYW1zLCBwb3N0KTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0UHJvZ2VzcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICAgIGRvd25sb2FkLnJlcXVlc3RQcm9nZXNzID0gcmVxdWVzdFByb2dlc3M7XHJcbiAgICByZXF1ZXN0LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChldmVudCkgPT4ge1xyXG4gICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLkRvd25sb2FkUHJvZ3Jlc3MpIHsgXHJcbiAgICAgICAgICBkb3dubG9hZC5wcm9ncmVzcyA9IGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsOyBcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLm5leHQoZG93bmxvYWQucHJvZ3Jlc3MpO1xyXG4gICAgICAgIH0gZWxzZSBcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSkge1xyXG4gICAgICAgICAgRG93bmxvYWRGaWxlKGV2ZW50LCBkb3dubG9hZC5maWxlKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuc3BsaWNlKHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuaW5kZXhPZihkb3dubG9hZCksIDEpO1xyXG4gICAgICAgICAgcmVxdWVzdFByb2dlc3MuY29tcGxldGUoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGV2ZW50LnN0YXR1cyA9PSA0MDQpe1xyXG4gICAgICAgICAgdGhpcy5nZW5lcmljU2VydmljZS5QcmVzZW50VG9hc3QoXCJBcnF1aXZvIG7Do28gZW5jb250cmFkbyAvIFVybCBpbnbDoWxpZGFcIilcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLmVycm9yKGV2ZW50KTsgXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5jb21wbGV0ZSgpOyBcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5zcGxpY2UodGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5pbmRleE9mKGRvd25sb2FkKSwgMSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgU2FuaXRpemVGaWxlTmFtZSh2KTogc3RyaW5ne1xyXG4gICAgdHJ5e1xyXG4gICAgICB2YXIgZmlsZW5hbWVFbmQ6IHN0cmluZyAgPSB2LnNwbGl0KCcvJykuYXQoLTEpO1xyXG4gICAgICBcclxuICAgICAgaWYoZmlsZW5hbWVFbmQuc3BsaXQoJy4nKS5sZW5ndGggPD0gMil7XHJcbiAgICAgICAgcmV0dXJuIGZpbGVuYW1lRW5kO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB2YXIgbHN0ID0gZmlsZW5hbWVFbmQuc3BsaXQoJy4nKTtcclxuICAgICAgICBsc3RbMF0gPSAnJztcclxuICAgICAgICByZXR1cm4gbHN0LmpvaW4oJy4nKS5yZXBsYWNlKCcuJywgJycpO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHJldHVybiB2O1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBHZXRGaWxlKGZpbGVVcmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBwb3N0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxCbG9iPj4ge1xyXG4gICAgdmFyIHVybDogc3RyaW5nO1xyXG4gICAgaWYoZmlsZVVybFswXSA9PSAnLycpeyBcclxuICAgICAgdXJsID0gZmlsZVVybC5zbGljZSgxLCBmaWxlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHVybCA9IGAke3RoaXMuYXBpVXJsUHJvdmlkZXJTZXJ2aWNlLmFwaVVybH0ke2ZpbGVVcmx9YDtcclxuICAgIH1cclxuICAgIHVybCA9IGVuY29kZVVSSSh1cmwpLnJlcGxhY2UoLyMvZywgJyUyMycpXHJcblxyXG4gICAgaWYoIXBvc3Qpe1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgICAgICBwYXJhbXM6IHBhcmFtc1xyXG4gICAgICB9KTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBwYXJhbXMsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRGaWxlUmVzcG9uc2UoZmlsZVVybDogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8SHR0cFJlc3BvbnNlPEJsb2I+PiB7XHJcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbSh0aGlzLkdldEZpbGUoZmlsZVVybCwgcGFyYW1zLCBwb3N0KS5waXBlKFxyXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSksXHJcbiAgICAgIG1hcChldmVudCA9PiBldmVudCBhcyBIdHRwUmVzcG9uc2U8QmxvYj4pXHJcbiAgICApKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgR2V0RmlsZVJlc3BvbnNlQmxvYihwYXRoOiBzdHJpbmcpOiBQcm9taXNlPEJsb2I+e1xyXG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLkdldEZpbGVSZXNwb25zZShwYXRoKSkuYm9keTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBHZXRGaWxlUmVzcG9uc2VCbG9iQmF0Y2gobHN0UGF0aDogc3RyaW5nW10pOiBQcm9taXNlPEdldEZpbGVSZXNwb25zZVtdPntcclxuICAgIGNvbnN0IGxzdFJlc3BvbnNlOiBHZXRGaWxlUmVzcG9uc2VbXSA9IFtdO1xyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFxyXG4gICAgICBsc3RQYXRoLm1hcChhc3luYyBwID0+IHtcclxuICAgICAgICB2YXIgYmxvYiA9IG51bGw7XHJcbiAgICAgICAgaWYocCl7XHJcbiAgICAgICAgICB0cnl7XHJcbiAgICAgICAgICAgIGJsb2IgPSBhd2FpdCB0aGlzLkdldEZpbGVSZXNwb25zZUJsb2IocCk7XHJcbiAgICAgICAgICB9Y2F0Y2h7XHJcbiAgICAgICAgICAgIGJsb2IgPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBsc3RSZXNwb25zZS5wdXNoKHtwYXRoOiBwLCBibG9iOiBibG9ifSk7XHJcbiAgICAgIH1cclxuICAgICkpO1xyXG4gICAgcmV0dXJuIGxzdFJlc3BvbnNlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHZXRGaWxlUmVzcG9uc2V7XHJcbiAgcGF0aDogc3RyaW5nO1xyXG4gIGJsb2I/OiBCbG9iO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRG93bmxvYWQge1xyXG4gIHJlcXVlc3RQcm9nZXNzOiBPYnNlcnZhYmxlPGFueT47XHJcbiAgcHJvZ3Jlc3MgICAgICA6IG51bWJlciA9IDAuMDAwMDE7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGZpbGU6IHN0cmluZyl7fVxyXG59XHJcblxyXG5mdW5jdGlvbiBEb3dubG9hZEZpbGUoZGF0YTogSHR0cFJlc3BvbnNlPEJsb2I+LCBmaWxlVXJsKSB7XHJcbiAgY29uc3QgZG93bmxvYWRlZEZpbGUgPSBuZXcgQmxvYihbZGF0YS5ib2R5XSwgeyB0eXBlOiBkYXRhLmJvZHkudHlwZSB9KTtcclxuXHJcbiAgdmFyIGZpbGVVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGRvd25sb2FkZWRGaWxlKTtcclxuICBjb25zdCBsaW5rRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZShcImhyZWZcIiwgZmlsZVVSTCk7XHJcbiAgbGlua0VsZW1lbnQuc2V0QXR0cmlidXRlKFwidGFyZ2V0XCIsIFwiX2JsYW5rXCIpO1xyXG4gIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZShcImRvd25sb2FkXCIsIFN0b3JhZ2VTZXJ2aWNlLlNhbml0aXplRmlsZU5hbWUoZmlsZVVybCkpO1xyXG5cclxuICBsZXQgbWUgPSBuZXcgTW91c2VFdmVudChcImNsaWNrXCIsIHtcclxuICAgICAgdmlldzogd2luZG93LFxyXG4gICAgICBidWJibGVzOiB0cnVlLFxyXG4gICAgICBjYW5jZWxhYmxlOiBmYWxzZSxcclxuICB9KTtcclxuXHJcbiAgbGlua0VsZW1lbnQuZGlzcGF0Y2hFdmVudChtZSk7XHJcbn0iXX0=
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy93ZWIvc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsYUFBYSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQTBDLE1BQU0sTUFBTSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQVFwRCxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUNRLElBQWlCLEVBQ2pCLHFCQUE0QyxFQUM1QyxjQUE4QjtRQUY5QixTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBRzlCLHlCQUFvQixHQUFlLEVBQUUsQ0FBQztJQUYxQyxDQUFDO0lBSUUsV0FBVyxDQUFDLElBQVk7UUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUE7UUFDcEUsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQVksRUFBRSxNQUFZLEVBQUUsT0FBZ0IsS0FBSztRQUNwRSxJQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJ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U0FBUyxZQUFZLENBQUMsSUFBd0IsRUFBRSxPQUFPO0lBQ3JELE1BQU0sY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUV2RSxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsV0FBVyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFL0UsSUFBSSxFQUFFLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO1FBQzdCLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsS0FBSztLQUNwQixDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBsYXN0VmFsdWVGcm9tLCBtYXAsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBcGlVcmxQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL2FwaS11cmwtcHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi91dGlscy5zZXJ2aWNlJztcclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICBwcml2YXRlIGh0dHAgOiBIdHRwQ2xpZW50LFxyXG4gIHByaXZhdGUgYXBpVXJsUHJvdmlkZXJTZXJ2aWNlOiBBcGlVcmxQcm92aWRlclNlcnZpY2UsXHJcbiAgcHJpdmF0ZSBnZW5lcmljU2VydmljZTogR2VuZXJpY1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwcml2YXRlIGN1cnJlbnRseURvd25sb2FkaW5nOiBEb3dubG9hZFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBHZXRQcm9ncmVzcyhmaWxlOiBzdHJpbmcpOiBudW1iZXJ7XHJcbiAgICBjb25zdCBEb3dubG9hZCA9IHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKVxyXG4gICAgcmV0dXJuIERvd25sb2FkID8gRG93bmxvYWQucHJvZ3Jlc3MgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFN0YXJ0RG93bmxvYWQoZmlsZTogc3RyaW5nLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSk6IERvd25sb2FkIHtcclxuICAgIGlmKCF0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmZpbmQocCA9PiBwLmZpbGUgPT0gZmlsZSkpe1xyXG4gICAgICBjb25zdCBkb3dubG9hZCA9IG5ldyBEb3dubG9hZChmaWxlKTtcclxuICAgICAgdGhpcy5jdXJyZW50bHlEb3dubG9hZGluZy5wdXNoKGRvd25sb2FkKTtcclxuICAgICAgdGhpcy5IYW5kbGVEb3dubG9hZChkb3dubG9hZCwgcGFyYW1zLCBwb3N0KTtcclxuICAgICAgcmV0dXJuIGRvd25sb2FkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuZmluZChwID0+IHAuZmlsZSA9PSBmaWxlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgSGFuZGxlRG93bmxvYWQoZG93bmxvYWQ6IERvd25sb2FkLCBwYXJhbXM/OiBhbnksIHBvc3Q6IGJvb2xlYW4gPSBmYWxzZSl7XHJcbiAgICB2YXIgcmVxdWVzdDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5HZXRGaWxlKGRvd25sb2FkLmZpbGUsIHBhcmFtcywgcG9zdCk7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdFByb2dlc3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgICBkb3dubG9hZC5yZXF1ZXN0UHJvZ2VzcyA9IHJlcXVlc3RQcm9nZXNzO1xyXG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoZXZlbnQpID0+IHtcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzKSB7IFxyXG4gICAgICAgICAgZG93bmxvYWQucHJvZ3Jlc3MgPSBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbDsgXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5uZXh0KGRvd25sb2FkLnByb2dyZXNzKTtcclxuICAgICAgICB9IGVsc2UgXHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgIERvd25sb2FkRmlsZShldmVudCwgZG93bmxvYWQuZmlsZSk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLnNwbGljZSh0aGlzLmN1cnJlbnRseURvd25sb2FkaW5nLmluZGV4T2YoZG93bmxvYWQpLCAxKTtcclxuICAgICAgICAgIHJlcXVlc3RQcm9nZXNzLmNvbXBsZXRlKCk7IFxyXG4gICAgICAgIH1cclxuICAgICAgICBpZihldmVudC5zdGF0dXMgPT0gNDA0KXtcclxuICAgICAgICAgIHRoaXMuZ2VuZXJpY1NlcnZpY2UuUHJlc2VudFRvYXN0KFwiQXJxdWl2byBuw6NvIGVuY29udHJhZG8gLyBVcmwgaW52w6FsaWRhXCIpXHJcbiAgICAgICAgICByZXF1ZXN0UHJvZ2Vzcy5lcnJvcihldmVudCk7IFxyXG4gICAgICAgICAgcmVxdWVzdFByb2dlc3MuY29tcGxldGUoKTsgXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuc3BsaWNlKHRoaXMuY3VycmVudGx5RG93bmxvYWRpbmcuaW5kZXhPZihkb3dubG9hZCksIDEpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIFNhbml0aXplRmlsZU5hbWUodjogc3RyaW5nKTogc3RyaW5ne1xyXG4gICAgdHJ5e1xyXG4gICAgICB2YXIgZmlsZW5hbWVFbmQ6IHN0cmluZyAgPSB2LnNwbGl0KCcvJykuYXQoLTEpO1xyXG4gICAgICBcclxuICAgICAgaWYoZmlsZW5hbWVFbmQuc3BsaXQoJy4nKS5sZW5ndGggPD0gMil7XHJcbiAgICAgICAgcmV0dXJuIGZpbGVuYW1lRW5kO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB2YXIgbHN0ID0gZmlsZW5hbWVFbmQuc3BsaXQoJy4nKTtcclxuICAgICAgICBsc3RbMF0gPSAnJztcclxuICAgICAgICByZXR1cm4gbHN0LmpvaW4oJy4nKS5yZXBsYWNlKCcuJywgJycpO1xyXG4gICAgICB9XHJcbiAgICB9Y2F0Y2h7XHJcbiAgICAgIHJldHVybiB2O1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBHZXRGaWxlKGZpbGVVcmw6IHN0cmluZywgcGFyYW1zPzogYW55LCBwb3N0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxCbG9iPj4ge1xyXG4gICAgdmFyIHVybDogc3RyaW5nO1xyXG4gICAgaWYoZmlsZVVybFswXSA9PSAnLycpeyBcclxuICAgICAgdXJsID0gZmlsZVVybC5zbGljZSgxLCBmaWxlVXJsLmxlbmd0aCAtIDEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHVybCA9IGAke3RoaXMuYXBpVXJsUHJvdmlkZXJTZXJ2aWNlLmFwaVVybH0ke2ZpbGVVcmx9YDtcclxuICAgIH1cclxuICAgIHVybCA9IGVuY29kZVVSSSh1cmwpLnJlcGxhY2UoLyMvZywgJyUyMycpXHJcblxyXG4gICAgaWYoIXBvc3Qpe1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcclxuICAgICAgICBwYXJhbXM6IHBhcmFtc1xyXG4gICAgICB9KTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCBwYXJhbXMsIHtcclxuICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICBvYnNlcnZlOiAnZXZlbnRzJyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBsc3RGaWxlcyBcclxuICAgKiBsaXN0YSBkZSBhcnF1aXZvcyBhIHNlcmVtIGJhaXhhZG9zIFxyXG4gICAqIEBwYXJhbSBvblVwZGF0ZSBcclxuICAgKiBmdW5jYW8gY2hhbWFkYSBhIGNhZGEgcHJvZ3Jlc3NvIGRlIGRvd25sb2FkXHJcbiAgICogQHJldHVybnMgXHJcbiAgICogbGlzdGEgZGUgcmVzcG9zdGFzIGRvcyBhcnF1aXZvcywgY29tbyBwcm9taXNlLCBxdWFuZG8gdG9kb3MgZXN0aXZlcmVtIGNvbXBsZXRvcyBvdSBkZXJhbSBlcnJvLCDDqSByZXRvcm5hZGFcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgR2V0QmxvYkJhdGNoTGl2ZVJlcG9uc2UobHN0RmlsZXM6IHN0cmluZ1tdLCBvblVwZGF0ZTogKHRvdGFsUHJvZ3Jlc3M6IG51bWJlciwgbHN0UmVzcG9uc2U6IExpdmVSZXNwb25zZVtdLCBldmVudFR5cGU/OiBIdHRwRXZlbnRUeXBlKSA9PiB2b2lkKTogUHJvbWlzZTxMaXZlUmVzcG9uc2VbXT4ge1xyXG4gICAgY29uc3QgbHN0OiBMaXZlUmVzcG9uc2VbXSA9IGxzdEZpbGVzLm1hcChwID0+ICh7XHJcbiAgICAgIHBhdGggICAgICA6IHAsXHJcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuR2V0RmlsZShwKSxcclxuICAgICAgcHJvZ3Jlc3MgIDogMCxcclxuICAgICAgc3VjY2VzcyAgIDogdW5kZWZpbmVkLFxyXG4gICAgICBibG9iICAgICAgOiB1bmRlZmluZWRcclxuICAgIH0pKTtcclxuXHJcbiAgICBjb25zdCBpc0FsbENvbXBsZXRlID0gKCkgPT4gbHN0LmV2ZXJ5KG9icyA9PiBvYnMucHJvZ3Jlc3MgPj0gMSk7XHJcbiAgICBjb25zdCBnZXRUb3RhbFByb2dyZXNzQXZnID0gKCkgPT4gbHN0LnJlZHVjZSgoYWNjLCBvYnMpID0+IGFjYyArIG9icy5wcm9ncmVzcywgMCkgLyBsc3QubGVuZ3RoO1xyXG5cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxMaXZlUmVzcG9uc2VbXT4oKHJlc29sdmUpID0+IHtcclxuICAgICAgZm9yIChjb25zdCBvYnMgb2YgbHN0KSB7XHJcbiAgICAgICAgb2JzLm9ic2VydmFibGUuc3Vic2NyaWJlKHtcclxuICAgICAgICAgIG5leHQ6IChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgb2JzLnByb2dyZXNzID0gZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWw7XHJcbiAgICAgICAgICAgICAgb25VcGRhdGUoZ2V0VG90YWxQcm9ncmVzc0F2ZygpLCBsc3QsIGV2ZW50LnR5cGUpO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgb2JzLmJsb2IgPSBuZXcgQmxvYihbZXZlbnQuYm9keV0sIHsgdHlwZTogZXZlbnQuYm9keS50eXBlIH0pO1xyXG4gICAgICAgICAgICAgIG9icy5zdWNjZXNzID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBpZihpc0FsbENvbXBsZXRlKCkpe1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShsc3QpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBvblVwZGF0ZShnZXRUb3RhbFByb2dyZXNzQXZnKCksIGxzdCwgZXZlbnQudHlwZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgICBvYnMuc3VjY2VzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBvYnMucHJvZ3Jlc3MgPSAxO1xyXG4gICAgICAgICAgICBvblVwZGF0ZShnZXRUb3RhbFByb2dyZXNzQXZnKCksIGxzdCk7XHJcbiAgICAgICAgICAgIGlmKGlzQWxsQ29tcGxldGUoKSl7XHJcbiAgICAgICAgICAgICAgcmVzb2x2ZShsc3QpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdldEZpbGVSZXNwb25zZXtcclxuICBwYXRoOiBzdHJpbmc7XHJcbiAgYmxvYj86IEJsb2I7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGl2ZVJlc3BvbnNle1xyXG4gIHBhdGg6IHN0cmluZztcclxuICBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxCbG9iPj47XHJcbiAgcHJvZ3Jlc3M6IG51bWJlcjtcclxuICBibG9iPzogQmxvYjtcclxuICBzdWNjZXNzPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERvd25sb2FkIHtcclxuICByZXF1ZXN0UHJvZ2VzczogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIHByb2dyZXNzICAgICAgOiBudW1iZXIgPSAwLjAwMDAxO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmaWxlOiBzdHJpbmcpe31cclxufVxyXG5cclxuZnVuY3Rpb24gRG93bmxvYWRGaWxlKGRhdGE6IEh0dHBSZXNwb25zZTxCbG9iPiwgZmlsZVVybCkge1xyXG4gIGNvbnN0IGRvd25sb2FkZWRGaWxlID0gbmV3IEJsb2IoW2RhdGEuYm9keV0sIHsgdHlwZTogZGF0YS5ib2R5LnR5cGUgfSk7XHJcblxyXG4gIHZhciBmaWxlVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChkb3dubG9hZGVkRmlsZSk7XHJcbiAgY29uc3QgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiYVwiKTtcclxuICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJocmVmXCIsIGZpbGVVUkwpO1xyXG4gIGxpbmtFbGVtZW50LnNldEF0dHJpYnV0ZShcInRhcmdldFwiLCBcIl9ibGFua1wiKTtcclxuICBsaW5rRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkb3dubG9hZFwiLCBTdG9yYWdlU2VydmljZS5TYW5pdGl6ZUZpbGVOYW1lKGZpbGVVcmwpKTtcclxuXHJcbiAgbGV0IG1lID0gbmV3IE1vdXNlRXZlbnQoXCJjbGlja1wiLCB7XHJcbiAgICAgIHZpZXc6IHdpbmRvdyxcclxuICAgICAgYnViYmxlczogdHJ1ZSxcclxuICAgICAgY2FuY2VsYWJsZTogZmFsc2UsXHJcbiAgfSk7XHJcblxyXG4gIGxpbmtFbGVtZW50LmRpc3BhdGNoRXZlbnQobWUpO1xyXG59Il19
|
|
@@ -5,7 +5,7 @@ import { CameraSource } from '@capacitor/camera';
|
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { Injectable, InjectionToken, NgModule, Inject, inject, signal, model, Component, Input, Pipe, input, computed, effect, contentChildren, output, forwardRef, ContentChildren, EventEmitter, Output, HostListener, ViewChild, Directive, ElementRef, TemplateRef, ChangeDetectionStrategy, ContentChild, ViewChildren, HostBinding, ViewContainerRef } from '@angular/core';
|
|
7
7
|
import moment from 'moment';
|
|
8
|
-
import { BehaviorSubject, firstValueFrom, from, switchMap,
|
|
8
|
+
import { BehaviorSubject, firstValueFrom, from, switchMap, Subject, takeUntil, distinctUntilChanged, debounceTime, lastValueFrom, Observable, tap, finalize, share, catchError } from 'rxjs';
|
|
9
9
|
import * as i1$1 from '@angular/common/http';
|
|
10
10
|
import { HttpClient, HttpEventType, HttpHeaders } from '@angular/common/http';
|
|
11
11
|
import * as i2$1 from '@angular/forms';
|
|
@@ -2397,27 +2397,52 @@ class StorageService {
|
|
|
2397
2397
|
});
|
|
2398
2398
|
}
|
|
2399
2399
|
}
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
blob = null;
|
|
2416
|
-
}
|
|
2417
|
-
}
|
|
2418
|
-
lstResponse.push({ path: p, blob: blob });
|
|
2400
|
+
/**
|
|
2401
|
+
* @param lstFiles
|
|
2402
|
+
* lista de arquivos a serem baixados
|
|
2403
|
+
* @param onUpdate
|
|
2404
|
+
* funcao chamada a cada progresso de download
|
|
2405
|
+
* @returns
|
|
2406
|
+
* lista de respostas dos arquivos, como promise, quando todos estiverem completos ou deram erro, é retornada
|
|
2407
|
+
*/
|
|
2408
|
+
async GetBlobBatchLiveReponse(lstFiles, onUpdate) {
|
|
2409
|
+
const lst = lstFiles.map(p => ({
|
|
2410
|
+
path: p,
|
|
2411
|
+
observable: this.GetFile(p),
|
|
2412
|
+
progress: 0,
|
|
2413
|
+
success: undefined,
|
|
2414
|
+
blob: undefined
|
|
2419
2415
|
}));
|
|
2420
|
-
|
|
2416
|
+
const isAllComplete = () => lst.every(obs => obs.progress >= 1);
|
|
2417
|
+
const getTotalProgressAvg = () => lst.reduce((acc, obs) => acc + obs.progress, 0) / lst.length;
|
|
2418
|
+
return new Promise((resolve) => {
|
|
2419
|
+
for (const obs of lst) {
|
|
2420
|
+
obs.observable.subscribe({
|
|
2421
|
+
next: (event) => {
|
|
2422
|
+
if (event.type === HttpEventType.DownloadProgress) {
|
|
2423
|
+
obs.progress = event.loaded / event.total;
|
|
2424
|
+
onUpdate(getTotalProgressAvg(), lst, event.type);
|
|
2425
|
+
}
|
|
2426
|
+
else if (event.type === HttpEventType.Response) {
|
|
2427
|
+
obs.blob = new Blob([event.body], { type: event.body.type });
|
|
2428
|
+
obs.success = true;
|
|
2429
|
+
if (isAllComplete()) {
|
|
2430
|
+
resolve(lst);
|
|
2431
|
+
}
|
|
2432
|
+
onUpdate(getTotalProgressAvg(), lst, event.type);
|
|
2433
|
+
}
|
|
2434
|
+
},
|
|
2435
|
+
error: (err) => {
|
|
2436
|
+
obs.success = false;
|
|
2437
|
+
obs.progress = 1;
|
|
2438
|
+
onUpdate(getTotalProgressAvg(), lst);
|
|
2439
|
+
if (isAllComplete()) {
|
|
2440
|
+
resolve(lst);
|
|
2441
|
+
}
|
|
2442
|
+
}
|
|
2443
|
+
});
|
|
2444
|
+
}
|
|
2445
|
+
});
|
|
2421
2446
|
}
|
|
2422
2447
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, deps: [{ token: i1$1.HttpClient }, { token: ApiUrlProviderService }, { token: GenericService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2423
2448
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorageService, providedIn: 'root' }); }
|