bx-rest 0.0.35 → 0.1.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 (113) hide show
  1. package/README.md +60 -4
  2. package/esm2020/functions/mapResult.mjs +2 -2
  3. package/esm2020/map/disk/base.mjs +57 -0
  4. package/esm2020/map/disk/folder.mjs +17 -0
  5. package/esm2020/map/disk/storage.mjs +17 -0
  6. package/esm2020/map/lists/element.mjs +8 -8
  7. package/esm2020/map/lists.mjs +19 -0
  8. package/esm2020/map/task.mjs +115 -0
  9. package/esm2020/map/user.mjs +89 -0
  10. package/esm2020/public-api.mjs +4 -2
  11. package/esm2020/request/disk/file.mjs +38 -0
  12. package/esm2020/request/disk/folder.mjs +46 -0
  13. package/esm2020/request/disk/storage.mjs +46 -0
  14. package/esm2020/request/disk.mjs +19 -0
  15. package/esm2020/request/lists/element.mjs +5 -7
  16. package/esm2020/request/tasks/task.mjs +61 -0
  17. package/esm2020/request/tasks.mjs +17 -0
  18. package/esm2020/request/user.mjs +29 -132
  19. package/esm2020/request-navvy/disk/file.mjs +39 -0
  20. package/esm2020/request-navvy/disk/folder.mjs +44 -0
  21. package/esm2020/request-navvy/disk/operation.mjs +95 -0
  22. package/esm2020/request-navvy/disk/storage.mjs +59 -0
  23. package/esm2020/request-navvy/disk.mjs +21 -0
  24. package/esm2020/request-navvy/lists/element.mjs +25 -0
  25. package/esm2020/request-navvy/lists.mjs +25 -0
  26. package/esm2020/request-navvy/tasks/task.mjs +64 -0
  27. package/esm2020/request-navvy/tasks.mjs +17 -0
  28. package/esm2020/request-navvy/user.mjs +65 -0
  29. package/esm2020/rest.mjs +42 -4
  30. package/esm2020/services/base.mjs +3 -2
  31. package/esm2020/services/http/HttpBX.mjs +23 -59
  32. package/esm2020/services/http/HttpData.mjs +2 -8
  33. package/esm2020/services/http/base/base.mjs +3 -4
  34. package/esm2020/services/http/base/http.mjs +6 -21
  35. package/esm2020/services/http/http.mjs +7 -71
  36. package/esm2020/services/http/sessionKey.mjs +36 -20
  37. package/esm2020/services/navvy.mjs +26 -0
  38. package/esm2020/services/vanilla/sessionStorage.mjs +23 -0
  39. package/esm2020/settings.mjs +4 -5
  40. package/esm2020/typification/rest/base/answer.mjs +2 -0
  41. package/esm2020/typification/rest/base/filterGenerator.mjs +2 -0
  42. package/esm2020/typification/rest/batch/batchRequestParam.mjs +1 -1
  43. package/esm2020/typification/rest/disk/file.mjs +2 -0
  44. package/esm2020/typification/rest/disk/folder.mjs +2 -0
  45. package/esm2020/typification/rest/disk/map.mjs +2 -0
  46. package/esm2020/typification/rest/disk/storage/uploadfile.mjs +2 -0
  47. package/esm2020/typification/rest/lists/element/get.mjs +1 -1
  48. package/esm2020/typification/rest/task/fieldsForSend.mjs +2 -0
  49. package/esm2020/typification/rest/task/people/base.mjs +2 -0
  50. package/esm2020/typification/rest/task/task.mjs +2 -0
  51. package/esm2020/typification/rest/user/get.mjs +1 -1
  52. package/esm2020/typification/settings.mjs +1 -1
  53. package/fesm2015/bx-rest.mjs +1032 -427
  54. package/fesm2015/bx-rest.mjs.map +1 -1
  55. package/fesm2020/bx-rest.mjs +1030 -427
  56. package/fesm2020/bx-rest.mjs.map +1 -1
  57. package/functions/mapResult.d.ts +4 -2
  58. package/map/disk/base.d.ts +12 -0
  59. package/map/disk/folder.d.ts +9 -0
  60. package/map/disk/storage.d.ts +9 -0
  61. package/map/lists/element.d.ts +4 -4
  62. package/map/lists.d.ts +9 -0
  63. package/map/task.d.ts +8 -0
  64. package/map/user.d.ts +12 -0
  65. package/package.json +1 -1
  66. package/public-api.d.ts +3 -1
  67. package/request/disk/file.d.ts +25 -0
  68. package/request/disk/folder.d.ts +26 -0
  69. package/request/disk/storage.d.ts +34 -0
  70. package/request/disk.d.ts +10 -0
  71. package/request/lists/element.d.ts +3 -5
  72. package/request/tasks/task.d.ts +55 -0
  73. package/request/tasks.d.ts +8 -0
  74. package/request/user.d.ts +12 -23
  75. package/request-navvy/disk/file.d.ts +17 -0
  76. package/request-navvy/disk/folder.d.ts +13 -0
  77. package/request-navvy/disk/operation.d.ts +23 -0
  78. package/request-navvy/disk/storage.d.ts +28 -0
  79. package/request-navvy/disk.d.ts +12 -0
  80. package/request-navvy/lists/element.d.ts +14 -0
  81. package/request-navvy/lists.d.ts +15 -0
  82. package/request-navvy/tasks/task.d.ts +16 -0
  83. package/request-navvy/tasks.d.ts +8 -0
  84. package/request-navvy/user.d.ts +24 -0
  85. package/rest.d.ts +25 -1
  86. package/services/http/HttpBX.d.ts +7 -16
  87. package/services/http/HttpData.d.ts +1 -3
  88. package/services/http/base/base.d.ts +4 -4
  89. package/services/http/base/http.d.ts +3 -3
  90. package/services/http/http.d.ts +3 -17
  91. package/services/http/sessionKey.d.ts +13 -2
  92. package/services/navvy.d.ts +11 -0
  93. package/services/vanilla/sessionStorage.d.ts +7 -0
  94. package/typification/rest/base/{httpAnswerBX.d.ts → answer.d.ts} +1 -1
  95. package/typification/rest/base/filterGenerator.d.ts +5 -0
  96. package/typification/rest/batch/batchRequestParam.d.ts +2 -2
  97. package/typification/rest/disk/file.d.ts +14 -0
  98. package/typification/rest/disk/folder.d.ts +47 -0
  99. package/typification/rest/disk/map.d.ts +6 -0
  100. package/typification/rest/disk/storage/uploadfile.d.ts +9 -0
  101. package/typification/rest/lists/element/get.d.ts +9 -1
  102. package/typification/rest/task/fieldsForSend.d.ts +61 -0
  103. package/typification/rest/task/people/base.d.ts +12 -0
  104. package/typification/rest/task/task.d.ts +102 -0
  105. package/typification/rest/user/get.d.ts +1 -1
  106. package/typification/settings.d.ts +3 -4
  107. package/esm2020/services/map/base.mjs +0 -14
  108. package/esm2020/services/map/rest/user.mjs +0 -89
  109. package/esm2020/store/users.mjs +0 -67
  110. package/esm2020/typification/rest/base/httpAnswerBX.mjs +0 -2
  111. package/services/map/base.d.ts +0 -6
  112. package/services/map/rest/user.d.ts +0 -12
  113. package/store/users.d.ts +0 -34
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { NgModule, inject, Component, ViewEncapsulation, Inject, Injectable } from '@angular/core';
3
- import { Subscription, filter, take, of, throwError, forkJoin, mergeMap } from 'rxjs';
4
- import { map, catchError, mergeMap as mergeMap$1, first } from 'rxjs/operators';
2
+ import { NgModule, inject, Component, ViewEncapsulation, Inject, Injectable, Optional } from '@angular/core';
3
+ import { Subscription, filter, take, of, mergeMap, throwError, forkJoin, tap } from 'rxjs';
4
+ import { map, catchError, take as take$1, mergeMap as mergeMap$1 } from 'rxjs/operators';
5
5
  import clone from 'just-clone';
6
6
  import * as i1$1 from '@angular/material/snack-bar';
7
7
  import { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';
@@ -13,10 +13,26 @@ import * as i1$2 from '@ngrx/store';
13
13
  import { createAction, props, createReducer, on } from '@ngrx/store';
14
14
  import { DateTime } from 'luxon';
15
15
  import * as i2$1 from '@angular/router';
16
- import flatten from 'just-flatten-it';
17
16
  import * as i1$3 from '@angular/common/http';
18
17
  import { HttpParams } from '@angular/common/http';
19
18
 
19
+ const REST_SETTINGS = {
20
+ auth: {
21
+ source: 'cookies',
22
+ key: 'auth'
23
+ },
24
+ urls: {
25
+ home: 'b24.trace-studio.com'
26
+ }
27
+ };
28
+
29
+ function BXRestMapResult(v) {
30
+ if (v && (v.result || typeof v.result === 'boolean')) {
31
+ return v.result;
32
+ }
33
+ return undefined;
34
+ }
35
+
20
36
  const $get = 'get';
21
37
  const $add = 'add';
22
38
  const $set = 'set';
@@ -436,9 +452,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
436
452
  }]
437
453
  }] });
438
454
 
439
- const save$1 = createAction('[Auth Component] Save', props());
455
+ const save = createAction('[Auth Component] Save', props());
440
456
  const saveAccessToken = createAction('[Auth Component] SaveAccessToken', props());
441
- const initialState$1 = {
457
+ const initialState = {
442
458
  access_token: '',
443
459
  client_endpoint: '',
444
460
  domain: '',
@@ -451,11 +467,11 @@ const initialState$1 = {
451
467
  status: '',
452
468
  user_id: 0
453
469
  };
454
- const _authReducer = createReducer(initialState$1, on(saveAccessToken, (s, data) => {
470
+ const _authReducer = createReducer(initialState, on(saveAccessToken, (s, data) => {
455
471
  let copy = clone(s);
456
472
  return Object.assign(copy, data);
457
473
  }));
458
- function authReducer(state = initialState$1, action) {
474
+ function authReducer(state = initialState, action) {
459
475
  return _authReducer(state, action);
460
476
  }
461
477
 
@@ -560,7 +576,7 @@ class BaseServices {
560
576
  }
561
577
  getHomeAddress() {
562
578
  // return this.prepareBaseAddress(environment.urls.home)
563
- return this.prepareBaseAddress('b24.trace-studio.com');
579
+ return this.prepareBaseAddress(REST_SETTINGS.urls.home);
564
580
  }
565
581
  dateDiff(a, b) {
566
582
  return new Date(a.valueOf() - b.valueOf());
@@ -664,17 +680,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
664
680
  }]
665
681
  }] });
666
682
 
667
- const REST_SETTINGS = {
668
- support: {
669
- map: true,
670
- result: true
671
- },
672
- auth: 'cookies',
673
- urls: {
674
- home: 'b24.trace-studio.com'
675
- }
676
- };
677
-
678
683
  class RestServices {
679
684
  constructor() {
680
685
  this.BX24 = false;
@@ -695,7 +700,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
695
700
  }], ctorParameters: function () { return []; } });
