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