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.
Files changed (53) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/README.en.md +3 -3
  3. package/README.md +3 -3
  4. package/esm2022/functions/errors.mjs +2 -1
  5. package/esm2022/functions/mapResult.mjs +4 -2
  6. package/esm2022/map/disk.mjs +13 -0
  7. package/esm2022/map/im/recent.mjs +1 -9
  8. package/esm2022/map/task.mjs +11 -5
  9. package/esm2022/map/tasks/task.mjs +3 -3
  10. package/esm2022/map/tasks.mjs +4 -3
  11. package/esm2022/map/user.mjs +5 -4
  12. package/esm2022/public-api.mjs +1 -1
  13. package/esm2022/request-navvy/bizproc.mjs +2 -2
  14. package/esm2022/request-navvy/crm/item.mjs +1 -1
  15. package/esm2022/request-navvy/crm/type.mjs +1 -1
  16. package/esm2022/request-navvy/pull/config.mjs +1 -3
  17. package/esm2022/request-navvy/task/operation/elapseditem.mjs +8 -65
  18. package/esm2022/rest/map.mjs +3 -3
  19. package/esm2022/services/base.mjs +7 -4
  20. package/esm2022/services/http/HttpBX.mjs +8 -3
  21. package/esm2022/services/navvy/extends/navvy-pag-base.mjs +78 -9
  22. package/esm2022/services/navvy/navvy-alternative-pagination-navigation.mjs +21 -71
  23. package/esm2022/services/navvy/navvy-pag-nav-result-key-object.mjs +12 -52
  24. package/esm2022/services/navvy/navvy-pag-nav-result-key.mjs +15 -71
  25. package/esm2022/services/navvy/navvy-pag-nav-tasks.mjs +5 -76
  26. package/esm2022/services/navvy/navvy-pag-nav-with-useless-key.mjs +10 -76
  27. package/esm2022/services/navvy/navvy-pag.mjs +7 -65
  28. package/esm2022/typification/rest/crm/universal.mjs +1 -1
  29. package/esm2022/typification/rest/settings.mjs +1 -1
  30. package/esm2022/typification/rest/user/user.mjs +1 -1
  31. package/fesm2022/bx-rest.mjs +507 -1653
  32. package/fesm2022/bx-rest.mjs.map +1 -1
  33. package/functions/errors.d.ts +1 -0
  34. package/map/disk.d.ts +10 -0
  35. package/map/task.d.ts +3 -3
  36. package/map/tasks/task.d.ts +1 -1
  37. package/map/tasks.d.ts +1 -1
  38. package/package.json +8 -2
  39. package/public-api.d.ts +5 -2
  40. package/request-navvy/crm/item.d.ts +6 -6
  41. package/request-navvy/crm/type.d.ts +6 -6
  42. package/request-navvy/pull/config.d.ts +0 -2
  43. package/rest/map.d.ts +2 -2
  44. package/services/navvy/extends/navvy-pag-base.d.ts +21 -1
  45. package/services/navvy/navvy-alternative-pagination-navigation.d.ts +5 -2
  46. package/services/navvy/navvy-pag-nav-result-key-object.d.ts +0 -2
  47. package/services/navvy/navvy-pag-nav-result-key.d.ts +1 -4
  48. package/services/navvy/navvy-pag-nav-tasks.d.ts +5 -9
  49. package/services/navvy/navvy-pag-nav-with-useless-key.d.ts +0 -2
  50. package/services/navvy/navvy-pag.d.ts +0 -2
  51. package/typification/rest/crm/universal.d.ts +116 -0
  52. package/typification/rest/settings.d.ts +1 -0
  53. package/typification/rest/user/user.d.ts +3 -3
@@ -1,10 +1,7 @@
1
- import { concatMap, from, last, mergeMap, shareReplay, throwError, toArray } from 'rxjs';
1
+ import { mergeMap, shareReplay } from 'rxjs';
2
2
  import clone from 'just-clone';
