@sumaris-net/ngx-components 1.16.2 → 1.16.3
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/bundles/sumaris-net.ngx-components.umd.js +38 -27
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/esm2015/src/app/shared/services/job.utils.js +32 -22
- package/fesm2015/sumaris-net.ngx-components.js +31 -21
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/shared/services/job.utils.d.ts +1 -1
|
@@ -15,47 +15,52 @@ export class JobUtils {
|
|
|
15
15
|
.then(() => {
|
|
16
16
|
if (opts === null || opts === void 0 ? void 0 : opts.maxProgression)
|
|
17
17
|
progression.next(opts.maxProgression);
|
|
18
|
-
|
|
19
|
-
opts.progression.complete();
|
|
18
|
+
progression.complete();
|
|
20
19
|
})
|
|
21
20
|
.catch(err => progression.error(err));
|
|
22
21
|
return progression;
|
|
23
22
|
}
|
|
24
23
|
static fetchAllPages(loadPageFn, opts) {
|
|
25
|
-
var _a;
|
|
26
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
-
const maxProgression = opts
|
|
25
|
+
const maxProgression = toNumber(opts === null || opts === void 0 ? void 0 : opts.maxProgression, 100);
|
|
26
|
+
const progression = opts === null || opts === void 0 ? void 0 : opts.progression;
|
|
28
27
|
let total;
|
|
29
28
|
let pageCount;
|
|
30
29
|
let progressionStep;
|
|
31
30
|
let currentPageDataCount;
|
|
32
|
-
const fetchSize = opts
|
|
31
|
+
const fetchSize = toNumber(opts === null || opts === void 0 ? void 0 : opts.fetchSize, 1000);
|
|
32
|
+
if (fetchSize <= 0)
|
|
33
|
+
throw new Error('Unable to fetch pages: invalid fetchSize: ' + fetchSize);
|
|
33
34
|
let offset = 0;
|
|
34
35
|
let data = [];
|
|
35
36
|
do {
|
|
36
37
|
if (opts && opts.logPrefix)
|
|
37
38
|
console.debug(`${opts.logPrefix} Fetching page #${offset / fetchSize}...`);
|
|
38
|
-
//
|
|
39
|
+
// Fetch a page
|
|
39
40
|
const res = yield loadPageFn(offset, fetchSize);
|
|
41
|
+
// Concat to previous result
|
|
40
42
|
data = data.concat(res.data);
|
|
43
|
+
// Compute variables, for next loop
|
|
41
44
|
currentPageDataCount = res.data && res.data.length || 0;
|
|
42
45
|
offset += currentPageDataCount;
|
|
43
|
-
// Set total count (only
|
|
46
|
+
// Set total count (only once)
|
|
44
47
|
if (isNil(total) && isNotNil(res.total)) {
|
|
45
48
|
total = res.total;
|
|
46
49
|
// Compute the number of page
|
|
47
50
|
pageCount = Math.round(res.total / fetchSize + 0.5); // Round to HALF_UP integer
|
|
48
51
|
// Compute step, by dividing maxProgression by number of page
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
if (progression) {
|
|
53
|
+
progressionStep = maxProgression / pageCount;
|
|
54
|
+
// DEBUG
|
|
55
|
+
if (opts && opts.logPrefix)
|
|
56
|
+
console.debug(`${opts.logPrefix} {pageCount: ${pageCount}, progression: ${progression.value}, pageProgressionStep: ${progressionStep}}`);
|
|
57
|
+
}
|
|
53
58
|
}
|
|
54
59
|
// Increment progression on each iteration (if possible)
|
|
55
|
-
if (
|
|
56
|
-
|
|
60
|
+
if (isNotNil(progressionStep)) {
|
|
61
|
+
progression.next(progression.value + progressionStep);
|
|
57
62
|
}
|
|
58
|
-
if (opts
|
|
63
|
+
if (opts === null || opts === void 0 ? void 0 : opts.onPageLoaded)
|
|
59
64
|
opts.onPageLoaded(res);
|
|
60
65
|
} while (currentPageDataCount > 0 && ((isNil(total) && currentPageDataCount === fetchSize) || (isNotNil(total) && (offset < total))));
|
|
61
66
|
// Complete progression to reach progressionStep value (because of round)
|
|
@@ -66,14 +71,19 @@ export class JobUtils {
|
|
|
66
71
|
total = data.length;
|
|
67
72
|
pageCount = Math.round(data.length / fetchSize + 0.5);
|
|
68
73
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
// Compute final increment, using the real page count
|
|
75
|
+
progressionStep = Math.max(0, maxProgression - (progressionStep * pageCount));
|
|
76
|
+
}
|
|
77
|
+
// Or increment once (e.g. when total is not known, in received LoadResult)
|
|
78
|
+
else if (progression) {
|
|
79
|
+
progressionStep = maxProgression;
|
|
73
80
|
}
|
|
74
|
-
//
|
|
75
|
-
|
|
76
|
-
opts.progression.
|
|
81
|
+
// DEBUG
|
|
82
|
+
if (opts && opts.logPrefix)
|
|
83
|
+
console.debug(`${opts.logPrefix} All pages fetched - {progression: ${progression.value}, lastProgressionStep: ${progressionStep}`);
|
|
84
|
+
// Final increment
|
|
85
|
+
if (progression && progressionStep > 0) {
|
|
86
|
+
progression.next(progression.value + progressionStep);
|
|
77
87
|
}
|
|
78
88
|
return {
|
|
79
89
|
data,
|
|
@@ -82,4 +92,4 @@ export class JobUtils {
|
|
|
82
92
|
});
|
|
83
93
|
}
|
|
84
94
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvam9iLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVekQsV0FBVztBQUNYLE1BQU0sT0FBTyxRQUFRO0lBRW5CLE1BQU0sQ0FBQyxNQUFNLENBQTJDLFlBQTRDLEVBQUUsSUFBUTtRQUM1RyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUEyQyxRQUFzQyxFQUFFLElBQVE7UUFDckcsT0FBTyxLQUFLLENBQXFCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQTJDLFFBQXNDLEVBQUUsSUFBTztRQUVsRyxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNuRCxRQUFRLGlDQUFLLElBQUksS0FBRSxXQUFXLElBQUU7YUFDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGNBQWM7Z0JBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDaEUsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsV0FBVztnQkFBRSxJQUFJLENBQUMsV0FB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QztnQkFDdkMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUU7b0JBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUZBQW1GLEtBQUssY0FBYyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDbEksS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQ3BCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2lCQUN2RDtnQkFFRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLENBQUM7Z0JBQ2hGLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxFQUFFO29CQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO2lCQUNyRTthQUNGO1lBQ0Qsb0JBQW9CO2lCQUNmLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzVDO1lBRUQsT0FBTztnQkFDTCxJQUFJO2dCQUNKLEtBQUs7YUFDTixDQUFDOztLQUNIO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlZmVyLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc05pbCwgaXNOb3ROaWwsIHRvTnVtYmVyIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IExvYWRSZXN1bHQsIExvYWRSZXN1bHRCeVBhZ2VGbiB9IGZyb20gJy4vZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuXG5leHBvcnQgdHlwZSBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+ID0gKG9wdHM/OiBPKSA9PiBQcm9taXNlPHZvaWQ+O1xuZXhwb3J0IGludGVyZmFjZSBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnMge1xuICBtYXhQcm9ncmVzc2lvbj86IG51bWJlcjtcbiAgcHJvZ3Jlc3Npb24/OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEpvYlV0aWxzIHtcblxuICBzdGF0aWMgZGVmZXJzPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+KHJ1bm5hYmxlTGlzdDogQ2FsbGFibGVXaXRoUHJvZ3Jlc3Npb25GbjxPPltdLCBvcHRzPzogTyk6IE9ic2VydmFibGU8bnVtYmVyPltdIHtcbiAgICByZXR1cm4gcnVubmFibGVMaXN0Lm1hcChydW5uYWJsZSA9PiBKb2JVdGlscy5kZWZlcihydW5uYWJsZSwgb3B0cykpO1xuICB9XG5cbiAgc3RhdGljIGRlZmVyPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+KHJ1bm5hYmxlOiBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8+LCBvcHRzPzogTyk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGRlZmVyPE9ic2VydmFibGU8bnVtYmVyPj4oKCkgPT4gSm9iVXRpbHMucnVuKHJ1bm5hYmxlLCBvcHRzKSk7XG4gIH1cblxuICBzdGF0aWMgcnVuPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+KHJ1bm5hYmxlOiBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8+LCBvcHRzOiBPKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcblxuICAgIGNvbnN0IHByb2dyZXNzaW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHJ1bm5hYmxlKHsuLi5vcHRzLCBwcm9ncmVzc2lvbn0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGlmIChvcHRzPy5tYXhQcm9ncmVzc2lvbikgcHJvZ3Jlc3Npb24ubmV4dChvcHRzLm1heFByb2dyZXNzaW9uKTtcbiAgICAgICAgaWYgKG9wdHM/LnByb2dyZXNzaW9uKSBvcHRzLnByb2dyZXNzaW9uLmNvbXBsZXRlKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiBwcm9ncmVzc2lvbi5lcnJvcihlcnIpKTtcbiAgICByZXR1cm4gcHJvZ3Jlc3Npb247XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZmV0Y2hBbGxQYWdlczxUPihcbiAgICBsb2FkUGFnZUZuOiBMb2FkUmVzdWx0QnlQYWdlRm48VD4sXG4gICAgb3B0cz86IHtcbiAgICAgIG1heFByb2dyZXNzaW9uPzogbnVtYmVyO1xuICAgICAgcHJvZ3Jlc3Npb24/OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgICAgIG9uUGFnZUxvYWRlZD86IChwYWdlUmVzdWx0OiBMb2FkUmVzdWx0PFQ+KSA9PiBhbnk7XG4gICAgICBsb2dQcmVmaXg/OiBzdHJpbmc7XG4gICAgICBmZXRjaFNpemU/OiBudW1iZXI7XG4gICAgfSk6IFByb21pc2U8TG9hZFJlc3VsdDxUPj4ge1xuXG4gICAgY29uc3QgbWF4UHJvZ3Jlc3Npb24gPSBvcHRzICYmIG9wdHMubWF4UHJvZ3Jlc3Npb24gfHwgdW5kZWZpbmVkO1xuICAgIGxldCB0b3RhbDsgbGV0IHBhZ2VDb3VudDsgbGV0IHByb2dyZXNzaW9uU3RlcDsgbGV0IGN1cnJlbnRQYWdlRGF0YUNvdW50OiBudW1iZXI7XG4gICAgY29uc3QgZmV0Y2hTaXplID0gb3B0cyAmJiBvcHRzLmZldGNoU2l6ZSB8fCAxMDAwO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCBkYXRhOiBUW10gPSBbXTtcbiAgICBkbyB7XG5cbiAgICAgIGlmIChvcHRzICYmIG9wdHMubG9nUHJlZml4KSBjb25zb2xlLmRlYnVnKGAke29wdHMubG9nUHJlZml4fSBGZXRjaGluZyBwYWdlICMke29mZnNldCAvIGZldGNoU2l6ZX0uLi5gKTtcblxuICAgICAgLy8gR2V0IHNvbWUgaXRlbXMsIHVzaW5nIHBhZ2luZ1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgbG9hZFBhZ2VGbihvZmZzZXQsIGZldGNoU2l6ZSk7XG4gICAgICBkYXRhID0gZGF0YS5jb25jYXQocmVzLmRhdGEpO1xuICAgICAgY3VycmVudFBhZ2VEYXRhQ291bnQgPSByZXMuZGF0YSAmJiByZXMuZGF0YS5sZW5ndGggfHwgMDtcbiAgICAgIG9mZnNldCArPSBjdXJyZW50UGFnZURhdGFDb3VudDtcblxuICAgICAgLy8gU2V0IHRvdGFsIGNvdW50IChvbmx5IGlmIG5vdCBhbHJlYWR5IHNldClcbiAgICAgIGlmIChpc05pbCh0b3RhbCkgJiYgaXNOb3ROaWwocmVzLnRvdGFsKSkge1xuICAgICAgICB0b3RhbCA9IHJlcy50b3RhbDtcbiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIHBhZ2VcbiAgICAgICAgcGFnZUNvdW50ID0gTWF0aC5yb3VuZChyZXMudG90YWwgLyBmZXRjaFNpemUgKyAwLjUpOyAvLyBSb3VuZCB0byBIQUxGX1VQIGludGVnZXJcbiAgICAgICAgLy8gQ29tcHV0ZSBzdGVwLCBieSBkaXZpZGluZyBtYXhQcm9ncmVzc2lvbiBieSBudW1iZXIgb2YgcGFnZVxuICAgICAgICBjb25zdCBhY3R1YWxQcm9ncmVzc2lvbiA9IE1hdGgubWF4KDAsIHRvTnVtYmVyKG9wdHMgJiYgb3B0cy5wcm9ncmVzc2lvbj8udmFsdWUsIDApKTtcbiAgICAgICAgcHJvZ3Jlc3Npb25TdGVwID0gbWF4UHJvZ3Jlc3Npb25cbiAgICAgICAgICA/IChtYXhQcm9ncmVzc2lvbiAtIGFjdHVhbFByb2dyZXNzaW9uKSAvIHBhZ2VDb3VudFxuICAgICAgICAgIDogdW5kZWZpbmVkIC8qaWYgMCByZXNldCB0byB1bmRlZmluZWQqLztcbiAgICAgIH1cblxuICAgICAgLy8gSW5jcmVtZW50IHByb2dyZXNzaW9uIG9uIGVhY2ggaXRlcmF0aW9uIChpZiBwb3NzaWJsZSlcbiAgICAgIGlmIChvcHRzICYmIG9wdHMucHJvZ3Jlc3Npb24gJiYgaXNOb3ROaWwocHJvZ3Jlc3Npb25TdGVwKSkge1xuICAgICAgICBvcHRzLnByb2dyZXNzaW9uLm5leHQob3B0cy5wcm9ncmVzc2lvbi52YWx1ZSArIHByb2dyZXNzaW9uU3RlcCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzICYmIG9wdHMub25QYWdlTG9hZGVkKSBvcHRzLm9uUGFnZUxvYWRlZChyZXMpO1xuXG4gICAgfSB3aGlsZSAoY3VycmVudFBhZ2VEYXRhQ291bnQgPiAwICYmICgoaXNOaWwodG90YWwpICYmIGN1cnJlbnRQYWdlRGF0YUNvdW50ID09PSBmZXRjaFNpemUpIHx8IChpc05vdE5pbCh0b3RhbCkgJiYgKG9mZnNldCA8IHRvdGFsKSkpKTtcblxuICAgIC8vIENvbXBsZXRlIHByb2dyZXNzaW9uIHRvIHJlYWNoIHByb2dyZXNzaW9uU3RlcCB2YWx1ZSAoYmVjYXVzZSBvZiByb3VuZClcbiAgICBpZiAoaXNOb3ROaWwocHJvZ3Jlc3Npb25TdGVwKSkge1xuXG4gICAgICAvLyBJZiB0b3RhbCByZXR1cm4gYnkgbG9hZEFsbCB3YXMgYmFkICFcbiAgICAgIGlmIChpc05vdE5pbCh0b3RhbCkgJiYgZGF0YS5sZW5ndGggPCB0b3RhbCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYEEgZnVuY3Rpb24gbG9hZEFsbCgpIHJldHVybmVkIGEgYmFkIHRvdGFsIChsZXNzIHRoYW4gYWxsIHBhZ2UncyBkYXRhKSEgRXhwZWN0ZWQgJHt0b3RhbH0gYnV0IGZldGNoICR7ZGF0YS5sZW5ndGh9YCk7XG4gICAgICAgIHRvdGFsID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIHBhZ2VDb3VudCA9IE1hdGgucm91bmQoZGF0YS5sZW5ndGggLyBmZXRjaFNpemUgKyAwLjUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYXN0UHJvZ3Jlc3Npb25TdGVwID0gb3B0cy5tYXhQcm9ncmVzc2lvbiAtIChwcm9ncmVzc2lvblN0ZXAgKiBwYWdlQ291bnQpO1xuICAgICAgaWYgKG9wdHMgJiYgb3B0cy5wcm9ncmVzc2lvbiAmJiBsYXN0UHJvZ3Jlc3Npb25TdGVwID4gMCkge1xuICAgICAgICBvcHRzLnByb2dyZXNzaW9uLm5leHQob3B0cy5wcm9ncmVzc2lvbi52YWx1ZSArIGxhc3RQcm9ncmVzc2lvblN0ZXApO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBPciBpbmNyZW1lbnQgb25jZVxuICAgIGVsc2UgaWYgKG9wdHMgJiYgb3B0cy5wcm9ncmVzc2lvbiAmJiBvcHRzLm1heFByb2dyZXNzaW9uKSB7XG4gICAgICBvcHRzLnByb2dyZXNzaW9uLm5leHQob3B0cy5tYXhQcm9ncmVzc2lvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICB0b3RhbFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvam9iLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVekQsV0FBVztBQUNYLE1BQU0sT0FBTyxRQUFRO0lBRW5CLE1BQU0sQ0FBQyxNQUFNLENBQTJDLFlBQTRDLEVBQUUsSUFBUTtRQUM1RyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUEyQyxRQUFzQyxFQUFFLElBQVE7UUFDckcsT0FBTyxLQUFLLENBQXFCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQTJDLFFBQXNDLEVBQUUsSUFBTztRQUVsRyxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNuRCxRQUFRLGlDQUFLLElBQUksS0FBRSxXQUFXLElBQUU7YUFDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGNBQWM7Z0JBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDaEUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFH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aW9yU3ViamVjdCwgZGVmZXIsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzTmlsLCBpc05vdE5pbCwgdG9OdW1iZXIgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgTG9hZFJlc3VsdCwgTG9hZFJlc3VsdEJ5UGFnZUZuIH0gZnJvbSAnLi9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5cbmV4cG9ydCB0eXBlIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uRm48TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4gPSAob3B0cz86IE8pID0+IFByb21pc2U8dm9pZD47XG5leHBvcnQgaW50ZXJmYWNlIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucyB7XG4gIG1heFByb2dyZXNzaW9uPzogbnVtYmVyO1xuICBwcm9ncmVzc2lvbj86IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgSm9iVXRpbHMge1xuXG4gIHN0YXRpYyBkZWZlcnM8TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGVMaXN0OiBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8+W10sIG9wdHM/OiBPKTogT2JzZXJ2YWJsZTxudW1iZXI+W10ge1xuICAgIHJldHVybiBydW5uYWJsZUxpc3QubWFwKHJ1bm5hYmxlID0+IEpvYlV0aWxzLmRlZmVyKHJ1bm5hYmxlLCBvcHRzKSk7XG4gIH1cblxuICBzdGF0aWMgZGVmZXI8TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGU6IENhbGxhYmxlV2l0aFByb2dyZXNzaW9uRm48Tz4sIG9wdHM/OiBPKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gZGVmZXI8T2JzZXJ2YWJsZTxudW1iZXI+PigoKSA9PiBKb2JVdGlscy5ydW4ocnVubmFibGUsIG9wdHMpKTtcbiAgfVxuXG4gIHN0YXRpYyBydW48TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGU6IENhbGxhYmxlV2l0aFByb2dyZXNzaW9uRm48Tz4sIG9wdHM6IE8pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuXG4gICAgY29uc3QgcHJvZ3Jlc3Npb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcnVubmFibGUoey4uLm9wdHMsIHByb2dyZXNzaW9ufSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgaWYgKG9wdHM/Lm1heFByb2dyZXNzaW9uKSBwcm9ncmVzc2lvbi5uZXh0KG9wdHMubWF4UHJvZ3Jlc3Npb24pO1xuICAgICAgICBwcm9ncmVzc2lvbi5jb21wbGV0ZSgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnIgPT4gcHJvZ3Jlc3Npb24uZXJyb3IoZXJyKSk7XG4gICAgcmV0dXJuIHByb2dyZXNzaW9uO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGZldGNoQWxsUGFnZXM8VD4oXG4gICAgbG9hZFBhZ2VGbjogTG9hZFJlc3VsdEJ5UGFnZUZuPFQ+LFxuICAgIG9wdHM/OiB7XG4gICAgICBwcm9ncmVzc2lvbj86IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICAgICAgbWF4UHJvZ3Jlc3Npb24/OiBudW1iZXI7XG4gICAgICBvblBhZ2VMb2FkZWQ/OiAocGFnZVJlc3VsdDogTG9hZFJlc3VsdDxUPikgPT4gYW55O1xuICAgICAgbG9nUHJlZml4Pzogc3RyaW5nO1xuICAgICAgZmV0Y2hTaXplPzogbnVtYmVyO1xuICAgIH0pOiBQcm9taXNlPExvYWRSZXN1bHQ8VD4+IHtcblxuICAgIGNvbnN0IG1heFByb2dyZXNzaW9uID0gdG9OdW1iZXIob3B0cz8ubWF4UHJvZ3Jlc3Npb24sIDEwMCk7XG4gICAgY29uc3QgcHJvZ3Jlc3Npb24gPSBvcHRzPy5wcm9ncmVzc2lvbjtcbiAgICBsZXQgdG90YWw7IGxldCBwYWdlQ291bnQ7IGxldCBwcm9ncmVzc2lvblN0ZXA7IGxldCBjdXJyZW50UGFnZURhdGFDb3VudDogbnVtYmVyO1xuICAgIGNvbnN0IGZldGNoU2l6ZSA9IHRvTnVtYmVyKG9wdHM/LmZldGNoU2l6ZSwgMTAwMCk7XG4gICAgaWYgKGZldGNoU2l6ZSA8PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmZXRjaCBwYWdlczogaW52YWxpZCBmZXRjaFNpemU6ICcgKyBmZXRjaFNpemUpO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCBkYXRhOiBUW10gPSBbXTtcbiAgICBkbyB7XG5cbiAgICAgIGlmIChvcHRzICYmIG9wdHMubG9nUHJlZml4KSBjb25zb2xlLmRlYnVnKGAke29wdHMubG9nUHJlZml4fSBGZXRjaGluZyBwYWdlICMke29mZnNldCAvIGZldGNoU2l6ZX0uLi5gKTtcblxuICAgICAgLy8gRmV0Y2ggYSBwYWdlXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBsb2FkUGFnZUZuKG9mZnNldCwgZmV0Y2hTaXplKTtcblxuICAgICAgLy8gQ29uY2F0IHRvIHByZXZpb3VzIHJlc3VsdFxuICAgICAgZGF0YSA9IGRhdGEuY29uY2F0KHJlcy5kYXRhKTtcblxuICAgICAgLy8gQ29tcHV0ZSB2YXJpYWJsZXMsIGZvciBuZXh0IGxvb3BcbiAgICAgIGN1cnJlbnRQYWdlRGF0YUNvdW50ID0gcmVzLmRhdGEgJiYgcmVzLmRhdGEubGVuZ3RoIHx8IDA7XG4gICAgICBvZmZzZXQgKz0gY3VycmVudFBhZ2VEYXRhQ291bnQ7XG5cbiAgICAgIC8vIFNldCB0b3RhbCBjb3VudCAob25seSBvbmNlKVxuICAgICAgaWYgKGlzTmlsKHRvdGFsKSAmJiBpc05vdE5pbChyZXMudG90YWwpKSB7XG4gICAgICAgIHRvdGFsID0gcmVzLnRvdGFsO1xuICAgICAgICAvLyBDb21wdXRlIHRoZSBudW1iZXIgb2YgcGFnZVxuICAgICAgICBwYWdlQ291bnQgPSBNYXRoLnJvdW5kKHJlcy50b3RhbCAvIGZldGNoU2l6ZSArIDAuNSk7IC8vIFJvdW5kIHRvIEhBTEZfVVAgaW50ZWdlclxuICAgICAgICAvLyBDb21wdXRlIHN0ZXAsIGJ5IGRpdmlkaW5nIG1heFByb2dyZXNzaW9uIGJ5IG51bWJlciBvZiBwYWdlXG4gICAgICAgIGlmIChwcm9ncmVzc2lvbikge1xuICAgICAgICAgIHByb2dyZXNzaW9uU3RlcCA9IG1heFByb2dyZXNzaW9uIC8gcGFnZUNvdW50O1xuICAgICAgICAgIC8vIERFQlVHXG4gICAgICAgICAgaWYgKG9wdHMgJiYgb3B0cy5sb2dQcmVmaXgpIGNvbnNvbGUuZGVidWcoYCR7b3B0cy5sb2dQcmVmaXh9IHtwYWdlQ291bnQ6ICR7cGFnZUNvdW50fSwgcHJvZ3Jlc3Npb246ICR7cHJvZ3Jlc3Npb24udmFsdWV9LCBwYWdlUHJvZ3Jlc3Npb25TdGVwOiAke3Byb2dyZXNzaW9uU3RlcH19YCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSW5jcmVtZW50IHByb2dyZXNzaW9uIG9uIGVhY2ggaXRlcmF0aW9uIChpZiBwb3NzaWJsZSlcbiAgICAgIGlmIChpc05vdE5pbChwcm9ncmVzc2lvblN0ZXApKSB7XG4gICAgICAgIHByb2dyZXNzaW9uLm5leHQocHJvZ3Jlc3Npb24udmFsdWUgKyBwcm9ncmVzc2lvblN0ZXApO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0cz8ub25QYWdlTG9hZGVkKSBvcHRzLm9uUGFnZUxvYWRlZChyZXMpO1xuXG4gICAgfSB3aGlsZSAoY3VycmVudFBhZ2VEYXRhQ291bnQgPiAwICYmICgoaXNOaWwodG90YWwpICYmIGN1cnJlbnRQYWdlRGF0YUNvdW50ID09PSBmZXRjaFNpemUpIHx8IChpc05vdE5pbCh0b3RhbCkgJiYgKG9mZnNldCA8IHRvdGFsKSkpKTtcblxuICAgIC8vIENvbXBsZXRlIHByb2dyZXNzaW9uIHRvIHJlYWNoIHByb2dyZXNzaW9uU3RlcCB2YWx1ZSAoYmVjYXVzZSBvZiByb3VuZClcbiAgICBpZiAoaXNOb3ROaWwocHJvZ3Jlc3Npb25TdGVwKSkge1xuXG4gICAgICAvLyBJZiB0b3RhbCByZXR1cm4gYnkgbG9hZEFsbCB3YXMgYmFkICFcbiAgICAgIGlmIChpc05vdE5pbCh0b3RhbCkgJiYgZGF0YS5sZW5ndGggPCB0b3RhbCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYEEgZnVuY3Rpb24gbG9hZEFsbCgpIHJldHVybmVkIGEgYmFkIHRvdGFsIChsZXNzIHRoYW4gYWxsIHBhZ2UncyBkYXRhKSEgRXhwZWN0ZWQgJHt0b3RhbH0gYnV0IGZldGNoICR7ZGF0YS5sZW5ndGh9YCk7XG4gICAgICAgIHRvdGFsID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIHBhZ2VDb3VudCA9IE1hdGgucm91bmQoZGF0YS5sZW5ndGggLyBmZXRjaFNpemUgKyAwLjUpO1xuICAgICAgfVxuXG4gICAgICAvLyBDb21wdXRlIGZpbmFsIGluY3JlbWVudCwgdXNpbmcgdGhlIHJlYWwgcGFnZSBjb3VudFxuICAgICAgcHJvZ3Jlc3Npb25TdGVwID0gTWF0aC5tYXgoMCwgbWF4UHJvZ3Jlc3Npb24gLSAocHJvZ3Jlc3Npb25TdGVwICogcGFnZUNvdW50KSk7XG5cbiAgICB9XG5cbiAgICAvLyBPciBpbmNyZW1lbnQgb25jZSAoZS5nLiB3aGVuIHRvdGFsIGlzIG5vdCBrbm93biwgaW4gcmVjZWl2ZWQgTG9hZFJlc3VsdClcbiAgICBlbHNlIGlmIChwcm9ncmVzc2lvbikge1xuICAgICAgcHJvZ3Jlc3Npb25TdGVwID0gbWF4UHJvZ3Jlc3Npb247XG4gICAgfVxuXG4gICAgLy8gREVCVUdcbiAgICBpZiAob3B0cyAmJiBvcHRzLmxvZ1ByZWZpeCkgY29uc29sZS5kZWJ1ZyhgJHtvcHRzLmxvZ1ByZWZpeH0gQWxsIHBhZ2VzIGZldGNoZWQgLSB7cHJvZ3Jlc3Npb246ICR7cHJvZ3Jlc3Npb24udmFsdWV9LCBsYXN0UHJvZ3Jlc3Npb25TdGVwOiAke3Byb2dyZXNzaW9uU3RlcH1gKTtcblxuICAgIC8vIEZpbmFsIGluY3JlbWVudFxuICAgIGlmIChwcm9ncmVzc2lvbiAmJiBwcm9ncmVzc2lvblN0ZXAgPiAwKSB7XG4gICAgICBwcm9ncmVzc2lvbi5uZXh0KHByb2dyZXNzaW9uLnZhbHVlICsgcHJvZ3Jlc3Npb25TdGVwKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIHRvdGFsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -17692,47 +17692,52 @@ class JobUtils {
|
|
|
17692
17692
|
.then(() => {
|
|
17693
17693
|
if (opts === null || opts === void 0 ? void 0 : opts.maxProgression)
|
|
17694
17694
|
progression.next(opts.maxProgression);
|
|
17695
|
-
|
|
17696
|
-
opts.progression.complete();
|
|
17695
|
+
progression.complete();
|
|
17697
17696
|
})
|
|
17698
17697
|
.catch(err => progression.error(err));
|
|
17699
17698
|
return progression;
|
|
17700
17699
|
}
|
|
17701
17700
|
static fetchAllPages(loadPageFn, opts) {
|
|
17702
|
-
var _a;
|
|
17703
17701
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17704
|
-
const maxProgression = opts
|
|
17702
|
+
const maxProgression = toNumber(opts === null || opts === void 0 ? void 0 : opts.maxProgression, 100);
|
|
17703
|
+
const progression = opts === null || opts === void 0 ? void 0 : opts.progression;
|
|
17705
17704
|
let total;
|
|
17706
17705
|
let pageCount;
|
|
17707
17706
|
let progressionStep;
|
|
17708
17707
|
let currentPageDataCount;
|
|
17709
|
-
const fetchSize = opts
|
|
17708
|
+
const fetchSize = toNumber(opts === null || opts === void 0 ? void 0 : opts.fetchSize, 1000);
|
|
17709
|
+
if (fetchSize <= 0)
|
|
17710
|
+
throw new Error('Unable to fetch pages: invalid fetchSize: ' + fetchSize);
|
|
17710
17711
|
let offset = 0;
|
|
17711
17712
|
let data = [];
|
|
17712
17713
|
do {
|
|
17713
17714
|
if (opts && opts.logPrefix)
|
|
17714
17715
|
console.debug(`${opts.logPrefix} Fetching page #${offset / fetchSize}...`);
|
|
17715
|
-
//
|
|
17716
|
+
// Fetch a page
|
|
17716
17717
|
const res = yield loadPageFn(offset, fetchSize);
|
|
17718
|
+
// Concat to previous result
|
|
17717
17719
|
data = data.concat(res.data);
|
|
17720
|
+
// Compute variables, for next loop
|
|
17718
17721
|
currentPageDataCount = res.data && res.data.length || 0;
|
|
17719
17722
|
offset += currentPageDataCount;
|
|
17720
|
-
// Set total count (only
|
|
17723
|
+
// Set total count (only once)
|
|
17721
17724
|
if (isNil(total) && isNotNil(res.total)) {
|
|
17722
17725
|
total = res.total;
|
|
17723
17726
|
// Compute the number of page
|
|
17724
17727
|
pageCount = Math.round(res.total / fetchSize + 0.5); // Round to HALF_UP integer
|
|
17725
17728
|
// Compute step, by dividing maxProgression by number of page
|
|
17726
|
-
|
|
17727
|
-
|
|
17728
|
-
|
|
17729
|
-
|
|
17729
|
+
if (progression) {
|
|
17730
|
+
progressionStep = maxProgression / pageCount;
|
|
17731
|
+
// DEBUG
|
|
17732
|
+
if (opts && opts.logPrefix)
|
|
17733
|
+
console.debug(`${opts.logPrefix} {pageCount: ${pageCount}, progression: ${progression.value}, pageProgressionStep: ${progressionStep}}`);
|
|
17734
|
+
}
|
|
17730
17735
|
}
|
|
17731
17736
|
// Increment progression on each iteration (if possible)
|
|
17732
|
-
if (
|
|
17733
|
-
|
|
17737
|
+
if (isNotNil(progressionStep)) {
|
|
17738
|
+
progression.next(progression.value + progressionStep);
|
|
17734
17739
|
}
|
|
17735
|
-
if (opts
|
|
17740
|
+
if (opts === null || opts === void 0 ? void 0 : opts.onPageLoaded)
|
|
17736
17741
|
opts.onPageLoaded(res);
|
|
17737
17742
|
} while (currentPageDataCount > 0 && ((isNil(total) && currentPageDataCount === fetchSize) || (isNotNil(total) && (offset < total))));
|
|
17738
17743
|
// Complete progression to reach progressionStep value (because of round)
|
|
@@ -17743,14 +17748,19 @@ class JobUtils {
|
|
|
17743
17748
|
total = data.length;
|
|
17744
17749
|
pageCount = Math.round(data.length / fetchSize + 0.5);
|
|
17745
17750
|
}
|
|
17746
|
-
|
|
17747
|
-
|
|
17748
|
-
|
|
17749
|
-
|
|
17751
|
+
// Compute final increment, using the real page count
|
|
17752
|
+
progressionStep = Math.max(0, maxProgression - (progressionStep * pageCount));
|
|
17753
|
+
}
|
|
17754
|
+
// Or increment once (e.g. when total is not known, in received LoadResult)
|
|
17755
|
+
else if (progression) {
|
|
17756
|
+
progressionStep = maxProgression;
|
|
17750
17757
|
}
|
|
17751
|
-
//
|
|
17752
|
-
|
|
17753
|
-
opts.progression.
|
|
17758
|
+
// DEBUG
|
|
17759
|
+
if (opts && opts.logPrefix)
|
|
17760
|
+
console.debug(`${opts.logPrefix} All pages fetched - {progression: ${progression.value}, lastProgressionStep: ${progressionStep}`);
|
|
17761
|
+
// Final increment
|
|
17762
|
+
if (progression && progressionStep > 0) {
|
|
17763
|
+
progression.next(progression.value + progressionStep);
|
|
17754
17764
|
}
|
|
17755
17765
|
return {
|
|
17756
17766
|
data,
|