696
701
 
697
702
  class SessionKeyServices extends BaseServices {
698
- constructor(store, route, BxApiLib) {
703
+ constructor(store, route, BxApiLib, REST_SETTINGS) {
699
704
  super();
700
705
  this.store = store;
701
706
  this.route = route;
@@ -704,6 +709,7 @@ class SessionKeyServices extends BaseServices {
704
709
  this.subscribe = {
705
710
  authData: new Subscription()
706
711
  };
712
+ this.REST_SETTINGS = REST_SETTINGS;
707
713
  this.authData$ = this.store.select('auth');
708
714
  this.authData$.subscribe(authData => {
709
715
  if ((authData && !authData.access_token.length) || !authData) {
@@ -800,24 +806,34 @@ class SessionKeyServices extends BaseServices {
800
806
  this.subscribe.authData.unsubscribe();
801
807
  }
802
808
  getAuth() {
803
- if (window.BX && window.BX.bitrix_sessid()) {
804
- return window.BX.bitrix_sessid();
805
- }
806
- else if (this.getSessid().length) {
807
- let str = this.getSessid();
808
- return (str) ? str : '';
809
- }
810
- else {
811
- return CookiesServices.get('auth');
809
+ switch (REST_SETTINGS.auth.key) {
810
+ case 'auth':
811
+ return CookiesServices.get('auth');
812
+ default:
813
+ if (window.BX && window.BX.bitrix_sessid()) {
814
+ return window.BX.bitrix_sessid();
815
+ }
816
+ else if (this.getSessid().length) {
817
+ let str = this.getSessid();
818
+ return (str) ? str : '';
819
+ }
820
+ else {
821
+ return CookiesServices.get('auth');
822
+ }
812
823
  }
813
824
  }
814
825
  getKeyAuth() {
815
- if (window.BX && window.BX.bitrix_sessid()
816
- || this.getSessid().length) {
817
- return 'sessid';
826
+ if (REST_SETTINGS.auth.key.length) {
827
+ return REST_SETTINGS.auth.key;
818
828
  }
819
829
  else {
820
- return 'auth';
830
+ if (window.BX && window.BX.bitrix_sessid()
831
+ || this.getSessid().length) {
832
+ return 'sessid';
833
+ }
834
+ else {
835
+ return 'auth';
836
+ }
821
837
  }
822
838
  }
823
839
  getSessid() {
@@ -843,7 +859,7 @@ class SessionKeyServices extends BaseServices {
843
859
  return false;
844
860
  }
845
861
  getAuthParams() {
846
- switch (REST_SETTINGS.auth) {
862
+ switch (REST_SETTINGS.auth.source) {
847
863
  case 'cookies':
848
864
  return of(this.getAuth());
849
865
  default:
@@ -851,21 +867,26 @@ class SessionKeyServices extends BaseServices {
851
867
  }
852
868
  }
853
869
  getBaseUrl() {
854
- return of(this.prepareBaseAddress(REST_SETTINGS.urls.home, 'rest')); // TODO: вынести в настройки
870
+ return of(this.prepareBaseAddress(this.REST_SETTINGS.urls.home, 'rest'));
855
871
  // return this.authData$.pipe( // TODO: разобраться позже
856
872
  // take(1),
857
873
  // map(v => (v && v.domain) ? this.prepareBaseAddress(v.domain) : undefined)
858
874
  // )
859
875
  }
860
876
  }
861
- SessionKeyServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionKeyServices, deps: [{ token: i1$2.Store }, { token: i2$1.ActivatedRoute }, { token: RestServices }], target: i0.ɵɵFactoryTarget.Injectable });
877
+ SessionKeyServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionKeyServices, deps: [{ token: i1$2.Store }, { token: i2$1.ActivatedRoute }, { token: RestServices }, { token: REST_SETTINGS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
862
878
  SessionKeyServices.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionKeyServices, providedIn: 'root' });
863
879
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionKeyServices, decorators: [{
864
880
  type: Injectable,
865
881
  args: [{
866
882
  providedIn: 'root'
867
883
  }]
868
- }], ctorParameters: function () { return [{ type: i1$2.Store }, { type: i2$1.ActivatedRoute }, { type: RestServices }]; } });
884
+ }], ctorParameters: function () { return [{ type: i1$2.Store }, { type: i2$1.ActivatedRoute }, { type: RestServices }, { type: undefined, decorators: [{
885
+ type: Optional
886
+ }, {
887
+ type: Inject,
888
+ args: [REST_SETTINGS]
889
+ }] }]; } });
869
890
 
870
891
  class HttpData extends BaseServices {
871
892
  constructor() {
@@ -970,12 +991,6 @@ class HttpData extends BaseServices {
970
991
  }
971
992
  return sendHttpParams;
972
993
  }
973
- mapResult(v) {
974
- if (v && (v.result || typeof v.result === 'boolean')) {
975
- return v.result;
976
- }
977
- return undefined;
978
- }
979
994
  sliceArrayIntoChunks(arr, chunkSize) {
980
995
  const res = [];
981
996
  for (let i = 0; i < arr.length; i += chunkSize) {
@@ -995,10 +1010,9 @@ class BaseHttp extends HttpData {
995
1010
  this.http = http;
996
1011
  this.snackBar = snackBar;
997
1012
  }
998
- handleError(result, textError = 'получения данных') {
1013
+ handleError(result) {
999
1014
  return (error) => {
1000
1015
  console.error(`failed: ${error.message}`);
1001
- this.snackBar.error('Ошибка: ' + textError);
1002
1016
  return of(result);
1003
1017
  };
1004
1018
  }
@@ -1013,26 +1027,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1013
1027
  }], ctorParameters: function () { return [{ type: i1$3.HttpClient }, { type: SnackBarService }]; } });
1014
1028
 
1015
1029
  class BaseHttpServices extends BaseHttp {
1016
- httpGet(url, params = {}, textError = '', settings = this.defSettings) {
1030
+ httpGet(url, params = {}, settings = this.defSettings) {
1017
1031
  return this.http.get(url, {
1018
1032
  params: this.getHttpParamsGet(params, new HttpParams(), false, [], settings)
1019
- }).pipe(catchError(err => {
1020
- if (!textError.length && err.error.error_description) {
1021
- textError = err.error.error_description;
1022
- }
1023
- this.snackBar.error('Ошибка: ' + textError);
1024
- return throwError(() => err);
1025
- }));
1033
+ });
1026
1034
  }
1027
- httpPost(url, params = {}, textError = '', settings = this.defSettings) {
1028
- return this.http.post(url, this.getHttpParamsPost(params, new FormData(), false, [], settings)).pipe(catchError(err => {
1029
- if (!textError.length && err.error.error_description) {
1030
- textError = err.error.error_description;
1031
- }
1032
- this.snackBar.error('Ошибка: ' + textError);
1033
- console.error(err);
1034
- return throwError(() => err);
1035
- }));
1035
+ httpPost(url, params = {}, settings = this.defSettings) {
1036
+ return this.http.post(url, this.getHttpParamsPost(params, new FormData(), false, [], settings));
1036
1037
  }
1037
1038
  }
1038
1039
 
@@ -1041,67 +1042,14 @@ class HttpServices extends BaseHttpServices {
1041
1042
  super(http, snackBar);
1042
1043
  this.session = session;
1043
1044
  }
1044
- timeNowOnServer() {
1045
- return this.httpGet('server.time').pipe(map(v => {
1046
- if (v && v.result) {
1047
- return new Date(v.result);
1048
- }
1049
- return undefined;
1050
- }));
1051
- }
1052
- /**
1053
- * Это пиздец а не метод
1054
- * @param param
1055
- */
1056
- branch(param) {
1057
- let prepareParam = Object.entries(this.prepareBatch(param));
1058
- const size = 50; // больше не отдаст
1059
- let subarray = []; //массив в который будет выведен результат.
1060
- for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {
1061
- subarray[i] = prepareParam.slice((i * size), (i * size) + size);
1062
- }
1063
- return forkJoin(subarray.map(i => {
1064
- return this.httpPost('batch.json', {
1065
- halt: 0,
1066
- cmd: Object.assign({}, ...i.map(x => {
1067
- return { [x[0]]: x[1] };
1068
- }))
1069
- });
1070
- }));
1071
- }
1072
- prepareBatch(param) {
1073
- let res = Object.keys(param).reduce((obj, key) => {
1074
- obj[key] = '';
1075
- return obj;
1076
- }, {});
1077
- for (let key in param) {
1078
- if (typeof key === 'string' || typeof key === 'number' && param[key].param) {
1079
- res[key] = param[key].name + '?' + this.getHttpParamsGet(param[key].param).toString();
1080
- }
1081
- }
1082
- return res;
1083
- }
1084
- mapBranchResult(res) {
1085
- return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined));
1086
- }
1087
- mapBranchResultWithoutKey(res) {
1088
- return flatten(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)));
1089
- }
1090
- httpPost(url, params = {}, textError = '', settings = this.defSettings) {
1045
+ httpPost(url, params = {}, settings = this.defSettings) {
1091
1046
  return this.session.getAuthParams().pipe(mergeMap(auth => {
1092
1047
  if (auth) {
1093
1048
  const paramsClone = clone(params);
1094
1049
  paramsClone[this.session.getKeyAuth()] = auth;
1095
1050
  return this.session.getBaseUrl().pipe(mergeMap(v => {
1096
1051
  if (v) {
1097
- return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings))
1098
- .pipe(take(1), catchError(err => {
1099
- if (!textError.length && err.error.error_description) {
1100
- textError = err.error.error_description;
1101
- }
1102
- this.snackBar.error('Ошибка: ' + textError);
1103
- return throwError(() => err);
1104
- }));
1052
+ return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings));
1105
1053
  }
1106
1054
  return throwError(() => 'get base url error');
1107
1055
  }));
@@ -1112,7 +1060,7 @@ class HttpServices extends BaseHttpServices {
1112
1060
  }
1113
1061
  }));
1114
1062
  }
1115
- httpGet(url, params = {}, textError = '', settings = this.defSettings) {
1063
+ httpGet(url, params = {}, settings = this.defSettings) {
1116
1064
  return this.session.getAuthParams().pipe(mergeMap(auth => {
1117
1065
  if (auth) {
1118
1066
  if (params === null) {
@@ -1125,13 +1073,7 @@ class HttpServices extends BaseHttpServices {
1125
1073
  };
1126
1074
  return this.session.getBaseUrl().pipe(mergeMap(v => {
1127
1075
  if (v) {
1128
- return this.http.get(this.prepareBaseAddress(v) + url, options).pipe(take(1), catchError(err => {
1129
- if (!textError.length && err.error.error_description) {
1130
- textError = err.error.error_description;
1131
- }
1132
- this.snackBar.error('Ошибка: ' + textError);
1133
- return throwError(() => err);
1134
- }));
1076
+ return this.http.get(this.prepareBaseAddress(v) + url, options);
1135
1077
  }
1136
1078
  return throwError(() => 'get base url error');
1137
1079
  }));
@@ -1142,9 +1084,6 @@ class HttpServices extends BaseHttpServices {
1142
1084
  }
1143
1085
  }));
1144
1086
  }
1145
- getNameMethod(arr) {
1146
- return arr.join('.');
1147
- }
1148
1087
  }
1149
1088
  HttpServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpServices, deps: [{ token: i1$3.HttpClient }, { token: SnackBarService }, { token: SessionKeyServices }], target: i0.ɵɵFactoryTarget.Injectable });
1150
1089
  HttpServices.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HttpServices, providedIn: 'root' });
@@ -1155,13 +1094,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1155
1094
  }]
1156
1095
  }], ctorParameters: function () { return [{ type: i1$3.HttpClient }, { type: SnackBarService }, { type: SessionKeyServices }]; } });
1157
1096
 
1158
- function mapResult(v) {
1159
- if (v && (v.result || typeof v.result === 'boolean')) {
1160
- return v.result;
1161
- }
1162
- return undefined;
1163
- }
1164
-
1097
+ // type TransformFunction<T, R> = (input: T) => R;
1165
1098
  class HttpBXServices extends HttpServices {
1166
1099
  timeNowOnServer() {
1167
1100
  return this.httpGet('server.time').pipe(map(v => {
@@ -1203,66 +1136,39 @@ class HttpBXServices extends HttpServices {
1203
1136
  }
1204
1137
  return res;
1205
1138
  }
1206
- mapBranchResult(res) {
1207
- return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined));
1208
- }
1209
- mapBranchResultWithoutKey(res) {
1210
- return flatten(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)));
1211
- }
1212
- post(name, params = {}, textError = '', mapHttp = undefined, settings = this.defSettings) {
1213
- return this.httpPost(this.getNameMethod(name), params, textError, settings).pipe(map(v => {
1214
- console.log('result', v);
1215
- if (v && v.result && REST_SETTINGS.support.map && mapHttp) {
1216
- console.log('result2', mapHttp(v.result));
1217
- // console.log('result2', v, Array.isArray(v.result)
1218
- // ? Object.assign(v, {result: v.result.map(i => mapHttp(i))}) as iHttpAnswerBX<R>
1219
- // : Object.assign(v, {result: mapHttp(v.result)}) as iHttpAnswerBX<R>)
1220
- // Array.isArray(v.result)
1221
- // ? Object.assign(v, {result: v.result.map(i => mapHttp(i))}) as iHttpAnswerBX<R>
1222
- // :
1223
- return Object.assign(v, { result: mapHttp(v.result) });
1224
- }
1225
- return v;
1226
- }), map(v => (v && REST_SETTINGS.support.result) ? mapResult : v));
1227
- }
1228
- get(name, params = {}, textError = '', mapHttp = (v) => {
1229
- return v;
1230
- }, settings = this.defSettings) {
1231
- return this.httpGet(this.getNameMethod(name), params, textError, settings).pipe(map(v => {
1232
- if (v && v.result && REST_SETTINGS.support.map) {
1233
- return Array.isArray(v.result)
1234
- ? Object.assign(v, { result: v.result.map(i => mapHttp(i)) })
1235
- : Object.assign(v, { result: mapHttp(v.result) });
1236
- }
1237
- return v;
1238
- }), map(v => (v && REST_SETTINGS.support.result) ? mapResult : v));
1139
+ // override mapBranchResult<T>(res: iBatchRequestAnswer<T>[]) {
1140
+ // return Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)) as {
1141
+ // [key: keyBatch]: T
1142
+ // }
1143
+ // }
1144
+ //
1145
+ // override mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[] {
1146
+ // return flatten<T>(Object.assign([], ...res.map(i => (i.result && i.result.result) ? i.result.result : undefined)))
1147
+ // }
1148
+ post(name, params = {}, settings = this.defSettings) {
1149
+ return this.httpPost(this.getNameMethod(name), params, settings);
1150
+ }
1151
+ get(name, params = {}, settings = this.defSettings) {
1152
+ return this.httpGet(this.getNameMethod(name), params, settings);
1239
1153
  }
1240
- httpPost(url, params = {}, textError = '', settings = this.defSettings) {
1154
+ httpPost(url, params = {}, settings = this.defSettings) {
1241
1155
  return this.session.getAuthParams().pipe(mergeMap(auth => {
1242
1156
  if (auth) {
1243
1157
  const paramsClone = clone(params);
1244
1158
  paramsClone[this.session.getKeyAuth()] = auth;
1245
1159
  return this.session.getBaseUrl().pipe(mergeMap(v => {
1246
1160
  if (v) {
1247
- return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings))
1248
- .pipe(take(1), catchError(err => {
1249
- if (!textError.length && err.error.error_description) {
1250
- textError = err.error.error_description;
1251
- }
1252
- this.snackBar.error('Ошибка: ' + textError);
1253
- return throwError(() => err);
1254
- }));
1161
+ return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings));
1255
1162
  }
1256
1163
  return throwError(() => 'get base url error');
1257
1164
  }));
1258
1165
  }
1259
1166
  else {
1260
- this.snackBar.error('Error: Auth not get');
1261
1167
  return throwError(() => 'auth not get');
1262
1168
  }
1263
1169
  }));
1264
1170
  }
1265
- httpGet(url, params = {}, textError = '', settings = this.defSettings) {
1171
+ httpGet(url, params = {}, settings = this.defSettings) {
1266
1172
  return this.session.getAuthParams().pipe(mergeMap(auth => {
1267
1173
  if (auth) {
1268
1174
  if (params === null) {
@@ -1275,19 +1181,12 @@ class HttpBXServices extends HttpServices {
1275
1181
  };
1276
1182
  return this.session.getBaseUrl().pipe(mergeMap(v => {
1277
1183
  if (v) {
1278
- return this.http.get(this.prepareBaseAddress(v) + url, options).pipe(take(1), catchError(err => {
1279
- if (!textError.length && err.error.error_description) {
1280
- textError = err.error.error_description;
1281
- }
1282
- this.snackBar.error('Ошибка: ' + textError);
1283
- return throwError(() => err);
1284
- }));
1184
+ return this.http.get(this.prepareBaseAddress(v) + url, options);
1285
1185
  }
1286
1186
  return throwError(() => 'get base url error');
1287
1187
  }));
1288
1188
  }
1289
1189
  else {
1290
- this.snackBar.error('Error: Auth not get');
1291
1190
  return throwError(() => 'auth not get');
1292
1191
  }
1293
1192
  }));
@@ -1305,40 +1204,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1305
1204
  }]
1306
1205
  }] });
1307
1206
 
1308
- let BaseMapServices$1 = class BaseMapServices extends BaseServices {
1309
- };
1310
- BaseMapServices$1.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseMapServices$1, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
1311
- BaseMapServices$1.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseMapServices$1, providedIn: 'root' });
1312
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseMapServices$1, decorators: [{
1313
- type: Injectable,
1314
- args: [{
1315
- providedIn: 'root'
1316
- }]
1317
- }] });
1318
-
1319
- class BXRestListsElementMap extends BaseMapServices$1 {
1320
- get(item) {
1321
- return Object.assign(item, {
1322
- BP_PUBLISHED: item.BP_PUBLISHED === 'Y',
1323
- CREATED_BY: this.toNum(item.CREATED_BY),
1324
- IBLOCK_ID: this.toNum(item.IBLOCK_ID),
1325
- ID: this.toNum(item.ID)
1326
- });
1327
- }
1328
- }
1329
- BXRestListsElementMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestListsElementMap, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
1330
- BXRestListsElementMap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestListsElementMap, providedIn: 'root' });
1331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestListsElementMap, decorators: [{
1332
- type: Injectable,
1333
- args: [{
1334
- providedIn: 'root'
1335
- }]
1336
- }] });
1337
-
1338
1207
  class BXRestListsElement {
1339
- constructor(http, mapResult) {
1208
+ constructor(http) {
1340
1209
  this.http = http;
1341
- this.mapResult = mapResult;
1342
1210
  this.url = {
1343
1211
  add: [$lists, $element, $add],
1344
1212
  delete: [$lists, $element, $delete],
@@ -1348,19 +1216,19 @@ class BXRestListsElement {
1348
1216
  };
1349
1217
  }
1350
1218
  get(pram) {
1351
- return this.http.post(this.url.get, pram, 'Не Удалось получить элемент списка', (v) => v.map(i => this.mapResult.get(i)));
1219
+ return this.http.post(this.url.get, pram);
1352
1220
  }
1353
1221
  customPipe() {
1354
1222
  }
1355
1223
  }
1356
- BXRestListsElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestListsElement, deps: [{ token: HttpBXServices }, { token: BXRestListsElementMap }], target: i0.ɵɵFactoryTarget.Injectable });
1224
+ BXRestListsElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestListsElement, deps: [{ token: HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable });
1357
1225
  BXRestListsElement.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestListsElement, providedIn: 'root' });
1358
1226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestListsElement, decorators: [{
1359
1227
  type: Injectable,
1360
1228
  args: [{
1361
1229
  providedIn: 'root'
1362
1230
  }]
1363
- }], ctorParameters: function () { return [{ type: HttpBXServices }, { type: BXRestListsElementMap }]; } });
1231
+ }], ctorParameters: function () { return [{ type: HttpBXServices }]; } });
1364
1232
 
1365
1233
  class BXRestLists {
1366
1234
  constructor(element) {
@@ -1383,70 +1251,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1383
1251
  }]
1384
1252
  }], ctorParameters: function () { return [{ type: BXRestListsElement }]; } });
1385
1253
 
1386
- const save = createAction('[Users Component] Save', props());
1387
- const saveArr = createAction('[Users Component] Save Arr', props());
1388
- const update = createAction('[Users Component] Update', props());
1389
- const loadAll = createAction('[Users Component] loadAll', props());
1390
- const saveSelf = createAction('[Users Component] saveSelf', props());
1391
- const saveIDLoadedDepartment = createAction('[Users Component] saveIDLoadedDepartment', props());
1392
- const initialState = {
1393
- load: {
1394
- all: false,
1395
- department: []
1396
- },
1397
- self: undefined,
1398
- data: []
1399
- };
1400
- const _usersReducer = createReducer(initialState, on(saveIDLoadedDepartment, (s, data) => {
1401
- let copy = clone(s);
1402
- copy.load.department = [...copy.load.department, ...data.id];
1403
- return copy;
1404
- }), on(save, (s, data) => {
1405
- const find = s.data.find(v => v.ID === data.ID);
1406
- if (!find) {
1407
- const copy = clone(s);
1408
- copy.data.push(data);
1409
- return copy;
1410
- }
1411
- return s;
1412
- }), on(saveArr, (s, data) => {
1413
- const copy = clone(s);
1414
- if (copy.data && copy.data.length) {
1415
- for (const user of data.arr) {
1416
- const find = copy.data.find(v => v.ID === user.ID);
1417
- if (!find) {
1418
- copy.data.push(user);
1419
- }
1420
- }
1421
- }
1422
- else {
1423
- copy.data = [...data.arr];
1424
- }
1425
- return copy;
1426
- }), on(update, (s, data) => {
1427
- const copy = clone(s);
1428
- let find = copy.data.findIndex(v => v.ID === data.ID);
1429
- if (find !== -1) {
1430
- const copy = clone(s);
1431
- copy.data.splice(find, 1, data);
1432
- // copy.data.push(data)
1433
- return copy;
1434
- }
1435
- return s;
1436
- }), on(loadAll, (s, data) => {
1437
- if (data.load !== s.load.all) {
1438
- const copy = clone(s);
1439
- copy.load.all = data.load;
1440
- return copy;
1441
- }
1442
- return s;
1443
- }), on(saveSelf, (s, data) => {
1444
- return { ...s, self: data.self };
1445
- }));
1446
- function usersReducer(state = initialState, action) {
1447
- return _usersReducer(state, action);
1448
- }
1449
-
1450
1254
  class BaseMapServices extends BaseServices {
1451
1255
  }
1452
1256
  BaseMapServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BaseMapServices, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
@@ -1458,8 +1262,102 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1458
1262
  }]
1459
1263
  }] });
1460
1264
 