3
- import { catchError, map } from 'rxjs/operators';
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
- let save = [];
17
- return this.resultAllEnd()
18
- .pipe(map(v => {
19
- if (v) {
20
- save.push(...v);
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
- resultAllEnd() {
26
- let BXRestClass = new BXRest();
27
- // return this.mapForVanillaEnd(this.func, this.param)
28
- return this.resVanilla().pipe(mergeMap(items => {
29
- if (items && instanceOfiBXRestAnswerSuccess(items)) {
30
- if (items.total && items.next) {
31
- const count = [...Array(Math.floor(items.total / this.pageSize)).keys()];
32
- // Разделяем массив на блоки
33
- const chunks = [];
34
- for (let i = 0; i < count.length; i += this.pageSize) {
35
- chunks.push(count.slice(i, i + this.pageSize));
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktYWx0ZXJuYXRpdmUtcGFnaW5hdGlvbi1uYXZpZ2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvbmF2dnkvbmF2dnktYWx0ZXJuYXRpdmUtcGFnaW5hdGlvbi1uYXZpZ2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFeEYsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHaEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUV4Qzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxnQkFBK0QsU0FBUSxZQUF5QjtJQUUzRyxNQUFNO1FBQ0osSUFBSSxJQUFJLEdBQTRCLEVBQUUsQ0FBQTtRQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUU7YUFDdkIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNKLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTRCLENBQUMsQ0FBQTtZQUM1QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLENBQ0YsRUFDRCxJQUFJLEVBQUUsRUFDTixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQTtJQUNMLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksV0FBVyxHQUFHLElBQUksTUFBTSxFQUFFLENBQUE7UUFDOUIsdURBQXVEO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FDM0IsUUFBUSxDQUNOLEtBQUssQ0FBQyxFQUFFO1lBQ04sSUFBSSxLQUFLLElBQUksOEJBQThCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDOUIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtvQkFFeEUsNEJBQTRCO29CQUM1QixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUE7b0JBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO29CQUNoRCxDQUFDO29CQUVELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3ZDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBUTs0QkFDOUIsSUFBSSxFQUFFLENBQUM7NEJBQ1AsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0NBQ2pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0NBRS9CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7b0NBQ2xCLEtBQUssQ0FBQyxNQUFNLEdBQUc7d0NBQ2IsVUFBVSxFQUFFOzRDQUNWLFFBQVEsRUFBRSxDQUFDOzRDQUNYLFNBQVMsRUFBRSxFQUFFO3lDQUNkO3FDQUNGLENBQUE7Z0NBQ0gsQ0FBQztnQ0FFRCwrQ0FBK0M7Z0NBQy9DLEtBQUssQ0FBQyxNQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBLENBQUMsNENBQTRDO2dDQUV0RiwyQkFBMkI7Z0NBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztzQ0FDcEMsR0FBRyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFBOzRCQUN4QyxDQUFDLENBQUM7eUJBQ0gsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7b0JBQ3pCLENBQUMsQ0FBQyxDQUFBO29CQUVGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDN0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsK0JBQStCO29CQUM5RCxPQUFPLEVBQUUsRUFBRSxtQ0FBbUM7b0JBQzlDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDWixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBYSxDQUFBO3dCQUMvQixLQUFLLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDOzRCQUMzQixJQUFJLE1BQU0sSUFBSSw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7Z0NBQzlGLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBOzRCQUN0RCxDQUFDO3dCQUNILENBQUM7d0JBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOzRCQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQzs0QkFDYixDQUFDLENBQUMsR0FBRyxDQUFBO29CQUNULENBQUMsQ0FBQyxDQUNILENBQUE7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN2QyxDQUFDLENBQ0YsRUFDRCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZiwyRUFBMkU7WUFDM0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNsQixPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQXFDO1FBQzlELE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzVDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUE2QixDQUFDLENBQUE7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uY2F0TWFwLCBmcm9tLCBsYXN0LCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHRocm93RXJyb3IsIHRvQXJyYXkgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgaUJYUmVzdEFuc3dlciB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYW5zd2VyJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFJldHVyblR5cGVOYXZ2eSB9IGZyb20gJy4vbmF2dnktc3VwcG9ydCdcbmltcG9ydCB7IGlCWFJlc3RBbHRlcm5hdGl2ZVBhZ2luYXRpb24gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2FwaS1wYWdpbmF0aW9uLWJ4J1xuaW1wb3J0IHsgaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL21hcFJlc3VsdCdcbmltcG9ydCB7IE5hdnZ5UGFnQmFzZSB9IGZyb20gJy4vZXh0ZW5kcy9uYXZ2eS1wYWctYmFzZSdcbmltcG9ydCB7IHNlcmlhbGl6ZUJpdHJpeFBhcmFtcyB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9zZXJpYWxpemVCaXRyaXhQYXJhbXMnXG5pbXBvcnQgeyBCWFJlc3QgfSBmcm9tICcuLi8uLi9yZXN0L2Jhc2UnXG5cbi8qKlxuICog0JrQu9Cw0YHRgS3Qv9GA0L7RgdC70L7QudC60LAt0L7QsdGA0LDQsdC+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 { concatMap, from, last, map, mergeMap, shareReplay, throwError, toArray } from 'rxjs';
2
- import { catchError } from 'rxjs/operators';
3
- import clone from 'just-clone';
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
- super(url, param, mapResult);
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.resultAllEnd().pipe(last(), shareReplay(1));
16
- }
17
- resultAllEnd() {
18
- const bxRest = new BXRest();
19
- return this.resVanilla().pipe(mergeMap(items => {
20
- if (!items || !instanceOfiBXRestAnswerSuccess(items)) {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktcGFnLW5hdi1yZXN1bHQta2V5LW9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL25hdnZ5L25hdnZ5LXBhZy1uYXYtcmVzdWx0LWtleS1vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzNDLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUc5QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTtBQUM3RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBSXZELDRGQUE0RjtBQUM1RixNQUFNLE9BQU8sMEJBS1gsU0FBUSxZQUE2QztJQUNyRCxZQUNFLEdBQWEsRUFDYixLQUFRLEVBQ1MsR0FBTSxFQUN2QixTQUEyRTtRQUUzRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUhYLFFBQUcsR0FBSCxHQUFHLENBQUc7SUFJekIsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtR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QUNqQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlCLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNqQixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFtQixDQUFDLENBQzlELENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25jYXRNYXAsIGZyb20sIGxhc3QsIG1hcCwgbWVyZ2VNYXAsIHNoYXJlUmVwbGF5LCB0aHJvd0Vycm9yLCB0b0FycmF5IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJ1xuaW1wb3J0IHsgaUJYUmVzdFBhZ2luYXRpb24gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2FwaS1wYWdpbmF0aW9uLWJ4J1xuaW1wb3J0IHsgaUJYUmVzdEFuc3dlciB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYW5zd2VyJ1xuaW1wb3J0IHsgaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL21hcFJlc3VsdCdcbmltcG9ydCB7IHNlcmlhbGl6ZUJpdHJpeFBhcmFtcyB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9zZXJpYWxpemVCaXRyaXhQYXJhbXMnXG5pbXBvcnQgeyBCWFJlc3QgfSBmcm9tICcuLi8uLi9yZXN0L2Jhc2UnXG5pbXBvcnQgeyBOYXZ2eVBhZ0Jhc2UgfSBmcm9tICcuL2V4dGVuZHMvbmF2dnktcGFnLWJhc2UnXG5cbnR5cGUgS2V5ZWRPYmplY3RSZXN1bHQ8SyBleHRlbmRzIHN0cmluZywgVD4gPSBSZWNvcmQ8SywgUmVjb3JkPHN0cmluZywgVD4gfCB1bmRlZmluZWQ+XG5cbi8qKiDQn9Cw0LPQuNC90LDRhtC40Y8g0LTQu9GPINC80LXRgtC+0LTQvtCyLCDQstC+0LfQstGA0LDRidCw0Y7RidC40YUg0LrQvtC70LvQtdC60YbQuNGOINC60LDQuiDQvtCx0YrQtdC60YIg0YEg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDQsNC80Lgg0LIg0LrQu9GO0YfQsNGFLiAqL1xuZXhwb3J0IGNsYXNzIE5hdnZ5UGFnTmF2UmVzdWx0S2V5T2JqZWN0PFxuICBULFxuICBSLFxuICBQIGV4dGVuZHMgaUJYUmVzdFBhZ2luYXRpb24sXG4gIEsgZXh0ZW5kcyBzdHJpbmdcbj4gZXh0ZW5kcyBOYXZ2eVBhZ0Jhc2U8S2V5ZWRPYmplY3RSZXN1bHQ8SywgVD4sIFJbXSwgUD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICB1cmw6IHN0cmluZ1tdLFxuICAgIHBhcmFtOiBQLFxuICAgIHByaXZhdGUgcmVhZG9ubHkga2V5OiBLLFxuICAgIG1hcFJlc3VsdD86IChwYXJhbTogS2V5ZWRPYmplY3RSZXN1bHQ8SywgVD4gfCB1bmRlZmluZWQpID0+IFJbXSB8IHVuZGVmaW5lZFxuICApIHtcbiAgICBzdXBlcih1cmwsIHBhcmFtLCBtYXBSZXN1bHQpXG4gIH1cblxuICByZXNBbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0QWxsRW5kKCkucGlwZShsYXN0KCksIHNoYXJlUmVwbGF5KDEpKVxuICB9XG5cbiAgcHJpdmF0ZSByZXN1bHRBbGxFbmQoKSB7XG4gICAgY29uc3QgYnhSZXN0ID0gbmV3IEJYUmVzdCgpXG5cbiAgICByZXR1cm4gdGhpcy5yZXNWYW5pbGxhKCkucGlwZShcbiAgICAgIG1lcmdlTWFwKGl0ZW1zID0+IHtcbiAgICAgICAgaWYgKCFpdGVtcyB8fCAhaW5zdGFuY2VPZmlCWFJlc3RBbnN3ZXJTdWNjZXNzKGl0ZW1zKSkge1xuICAgICAgICAgIHJldHVybiBmcm9tKFtdKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpdGVtcy50b3RhbCB8fCBpdGVtcy50b3RhbCA8PSB0aGlzLnBhZ2VTaXplKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMubWFwUmVzdWx0KGl0ZW1zKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFnZUNvdW50ID0gTWF0aC5jZWlsKGl0ZW1zLnRvdGFsIC8gdGhpcy5wYWdlU2l6ZSlcbiAgICAgICAgY29uc3QgY29tbWFuZHMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiBwYWdlQ291bnQgLSAxIH0sIChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhcmFtID0gY2xvbmUodGhpcy5wYXJhbSlcbiAgICAgICAgICBwYXJhbS5zdGFydCA9IChpbmRleCArIDEpICogdGhpcy5wYWdlU2l6ZVxuICAgICAgICAgIHJldHVybiBieFJlc3QuYmF0Y2g8S2V5ZWRPYmplY3RSZXN1bHQ8SywgVD5bXT4oe1xuICAgICAgICAgICAgaGFsdDogMSxcbiAgICAgICAgICAgIGNtZDogW3RoaXMuaHR0cC5nZXROYW1lTWV0aG9kKHRoaXMudXJsKSArICc/JyArIHNlcmlhbGl6ZUJpdHJpeFBhcmFtcyhwYXJhbSldXG4gICAgICAgICAgfSwgdGhpcy5yZXF1ZXN0SGVhZGVycylcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4gZnJvbShjb21tYW5kcykucGlwZShcbiAgICAgICAgICBjb25jYXRNYXAocmVxdWVzdCA9PiByZXF1ZXN0KSxcbiAgICAgICAgICB0b0FycmF5KCksXG4gICAgICAgICAgbWVyZ2VNYXAocmVzdWx0cyA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXJnZWQgPSB7IC4uLihpdGVtcy5yZXN1bHQ/Llt0aGlzLmtleV0gPz8ge30pIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCByZXN1bHQgb2YgcmVzdWx0cykge1xuICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyhyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYWdlIG9mIHJlc3VsdC5yZXN1bHQ/LnJlc3VsdCA/PyBbXSkge1xuICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihtZXJnZWQsIHBhZ2U/Llt0aGlzLmtleV0gPz8ge30pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hcFJlc3VsdCh7IFt0aGlzLmtleV06IG1lcmdlZCB9IGFzIEtleWVkT2JqZWN0UmVzdWx0PEssIFQ+KVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIG1hcFJlc3VsdChpdGVtczogaUJYUmVzdEFuc3dlcjxLZXllZE9iamVjdFJlc3VsdDxLLCBUPj4pIHtcbiAgICBpZiAoIWluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyhpdGVtcykpIHtcbiAgICAgIHJldHVybiBmcm9tKFtdKVxuICAgIH1cblxuICAgIHJldHVybiBmcm9tKFtpdGVtcy5yZXN1bHRdKS5waXBlKFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMubWFwXG4gICAgICAgID8gdGhpcy5tYXAodmFsdWUpXG4gICAgICAgIDogT2JqZWN0LnZhbHVlcyh2YWx1ZT8uW3RoaXMua2V5XSA/PyB7fSkgYXMgdW5rbm93biBhcyBSW10pXG4gICAgKVxuICB9XG59XG4iXX0=
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 { concatMap, from, last, mergeMap, shareReplay, throwError, toArray } from 'rxjs';
2
- import { catchError, map } from 'rxjs/operators';
3
- import clone from 'just-clone';
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
- super(url, param, map);
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
- let save = [];
16
- return this.resultAllEnd()
17
- .pipe(map(v => {
18
- if (v) {
19
- save.push(...v);
20
- }
21
- return save;
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 { concatMap, from, last, mergeMap, shareReplay, throwError, toArray } from 'rxjs';
2
- import { catchError, map } from 'rxjs/operators';
3
- import clone from 'just-clone';
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';
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 { catchError, map } from 'rxjs/operators';
2
- import { concatMap, from, mergeMap, of, throwError, toArray } from 'rxjs';
3
- import clone from 'just-clone';
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
- let BXRestClass = new BXRest();
15
- return this.resVanilla().pipe(mergeMap(items => {
16
- if (items && instanceOfiBXRestAnswerSuccess(items)) {
17
- if (items.total && items.next) {
18
- const count = [...Array(Math.floor(items.total / this.pageSize)).keys()];
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktcGFnLW5hdi13aXRoLXVzZWxlc3Mta2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvbmF2dnkvbmF2dnktcGFnLW5hdi13aXRoLXVzZWxlc3Mta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3pFLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUM5QixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRXhDLE1BQU0sT0FBTyx5QkFBNkQsU0FBUSxZQUF1QztJQUF6SDs7UUFFRSxTQUFJLEdBQTRDLEVBQUUsQ0FBQTtJQW9GcEQsQ0FBQztJQWxGQyxNQUFNO1FBQ0osSUFBSSxXQUFXLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQTtRQUM5QixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQzNCLFFBQVEsQ0FDTixLQUFLLENBQUMsRUFBRTtZQUNOLElBQUksS0FBSyxJQUFJLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzlCLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsSUFB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WUFBWSxDQUFDLENBQUE7Z0JBQy9CLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUE0QyxDQUFDLENBQUE7Z0JBQy9ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQTtZQUNsQixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUE7UUFDVixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZiwyRUFBMkU7WUFDM0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNsQixPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaUJYUmVzdFBhZ2luYXRpb24gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2FwaS1wYWdpbmF0aW9uLWJ4J1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBjb25jYXRNYXAsIGZyb20sIG1lcmdlTWFwLCBvZiwgdGhyb3dFcnJvciwgdG9BcnJheSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgY2xvbmUgZnJvbSAnanVzdC1jbG9uZSdcbmltcG9ydCB7IGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9tYXBSZXN1bHQnXG5pbXBvcnQgeyBOYXZ2eVBhZ0Jhc2UgfSBmcm9tICcuL2V4dGVuZHMvbmF2dnktcGFnLWJhc2UnXG5pbXBvcnQgeyBSZXR1cm5UeXBlTmF2dnkgfSBmcm9tICcuL25hdnZ5LXN1cHBvcnQnXG5pbXBvcnQgeyBzZXJpYWxpemVCaXRyaXhQYXJhbXMgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvc2VyaWFsaXplQml0cml4UGFyYW1zJ1xuaW1wb3J0IHsgQlhSZXN0IH0gZnJvbSAnLi4vLi4vcmVzdC9iYXNlJ1xuXG5leHBvcnQgY2xhc3MgTmF2dnlQYWdOYXZXaXRoVXNlbGVzc0tleTxULCBSLCBQIGV4dGVuZHMgaUJYUmVzdFBhZ2luYXRpb24+IGV4dGVuZHMgTmF2dnlQYWdCYXNlPFJlY29yZDxzdHJpbmcsIFQ+LCBSW10sIFA+IHtcblxuICBzYXZlOiBSZXR1cm5UeXBlTmF2dnk8UmVjb3JkPHN0cmluZywgVD4sIFJbXT4gPSBbXVxuXG4gIHJlc0FsbCgpIHtcbiAgICBsZXQgQlhSZXN0Q2xhc3MgPSBuZXcgQlhSZXN0KClcbiAgICByZXR1cm4gdGhpcy5yZXNWYW5pbGxhKCkucGlwZShcbiAgICAgIG1lcmdlTWFwKFxuICAgICAgICBpdGVtcyA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW1zICYmIGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2VzcyhpdGVtcykpIHtcbiAgICAgICAgICAgIGlmIChpdGVtcy50b3RhbCAmJiBpdGVtcy5uZXh0KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gWy4uLkFycmF5KE1hdGguZmxvb3IoaXRlbXMudG90YWwgLyB0aGlzLnBhZ2VTaXplKSkua2V5cygpXVxuXG4gICAgICAgICAgICAgIC8vINCg0LDQt9C00LXQu9GP0LXQvCDQvNCw0YHRgdC40LIg0L3QsCDQsdC70L7QutC4XG4gICAgICAgICAgICAgIGNvbnN0IGNodW5rcyA9IFtdXG5cbiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudC5sZW5ndGg7IGkgKz0gdGhpcy5wYWdlU2l6ZSkge1xuICAgICAgICAgICAgICAgIGNodW5rcy5wdXNoKGNvdW50LnNsaWNlKGksIGkgKyB0aGlzLnBhZ2VTaXplKSlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IGJhdGNoUmVxdWVzdHMgPSBjaHVua3MubWFwKGNodW5rID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQlhSZXN0Q2xhc3MuYmF0Y2g8UmVjb3JkPHN0cmluZywgVD5bXT4oe1xuICAgICAgICAgICAgICAgICAgaGFsdDogMSxcbiAgICAgICAgICAgICAgICAgIGNtZDogY2h1bmsubWFwKGkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbSA9IGNsb25lKHRoaXMucGFyYW0pXG4gICAgICAgICAgICAgICAgICAgIC8vINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8IHN0YXJ0INCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDQuNC90LTQtdC60YHQsFxuICAgICAgICAgICAgICAgICAgICBwYXJhbS5zdGFydCA9IChpICsgMSkgKiB0aGlzLnBhZ2VTaXplXG5cbiAgICAgICAgICAgICAgICAgICAgLy8g0KTQvtGA0LzQuNGA0YPQtdC8INGB0YLRgNC+0LrRgyDQt9Cw0L/RgNC+0YHQsFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldE5hbWVNZXRob2QodGhpcy51cmwpXG4gICAgICAgICAgICAgICAgICAgICAgKyAnPycgKyBzZXJpYWxpemVCaXRyaXhQYXJhbXMocGFyYW0pXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0sIHRoaXMucmVxdWVzdEhlYWRlcnMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICBtYXAodiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIGluc3RhbmNlT2ZpQlhSZXN0QW5zd2VyU3VjY2Vzcyh2KSAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC5yZXN1bHQgJiYgaXRlbXMucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGl0ZW1zLnJlc3VsdCwgdi5yZXN1bHQucmVzdWx0KSBhcyBSZWNvcmQ8c3RyaW5nLCBUPlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd3cm9uZyBiYXRjaCcpXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICByZXR1cm4gZnJvbShiYXRjaFJlcXVlc3RzKS5waXBlKFxuICAgICAgICAgICAgICAgIGNvbmNhdE1hcChyZXF1ZXN0ID0+IHJlcXVlc3QpLCAvLyDQktGL0L/QvtC70L3Rj9C10YIg0LfQsNC/0YDQvtGB0Ysg0L/QviDQvtGH0LXRgNC10LTQuFxuICAgICAgICAgICAgICAgIHRvQXJyYXkoKSkgLy8g0KHQvtCx0LjRgNCw0LXRgiDQstGB0LUg0YDQtdC30YPQu9GM0YLQsNGC0Ysg0LIg0LzQsNGB0YHQuNCyXG4gICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEFsbFRhc2tFbGFwc2VkSXRlbShmdW5jLCBwYXJhbSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAodkVuZCA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAodkVuZCAmJiB2RW5kLnJlc3VsdCAmJiBpdGVtcy5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKGNsb25lKHZFbmQpLCB7cmVzdWx0OiBbLi4uaXRlbXMucmVzdWx0LCAuLi52RW5kLnJlc3VsdF19KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1zXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZihbaXRlbXMucmVzdWx0IGFzIFJlY29yZDxzdHJpbmcsIFQ+XSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgICAgICAvLyByZXR1cm4gZnJvbShbQlhSZXN0TWFwUmVzdWx0KGl0ZW1zKV0pXG4gICAgICAgICAgLy8gYXMgUmV0dXJuVHlwZTxPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+LCBPYnNlcnZhYmxlPFIgfCB1bmRlZmluZWQ+PlxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgbWFwKHYgPT4ge1xuICAgICAgICBpZiAodikge1xuICAgICAgICAgIGNvbnN0IG1lcmdlZE9iamVjdDogUmVjb3JkPHN0cmluZywgVD4gPSB2LnJlZHVjZSgoYWNjLCBvYmopID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmFjYywgLi4ub2JqIH1cbiAgICAgICAgICB9LCB7fSlcblxuICAgICAgICAgIGlmKHRoaXMubWFwKXtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1hcChtZXJnZWRPYmplY3QpXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2F2ZS5wdXNoKC4uLnYgYXMgUmV0dXJuVHlwZU5hdnZ5PFJlY29yZDxzdHJpbmcsIFQ+LCBSW10+KVxuICAgICAgICAgIHJldHVybiB0aGlzLnNhdmVcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdlxuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIC8vIHRoaXMuc25hY2tCYXIuZXJyb3IoXCLQn9GA0L7QsdC70LXQvNGLINGBINC/0L7RgtC+0YfQvdGL0Lwg0L/QvtC70YPRh9C10L3QuNC1INC30LDRgtGA0LXQutCw0L3QvtCz0L4g0LLRgNC10LzQtdC90LhcIilcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycilcbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2dnktcGFnLW5hdi13aXRoLXVzZWxlc3Mta2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvbmF2dnkvbmF2dnktcGFnLW5hdi13aXRoLXVzZWxlc3Mta2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUd6RSxNQUFNLE9BQU8seUJBQTZELFNBQVEsWUFBdUM7SUFFdkgsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDN0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1lBRXpGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBb0IsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ1YsTUFBTSxNQUFNLEdBQXNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQTtnQkFDM0UsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQXdELENBQUE7WUFDeEcsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpQlhSZXN0UGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvYXBpLXBhZ2luYXRpb24tYngnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IE5hdnZ5UGFnQmFzZSwgb2Zmc2V0UGFnZVBhcmFtcyB9IGZyb20gJy4vZXh0ZW5kcy9uYXZ2eS1wYWctYmFzZSdcbmltcG9ydCB7IFJldHVyblR5cGVOYXZ2eSB9IGZyb20gJy4vbmF2dnktc3VwcG9ydCdcblxuZXhwb3J0IGNsYXNzIE5hdnZ5UGFnTmF2V2l0aFVzZWxlc3NLZXk8VCwgUiwgUCBleHRlbmRzIGlCWFJlc3RQYWdpbmF0aW9uPiBleHRlbmRzIE5hdnZ5UGFnQmFzZTxSZWNvcmQ8c3RyaW5nLCBUPiwgUltdLCBQPiB7XG5cbiAgcmVzQWxsKCkge1xuICAgIHJldHVybiB0aGlzLnJlc0ZpcnN0UGFnZSgpLnBpcGUoXG4gICAgICBtZXJnZU1hcChmaXJzdCA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGZpcnN0Lm5leHQgPyBvZmZzZXRQYWdlUGFyYW1zKHRoaXMucGFyYW0sIGZpcnN0LnRvdGFsLCB0aGlzLnBhZ2VTaXplKSA6IFtdXG5cbiAgICAgICAgcmV0dXJuIHRoaXMucmVzUGFnZXM8UmVjb3JkPHN0cmluZywgVD4+KHBhcmFtcykucGlwZShcbiAgICAgICAgICBtYXAocGFnZXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VkOiBSZWNvcmQ8c3RyaW5nLCBUPiA9IE9iamVjdC5hc3NpZ24oe30sIGZpcnN0LnJlc3VsdCwgLi4ucGFnZXMpXG4gICAgICAgICAgICByZXR1cm4gKHRoaXMubWFwID8gdGhpcy5tYXAobWVyZ2VkKSA6IFttZXJnZWRdKSBhcyBSZXR1cm5UeXBlTmF2dnk8UmVjb3JkPHN0cmluZywgVD4sIFJbXT4gfCB1bmRlZmluZWRcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxufVxuIl19