bx-rest 1.4.0 → 1.5.1
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/CHANGELOG.md +126 -0
- package/README.en.md +3 -3
- package/README.md +3 -3
- package/esm2022/functions/errors.mjs +2 -1
- package/esm2022/functions/mapResult.mjs +4 -2
- package/esm2022/map/disk.mjs +13 -0
- package/esm2022/map/im/recent.mjs +1 -9
- package/esm2022/map/task.mjs +11 -5
- package/esm2022/map/tasks/task.mjs +3 -3
- package/esm2022/map/tasks.mjs +4 -3
- package/esm2022/map/user.mjs +5 -4
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/request-navvy/bizproc.mjs +2 -2
- package/esm2022/request-navvy/crm/item.mjs +1 -1
- package/esm2022/request-navvy/crm/type.mjs +1 -1
- package/esm2022/request-navvy/pull/config.mjs +1 -3
- package/esm2022/request-navvy/task/operation/elapseditem.mjs +8 -65
- package/esm2022/rest/map.mjs +3 -3
- package/esm2022/services/base.mjs +7 -4
- package/esm2022/services/http/HttpBX.mjs +8 -3
- package/esm2022/services/navvy/extends/navvy-pag-base.mjs +78 -9
- package/esm2022/services/navvy/navvy-alternative-pagination-navigation.mjs +21 -71
- package/esm2022/services/navvy/navvy-pag-nav-result-key-object.mjs +12 -52
- package/esm2022/services/navvy/navvy-pag-nav-result-key.mjs +15 -71
- package/esm2022/services/navvy/navvy-pag-nav-tasks.mjs +5 -76
- package/esm2022/services/navvy/navvy-pag-nav-with-useless-key.mjs +10 -76
- package/esm2022/services/navvy/navvy-pag.mjs +7 -65
- package/esm2022/typification/rest/crm/universal.mjs +1 -1
- package/esm2022/typification/rest/settings.mjs +1 -1
- package/esm2022/typification/rest/user/user.mjs +1 -1
- package/fesm2022/bx-rest.mjs +507 -1653
- package/fesm2022/bx-rest.mjs.map +1 -1
- package/functions/errors.d.ts +1 -0
- package/map/disk.d.ts +10 -0
- package/map/task.d.ts +3 -3
- package/map/tasks/task.d.ts +1 -1
- package/map/tasks.d.ts +1 -1
- package/package.json +8 -2
- package/public-api.d.ts +5 -2
- package/request-navvy/crm/item.d.ts +6 -6
- package/request-navvy/crm/type.d.ts +6 -6
- package/request-navvy/pull/config.d.ts +0 -2
- package/rest/map.d.ts +2 -2
- package/services/navvy/extends/navvy-pag-base.d.ts +21 -1
- package/services/navvy/navvy-alternative-pagination-navigation.d.ts +5 -2
- package/services/navvy/navvy-pag-nav-result-key-object.d.ts +0 -2
- package/services/navvy/navvy-pag-nav-result-key.d.ts +1 -4
- package/services/navvy/navvy-pag-nav-tasks.d.ts +5 -9
- package/services/navvy/navvy-pag-nav-with-useless-key.d.ts +0 -2
- package/services/navvy/navvy-pag.d.ts +0 -2
- package/typification/rest/crm/universal.d.ts +116 -0
- package/typification/rest/settings.d.ts +1 -0
- package/typification/rest/user/user.d.ts +3 -3
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { mergeMap, shareReplay } from 'rxjs';
|
|
2
2
|
import clone from 'just-clone';
|
|
3
|
-
import {
|
|
4
|
-
import { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
5
4
|
import { NavvyPagBase } from './extends/navvy-pag-base';
|
|
6
|
-
import { serializeBitrixParams } from '../../functions/serializeBitrixParams';
|
|
7
|
-
import { BXRest } from '../../rest/base';
|
|
8
5
|
/**
|
|
9
6
|
* Класс-прослойка-обработчик для методов работающих на альтернативной постраничной навигации тика как методы по
|
|
10
7
|
* затраченному времени на задачи https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/index.php
|
|
@@ -13,72 +10,25 @@ import { BXRest } from '../../rest/base';
|
|
|
13
10
|
*/
|
|
14
11
|
export class NavvyAlterPagNav extends NavvyPagBase {
|
|
15
12
|
resAll() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return save;
|
|
23
|
-
}), last(), shareReplay(1));
|
|
13
|
+
return this.resFirstPage().pipe(mergeMap(first => this.resPages(first.next ? this.pageParams(first.total) : []).pipe(map(pages => {
|
|
14
|
+
const items = [first.result ?? [], ...pages].flat();
|
|
15
|
+
return ((this.map ? this.map(items) : items) ?? []);
|
|
16
|
+
}))),
|
|
17
|
+
// refCount: без подписчиков оставшиеся страницы запрашивать незачем
|
|
18
|
+
shareReplay({ bufferSize: 1, refCount: true }));
|
|
24
19
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const batchRequests = chunks.map(chunk => {
|
|
38
|
-
return BXRestClass.batch({
|
|
39
|
-
halt: 1,
|
|
40
|
-
cmd: chunk.map(i => {
|
|
41
|
-
const param = clone(this.param);
|
|
42
|
-
if (!param.PARAMS) {
|
|
43
|
-
param.PARAMS = {
|
|
44
|
-
NAV_PARAMS: {
|
|
45
|
-
iNumPage: 0,
|
|
46
|
-
nPageSize: 50
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
// Устанавливаем start в зависимости от индекса
|
|
51
|
-
param.PARAMS.NAV_PARAMS.iNumPage = i + 2; // первая страница уже есть, старт со второй
|
|
52
|
-
// Формируем строку запроса
|
|
53
|
-
return this.http.getNameMethod(this.url)
|
|
54
|
-
+ '?' + serializeBitrixParams(param);
|
|
55
|
-
})
|
|
56
|
-
}, this.requestHeaders);
|
|
57
|
-
});
|
|
58
|
-
return from(batchRequests).pipe(concatMap(request => request), // Выполняет запросы по очереди
|
|
59
|
-
toArray(), // Собирает все результаты в массив
|
|
60
|
-
map(results => {
|
|
61
|
-
const res = items.result;
|
|
62
|
-
for (let result of results) {
|
|
63
|
-
if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {
|
|
64
|
-
res.push(...result.result.result.map(i => i).flat());
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return (this.map) ?
|
|
68
|
-
this.map(res)
|
|
69
|
-
: res;
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return this.mapResultForGetAll(items);
|
|
74
|
-
}), catchError(err => {
|
|
75
|
-
// this.snackBar.error("Проблемы с поточным получение затреканого времени")
|
|
76
|
-
console.error(err);
|
|
77
|
-
return throwError(() => err);
|
|
78
|
-
}));
|
|
79
|
-
}
|
|
80
|
-
mapResultForGetAll(items) {
|
|
81
|
-
return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(map(v => (v && this.map) ? this.map(v) : v)) : from([]);
|
|
20
|
+
/**
|
|
21
|
+
* Параметры остальных страниц. Размер страницы берётся из запроса: портал ограничивает
|
|
22
|
+
* его 50 записями, но вызывающий код может попросить и меньше.
|
|
23
|
+
*/
|
|
24
|
+
pageParams(total = 0) {
|
|
25
|
+
const nav = this.param.PARAMS?.NAV_PARAMS;
|
|
26
|
+
const nPageSize = Math.min(nav?.nPageSize || this.pageSize, this.pageSize);
|
|
27
|
+
const pages = [];
|
|
28
|
+
for (let iNumPage = (nav?.iNumPage || 1) + 1; iNumPage <= Math.ceil(total / nPageSize); iNumPage++) {
|
|
29
|
+
pages.push({ ...clone(this.param), PARAMS: { ...this.param.PARAMS, NAV_PARAMS: { ...nav, nPageSize, iNumPage } } });
|
|
30
|
+
}
|
|
31
|
+
return pages;
|
|
82
32
|
}
|
|
83
33
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktYWx0ZXJuYXRpdmUtcGFnaW5hdGlvbi1uYXZpZ2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvbmF2dnkvbmF2dnktYWx0ZXJuYXRpdmUtcGFnaW5hdGlvbi1uYXZpZ2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFeEYsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHaEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUV4Qzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxnQkFBK0QsU0FBUSxZQUF5QjtJQUUzRyxNQUFNO1FBQ0osSUFBSSxJQUFJLEdBQTRCLEVBQUUsQ0FBQTtRQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUU7YUFDdkIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNKLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTRCLENBQUMsQ0FBQTtZQUM1QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLENBQ0YsRUFDRCxJQUFJLEVBQUUsRUFDTixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FB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QUM7d0JBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOzRCQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQzs0QkFDYixDQUFDLENBQUMsR0FBRyxDQUFBO29CQUNULENBQUMsQ0FBQyxDQUNILENBQUE7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2QyxDQUFDLENBQ0YsRUFDRCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZiwyRUFBMkU7WUFDM0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNsQixPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQXFDO1FBQzlELE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzVDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUE2QixDQUFDLENBQUE7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uY2F0TWFwLCBmcm9tLCBsYXN0LCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHRocm93RXJyb3IsIHRvQXJyYXkgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgaUJYUmVzdEFuc3dlciB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYW5zd2VyJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFJldHVyblR5cGVOYXZ2eSB9IGZyb20gJy4vbmF2dnktc3VwcG9ydCdcbmltcG9ydCB7IGlCWFJlc3RBbHRlcm5hdGl2ZVBhZ2luYXRpb24gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2FwaS1wYWdpbmF0aW9uLWJ4J1xuaW1wb3J0IHsgaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL21hcFJlc3VsdCdcbmltcG9ydCB7IE5hdnZ5UGFnQmFzZSB9IGZyb20gJy4vZXh0ZW5kcy9uYXZ2eS1wYWctYmFzZSdcbmltcG9ydCB7IHNlcmlhbGl6ZUJpdHJpeFBhcmFtcyB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9zZXJpYWxpemVCaXRyaXhQYXJhbXMnXG5pbXBvcnQgeyBCWFJlc3QgfSBmcm9tICcuLi8uLi9yZXN0L2Jhc2UnXG5cbi8qKlxuICog0JrQu9Cw0YHRgS3Qv9GA0L7RgdC70L7QudC60LAt0L7QsdGA0LDQsdC+0YLRh9C40Log0LTQu9GPINC80LXRgtC+0LTQvtCyINGA0LDQsdC+0YLQsNGO0YnQuNGFINC90LAg0LDQu9GM0YLQtdGA0L3QsNGC0LjQstC90L7QuSDQv9C+0YHRgtGA0LDQvdC40YfQvdC+0Lkg0L3QsNCy0LjQs9Cw0YbQuNC4INGC0LjQutCwINC60LDQuiDQvNC10YLQvtC00Ysg0L/QvlxuICog0LfQsNGC0YDQsNGH0LXQvdC90L7QvNGDINCy0YDQtdC80LXQvdC4INC90LAg0LfQsNC00LDRh9C4IGh0dHBzOi8vZGV2LjFjLWJpdHJpeC5ydS9yZXN0X2hlbHAvdGFza3MvdGFzay9lbGFwc2VkaXRlbS9pbmRleC5waHBcbiAqXG4gKiDQvdC1INC30LDQstC10YDRiNC10L3QvdGL0Lkg0LrQu9Cw0YHRgSwg0YDQsNCx0L7RgtCw0LXQvCDQvtGCINGH0LDRgdGC0L3QvtCz0L4g0Log0L7QsdGJ0LXQvNGDXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZ2eUFsdGVyUGFnTmF2PFQsIFIsIFAgZXh0ZW5kcyBpQlhSZXN0QWx0ZXJuYXRpdmVQYWdpbmF0aW9uPiBleHRlbmRzIE5hdnZ5UGFnQmFzZTxUW10sIFJbXSwgUD4ge1xuXG4gIHJlc0FsbCgpIHtcbiAgICBsZXQgc2F2ZTogUmV0dXJuVHlwZU5hdnZ5PFQsIFI+W10gPSBbXVxuICAgIHJldHVybiB0aGlzLnJlc3VsdEFsbEVuZCgpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgICAgc2F2ZS5wdXNoKC4uLnYgYXMgUmV0dXJuVHlwZU5hdnZ5PFQsIFI+W10pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2F2ZVxuICAgICAgICAgIH1cbiAgICAgICAgKSxcbiAgICAgICAgbGFzdCgpLFxuICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgKVxuICB9XG5cbiAgcHJpdmF0ZSByZXN1bHRBbGxFbmQoKSB7XG4gICAgbGV0IEJYUmVzdENsYXNzID0gbmV3IEJYUmVzdCgpXG4gICAgLy8gcmV0dXJuICB0aGlzLm1hcEZvclZhbmlsbGFFbmQodGhpcy5mdW5jLCB0aGlzLnBhcmFtKVxuICAgIHJldHVybiB0aGlzLnJlc1ZhbmlsbGEoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoXG4gICAgICAgIGl0ZW1zID0+IHtcbiAgICAgICAgICBpZiAoaXRlbXMgJiYgaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzKGl0ZW1zKSkge1xuICAgICAgICAgICAgaWYgKGl0ZW1zLnRvdGFsICYmIGl0ZW1zLm5leHQpIHtcbiAgICAgICAgICAgICAgY29uc3QgY291bnQgPSBbLi4uQXJyYXkoTWF0aC5mbG9vcihpdGVtcy50b3RhbCAvIHRoaXMucGFnZVNpemUpKS5rZXlzKCldXG5cbiAgICAgICAgICAgICAgLy8g0KDQsNC30LTQtdC70Y/QtdC8INC80LDRgdGB0LjQsiDQvdCwINCx0LvQvtC60LhcbiAgICAgICAgICAgICAgY29uc3QgY2h1bmtzID0gW11cblxuICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50Lmxlbmd0aDsgaSArPSB0aGlzLnBhZ2VTaXplKSB7XG4gICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goY291bnQuc2xpY2UoaSwgaSArIHRoaXMucGFnZVNpemUpKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgYmF0Y2hSZXF1ZXN0cyA9IGNodW5rcy5tYXAoY2h1bmsgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBCWFJlc3RDbGFzcy5iYXRjaDxUW11bXT4oe1xuICAgICAgICAgICAgICAgICAgaGFsdDogMSxcbiAgICAgICAgICAgICAgICAgIGNtZDogY2h1bmsubWFwKGkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbSA9IGNsb25lKHRoaXMucGFyYW0pXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJhbS5QQVJBTVMpIHtcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbS5QQVJBTVMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBOQVZfUEFSQU1TOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlOdW1QYWdlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBuUGFnZVNpemU6IDUwXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10Lwgc3RhcnQg0LIg0LfQsNCy0LjRgdC40LzQvtGB0YLQuCDQvtGCINC40L3QtNC10LrRgdCwXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtLlBBUkFNUyEuTkFWX1BBUkFNUy5pTnVtUGFnZSA9IGkgKyAyIC8vINC/0LXRgNCy0LDRjyDRgdGC0YDQsNC90LjRhtCwINGD0LbQtSDQtdGB0YLRjCwg0YHRgtCw0YDRgiDRgdC+INCy0YLQvtGA0L7QuVxuXG4gICAgICAgICAgICAgICAgICAgIC8vINCk0L7RgNC80LjRgNGD0LXQvCDRgdGC0YDQvtC60YMg0LfQsNC/0YDQvtGB0LBcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKHRoaXMudXJsKVxuICAgICAgICAgICAgICAgICAgICAgICsgJz8nICsgc2VyaWFsaXplQml0cml4UGFyYW1zKHBhcmFtKVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9LCB0aGlzLnJlcXVlc3RIZWFkZXJzKVxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIHJldHVybiBmcm9tKGJhdGNoUmVxdWVzdHMpLnBpcGUoXG4gICAgICAgICAgICAgICAgY29uY2F0TWFwKHJlcXVlc3QgPT4gcmVxdWVzdCksIC8vINCS0YvQv9C+0LvQvdGP0LXRgiDQt9Cw0L/RgNC+0YHRiyDQv9C+INC+0YfQtdGA0LXQtNC4XG4gICAgICAgICAgICAgICAgdG9BcnJheSgpLCAvLyDQodC+0LHQuNGA0LDQtdGCINCy0YHQtSDRgNC10LfRg9C70YzRgtCw0YLRiyDQsiDQvNCw0YHRgdC40LJcbiAgICAgICAgICAgICAgICBtYXAocmVzdWx0cyA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBpdGVtcy5yZXN1bHQgYXMgVFtdXG4gICAgICAgICAgICAgICAgICBmb3IgKGxldCByZXN1bHQgb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyhyZXN1bHQpICYmIHJlc3VsdC5yZXN1bHQgJiYgcmVzdWx0LnJlc3VsdC5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaCguLi5yZXN1bHQucmVzdWx0LnJlc3VsdC5tYXAoaSA9PiBpKS5mbGF0KCkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuICh0aGlzLm1hcCkgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcChyZXMpXG4gICAgICAgICAgICAgICAgICAgIDogcmVzXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLm1hcFJlc3VsdEZvckdldEFsbChpdGVtcylcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgLy8gdGhpcy5zbmFja0Jhci5lcnJvcihcItCf0YDQvtCx0LvQtdC80Ysg0YEg0L/QvtGC0L7Rh9C90YvQvCDQv9C+0LvRg9GH0LXQvdC40LUg0LfQsNGC0YDQtdC60LDQvdC+0LPQviDQstGA0LXQvNC10L3QuFwiKVxuICAgICAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIG1hcFJlc3VsdEZvckdldEFsbChpdGVtczogaUJYUmVzdEFuc3dlcjxUW10+IHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIChpbnN0YW5jZU9maUJYUmVzdEFuc3dlclN1Y2Nlc3MoaXRlbXMpKSA/IGZyb20oW2l0ZW1zLnJlc3VsdF0pLnBpcGUoXG4gICAgICBtYXAodiA9PiAodiAmJiB0aGlzLm1hcCkgPyB0aGlzLm1hcCh2KSA6IHYpXG4gICAgKSA6IGZyb20oW10gYXMgUmV0dXJuVHlwZU5hdnZ5PFQsIFI+W10pXG4gIH1cbn1cbiJdfQ==
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktYWx0ZXJuYXRpdmUtcGFnaW5hdGlvbi1uYXZpZ2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvbmF2dnkvbmF2dnktYWx0ZXJuYXRpdmUtcGFnaW5hdGlvbi1uYXZpZ2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRXZEOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLGdCQUErRCxTQUFRLFlBQXlCO0lBRTNHLE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQzdCLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDdkYsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBUyxDQUFBO1lBQzFELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtRQUNoRixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0Ysb0VBQW9FO1FBQ3BFLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQy9DLENBQUE7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQTtRQUN6QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDMUUsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFBO1FBRXJCLEtBQUssSUFBSSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNuRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRyxHQUFHLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3JILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlTWFwLCBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgY2xvbmUgZnJvbSAnanVzdC1jbG9uZSdcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgUmV0dXJuVHlwZU5hdnZ5IH0gZnJvbSAnLi9uYXZ2eS1zdXBwb3J0J1xuaW1wb3J0IHsgaUJYUmVzdEFsdGVybmF0aXZlUGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYXBpLXBhZ2luYXRpb24tYngnXG5pbXBvcnQgeyBOYXZ2eVBhZ0Jhc2UgfSBmcm9tICcuL2V4dGVuZHMvbmF2dnktcGFnLWJhc2UnXG5cbi8qKlxuICog0JrQu9Cw0YHRgS3Qv9GA0L7RgdC70L7QudC60LAt0L7QsdGA0LDQsdC+0YLRh9C40Log0LTQu9GPINC80LXRgtC+0LTQvtCyINGA0LDQsdC+0YLQsNGO0YnQuNGFINC90LAg0LDQu9GM0YLQtdGA0L3QsNGC0LjQstC90L7QuSDQv9C+0YHRgtGA0LDQvdC40YfQvdC+0Lkg0L3QsNCy0LjQs9Cw0YbQuNC4INGC0LjQutCwINC60LDQuiDQvNC10YLQvtC00Ysg0L/QvlxuICog0LfQsNGC0YDQsNGH0LXQvdC90L7QvNGDINCy0YDQtdC80LXQvdC4INC90LAg0LfQsNC00LDRh9C4IGh0dHBzOi8vZGV2LjFjLWJpdHJpeC5ydS9yZXN0X2hlbHAvdGFza3MvdGFzay9lbGFwc2VkaXRlbS9pbmRleC5waHBcbiAqXG4gKiDQvdC1INC30LDQstC10YDRiNC10L3QvdGL0Lkg0LrQu9Cw0YHRgSwg0YDQsNCx0L7RgtCw0LXQvCDQvtGCINGH0LDRgdGC0L3QvtCz0L4g0Log0L7QsdGJ0LXQvNGDXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZ2eUFsdGVyUGFnTmF2PFQsIFIsIFAgZXh0ZW5kcyBpQlhSZXN0QWx0ZXJuYXRpdmVQYWdpbmF0aW9uPiBleHRlbmRzIE5hdnZ5UGFnQmFzZTxUW10sIFJbXSwgUD4ge1xuXG4gIHJlc0FsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXNGaXJzdFBhZ2UoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoZmlyc3QgPT4gdGhpcy5yZXNQYWdlczxUW10+KGZpcnN0Lm5leHQgPyB0aGlzLnBhZ2VQYXJhbXMoZmlyc3QudG90YWwpIDogW10pLnBpcGUoXG4gICAgICAgIG1hcChwYWdlcyA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBbZmlyc3QucmVzdWx0ID8/IFtdLCAuLi5wYWdlc10uZmxhdCgpIGFzIFRbXVxuICAgICAgICAgIHJldHVybiAoKHRoaXMubWFwID8gdGhpcy5tYXAoaXRlbXMpIDogaXRlbXMpID8/IFtdKSBhcyBSZXR1cm5UeXBlTmF2dnk8VCwgUj5bXVxuICAgICAgICB9KVxuICAgICAgKSksXG4gICAgICAvLyByZWZDb3VudDog0LHQtdC3INC/0L7QtNC/0LjRgdGH0LjQutC+0LIg0L7RgdGC0LDQstGI0LjQtdGB0Y8g0YHRgtGA0LDQvdC40YbRiyDQt9Cw0L/RgNCw0YjQuNCy0LDRgtGMINC90LXQt9Cw0YfQtdC8XG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqINCf0LDRgNCw0LzQtdGC0YDRiyDQvtGB0YLQsNC70YzQvdGL0YUg0YHRgtGA0LDQvdC40YYuINCg0LDQt9C80LXRgCDRgdGC0YDQsNC90LjRhtGLINCx0LXRgNGR0YLRgdGPINC40Lcg0LfQsNC/0YDQvtGB0LA6INC/0L7RgNGC0LDQuyDQvtCz0YDQsNC90LjRh9C40LLQsNC10YJcbiAgICog0LXQs9C+IDUwINC30LDQv9C40YHRj9C80LgsINC90L4g0LLRi9C30YvQstCw0Y7RidC40Lkg0LrQvtC0INC80L7QttC10YIg0L/QvtC/0YDQvtGB0LjRgtGMINC4INC80LXQvdGM0YjQtS5cbiAgICovXG4gIHByaXZhdGUgcGFnZVBhcmFtcyh0b3RhbCA9IDApOiBQW10ge1xuICAgIGNvbnN0IG5hdiA9IHRoaXMucGFyYW0uUEFSQU1TPy5OQVZfUEFSQU1TXG4gICAgY29uc3QgblBhZ2VTaXplID0gTWF0aC5taW4obmF2Py5uUGFnZVNpemUgfHwgdGhpcy5wYWdlU2l6ZSwgdGhpcy5wYWdlU2l6ZSlcbiAgICBjb25zdCBwYWdlczogUFtdID0gW11cblxuICAgIGZvciAobGV0IGlOdW1QYWdlID0gKG5hdj8uaU51bVBhZ2UgfHwgMSkgKyAxOyBpTnVtUGFnZSA8PSBNYXRoLmNlaWwodG90YWwgLyBuUGFnZVNpemUpOyBpTnVtUGFnZSsrKSB7XG4gICAgICBwYWdlcy5wdXNoKHsgLi4uY2xvbmUodGhpcy5wYXJhbSksIFBBUkFNUzogeyAuLi50aGlzLnBhcmFtLlBBUkFNUywgTkFWX1BBUkFNUzogeyAuLi5uYXYsIG5QYWdlU2l6ZSwgaU51bVBhZ2UgfSB9IH0pXG4gICAgfVxuICAgIHJldHVybiBwYWdlc1xuICB9XG59XG4iXX0=
|
|
@@ -1,60 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult';
|
|
5
|
-
import { serializeBitrixParams } from '../../functions/serializeBitrixParams';
|
|
6
|
-
import { BXRest } from '../../rest/base';
|
|
7
|
-
import { NavvyPagBase } from './extends/navvy-pag-base';
|
|
1
|
+
import { mergeMap, shareReplay } from 'rxjs';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { NavvyPagBase, offsetPageParams } from './extends/navvy-pag-base';
|
|
8
4
|
/** Пагинация для методов, возвращающих коллекцию как объект с идентификаторами в ключах. */
|
|
9
5
|
export class NavvyPagNavResultKeyObject extends NavvyPagBase {
|
|
10
6
|
constructor(url, param, key, mapResult) {
|
|
11
|
-
|
|
7
|
+
// Без своего map результат — значения объекта по ключу, как и обещают типы `.res()` и `.resAll()`.
|
|
8
|
+
super(url, param, mapResult ?? (result => Object.values(result?.[key] ?? {})));
|
|
12
9
|
this.key = key;
|
|
13
10
|
}
|
|
14
11
|
resAll() {
|
|
15
|
-
return this.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return from([]);
|
|
22
|
-
}
|
|
23
|
-
if (!items.total || items.total <= this.pageSize) {
|
|
24
|
-
return this.mapResult(items);
|
|
25
|
-
}
|
|
26
|
-
const pageCount = Math.ceil(items.total / this.pageSize);
|
|
27
|
-
const commands = Array.from({ length: pageCount - 1 }, (_, index) => {
|
|
28
|
-
const param = clone(this.param);
|
|
29
|
-
param.start = (index + 1) * this.pageSize;
|
|
30
|
-
return bxRest.batch({
|
|
31
|
-
halt: 1,
|
|
32
|
-
cmd: [this.http.getNameMethod(this.url) + '?' + serializeBitrixParams(param)]
|
|
33
|
-
}, this.requestHeaders);
|
|
34
|
-
});
|
|
35
|
-
return from(commands).pipe(concatMap(request => request), toArray(), mergeMap(results => {
|
|
36
|
-
const merged = { ...(items.result?.[this.key] ?? {}) };
|
|
37
|
-
for (const result of results) {
|
|
38
|
-
if (result && instanceOfiBXRestAnswerSuccess(result)) {
|
|
39
|
-
for (const page of result.result?.result ?? []) {
|
|
40
|
-
Object.assign(merged, page?.[this.key] ?? {});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
return this.mapResult({ [this.key]: merged });
|
|
45
|
-
}));
|
|
46
|
-
}), catchError(error => {
|
|
47
|
-
console.error(error);
|
|
48
|
-
return throwError(() => error);
|
|
49
|
-
}));
|
|
50
|
-
}
|
|
51
|
-
mapResult(items) {
|
|
52
|
-
if (!instanceOfiBXRestAnswerSuccess(items)) {
|
|
53
|
-
return from([]);
|
|
54
|
-
}
|
|
55
|
-
return from([items.result]).pipe(map(value => this.map
|
|
56
|
-
? this.map(value)
|
|
57
|
-
: Object.values(value?.[this.key] ?? {})));
|
|
12
|
+
return this.resFirstPage().pipe(mergeMap(first => this.resPages(offsetPageParams(this.param, first.total, this.pageSize)).pipe(map(pages => {
|
|
13
|
+
const merged = Object.assign({}, first.result?.[this.key], ...pages.map(page => page[this.key]));
|
|
14
|
+
return this.map?.({ ...first.result, [this.key]: merged });
|
|
15
|
+
}))),
|
|
16
|
+
// refCount: без подписчиков оставшиеся страницы запрашивать незачем
|
|
17
|
+
shareReplay({ bufferSize: 1, refCount: true }));
|
|
58
18
|
}
|
|
59
19
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktcGFnLW5hdi1yZXN1bHQta2V5LW9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL25hdnZ5L25hdnZ5LXBhZy1uYXYtcmVzdWx0LWtleS1vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXBDLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUl6RSw0RkFBNEY7QUFDNUYsTUFBTSxPQUFPLDBCQUtYLFNBQVEsWUFBNkM7SUFDckQsWUFDRSxHQUFhLEVBQ2IsS0FBUSxFQUNTLEdBQU0sRUFDdkIsU0FBMkU7UUFFM0UsbUdBQW1HO1FBQ25HLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQW1CLENBQUMsQ0FBQyxDQUFBO1FBSi9FLFFBQUcsR0FBSCxHQUFHLENBQUc7SUFLekIsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQzdCLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQTBCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3JILEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNWLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDaEcsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUE2QixDQUFDLENBQUE7UUFDdkYsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLG9FQUFvRTtRQUNwRSxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVyZ2VNYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgaUJYUmVzdFBhZ2luYXRpb24gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2FwaS1wYWdpbmF0aW9uLWJ4J1xuaW1wb3J0IHsgTmF2dnlQYWdCYXNlLCBvZmZzZXRQYWdlUGFyYW1zIH0gZnJvbSAnLi9leHRlbmRzL25hdnZ5LXBhZy1iYXNlJ1xuXG50eXBlIEtleWVkT2JqZWN0UmVzdWx0PEsgZXh0ZW5kcyBzdHJpbmcsIFQ+ID0gUmVjb3JkPEssIFJlY29yZDxzdHJpbmcsIFQ+IHwgdW5kZWZpbmVkPlxuXG4vKiog0J/QsNCz0LjQvdCw0YbQuNGPINC00LvRjyDQvNC10YLQvtC00L7Qsiwg0LLQvtC30LLRgNCw0YnQsNGO0YnQuNGFINC60L7Qu9C70LXQutGG0LjRjiDQutCw0Log0L7QsdGK0LXQutGCINGBINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LDQvNC4INCyINC60LvRjtGH0LDRhS4gKi9cbmV4cG9ydCBjbGFzcyBOYXZ2eVBhZ05hdlJlc3VsdEtleU9iamVjdDxcbiAgVCxcbiAgUixcbiAgUCBleHRlbmRzIGlCWFJlc3RQYWdpbmF0aW9uLFxuICBLIGV4dGVuZHMgc3RyaW5nXG4+IGV4dGVuZHMgTmF2dnlQYWdCYXNlPEtleWVkT2JqZWN0UmVzdWx0PEssIFQ+LCBSW10sIFA+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgdXJsOiBzdHJpbmdbXSxcbiAgICBwYXJhbTogUCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGtleTogSyxcbiAgICBtYXBSZXN1bHQ/OiAocGFyYW06IEtleWVkT2JqZWN0UmVzdWx0PEssIFQ+IHwgdW5kZWZpbmVkKSA9PiBSW10gfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgLy8g0JHQtdC3INGB0LLQvtC10LPQviBtYXAg0YDQtdC30YPQu9GM0YLQsNGCIOKAlCDQt9C90LDRh9C10L3QuNGPINC+0LHRitC10LrRgtCwINC/0L4g0LrQu9GO0YfRgywg0LrQsNC6INC4INC+0LHQtdGJ0LDRjtGCINGC0LjQv9GLIGAucmVzKClgINC4IGAucmVzQWxsKClgLlxuICAgIHN1cGVyKHVybCwgcGFyYW0sIG1hcFJlc3VsdCA/PyAocmVzdWx0ID0+IE9iamVjdC52YWx1ZXMocmVzdWx0Py5ba2V5XSA/PyB7fSkgYXMgdW5rbm93biBhcyBSW10pKVxuICB9XG5cbiAgcmVzQWxsKCkge1xuICAgIHJldHVybiB0aGlzLnJlc0ZpcnN0UGFnZSgpLnBpcGUoXG4gICAgICBtZXJnZU1hcChmaXJzdCA9PiB0aGlzLnJlc1BhZ2VzPEtleWVkT2JqZWN0UmVzdWx0PEssIFQ+PihvZmZzZXRQYWdlUGFyYW1zKHRoaXMucGFyYW0sIGZpcnN0LnRvdGFsLCB0aGlzLnBhZ2VTaXplKSkucGlwZShcbiAgICAgICAgbWFwKHBhZ2VzID0+IHtcbiAgICAgICAgICBjb25zdCBtZXJnZWQgPSBPYmplY3QuYXNzaWduKHt9LCBmaXJzdC5yZXN1bHQ/Llt0aGlzLmtleV0sIC4uLnBhZ2VzLm1hcChwYWdlID0+IHBhZ2VbdGhpcy5rZXldKSlcbiAgICAgICAgICByZXR1cm4gdGhpcy5tYXA/Lih7IC4uLmZpcnN0LnJlc3VsdCwgW3RoaXMua2V5XTogbWVyZ2VkIH0gYXMgS2V5ZWRPYmplY3RSZXN1bHQ8SywgVD4pXG4gICAgICAgIH0pXG4gICAgICApKSxcbiAgICAgIC8vIHJlZkNvdW50OiDQsdC10Lcg0L/QvtC00L/QuNGB0YfQuNC60L7QsiDQvtGB0YLQsNCy0YjQuNC10YHRjyDRgdGC0YDQsNC90LjRhtGLINC30LDQv9GA0LDRiNC40LLQsNGC0Ywg0L3QtdC30LDRh9C10LxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICApXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,77 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult';
|
|
5
|
-
import { NavvyPagBase } from './extends/navvy-pag-base';
|
|
6
|
-
import { serializeBitrixParams } from '../../functions/serializeBitrixParams';
|
|
7
|
-
import { BXRest } from '../../rest/base';
|
|
1
|
+
import { mergeMap, shareReplay } from 'rxjs';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { NavvyPagBase, offsetPageParams } from './extends/navvy-pag-base';
|
|
8
4
|
export class NavvyPagNavResultKey extends NavvyPagBase {
|
|
9
|
-
constructor(url, param, key, map) {
|
|
10
|
-
|
|
5
|
+
constructor(url, param, key, map, restApi) {
|
|
6
|
+
// Без своего map результат — массив по ключу, как и обещают типы `.res()` и `.resAll()`.
|
|
7
|
+
// Иначе `.res()` отдал бы весь объект `{ items: [...] }`.
|
|
8
|
+
super(url, param, map ?? (result => (result?.[key] ?? [])), restApi);
|
|
11
9
|
this.key = key;
|
|
12
|
-
this.save = [];
|
|
13
10
|
}
|
|
14
11
|
resAll() {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}), last(), shareReplay(1));
|
|
23
|
-
}
|
|
24
|
-
resultAllEnd() {
|
|
25
|
-
let BXRestClass = new BXRest();
|
|
26
|
-
return this.resVanilla().pipe(mergeMap(items => {
|
|
27
|
-
if (items && instanceOfiBXRestAnswerSuccess(items)) {
|
|
28
|
-
this.save = [];
|
|
29
|
-
if (items.total && items.total > 50) {
|
|
30
|
-
const mathFloor = Math.floor(items.total / this.pageSize);
|
|
31
|
-
const count = (mathFloor === items.total / this.pageSize)
|
|
32
|
-
? [...Array(mathFloor - 1).keys()]
|
|
33
|
-
: [...Array(mathFloor).keys()];
|
|
34
|
-
const chunks = [];
|
|
35
|
-
for (let i = 0; i < count.length; i += this.pageSize) {
|
|
36
|
-
chunks.push(count.slice(i, i + this.pageSize));
|
|
37
|
-
}
|
|
38
|
-
const batchRequests = chunks.map(chunk => {
|
|
39
|
-
return BXRestClass.batch({
|
|
40
|
-
halt: 1,
|
|
41
|
-
cmd: chunk.map(i => {
|
|
42
|
-
const param = clone(this.param);
|
|
43
|
-
param.start = (i + 1) * this.pageSize;
|
|
44
|
-
return this.http.getNameMethod(this.url)
|
|
45
|
-
+ '?' + serializeBitrixParams(param);
|
|
46
|
-
})
|
|
47
|
-
}, this.requestHeaders);
|
|
48
|
-
});
|
|
49
|
-
return from(batchRequests).pipe(concatMap(request => request), toArray(), map(results => {
|
|
50
|
-
const firstPage = items.result?.[this.key];
|
|
51
|
-
if (firstPage) {
|
|
52
|
-
const res = firstPage;
|
|
53
|
-
for (let result of results) {
|
|
54
|
-
if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {
|
|
55
|
-
res.push(...result.result.result.filter(i => i).map(i => i[this.key]).flat());
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return (this.map) ?
|
|
59
|
-
this.map({ [this.key]: res })
|
|
60
|
-
: res;
|
|
61
|
-
}
|
|
62
|
-
throw new Error('wrong batch');
|
|
63
|
-
}));
|
|
64
|
-
}
|
|
65
|
-
return this.mapResForGetAll(items);
|
|
66
|
-
}
|
|
67
|
-
return this.mapResForGetAll(items);
|
|
68
|
-
}), catchError(err => {
|
|
69
|
-
console.error(err);
|
|
70
|
-
return throwError(() => err);
|
|
71
|
-
}));
|
|
72
|
-
}
|
|
73
|
-
mapResForGetAll(items) {
|
|
74
|
-
return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(map(v => (v && this.map) ? this.map(v) : v)) : from([]);
|
|
12
|
+
return this.resFirstPage().pipe(mergeMap(first => this.resPages(offsetPageParams(this.param, first.total, this.pageSize)).pipe(map(pages => {
|
|
13
|
+
const items = [first.result, ...pages].flatMap(page => page?.[this.key] ?? []);
|
|
14
|
+
const joined = { ...first.result, [this.key]: items };
|
|
15
|
+
return (this.map?.(joined) ?? []);
|
|
16
|
+
}))),
|
|
17
|
+
// refCount: без подписчиков оставшиеся страницы запрашивать незачем
|
|
18
|
+
shareReplay({ bufferSize: 1, refCount: true }));
|
|
75
19
|
}
|
|
76
20
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktcGFnLW5hdi1yZXN1bHQta2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvbmF2dnkvbmF2dnktcGFnLW5hdi1yZXN1bHQta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNoRCxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUE7QUFJOUIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUl4QyxNQUFNLE9BQU8sb0JBQ1gsU0FBUSxZQUF1QztJQUkvQyxZQUNFLEdBQWEsRUFDYixLQUFRLEVBQ1MsR0FBTSxFQUN2QixHQUErRDtRQUUvRCxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUhMLFFBQUcsR0FBSCxHQUFHLENBQUc7UUFMekIsU0FBSSxHQUE0QixFQUFFLENBQUE7SUFTbEMsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksR0FBNEIsRUFBRSxDQUFBO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRTthQUN2QixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFD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QUMsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzVDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbmNhdE1hcCwgZnJvbSwgbGFzdCwgbWVyZ2VNYXAsIHNoYXJlUmVwbGF5LCB0aHJvd0Vycm9yLCB0b0FycmF5IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXG5pbXBvcnQgeyBpQlhSZXN0UGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYXBpLXBhZ2luYXRpb24tYngnXG5pbXBvcnQgeyBSZXR1cm5UeXBlTmF2dnkgfSBmcm9tICcuL25hdnZ5LXN1cHBvcnQnXG5pbXBvcnQgeyBpQlhSZXN0QW5zd2VyIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hbnN3ZXInXG5pbXBvcnQgeyBpbnN0YW5jZU9maUJYUmVzdEFuc3dlclN1Y2Nlc3MgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvbWFwUmVzdWx0J1xuaW1wb3J0IHsgTmF2dnlQYWdCYXNlIH0gZnJvbSAnLi9leHRlbmRzL25hdnZ5LXBhZy1iYXNlJ1xuaW1wb3J0IHsgc2VyaWFsaXplQml0cml4UGFyYW1zIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL3NlcmlhbGl6ZUJpdHJpeFBhcmFtcydcbmltcG9ydCB7IEJYUmVzdCB9IGZyb20gJy4uLy4uL3Jlc3QvYmFzZSdcblxudHlwZSBLZXllZFJlc3VsdDxLIGV4dGVuZHMgc3RyaW5nLCBUPiA9IFJlY29yZDxLLCBUW10gfCB1bmRlZmluZWQ+XG5cbmV4cG9ydCBjbGFzcyBOYXZ2eVBhZ05hdlJlc3VsdEtleTxULCBSLCBQIGV4dGVuZHMgaUJYUmVzdFBhZ2luYXRpb24sIEsgZXh0ZW5kcyBzdHJpbmc+XG4gIGV4dGVuZHMgTmF2dnlQYWdCYXNlPEtleWVkUmVzdWx0PEssIFQ+LCBSW10sIFA+IHtcblxuICBzYXZlOiBSZXR1cm5UeXBlTmF2dnk8VCwgUj5bXSA9IFtdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgdXJsOiBzdHJpbmdbXSxcbiAgICBwYXJhbTogUCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGtleTogSyxcbiAgICBtYXA/OiAocGFyYW06IEtleWVkUmVzdWx0PEssIFQ+IHwgdW5kZWZpbmVkKSA9PiBSW10gfCB1bmRlZmluZWRcbiAgKSB7XG4gICAgc3VwZXIodXJsLCBwYXJhbSwgbWFwKVxuICB9XG5cbiAgcmVzQWxsKCkge1xuICAgIGxldCBzYXZlOiBSZXR1cm5UeXBlTmF2dnk8VCwgUj5bXSA9IFtdXG4gICAgcmV0dXJuIHRoaXMucmVzdWx0QWxsRW5kKClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAodiA9PiB7XG4gICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICBzYXZlLnB1c2goLi4udiBhcyBSZXR1cm5UeXBlTmF2dnk8VCwgUj5bXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzYXZlXG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICBsYXN0KCksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICApXG4gIH1cblxuICBwcml2YXRlIHJlc3VsdEFsbEVuZCgpIHtcbiAgICBsZXQgQlhSZXN0Q2xhc3MgPSBuZXcgQlhSZXN0KClcbiAgICByZXR1cm4gdGhpcy5yZXNWYW5pbGxhKCkucGlwZShcbiAgICAgIG1lcmdlTWFwKFxuICAgICAgICBpdGVtcyA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW1zICYmIGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyhpdGVtcykpIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZSA9IFtdXG4gICAgICAgICAgICBpZiAoaXRlbXMudG90YWwgJiYgaXRlbXMudG90YWwgPiA1MCkge1xuICAgICAgICAgICAgICBjb25zdCBtYXRoRmxvb3IgPSBNYXRoLmZsb29yKGl0ZW1zLnRvdGFsIC8gdGhpcy5wYWdlU2l6ZSlcbiAgICAgICAgICAgICAgY29uc3QgY291bnQgPSAobWF0aEZsb29yID09PSBpdGVtcy50b3RhbCAvIHRoaXMucGFnZVNpemUpXG4gICAgICAgICAgICAgICAgPyBbLi4uQXJyYXkobWF0aEZsb29yIC0gMSkua2V5cygpXVxuICAgICAgICAgICAgICAgIDogWy4uLkFycmF5KG1hdGhGbG9vcikua2V5cygpXVxuICAgICAgICAgICAgICBjb25zdCBjaHVua3MgPSBbXVxuXG4gICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQubGVuZ3RoOyBpICs9IHRoaXMucGFnZVNpemUpIHtcbiAgICAgICAgICAgICAgICBjaHVua3MucHVzaChjb3VudC5zbGljZShpLCBpICsgdGhpcy5wYWdlU2l6ZSkpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBjb25zdCBiYXRjaFJlcXVlc3RzID0gY2h1bmtzLm1hcChjaHVuayA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEJYUmVzdENsYXNzLmJhdGNoPEtleWVkUmVzdWx0PEssIFQ+W10+KHtcbiAgICAgICAgICAgICAgICAgIGhhbHQ6IDEsXG4gICAgICAgICAgICAgICAgICBjbWQ6IGNodW5rLm1hcChpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyYW0gPSBjbG9uZSh0aGlzLnBhcmFtKVxuICAgICAgICAgICAgICAgICAgICBwYXJhbS5zdGFydCA9IChpICsgMSkgKiB0aGlzLnBhZ2VTaXplXG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXROYW1lTWV0aG9kKHRoaXMudXJsKVxuICAgICAgICAgICAgICAgICAgICAgICsgJz8nICsgc2VyaWFsaXplQml0cml4UGFyYW1zKHBhcmFtKVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9LCB0aGlzLnJlcXVlc3RIZWFkZXJzKVxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIHJldHVybiBmcm9tKGJhdGNoUmVxdWVzdHMpLnBpcGUoXG4gICAgICAgICAgICAgICAgY29uY2F0TWFwKHJlcXVlc3QgPT4gcmVxdWVzdCksXG4gICAgICAgICAgICAgICAgdG9BcnJheSgpLFxuICAgICAgICAgICAgICAgIG1hcChyZXN1bHRzID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0UGFnZSA9IGl0ZW1zLnJlc3VsdD8uW3RoaXMua2V5XVxuICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0UGFnZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBmaXJzdFBhZ2UgYXMgVFtdXG5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgcmVzdWx0IG9mIHJlc3VsdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyhyZXN1bHQpICYmIHJlc3VsdC5yZXN1bHQgJiYgcmVzdWx0LnJlc3VsdC5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5wdXNoKC4uLnJlc3VsdC5yZXN1bHQucmVzdWx0LmZpbHRlcihpID0+IGkpLm1hcChpID0+IGlbdGhpcy5rZXldKS5mbGF0KCkgYXMgVFtdKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodGhpcy5tYXApID9cbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcCh7IFt0aGlzLmtleV06IHJlcyB9IGFzIEtleWVkUmVzdWx0PEssIFQ+KVxuICAgICAgICAgICAgICAgICAgICAgIDogcmVzXG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd3JvbmcgYmF0Y2gnKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFwUmVzRm9yR2V0QWxsKGl0ZW1zKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5tYXBSZXNGb3JHZXRBbGwoaXRlbXMpXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnIpXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgbWFwUmVzRm9yR2V0QWxsKGl0ZW1zOiBpQlhSZXN0QW5zd2VyPEtleWVkUmVzdWx0PEssIFQ+PiB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAoaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzKGl0ZW1zKSkgPyBmcm9tKFtpdGVtcy5yZXN1bHRdKS5waXBlKFxuICAgICAgbWFwKHYgPT4gKHYgJiYgdGhpcy5tYXApID8gdGhpcy5tYXAodikgOiB2KVxuICAgICkgOiBmcm9tKFtdKVxuICB9XG59XG4iXX0=
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktcGFnLW5hdi1yZXN1bHQta2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvbmF2dnkvbmF2dnktcGFnLW5hdi1yZXN1bHQta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUdwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFJekUsTUFBTSxPQUFPLG9CQUNYLFNBQVEsWUFBdUM7SUFFL0MsWUFDRSxHQUFhLEVBQ2IsS0FBUSxFQUNTLEdBQU0sRUFDdkIsR0FBK0QsRUFDL0QsT0FBaUI7UUFFakIseUZBQXlGO1FBQ3pGLDBEQUEwRDtRQUMxRCxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFtQixDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFOckUsUUFBRyxHQUFILEdBQUcsQ0FBRztJQU96QixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDN0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBb0IsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDL0csR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBUSxDQUFBO1lBQ3JGLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBdUIsQ0FBQTtZQUMxRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtRQUM5RCxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0Ysb0VBQW9FO1FBQ3BFLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQy9DLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZXJnZU1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBpQlhSZXN0UGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYXBpLXBhZ2luYXRpb24tYngnXG5pbXBvcnQgeyBSZXR1cm5UeXBlTmF2dnkgfSBmcm9tICcuL25hdnZ5LXN1cHBvcnQnXG5pbXBvcnQgeyBOYXZ2eVBhZ0Jhc2UsIG9mZnNldFBhZ2VQYXJhbXMgfSBmcm9tICcuL2V4dGVuZHMvbmF2dnktcGFnLWJhc2UnXG5cbnR5cGUgS2V5ZWRSZXN1bHQ8SyBleHRlbmRzIHN0cmluZywgVD4gPSBSZWNvcmQ8SywgVFtdIHwgdW5kZWZpbmVkPlxuXG5leHBvcnQgY2xhc3MgTmF2dnlQYWdOYXZSZXN1bHRLZXk8VCwgUiwgUCBleHRlbmRzIGlCWFJlc3RQYWdpbmF0aW9uLCBLIGV4dGVuZHMgc3RyaW5nPlxuICBleHRlbmRzIE5hdnZ5UGFnQmFzZTxLZXllZFJlc3VsdDxLLCBUPiwgUltdLCBQPiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdXJsOiBzdHJpbmdbXSxcbiAgICBwYXJhbTogUCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGtleTogSyxcbiAgICBtYXA/OiAocGFyYW06IEtleWVkUmVzdWx0PEssIFQ+IHwgdW5kZWZpbmVkKSA9PiBSW10gfCB1bmRlZmluZWQsXG4gICAgcmVzdEFwaT86IGJvb2xlYW5cbiAgKSB7XG4gICAgLy8g0JHQtdC3INGB0LLQvtC10LPQviBtYXAg0YDQtdC30YPQu9GM0YLQsNGCIOKAlCDQvNCw0YHRgdC40LIg0L/QviDQutC70Y7Rh9GDLCDQutCw0Log0Lgg0L7QsdC10YnQsNGO0YIg0YLQuNC/0YsgYC5yZXMoKWAg0LggYC5yZXNBbGwoKWAuXG4gICAgLy8g0JjQvdCw0YfQtSBgLnJlcygpYCDQvtGC0LTQsNC7INCx0Ysg0LLQtdGB0Ywg0L7QsdGK0LXQutGCIGB7IGl0ZW1zOiBbLi4uXSB9YC5cbiAgICBzdXBlcih1cmwsIHBhcmFtLCBtYXAgPz8gKHJlc3VsdCA9PiAocmVzdWx0Py5ba2V5XSA/PyBbXSkgYXMgdW5rbm93biBhcyBSW10pLCByZXN0QXBpKVxuICB9XG5cbiAgcmVzQWxsKCkge1xuICAgIHJldHVybiB0aGlzLnJlc0ZpcnN0UGFnZSgpLnBpcGUoXG4gICAgICBtZXJnZU1hcChmaXJzdCA9PiB0aGlzLnJlc1BhZ2VzPEtleWVkUmVzdWx0PEssIFQ+PihvZmZzZXRQYWdlUGFyYW1zKHRoaXMucGFyYW0sIGZpcnN0LnRvdGFsLCB0aGlzLnBhZ2VTaXplKSkucGlwZShcbiAgICAgICAgbWFwKHBhZ2VzID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IFtmaXJzdC5yZXN1bHQsIC4uLnBhZ2VzXS5mbGF0TWFwKHBhZ2UgPT4gcGFnZT8uW3RoaXMua2V5XSA/PyBbXSkgYXMgVFtdXG4gICAgICAgICAgY29uc3Qgam9pbmVkID0geyAuLi5maXJzdC5yZXN1bHQsIFt0aGlzLmtleV06IGl0ZW1zIH0gYXMgS2V5ZWRSZXN1bHQ8SywgVD5cbiAgICAgICAgICByZXR1cm4gKHRoaXMubWFwPy4oam9pbmVkKSA/PyBbXSkgYXMgUmV0dXJuVHlwZU5hdnZ5PFQsIFI+W11cbiAgICAgICAgfSlcbiAgICAgICkpLFxuICAgICAgLy8gcmVmQ291bnQ6INCx0LXQtyDQv9C+0LTQv9C40YHRh9C40LrQvtCyINC+0YHRgtCw0LLRiNC40LXRgdGPINGB0YLRgNCw0L3QuNGG0Ysg0LfQsNC/0YDQsNGI0LjQstCw0YLRjCDQvdC10LfQsNGH0LXQvFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcbiAgfVxufVxuIl19
|
|
@@ -1,78 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { NavvyPagBase } from './extends/navvy-pag-base';
|
|
6
|
-
import { serializeBitrixParams } from '../../functions/serializeBitrixParams';
|
|
7
|
-
import { BXRest } from '../../rest/base';
|
|
8
|
-
export class NavvyPagNavTasks extends NavvyPagBase {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.save = [];
|
|
12
|
-
}
|
|
13
|
-
resAll() {
|
|
14
|
-
let save = [];
|
|
15
|
-
return this.resultAllEnd()
|
|
16
|
-
.pipe(map(v => {
|
|
17
|
-
if (v) {
|
|
18
|
-
save.push(...v);
|
|
19
|
-
}
|
|
20
|
-
return save;
|
|
21
|
-
}), last(), shareReplay(1));
|
|
22
|
-
}
|
|
23
|
-
resultAllEnd() {
|
|
24
|
-
let BXRestClass = new BXRest();
|
|
25
|
-
return this.resVanilla().pipe(mergeMap(items => {
|
|
26
|
-
if (items && instanceOfiBXRestAnswerSuccess(items)) {
|
|
27
|
-
this.save = [];
|
|
28
|
-
// TODO: проверить будет ли быстрее работать метод в случаях когда total < 100 (то есть можно обойтись двумя прямыми запросами)
|
|
29
|
-
if (items.total && items.total > 50) {
|
|
30
|
-
const count = [...Array(Math.floor(items.total / this.pageSize)).keys()];
|
|
31
|
-
// Разделяем массив на блоки
|
|
32
|
-
const chunks = [];
|
|
33
|
-
for (let i = 0; i < count.length; i += this.pageSize) {
|
|
34
|
-
chunks.push(count.slice(i, i + this.pageSize));
|
|
35
|
-
}
|
|
36
|
-
const batchRequests = chunks.map(chunk => {
|
|
37
|
-
return BXRestClass.batch({
|
|
38
|
-
halt: 1,
|
|
39
|
-
cmd: chunk.map(i => {
|
|
40
|
-
const param = clone(this.param);
|
|
41
|
-
// Устанавливаем start в зависимости от индекса
|
|
42
|
-
param.start = (i + 1) * this.pageSize;
|
|
43
|
-
// Формируем строку запроса
|
|
44
|
-
return this.http.getNameMethod(this.url)
|
|
45
|
-
+ '?' + serializeBitrixParams(param);
|
|
46
|
-
})
|
|
47
|
-
}, this.requestHeaders);
|
|
48
|
-
});
|
|
49
|
-
return from(batchRequests).pipe(concatMap(request => request), // Выполняет запросы по очереди
|
|
50
|
-
toArray(), // Собирает все результаты в массив
|
|
51
|
-
map(results => {
|
|
52
|
-
if (items.result && items.result.tasks) {
|
|
53
|
-
const res = items.result.tasks;
|
|
54
|
-
for (let result of results) {
|
|
55
|
-
if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {
|
|
56
|
-
res.push(...result.result.result.filter(i => i).map(i => i.tasks).flat());
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return (this.map) ?
|
|
60
|
-
this.map({ tasks: res })
|
|
61
|
-
: res;
|
|
62
|
-
}
|
|
63
|
-
throw new Error('wrong batch');
|
|
64
|
-
}));
|
|
65
|
-
}
|
|
66
|
-
return this.mapResForGetAll(items);
|
|
67
|
-
}
|
|
68
|
-
return this.mapResForGetAll(items);
|
|
69
|
-
}), catchError(err => {
|
|
70
|
-
console.error(err);
|
|
71
|
-
return throwError(() => err);
|
|
72
|
-
}));
|
|
73
|
-
}
|
|
74
|
-
mapResForGetAll(items) {
|
|
75
|
-
return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(map(v => (v && this.map) ? this.map(v) : v)) : from([]);
|
|
1
|
+
import { NavvyPagNavResultKey } from './navvy-pag-nav-result-key';
|
|
2
|
+
export class NavvyPagNavTasks extends NavvyPagNavResultKey {
|
|
3
|
+
constructor(url, param, map, restApi) {
|
|
4
|
+
super(url, param, 'tasks', map, restApi);
|
|
76
5
|
}
|
|
77
6
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktcGFnLW5hdi10YXNrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL25hdnZ5L25hdnZ5LXBhZy1uYXYtdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN4RixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ2hELE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUk5QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRXhDLE1BQU0sT0FBTyxnQkFBb0QsU0FBUSxZQUE4QztJQUF2SDs7UUFFRSxTQUFJLEdBQTRCLEVBQUUsQ0FBQTtJQTBGcEMsQ0FBQztJQXpGQyxNQUFNO1FBQ0osSUFBSSxJQUFJLEdBQTRCLEVBQUUsQ0FBQTtRQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUU7YUFDdkIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNKLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTRCLENBQUMsQ0FBQTtZQUM1QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLENBQ0YsRUFDRCxJQUFJLEVBQUUsRUFDTixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQTtJQUNMLENB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ZU1hcCwgc2hhcmVSZXBsYXksIHRocm93RXJyb3IsIHRvQXJyYXkgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgY2xvbmUgZnJvbSAnanVzdC1jbG9uZSdcbmltcG9ydCB7IGlCWFJlc3RQYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hcGktcGFnaW5hdGlvbi1ieCdcbmltcG9ydCB7IFJldHVyblR5cGVOYXZ2eSB9IGZyb20gJy4vbmF2dnktc3VwcG9ydCdcbmltcG9ydCB7IGlCWFJlc3RBbnN3ZXIgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2Fuc3dlcidcbmltcG9ydCB7IGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9tYXBSZXN1bHQnXG5pbXBvcnQgeyBOYXZ2eVBhZ0Jhc2UgfSBmcm9tICcuL2V4dGVuZHMvbmF2dnktcGFnLWJhc2UnXG5pbXBvcnQgeyBzZXJpYWxpemVCaXRyaXhQYXJhbXMgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvc2VyaWFsaXplQml0cml4UGFyYW1zJ1xuaW1wb3J0IHsgQlhSZXN0IH0gZnJvbSAnLi4vLi4vcmVzdC9iYXNlJ1xuXG5leHBvcnQgY2xhc3MgTmF2dnlQYWdOYXZUYXNrczxULCBSLCBQIGV4dGVuZHMgaUJYUmVzdFBhZ2luYXRpb24+IGV4dGVuZHMgTmF2dnlQYWdCYXNlPHt0YXNrczogVFtdIHwgdW5kZWZpbmVkfSwgUltdLCBQPiB7XG5cbiAgc2F2ZTogUmV0dXJuVHlwZU5hdnZ5PFQsIFI+W10gPSBbXVxuICByZXNBbGwoKSB7XG4gICAgbGV0IHNhdmU6IFJldHVyblR5cGVOYXZ2eTxULCBSPltdID0gW11cbiAgICByZXR1cm4gdGhpcy5yZXN1bHRBbGxFbmQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICAgIGlmICh2KSB7XG4gICAgICAgICAgICAgIHNhdmUucHVzaCguLi52IGFzIFJldHVyblR5cGVOYXZ2eTxULCBSPltdKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNhdmVcbiAgICAgICAgICB9XG4gICAgICAgICksXG4gICAgICAgIGxhc3QoKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICAgIClcbiAgfVxuXG4gIHByaXZhdGUgcmVzdWx0QWxsRW5kKCkge1xuICAgIGxldCBCWFJlc3RDbGFzcyA9IG5ldyBCWFJlc3QoKVxuICAgIHJldHVybiB0aGlzLnJlc1ZhbmlsbGEoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoXG4gICAgICAgIGl0ZW1zID0+IHtcbiAgICAgICAgICBpZiAoaXRlbXMgJiYgaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzKGl0ZW1zKSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlID0gW11cbiAgICAgICAgICAgIC8vIFRPRE86INC/0YDQvtCy0LXRgNC40YLRjCDQsdGD0LTQtdGCINC70Lgg0LHRi9GB0YLRgNC10LUg0YDQsNCx0L7RgtCw0YLRjCDQvNC10YLQvtC0INCyINGB0LvRg9GH0LDRj9GFINC60L7Qs9C00LAgdG90YWwgPCAxMDAgKNGC0L4g0LXRgdGC0Ywg0LzQvtC20L3QviDQvtCx0L7QudGC0LjRgdGMINC00LLRg9C80Y8g0L/RgNGP0LzRi9C80Lgg0LfQsNC/0YDQvtGB0LDQvNC4KVxuICAgICAgICAgICAgaWYgKGl0ZW1zLnRvdGFsICYmIGl0ZW1zLnRvdGFsID4gNTApIHtcbiAgICAgICAgICAgICAgY29uc3QgY291bnQgPSBbLi4uQXJyYXkoTWF0aC5mbG9vcihpdGVtcy50b3RhbCAvIHRoaXMucGFnZVNpemUpKS5rZXlzKCldXG5cbiAgICAgICAgICAgICAgLy8g0KDQsNC30LTQtdC70Y/QtdC8INC80LDRgdGB0LjQsiDQvdCwINCx0LvQvtC60LhcbiAgICAgICAgICAgICAgY29uc3QgY2h1bmtzID0gW11cblxuICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50Lmxlbmd0aDsgaSArPSB0aGlzLnBhZ2VTaXplKSB7XG4gICAgICAgICAgICAgICAgY2h1bmtzLnB1c2goY291bnQuc2xpY2UoaSwgaSArIHRoaXMucGFnZVNpemUpKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgYmF0Y2hSZXF1ZXN0cyA9IGNodW5rcy5tYXAoY2h1bmsgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBCWFJlc3RDbGFzcy5iYXRjaDx7dGFza3M6IFRbXSB8IHVuZGVmaW5lZH1bXT4oe1xuICAgICAgICAgICAgICAgICAgaGFsdDogMSxcbiAgICAgICAgICAgICAgICAgIGNtZDogY2h1bmsubWFwKGkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbSA9IGNsb25lKHRoaXMucGFyYW0pXG4gICAgICAgICAgICAgICAgICAgIC8vINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8IHN0YXJ0INCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDQuNC90LTQtdC60YHQsFxuICAgICAgICAgICAgICAgICAgICBwYXJhbS5zdGFydCA9IChpICsgMSkgKiB0aGlzLnBhZ2VTaXplXG5cbiAgICAgICAgICAgICAgICAgICAgLy8g0KTQvtGA0LzQuNGA0YPQtdC8INGB0YLRgNC+0LrRgyDQt9Cw0L/RgNC+0YHQsFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldE5hbWVNZXRob2QodGhpcy51cmwpXG4gICAgICAgICAgICAgICAgICAgICAgKyAnPycgKyBzZXJpYWxpemVCaXRyaXhQYXJhbXMocGFyYW0pXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0sIHRoaXMucmVxdWVzdEhlYWRlcnMpXG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgcmV0dXJuIGZyb20oYmF0Y2hSZXF1ZXN0cykucGlwZShcbiAgICAgICAgICAgICAgICBjb25jYXRNYXAocmVxdWVzdCA9PiByZXF1ZXN0KSwgLy8g0JLRi9C/0L7Qu9C90Y/QtdGCINC30LDQv9GA0L7RgdGLINC/0L4g0L7Rh9C10YDQtdC00LhcbiAgICAgICAgICAgICAgICB0b0FycmF5KCksIC8vINCh0L7QsdC40YDQsNC10YIg0LLRgdC1INGA0LXQt9GD0LvRjNGC0LDRgtGLINCyINC80LDRgdGB0LjQslxuICAgICAgICAgICAgICAgIG1hcChyZXN1bHRzID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmKGl0ZW1zLnJlc3VsdCAmJiBpdGVtcy5yZXN1bHQudGFza3MpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gaXRlbXMucmVzdWx0LnRhc2tzIGFzIFRbXVxuXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHJlc3VsdCBvZiByZXN1bHRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiBpbnN0YW5jZU9maUJYUmVzdEFuc3dlclN1Y2Nlc3MocmVzdWx0KSAmJiByZXN1bHQucmVzdWx0ICYmIHJlc3VsdC5yZXN1bHQucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaCguLi5yZXN1bHQucmVzdWx0LnJlc3VsdC5maWx0ZXIoaSA9PiBpKS5tYXAoaSA9PiBpLnRhc2tzKS5mbGF0KCkgYXMgVFtdKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAodGhpcy5tYXApID9cbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcCh7dGFza3M6IHJlc30pXG4gICAgICAgICAgICAgICAgICAgICAgOiByZXNcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3cm9uZyBiYXRjaCcpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tYXBSZXNGb3JHZXRBbGwoaXRlbXMpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLm1hcFJlc0ZvckdldEFsbChpdGVtcylcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycilcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBtYXBSZXNGb3JHZXRBbGwoaXRlbXM6IGlCWFJlc3RBbnN3ZXI8e3Rhc2tzOiBUW10gfCB1bmRlZmluZWR9PiB8IHVuZGVmaW5lZCl7XG4gICAgcmV0dXJuIChpbnN0YW5jZU9maUJYUmVzdEFuc3dlclN1Y2Nlc3MoaXRlbXMpKSA/IGZyb20oW2l0ZW1zLnJlc3VsdF0pLnBpcGUoXG4gICAgICBtYXAodiA9PiAodiAmJiB0aGlzLm1hcCkgPyB0aGlzLm1hcCh2KSA6IHYpXG4gICAgKSA6IGZyb20oW10pXG4gIH1cbn1cbiJdfQ==
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktcGFnLW5hdi10YXNrcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL25hdnZ5L25hdnZ5LXBhZy1uYXYtdGFza3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFakUsTUFBTSxPQUFPLGdCQUFvRCxTQUFRLG9CQUFzQztJQUU3RyxZQUNFLEdBQWEsRUFDYixLQUFRLEVBQ1IsR0FBd0UsRUFDeEUsT0FBaUI7UUFFakIsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpQlhSZXN0UGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYXBpLXBhZ2luYXRpb24tYngnXG5pbXBvcnQgeyBOYXZ2eVBhZ05hdlJlc3VsdEtleSB9IGZyb20gJy4vbmF2dnktcGFnLW5hdi1yZXN1bHQta2V5J1xuXG5leHBvcnQgY2xhc3MgTmF2dnlQYWdOYXZUYXNrczxULCBSLCBQIGV4dGVuZHMgaUJYUmVzdFBhZ2luYXRpb24+IGV4dGVuZHMgTmF2dnlQYWdOYXZSZXN1bHRLZXk8VCwgUiwgUCwgJ3Rhc2tzJz4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHVybDogc3RyaW5nW10sXG4gICAgcGFyYW06IFAsXG4gICAgbWFwPzogKHBhcmFtOiB7IHRhc2tzOiBUW10gfCB1bmRlZmluZWQgfSB8IHVuZGVmaW5lZCkgPT4gUltdIHwgdW5kZWZpbmVkLFxuICAgIHJlc3RBcGk/OiBib29sZWFuXG4gICkge1xuICAgIHN1cGVyKHVybCwgcGFyYW0sICd0YXNrcycsIG1hcCwgcmVzdEFwaSlcbiAgfVxufVxuIl19
|
|
@@ -1,81 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult';
|
|
5
|
-
import { NavvyPagBase } from './extends/navvy-pag-base';
|
|
6
|
-
import { serializeBitrixParams } from '../../functions/serializeBitrixParams';
|
|
7
|
-
import { BXRest } from '../../rest/base';
|
|
1
|
+
import { map } from 'rxjs/operators';
|
|
2
|
+
import { mergeMap } from 'rxjs';
|
|
3
|
+
import { NavvyPagBase, offsetPageParams } from './extends/navvy-pag-base';
|
|
8
4
|
export class NavvyPagNavWithUselessKey extends NavvyPagBase {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.save = [];
|
|
12
|
-
}
|
|
13
5
|
resAll() {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const chunks = [];
|
|
21
|
-
for (let i = 0; i < count.length; i += this.pageSize) {
|
|
22
|
-
chunks.push(count.slice(i, i + this.pageSize));
|
|
23
|
-
}
|
|
24
|
-
const batchRequests = chunks.map(chunk => {
|
|
25
|
-
return BXRestClass.batch({
|
|
26
|
-
halt: 1,
|
|
27
|
-
cmd: chunk.map(i => {
|
|
28
|
-
const param = clone(this.param);
|
|
29
|
-
// Устанавливаем start в зависимости от индекса
|
|
30
|
-
param.start = (i + 1) * this.pageSize;
|
|
31
|
-
// Формируем строку запроса
|
|
32
|
-
return this.http.getNameMethod(this.url)
|
|
33
|
-
+ '?' + serializeBitrixParams(param);
|
|
34
|
-
})
|
|
35
|
-
}, this.requestHeaders).pipe(map(v => {
|
|
36
|
-
if (v && instanceOfiBXRestAnswerSuccess(v) && v.result && v.result.result && items.result) {
|
|
37
|
-
return Object.assign({}, items.result, v.result.result);
|
|
38
|
-
}
|
|
39
|
-
throw new Error('wrong batch');
|
|
40
|
-
}));
|
|
41
|
-
});
|
|
42
|
-
return from(batchRequests).pipe(concatMap(request => request), // Выполняет запросы по очереди
|
|
43
|
-
toArray()); // Собирает все результаты в массив
|
|
44
|
-
/*
|
|
45
|
-
return this.getAllTaskElapsedItem(func, param).pipe(
|
|
46
|
-
map(vEnd => {
|
|
47
|
-
if (vEnd && vEnd.result && items.result) {
|
|
48
|
-
return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})
|
|
49
|
-
}
|
|
50
|
-
return items
|
|
51
|
-
})
|
|
52
|
-
)
|
|
53
|
-
*/
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
return of([items.result]);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return of(undefined);
|
|
60
|
-
// return from([BXRestMapResult(items)])
|
|
61
|
-
// as ReturnType<Observable<T | undefined>, Observable<R | undefined>>
|
|
62
|
-
}), map(v => {
|
|
63
|
-
if (v) {
|
|
64
|
-
const mergedObject = v.reduce((acc, obj) => {
|
|
65
|
-
return { ...acc, ...obj };
|
|
66
|
-
}, {});
|
|
67
|
-
if (this.map) {
|
|
68
|
-
return this.map(mergedObject);
|
|
69
|
-
}
|
|
70
|
-
this.save.push(...v);
|
|
71
|
-
return this.save;
|
|
72
|
-
}
|
|
73
|
-
return v;
|
|
74
|
-
}), catchError(err => {
|
|
75
|
-
// this.snackBar.error("Проблемы с поточным получение затреканого времени")
|
|
76
|
-
console.error(err);
|
|
77
|
-
return throwError(() => err);
|
|
6
|
+
return this.resFirstPage().pipe(mergeMap(first => {
|
|
7
|
+
const params = first.next ? offsetPageParams(this.param, first.total, this.pageSize) : [];
|
|
8
|
+
return this.resPages(params).pipe(map(pages => {
|
|
9
|
+
const merged = Object.assign({}, first.result, ...pages);
|
|
10
|
+
return (this.map ? this.map(merged) : [merged]);
|
|
11
|
+
}));
|
|
78
12
|
}));
|
|
79
13
|
}
|
|
80
14
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktcGFnLW5hdi13aXRoLXVzZWxlc3Mta2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvbmF2dnkvbmF2dnktcGFnLW5hdi13aXRoLXVzZWxlc3Mta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUd6RSxNQUFNLE9BQU8seUJBQTZELFNBQVEsWUFBdUM7SUFFdkgsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDN0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1lBRXpGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBb0IsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxNQUFNLEdBQXNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQTtnQkFDM0UsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQXdELENBQUE7WUFDeEcsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpQlhSZXN0UGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYXBpLXBhZ2luYXRpb24tYngnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE5hdnZ5UGFnQmFzZSwgb2Zmc2V0UGFnZVBhcmFtcyB9IGZyb20gJy4vZXh0ZW5kcy9uYXZ2eS1wYWctYmFzZSdcbmltcG9ydCB7IFJldHVyblR5cGVOYXZ2eSB9IGZyb20gJy4vbmF2dnktc3VwcG9ydCdcblxuZXhwb3J0IGNsYXNzIE5hdnZ5UGFnTmF2V2l0aFVzZWxlc3NLZXk8VCwgUiwgUCBleHRlbmRzIGlCWFJlc3RQYWdpbmF0aW9uPiBleHRlbmRzIE5hdnZ5UGFnQmFzZTxSZWNvcmQ8c3RyaW5nLCBUPiwgUltdLCBQPiB7XG5cbiAgcmVzQWxsKCkge1xuICAgIHJldHVybiB0aGlzLnJlc0ZpcnN0UGFnZSgpLnBpcGUoXG4gICAgICBtZXJnZU1hcChmaXJzdCA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGZpcnN0Lm5leHQgPyBvZmZzZXRQYWdlUGFyYW1zKHRoaXMucGFyYW0sIGZpcnN0LnRvdGFsLCB0aGlzLnBhZ2VTaXplKSA6IFtdXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzUGFnZXM8UmVjb3JkPHN0cmluZywgVD4+KHBhcmFtcykucGlwZShcbiAgICAgICAgICBtYXAocGFnZXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VkOiBSZWNvcmQ8c3RyaW5nLCBUPiA9IE9iamVjdC5hc3NpZ24oe30sIGZpcnN0LnJlc3VsdCwgLi4ucGFnZXMpXG4gICAgICAgICAgICByZXR1cm4gKHRoaXMubWFwID8gdGhpcy5tYXAobWVyZ2VkKSA6IFttZXJnZWRdKSBhcyBSZXR1cm5UeXBlTmF2dnk8UmVjb3JkPHN0cmluZywgVD4sIFJbXT4gfCB1bmRlZmluZWRcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxufVxuIl19
|