1461
- class BitrixApiUserMapServices extends BaseMapServices {
1462
- HttpToBX(user) {
1265
+ class BXRestMapListsElement extends BaseMapServices {
1266
+ get(items) {
1267
+ return items.map(item => Object.assign(item, {
1268
+ BP_PUBLISHED: item.BP_PUBLISHED === 'Y',
1269
+ CREATED_BY: this.toNum(item.CREATED_BY),
1270
+ IBLOCK_ID: this.toNum(item.IBLOCK_ID),
1271
+ ID: this.toNum(item.ID)
1272
+ }));
1273
+ }
1274
+ }
1275
+ BXRestMapListsElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapListsElement, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
1276
+ BXRestMapListsElement.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapListsElement, providedIn: 'root' });
1277
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapListsElement, decorators: [{
1278
+ type: Injectable,
1279
+ args: [{
1280
+ providedIn: 'root'
1281
+ }]
1282
+ }] });
1283
+
1284
+ class BXRestMapLists extends BaseMapServices {
1285
+ constructor(element) {
1286
+ super();
1287
+ this.element = element;
1288
+ }
1289
+ }
1290
+ BXRestMapLists.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapLists, deps: [{ token: BXRestMapListsElement }], target: i0.ɵɵFactoryTarget.Injectable });
1291
+ BXRestMapLists.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapLists, providedIn: 'root' });
1292
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapLists, decorators: [{
1293
+ type: Injectable,
1294
+ args: [{
1295
+ providedIn: 'root'
1296
+ }]
1297
+ }], ctorParameters: function () { return [{ type: BXRestMapListsElement }]; } });
1298
+
1299
+ class Navvy {
1300
+ constructor(snackBar) {
1301
+ this.snackBar = snackBar;
1302
+ }
1303
+ mapAndSnackBarError(request, errorText) {
1304
+ return request.pipe(map(v => BXRestMapResult(v)), catchError(err => {
1305
+ this.snackBar.error(errorText);
1306
+ return throwError(() => err);
1307
+ }));
1308
+ }
1309
+ }
1310
+ Navvy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navvy, deps: [{ token: SnackBarService }], target: i0.ɵɵFactoryTarget.Injectable });
1311
+ Navvy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navvy, providedIn: 'root' });
1312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Navvy, decorators: [{
1313
+ type: Injectable,
1314
+ args: [{
1315
+ providedIn: 'root'
1316
+ }]
1317
+ }], ctorParameters: function () { return [{ type: SnackBarService }]; } });
1318
+
1319
+ class BXRestNavvyListsElement {
1320
+ constructor(BXRestListsElement, BXRestMap, Navvy) {
1321
+ this.BXRestListsElement = BXRestListsElement;
1322
+ this.BXRestMap = BXRestMap;
1323
+ this.Navvy = Navvy;
1324
+ }
1325
+ get(pram) {
1326
+ return this.Navvy.mapAndSnackBarError(this.BXRestListsElement.get(pram), 'Не удалось получить элемент списка').pipe(map(v => (v) ? this.BXRestMap.get(v) : undefined));
1327
+ }
1328
+ }
1329
+ BXRestNavvyListsElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyListsElement, deps: [{ token: BXRestListsElement }, { token: BXRestMapListsElement }, { token: Navvy }], target: i0.ɵɵFactoryTarget.Injectable });
1330
+ BXRestNavvyListsElement.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyListsElement, providedIn: 'root' });
1331
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyListsElement, decorators: [{
1332
+ type: Injectable,
1333
+ args: [{
1334
+ providedIn: 'root'
1335
+ }]
1336
+ }], ctorParameters: function () { return [{ type: BXRestListsElement }, { type: BXRestMapListsElement }, { type: Navvy }]; } });
1337
+
1338
+ class BXRestNavvyLists {
1339
+ constructor(element) {
1340
+ this.element = element;
1341
+ this.url = {
1342
+ add: [$lists, $add],
1343
+ delete: [$lists, $delete],
1344
+ get: [$lists, $get],
1345
+ update: [$lists, $update],
1346
+ getIblockTypeId: [$lists, $get, $iblock, $type, $id], // Метод возвращает id типа инфоблока
1347
+ };
1348
+ }
1349
+ }
1350
+ BXRestNavvyLists.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyLists, deps: [{ token: BXRestNavvyListsElement }], target: i0.ɵɵFactoryTarget.Injectable });
1351
+ BXRestNavvyLists.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyLists, providedIn: 'root' });
1352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyLists, decorators: [{
1353
+ type: Injectable,
1354
+ args: [{
1355
+ providedIn: 'root'
1356
+ }]
1357
+ }], ctorParameters: function () { return [{ type: BXRestNavvyListsElement }]; } });
1358
+
1359
+ class BXRestUserMap extends BaseMapServices {
1360
+ current(user) {
1463
1361
  let res = Object.assign(clone(user), {
1464
1362
  ID: this.toNum(user.ID),
1465
1363
  IS_ONLINE: this.toBool(user.IS_ONLINE),
@@ -1534,9 +1432,9 @@ class BitrixApiUserMapServices extends BaseMapServices {
1534
1432
  return res.trim();
1535
1433
  }
1536
1434
  }
1537
- BitrixApiUserMapServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BitrixApiUserMapServices, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
1538
- BitrixApiUserMapServices.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BitrixApiUserMapServices, providedIn: 'root' });
1539
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BitrixApiUserMapServices, decorators: [{
1435
+ BXRestUserMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUserMap, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
1436
+ BXRestUserMap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUserMap, providedIn: 'root' });
1437
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUserMap, decorators: [{
1540
1438
  type: Injectable,
1541
1439
  args: [{
1542
1440
  providedIn: 'root'
@@ -1544,14 +1442,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1544
1442
  }] });
1545
1443
 
1546
1444
  class BXRestUser {
1547
- constructor(http, snackBar,
1548
- // private img: ImgServices,
1549
- //private dateTrace: DateTrace,
1550
- store, userMap) {
1445
+ constructor(http, BXRestUserMap) {
1551
1446
  this.http = http;
1552
- this.snackBar = snackBar;
1553
- this.store = store;
1554
- this.userMap = userMap;
1447
+ this.BXRestUserMap = BXRestUserMap;
1555
1448
  this.url = {
1556
1449
  admin: [$user, 'admin'],
1557
1450
  get: [$user, $get],
@@ -1570,7 +1463,6 @@ class BXRestUser {
1570
1463
  this.def = {
1571
1464
  params: { ACTIVE: 1, start: 0 }
1572
1465
  };
1573
- this.user$ = this.store.select('users');
1574
1466
  }
1575
1467
  admin() {
1576
1468
  return this.http.get(this.url.admin);
@@ -1578,84 +1470,30 @@ class BXRestUser {
1578
1470
  get(params = {}) {
1579
1471
  let copyParams = clone(params);
1580
1472
  this.setDefParam(copyParams);
1581
- return this.http.post(this.url.get, copyParams, 'Не удалось получить пользователей', (v) => { return v.map(i => this.userMap.HttpToBX(i)); });
1582
- // .pipe(
1583
- // tap(v => {
1584
- // if (v && v.result) {
1585
- // this.saveArrUser(v.result)
1586
- // }
1587
- // })
1588
- // )
1473
+ return this.http.post(this.url.get, copyParams);
1589
1474
  }
1590
- current(update = false) {
1591
- if (update) {
1592
- return this.getSelfHttp();
1593
- }
1594
- else {
1595
- return this.user$.pipe(mergeMap$1(v => {
1596
- if (v && v.self) {
1597
- return of(v.self);
1475
+ current() {
1476
+ return this.http.get(this.url.current, {});
1477
+ }
1478
+ update(user, fieldUpdate) {
1479
+ if (fieldUpdate && fieldUpdate.length) {
1480
+ let sendData = {
1481
+ ID: user.ID,
1482
+ };
1483
+ const userBX = this.BXRestUserMap.BXtoHttp(user);
1484
+ for (const field of fieldUpdate) {
1485
+ if (userBX[field]) {
1486
+ sendData[field] = userBX[field];
1598
1487
  }
1599
1488
  else {
1600
- return this.getSelfHttp();
1489
+ return throwError(() => 'One sent field is empty');
1601
1490
  }
1602
- }), first());
1491
+ }
1492
+ return this.http.post(this.url.update, sendData);
1603
1493
  }
1604
- }
1605
- getSelfHttp() {
1606
- return this.http.get(this.url.current, {}, 'Не удалось получить пользователя');
1607
- // .pipe(
1608
- // tap(v => {
1609
- // if (v) {
1610
- // this.store.dispatch(saveSelf({self: v}))
1611
- // }
1612
- // }),
1613
- // )
1614
- }
1615
- access(access, textError = 'Не удалось получить права') {
1616
- return this.http.get(this.url.access, { ACCESS: access }, textError);
1617
- }
1618
- // getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {
1619
- // if (!Object.keys(params).length) {
1620
- // params = clone(this.def.params)
1621
- // }
1622
- //
1623
- // const saveAllUser = compare(params, this.def.params)
1624
- // return this.user$.pipe(
1625
- // take(1),
1626
- // mergeMap(v => {
1627
- // if (v.load.all) {
1628
- // if (compare(this.def.params, params)) {
1629
- // return of(clone(v.data))
1630
- // }
1631
- // }
1632
- //
1633
- // return this.getEndArray(params).pipe(
1634
- // take(1),
1635
- // map(v => {
1636
- // if (v && v.result) {
1637
- // let cl = clone(v.result)
1638
- // return this.saveArrUser(cl)
1639
- // }
1640
- // return undefined
1641
- // }),
1642
- // )
1643
- // }),
1644
- // tap(v => {
1645
- // if (v && v.length && saveAllUser) {
1646
- // this.store.dispatch(loadAll({load: true}))
1647
- // }
1648
- // params.start = this.def.params.start
1649
- // })
1650
- // )
1651
- // }
1652
- saveArrUser(users) {
1653
- let result = [];
1654
- for (const user of users) {
1655
- result.push(this.userMap.HttpToBX(user));
1494
+ else {
1495
+ return throwError(() => 'All sent field for edit is empty');
1656
1496
  }
1657
- this.store.dispatch(saveArr({ arr: result }));
1658
- return result;
1659
1497
  }
1660
1498
  search(params) {
1661
1499
  if (typeof params === 'string') {
@@ -1664,52 +1502,14 @@ class BXRestUser {
1664
1502
  if (typeof params.ACTIVE !== 'boolean') {
1665
1503
  params.ACTIVE = true;
1666
1504
  }
1667
- return this.http.get(this.url.search, params, 'Сервер не отвечает на запрос поиска');
1505
+ return this.http.get(this.url.search, params);
1506
+ }
1507
+ access(access) {
1508
+ return this.http.get(this.url.access, { ACCESS: access });
1668
1509
  }
1669
1510
  fields() {
1670
1511
  return this.http.get(this.url.fields);
1671
1512
  }
1672
- update(user, fieldUpdate) {
1673
- if (fieldUpdate && fieldUpdate.length) {
1674
- let sendData = {
1675
- ID: user.ID,
1676
- };
1677
- const userBX = this.userMap.BXtoHttp(user);
1678
- for (const field of fieldUpdate) {
1679
- if (userBX[field]) {
1680
- sendData[field] = userBX[field];
1681
- }
1682
- else {
1683
- this.snackBar.error('Одно из указанных полей отправлено не верно');
1684
- }
1685
- }
1686
- return this.http.post(this.url.update, sendData, 'Не удалось обновить пользователя с ID' + user.ID);
1687
- }
1688
- else {
1689
- this.snackBar.error('Не указано ни одно поле для редактирования пользователя');
1690
- return of({});
1691
- }
1692
- }
1693
- // getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {
1694
- // return this.get(params).pipe(
1695
- // mergeMap(items => {
1696
- // if (items && items.result && typeof items.result === 'object') {
1697
- // if (items.next) {
1698
- // params.start = items.next
1699
- // return this.getEndArray(params).pipe(map(vEnd => {
1700
- // if (vEnd && items.result && vEnd.result) {
1701
- // return {result: [...items.result, ...vEnd.result]}
1702
- // }
1703
- // return (items) ? items : undefined
1704
- // }))
1705
- // }
1706
- // return of(items)
1707
- // } else {
1708
- // return of(undefined)
1709
- // }
1710
- // }),
1711
- // )
1712
- // }
1713
1513
  setDefParam(params) {
1714
1514
  if (!params.hasOwnProperty('ACTIVE')) {
1715
1515
  params.ACTIVE = this.def.params.ACTIVE;
@@ -1725,29 +1525,832 @@ class BXRestUser {
1725
1525
  }
1726
1526
  }
1727
1527
  }
1728
- BXRestUser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUser, deps: [{ token: HttpBXServices }, { token: SnackBarService }, { token: i1$2.Store }, { token: BitrixApiUserMapServices }], target: i0.ɵɵFactoryTarget.Injectable });
1528
+ BXRestUser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUser, deps: [{ token: HttpBXServices }, { token: BXRestUserMap }], target: i0.ɵɵFactoryTarget.Injectable });
1729
1529
  BXRestUser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUser, providedIn: 'root' });
1730
1530
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUser, decorators: [{
1731
1531
  type: Injectable,
1732
1532
  args: [{
1733
1533
  providedIn: 'root'
1734
1534
  }]
1735
- }], ctorParameters: function () { return [{ type: HttpBXServices }, { type: SnackBarService }, { type: i1$2.Store }, { type: BitrixApiUserMapServices }]; } });
1535
+ }], ctorParameters: function () { return [{ type: HttpBXServices }, { type: BXRestUserMap }]; } });
1736
1536
 
1737
- class BXRest {
1738
- constructor(user, lists) {
1739
- this.user = user;
1740
- this.lists = lists;
1741
- }
1742
- }
1743
- BXRest.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, deps: [{ token: BXRestUser }, { token: BXRestLists }], target: i0.ɵɵFactoryTarget.Injectable });
1744
- BXRest.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, providedIn: 'root' });
1745
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, decorators: [{
1537
+ class BXRestTasksTask {
1538
+ constructor(http) {
1539
+ this.http = http;
1540
+ this.url = {
1541
+ add: [$tasks, $task, $add],
1542
+ approve: [$tasks, $task, $approve],
1543
+ complete: [$tasks, $task, $complete],
1544
+ counters: {
1545
+ get: [$tasks, $task, $counters, $get], //Получает счетчики пользователя
1546
+ },
1547
+ deger: [$tasks, $task, $deger],
1548
+ delegate: [$tasks, $task, $delegate],
1549
+ delete: [$tasks, $task, $delete],
1550
+ disapprove: [$tasks, $task, $disapprove],
1551
+ favorite: {
1552
+ add: [$tasks, $task, $favorite, $add],
1553
+ delete: [$tasks, $task, $favorite, $delete], // Удаляет задачи из "Избранного"
1554
+ },
1555
+ files: {
1556
+ attach: [$tasks, $task, $files, $attach], // Прикрепляет загруженный на диск файл к задаче
1557
+ },
1558
+ get: [$tasks, $task, $get],
1559
+ getFields: [$tasks, $task, $getFields],
1560
+ getaccess: [$tasks, $task, $getaccess],
1561
+ history: {
1562
+ list: [$tasks, $task, $history, $list], // Получает историю задачи
1563
+ },
1564
+ list: [$tasks, $task, $list],
1565
+ pause: [$tasks, $task, $pause],
1566
+ renew: [$tasks, $task, $renew],
1567
+ start: [$tasks, $task, $start],
1568
+ startwatch: [$tasks, $task, 'startwatch'],
1569
+ stopwatch: [$tasks, $task, 'stopwatch'],
1570
+ update: [$tasks, $task, $update],
1571
+ result: {
1572
+ list: [$tasks, $task, $result, $list],
1573
+ addFromComment: [$tasks, $task, $result, 'addFromComment'],
1574
+ deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'], // Удаление результата задачи по комментарию из которого он был создан
1575
+ },
1576
+ planner: {
1577
+ getlist: [$task, $planner, $getlist], // Возвращает массив, содержащий идентификаторы задач в плане на день
1578
+ }
1579
+ };
1580
+ }
1581
+ add(param) {
1582
+ return this.http.post(this.url.add, param);
1583
+ }
1584
+ }
1585
+ BXRestTasksTask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestTasksTask, deps: [{ token: HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable });
1586
+ BXRestTasksTask.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestTasksTask, providedIn: 'root' });
1587
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestTasksTask, decorators: [{
1588
+ type: Injectable,
1589
+ args: [{
1590
+ providedIn: 'root'
1591
+ }]
1592
+ }], ctorParameters: function () { return [{ type: HttpBXServices }]; } });
1593
+
1594
+ class BXRestTasks {
1595
+ constructor(task) {
1596
+ this.task = task;
1597
+ }
1598
+ }
1599
+ BXRestTasks.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestTasks, deps: [{ token: BXRestTasksTask }], target: i0.ɵɵFactoryTarget.Injectable });
1600
+ BXRestTasks.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestTasks, providedIn: 'root' });
1601
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestTasks, decorators: [{
1602
+ type: Injectable,
1603
+ args: [{
1604
+ providedIn: 'root'
1605
+ }]
1606
+ }], ctorParameters: function () { return [{ type: BXRestTasksTask }]; } });
1607
+
1608
+ class BXRestDiskFile {
1609
+ constructor(http) {
1610
+ this.http = http;
1611
+ this.url = {
1612
+ getfields: [$disk, $file, $getFields],
1613
+ get: [$disk, $file, $get],
1614
+ rename: [$disk, $file, $rename],
1615
+ copyto: [$disk, $file, $copyto],
1616
+ moveto: [$disk, $file, $moveto],
1617
+ delete: [$disk, $file, $delete],
1618
+ markdeleted: [$disk, $file, $markdeleted],
1619
+ restore: [$disk, $file, $restore],
1620
+ uploadversion: [$disk, $file, 'uploadversion'],
1621
+ getVersions: [$disk, $file, 'getVersions'],
1622
+ restoreFromVersion: [$disk, $file, 'restoreFromVersion'],
1623
+ getExternalLink: [$disk, $file, 'getexternallink'] // Возвращает публичную ссылку на файл
1624
+ };
1625
+ }
1626
+ get(id) {
1627
+ return this.http.post(this.url.get, { id: id });
1628
+ }
1629
+ markDel(id) {
1630
+ return this.http.post(this.url.markdeleted, { id: id });
1631
+ }
1632
+ }
1633
+ BXRestDiskFile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskFile, deps: [{ token: HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable });
1634
+ BXRestDiskFile.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskFile, providedIn: 'root' });
1635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskFile, decorators: [{
1636
+ type: Injectable,
1637
+ args: [{
1638
+ providedIn: 'root'
1639
+ }]
1640
+ }], ctorParameters: function () { return [{ type: HttpBXServices }]; } });
1641
+
1642
+ class BXRestDiskFolder {
1643
+ constructor(http) {
1644
+ this.http = http;
1645
+ this.url = {
1646
+ getfields: [$disk, $folder, $getFields],
1647
+ get: [$disk, $folder, $get],
1648
+ getchildren: [$disk, $folder, $getchildren],
1649
+ addsubfolder: [$disk, $folder, 'addsubfolder'],
1650
+ copyto: [$disk, $folder, $copyto],
1651
+ moveto: [$disk, $folder, $moveto],
1652
+ rename: [$disk, $folder, $rename],
1653
+ deletetree: [$disk, $folder, 'deletetree'],
1654
+ markdeleted: [$disk, $folder, $markdeleted],
1655
+ restore: [$disk, $folder, $restore],
1656
+ uploadfile: [$disk, $folder, $uploadfile],
1657
+ getExternalLink: [$disk, $folder, 'getExternalLink'] // Метод возвращает публичную ссылку
1658
+ };
1659
+ }
1660
+ uploadfile(id, fileContent) {
1661
+ return this.http.post(this.url.uploadfile, {
1662
+ id: id,
1663
+ fileContent: fileContent,
1664
+ data: {
1665
+ NAME: fileContent[0]
1666
+ } // Обязательное поле NAME - имя нового файла
1667
+ // generateUniqueName Необязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.
1668
+ // rights Необязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.
1669
+ });
1670
+ }
1671
+ getchildren(id) {
1672
+ return this.http.post(this.url.getchildren, { id: id });
1673
+ }
1674
+ }
1675
+ BXRestDiskFolder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskFolder, deps: [{ token: HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable });
1676
+ BXRestDiskFolder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskFolder, providedIn: 'root' });
1677
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskFolder, decorators: [{
1678
+ type: Injectable,
1679
+ args: [{
1680
+ providedIn: 'root'
1681
+ }]
1682
+ }], ctorParameters: function () { return [{ type: HttpBXServices }]; } });
1683
+
1684
+ class BXRestDisk {
1685
+ constructor(file, folder) {
1686
+ this.file = file;
1687
+ this.folder = folder;
1688
+ }
1689
+ }
1690
+ BXRestDisk.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDisk, deps: [{ token: BXRestDiskFile }, { token: BXRestDiskFolder }], target: i0.ɵɵFactoryTarget.Injectable });
1691
+ BXRestDisk.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDisk, providedIn: 'root' });
1692
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDisk, decorators: [{
1693
+ type: Injectable,
1694
+ args: [{
1695
+ providedIn: 'root'
1696
+ }]
1697
+ }], ctorParameters: function () { return [{ type: BXRestDiskFile }, { type: BXRestDiskFolder }]; } });
1698
+
1699
+ class SessionStorageServices {
1700
+ setItem(name, value) {
1701
+ sessionStorage.setItem(name, JSON.stringify(value));
1702
+ }
1703
+ getItem(name) {
1704
+ const res = sessionStorage.getItem(name);
1705
+ if (res) {
1706
+ return JSON.parse(res);
1707
+ }
1708
+ return undefined;
1709
+ }
1710
+ }
1711
+ SessionStorageServices.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionStorageServices, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1712
+ SessionStorageServices.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionStorageServices, providedIn: 'root' });
1713
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SessionStorageServices, decorators: [{
1714
+ type: Injectable,
1715
+ args: [{
1716
+ providedIn: 'root'
1717
+ }]
1718
+ }] });
1719
+
1720
+ class BXRestNavvyUser {
1721
+ constructor(BXRestUser, BXRestUserMap, Navvy, SessionStorage) {
1722
+ this.BXRestUser = BXRestUser;
1723
+ this.BXRestUserMap = BXRestUserMap;
1724
+ this.Navvy = Navvy;
1725
+ this.SessionStorage = SessionStorage;
1726
+ }
1727
+ get(params = {}) {
1728
+ return this.Navvy.mapAndSnackBarError(this.BXRestUser.get(params), 'Не удалось получить пользователей');
1729
+ }
1730
+ current(update = false) {
1731
+ if (update) {
1732
+ return this.self();
1733
+ }
1734
+ else {
1735
+ let self = this.SessionStorage.getItem(this.constructor.name + this.self.name);
1736
+ if (self) {
1737
+ return of(self);
1738
+ }
1739
+ return this.self();
1740
+ }
1741
+ }
1742
+ update(user, fieldUpdate) {
1743
+ return this.Navvy.mapAndSnackBarError(this.BXRestUser.update(user, fieldUpdate), 'Не удалось обновить пользователя с ID' + user.ID);
1744
+ }
1745
+ self() {
1746
+ return this.Navvy.mapAndSnackBarError(this.BXRestUser.current(), 'Не удалось получить пользователя')
1747
+ .pipe(map(v => {
1748
+ if (v) {
1749
+ return this.BXRestUserMap.current(v);
1750
+ }
1751
+ return undefined;
1752
+ }), tap(v => {
1753
+ if (v) {
1754
+ this.SessionStorage.setItem(this.constructor.name + this.self.name, v);
1755
+ }
1756
+ }));
1757
+ }
1758
+ search(params) {
1759
+ return this.Navvy.mapAndSnackBarError(this.BXRestUser.search(params), 'Сервер не отвечает на запрос поиска');
1760
+ }
1761
+ access(access) {
1762
+ return this.Navvy.mapAndSnackBarError(this.BXRestUser.access(access), 'Не удалось получить права');
1763
+ }
1764
+ fields() {
1765
+ return this.Navvy.mapAndSnackBarError(this.BXRestUser.fields(), 'Не удалось поля');
1766
+ }
1767
+ }
1768
+ BXRestNavvyUser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, deps: [{ token: BXRestUser }, { token: BXRestUserMap }, { token: Navvy }, { token: SessionStorageServices }], target: i0.ɵɵFactoryTarget.Injectable });
1769
+ BXRestNavvyUser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, providedIn: 'root' });
1770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, decorators: [{
1771
+ type: Injectable,
1772
+ args: [{
1773
+ providedIn: 'root'
1774
+ }]
1775
+ }], ctorParameters: function () { return [{ type: BXRestUser }, { type: BXRestUserMap }, { type: Navvy }, { type: SessionStorageServices }]; } });
1776
+
1777
+ class BXRestTaskMap extends BaseMapServices {
1778
+ TaskBXHttpToTaskBX(item) {
1779
+ let result = {};
1780
+ if (item.id) {
1781
+ result.id = this.toNum(item.id);
1782
+ }
1783
+ if (item.parentId) {
1784
+ result.parentId = this.toNum(item.parentId);
1785
+ }
1786
+ if (item.priority) {
1787
+ result.priority = this.toNum(item.priority);
1788
+ }
1789
+ if (item.status) {
1790
+ result.status = this.toNum(item.status);
1791
+ }
1792
+ if (item.multitask) {
1793
+ result.multitask = item.multitask === 'Y';
1794
+ }
1795
+ if (item.groupId) {
1796
+ result.groupId = this.toNum(item.groupId);
1797
+ }
1798
+ if (item.stageId) {
1799
+ result.stageId = this.toNum(item.stageId);
1800
+ }
1801
+ if (item.createdBy) {
1802
+ result.createdBy = this.toNum(item.createdBy);
1803
+ }
1804
+ if (item.createdDate) {
1805
+ result.createdDate = this.toDate(item.createdDate);
1806
+ }
1807
+ if (item.responsibleId) {
1808
+ result.responsibleId = this.toNum(item.responsibleId);
1809
+ }
1810
+ if (item.changedBy) {
1811
+ result.changedBy = this.toNum(item.changedBy);
1812
+ }
1813
+ if (item.changedDate) {
1814
+ result.changedDate = this.toDate(item.changedDate);
1815
+ }
1816
+ if (item.statusChangedBy) {
1817
+ result.statusChangedBy = this.toNum(item.statusChangedBy);
1818
+ }
1819
+ if (item.statusChangedDate) {
1820
+ result.statusChangedDate = this.toDate(item.statusChangedDate);
1821
+ }
1822
+ if (item.closedBy) {
1823
+ result.closedBy = this.toNum(item.closedBy);
1824
+ }
1825
+ if (item.closedDate) {
1826
+ result.closedDate = this.toDate(item.closedDate);
1827
+ }
1828
+ if (item.dateStart) {
1829
+ result.dateStart = this.toDate(item.dateStart);
1830
+ }
1831
+ if (item.deadline) {
1832
+ result.deadline = this.toDate(item.deadline);
1833
+ }
1834
+ if (item.startDatePlan) {
1835
+ result.startDatePlan = this.toDate(item.startDatePlan);
1836
+ }
1837
+ if (item.endDatePlan) {
1838
+ result.endDatePlan = this.toDate(item.endDatePlan);
1839
+ }
1840
+ if (item.forumTopicId) {
1841
+ result.forumTopicId = this.toNum(item.forumTopicId);
1842
+ }
1843
+ if (item.forumId) {
1844
+ result.forumId = this.toNum(item.forumId);
1845
+ }
1846
+ if (item.viewedDate) {
1847
+ result.viewedDate = this.toDate(item.viewedDate);
1848
+ }
1849
+ if (item.sorting) {
1850
+ result.sorting = this.toNum(item.sorting);
1851
+ }
1852
+ if (item.durationPlan) {
1853
+ result.durationPlan = this.toNum(item.durationPlan);
1854
+ }
1855
+ if (item.descriptionInBbcode) {
1856
+ result.descriptionInBbcode = item.descriptionInBbcode === 'Y';
1857
+ }
1858
+ if (item.accomplices) {
1859
+ result.accomplices = item.accomplices.map(i => this.toNum(i));
1860
+ }
1861
+ if (item.subStatus) {
1862
+ result.subStatus = this.toNum(item.subStatus);
1863
+ }
1864
+ if (item.creator) {
1865
+ result.creator = Object.assign(item.creator, { id: this.toNum(item.creator.id) });
1866
+ }
1867
+ if (item.responsible) {
1868
+ result.responsible = Object.assign(item.responsible, { id: this.toNum(item.responsible.id) });
1869
+ }
1870
+ if (item.accomplicesData) {
1871
+ result.accomplicesData =
1872
+ Object.values(item.accomplicesData).map(i => Object.assign(i, { id: this.toNum(i.id) }));
1873
+ }
1874
+ if (item.allowTimeTracking) {
1875
+ result.allowTimeTracking = item.allowTimeTracking === 'Y';
1876
+ }
1877
+ return Object.assign(item, result);
1878
+ }
1879
+ }
1880
+ BXRestTaskMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestTaskMap, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
1881
+ BXRestTaskMap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestTaskMap, providedIn: 'root' });
1882
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestTaskMap, decorators: [{
1883
+ type: Injectable,
1884
+ args: [{
1885
+ providedIn: 'root'
1886
+ }]
1887
+ }] });
1888
+
1889
+ // export interface TimeProcess {
1890
+ // total: number,
1891
+ // next: number
1892
+ // }
1893
+ class BXRestNavvyTasksTask {
1894
+ // pageSize = 50
1895
+ // nowLoad$ = new ReplaySubject<TimeProcess>(1)
1896
+ // def: { select: iBXRestTaskFieldsName[] } = {
1897
+ // select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',
1898
+ // 'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',
1899
+ // 'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',
1900
+ // 'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',
1901
+ // 'TAGS', 'ALLOW_TIME_TRACKING'
1902
+ // ]
1903
+ // }
1904
+ // storeTask$: Observable<iStoreTask>
1905
+ constructor(BXRestTasks, snackBar,
1906
+ // private store: Store<{ tasks: IStoreTask }>,
1907
+ taskMap) {
1908
+ this.BXRestTasks = BXRestTasks;
1909
+ this.snackBar = snackBar;
1910
+ this.taskMap = taskMap;
1911
+ // this.storeTask$ = this.store.select('tasks')
1912
+ // this.nowLoad$.next({
1913
+ // total: 0,
1914
+ // next: 0
1915
+ // })
1916
+ }
1917
+ add(param) {
1918
+ return this.BXRestTasks.add(param).pipe(map(v => {
1919
+ if (v && v.result && v.result.task) {
1920
+ return this.taskMap.TaskBXHttpToTaskBX(v.result.task);
1921
+ }
1922
+ return undefined;
1923
+ }));
1924
+ // return this.http.post<{ task: TaskBXHttp }>(this.url.add, {fields: param}).pipe(
1925
+ // map(v => {
1926
+ // if (v && v.result && v.result.task) {
1927
+ // return Object.assign(
1928
+ // v,
1929
+ // {
1930
+ // result: this.taskBXMap.TaskBXHttpToTaskBX(v.result.task)
1931
+ // })
1932
+ // }
1933
+ // return undefined
1934
+ // }
1935
+ // ))
1936
+ }
1937
+ }
1938
+ BXRestNavvyTasksTask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, deps: [{ token: BXRestTasksTask }, { token: SnackBarService }, { token: BXRestTaskMap }], target: i0.ɵɵFactoryTarget.Injectable });
1939
+ BXRestNavvyTasksTask.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, providedIn: 'root' });
1940
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, decorators: [{
1941
+ type: Injectable,
1942
+ args: [{
1943
+ providedIn: 'root'
1944
+ }]
1945
+ }], ctorParameters: function () { return [{ type: BXRestTasksTask }, { type: SnackBarService }, { type: BXRestTaskMap }]; } });
1946
+
1947
+ class BXRestNavvyTasks {
1948
+ constructor(task) {
1949
+ this.task = task;
1950
+ }
1951
+ }
1952
+ BXRestNavvyTasks.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasks, deps: [{ token: BXRestNavvyTasksTask }], target: i0.ɵɵFactoryTarget.Injectable });
1953
+ BXRestNavvyTasks.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasks, providedIn: 'root' });
1954
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasks, decorators: [{
1955
+ type: Injectable,
1956
+ args: [{
1957
+ providedIn: 'root'
1958
+ }]
1959
+ }], ctorParameters: function () { return [{ type: BXRestNavvyTasksTask }]; } });
1960
+
1961
+ class BXRestNavvyDiskFile extends BaseServices {
1962
+ constructor(BXRestDiskFile, Navvy) {
1963
+ super();
1964
+ this.BXRestDiskFile = BXRestDiskFile;
1965
+ this.Navvy = Navvy;
1966
+ }
1967
+ get(id) {
1968
+ return this.Navvy.mapAndSnackBarError(this.BXRestDiskFile.get(id), 'Не удалось получить файл').pipe(map(v => {
1969
+ if (v) {
1970
+ return Object.assign(v, { SIZE: this.toNum(v.SIZE) });
1971
+ }
1972
+ return undefined;
1973
+ }));
1974
+ }
1975
+ markDel(id) {
1976
+ return this.Navvy.mapAndSnackBarError(this.BXRestDiskFile.markDel(id), 'Не удалось переместить файл в корзину')
1977
+ .pipe(map(v => {
1978
+ if (v) {
1979
+ return Object.assign(v, { SIZE: this.toNum(v.SIZE) });
1980
+ }
1981
+ return undefined;
1982
+ }));
1983
+ }
1984
+ }
1985
+ BXRestNavvyDiskFile.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskFile, deps: [{ token: BXRestDiskFile }, { token: Navvy }], target: i0.ɵɵFactoryTarget.Injectable });
1986
+ BXRestNavvyDiskFile.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskFile, providedIn: 'root' });
1987
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskFile, decorators: [{
1988
+ type: Injectable,
1989
+ args: [{
1990
+ providedIn: 'root'
1991
+ }]
1992
+ }], ctorParameters: function () { return [{ type: BXRestDiskFile }, { type: Navvy }]; } });
1993
+
1994
+ class BXRestMapDiskBase extends BaseMapServices {
1995
+ separationFoldersAndFiles(arr) {
1996
+ let result = { file: [], folder: [] };
1997
+ for (let i of arr) {
1998
+ if (this.instanceOfiFile(i)) {
1999
+ result.file.push(Object.assign(i, {
2000
+ CREATED_BY: this.toNum(i.CREATED_BY),
2001
+ CREATE_TIME: this.toDate(i.CREATE_TIME),
2002
+ DELETED_BY: this.toNum(i.DELETED_BY),
2003
+ DELETED_TYPE: this.toNum(i.DELETED_TYPE),
2004
+ DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,
2005
+ ID: this.toNum(i.ID),
2006
+ PARENT_ID: this.toNum(i.PARENT_ID),
2007
+ REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),
2008
+ STORAGE_ID: this.toNum(i.STORAGE_ID),
2009
+ UPDATED_BY: this.toNum(i.UPDATED_BY),
2010
+ UPDATE_TIME: this.toDate(i.UPDATE_TIME),
2011
+ SIZE: this.toNum(i.SIZE),
2012
+ }));
2013
+ }
2014
+ else if (this.instanceOfiFolder(i)) {
2015
+ result.folder.push(Object.assign(i, {
2016
+ CREATED_BY: this.toNum(i.CREATED_BY),
2017
+ CREATE_TIME: this.toDate(i.CREATE_TIME),
2018
+ DELETED_BY: this.toNum(i.DELETED_BY),
2019
+ DELETED_TYPE: this.toNum(i.DELETED_TYPE),
2020
+ DELETE_TIME: (i.DELETE_TIME) ? this.toDate(i.DELETE_TIME) : null,
2021
+ ID: this.toNum(i.ID),
2022
+ PARENT_ID: this.toNum(i.PARENT_ID),
2023
+ REAL_OBJECT_ID: this.toNum(i.REAL_OBJECT_ID),
2024
+ STORAGE_ID: this.toNum(i.STORAGE_ID),
2025
+ UPDATED_BY: this.toNum(i.UPDATED_BY),
2026
+ UPDATE_TIME: this.toDate(i.UPDATE_TIME),
2027
+ }));
2028
+ }
2029
+ }
2030
+ return result;
2031
+ }
2032
+ instanceOfiFile(object) {
2033
+ return object && object.TYPE && object.TYPE === 'file';
2034
+ }
2035
+ instanceOfiFolder(object) {
2036
+ return object && object.TYPE && object.TYPE === 'folder';
2037
+ }
2038
+ }
2039
+ BXRestMapDiskBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapDiskBase, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
2040
+ BXRestMapDiskBase.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapDiskBase, providedIn: 'root' });
2041
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapDiskBase, decorators: [{
2042
+ type: Injectable,
2043
+ args: [{
2044
+ providedIn: 'root'
2045
+ }]
2046
+ }] });
2047
+
2048
+ class BXRestMapDiskFolder extends BXRestMapDiskBase {
2049
+ getContent(arr) {
2050
+ return this.separationFoldersAndFiles(arr);
2051
+ }
2052
+ }
2053
+ BXRestMapDiskFolder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapDiskFolder, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
2054
+ BXRestMapDiskFolder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapDiskFolder, providedIn: 'root' });
2055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapDiskFolder, decorators: [{
2056
+ type: Injectable,
2057
+ args: [{
2058
+ providedIn: 'root'
2059
+ }]
2060
+ }] });
2061
+
2062
+ class BXRestDiskNavvyFolder {
2063
+ constructor(BXRestDiskFolder, BXRestMapDiskFolder, Navvy) {
2064
+ this.BXRestDiskFolder = BXRestDiskFolder;
2065
+ this.BXRestMapDiskFolder = BXRestMapDiskFolder;
2066
+ this.Navvy = Navvy;
2067
+ }
2068
+ // uploadfile(id: number, fileContent: string[]) {
2069
+ // return this.httpPost(
2070
+ // this.url.uploadfile,
2071
+ // {
2072
+ // id: id, // Идентификатор папки. В текущем API загружать файл по пути к папке невозможно. Необходимо обязательно вычислить ID папки
2073
+ // fileContent: fileContent, // Аналогично 'DETAIL_PICTURE' в примере Обработка файлов (['имя файла', 'содержимое в base64'])
2074
+ // data: {
2075
+ // NAME: fileContent[0]
2076
+ // } // Обязательное поле NAME - имя нового файла
2077
+ // // generateUniqueName Необязательный, по умолчанию false. При указании true, для загружаемого файла будет уникализировано имя, добавлением суффикса (1), (2) и т.п.
2078
+ // // rights Необязательный, по умолчанию пустой массив. Массив прав доступа на загружаемый файл.
2079
+ // }
2080
+ // )
2081
+ // }
2082
+ getchildren(id) {
2083
+ return this.Navvy.mapAndSnackBarError(this.BXRestDiskFolder.getchildren(id), 'get folders and files').pipe(map(v => {
2084
+ if (v) {
2085
+ return this.BXRestMapDiskFolder.getContent(v);
2086
+ }
2087
+ return { file: [], folder: [] };
2088
+ }));
2089
+ }
2090
+ }
2091
+ BXRestDiskNavvyFolder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskNavvyFolder, deps: [{ token: BXRestDiskFolder }, { token: BXRestMapDiskFolder }, { token: Navvy }], target: i0.ɵɵFactoryTarget.Injectable });
2092
+ BXRestDiskNavvyFolder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskNavvyFolder, providedIn: 'root' });
2093
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskNavvyFolder, decorators: [{
2094
+ type: Injectable,
2095
+ args: [{
2096
+ providedIn: 'root'
2097
+ }]
2098
+ }], ctorParameters: function () { return [{ type: BXRestDiskFolder }, { type: BXRestMapDiskFolder }, { type: Navvy }]; } });
2099
+
2100
+ class BXRestMapDiskStorage extends BXRestMapDiskBase {
2101
+ getchildren(arr) {
2102
+ return this.separationFoldersAndFiles(arr);
2103
+ }
2104
+ }
2105
+ BXRestMapDiskStorage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapDiskStorage, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
2106
+ BXRestMapDiskStorage.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapDiskStorage, providedIn: 'root' });
2107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMapDiskStorage, decorators: [{
2108
+ type: Injectable,
2109
+ args: [{
2110
+ providedIn: 'root'
2111
+ }]
2112
+ }] });
2113
+
2114
+ class BXRestDiskStorage {
2115
+ constructor(http) {
2116
+ this.http = http;
2117
+ this.url = {
2118
+ getfields: [$disk, $storage, $getFields],
2119
+ get: [$disk, $storage, $get],
2120
+ rename: [$disk, $storage, $rename],
2121
+ // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)
2122
+ getlist: [$disk, $storage, $getlist],
2123
+ gettypes: [$disk, $storage, $getTypes],
2124
+ addfolder: [$disk, $storage, 'addfolder'],
2125
+ getchildren: [$disk, $storage, $getchildren],
2126
+ // которые находятся непосредственно в корне хранилища
2127
+ uploadfile: [$disk, $storage, $uploadfile],
2128
+ getforapp: [$disk, $storage, 'getforapp'] // Возвращает описание хранилища,
2129
+ // с которым может работать приложение для хранения своих данных (файлов и папок)
2130
+ };
2131
+ }
2132
+ getforapp() {
2133
+ return this.http.post(this.url.getforapp, {});
2134
+ }
2135
+ // TODO: разобраться с фильтром
2136
+ getchildren(param) {
2137
+ return this.http.post(this.url.getchildren, param);
2138
+ }
2139
+ // TODO: разобраться что возвращает и что вставлять
2140
+ addfolder(param) {
2141
+ return this.http.post(this.url.addfolder, param);
2142
+ }
2143
+ uploadfile(param) {
2144
+ return this.http.post(this.url.uploadfile, param);
2145
+ }
2146
+ }
2147
+ BXRestDiskStorage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskStorage, deps: [{ token: HttpBXServices }], target: i0.ɵɵFactoryTarget.Injectable });
2148
+ BXRestDiskStorage.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskStorage, providedIn: 'root' });
2149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestDiskStorage, decorators: [{
2150
+ type: Injectable,
2151
+ args: [{
2152
+ providedIn: 'root'
2153
+ }]
2154
+ }], ctorParameters: function () { return [{ type: HttpBXServices }]; } });
2155
+
2156
+ class BXRestNavvyDiskStorage {
2157
+ // BXDiskFolder$ = new Observable<BXDiskFolderStore>()
2158
+ constructor(BXRestDiskStorage, BXRestMapDiskStorage, Navvy, SessionStorage
2159
+ // private store: Store<{ BXDiskFolder: BXDiskFolderStore }>,
2160
+ ) {
2161
+ this.BXRestDiskStorage = BXRestDiskStorage;
2162
+ this.BXRestMapDiskStorage = BXRestMapDiskStorage;
2163
+ this.Navvy = Navvy;
2164
+ this.SessionStorage = SessionStorage;
2165
+ // this.BXDiskFolder$ = this.store.select('BXDiskFolder')
2166
+ }
2167
+ getforapp() {
2168
+ let res = this.SessionStorage.getItem(this.constructor.name + this.getforapp.name);
2169
+ if (res) {
2170
+ return of(res);
2171
+ }
2172
+ else {
2173
+ return this.Navvy.mapAndSnackBarError(this.BXRestDiskStorage.getforapp(), 'get root app folder').pipe(tap(v => {
2174
+ if (v) {
2175
+ this.SessionStorage.setItem(this.constructor.name + this.getforapp.name, v);
2176
+ }
2177
+ }));
2178
+ }
2179
+ }
2180
+ // TODO: разобраться с фильтром позже
2181
+ getchildren(param) {
2182
+ return this.Navvy.mapAndSnackBarError(this.BXRestDiskStorage.getchildren(param), 'get root app folders and files').pipe(map(v => {
2183
+ if (v && v.length) {
2184
+ return this.BXRestMapDiskStorage.getchildren(v);
2185
+ }
2186
+ return { file: [], folder: [] };
2187
+ }));
2188
+ }
2189
+ // TODO: разобраться что возвращает и что вставлять
2190
+ addfolder(param) {
2191
+ return this.BXRestDiskStorage.addfolder(param).pipe(map(v => BXRestMapResult(v)));
2192
+ }
2193
+ uploadfile(param) {
2194
+ return this.BXRestDiskStorage.uploadfile(param);
2195
+ }
2196
+ }
2197
+ BXRestNavvyDiskStorage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskStorage, deps: [{ token: BXRestDiskStorage }, { token: BXRestMapDiskStorage }, { token: Navvy }, { token: SessionStorageServices }], target: i0.ɵɵFactoryTarget.Injectable });
2198
+ BXRestNavvyDiskStorage.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskStorage, providedIn: 'root' });
2199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskStorage, decorators: [{
2200
+ type: Injectable,
2201
+ args: [{
2202
+ providedIn: 'root'
2203
+ }]
2204
+ }], ctorParameters: function () { return [{ type: BXRestDiskStorage }, { type: BXRestMapDiskStorage }, { type: Navvy }, { type: SessionStorageServices }]; } });
2205
+
2206
+ class BXRestNavvyDiskOperation {
2207
+ constructor(folder, disk, storage) {
2208
+ this.folder = folder;
2209
+ this.disk = disk;
2210
+ this.storage = storage;
2211
+ }
2212
+ // данные файла в base64
2213
+ loadFileInAppFolder(file) {
2214
+ return this.storage.getforapp().pipe(take$1(1), mergeMap$1(infoFolder => {
2215
+ if (infoFolder) {
2216
+ return this.storage.uploadfile({
2217
+ id: infoFolder.ID,
2218
+ fileContent: [file.name, file.val],
2219
+ data: {
2220
+ NAME: file.name
2221
+ },
2222
+ generateUniqueName: true
2223
+ }).pipe(map(v => BXRestMapResult(v)));
2224
+ }
2225
+ return of(undefined);
2226
+ }));
2227
+ }
2228
+ getOfCreateRootContentFolderApp(folderName) {
2229
+ return this.getOfCreateRootFolderApp(folderName).pipe(mergeMap$1(v => {
2230
+ if (v) {
2231
+ return this.folder.getchildren(v.ID);
2232
+ }
2233
+ return of(undefined);
2234
+ }));
2235
+ }
2236
+ getRootFoldersApp() {
2237
+ // return this.BXDiskFolder$.pipe(
2238
+ // take(1),
2239
+ // mergeMap(
2240
+ // saveData => {
2241
+ // if (saveData.content.root.app) {
2242
+ // return of(saveData.content.root.app)
2243
+ // }
2244
+ return this.storage.getforapp().pipe(mergeMap$1(v => {
2245
+ if (v && v.ID) {
2246
+ return this.storage.getchildren({ id: v.ID });
2247
+ // .pipe(
2248
+ // tap(v => {
2249
+ // if (v) {
2250
+ // this.store.dispatch(saveContentRootAppInfo({value: v}))
2251
+ // }
2252
+ // })
2253
+ // )
2254
+ }
2255
+ return of(undefined);
2256
+ }));
2257
+ // }
2258
+ // )
2259
+ // )
2260
+ }
2261
+ /**
2262
+ * Получать или создать папку, если её нет, с определенным именем для приложения
2263
+ * @param folderName
2264
+ */
2265
+ getOfCreateRootFolderApp(folderName) {
2266
+ return this.getRootFoldersApp().pipe(mergeMap$1(v => {
2267
+ if (v) {
2268
+ if (v.folder.length) {
2269
+ let find = v.folder.find(i => i.NAME === folderName);
2270
+ if (find) {
2271
+ return of(find);
2272
+ }
2273
+ }
2274
+ }
2275
+ return this.storage.getforapp().pipe(mergeMap$1(v => {
2276
+ if (v && v.ID) {
2277
+ return this.storage.addfolder({ id: v.ID, data: { NAME: folderName } });
2278
+ }
2279
+ return of(undefined);
2280
+ }));
2281
+ }));
2282
+ }
2283
+ }
2284
+ BXRestNavvyDiskOperation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskOperation, deps: [{ token: BXRestDiskNavvyFolder }, { token: BXRestNavvyDiskFile }, { token: BXRestNavvyDiskStorage }], target: i0.ɵɵFactoryTarget.Injectable });
2285
+ BXRestNavvyDiskOperation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskOperation, providedIn: 'root' });
2286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskOperation, decorators: [{
2287
+ type: Injectable,
2288
+ args: [{
2289
+ providedIn: 'root'
2290
+ }]
2291
+ }], ctorParameters: function () { return [{ type: BXRestDiskNavvyFolder }, { type: BXRestNavvyDiskFile }, { type: BXRestNavvyDiskStorage }]; } });
2292
+
2293
+ class BXRestNavvyDisk {
2294
+ constructor(file, folder, operation) {
2295
+ this.file = file;
2296
+ this.folder = folder;
2297
+ this.operation = operation;
2298
+ }
2299
+ }
2300
+ BXRestNavvyDisk.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDisk, deps: [{ token: BXRestNavvyDiskFile }, { token: BXRestDiskNavvyFolder }, { token: BXRestNavvyDiskOperation }], target: i0.ɵɵFactoryTarget.Injectable });
2301
+ BXRestNavvyDisk.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDisk, providedIn: 'root' });
2302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDisk, decorators: [{
2303
+ type: Injectable,
2304
+ args: [{
2305
+ providedIn: 'root'
2306
+ }]
2307
+ }], ctorParameters: function () { return [{ type: BXRestNavvyDiskFile }, { type: BXRestDiskNavvyFolder }, { type: BXRestNavvyDiskOperation }]; } });
2308
+
2309
+ class BXRest {
2310
+ constructor(user, lists, tasks, disk) {
2311
+ this.user = user;
2312
+ this.lists = lists;
2313
+ this.tasks = tasks;
2314
+ this.disk = disk;
2315
+ }
2316
+ }
2317
+ BXRest.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, deps: [{ token: BXRestUser }, { token: BXRestLists }, { token: BXRestTasks }, { token: BXRestDisk }], target: i0.ɵɵFactoryTarget.Injectable });
2318
+ BXRest.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, providedIn: 'root' });
2319
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, decorators: [{
2320
+ type: Injectable,
2321
+ args: [{
2322
+ providedIn: 'root'
2323
+ }]
2324
+ }], ctorParameters: function () { return [{ type: BXRestUser }, { type: BXRestLists }, { type: BXRestTasks }, { type: BXRestDisk }]; } });
2325
+ class BXRestNavvy {
2326
+ constructor(user, lists, tasks, disk) {
2327
+ this.user = user;
2328
+ this.lists = lists;
2329
+ this.tasks = tasks;
2330
+ this.disk = disk;
2331
+ }
2332
+ }
2333
+ BXRestNavvy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, deps: [{ token: BXRestNavvyUser }, { token: BXRestNavvyLists }, { token: BXRestNavvyTasks }, { token: BXRestNavvyDisk }], target: i0.ɵɵFactoryTarget.Injectable });
2334
+ BXRestNavvy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, providedIn: 'root' });
2335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, decorators: [{
2336
+ type: Injectable,
2337
+ args: [{
2338
+ providedIn: 'root'
2339
+ }]
2340
+ }], ctorParameters: function () { return [{ type: BXRestNavvyUser }, { type: BXRestNavvyLists }, { type: BXRestNavvyTasks }, { type: BXRestNavvyDisk }]; } });
2341
+ class BXRestMap {
2342
+ constructor(lists) {
2343
+ this.lists = lists;
2344
+ }
2345
+ }
2346
+ BXRestMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, deps: [{ token: BXRestMapLists }], target: i0.ɵɵFactoryTarget.Injectable });
2347
+ BXRestMap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, providedIn: 'root' });
2348
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, decorators: [{
1746
2349
  type: Injectable,
1747
2350
  args: [{
1748
2351
  providedIn: 'root'
1749
2352
  }]
1750
- }], ctorParameters: function () { return [{ type: BXRestUser }, { type: BXRestLists }]; } });
2353
+ }], ctorParameters: function () { return [{ type: BXRestMapLists }]; } });
1751
2354
 
1752
2355
  /*
1753
2356
  * Public API Surface of bx-rest
@@ -1757,5 +2360,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
1757
2360
  * Generated bundle index. Do not edit.
1758
2361
  */
1759
2362
 
1760
- export { BXRest };
2363
+ export { BXRest, BXRestMap, BXRestMapResult, BXRestNavvy, REST_SETTINGS };
1761
2364
  //# sourceMappingURL=bx-rest.mjs.map