bx-rest 0.0.13 → 0.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/consts/part-name-metods.d.ts +63 -0
- package/esm2020/consts/part-name-metods.mjs +64 -1
- package/esm2020/functions/mapResult.mjs +7 -0
- package/esm2020/map/base.mjs +14 -0
- package/esm2020/map/lists/element.mjs +22 -0
- package/esm2020/public-api.mjs +5 -3
- package/esm2020/request/lists/element.mjs +55 -0
- package/esm2020/request/lists.mjs +46 -0
- package/esm2020/request/user.mjs +227 -0
- package/esm2020/services/base.mjs +2 -2
- package/esm2020/services/map/rest/user.mjs +2 -2
- package/esm2020/typification/rest/lists/element/get.mjs +2 -0
- package/fesm2015/bx-rest.mjs +462 -326
- package/fesm2015/bx-rest.mjs.map +1 -1
- package/fesm2020/bx-rest.mjs +459 -323
- package/fesm2020/bx-rest.mjs.map +1 -1
- package/functions/mapResult.d.ts +2 -0
- package/map/base.d.ts +6 -0
- package/map/lists/element.d.ts +8 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -2
- package/request/lists/element.d.ts +27 -0
- package/request/lists.d.ts +18 -0
- package/request/user.d.ts +59 -0
- package/services/base.d.ts +1 -1
- package/typification/rest/lists/element/get.d.ts +28 -0
- package/esm2020/request/user/user.mjs +0 -279
- package/esm2020/typification/rest/user/CustomUserFieldInfo.mjs +0 -2
- package/esm2020/typification/rest/user/userFilter.mjs +0 -2
- package/request/user/user.d.ts +0 -63
- package/typification/rest/user/CustomUserFieldInfo.d.ts +0 -56
- package/typification/rest/user/userFilter.d.ts +0 -13
package/map/base.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BaseServices } from '../services/base';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export default class BaseMapServices extends BaseServices {
|
|
4
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseMapServices, never>;
|
|
5
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BaseMapServices>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import BaseMapServices from '../base';
|
|
2
|
+
import { iBXRestHttpListsElement, iBXRestListsElement } from '../../typification/rest/lists/element/get';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export default class BXRestListsElementMap extends BaseMapServices {
|
|
5
|
+
get(item: iBXRestHttpListsElement): iBXRestListsElement;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BXRestListsElementMap, never>;
|
|
7
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BXRestListsElementMap>;
|
|
8
|
+
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './request/
|
|
1
|
+
export * from './request/user';
|
|
2
|
+
export * from './request/lists';
|
|
3
|
+
export * from './request/lists/element';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import iHttpAnswerBX from '../../typification/rest/base/httpAnswerBX';
|
|
3
|
+
import HttpBXServices from '../../services/http/HttpBX';
|
|
4
|
+
import BXRestListsElementMap from '../../map/lists/element';
|
|
5
|
+
import { iBXRestHttpListsElement, iBXRestParamListsElementGet } from '../../typification/rest/lists/element/get';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
declare class BXRestListsElementBase {
|
|
8
|
+
private http;
|
|
9
|
+
private mapResult;
|
|
10
|
+
url: {
|
|
11
|
+
add: string[];
|
|
12
|
+
delete: string[];
|
|
13
|
+
get: string[];
|
|
14
|
+
update: string[];
|
|
15
|
+
getFileUrl: string[];
|
|
16
|
+
};
|
|
17
|
+
constructor(http: HttpBXServices, mapResult: BXRestListsElementMap);
|
|
18
|
+
get(pram: iBXRestParamListsElementGet): Observable<(iHttpAnswerBX<iBXRestHttpListsElement[]> & {
|
|
19
|
+
result: import("../../typification/rest/lists/element/get").iBXRestListsElement[];
|
|
20
|
+
}) | undefined>;
|
|
21
|
+
}
|
|
22
|
+
declare const BXRestListsElement_base: typeof BXRestListsElementBase;
|
|
23
|
+
export declare class BXRestListsElement extends BXRestListsElement_base {
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BXRestListsElement, never>;
|
|
25
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BXRestListsElement>;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export default class BXRestLists {
|
|
3
|
+
url: {
|
|
4
|
+
add: string[];
|
|
5
|
+
delete: string[];
|
|
6
|
+
get: string[];
|
|
7
|
+
update: string[];
|
|
8
|
+
getIblockTypeId: string[];
|
|
9
|
+
};
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BXRestLists, never>;
|
|
11
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BXRestLists>;
|
|
12
|
+
}
|
|
13
|
+
declare const BXRestListsRes_base: typeof BXRestLists;
|
|
14
|
+
export declare class BXRestListsRes extends BXRestListsRes_base {
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BXRestListsRes, never>;
|
|
16
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BXRestListsRes>;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { iBXGetParam } from '../typification/rest/user/get';
|
|
3
|
+
import HttpBXServices from '../services/http/HttpBX';
|
|
4
|
+
import UserFilterSearch from '../typification/rest/user/UserFilterSearch';
|
|
5
|
+
import { Store } from '@ngrx/store';
|
|
6
|
+
import { storeUsers } from '../store/users';
|
|
7
|
+
import { DatePipe } from '@angular/common';
|
|
8
|
+
import { BitrixApiUserMapServices } from '../services/map/rest/user';
|
|
9
|
+
import SnackBarService from '../services/snack-bar/snack-bar.service';
|
|
10
|
+
import iHttpAnswerBX from '../typification/rest/base/httpAnswerBX';
|
|
11
|
+
import { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user/user';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export declare class BXRestUser {
|
|
14
|
+
private http;
|
|
15
|
+
private snackBar;
|
|
16
|
+
private store;
|
|
17
|
+
private userMap;
|
|
18
|
+
private datePipe;
|
|
19
|
+
url: {
|
|
20
|
+
admin: string[];
|
|
21
|
+
get: string[];
|
|
22
|
+
current: string[];
|
|
23
|
+
update: string[];
|
|
24
|
+
search: string[];
|
|
25
|
+
access: string[];
|
|
26
|
+
fields: string[];
|
|
27
|
+
userfield: {
|
|
28
|
+
list: string[];
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
def: {
|
|
32
|
+
params: {
|
|
33
|
+
ACTIVE: 1;
|
|
34
|
+
start: 0;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
user$: Observable<storeUsers>;
|
|
38
|
+
constructor(http: HttpBXServices, snackBar: SnackBarService, store: Store<{
|
|
39
|
+
users: storeUsers;
|
|
40
|
+
}>, userMap: BitrixApiUserMapServices, datePipe: DatePipe);
|
|
41
|
+
admin(): Observable<iHttpAnswerBX<boolean> | undefined>;
|
|
42
|
+
get(params?: iBXGetParam): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>;
|
|
43
|
+
current(update?: boolean): Observable<iBXRestUser | undefined>;
|
|
44
|
+
private getSelfHttp;
|
|
45
|
+
access(access: string[], textError?: string): Observable<iHttpAnswerBX<boolean> | undefined>;
|
|
46
|
+
private saveArrUser;
|
|
47
|
+
search(params: string | UserFilterSearch): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>;
|
|
48
|
+
fields(): Observable<iHttpAnswerBX<iBXRestUserHttpField> | undefined>;
|
|
49
|
+
update(user: iBXRestUser, fieldUpdate: string[]): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> | Observable<{}>;
|
|
50
|
+
private setDefParam;
|
|
51
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BXRestUser, never>;
|
|
52
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BXRestUser>;
|
|
53
|
+
}
|
|
54
|
+
declare const BXRestUserRes_base: typeof BXRestUser;
|
|
55
|
+
export declare class BXRestUserRes extends BXRestUserRes_base {
|
|
56
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BXRestUserRes, never>;
|
|
57
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<BXRestUserRes>;
|
|
58
|
+
}
|
|
59
|
+
export {};
|
package/services/base.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { DateTimeOptions } from 'luxon/src/datetime';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare class BaseServices {
|
|
4
4
|
toStr(val: any): string;
|
|
5
|
-
|
|
5
|
+
toNum(val: any): number;
|
|
6
6
|
toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): Date;
|
|
7
7
|
getBXStrTime(date: Date): string;
|
|
8
8
|
toISOStringWithTimezone(date: Date): string;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { iBXRestYesNo } from '../../base/YesNo';
|
|
2
|
+
export interface iBXRestParamListsElementGet {
|
|
3
|
+
IBLOCK_TYPE_ID: 'lists' | 'bitrix_processes' | 'lists_socnet';
|
|
4
|
+
IBLOCK_ID: number;
|
|
5
|
+
SOCNET_GROUP_ID?: number;
|
|
6
|
+
ELEMENT_ID?: number;
|
|
7
|
+
FILTER?: {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface iBXRestListsElement extends iBXRestBaseListsElement {
|
|
12
|
+
BP_PUBLISHED: boolean;
|
|
13
|
+
CREATED_BY: number;
|
|
14
|
+
IBLOCK_ID: number;
|
|
15
|
+
ID: number;
|
|
16
|
+
}
|
|
17
|
+
export interface iBXRestHttpListsElement extends iBXRestBaseListsElement {
|
|
18
|
+
BP_PUBLISHED: iBXRestYesNo;
|
|
19
|
+
CREATED_BY: string;
|
|
20
|
+
IBLOCK_ID: string;
|
|
21
|
+
ID: string;
|
|
22
|
+
}
|
|
23
|
+
export interface iBXRestBaseListsElement {
|
|
24
|
+
CODE: string | null;
|
|
25
|
+
IBLOCK_SECTION_ID: string | null;
|
|
26
|
+
NAME: string;
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
}
|
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
import { of, take } from 'rxjs';
|
|
2
|
-
import { first, map, mergeMap, tap } from 'rxjs/operators';
|
|
3
|
-
import clone from 'just-clone';
|
|
4
|
-
import compare from 'just-compare';
|
|
5
|
-
import HttpBXServices from '../../services/http/HttpBX';
|
|
6
|
-
import { loadAll, saveArr, saveIDLoadedDepartment, saveSelf } from '../../store/users';
|
|
7
|
-
// import DateTrace from 'bx-rest/services/api/trace/metods/date'
|
|
8
|
-
import SnackBarService from '../../services/snack-bar/snack-bar.service';
|
|
9
|
-
import { $get, $list, $search, $update, $user } from '../../consts/part-name-metods';
|
|
10
|
-
import { Injectable } from '@angular/core';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@ngrx/store";
|
|
13
|
-
import * as i2 from "../../services/map/rest/user";
|
|
14
|
-
import * as i3 from "@angular/common";
|
|
15
|
-
export class BXRestUser {
|
|
16
|
-
constructor(http, snackBar,
|
|
17
|
-
// private img: ImgServices,
|
|
18
|
-
//private dateTrace: DateTrace,
|
|
19
|
-
store, userMap, datePipe) {
|
|
20
|
-
this.http = http;
|
|
21
|
-
this.snackBar = snackBar;
|
|
22
|
-
this.store = store;
|
|
23
|
-
this.userMap = userMap;
|
|
24
|
-
this.datePipe = datePipe;
|
|
25
|
-
this.url = {
|
|
26
|
-
admin: [$user, 'admin'],
|
|
27
|
-
get: [$user, $get],
|
|
28
|
-
self: [$user, 'current'],
|
|
29
|
-
update: [$user, $update],
|
|
30
|
-
search: [$user, $search],
|
|
31
|
-
access: [$user, 'access'],
|
|
32
|
-
// AU - все авторизованные пользователи
|
|
33
|
-
// D1 - подразделение с id=1
|
|
34
|
-
// G1 - группа с id=1
|
|
35
|
-
fields: [$user, 'fields'],
|
|
36
|
-
userfield: {
|
|
37
|
-
list: [$user, 'userfield', $list]
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
this.def = {
|
|
41
|
-
params: { ACTIVE: 1, start: 0 }
|
|
42
|
-
};
|
|
43
|
-
this.user$ = this.store.select('users');
|
|
44
|
-
}
|
|
45
|
-
get(params = {}) {
|
|
46
|
-
let copyParams = clone(params);
|
|
47
|
-
this.setDefParam(copyParams);
|
|
48
|
-
return this.http.post(this.url.get, copyParams, 'Не удалось получить пользователей')
|
|
49
|
-
.pipe(tap(v => {
|
|
50
|
-
if (v && v.result) {
|
|
51
|
-
this.saveArrUser(v.result);
|
|
52
|
-
}
|
|
53
|
-
}));
|
|
54
|
-
}
|
|
55
|
-
getOnePage(page = 1) {
|
|
56
|
-
return this.get({ start: (page - 1) * 50 }).pipe(map(v => {
|
|
57
|
-
let res = this.http.mapResult(v);
|
|
58
|
-
return (res) ? res.map(r => this.userMap.HttpToBX(r)) : undefined;
|
|
59
|
-
}));
|
|
60
|
-
}
|
|
61
|
-
getByID(id, reload = true) {
|
|
62
|
-
return this.getByIDs([id], reload).pipe(map(v => (v && v.length) ? v[0] : undefined));
|
|
63
|
-
}
|
|
64
|
-
getByIDs(ids, reload = true) {
|
|
65
|
-
ids = Array.from(new Set(ids));
|
|
66
|
-
return this.user$.pipe(take(1), mergeMap(v => {
|
|
67
|
-
if (!reload) {
|
|
68
|
-
let find = v.data.filter(i => ids.includes(i.ID));
|
|
69
|
-
if (find && find.length === ids.length) {
|
|
70
|
-
return of(find);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return this.getAll({ ID: ids, ACTIVE: 2 }).pipe(map(v => (v && v.length) ? v : undefined));
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
getSelf(update = false) {
|
|
77
|
-
if (update) {
|
|
78
|
-
return this.getSelfHttp();
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
return this.user$.pipe(mergeMap(v => {
|
|
82
|
-
if (v && v.self) {
|
|
83
|
-
return of(v.self);
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
return this.getSelfHttp();
|
|
87
|
-
}
|
|
88
|
-
}), first());
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
getSelfHttp() {
|
|
92
|
-
return this.http.get(this.url.self, {}, 'Не удалось получить пользователя')
|
|
93
|
-
.pipe(map(v => {
|
|
94
|
-
if (v && v.result) {
|
|
95
|
-
return this.userMap.HttpToBX(v.result);
|
|
96
|
-
}
|
|
97
|
-
return undefined;
|
|
98
|
-
}), tap(v => {
|
|
99
|
-
if (v) {
|
|
100
|
-
this.store.dispatch(saveSelf({ self: v }));
|
|
101
|
-
}
|
|
102
|
-
}));
|
|
103
|
-
}
|
|
104
|
-
access(access, textError = 'Не удалось получить права') {
|
|
105
|
-
return this.http.get(this.url.access, { ACCESS: access }, textError).pipe(map(v => this.http.mapResult(v)));
|
|
106
|
-
}
|
|
107
|
-
getByDepartment(id) {
|
|
108
|
-
const ids = (typeof id === 'number') ? [id] : id;
|
|
109
|
-
return this.user$.pipe(first(), mergeMap(v => {
|
|
110
|
-
if (v.load.all) {
|
|
111
|
-
return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))));
|
|
112
|
-
}
|
|
113
|
-
if (ids.every(i => v.load.department.includes(i))) {
|
|
114
|
-
return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))));
|
|
115
|
-
}
|
|
116
|
-
return this.getAll({ UF_DEPARTMENT: ids }).pipe(tap(_ => {
|
|
117
|
-
this.store.dispatch(saveIDLoadedDepartment({ id: ids }));
|
|
118
|
-
}));
|
|
119
|
-
}));
|
|
120
|
-
}
|
|
121
|
-
getAll(params = {}) {
|
|
122
|
-
if (!Object.keys(params).length) {
|
|
123
|
-
params = clone(this.def.params);
|
|
124
|
-
}
|
|
125
|
-
const saveAllUser = compare(params, this.def.params);
|
|
126
|
-
return this.user$.pipe(take(1), mergeMap(v => {
|
|
127
|
-
if (v.load.all) {
|
|
128
|
-
if (compare(this.def.params, params)) {
|
|
129
|
-
return of(clone(v.data));
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return this.getEndArray(params).pipe(take(1), map(v => {
|
|
133
|
-
if (v && v.result) {
|
|
134
|
-
let cl = clone(v.result);
|
|
135
|
-
return this.saveArrUser(cl);
|
|
136
|
-
}
|
|
137
|
-
return undefined;
|
|
138
|
-
}));
|
|
139
|
-
}), tap(v => {
|
|
140
|
-
if (v && v.length && saveAllUser) {
|
|
141
|
-
this.store.dispatch(loadAll({ load: true }));
|
|
142
|
-
}
|
|
143
|
-
params.start = this.def.params.start;
|
|
144
|
-
}));
|
|
145
|
-
}
|
|
146
|
-
getAllByPersonalBirthday(day = undefined, month = undefined, checkWeekend = false) {
|
|
147
|
-
return this.http.timeNowOnServer().pipe(mergeMap(date => {
|
|
148
|
-
if (date) {
|
|
149
|
-
let daySent = (day) ? day : date.getDate();
|
|
150
|
-
let start = date.getFullYear() + 1;
|
|
151
|
-
let monthSent = (month) ? month : date.getMonth() + 1;
|
|
152
|
-
let arr = Array.from(Array(200).keys()).map(_ => {
|
|
153
|
-
start--;
|
|
154
|
-
let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent), 'YYYY-MM-dd');
|
|
155
|
-
return (res) ? res : '';
|
|
156
|
-
});
|
|
157
|
-
// TODO: Упростить
|
|
158
|
-
if (checkWeekend && date.getDay() === 1) {
|
|
159
|
-
start = date.getFullYear() + 1;
|
|
160
|
-
arr.push(...Array.from(Array(200).keys()).map(_ => {
|
|
161
|
-
start--;
|
|
162
|
-
let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 1), 'YYYY-MM-dd');
|
|
163
|
-
return (res) ? res : '';
|
|
164
|
-
}));
|
|
165
|
-
start = date.getFullYear() + 1;
|
|
166
|
-
arr.push(...Array.from(Array(200).keys()).map(_ => {
|
|
167
|
-
start--;
|
|
168
|
-
let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 2), 'YYYY-MM-dd');
|
|
169
|
-
return (res) ? res : '';
|
|
170
|
-
}));
|
|
171
|
-
}
|
|
172
|
-
return this.getAll({ PERSONAL_BIRTHDAY: arr });
|
|
173
|
-
}
|
|
174
|
-
this.snackBar.warning('Не удалось получить время сервера');
|
|
175
|
-
return of(undefined);
|
|
176
|
-
}));
|
|
177
|
-
}
|
|
178
|
-
saveArrUser(users) {
|
|
179
|
-
let result = [];
|
|
180
|
-
for (const user of users) {
|
|
181
|
-
result.push(this.userMap.HttpToBX(user));
|
|
182
|
-
}
|
|
183
|
-
this.store.dispatch(saveArr({ arr: result }));
|
|
184
|
-
return result;
|
|
185
|
-
}
|
|
186
|
-
search(params) {
|
|
187
|
-
if (typeof params === 'string') {
|
|
188
|
-
params = { FIND: params };
|
|
189
|
-
}
|
|
190
|
-
if (typeof params.ACTIVE !== 'boolean') {
|
|
191
|
-
params.ACTIVE = true;
|
|
192
|
-
}
|
|
193
|
-
return this.http.get(this.url.search, params, 'Сервер не отвечает на запрос поиска')
|
|
194
|
-
.pipe(map(v => {
|
|
195
|
-
if (v && v.result) {
|
|
196
|
-
const mapResult = this.http.mapResult(v);
|
|
197
|
-
if (mapResult) {
|
|
198
|
-
return this.saveArrUser(mapResult);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return undefined;
|
|
202
|
-
}));
|
|
203
|
-
}
|
|
204
|
-
fields() {
|
|
205
|
-
return this.http.get(this.url.fields).pipe(map(v => this.http.mapResult(v)));
|
|
206
|
-
}
|
|
207
|
-
update(user, fieldUpdate) {
|
|
208
|
-
if (fieldUpdate && fieldUpdate.length) {
|
|
209
|
-
let sendData = {
|
|
210
|
-
ID: user.ID,
|
|
211
|
-
};
|
|
212
|
-
const userBX = this.userMap.BXtoHttp(user);
|
|
213
|
-
for (const field of fieldUpdate) {
|
|
214
|
-
if (userBX[field]) {
|
|
215
|
-
sendData[field] = userBX[field];
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
this.snackBar.error('Одно из указанных полей отправлено не верно');
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
return this.http.post(this.url.update, sendData, 'Не удалось обновить пользователя с ID' + user.ID);
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
this.snackBar.error('Не указано ни одно поле для редактирования пользователя');
|
|
225
|
-
return of({});
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
getEndArray(params = {}) {
|
|
229
|
-
return this.get(params).pipe(mergeMap(items => {
|
|
230
|
-
if (items && items.result && typeof items.result === 'object') {
|
|
231
|
-
if (items.next) {
|
|
232
|
-
params.start = items.next;
|
|
233
|
-
return this.getEndArray(params).pipe(map(vEnd => {
|
|
234
|
-
if (vEnd && items.result && vEnd.result) {
|
|
235
|
-
return { result: [...items.result, ...vEnd.result] };
|
|
236
|
-
}
|
|
237
|
-
return (items) ? items : undefined;
|
|
238
|
-
}));
|
|
239
|
-
}
|
|
240
|
-
return of(items);
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
return of(undefined);
|
|
244
|
-
}
|
|
245
|
-
}));
|
|
246
|
-
}
|
|
247
|
-
// getUrlCompressedImage(url: string, width: number, height: number) {
|
|
248
|
-
// return this.img.getUrlCompressed(url, width, height)
|
|
249
|
-
// }
|
|
250
|
-
setDefParam(params) {
|
|
251
|
-
if (!params.hasOwnProperty('ACTIVE')) {
|
|
252
|
-
params.ACTIVE = this.def.params.ACTIVE;
|
|
253
|
-
}
|
|
254
|
-
if (params.ACTIVE && params.ACTIVE === 2) {
|
|
255
|
-
delete params.ACTIVE;
|
|
256
|
-
}
|
|
257
|
-
if (!params.hasOwnProperty('start')) {
|
|
258
|
-
params.start = this.def.params.start;
|
|
259
|
-
}
|
|
260
|
-
if (params.UF_DEPARTMENT && !params.UF_DEPARTMENT.length) {
|
|
261
|
-
delete params.UF_DEPARTMENT;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
getInfoAboutCustomFieldsBX() {
|
|
265
|
-
return this.http.get(this.url.userfield.list).pipe(map(v => this.http.mapResult(v)));
|
|
266
|
-
}
|
|
267
|
-
itIsAdmin() {
|
|
268
|
-
return this.http.get(this.url.admin).pipe(map(v => this.http.mapResult(v)));
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
BXRestUser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUser, deps: [{ token: HttpBXServices }, { token: SnackBarService }, { token: i1.Store }, { token: i2.BitrixApiUserMapServices }, { token: i3.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
272
|
-
BXRestUser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUser, providedIn: 'root' });
|
|
273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestUser, decorators: [{
|
|
274
|
-
type: Injectable,
|
|
275
|
-
args: [{
|
|
276
|
-
providedIn: 'root'
|
|
277
|
-
}]
|
|
278
|
-
}], ctorParameters: function () { return [{ type: HttpBXServices }, { type: SnackBarService }, { type: i1.Store }, { type: i2.BitrixApiUserMapServices }, { type: i3.DatePipe }]; } });
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdXNlci91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxRCxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUE7QUFDOUIsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFBO0FBRWxDLE9BQU8sY0FBYyxNQUFNLDRCQUE0QixDQUFBO0FBSXZELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFFBQVEsRUFBYyxNQUFNLG1CQUFtQixDQUFBO0FBSWxHLGlFQUFpRTtBQUNqRSxPQUFPLGVBQWUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUd4RSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBRXBGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7Ozs7O0FBSzFDLE1BQU0sT0FBTyxVQUFVO0lBdUJuQixZQUNZLElBQW9CLEVBQ3BCLFFBQXlCO0lBQ2xDLDRCQUE0QjtJQUMzQiwrQkFBK0I7SUFDdkIsS0FBbUMsRUFDbkMsT0FBaUMsRUFDakMsUUFBa0I7UUFObEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFHekIsVUFBSyxHQUFMLEtBQUssQ0FBOEI7UUFDbkMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFDakMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQTdCOUIsUUFBRyxHQUFHO1lBQ0YsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFF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QU07MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7MERBbEJNLGNBQWMsWUFTZCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRha2UgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgbWVyZ2VNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXG5pbXBvcnQgY29tcGFyZSBmcm9tICdqdXN0LWNvbXBhcmUnXG5pbXBvcnQgeyBpQlhHZXRQYXJhbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvZ2V0J1xuaW1wb3J0IEh0dHBCWFNlcnZpY2VzIGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAvSHR0cEJYJ1xuaW1wb3J0IFVzZXJGaWx0ZXJTZWFyY2ggZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdXNlci9Vc2VyRmlsdGVyU2VhcmNoJ1xuLy8gaW1wb3J0IEltZ1NlcnZpY2VzIGZyb20gJ2J4LXJlc3Qvc2VydmljZXMvYXBpL2JpdHJpeC9jdXN0b20vaW1nJ1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IGxvYWRBbGwsIHNhdmVBcnIsIHNhdmVJRExvYWRlZERlcGFydG1lbnQsIHNhdmVTZWxmLCBzdG9yZVVzZXJzIH0gZnJvbSAnLi4vLi4vc3RvcmUvdXNlcnMnXG5pbXBvcnQgeyBpQ3VzdG9tVXNlckZpZWxkSW5mbyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvQ3VzdG9tVXNlckZpZWxkSW5mbydcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQml0cml4QXBpVXNlck1hcFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbWFwL3Jlc3QvdXNlcidcbi8vIGltcG9ydCBEYXRlVHJhY2UgZnJvbSAnYngtcmVzdC9zZXJ2aWNlcy9hcGkvdHJhY2UvbWV0b2RzL2RhdGUnXG5pbXBvcnQgU25hY2tCYXJTZXJ2aWNlIGZyb20gJy4uLy4uL3NlcnZpY2VzL3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSdcbmltcG9ydCBpSHR0cEFuc3dlckJYIGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvaHR0cEFuc3dlckJYJ1xuaW1wb3J0IHsgaUJYUmVzdFVzZXIsIGlCWFJlc3RVc2VySHR0cCwgaUJYUmVzdFVzZXJIdHRwRmllbGQgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXInXG5pbXBvcnQgeyAkZ2V0LCAkbGlzdCwgJHNlYXJjaCwgJHVwZGF0ZSwgJHVzZXIgfSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldG9kcydcbmltcG9ydCB7IFVzZXJGaWx0ZXIgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXJGaWx0ZXInXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0VXNlciB7XG4gICAgdXJsID0ge1xuICAgICAgICBhZG1pbjogWyR1c2VyLCAnYWRtaW4nXSxcbiAgICAgICAgZ2V0OiBbJHVzZXIsICRnZXRdLFxuICAgICAgICBzZWxmOiBbJHVzZXIsICdjdXJyZW50J10sXG4gICAgICAgIHVwZGF0ZTogWyR1c2VyLCAkdXBkYXRlXSxcbiAgICAgICAgc2VhcmNoOiBbJHVzZXIsICRzZWFyY2hdLFxuICAgICAgICBhY2Nlc3M6IFskdXNlciwgJ2FjY2VzcyddLCAvLyBVMSAtINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRgSBpZCA9MVxuICAgICAgICAvLyBBVSAtINCy0YHQtSDQsNCy0YLQvtGA0LjQt9C+0LLQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuFxuICAgICAgICAvLyBEMSAtINC/0L7QtNGA0LDQt9C00LXQu9C10L3QuNC1INGBIGlkPTFcbiAgICAgICAgLy8gRzEgLSDQs9GA0YPQv9C/0LAg0YEgaWQ9MVxuICAgICAgICBmaWVsZHM6IFskdXNlciwgJ2ZpZWxkcyddLFxuICAgICAgICB1c2VyZmllbGQ6IHtcbiAgICAgICAgICAgIGxpc3Q6IFskdXNlciwgJ3VzZXJmaWVsZCcsICRsaXN0XVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVmOiB7IHBhcmFtczogeyBBQ1RJVkU6IDEsIHN0YXJ0OiAwIH0gfSA9IHtcbiAgICAgICAgcGFyYW1zOiB7QUNUSVZFOiAxLCBzdGFydDogMH1cbiAgICB9XG5cbiAgICB1c2VyJDogT2JzZXJ2YWJsZTxzdG9yZVVzZXJzPlxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cEJYU2VydmljZXMsXG4gICAgICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAvLyBwcml2YXRlIGltZzogSW1nU2VydmljZXMsXG4gICAgICAgIC8vcHJpdmF0ZSBkYXRlVHJhY2U6IERhdGVUcmFjZSxcbiAgICAgICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8eyB1c2Vyczogc3RvcmVVc2VycyB9PixcbiAgICAgICAgcHJpdmF0ZSB1c2VyTWFwOiBCaXRyaXhBcGlVc2VyTWFwU2VydmljZXMsXG4gICAgICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICAgKSB7XG4gICAgICAgIHRoaXMudXNlciQgPSB0aGlzLnN0b3JlLnNlbGVjdCgndXNlcnMnKVxuICAgIH1cblxuICAgIGdldChwYXJhbXM6IGlCWEdldFBhcmFtID0ge30pOiBPYnNlcnZhYmxlPGlIdHRwQW5zd2VyQlg8aUJYUmVzdFVzZXJIdHRwW10+IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGxldCBjb3B5UGFyYW1zID0gY2xvbmUocGFyYW1zKVxuICAgICAgICB0aGlzLnNldERlZlBhcmFtKGNvcHlQYXJhbXMpXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cFtdPiB8IHVuZGVmaW5lZD5cbiAgICAgICAgKHRoaXMudXJsLmdldCwgY29weVBhcmFtcywgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuScpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAodiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNhdmVBcnJVc2VyKHYucmVzdWx0KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICB9XG5cbiAgICBnZXRPbmVQYWdlKHBhZ2U6IG51bWJlciA9IDEpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KHtzdGFydDogKHBhZ2UgLSAxKSAqIDUwfSkucGlwZShcbiAgICAgICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzID0gdGhpcy5odHRwLm1hcFJlc3VsdCh2KVxuICAgICAgICAgICAgICAgIHJldHVybiAocmVzKSA/IHJlcy5tYXAociA9PiB0aGlzLnVzZXJNYXAuSHR0cFRvQlgocikpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgZ2V0QnlJRChpZDogbnVtYmVyLCByZWxvYWQgPSB0cnVlKTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlciB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRCeUlEcyhbaWRdLCByZWxvYWQpLnBpcGUobWFwKHYgPT4gKHYgJiYgdi5sZW5ndGgpID8gdlswXSA6IHVuZGVmaW5lZCkpXG4gICAgfVxuXG4gICAgZ2V0QnlJRHMoaWRzOiBudW1iZXJbXSwgcmVsb2FkID0gdHJ1ZSk6IE9ic2VydmFibGU8aUJYUmVzdFVzZXJbXSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZHMgPSBBcnJheS5mcm9tKG5ldyBTZXQoaWRzKSlcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciQucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlbG9hZCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmluZCA9IHYuZGF0YS5maWx0ZXIoaSA9PiBpZHMuaW5jbHVkZXMoaS5JRCkpXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaW5kICYmIGZpbmQubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmluZClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGwoe0lEOiBpZHMsIEFDVElWRTogMn0pLnBpcGUobWFwKHYgPT4gKHYgJiYgdi5sZW5ndGgpID8gdiA6IHVuZGVmaW5lZCkpXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgZ2V0U2VsZih1cGRhdGUgPSBmYWxzZSkge1xuICAgICAgICBpZiAodXBkYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxmSHR0cCgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyJC5waXBlKFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiAmJiB2LnNlbGYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih2LnNlbGYpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTZWxmSHR0cCgpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICAgICApXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRTZWxmSHR0cCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUh0dHBBbnN3ZXJCWDxpQlhSZXN0VXNlckh0dHA+PlxuICAgICAgICAodGhpcy51cmwuc2VsZiwge30sICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJylcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJNYXAuSHR0cFRvQlgodi5yZXN1bHQpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHRhcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZVNlbGYoe3NlbGY6IHZ9KSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgIH1cblxuICAgIGFjY2VzcyhhY2Nlc3M6IHN0cmluZ1tdLCB0ZXh0RXJyb3IgPSAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINC/0YDQsNCy0LAnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGlIdHRwQW5zd2VyQlg8Ym9vbGVhbj4gfCB1bmRlZmluZWQ+KHRoaXMudXJsLmFjY2Vzcywge0FDQ0VTUzogYWNjZXNzfSwgdGV4dEVycm9yKS5waXBlKFxuICAgICAgICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGdldEJ5RGVwYXJ0bWVudChpZDogbnVtYmVyW10gfCBudW1iZXIpOiBPYnNlcnZhYmxlPGlCWFJlc3RVc2VyIFtdIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IGlkczogbnVtYmVyW10gPSAodHlwZW9mIGlkID09PSAnbnVtYmVyJykgPyBbaWRdIDogaWRcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlciQucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBtZXJnZU1hcChcbiAgICAgICAgICAgICAgICB2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYubG9hZC5hbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihjbG9uZSh2LmRhdGEuZmlsdGVyKGkgPT4gaWRzLmZpbmQoaWQgPT4gaS5VRl9ERVBBUlRNRU5ULmluY2x1ZGVzKGlkKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaWRzLmV2ZXJ5KGkgPT4gdi5sb2FkLmRlcGFydG1lbnQuaW5jbHVkZXMoaSkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoY2xvbmUodi5kYXRhLmZpbHRlcihpID0+IGlkcy5maW5kKGlkID0+IGkuVUZfREVQQVJUTUVOVC5pbmNsdWRlcyhpZCkpKSkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsKHtVRl9ERVBBUlRNRU5UOiBpZHN9KS5waXBlKHRhcChfID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUlETG9hZGVkRGVwYXJ0bWVudCh7aWQ6IGlkc30pKVxuICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgZ2V0QWxsKHBhcmFtczogaUJYR2V0UGFyYW0gPSB7fSk6IE9ic2VydmFibGU8aUJYUmVzdFVzZXIgW10gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCkge1xuICAgICAgICAgICAgcGFyYW1zID0gY2xvbmUodGhpcy5kZWYucGFyYW1zKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2F2ZUFsbFVzZXIgPSBjb21wYXJlKHBhcmFtcywgdGhpcy5kZWYucGFyYW1zKVxuICAgICAgICByZXR1cm4gdGhpcy51c2VyJC5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2LmxvYWQuYWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wYXJlKHRoaXMuZGVmLnBhcmFtcywgcGFyYW1zKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGNsb25lKHYuZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRBcnJheShwYXJhbXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNsID0gY2xvbmUodi5yZXN1bHQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZUFyclVzZXIoY2wpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2ICYmIHYubGVuZ3RoICYmIHNhdmVBbGxVc2VyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobG9hZEFsbCh7bG9hZDogdHJ1ZX0pKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwYXJhbXMuc3RhcnQgPSB0aGlzLmRlZi5wYXJhbXMuc3RhcnRcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBnZXRBbGxCeVBlcnNvbmFsQmlydGhkYXkoZGF5OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsIG1vbnRoOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsIGNoZWNrV2Vla2VuZCA9IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAudGltZU5vd09uU2VydmVyKCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKGRhdGUgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXlTZW50ID0gKGRheSkgPyBkYXkgOiBkYXRlLmdldERhdGUoKVxuICAgICAgICAgICAgICAgICAgICBsZXQgc3RhcnQgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAxXG4gICAgICAgICAgICAgICAgICAgIGxldCBtb250aFNlbnQgPSAobW9udGgpID8gbW9udGggOiBkYXRlLmdldE1vbnRoKCkgKyAxXG4gICAgICAgICAgICAgICAgICAgIGxldCBhcnI6IHN0cmluZ1tdID0gQXJyYXkuZnJvbShBcnJheSgyMDApLmtleXMoKSkubWFwKF8gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQtLVxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKHN0YXJ0LCBtb250aFNlbnQgLSAxLCBkYXlTZW50KSwgJ1lZWVktTU0tZGQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChyZXMpID8gcmVzIDogJydcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzog0KPQv9GA0L7RgdGC0LjRgtGMXG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGVja1dlZWtlbmQgJiYgZGF0ZS5nZXREYXkoKSA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAxXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnIucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5BcnJheS5mcm9tKEFycmF5KDIwMCkua2V5cygpKS5tYXAoXyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LS1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKHN0YXJ0LCBtb250aFNlbnQgLSAxLCBkYXlTZW50IC0gMSksICdZWVlZLU1NLWRkJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChyZXMpID8gcmVzIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBkYXRlLmdldEZ1bGxZZWFyKCkgKyAxXG4gICAgICAgICAgICAgICAgICAgICAgICBhcnIucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5BcnJheS5mcm9tKEFycmF5KDIwMCkua2V5cygpKS5tYXAoXyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LS1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlcyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKHN0YXJ0LCBtb250aFNlbnQgLSAxLCBkYXlTZW50IC0gMiksICdZWVlZLU1NLWRkJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChyZXMpID8gcmVzIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEFsbCh7UEVSU09OQUxfQklSVEhEQVk6IGFycn0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIud2FybmluZygn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINCy0YDQtdC80Y8g0YHQtdGA0LLQtdGA0LAnKVxuICAgICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgc2F2ZUFyclVzZXIodXNlcnM6IGlCWFJlc3RVc2VySHR0cFtdKSB7XG4gICAgICAgIGxldCByZXN1bHQ6IGlCWFJlc3RVc2VyIFtdID0gW11cbiAgICAgICAgZm9yIChjb25zdCB1c2VyIG9mIHVzZXJzKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLnVzZXJNYXAuSHR0cFRvQlgodXNlcikpXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlQXJyKHthcnI6IHJlc3VsdH0pKVxuXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICB9XG5cbiAgICBzZWFyY2gocGFyYW1zOiBzdHJpbmcgfCBVc2VyRmlsdGVyU2VhcmNoKTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlciBbXSB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAodHlwZW9mIHBhcmFtcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHtGSU5EOiBwYXJhbXN9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiBwYXJhbXMuQUNUSVZFICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHBhcmFtcy5BQ1RJVkUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUh0dHBBbnN3ZXJCWDxpQlhSZXN0VXNlckh0dHBbXT4+KHRoaXMudXJsLnNlYXJjaCwgcGFyYW1zLCAn0KHQtdGA0LLQtdGAINC90LUg0L7RgtCy0LXRh9Cw0LXRgiDQvdCwINC30LDQv9GA0L7RgSDQv9C+0LjRgdC60LAnKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFwUmVzdWx0ID0gdGhpcy5odHRwLm1hcFJlc3VsdCh2KVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1hcFJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNhdmVBcnJVc2VyKG1hcFJlc3VsdClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICB9XG5cbiAgICBmaWVsZHMoKTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlckh0dHBGaWVsZCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cEZpZWxkPj4odGhpcy51cmwuZmllbGRzKS5waXBlKFxuICAgICAgICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIHVwZGF0ZSh1c2VyOiBpQlhSZXN0VXNlciwgZmllbGRVcGRhdGU6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cFtdPiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBpZiAoZmllbGRVcGRhdGUgJiYgZmllbGRVcGRhdGUubGVuZ3RoKSB7XG4gICAgICAgICAgICBsZXQgc2VuZERhdGE6IGFueSA9IHtcbiAgICAgICAgICAgICAgICBJRDogdXNlci5JRCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHVzZXJCWCA9IHRoaXMudXNlck1hcC5CWHRvSHR0cCh1c2VyKVxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZFVwZGF0ZSkge1xuICAgICAgICAgICAgICAgIGlmICh1c2VyQlhbZmllbGRdKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbmREYXRhW2ZpZWxkXSA9IHVzZXJCWFtmaWVsZF1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCfQntC00L3QviDQuNC3INGD0LrQsNC30LDQvdC90YvRhSDQv9C+0LvQtdC5INC+0YLQv9GA0LDQstC70LXQvdC+INC90LUg0LLQtdGA0L3QvicpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMudXJsLnVwZGF0ZSwgc2VuZERhdGEsICfQndC1INGD0LTQsNC70L7RgdGMINC+0LHQvdC+0LLQuNGC0Ywg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINGBIElEJyArIHVzZXIuSUQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCfQndC1INGD0LrQsNC30LDQvdC+INC90Lgg0L7QtNC90L4g0L/QvtC70LUg0LTQu9GPINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPJylcbiAgICAgICAgICAgIHJldHVybiBvZih7fSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEVuZEFycmF5KHBhcmFtczogVXNlckZpbHRlciA9IHt9KTogT2JzZXJ2YWJsZTxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cFtdPiB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQocGFyYW1zKS5waXBlKFxuICAgICAgICAgICAgbWVyZ2VNYXAoaXRlbXMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zLm5leHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5zdGFydCA9IGl0ZW1zLm5leHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZEFycmF5KHBhcmFtcykucGlwZShtYXAodkVuZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0ICYmIHZFbmQucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBbLi4uaXRlbXMucmVzdWx0LCAuLi52RW5kLnJlc3VsdF19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoaXRlbXMpID8gaXRlbXMgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihpdGVtcylcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgfVxuXG4gICAgLy8gZ2V0VXJsQ29tcHJlc3NlZEltYWdlKHVybDogc3RyaW5nLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikge1xuICAgIC8vICAgICByZXR1cm4gdGhpcy5pbWcuZ2V0VXJsQ29tcHJlc3NlZCh1cmwsIHdpZHRoLCBoZWlnaHQpXG4gICAgLy8gfVxuXG4gICAgc2V0RGVmUGFyYW0ocGFyYW1zOiBpQlhHZXRQYXJhbSkge1xuICAgICAgICBpZiAoIXBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnQUNUSVZFJykpIHtcbiAgICAgICAgICAgIHBhcmFtcy5BQ1RJVkUgPSB0aGlzLmRlZi5wYXJhbXMuQUNUSVZFXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmFtcy5BQ1RJVkUgJiYgcGFyYW1zLkFDVElWRSA9PT0gMikge1xuICAgICAgICAgICAgZGVsZXRlIHBhcmFtcy5BQ1RJVkVcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnc3RhcnQnKSkge1xuICAgICAgICAgICAgcGFyYW1zLnN0YXJ0ID0gdGhpcy5kZWYucGFyYW1zLnN0YXJ0XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGFyYW1zLlVGX0RFUEFSVE1FTlQgJiYgIXBhcmFtcy5VRl9ERVBBUlRNRU5ULmxlbmd0aCkge1xuICAgICAgICAgICAgZGVsZXRlIHBhcmFtcy5VRl9ERVBBUlRNRU5UXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJbmZvQWJvdXRDdXN0b21GaWVsZHNCWCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8aUh0dHBBbnN3ZXJCWDxpQ3VzdG9tVXNlckZpZWxkSW5mb1tdPj4odGhpcy51cmwudXNlcmZpZWxkLmxpc3QpLnBpcGUoXG4gICAgICAgICAgICBtYXAodiA9PiB0aGlzLmh0dHAubWFwUmVzdWx0KHYpKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgaXRJc0FkbWluKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxpSHR0cEFuc3dlckJYPGJvb2xlYW4+Pih0aGlzLnVybC5hZG1pbikucGlwZShcbiAgICAgICAgICAgIG1hcCh2ID0+IHRoaXMuaHR0cC5tYXBSZXN1bHQodikpXG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tVXNlckZpZWxkSW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvQ3VzdG9tVXNlckZpZWxkSW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaUJYUmVzdFVzZXJLZXkgfSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXInXHJcbmltcG9ydCB7IGlCWFJlc3RZZXNObyB9IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Jhc2UvWWVzTm8nXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGlDdXN0b21Vc2VyRmllbGRJbmZvIHtcclxuICBJRDogc3RyaW5nLFxyXG4gIEVOVElUWV9JRDogXCJVU0VSXCIsXHJcbiAgRklFTERfTkFNRTogaUJYUmVzdFVzZXJLZXksXHJcbiAgVVNFUl9UWVBFX0lEOiBpQ3VzdG9tVXNlckZpZWxkSW5mb1R5cGUsXHJcbiAgWE1MX0lEOiBzdHJpbmcgfCBudWxsLFxyXG4gIFNPUlQ6IHN0cmluZyxcclxuICBNVUxUSVBMRTogaUJYUmVzdFllc05vLFxyXG4gIE1BTkRBVE9SWTogaUJYUmVzdFllc05vLFxyXG4gIFNIT1dfRklMVEVSOiAnRScgfCAnTicsIC8vID8/PyDRjdGC0L4g0YfRgtC+INCy0L7QvtCx0YnQtT9cclxuICBTSE9XX0lOX0xJU1Q6IGlCWFJlc3RZZXNObyxcclxuICBFRElUX0lOX0xJU1Q6IGlCWFJlc3RZZXNObyxcclxuICBJU19TRUFSQ0hBQkxFOiBpQlhSZXN0WWVzTm8sXHJcbiAgU0VUVElOR1M6XHJcbiAgICBpQ3VzdG9tVXNlckZpZWxkSW5mb1NFVFRJTkdTVHlwZVN0cmluZ1xyXG4gICAgfCBpQ3VzdG9tVXNlckZpZWxkSW5mb1NFVFRJTkdTVHlwZUZpbGVcclxuICAgIHwgaUN1c3RvbVVzZXJGaWVsZEluZm9TRVRUSU5HU1R5cGVFbnVtZXJhdGlvblxyXG4gICAgfCBpQ3VzdG9tVXNlckZpZWxkSW5mb1NFVFRJTkdTVHlwZURhdGV0aW1lXHJcbiAgTElTVD86IGlDdXN0b21Vc2VyRmllbGRJbmZvU0VUVElOR1NUeXBlRW51bWVyYXRpb25MSVNUW10sXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgaUN1c3RvbVVzZXJGaWVsZEluZm9TRVRUSU5HU1R5cGVTdHJpbmcge1xyXG4gIFNJWkU6IG51bWJlcixcclxuICBST1dTOiBudW1iZXIsXHJcbiAgUkVHRVhQOiBzdHJpbmcgfCBudWxsLFxyXG4gIE1JTl9MRU5HVEg6IG51bWJlcixcclxuICBNQVhfTEVOR1RIOiBudW1iZXIsXHJcbiAgREVGQVVMVF9WQUxVRTogc3RyaW5nIHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGlDdXN0b21Vc2VyRmllbGRJbmZvU0VUVElOR1NUeXBlRmlsZSB7XHJcbiAgU0laRTogbnVtYmVyLFxyXG4gIExJU1RfV0lEVEg6IG51bWJlcixcclxuICBMSVNUX0hFSUdIVDogbnVtYmVyLFxyXG4gIE1BWF9TSE9XX1NJWkU6IG51bWJlcixcclxuICBNQVhfQUxMT1dFRF9TSVpFOiBudW1iZXIsXHJcbiAgRVhURU5TSU9OUzogYW55W10sIC8vIFRPRE86INCf0L7Qt9C20LUg0L7Qv9C40YHQsNGC0YxcclxuICBUQVJHRVRfQkxBTks6IGlCWFJlc3RZZXNOb1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGlDdXN0b21Vc2VyRmllbGRJbmZvU0VUVElOR1NUeXBlRW51bWVyYXRpb24ge1xyXG4gIERJU1BMQVk6ICdVSScgfCAnRElBTE9HJyxcclxuICBMSVNUX0hFSUdIVDogbnVtYmVyLFxyXG4gIENBUFRJT05fTk9fVkFMVUU6IHN0cmluZyxcclxuICBTSE9XX05PX1ZBTFVFOiBpQlhSZXN0WWVzTm9cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBpQ3VzdG9tVXNlckZpZWxkSW5mb1NFVFRJTkdTVHlwZUVudW1lcmF0aW9uTElTVHtcclxuICBJRDogc3RyaW5nLFxyXG4gIFNPUlQ6IHN0cmluZyxcclxuICBWQUxVRTogc3RyaW5nLFxyXG4gIERFRjogaUJYUmVzdFllc05vXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgaUN1c3RvbVVzZXJGaWVsZEluZm9TRVRUSU5HU1R5cGVEYXRldGltZSB7XHJcbiAgREVGQVVMVF9WQUxVRToge1xyXG4gICAgVFlQRTogJ05PTkUnLFxyXG4gICAgVkFMVUU6IHN0cmluZ1xyXG4gIH0sXHJcbiAgXCJVU0VfU0VDT05EXCI6IGlCWFJlc3RZZXNObyxcclxuICBcIlVTRV9USU1FWk9ORVwiOiBpQlhSZXN0WWVzTm9cclxufVxyXG5cclxuXHJcbmV4cG9ydCB0eXBlIGlDdXN0b21Vc2VyRmllbGRJbmZvVHlwZSA9ICdzdHJpbmcnIHwgJ2ZpbGUnIHwgJ2VudW1lcmF0aW9uJyB8ICdkYXRldGltZSdcclxuXHJcblxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlckZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvdXNlckZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaUJYUmVzdFllc05vIH0gZnJvbSAnLi4vYmFzZS9ZZXNObydcbmltcG9ydCB7IGlCWFJlc3RCYXNlUGFyYW0gfSBmcm9tICcuLi9zdXBwb3J0L3BhcmFtJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJGaWx0ZXIgZXh0ZW5kcyBpQlhSZXN0QmFzZVBhcmFte1xuICAgIElEPzogbnVtYmVyW10gfCBudW1iZXIsIC8vINC/0L4gSURcbiAgICBQRVJTT05BTF9CSVJUSERBWT86IHN0cmluZyB8IHN0cmluZ1tdXG4gICAgb3JkZXI/OiAnQVNDJyB8ICdERVNDJywgLy8g0YHQvtGA0YLQuNGA0L7QstC60LBcbiAgICBVRl9ERVBBUlRNRU5UPzogbnVtYmVyW10sICAvLyDQv9GA0LjQvdCw0LTQu9C10LbQvdC+0YHRgtGMINC6INGB0YLRgNGD0LrRgtGD0YDQtSDQutC+0LzQv9Cw0L3QuNC4XG4gICAgVUZfUEhPTkVfSU5ORVI/OiBzdHJpbmcsIC8vINCy0L3Rg9GC0YDQtdC90L3QuNC5INGC0LXQu9C10YTQvtC90L3Ri9C5INC90L7QvNC10YBcbiAgICBJU19PTkxJTkU/OiBpQlhSZXN0WWVzTm8sICAvLyDQv9C+0LfQstC+0LvRj9C10YIg0L/QvtC60LDQt9Cw0YLRjCDRgtC+0LvRjNC60L4g0LDQstGC0L7RgNC40LfQvtCy0LDQvdC90YvRhSDQuNC70Lgg0L3QtdGCINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5XG4gICAgTkFNRV9TRUFSQ0g/OiBzdHJpbmcsIC8vINCx0YvRgdGC0YDRi9C5INC/0L7QuNGB0Log0L/QviDQv9C10YDRgdC+0L3QsNC70YzQvdGL0Lwg0LTQsNC90L3Ri9C8XG4gICAgVVNFUl9UWVBFPzogJ2VtcGxveWVlJyB8ICdleHRyYW5ldCcgfCAnZW1haWwnLCAvLyDQotC40L8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLiDQnNC+0LbQtdGCINC/0YDQuNC90LjQvNCw0YLRjCDRgdC70LXQtNGD0Y7RidC40LUg0LfQvdCw0YfQtdC90LjRjzpcbiAgICAvLyBlbXBsb3llZSAtINGB0L7RgtGA0YPQtNC90LjQuixcbiAgICAvLyBleHRyYW5ldCAtINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRjdC60YHRgtGA0LDQvdC10YLQsCxcbiAgICAvLyBlbWFpbCAtINC/0L7Rh9GC0L7QstGL0Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMXG4gICAgQUNUSVZFPzogMiB8IDEgfCAwIC8vINC/0YDQuCDQt9C90LDRh9C10L3QuNC4IDEg0LjRgdC60LvRjtGH0LDQtdGCINC40Lcg0LfQsNC/0YDQvtGB0LAg0YPQstC+0LvQtdC90L3Ri9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LiAyIC0g0LXRgdC70Lgg0L3Rg9C20L3RiyDQuCDRgtC1INC4INGC0LVcbn1cbiJdfQ==
|
package/request/user/user.d.ts
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { iBXGetParam } from '../../typification/rest/user/get';
|
|
3
|
-
import HttpBXServices from '../../services/http/HttpBX';
|
|
4
|
-
import UserFilterSearch from '../../typification/rest/user/UserFilterSearch';
|
|
5
|
-
import { Store } from '@ngrx/store';
|
|
6
|
-
import { storeUsers } from '../../store/users';
|
|
7
|
-
import { iCustomUserFieldInfo } from '../../typification/rest/user/CustomUserFieldInfo';
|
|
8
|
-
import { DatePipe } from '@angular/common';
|
|
9
|
-
import { BitrixApiUserMapServices } from '../../services/map/rest/user';
|
|
10
|
-
import SnackBarService from '../../services/snack-bar/snack-bar.service';
|
|
11
|
-
import iHttpAnswerBX from '../../typification/rest/base/httpAnswerBX';
|
|
12
|
-
import { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../../typification/rest/user/user';
|
|
13
|
-
import { UserFilter } from '../../typification/rest/user/userFilter';
|
|
14
|
-
import * as i0 from "@angular/core";
|
|
15
|
-
export declare class BXRestUser {
|
|
16
|
-
private http;
|
|
17
|
-
private snackBar;
|
|
18
|
-
private store;
|
|
19
|
-
private userMap;
|
|
20
|
-
private datePipe;
|
|
21
|
-
url: {
|
|
22
|
-
admin: string[];
|
|
23
|
-
get: string[];
|
|
24
|
-
self: string[];
|
|
25
|
-
update: string[];
|
|
26
|
-
search: string[];
|
|
27
|
-
access: string[];
|
|
28
|
-
fields: string[];
|
|
29
|
-
userfield: {
|
|
30
|
-
list: string[];
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
def: {
|
|
34
|
-
params: {
|
|
35
|
-
ACTIVE: 1;
|
|
36
|
-
start: 0;
|
|
37
|
-
};
|
|
38
|
-
};
|
|
39
|
-
user$: Observable<storeUsers>;
|
|
40
|
-
constructor(http: HttpBXServices, snackBar: SnackBarService, store: Store<{
|
|
41
|
-
users: storeUsers;
|
|
42
|
-
}>, userMap: BitrixApiUserMapServices, datePipe: DatePipe);
|
|
43
|
-
get(params?: iBXGetParam): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>;
|
|
44
|
-
getOnePage(page?: number): Observable<iBXRestUser[] | undefined>;
|
|
45
|
-
getByID(id: number, reload?: boolean): Observable<iBXRestUser | undefined>;
|
|
46
|
-
getByIDs(ids: number[], reload?: boolean): Observable<iBXRestUser[] | undefined>;
|
|
47
|
-
getSelf(update?: boolean): Observable<iBXRestUser | undefined>;
|
|
48
|
-
getSelfHttp(): Observable<iBXRestUser | undefined>;
|
|
49
|
-
access(access: string[], textError?: string): Observable<boolean | undefined>;
|
|
50
|
-
getByDepartment(id: number[] | number): Observable<iBXRestUser[] | undefined>;
|
|
51
|
-
getAll(params?: iBXGetParam): Observable<iBXRestUser[] | undefined>;
|
|
52
|
-
getAllByPersonalBirthday(day?: number | undefined, month?: number | undefined, checkWeekend?: boolean): Observable<iBXRestUser[] | undefined>;
|
|
53
|
-
saveArrUser(users: iBXRestUserHttp[]): iBXRestUser[];
|
|
54
|
-
search(params: string | UserFilterSearch): Observable<iBXRestUser[] | undefined>;
|
|
55
|
-
fields(): Observable<iBXRestUserHttpField | undefined>;
|
|
56
|
-
update(user: iBXRestUser, fieldUpdate: string[]): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>;
|
|
57
|
-
getEndArray(params?: UserFilter): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>;
|
|
58
|
-
setDefParam(params: iBXGetParam): void;
|
|
59
|
-
getInfoAboutCustomFieldsBX(): Observable<iCustomUserFieldInfo[] | undefined>;
|
|
60
|
-
itIsAdmin(): Observable<boolean | undefined>;
|
|
61
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<BXRestUser, never>;
|
|
62
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<BXRestUser>;
|
|
63
|
-
}
|