bx-rest 0.1.1 → 0.1.6
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 +11 -0
- package/esm2020/consts/part-name-metods.mjs +12 -1
- package/esm2020/map/lists.mjs +2 -2
- package/esm2020/map/task.mjs +10 -1
- package/esm2020/public-api.mjs +2 -2
- package/esm2020/request/bizproc/activity.mjs +23 -0
- package/esm2020/request/bizproc/event.mjs +19 -0
- package/esm2020/request/bizproc/robot.mjs +22 -0
- package/esm2020/request/bizproc/task.mjs +20 -0
- package/esm2020/request/bizproc/workflow/instance.mjs +19 -0
- package/esm2020/request/bizproc/workflow/template.mjs +27 -0
- package/esm2020/request/bizproc/workflow.mjs +31 -0
- package/esm2020/request/bizproc.mjs +25 -0
- package/esm2020/request/lists/element.mjs +4 -3
- package/esm2020/request/lists.mjs +2 -2
- package/esm2020/request/log/blogcomment.mjs +19 -0
- package/esm2020/request/log/blogpost.mjs +31 -0
- package/esm2020/request/log.mjs +19 -0
- package/esm2020/request/tasks/task.mjs +34 -1
- package/esm2020/request/user.mjs +9 -6
- package/esm2020/request-navvy/bizproc/workflow.mjs +22 -0
- package/esm2020/request-navvy/bizproc.mjs +60 -0
- package/esm2020/request-navvy/disk/storage.mjs +7 -10
- package/esm2020/request-navvy/lists/element.mjs +6 -3
- package/esm2020/request-navvy/lists.mjs +2 -10
- package/esm2020/request-navvy/log/blogcomment.mjs +19 -0
- package/esm2020/request-navvy/log/blogpost.mjs +33 -0
- package/esm2020/request-navvy/log.mjs +19 -0
- package/esm2020/request-navvy/tasks/task.mjs +67 -19
- package/esm2020/request-navvy/user.mjs +7 -8
- package/esm2020/rest.mjs +25 -17
- package/esm2020/services/base.mjs +3 -3
- package/esm2020/services/http/HttpBX.mjs +34 -36
- package/esm2020/services/http/http.mjs +36 -38
- package/esm2020/services/http/sessionKey.mjs +126 -113
- package/esm2020/services/vanilla/sessionStorage.mjs +7 -7
- package/esm2020/settings.mjs +2 -2
- package/esm2020/typification/auth/save.mjs +1 -1
- package/esm2020/typification/rest/base/OrderOptions.mjs +2 -0
- package/esm2020/typification/rest/base/sort.mjs +2 -0
- package/esm2020/typification/rest/bizproc/base/filedEnum.mjs +2 -0
- package/esm2020/typification/rest/bizproc/workflow/start.mjs +2 -0
- package/esm2020/typification/rest/bizproc/workflow/template/list.mjs +2 -0
- package/esm2020/typification/rest/lists/element/add.mjs +2 -0
- package/esm2020/typification/rest/log/blogpost/add.mjs +2 -0
- package/esm2020/typification/rest/task/base/fieldsName.mjs +2 -0
- package/esm2020/typification/rest/tasks/task/add.mjs +2 -0
- package/esm2020/typification/rest/tasks/task/get.mjs +2 -0
- package/esm2020/typification/rest/tasks/task/list.mjs +2 -0
- package/esm2020/typification/rest/user/get.mjs +1 -1
- package/fesm2015/bx-rest.mjs +913 -490
- package/fesm2015/bx-rest.mjs.map +1 -1
- package/fesm2020/bx-rest.mjs +916 -488
- package/fesm2020/bx-rest.mjs.map +1 -1
- package/map/lists.d.ts +1 -1
- package/map/task.d.ts +4 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/request/bizproc/activity.d.ts +12 -0
- package/request/bizproc/event.d.ts +8 -0
- package/request/bizproc/robot.d.ts +11 -0
- package/request/bizproc/task.d.ts +9 -0
- package/request/bizproc/workflow/instance.d.ts +8 -0
- package/request/bizproc/workflow/template.d.ts +16 -0
- package/request/bizproc/workflow.d.ts +20 -0
- package/request/bizproc.d.ts +16 -0
- package/request/lists/element.d.ts +2 -1
- package/request/lists.d.ts +1 -1
- package/request/log/blogcomment.d.ts +8 -0
- package/request/log/blogpost.d.ts +17 -0
- package/request/log.d.ts +10 -0
- package/request/tasks/task.d.ts +9 -1
- package/request-navvy/bizproc/workflow.d.ts +12 -0
- package/request-navvy/bizproc.d.ts +24 -0
- package/request-navvy/disk/storage.d.ts +1 -3
- package/request-navvy/lists/element.d.ts +3 -1
- package/request-navvy/lists.d.ts +1 -8
- package/request-navvy/log/blogcomment.d.ts +8 -0
- package/request-navvy/log/blogpost.d.ts +19 -0
- package/request-navvy/log.d.ts +10 -0
- package/request-navvy/tasks/task.d.ts +13 -3
- package/request-navvy/user.d.ts +1 -3
- package/rest.d.ts +17 -9
- package/services/http/sessionKey.d.ts +3 -23
- package/services/vanilla/sessionStorage.d.ts +5 -5
- package/settings.d.ts +1 -1
- package/typification/auth/save.d.ts +1 -1
- package/typification/rest/base/OrderOptions.d.ts +1 -0
- package/typification/rest/base/sort.d.ts +1 -0
- package/typification/rest/bizproc/base/filedEnum.d.ts +1 -0
- package/typification/rest/bizproc/workflow/start.d.ts +5 -0
- package/typification/rest/bizproc/workflow/template/list.d.ts +8 -0
- package/typification/rest/lists/element/add.d.ts +9 -0
- package/typification/rest/log/blogpost/add.d.ts +12 -0
- package/typification/rest/task/base/fieldsName.d.ts +1 -0
- package/typification/rest/{task/fieldsForSend.d.ts → tasks/task/add.d.ts} +1 -1
- package/typification/rest/tasks/task/get.d.ts +5 -0
- package/typification/rest/tasks/task/list.d.ts +65 -0
- package/typification/rest/user/get.d.ts +6 -1
- package/esm2020/store/auth.mjs +0 -26
- package/esm2020/typification/rest/task/fieldsForSend.mjs +0 -2
- package/store/auth.d.ts +0 -20
|
@@ -1,31 +1,37 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import SnackBarService from '../../services/snack-bar/snack-bar.service';
|
|
3
3
|
import { map } from 'rxjs/operators';
|
|
4
|
+
import { tap } from 'rxjs';
|
|
5
|
+
import { SessionStorage } from '../../services/vanilla/sessionStorage';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
5
7
|
import * as i1 from "../../request/tasks/task";
|
|
6
8
|
import * as i2 from "../../map/task";
|
|
9
|
+
import * as i3 from "../../services/navvy";
|
|
7
10
|
// export interface TimeProcess {
|
|
8
11
|
// total: number,
|
|
9
12
|
// next: number
|
|
10
13
|
// }
|
|
11
14
|
export class BXRestNavvyTasksTask {
|
|
12
|
-
// pageSize = 50
|
|
13
|
-
// nowLoad$ = new ReplaySubject<TimeProcess>(1)
|
|
14
|
-
// def: { select: iBXRestTaskFieldsName[] } = {
|
|
15
|
-
// select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',
|
|
16
|
-
// 'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',
|
|
17
|
-
// 'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',
|
|
18
|
-
// 'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',
|
|
19
|
-
// 'TAGS', 'ALLOW_TIME_TRACKING'
|
|
20
|
-
// ]
|
|
21
|
-
// }
|
|
22
15
|
// storeTask$: Observable<iStoreTask>
|
|
23
|
-
constructor(
|
|
16
|
+
constructor(BXRestTasksTask, snackBar,
|
|
24
17
|
// private store: Store<{ tasks: IStoreTask }>,
|
|
25
|
-
taskMap
|
|
26
|
-
|
|
18
|
+
taskMap,
|
|
19
|
+
// private taskResultMap: BitrixApiTaskResultMapServices
|
|
20
|
+
Navvy) {
|
|
21
|
+
this.BXRestTasksTask = BXRestTasksTask;
|
|
27
22
|
this.snackBar = snackBar;
|
|
28
23
|
this.taskMap = taskMap;
|
|
24
|
+
this.Navvy = Navvy;
|
|
25
|
+
// pageSize = 50
|
|
26
|
+
// nowLoad$ = new ReplaySubject<TimeProcess>(1)
|
|
27
|
+
this.def = {
|
|
28
|
+
select: ['ID', 'PARENT_ID', 'TITLE', 'DESCRIPTION', 'MARK', 'PRIORITY', 'STATUS', 'MULTITASK',
|
|
29
|
+
'GROUP_ID', 'STAGE_ID', 'CREATED_BY', 'CREATED_DATE', 'RESPONSIBLE_ID', 'ACCOMPLICES', 'AUDITORS',
|
|
30
|
+
'CHANGED_BY', 'CHANGED_DATE', 'STATUS_CHANGED_DATE', 'CLOSED_BY', 'CLOSED_DATE', 'DATE_START', 'VIEWED_DATE',
|
|
31
|
+
'DEADLINE', 'START_DATE_PLAN', 'END_DATE_PLAN', 'FORKED_BY_TEMPLATE_ID', 'TIME_ESTIMATE', 'TIME_SPENT_IN_LOGS',
|
|
32
|
+
'TAGS', 'ALLOW_TIME_TRACKING'
|
|
33
|
+
]
|
|
34
|
+
};
|
|
29
35
|
// this.storeTask$ = this.store.select('tasks')
|
|
30
36
|
// this.nowLoad$.next({
|
|
31
37
|
// total: 0,
|
|
@@ -33,9 +39,9 @@ export class BXRestNavvyTasksTask {
|
|
|
33
39
|
// })
|
|
34
40
|
}
|
|
35
41
|
add(param) {
|
|
36
|
-
return this.
|
|
37
|
-
if (v && v.
|
|
38
|
-
return this.taskMap.
|
|
42
|
+
return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.add(param), 'Не удалось получить задачу').pipe(map(v => {
|
|
43
|
+
if (v && v.task) {
|
|
44
|
+
return this.taskMap.add(v.task);
|
|
39
45
|
}
|
|
40
46
|
return undefined;
|
|
41
47
|
}));
|
|
@@ -52,13 +58,55 @@ export class BXRestNavvyTasksTask {
|
|
|
52
58
|
// }
|
|
53
59
|
// ))
|
|
54
60
|
}
|
|
61
|
+
/*
|
|
62
|
+
update(taskId: number, updateFields: iBXRestTaskFieldsName[], task: iBXRestTask) {
|
|
63
|
+
let sendTask: Record<string, any> = {}
|
|
64
|
+
let taskTS: Record<string, any> = task
|
|
65
|
+
if (updateFields.length) {
|
|
66
|
+
for (let updateField of updateFields) {
|
|
67
|
+
if (taskTS[camelCase(updateField)]) {
|
|
68
|
+
sendTask[updateField] = taskTS[camelCase(updateField)]
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (Object.values(sendTask).length) {
|
|
72
|
+
return this.http.post(
|
|
73
|
+
this.url.update,
|
|
74
|
+
{taskId: taskId, fields: sendTask},
|
|
75
|
+
'error to update task')
|
|
76
|
+
} else {
|
|
77
|
+
this.snackBar.error('not valid send data task')
|
|
78
|
+
console.error('not valid send data task', sendTask, task)
|
|
79
|
+
return of(undefined)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
this.snackBar.warning('not have field for update')
|
|
84
|
+
return of(undefined)
|
|
85
|
+
}
|
|
86
|
+
*/
|
|
87
|
+
get(requestArray) {
|
|
88
|
+
if (!requestArray.select) {
|
|
89
|
+
requestArray.select = this.def.select;
|
|
90
|
+
}
|
|
91
|
+
return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.get(requestArray), 'Не удалось получить задачу').pipe(map(v => (v && v.task) ? v.task : undefined), map(v => (v) ? this.taskMap.get(v) : undefined));
|
|
92
|
+
}
|
|
93
|
+
list(param = {}) {
|
|
94
|
+
if (!param.select) {
|
|
95
|
+
param.select = this.def.select;
|
|
96
|
+
}
|
|
97
|
+
return this.Navvy.mapAndSnackBarError(this.BXRestTasksTask.list(param), 'Не удалось получить задачи').pipe(map(v => (v && v.tasks) ? v.tasks : undefined), map(v => (v) ? this.taskMap.list(v) : undefined), tap(v => {
|
|
98
|
+
if (v) {
|
|
99
|
+
SessionStorage.setItem(this.constructor.name + this.list.name, v);
|
|
100
|
+
}
|
|
101
|
+
}));
|
|
102
|
+
}
|
|
55
103
|
}
|
|
56
|
-
BXRestNavvyTasksTask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, deps: [{ token: i1.BXRestTasksTask }, { token: SnackBarService }, { token: i2.BXRestTaskMap }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
104
|
+
BXRestNavvyTasksTask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, deps: [{ token: i1.BXRestTasksTask }, { token: SnackBarService }, { token: i2.BXRestTaskMap }, { token: i3.Navvy }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
57
105
|
BXRestNavvyTasksTask.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, providedIn: 'root' });
|
|
58
106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, decorators: [{
|
|
59
107
|
type: Injectable,
|
|
60
108
|
args: [{
|
|
61
109
|
providedIn: 'root'
|
|
62
110
|
}]
|
|
63
|
-
}], ctorParameters: function () { return [{ type: i1.BXRestTasksTask }, { type: SnackBarService }, { type: i2.BXRestTaskMap }]; } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sZUFBZSxNQUFNLDRDQUE0QyxDQUFBO0FBRXhFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUlyQyxpQ0FBaUM7QUFDakMsbUJBQW1CO0FBQ25CLGlCQUFpQjtBQUNqQixJQUFJO0FBTUosTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixnQkFBZ0I7SUFDaEIsK0NBQStDO0lBRS9DLCtDQUErQztJQUMvQyxtR0FBbUc7SUFDbkcseUdBQXlHO0lBQ3pHLG9IQUFvSDtJQUNwSCxzSEFBc0g7SUFDdEgsb0NBQW9DO0lBQ3BDLE1BQU07SUFDTixJQUFJO0lBRUoscUNBQXFDO0lBRXJDLFlBQ1UsV0FBNEIsRUFDNUIsUUFBeUI7SUFDbEMsZ0RBQWdEO0lBQ3ZDLE9BQXNCO1FBSHRCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUV6QixZQUFPLEdBQVAsT0FBTyxDQUFlO1FBRy9CLGdEQUFnRDtRQUNoRCx3QkFBd0I7UUFDeEIsZUFBZTtRQUNmLGFBQWE7UUFDYixNQUFNO0lBQ1AsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFzQztRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtnQkFDbEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDdEQ7WUFDRCxPQUFPLFNBQVMsQ0FBQTtRQUNsQixDQUFDLENBQ0YsQ0FBQyxDQUFBO1FBQ0osbUZBQW1GO1FBQ25GLGVBQWU7UUFDZiw4Q0FBOEM7UUFDOUMsZ0NBQWdDO1FBQ2hDLGVBQWU7UUFDZixjQUFjO1FBQ2QsdUVBQXVFO1FBQ3ZFLGVBQWU7UUFDZixVQUFVO1FBQ1YseUJBQXlCO1FBQ3pCLFFBQVE7UUFDUixPQUFPO0lBQ1QsQ0FBQzs7aUhBbkRVLG9CQUFvQixpREFmMUIsZUFBZTtxSEFlVCxvQkFBb0IsY0FGbkIsTUFBTTsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CO3dGQWRNLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCBTbmFja0JhclNlcnZpY2UgZnJvbSAnLi4vLi4vc2VydmljZXMvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJ1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0FkZCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZmllbGRzRm9yU2VuZCdcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJYUmVzdFRhc2tNYXAgfSBmcm9tICcuLi8uLi9tYXAvdGFzaydcbmltcG9ydCB7IEJYUmVzdFRhc2tzVGFzayB9IGZyb20gJy4uLy4uL3JlcXVlc3QvdGFza3MvdGFzaydcblxuLy8gZXhwb3J0IGludGVyZmFjZSBUaW1lUHJvY2VzcyB7XG4vLyAgIHRvdGFsOiBudW1iZXIsXG4vLyAgIG5leHQ6IG51bWJlclxuLy8gfVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGFza3NUYXNrIHtcblxuICAvLyBwYWdlU2l6ZSA9IDUwXG4gIC8vIG5vd0xvYWQkID0gbmV3IFJlcGxheVN1YmplY3Q8VGltZVByb2Nlc3M+KDEpXG5cbiAgLy8gZGVmOiB7IHNlbGVjdDogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10gfSA9IHtcbiAgLy8gICBzZWxlY3Q6IFsnSUQnLCAnUEFSRU5UX0lEJywgJ1RJVExFJywgJ0RFU0NSSVBUSU9OJywgJ01BUksnLCAnUFJJT1JJVFknLCAnU1RBVFVTJywgJ01VTFRJVEFTSycsXG4gIC8vICAgICAnR1JPVVBfSUQnLCAnU1RBR0VfSUQnLCAnQ1JFQVRFRF9CWScsICdDUkVBVEVEX0RBVEUnLCAnUkVTUE9OU0lCTEVfSUQnLCAnQUNDT01QTElDRVMnLCAnQVVESVRPUlMnLFxuICAvLyAgICAgJ0NIQU5HRURfQlknLCAnQ0hBTkdFRF9EQVRFJywgJ1NUQVRVU19DSEFOR0VEX0RBVEUnLCAnQ0xPU0VEX0JZJywgJ0NMT1NFRF9EQVRFJywgJ0RBVEVfU1RBUlQnLCAnVklFV0VEX0RBVEUnLFxuICAvLyAgICAgJ0RFQURMSU5FJywgJ1NUQVJUX0RBVEVfUExBTicsICdFTkRfREFURV9QTEFOJywgJ0ZPUktFRF9CWV9URU1QTEFURV9JRCcsICdUSU1FX0VTVElNQVRFJywgJ1RJTUVfU1BFTlRfSU5fTE9HUycsXG4gIC8vICAgICAnVEFHUycsICdBTExPV19USU1FX1RSQUNLSU5HJ1xuICAvLyAgIF1cbiAgLy8gfVxuXG4gIC8vIHN0b3JlVGFzayQ6IE9ic2VydmFibGU8aVN0b3JlVGFzaz5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIEJYUmVzdFRhc2tzOiBCWFJlc3RUYXNrc1Rhc2ssXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgLy8gIHByaXZhdGUgc3RvcmU6IFN0b3JlPHsgdGFza3M6IElTdG9yZVRhc2sgfT4sXG4gICAgcHJpdmF0ZSB0YXNrTWFwOiBCWFJlc3RUYXNrTWFwLFxuICAgLy8gcHJpdmF0ZSB0YXNrUmVzdWx0TWFwOiBCaXRyaXhBcGlUYXNrUmVzdWx0TWFwU2VydmljZXNcbiAgKSB7XG4gICAvLyAgdGhpcy5zdG9yZVRhc2skID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3Rhc2tzJylcbiAgIC8vICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgLy8gICAgdG90YWw6IDAsXG4gICAvLyAgICBuZXh0OiAwXG4gICAvLyAgfSlcbiAgfVxuXG4gIGFkZChwYXJhbTogeyBmaWVsZHM6IGlCWFJlc3RQYXJhbVRhc2tBZGQgfSkge1xuICAgIHJldHVybiB0aGlzLkJYUmVzdFRhc2tzLmFkZChwYXJhbSkucGlwZShcbiAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC50YXNrKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50YXNrTWFwLlRhc2tCWEh0dHBUb1Rhc2tCWCh2LnJlc3VsdC50YXNrKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgICkpXG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogVGFza0JYSHR0cCB9Pih0aGlzLnVybC5hZGQsIHtmaWVsZHM6IHBhcmFtfSkucGlwZShcbiAgICAvLyAgIG1hcCh2ID0+IHtcbiAgICAvLyAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC50YXNrKSB7XG4gICAgLy8gICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICAvLyAgICAgICAgICAgdixcbiAgICAvLyAgICAgICAgICAge1xuICAgIC8vICAgICAgICAgICAgIHJlc3VsdDogdGhpcy50YXNrQlhNYXAuVGFza0JYSHR0cFRvVGFza0JYKHYucmVzdWx0LnRhc2spXG4gICAgLy8gICAgICAgICAgIH0pXG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAvLyAgICAgfVxuICAgIC8vICAgKSlcbiAgfVxuXG4gIC8qXG4gIHVwZGF0ZSh0YXNrSWQ6IG51bWJlciwgdXBkYXRlRmllbGRzOiBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSwgdGFzazogaUJYUmVzdFRhc2spIHtcbiAgICBsZXQgc2VuZFRhc2s6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxuICAgIGxldCB0YXNrVFM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB0YXNrXG4gICAgaWYgKHVwZGF0ZUZpZWxkcy5sZW5ndGgpIHtcbiAgICAgIGZvciAobGV0IHVwZGF0ZUZpZWxkIG9mIHVwZGF0ZUZpZWxkcykge1xuICAgICAgICBpZiAodGFza1RTW2NhbWVsQ2FzZSh1cGRhdGVGaWVsZCldKSB7XG4gICAgICAgICAgc2VuZFRhc2tbdXBkYXRlRmllbGRdID0gdGFza1RTW2NhbWVsQ2FzZSh1cGRhdGVGaWVsZCldXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChPYmplY3QudmFsdWVzKHNlbmRUYXNrKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxuICAgICAgICAgIHRoaXMudXJsLnVwZGF0ZSxcbiAgICAgICAgICB7dGFza0lkOiB0YXNrSWQsIGZpZWxkczogc2VuZFRhc2t9LFxuICAgICAgICAgICdlcnJvciB0byB1cGRhdGUgdGFzaycpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCdub3QgdmFsaWQgc2VuZCBkYXRhIHRhc2snKVxuICAgICAgICBjb25zb2xlLmVycm9yKCdub3QgdmFsaWQgc2VuZCBkYXRhIHRhc2snLCBzZW5kVGFzaywgdGFzaylcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNuYWNrQmFyLndhcm5pbmcoJ25vdCBoYXZlIGZpZWxkIGZvciB1cGRhdGUnKVxuICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gIH1cblxuICBnZXQocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0JYKTogT2JzZXJ2YWJsZTxUYXNrQlggfCB1bmRlZmluZWQ+IHtcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcbiAgICAgIHJlcXVlc3RBcnJheS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFuc3dlckFwaVRhc2tPbmVCWEh0dHA+KHRoaXMudXJsLmdldCwgcmVxdWVzdEFycmF5KS5waXBlKFxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2spID8gdi50YXNrIDogdW5kZWZpbmVkKSxcbiAgICAgIG1hcCh2ID0+ICh2KSA/IHRoaXMudGFza0JYTWFwLlRhc2tCWEh0dHBUb1Rhc2tCWCh2KSA6IHVuZGVmaW5lZClcbiAgICApXG4gIH1cblxuICBsaXN0KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSk6IE9ic2VydmFibGU8QW5zd2VyQXBpVGFza0JYIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFyZXF1ZXN0QXJyYXkuc2VsZWN0KSB7XG4gICAgICByZXF1ZXN0QXJyYXkuc2VsZWN0ID0gdGhpcy5kZWYuc2VsZWN0XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBbnN3ZXJBcGlUYXNrQlhIdHRwIHwgdW5kZWZpbmVkPih0aGlzLnVybC5saXN0LCByZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtYXAodiA9PiB7XG4gICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQgJiYgdi5yZXN1bHQudGFza3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhc2tzID0gdi5yZXN1bHQudGFza3MubWFwKGkgPT4gdGhpcy50YXNrQlhNYXAuVGFza0JYSHR0cFRvVGFza0JYKGkpKVxuICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChhZGRUb1Rhc2tMaXN0KHtkYXRhOiB0YXNrc30pKVxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICAgIHYsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICByZXN1bHQ6XG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRhc2tzOiB0YXNrc1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG5cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9XG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgbGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2tzKSA/IHYudGFza3MgOiBbXSlcbiAgICApXG4gIH1cblxuICBsaXN0QWxsKHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSwgY2FjaGUgPSBmYWxzZSk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcbiAgICAgIHJlcXVlc3RBcnJheS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICAgIGlmIChjYWNoZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBtZXJnZU1hcCh0YXNrcyA9PiB7XG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkcyA9ICh0eXBlb2YgcmVxdWVzdEFycmF5LmZpbHRlci5JRCA9PT0gJ251bWJlcicpID8gW3JlcXVlc3RBcnJheS5maWx0ZXIuSURdIDogcmVxdWVzdEFycmF5LmZpbHRlci5JRFxuICAgICAgICAgICAgICBsZXQgZmlsdGVyID0gdGFza3MuZGF0YS5odHRwLmxpc3QuZmlsdGVyKGkgPT4gKGkuaWQpID8gaWRzLmluY2x1ZGVzKGkuaWQpIDogZmFsc2UpXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbHRlcilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICB9XG5cbiAgZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlgpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdChyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0ICYmIHR5cGVvZiBpdGVtcy5yZXN1bHQudGFza3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgaXRlbXMkID0gb2YoaXRlbXMucmVzdWx0LnRhc2tzKVxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XG4gICAgICAgICAgICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgICAgICAgICAgICB0b3RhbDogKGl0ZW1zLnRvdGFsKSA/IGl0ZW1zLnRvdGFsIDogMCxcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJlcXVlc3RBcnJheS5zdGFydCA9IGl0ZW1zLm5leHRcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCh2RW5kID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodkVuZCAmJiBpdGVtcy5yZXN1bHQudGFza3MpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zLnJlc3VsdC50YXNrcykgPyBpdGVtcy5yZXN1bHQudGFza3MgOiBbXVxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ub3dMb2FkJC5uZXh0KHtcbiAgICAgICAgICAgIHRvdGFsOiAwLFxuICAgICAgICAgICAgbmV4dDogMFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRGaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxuICAgICAgbWVyZ2VNYXAodiA9PiB7XG4gICAgICAgIGlmICh2ICYmICF2LmRhdGEuZmllbGRzKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxuICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdi5yZXN1bHQuZmllbGRzfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcbiAgICAgICAgICByZXR1cm4gb2Yoe3Jlc3VsdDogY2xvbmU8aUdldEZpZWxkc0Rlc2NyaXB0aW9uPih2LmRhdGEuZmllbGRzKX0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGFueT4+KHRoaXMudXJsLnJlc3VsdC5kZWxldGVGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcbiAgfVxuXG4gIGFkZFJlc3VsdEZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8aVRhc2tSZXN1bHRIdHRwPj4odGhpcy51cmwucmVzdWx0LmFkZEZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gIH1cblxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxpVGFza1Jlc3VsdEh0dHBbXT4+KHRoaXMudXJsLnJlc3VsdC5saXN0LCB7dGFza0lkOiB0YXNrSWR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHYucmVzdWx0Lm1hcChpID0+IHRoaXMudGFza1Jlc3VsdE1hcC5pVGFza1Jlc3VsdEh0dHBUb2lUYXNrUmVzdWx0KGkpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pKVxuICB9XG5cbiAgZ2V0UGxhbm5lckxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8KHN0cmluZyB8IG51bWJlcilbXT4+KHRoaXMudXJsLnBsYW5uZXIuZ2V0bGlzdClcbiAgfVxuXG4gIGdldGFjY2VzcyhpZDogbnVtYmVyLCB1c2VyczogbnVtYmVyW10gPSBbXSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlHZXRBY2Nlc3NUYXNrPj4odGhpcy51cmwuZ2V0YWNjZXNzLCB7dGFza0lkOiBpZCwgdXNlcjogdXNlcnN9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHRoaXMuaHR0cC5tYXBSZXN1bHQodikpLFxuICAgICAgICBtYXAodiA9PiAodiAmJiB2LmFsbG93ZWRBY3Rpb25zKSA/IHYuYWxsb3dlZEFjdGlvbnMgOiB1bmRlZmluZWQpXG4gICAgICApXG4gIH1cbiAgICovXG59XG4iXX0=
|
|
111
|
+
}], ctorParameters: function () { return [{ type: i1.BXRestTasksTask }, { type: SnackBarService }, { type: i2.BXRestTaskMap }, { type: i3.Navvy }]; } });
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sZUFBZSxNQUFNLDRDQUE0QyxDQUFBO0FBQ3hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTs7Ozs7QUFFdEUsaUNBQWlDO0FBQ2pDLG1CQUFtQjtBQUNuQixpQkFBaUI7QUFDakIsSUFBSTtBQU1KLE1BQU0sT0FBTyxvQkFBb0I7SUFjL0IscUNBQXFDO0lBRXJDLFlBQ1UsZUFBZ0MsRUFDaEMsUUFBeUI7SUFDbEMsZ0RBQWdEO0lBQ3ZDLE9BQXNCO0lBQy9CLHdEQUF3RDtJQUMvQyxLQUFZO1FBTFosb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBRXpCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFFdEIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQXBCdEIsZ0JBQWdCO1FBQ2hCLCtDQUErQztRQUUvQyxRQUFHLEdBQXdDO1lBQ3pDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXO2dCQUMzRixVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFVBQVU7Z0JBQ2pHLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVB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Q0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7YUFDbEU7UUFDSCxDQUFDLENBQ0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQzs7aUhBMUdVLG9CQUFvQixpREFyQjFCLGVBQWU7cUhBcUJULG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7d0ZBcEJNLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCBTbmFja0JhclNlcnZpY2UgZnJvbSAnLi4vLi4vc2VydmljZXMvc25hY2stYmFyL3NuYWNrLWJhci5zZXJ2aWNlJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQlhSZXN0VGFza01hcCB9IGZyb20gJy4uLy4uL21hcC90YXNrJ1xuaW1wb3J0IHsgQlhSZXN0VGFza3NUYXNrIH0gZnJvbSAnLi4vLi4vcmVxdWVzdC90YXNrcy90YXNrJ1xuaW1wb3J0IHsgaUJYUmVzdFRhc2tGaWVsZHNOYW1lIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9iYXNlL2ZpZWxkc05hbWUnXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrQWRkIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9hZGQnXG5pbXBvcnQgaUJYUmVzdFBhcmFtVGFza0dldCBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2dldCdcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrc0xpc3QgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2xpc3QnXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdmFuaWxsYS9zZXNzaW9uU3RvcmFnZSdcblxuLy8gZXhwb3J0IGludGVyZmFjZSBUaW1lUHJvY2VzcyB7XG4vLyAgIHRvdGFsOiBudW1iZXIsXG4vLyAgIG5leHQ6IG51bWJlclxuLy8gfVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGFza3NUYXNrIHtcblxuICAvLyBwYWdlU2l6ZSA9IDUwXG4gIC8vIG5vd0xvYWQkID0gbmV3IFJlcGxheVN1YmplY3Q8VGltZVByb2Nlc3M+KDEpXG5cbiAgZGVmOiB7IHNlbGVjdDogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10gfSA9IHtcbiAgICBzZWxlY3Q6IFsnSUQnLCAnUEFSRU5UX0lEJywgJ1RJVExFJywgJ0RFU0NSSVBUSU9OJywgJ01BUksnLCAnUFJJT1JJVFknLCAnU1RBVFVTJywgJ01VTFRJVEFTSycsXG4gICAgICAnR1JPVVBfSUQnLCAnU1RBR0VfSUQnLCAnQ1JFQVRFRF9CWScsICdDUkVBVEVEX0RBVEUnLCAnUkVTUE9OU0lCTEVfSUQnLCAnQUNDT01QTElDRVMnLCAnQVVESVRPUlMnLFxuICAgICAgJ0NIQU5HRURfQlknLCAnQ0hBTkdFRF9EQVRFJywgJ1NUQVRVU19DSEFOR0VEX0RBVEUnLCAnQ0xPU0VEX0JZJywgJ0NMT1NFRF9EQVRFJywgJ0RBVEVfU1RBUlQnLCAnVklFV0VEX0RBVEUnLFxuICAgICAgJ0RFQURMSU5FJywgJ1NUQVJUX0RBVEVfUExBTicsICdFTkRfREFURV9QTEFOJywgJ0ZPUktFRF9CWV9URU1QTEFURV9JRCcsICdUSU1FX0VTVElNQVRFJywgJ1RJTUVfU1BFTlRfSU5fTE9HUycsXG4gICAgICAnVEFHUycsICdBTExPV19USU1FX1RSQUNLSU5HJ1xuICAgIF1cbiAgfVxuXG4gIC8vIHN0b3JlVGFzayQ6IE9ic2VydmFibGU8aVN0b3JlVGFzaz5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIEJYUmVzdFRhc2tzVGFzazogQlhSZXN0VGFza3NUYXNrLFxuICAgIHByaXZhdGUgc25hY2tCYXI6IFNuYWNrQmFyU2VydmljZSxcbiAgIC8vICBwcml2YXRlIHN0b3JlOiBTdG9yZTx7IHRhc2tzOiBJU3RvcmVUYXNrIH0+LFxuICAgIHByaXZhdGUgdGFza01hcDogQlhSZXN0VGFza01hcCxcbiAgIC8vIHByaXZhdGUgdGFza1Jlc3VsdE1hcDogQml0cml4QXBpVGFza1Jlc3VsdE1hcFNlcnZpY2VzXG4gICAgcHJpdmF0ZSBOYXZ2eTogTmF2dnksXG4gICkge1xuICAgLy8gIHRoaXMuc3RvcmVUYXNrJCA9IHRoaXMuc3RvcmUuc2VsZWN0KCd0YXNrcycpXG4gICAvLyAgdGhpcy5ub3dMb2FkJC5uZXh0KHtcbiAgIC8vICAgIHRvdGFsOiAwLFxuICAgLy8gICAgbmV4dDogMFxuICAgLy8gIH0pXG4gIH1cblxuICBhZGQocGFyYW06IHsgZmllbGRzOiBpQlhSZXN0UGFyYW1UYXNrQWRkIH0pIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKHRoaXMuQlhSZXN0VGFza3NUYXNrLmFkZChwYXJhbSksICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0LfQsNC00LDRh9GDJykucGlwZShcbiAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgaWYgKHYgJiYgdi50YXNrKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMudGFza01hcC5hZGQodi50YXNrKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgIH1cbiAgICApKVxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IHRhc2s6IFRhc2tCWEh0dHAgfT4odGhpcy51cmwuYWRkLCB7ZmllbGRzOiBwYXJhbX0pLnBpcGUoXG4gICAgLy8gICBtYXAodiA9PiB7XG4gICAgLy8gICAgICAgaWYgKHYgJiYgdi5yZXN1bHQgJiYgdi5yZXN1bHQudGFzaykge1xuICAgIC8vICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgLy8gICAgICAgICAgIHYsXG4gICAgLy8gICAgICAgICAgIHtcbiAgICAvLyAgICAgICAgICAgICByZXN1bHQ6IHRoaXMudGFza0JYTWFwLlRhc2tCWEh0dHBUb1Rhc2tCWCh2LnJlc3VsdC50YXNrKVxuICAgIC8vICAgICAgICAgICB9KVxuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgLy8gICAgIH1cbiAgICAvLyAgICkpXG4gIH1cblxuICAvKlxuICB1cGRhdGUodGFza0lkOiBudW1iZXIsIHVwZGF0ZUZpZWxkczogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10sIHRhc2s6IGlCWFJlc3RUYXNrKSB7XG4gICAgbGV0IHNlbmRUYXNrOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cbiAgICBsZXQgdGFza1RTOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGFza1xuICAgIGlmICh1cGRhdGVGaWVsZHMubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCB1cGRhdGVGaWVsZCBvZiB1cGRhdGVGaWVsZHMpIHtcbiAgICAgICAgaWYgKHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXSkge1xuICAgICAgICAgIHNlbmRUYXNrW3VwZGF0ZUZpZWxkXSA9IHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoT2JqZWN0LnZhbHVlcyhzZW5kVGFzaykubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgICB0aGlzLnVybC51cGRhdGUsXG4gICAgICAgICAge3Rhc2tJZDogdGFza0lkLCBmaWVsZHM6IHNlbmRUYXNrfSxcbiAgICAgICAgICAnZXJyb3IgdG8gdXBkYXRlIHRhc2snKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJylcbiAgICAgICAgY29uc29sZS5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJywgc2VuZFRhc2ssIHRhc2spXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zbmFja0Jhci53YXJuaW5nKCdub3QgaGF2ZSBmaWVsZCBmb3IgdXBkYXRlJylcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICB9XG4gICovXG5cbiAgZ2V0KHJlcXVlc3RBcnJheTogaUJYUmVzdFBhcmFtVGFza0dldCkge1xuICAgIGlmICghcmVxdWVzdEFycmF5LnNlbGVjdCkge1xuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKHRoaXMuQlhSZXN0VGFza3NUYXNrLmdldChyZXF1ZXN0QXJyYXkpLCAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINC30LDQtNCw0YfRgycpLnBpcGUoXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2spID8gdi50YXNrIDogdW5kZWZpbmVkKSxcbiAgICAgIG1hcCh2ID0+ICh2KSA/IHRoaXMudGFza01hcC5nZXQodikgOiB1bmRlZmluZWQpXG4gICAgKVxuICB9XG5cblxuICBsaXN0KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrc0xpc3QgPSB7fSkge1xuICAgIGlmICghcGFyYW0uc2VsZWN0KSB7XG4gICAgICBwYXJhbS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkubWFwQW5kU25hY2tCYXJFcnJvcih0aGlzLkJYUmVzdFRhc2tzVGFzay5saXN0KHBhcmFtKSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQt9Cw0LTQsNGH0LgnKS5waXBlKFxuICAgICAgbWFwKHYgPT4gKHYgJiYgdi50YXNrcykgPyB2LnRhc2tzIDogdW5kZWZpbmVkKSxcbiAgICAgIG1hcCh2ID0+ICh2KSA/IHRoaXMudGFza01hcC5saXN0KHYpIDogdW5kZWZpbmVkKSxcbiAgICAgIHRhcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgU2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyB0aGlzLmxpc3QubmFtZSwgdilcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApXG4gIH1cbiAgLypcbiAgbGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2tzKSA/IHYudGFza3MgOiBbXSlcbiAgICApXG4gIH1cblxuICBsaXN0QWxsKHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSwgY2FjaGUgPSBmYWxzZSk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcbiAgICAgIHJlcXVlc3RBcnJheS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICAgIGlmIChjYWNoZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBtZXJnZU1hcCh0YXNrcyA9PiB7XG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkcyA9ICh0eXBlb2YgcmVxdWVzdEFycmF5LmZpbHRlci5JRCA9PT0gJ251bWJlcicpID8gW3JlcXVlc3RBcnJheS5maWx0ZXIuSURdIDogcmVxdWVzdEFycmF5LmZpbHRlci5JRFxuICAgICAgICAgICAgICBsZXQgZmlsdGVyID0gdGFza3MuZGF0YS5odHRwLmxpc3QuZmlsdGVyKGkgPT4gKGkuaWQpID8gaWRzLmluY2x1ZGVzKGkuaWQpIDogZmFsc2UpXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbHRlcilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICB9XG5cbiAgZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlgpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdChyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0ICYmIHR5cGVvZiBpdGVtcy5yZXN1bHQudGFza3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgaXRlbXMkID0gb2YoaXRlbXMucmVzdWx0LnRhc2tzKVxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XG4gICAgICAgICAgICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgICAgICAgICAgICB0b3RhbDogKGl0ZW1zLnRvdGFsKSA/IGl0ZW1zLnRvdGFsIDogMCxcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJlcXVlc3RBcnJheS5zdGFydCA9IGl0ZW1zLm5leHRcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCh2RW5kID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodkVuZCAmJiBpdGVtcy5yZXN1bHQudGFza3MpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zLnJlc3VsdC50YXNrcykgPyBpdGVtcy5yZXN1bHQudGFza3MgOiBbXVxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ub3dMb2FkJC5uZXh0KHtcbiAgICAgICAgICAgIHRvdGFsOiAwLFxuICAgICAgICAgICAgbmV4dDogMFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRGaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxuICAgICAgbWVyZ2VNYXAodiA9PiB7XG4gICAgICAgIGlmICh2ICYmICF2LmRhdGEuZmllbGRzKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxuICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdi5yZXN1bHQuZmllbGRzfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcbiAgICAgICAgICByZXR1cm4gb2Yoe3Jlc3VsdDogY2xvbmU8aUdldEZpZWxkc0Rlc2NyaXB0aW9uPih2LmRhdGEuZmllbGRzKX0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGFueT4+KHRoaXMudXJsLnJlc3VsdC5kZWxldGVGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcbiAgfVxuXG4gIGFkZFJlc3VsdEZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8aVRhc2tSZXN1bHRIdHRwPj4odGhpcy51cmwucmVzdWx0LmFkZEZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gIH1cblxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxpVGFza1Jlc3VsdEh0dHBbXT4+KHRoaXMudXJsLnJlc3VsdC5saXN0LCB7dGFza0lkOiB0YXNrSWR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHYucmVzdWx0Lm1hcChpID0+IHRoaXMudGFza1Jlc3VsdE1hcC5pVGFza1Jlc3VsdEh0dHBUb2lUYXNrUmVzdWx0KGkpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pKVxuICB9XG5cbiAgZ2V0UGxhbm5lckxpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8KHN0cmluZyB8IG51bWJlcilbXT4+KHRoaXMudXJsLnBsYW5uZXIuZ2V0bGlzdClcbiAgfVxuXG4gIGdldGFjY2VzcyhpZDogbnVtYmVyLCB1c2VyczogbnVtYmVyW10gPSBbXSkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlHZXRBY2Nlc3NUYXNrPj4odGhpcy51cmwuZ2V0YWNjZXNzLCB7dGFza0lkOiBpZCwgdXNlcjogdXNlcnN9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHRoaXMuaHR0cC5tYXBSZXN1bHQodikpLFxuICAgICAgICBtYXAodiA9PiAodiAmJiB2LmFsbG93ZWRBY3Rpb25zKSA/IHYuYWxsb3dlZEFjdGlvbnMgOiB1bmRlZmluZWQpXG4gICAgICApXG4gIH1cbiAgICovXG59XG4iXX0=
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { of, tap } from 'rxjs';
|
|
2
2
|
import { map } from 'rxjs/operators';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
|
+
import { SessionStorage } from '../services/vanilla/sessionStorage';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "../request/user";
|
|
6
7
|
import * as i2 from "../map/user";
|
|
7
8
|
import * as i3 from "../services/navvy";
|
|
8
|
-
import * as i4 from "../services/vanilla/sessionStorage";
|
|
9
9
|
export class BXRestNavvyUser {
|
|
10
|
-
constructor(BXRestUser, BXRestUserMap, Navvy
|
|
10
|
+
constructor(BXRestUser, BXRestUserMap, Navvy) {
|
|
11
11
|
this.BXRestUser = BXRestUser;
|
|
12
12
|
this.BXRestUserMap = BXRestUserMap;
|
|
13
13
|
this.Navvy = Navvy;
|
|
14
|
-
this.SessionStorage = SessionStorage;
|
|
15
14
|
}
|
|
16
15
|
get(params = {}) {
|
|
17
16
|
return this.Navvy.mapAndSnackBarError(this.BXRestUser.get(params), 'Не удалось получить пользователей');
|
|
@@ -21,7 +20,7 @@ export class BXRestNavvyUser {
|
|
|
21
20
|
return this.self();
|
|
22
21
|
}
|
|
23
22
|
else {
|
|
24
|
-
let self =
|
|
23
|
+
let self = SessionStorage.getItem(this.constructor.name + this.self.name);
|
|
25
24
|
if (self) {
|
|
26
25
|
return of(self);
|
|
27
26
|
}
|
|
@@ -40,7 +39,7 @@ export class BXRestNavvyUser {
|
|
|
40
39
|
return undefined;
|
|
41
40
|
}), tap(v => {
|
|
42
41
|
if (v) {
|
|
43
|
-
|
|
42
|
+
SessionStorage.setItem(this.constructor.name + this.self.name, v);
|
|
44
43
|
}
|
|
45
44
|
}));
|
|
46
45
|
}
|
|
@@ -54,12 +53,12 @@ export class BXRestNavvyUser {
|
|
|
54
53
|
return this.Navvy.mapAndSnackBarError(this.BXRestUser.fields(), 'Не удалось поля');
|
|
55
54
|
}
|
|
56
55
|
}
|
|
57
|
-
BXRestNavvyUser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, deps: [{ token: i1.BXRestUser }, { token: i2.BXRestUserMap }, { token: i3.Navvy }
|
|
56
|
+
BXRestNavvyUser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, deps: [{ token: i1.BXRestUser }, { token: i2.BXRestUserMap }, { token: i3.Navvy }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
58
57
|
BXRestNavvyUser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, providedIn: 'root' });
|
|
59
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, decorators: [{
|
|
60
59
|
type: Injectable,
|
|
61
60
|
args: [{
|
|
62
61
|
providedIn: 'root'
|
|
63
62
|
}]
|
|
64
|
-
}], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: i2.BXRestUserMap }, { type: i3.Navvy }
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: i2.BXRestUserMap }, { type: i3.Navvy }]; } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQU8xQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBTXBFLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsVUFBc0IsRUFDdEIsYUFBNEIsRUFDNUIsS0FBWTtRQUZaLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBTztJQUV0QixDQUFDO0lBRUQsR0FBRyxDQUFDLFNBQThCLEVBQUU7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLG1DQUFtQyxDQUFDLENBQUE7SUFDekcsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUNwQixJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1NBQ25CO2FBQU07WUFDTCxJQUFJLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFnQixDQUFBO1lBQ3hGLElBQUcsSUFBSSxFQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFBO2FBQ2hCO1lBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7U0FDbkI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQWlCLEVBQUUsV0FBcUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLEVBQ3pDLHVDQUF1QyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQ2xELENBQUE7SUFDSCxDQUFDO0lBRU8sSUFBSTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLGtDQUFrQyxDQUFDO2FBQ2pHLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsRUFBRTtnQkFDTCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ3JDO1lBQ0QsT0FBTyxTQUFTLENBQUE7UUFDbEIsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNuRTtRQUNILENBQUMsQ0FBQyxDQUNILENBQUE7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQWlDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxxQ0FBcUMsQ0FBQyxDQUFBO0lBQzlHLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUE7SUFDcEcsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFBO0lBQ3BGLENBQUM7OzRHQTNEVSxlQUFlO2dIQUFmLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2YsIHRhcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQlhSZXN0VXNlciB9IGZyb20gJy4uL3JlcXVlc3QvdXNlcidcbmltcG9ydCB7IEJYUmVzdFVzZXJNYXAgfSBmcm9tICcuLi9tYXAvdXNlcidcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJHZXQgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL2dldCdcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vc2VydmljZXMvbmF2dnknXG5pbXBvcnQgeyBpQlhSZXN0VXNlciB9IGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvdXNlcidcbmltcG9ydCBVc2VyRmlsdGVyU2VhcmNoIGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIvVXNlckZpbHRlclNlYXJjaCdcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlIH0gZnJvbSAnLi4vc2VydmljZXMvdmFuaWxsYS9zZXNzaW9uU3RvcmFnZSc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlVc2VyIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIEJYUmVzdFVzZXI6IEJYUmVzdFVzZXIsXG4gICAgcHJpdmF0ZSBCWFJlc3RVc2VyTWFwOiBCWFJlc3RVc2VyTWFwLFxuICAgIHByaXZhdGUgTmF2dnk6IE5hdnZ5LFxuICApIHtcbiAgfVxuXG4gIGdldChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJHZXQgPSB7fSkge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5Lm1hcEFuZFNuYWNrQmFyRXJyb3IodGhpcy5CWFJlc3RVc2VyLmdldChwYXJhbXMpLCAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JylcbiAgfVxuXG4gIGN1cnJlbnQodXBkYXRlID0gZmFsc2UpIHtcbiAgICBpZiAodXBkYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZWxmKClcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHNlbGYgPSBTZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuY29uc3RydWN0b3IubmFtZSArIHRoaXMuc2VsZi5uYW1lKSBhcyBpQlhSZXN0VXNlclxuICAgICAgaWYoc2VsZil7XG4gICAgICAgIHJldHVybiBvZihzZWxmKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuc2VsZigpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKHVzZXI6IGlCWFJlc3RVc2VyLCBmaWVsZFVwZGF0ZTogc3RyaW5nW10pIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKFxuICAgICAgdGhpcy5CWFJlc3RVc2VyLnVwZGF0ZSh1c2VyLCBmaWVsZFVwZGF0ZSksXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQvtCx0L3QvtCy0LjRgtGMINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDRgSBJRCcgKyB1c2VyLklEXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxmKCkge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5Lm1hcEFuZFNuYWNrQmFyRXJyb3IodGhpcy5CWFJlc3RVc2VyLmN1cnJlbnQoKSwgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0VXNlck1hcC5jdXJyZW50KHYpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgU2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyB0aGlzLnNlbGYubmFtZSwgdik7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgfVxuXG4gIHNlYXJjaChwYXJhbXM6IHN0cmluZyB8IFVzZXJGaWx0ZXJTZWFyY2gpIHtcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5tYXBBbmRTbmFja0JhckVycm9yKHRoaXMuQlhSZXN0VXNlci5zZWFyY2gocGFyYW1zKSwgJ9Ch0LXRgNCy0LXRgCDQvdC1INC+0YLQstC10YfQsNC10YIg0L3QsCDQt9Cw0L/RgNC+0YEg0L/QvtC40YHQutCwJylcbiAgfVxuXG4gIGFjY2VzcyhhY2Nlc3M6IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkubWFwQW5kU25hY2tCYXJFcnJvcih0aGlzLkJYUmVzdFVzZXIuYWNjZXNzKGFjY2VzcyksICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/RgNCw0LLQsCcpXG4gIH1cblxuICBmaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkubWFwQW5kU25hY2tCYXJFcnJvcih0aGlzLkJYUmVzdFVzZXIuZmllbGRzKCksICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GPJylcbiAgfVxuXG4gIC8vIGdldEFsbChwYXJhbXM6IGlCWEdldFBhcmFtID0ge30pOiBPYnNlcnZhYmxlPGlCWFJlc3RVc2VyIFtdIHwgdW5kZWZpbmVkPiB7XG4gIC8vICAgaWYgKCFPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCkge1xuICAvLyAgICAgcGFyYW1zID0gY2xvbmUodGhpcy5kZWYucGFyYW1zKVxuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBjb25zdCBzYXZlQWxsVXNlciA9IGNvbXBhcmUocGFyYW1zLCB0aGlzLmRlZi5wYXJhbXMpXG4gIC8vICAgcmV0dXJuIHRoaXMudXNlciQucGlwZShcbiAgLy8gICAgIHRha2UoMSksXG4gIC8vICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgLy8gICAgICAgaWYgKHYubG9hZC5hbGwpIHtcbiAgLy8gICAgICAgICBpZiAoY29tcGFyZSh0aGlzLmRlZi5wYXJhbXMsIHBhcmFtcykpIHtcbiAgLy8gICAgICAgICAgIHJldHVybiBvZihjbG9uZSh2LmRhdGEpKVxuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfVxuICAvL1xuICAvLyAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRBcnJheShwYXJhbXMpLnBpcGUoXG4gIC8vICAgICAgICAgdGFrZSgxKSxcbiAgLy8gICAgICAgICBtYXAodiA9PiB7XG4gIC8vICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAvLyAgICAgICAgICAgICBsZXQgY2wgPSBjbG9uZSh2LnJlc3VsdClcbiAgLy8gICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2F2ZUFyclVzZXIoY2wpXG4gIC8vICAgICAgICAgICB9XG4gIC8vICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gIC8vICAgICAgICAgfSksXG4gIC8vICAgICAgIClcbiAgLy8gICAgIH0pLFxuICAvLyAgICAgdGFwKHYgPT4ge1xuICAvLyAgICAgICBpZiAodiAmJiB2Lmxlbmd0aCAmJiBzYXZlQWxsVXNlcikge1xuICAvLyAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobG9hZEFsbCh7bG9hZDogdHJ1ZX0pKVxuICAvLyAgICAgICB9XG4gIC8vICAgICAgIHBhcmFtcy5zdGFydCA9IHRoaXMuZGVmLnBhcmFtcy5zdGFydFxuICAvLyAgICAgfSlcbiAgLy8gICApXG4gIC8vIH1cblxuICAvLyBwcml2YXRlIHNhdmVBcnJVc2VyKHVzZXJzOiBpQlhSZXN0VXNlckh0dHBbXSkge1xuICAvLyAgIGxldCByZXN1bHQ6IGlCWFJlc3RVc2VyIFtdID0gW11cbiAgLy8gICBmb3IgKGNvbnN0IHVzZXIgb2YgdXNlcnMpIHtcbiAgLy8gICAgIHJlc3VsdC5wdXNoKHRoaXMudXNlck1hcC5IdHRwVG9CWCh1c2VyKSlcbiAgLy8gICB9XG4gIC8vICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlQXJyKHthcnI6IHJlc3VsdH0pKVxuICAvL1xuICAvLyAgIHJldHVybiByZXN1bHRcbiAgLy8gfVxuXG4gIC8vIGdldEVuZEFycmF5KHBhcmFtczogVXNlckZpbHRlciA9IHt9KTogT2JzZXJ2YWJsZTxpSHR0cEFuc3dlckJYPGlCWFJlc3RVc2VySHR0cFtdPiB8IHVuZGVmaW5lZD4ge1xuICAvLyAgIHJldHVybiB0aGlzLmdldChwYXJhbXMpLnBpcGUoXG4gIC8vICAgICBtZXJnZU1hcChpdGVtcyA9PiB7XG4gIC8vICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgLy8gICAgICAgICBpZiAoaXRlbXMubmV4dCkge1xuICAvLyAgICAgICAgICAgcGFyYW1zLnN0YXJ0ID0gaXRlbXMubmV4dFxuICAvLyAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kQXJyYXkocGFyYW1zKS5waXBlKG1hcCh2RW5kID0+IHtcbiAgLy8gICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0ICYmIHZFbmQucmVzdWx0KSB7XG4gIC8vICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IFsuLi5pdGVtcy5yZXN1bHQsIC4uLnZFbmQucmVzdWx0XX1cbiAgLy8gICAgICAgICAgICAgfVxuICAvLyAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zKSA/IGl0ZW1zIDogdW5kZWZpbmVkXG4gIC8vICAgICAgICAgICB9KSlcbiAgLy8gICAgICAgICB9XG4gIC8vICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKVxuICAvLyAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gIC8vICAgICAgIH1cbiAgLy8gICAgIH0pLFxuICAvLyAgIClcbiAgLy8gfVxuXG59XG5cbiJdfQ==
|
package/esm2020/rest.mjs
CHANGED
|
@@ -1,57 +1,65 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import BXRestLists from './request/lists';
|
|
3
|
-
import BXRestListsMap from './map/lists';
|
|
4
|
-
import BXRestNavvyLists from './request-navvy/lists';
|
|
5
2
|
import * as i0 from "@angular/core";
|
|
6
3
|
import * as i1 from "./request/user";
|
|
7
|
-
import * as i2 from "./request/
|
|
8
|
-
import * as i3 from "./request/
|
|
9
|
-
import * as i4 from "./request
|
|
10
|
-
import * as i5 from "./request
|
|
11
|
-
import * as i6 from "./request
|
|
4
|
+
import * as i2 from "./request/lists";
|
|
5
|
+
import * as i3 from "./request/tasks";
|
|
6
|
+
import * as i4 from "./request/disk";
|
|
7
|
+
import * as i5 from "./request/bizproc";
|
|
8
|
+
import * as i6 from "./request/log";
|
|
9
|
+
import * as i7 from "./request-navvy/user";
|
|
10
|
+
import * as i8 from "./request-navvy/lists";
|
|
11
|
+
import * as i9 from "./request-navvy/tasks";
|
|
12
|
+
import * as i10 from "./request-navvy/disk";
|
|
13
|
+
import * as i11 from "./request-navvy/bizproc";
|
|
14
|
+
import * as i12 from "./request-navvy/log";
|
|
15
|
+
import * as i13 from "./map/lists";
|
|
12
16
|
export class BXRest {
|
|
13
|
-
constructor(user, lists, tasks, disk) {
|
|
17
|
+
constructor(user, lists, tasks, disk, bizproc, log) {
|
|
14
18
|
this.user = user;
|
|
15
19
|
this.lists = lists;
|
|
16
20
|
this.tasks = tasks;
|
|
17
21
|
this.disk = disk;
|
|
22
|
+
this.bizproc = bizproc;
|
|
23
|
+
this.log = log;
|
|
18
24
|
}
|
|
19
25
|
}
|
|
20
|
-
BXRest.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, deps: [{ token: i1.BXRestUser }, { token: BXRestLists }, { token:
|
|
26
|
+
BXRest.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, deps: [{ token: i1.BXRestUser }, { token: i2.BXRestLists }, { token: i3.BXRestTasks }, { token: i4.BXRestDisk }, { token: i5.BXRestBizproc }, { token: i6.BXRestLog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
21
27
|
BXRest.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, providedIn: 'root' });
|
|
22
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, decorators: [{
|
|
23
29
|
type: Injectable,
|
|
24
30
|
args: [{
|
|
25
31
|
providedIn: 'root'
|
|
26
32
|
}]
|
|
27
|
-
}], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: BXRestLists }, { type:
|
|
33
|
+
}], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: i2.BXRestLists }, { type: i3.BXRestTasks }, { type: i4.BXRestDisk }, { type: i5.BXRestBizproc }, { type: i6.BXRestLog }]; } });
|
|
28
34
|
export class BXRestNavvy {
|
|
29
|
-
constructor(user, lists, tasks, disk) {
|
|
35
|
+
constructor(user, lists, tasks, disk, bizproc, log) {
|
|
30
36
|
this.user = user;
|
|
31
37
|
this.lists = lists;
|
|
32
38
|
this.tasks = tasks;
|
|
33
39
|
this.disk = disk;
|
|
40
|
+
this.bizproc = bizproc;
|
|
41
|
+
this.log = log;
|
|
34
42
|
}
|
|
35
43
|
}
|
|
36
|
-
BXRestNavvy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, deps: [{ token:
|
|
44
|
+
BXRestNavvy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, deps: [{ token: i7.BXRestNavvyUser }, { token: i8.BXRestNavvyLists }, { token: i9.BXRestNavvyTasks }, { token: i10.BXRestNavvyDisk }, { token: i11.BXRestNavvyBizproc }, { token: i12.BXRestNavvyLog }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
37
45
|
BXRestNavvy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, providedIn: 'root' });
|
|
38
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, decorators: [{
|
|
39
47
|
type: Injectable,
|
|
40
48
|
args: [{
|
|
41
49
|
providedIn: 'root'
|
|
42
50
|
}]
|
|
43
|
-
}], ctorParameters: function () { return [{ type:
|
|
51
|
+
}], ctorParameters: function () { return [{ type: i7.BXRestNavvyUser }, { type: i8.BXRestNavvyLists }, { type: i9.BXRestNavvyTasks }, { type: i10.BXRestNavvyDisk }, { type: i11.BXRestNavvyBizproc }, { type: i12.BXRestNavvyLog }]; } });
|
|
44
52
|
export class BXRestMap {
|
|
45
53
|
constructor(lists) {
|
|
46
54
|
this.lists = lists;
|
|
47
55
|
}
|
|
48
56
|
}
|
|
49
|
-
BXRestMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, deps: [{ token:
|
|
57
|
+
BXRestMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, deps: [{ token: i13.BXRestMapLists }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
50
58
|
BXRestMap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, providedIn: 'root' });
|
|
51
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, decorators: [{
|
|
52
60
|
type: Injectable,
|
|
53
61
|
args: [{
|
|
54
62
|
providedIn: 'root'
|
|
55
63
|
}]
|
|
56
|
-
}], ctorParameters: function () { return [{ type:
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i13.BXRestMapLists }]; } });
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3Jlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7O0FBbUIxQyxNQUFNLE9BQU8sTUFBTTtJQUNqQixZQUNTLElBQWdCLEVBQ2hCLEtBQWtCLEVBQ2xCLEtBQWtCLEVBQ2xCLElBQWdCLEVBQ2hCLE9BQXNCLEVBQ3RCLEdBQWM7UUFMZCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBVztJQUV2QixDQUFDOzttR0FUVSxNQUFNO3VHQUFOLE1BQU0sY0FGTCxNQUFNOzJGQUVQLE1BQU07a0JBSGxCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COztBQWdCRCxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNTLElBQXFCLEVBQ3JCLEtBQXVCLEVBQ3ZCLEtBQXVCLEVBQ3ZCLElBQXFCLEVBQ3JCLE9BQTJCLEVBQzNCLEdBQW1CO1FBTG5CLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLFFBQUcsR0FBSCxHQUFHLENBQWdCO0lBRTVCLENBQUM7O3dHQVRVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBZ0JELE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQ1MsS0FBcUI7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFFOUIsQ0FBQzs7c0dBSlUsU0FBUzswR0FBVCxTQUFTLGNBRlIsTUFBTTsyRkFFUCxTQUFTO2tCQUhyQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBCWFJlc3RVc2VyIH0gZnJvbSAnLi9yZXF1ZXN0L3VzZXInXHJcbmltcG9ydCB7IEJYUmVzdExpc3RzIH0gZnJvbSAnLi9yZXF1ZXN0L2xpc3RzJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBMaXN0cyB9IGZyb20gJy4vbWFwL2xpc3RzJ1xyXG5pbXBvcnQgeyBCWFJlc3RUYXNrcyB9IGZyb20gJy4vcmVxdWVzdC90YXNrcydcclxuaW1wb3J0IHsgQlhSZXN0RGlzayB9IGZyb20gJy4vcmVxdWVzdC9kaXNrJ1xyXG5pbXBvcnQgeyBCWFJlc3RCaXpwcm9jIH0gZnJvbSAnLi9yZXF1ZXN0L2JpenByb2MnXHJcbmltcG9ydCB7IEJYUmVzdExvZyB9IGZyb20gJy4vcmVxdWVzdC9sb2cnXHJcbi8vIE5hdnZ5XHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5TGlzdHMgfSBmcm9tICcuL3JlcXVlc3QtbmF2dnkvbGlzdHMnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VGFza3MgfSBmcm9tICcuL3JlcXVlc3QtbmF2dnkvdGFza3MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VXNlciB9IGZyb20gJy4vcmVxdWVzdC1uYXZ2eS91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eURpc2sgfSBmcm9tICcuL3JlcXVlc3QtbmF2dnkvZGlzaydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlCaXpwcm9jIH0gZnJvbSAnLi9yZXF1ZXN0LW5hdnZ5L2JpenByb2MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5TG9nIH0gZnJvbSAnLi9yZXF1ZXN0LW5hdnZ5L2xvZydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdXNlcjogQlhSZXN0VXNlcixcclxuICAgIHB1YmxpYyBsaXN0czogQlhSZXN0TGlzdHMsXHJcbiAgICBwdWJsaWMgdGFza3M6IEJYUmVzdFRhc2tzLFxyXG4gICAgcHVibGljIGRpc2s6IEJYUmVzdERpc2ssXHJcbiAgICBwdWJsaWMgYml6cHJvYzogQlhSZXN0Qml6cHJvYyxcclxuICAgIHB1YmxpYyBsb2c6IEJYUmVzdExvZ1xyXG4gICkge1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnkge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVzZXI6IEJYUmVzdE5hdnZ5VXNlcixcclxuICAgIHB1YmxpYyBsaXN0czogQlhSZXN0TmF2dnlMaXN0cyxcclxuICAgIHB1YmxpYyB0YXNrczogQlhSZXN0TmF2dnlUYXNrcyxcclxuICAgIHB1YmxpYyBkaXNrOiBCWFJlc3ROYXZ2eURpc2ssXHJcbiAgICBwdWJsaWMgYml6cHJvYzogQlhSZXN0TmF2dnlCaXpwcm9jLFxyXG4gICAgcHVibGljIGxvZzogQlhSZXN0TmF2dnlMb2dcclxuICApIHtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE1hcCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgbGlzdHM6IEJYUmVzdE1hcExpc3RzXHJcbiAgKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { time } from '../consts/time';
|
|
3
3
|
// import { environment } from 'bx-rest/environments/environment'
|
|
4
4
|
import { DateTime } from 'luxon';
|
|
5
|
-
import {
|
|
5
|
+
import { BX_REST_SETTINGS } from '../settings';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class BaseServices {
|
|
8
8
|
toStr(val) {
|
|
@@ -101,7 +101,7 @@ export class BaseServices {
|
|
|
101
101
|
}
|
|
102
102
|
getHomeAddress() {
|
|
103
103
|
// return this.prepareBaseAddress(environment.urls.home)
|
|
104
|
-
return this.prepareBaseAddress(
|
|
104
|
+
return this.prepareBaseAddress(BX_REST_SETTINGS.urls.home);
|
|
105
105
|
}
|
|
106
106
|
dateDiff(a, b) {
|
|
107
107
|
return new Date(a.valueOf() - b.valueOf());
|
|
@@ -172,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
172
172
|
providedIn: 'root'
|
|
173
173
|
}]
|
|
174
174
|
}] });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckMsaUVBQWlFO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLNUMsTUFBTSxPQUFPLFlBQVk7SUFFdkIsS0FBSyxDQUFDLEdBQVE7UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBUTtRQUNaLE9BQU8sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBMkIsRUFBRSxNQUFlLEVBQUUsR0FBcUI7UUFDeEUsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO1lBQ3ZCLE9BQU8sR0FBRyxDQUFBO1NBQ1g7YUFBTSxJQUFJLE9BQU8sR0FBRyxJQUFJLFFBQVEsRUFBRTtZQUNqQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLEdBQUcsRUFBRTtvQkFDUCxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtpQkFDeEQ7Z0JBQ0QsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFN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QyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzVDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzNDLE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQzs7eUdBakxVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uL2NvbnN0cy90aW1lJ1xyXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ2J4LXJlc3QvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50J1xyXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJ1xyXG5pbXBvcnQgeyBEYXRlVGltZU9wdGlvbnMgfSBmcm9tICdsdXhvbi9zcmMvZGF0ZXRpbWUnXHJcbmltcG9ydCB7IFJFU1RfU0VUVElOR1MgfSBmcm9tICcuLi9zZXR0aW5ncyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZXMge1xyXG5cclxuICB0b1N0cih2YWw6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnXHJcbiAgfVxyXG5cclxuICB0b051bSh2YWw6IGFueSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHZhbCAmJiBOdW1iZXIodmFsKSkgPyBOdW1iZXIodmFsKSA6IDBcclxuICB9XHJcblxyXG4gIHRvRGF0ZSh2YWw6IG51bWJlciB8IHN0cmluZyB8IERhdGUsIGZvcm1hdD86IHN0cmluZywgb3B0PzogRGF0ZVRpbWVPcHRpb25zKTogRGF0ZSB7XHJcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICByZXR1cm4gdmFsXHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKGZvcm1hdCkge1xyXG4gICAgICAgIGlmIChvcHQpIHtcclxuICAgICAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tRm9ybWF0KHZhbCwgZm9ybWF0LCBvcHQpLnRvSlNEYXRlKClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQpLnRvSlNEYXRlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbClcclxuICAgIH1cclxuICAgIGNvbnNvbGUuZXJyb3IoJ1dyb25nIGRhdGUgZm9ybWF0JywgdmFsLCBmb3JtYXQpXHJcbiAgICB0aHJvdyAnV3JvbmcgZGF0ZSBmb3JtYXQnXHJcbiAgfVxyXG5cclxuICBnZXRCWFN0clRpbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b0lTT1N0cmluZ1dpdGhUaW1lem9uZShkYXRlKVxyXG4gIH1cclxuXHJcbiAgdG9JU09TdHJpbmdXaXRoVGltZXpvbmUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0ek9mZnNldCA9IC1kYXRlLmdldFRpbWV6b25lT2Zmc2V0KClcclxuICAgIGNvbnN0IGRpZmYgPSB0ek9mZnNldCA+PSAwID8gJysnIDogJy0nXHJcbiAgICBjb25zdCBwYWQgPSAobjogbnVtYmVyKSA9PiBgJHtNYXRoLmZsb29yKE1hdGguYWJzKG4pKX1gLnBhZFN0YXJ0KDIsICcwJylcclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXREYXRlKCkpICtcclxuICAgICAgJ1QnICsgcGFkKGRhdGUuZ2V0SG91cnMoKSkgK1xyXG4gICAgICAnOicgKyBwYWQoZGF0ZS5nZXRNaW51dGVzKCkpICtcclxuICAgICAgJzonICsgcGFkKGRhdGUuZ2V0U2Vjb25kcygpKSArXHJcbiAgICAgIGRpZmYgKyBwYWQodHpPZmZzZXQgLyA2MCkgK1xyXG4gICAgICAnOicgKyBwYWQodHpPZmZzZXQgJSA2MClcclxuICB9O1xyXG5cclxuICB0b0Jvb2wodmFsOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZW9mIHZhbCkge1xyXG4gICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgIHZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgaWYgKHZhbCA9PT0gJ24nIHx8IHZhbCA9PT0gJ3knKSB7IC8vINCx0LjRgtGA0LjQutGB0L7QstGL0LUg0L/QvtC90Y/RgtC40Y8g0L4gYm9vbFxyXG4gICAgICAgICAgcmV0dXJuIHZhbCA9PT0gJ3knXHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdmYWxzZScpIHsgLy8g0LHQuNGC0YDQuNC60YHQvtCy0YvQtSDQv9C+0L3Rj9GC0LjRjyDQviBib29sXHJcbiAgICAgICAgICByZXR1cm4gdmFsID09PSAndHJ1ZSdcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBCb29sZWFuKHZhbClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvQlhZb3JOKHZhbDogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuICh2YWwpID8gJ1knIDogJ04nXHJcbiAgfVxyXG5cclxuICB0eXBlb2YodmFsOiBhbnkpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsXHJcbiAgfVxyXG5cclxuICB0eXBlRGVmQ2xhc3ModmFsOiBvYmplY3QpOiB1bmRlZmluZWQgfCBudWxsIHwgJ2RhdGUnIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICByZXR1cm4gJ2RhdGUnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvSlNPTih2YWw6IG9iamVjdCkge1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbClcclxuICB9XHJcblxyXG4gIGZyb21KU09OPFQ+KHZhbDogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWwpXHJcbiAgfVxyXG5cclxuICBwcmVwYXJlQmFzZUFkZHJlc3ModXJsOiBzdHJpbmcsIGFkZDogc3RyaW5nID0gJycpIHtcclxuICAgIGlmICh1cmwuc2VhcmNoKCdodHRwczovLycpICE9PSAwICYmIHVybC5zZWFyY2goJ2h0dHA6Ly8nKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgdXJsXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVybC5sYXN0SW5kZXhPZignLycpICE9PSAodXJsLmxlbmd0aCAtIDEpKSB7XHJcbiAgICAgIHVybCA9IHVybCArICcvJ1xyXG4gICAgfVxyXG5cclxuICAgIHVybCA9IHVybCArIGFkZFxyXG5cclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcblxyXG4gIGdldEhvbWVBZGRyZXNzKCkge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKGVudmlyb25tZW50LnVybHMuaG9tZSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3MoUkVTVF9TRVRUSU5HUy51cmxzLmhvbWUpXHJcbiAgfVxyXG5cclxuICBkYXRlRGlmZihhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoYS52YWx1ZU9mKCkgLSBiLnZhbHVlT2YoKSlcclxuICB9XHJcblxyXG4gIGRhdGVEaWZmSW5EYXlzKGE6IERhdGUsIGI6IERhdGUpIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMuZGF0ZURpZmYoYSwgYikudmFsdWVPZigpIC8gdGltZS5vbmVEYXlNaWxsaXNlY29uZHMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZTY0RmlsZShmaWxlOiBGaWxlKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpXHJcbiAgICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldEJhc2U2NEZpbGVMaWtlU3RyKGZpbGU6IEZpbGUpOiBQcm9taXNlPHsgaGVhZGVyOiBzdHJpbmcsIHZhbDogc3RyaW5nIH0gfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmdldEJhc2U2NEZpbGUoZmlsZSlcclxuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICBsZXQgc3BsaXQgPSByZXN1bHQuc3BsaXQoJywnKVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhlYWRlcjogc3BsaXRbMF0sXHJcbiAgICAgICAgdmFsOiBzcGxpdFsxXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuICBzdW1BcnJheShudW1iZXJzOiBudW1iZXJbXSkge1xyXG4gICAgcmV0dXJuIG51bWJlcnMucmVkdWNlKChhLCBiKSA9PiB7XHJcbiAgICAgIHJldHVybiBhICsgYjtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBpc0l0VGhlU2FtZURhdGUoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gZGF0ZTEuZ2V0RGF0ZSgpID09PSBkYXRlMi5nZXREYXRlKClcclxuICAgICAgJiYgZGF0ZTEuZ2V0TW9udGgoKSA9PT0gZGF0ZTIuZ2V0TW9udGgoKVxyXG4gICAgICAmJiBkYXRlMS5nZXRGdWxsWWVhcigpID09PSBkYXRlMi5nZXRGdWxsWWVhcigpXHJcbiAgfVxyXG5cclxuICB0b1VuaXgoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoZGF0ZS52YWx1ZU9mKCkgLyAxMDAwKVxyXG4gIH1cclxuXHJcbiAgYXJyU3VtKHg6IG51bWJlcltdKSB7XHJcbiAgICBsZXQgcyA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgcyArPSB4W2ldXHJcbiAgICB9XHJcbiAgICByZXR1cm4gc1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZVVybEh0dHBzKHVybDogc3RyaW5nLCBjb21wb25lbnQgPSBmYWxzZSkge1xyXG4gICAgaWYgKGNvbXBvbmVudCkge1xyXG4gICAgICByZXR1cm4gZW5jb2RlVVJJKHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBlbmNvZGVVUkkoJ2h0dHBzOi8vJyArIHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyb3BVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJykgOiAnJ1xyXG4gICAgdXJsID0gKHVybCkgPyB1cmwucmVwbGFjZSgnaHR0cHM6JywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6JywgJycpIDogJydcclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcbn1cclxuIl19
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckMsaUVBQWlFO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFaEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBOztBQUs5QyxNQUFNLE9BQU8sWUFBWTtJQUV2QixLQUFLLENBQUMsR0FBUTtRQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDakMsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUFRO1FBQ1osT0FBTyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUEyQixFQUFFLE1BQWUsRUFBRSxHQUFxQjtRQUN4RSxJQUFJLEdBQUcsWUFBWSxJQUFJLEVBQUU7WUFDdkIsT0FBTyxHQUFHLENBQUE7U0FDWDthQUFNLElBQUksT0FBTyxHQUFHLElBQUksUUFBUSxFQUFFO1lBQ2pDLElBQUksTUFBTSxFQUFFO2dCQUNWLElBQUksR0FBRyxFQUFFO29CQUNQLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO2lCQUN4RDtnQkFDRCxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1B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LENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUM1QyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUMzQyxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7O3lHQWpMVSxZQUFZOzZHQUFaLFlBQVksY0FGWCxNQUFNOzJGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9jb25zdHMvdGltZSdcclxuLy8gaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICdieC1yZXN0L2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCdcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbidcclxuaW1wb3J0IHsgRGF0ZVRpbWVPcHRpb25zIH0gZnJvbSAnbHV4b24vc3JjL2RhdGV0aW1lJ1xyXG5pbXBvcnQgeyBCWF9SRVNUX1NFVFRJTkdTIH0gZnJvbSAnLi4vc2V0dGluZ3MnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZXMge1xyXG5cclxuICB0b1N0cih2YWw6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnXHJcbiAgfVxyXG5cclxuICB0b051bSh2YWw6IGFueSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHZhbCAmJiBOdW1iZXIodmFsKSkgPyBOdW1iZXIodmFsKSA6IDBcclxuICB9XHJcblxyXG4gIHRvRGF0ZSh2YWw6IG51bWJlciB8IHN0cmluZyB8IERhdGUsIGZvcm1hdD86IHN0cmluZywgb3B0PzogRGF0ZVRpbWVPcHRpb25zKTogRGF0ZSB7XHJcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICByZXR1cm4gdmFsXHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKGZvcm1hdCkge1xyXG4gICAgICAgIGlmIChvcHQpIHtcclxuICAgICAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tRm9ybWF0KHZhbCwgZm9ybWF0LCBvcHQpLnRvSlNEYXRlKClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQpLnRvSlNEYXRlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbClcclxuICAgIH1cclxuICAgIGNvbnNvbGUuZXJyb3IoJ1dyb25nIGRhdGUgZm9ybWF0JywgdmFsLCBmb3JtYXQpXHJcbiAgICB0aHJvdyAnV3JvbmcgZGF0ZSBmb3JtYXQnXHJcbiAgfVxyXG5cclxuICBnZXRCWFN0clRpbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b0lTT1N0cmluZ1dpdGhUaW1lem9uZShkYXRlKVxyXG4gIH1cclxuXHJcbiAgdG9JU09TdHJpbmdXaXRoVGltZXpvbmUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0ek9mZnNldCA9IC1kYXRlLmdldFRpbWV6b25lT2Zmc2V0KClcclxuICAgIGNvbnN0IGRpZmYgPSB0ek9mZnNldCA+PSAwID8gJysnIDogJy0nXHJcbiAgICBjb25zdCBwYWQgPSAobjogbnVtYmVyKSA9PiBgJHtNYXRoLmZsb29yKE1hdGguYWJzKG4pKX1gLnBhZFN0YXJ0KDIsICcwJylcclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXREYXRlKCkpICtcclxuICAgICAgJ1QnICsgcGFkKGRhdGUuZ2V0SG91cnMoKSkgK1xyXG4gICAgICAnOicgKyBwYWQoZGF0ZS5nZXRNaW51dGVzKCkpICtcclxuICAgICAgJzonICsgcGFkKGRhdGUuZ2V0U2Vjb25kcygpKSArXHJcbiAgICAgIGRpZmYgKyBwYWQodHpPZmZzZXQgLyA2MCkgK1xyXG4gICAgICAnOicgKyBwYWQodHpPZmZzZXQgJSA2MClcclxuICB9O1xyXG5cclxuICB0b0Jvb2wodmFsOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZW9mIHZhbCkge1xyXG4gICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgIHZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgaWYgKHZhbCA9PT0gJ24nIHx8IHZhbCA9PT0gJ3knKSB7IC8vINCx0LjRgtGA0LjQutGB0L7QstGL0LUg0L/QvtC90Y/RgtC40Y8g0L4gYm9vbFxyXG4gICAgICAgICAgcmV0dXJuIHZhbCA9PT0gJ3knXHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdmYWxzZScpIHsgLy8g0LHQuNGC0YDQuNC60YHQvtCy0YvQtSDQv9C+0L3Rj9GC0LjRjyDQviBib29sXHJcbiAgICAgICAgICByZXR1cm4gdmFsID09PSAndHJ1ZSdcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBCb29sZWFuKHZhbClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvQlhZb3JOKHZhbDogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuICh2YWwpID8gJ1knIDogJ04nXHJcbiAgfVxyXG5cclxuICB0eXBlb2YodmFsOiBhbnkpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsXHJcbiAgfVxyXG5cclxuICB0eXBlRGVmQ2xhc3ModmFsOiBvYmplY3QpOiB1bmRlZmluZWQgfCBudWxsIHwgJ2RhdGUnIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICByZXR1cm4gJ2RhdGUnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvSlNPTih2YWw6IG9iamVjdCkge1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbClcclxuICB9XHJcblxyXG4gIGZyb21KU09OPFQ+KHZhbDogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWwpXHJcbiAgfVxyXG5cclxuICBwcmVwYXJlQmFzZUFkZHJlc3ModXJsOiBzdHJpbmcsIGFkZDogc3RyaW5nID0gJycpIHtcclxuICAgIGlmICh1cmwuc2VhcmNoKCdodHRwczovLycpICE9PSAwICYmIHVybC5zZWFyY2goJ2h0dHA6Ly8nKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgdXJsXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVybC5sYXN0SW5kZXhPZignLycpICE9PSAodXJsLmxlbmd0aCAtIDEpKSB7XHJcbiAgICAgIHVybCA9IHVybCArICcvJ1xyXG4gICAgfVxyXG5cclxuICAgIHVybCA9IHVybCArIGFkZFxyXG5cclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcblxyXG4gIGdldEhvbWVBZGRyZXNzKCkge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKGVudmlyb25tZW50LnVybHMuaG9tZSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3MoQlhfUkVTVF9TRVRUSU5HUy51cmxzLmhvbWUpXHJcbiAgfVxyXG5cclxuICBkYXRlRGlmZihhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoYS52YWx1ZU9mKCkgLSBiLnZhbHVlT2YoKSlcclxuICB9XHJcblxyXG4gIGRhdGVEaWZmSW5EYXlzKGE6IERhdGUsIGI6IERhdGUpIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMuZGF0ZURpZmYoYSwgYikudmFsdWVPZigpIC8gdGltZS5vbmVEYXlNaWxsaXNlY29uZHMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZTY0RmlsZShmaWxlOiBGaWxlKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpXHJcbiAgICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldEJhc2U2NEZpbGVMaWtlU3RyKGZpbGU6IEZpbGUpOiBQcm9taXNlPHsgaGVhZGVyOiBzdHJpbmcsIHZhbDogc3RyaW5nIH0gfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmdldEJhc2U2NEZpbGUoZmlsZSlcclxuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICBsZXQgc3BsaXQgPSByZXN1bHQuc3BsaXQoJywnKVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhlYWRlcjogc3BsaXRbMF0sXHJcbiAgICAgICAgdmFsOiBzcGxpdFsxXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuICBzdW1BcnJheShudW1iZXJzOiBudW1iZXJbXSkge1xyXG4gICAgcmV0dXJuIG51bWJlcnMucmVkdWNlKChhLCBiKSA9PiB7XHJcbiAgICAgIHJldHVybiBhICsgYjtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBpc0l0VGhlU2FtZURhdGUoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gZGF0ZTEuZ2V0RGF0ZSgpID09PSBkYXRlMi5nZXREYXRlKClcclxuICAgICAgJiYgZGF0ZTEuZ2V0TW9udGgoKSA9PT0gZGF0ZTIuZ2V0TW9udGgoKVxyXG4gICAgICAmJiBkYXRlMS5nZXRGdWxsWWVhcigpID09PSBkYXRlMi5nZXRGdWxsWWVhcigpXHJcbiAgfVxyXG5cclxuICB0b1VuaXgoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoZGF0ZS52YWx1ZU9mKCkgLyAxMDAwKVxyXG4gIH1cclxuXHJcbiAgYXJyU3VtKHg6IG51bWJlcltdKSB7XHJcbiAgICBsZXQgcyA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgcyArPSB4W2ldXHJcbiAgICB9XHJcbiAgICByZXR1cm4gc1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZVVybEh0dHBzKHVybDogc3RyaW5nLCBjb21wb25lbnQgPSBmYWxzZSkge1xyXG4gICAgaWYgKGNvbXBvbmVudCkge1xyXG4gICAgICByZXR1cm4gZW5jb2RlVVJJKHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBlbmNvZGVVUkkoJ2h0dHBzOi8vJyArIHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyb3BVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJykgOiAnJ1xyXG4gICAgdXJsID0gKHVybCkgPyB1cmwucmVwbGFjZSgnaHR0cHM6JywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6JywgJycpIDogJydcclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -62,44 +62,42 @@ export default class HttpBXServices extends HttpServices {
|
|
|
62
62
|
return this.httpGet(this.getNameMethod(name), params, settings);
|
|
63
63
|
}
|
|
64
64
|
httpPost(url, params = {}, settings = this.defSettings) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}));
|
|
65
|
+
let auth = this.session.getAuthParams();
|
|
66
|
+
if (auth) {
|
|
67
|
+
const paramsClone = clone(params);
|
|
68
|
+
paramsClone[this.session.getKeyAuth()] = auth;
|
|
69
|
+
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
70
|
+
if (v) {
|
|
71
|
+
return this.http.post(this.prepareBaseAddress(v) + url, this.getHttpParamsPost(paramsClone, new FormData(), false, [], settings));
|
|
72
|
+
}
|
|
73
|
+
return throwError(() => 'get base url error');
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return throwError(() => 'auth not get');
|
|
78
|
+
}
|
|
80
79
|
}
|
|
81
80
|
httpGet(url, params = {}, settings = this.defSettings) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
const paramsClone = clone(params);
|
|
88
|
-
paramsClone[this.session.getKeyAuth()] = auth;
|
|
89
|
-
let options = {
|
|
90
|
-
params: this.getHttpParamsGet(paramsClone)
|
|
91
|
-
};
|
|
92
|
-
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
93
|
-
if (v) {
|
|
94
|
-
return this.http.get(this.prepareBaseAddress(v) + url, options);
|
|
95
|
-
}
|
|
96
|
-
return throwError(() => 'get base url error');
|
|
97
|
-
}));
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
return throwError(() => 'auth not get');
|
|
81
|
+
let auth = this.session.getAuthParams();
|
|
82
|
+
if (auth) {
|
|
83
|
+
if (params === null) {
|
|
84
|
+
params = {};
|
|
101
85
|
}
|
|
102
|
-
|
|
86
|
+
const paramsClone = clone(params);
|
|
87
|
+
paramsClone[this.session.getKeyAuth()] = auth;
|
|
88
|
+
let options = {
|
|
89
|
+
params: this.getHttpParamsGet(paramsClone)
|
|
90
|
+
};
|
|
91
|
+
return this.session.getBaseUrl().pipe(mergeMap(v => {
|
|
92
|
+
if (v) {
|
|
93
|
+
return this.http.get(this.prepareBaseAddress(v) + url, options);
|
|
94
|
+
}
|
|
95
|
+
return throwError(() => 'get base url error');
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
return throwError(() => 'auth not get');
|
|
100
|
+
}
|
|
103
101
|
}
|
|
104
102
|
getNameMethod(arr) {
|
|
105
103
|
return arr.join('.');
|
|
@@ -113,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
113
111
|
providedIn: 'root'
|
|
114
112
|
}]
|
|
115
113
|
}] });
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEJYLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvaHR0cC9IdHRwQlgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFBOztBQVFyQyxrREFBa0Q7QUFLbEQsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsWUFBWTtJQUV0RCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFvQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQzFCO1lBQ0QsT0FBTyxTQUFTLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQU8sS0FBeUQ7UUFDcEUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBUyxJQUFJLENBQUMsWUFBWSxDQUFJLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDdEUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFBLENBQUMsbUJBQW1CO1FBQ25DLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQSxDQUFDLDJDQUEyQztRQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxD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LENBQUM7aUJBQzNDLENBQUE7Z0JBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FDbkMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNYLElBQUksQ0FBQyxFQUFFO3dCQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQTtxQkFDbkU7b0JBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtnQkFDL0MsQ0FBQyxDQUFDLENBQ0gsQ0FBQTthQUNGO2lCQUFNO2dCQUNMLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFBO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsR0FBYTtRQUN6QixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdEIsQ0FBQzs7MkdBcklrQixjQUFjOytHQUFkLGNBQWMsY0FGckIsTUFBTTsyRkFFQyxjQUFjO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIG1lcmdlTWFwLCBmb3JrSm9pbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnXG5pbXBvcnQgeyBpSHR0cFBhcmFtU2V0dGluZ3MgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9zZXR0aW5ncydcbmltcG9ydCB7IEh0dHBTZXJ2aWNlcyB9IGZyb20gJy4vaHR0cCdcbmltcG9ydCB7XG4gIGlCYXRjaFJlcXVlc3RBbnN3ZXIsIGlCYXRjaFJlcXVlc3RQYXJhbSxcbiAgaUJhdGNoUmVxdWVzdFBhcmFtQXJyLFxuICBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwLFxufSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXRjaC9iYXRjaFJlcXVlc3RQYXJhbSdcbmltcG9ydCB7IGlCWFJlc3RBbnN3ZXIgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC9iYXNlL2Fuc3dlcidcblxuLy8gdHlwZSBUcmFuc2Zvcm1GdW5jdGlvbjxULCBSPiA9IChpbnB1dDogVCkgPT4gUjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIdHRwQlhTZXJ2aWNlcyBleHRlbmRzIEh0dHBTZXJ2aWNlcyB7XG5cbiAgdGltZU5vd09uU2VydmVyKCkge1xuICAgIHJldHVybiB0aGlzLmh0dHBHZXQ8eyByZXN1bHQ/OiBEYXRlLCBlcnJvcj86IHN0cmluZyB9Pignc2VydmVyLnRpbWUnKS5waXBlKFxuICAgICAgbWFwKHYgPT4ge1xuICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2LnJlc3VsdClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICog0K3RgtC+INC/0LjQt9C00LXRhiDQsCDQvdC1INC80LXRgtC+0LRcbiAgICogQHBhcmFtIHBhcmFtXG4gICAqL1xuICBicmFuY2g8VCwgQT4ocGFyYW06IGlCYXRjaFJlcXVlc3RQYXJhbUFycjxUPiB8IGlCYXRjaFJlcXVlc3RQYXJhbTxUPltdKTogT2JzZXJ2YWJsZTxpQmF0Y2hSZXF1ZXN0QW5zd2VyPEE+W10gfCB1bmRlZmluZWQ+IHtcbiAgICBsZXQgcHJlcGFyZVBhcmFtID0gT2JqZWN0LmVudHJpZXM8c3RyaW5nPih0aGlzLnByZXBhcmVCYXRjaDxUPihwYXJhbSkpXG4gICAgY29uc3Qgc2l6ZSA9IDUwIC8vINCx0L7Qu9GM0YjQtSDQvdC1INC+0YLQtNCw0YHRglxuICAgIGxldCBzdWJhcnJheSA9IFtdIC8v0LzQsNGB0YHQuNCyINCyINC60L7RgtC+0YDRi9C5INCx0YPQtNC10YIg0LLRi9Cy0LXQtNC10L0g0YDQtdC30YPQu9GM0YLQsNGCLlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTWF0aC5jZWlsKHByZXBhcmVQYXJhbS5sZW5ndGggLyBzaXplKTsgaSsrKSB7XG4gICAgICBzdWJhcnJheVtpXSA9IHByZXBhcmVQYXJhbS5zbGljZSgoaSAqIHNpemUpLCAoaSAqIHNpemUpICsgc2l6ZSlcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ya0pvaW4oXG4gICAgICBzdWJhcnJheS5tYXAoaSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBQb3N0KCdiYXRjaC5qc29uJywge1xuICAgICAgICAgIGhhbHQ6IDAsXG4gICAgICAgICAgY21kOiBPYmplY3QuYXNzaWduKHt9LCAuLi5pLm1hcCh4ID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7W3hbMF1dOiB4WzFdfVxuICAgICAgICAgIH0pKVxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICApIGFzIE9ic2VydmFibGU8aUJhdGNoUmVxdWVzdEFuc3dlcjxBPltdPlxuICB9XG5cbiAgcHJlcGFyZUJhdGNoPFQ+KHBhcmFtOiBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnI8VD4gfCBpQmF0Y2hSZXF1ZXN0UGFyYW08VD5bXSk6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAge1xuICAgIGxldCByZXM6IGlCYXRjaFJlcXVlc3RQYXJhbUh0dHAgPSBPYmplY3Qua2V5cyhwYXJhbSkucmVkdWNlKFxuICAgICAgKG9iaiwga2V5KSA9PiB7XG4gICAgICAgIG9ialtrZXldID0gJyc7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgICB9LFxuICAgICAge30gYXMgaUJhdGNoUmVxdWVzdFBhcmFtSHR0cFxuICAgICk7XG4gICAgZm9yIChsZXQga2V5IGluIHBhcmFtKSB7XG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGtleSA9PT0gJ251bWJlcicgJiYgcGFyYW1ba2V5XS5wYXJhbSkge1xuICAgICAgICByZXNba2V5XSA9IHBhcmFtW2tleV0ubmFtZSArICc/JyArIHRoaXMuZ2V0SHR0cFBhcmFtc0dldChwYXJhbVtrZXldLnBhcmFtKS50b1N0cmluZygpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfVxuXG4gIC8vIG92ZXJyaWRlIG1hcEJyYW5jaFJlc3VsdDxUPihyZXM6IGlCYXRjaFJlcXVlc3RBbnN3ZXI8VD5bXSkge1xuICAvLyAgIHJldHVybiBPYmplY3QuYXNzaWduKFtdLCAuLi5yZXMubWFwKGkgPT4gKGkucmVzdWx0ICYmIGkucmVzdWx0LnJlc3VsdCkgPyBpLnJlc3VsdC5yZXN1bHQgOiB1bmRlZmluZWQpKSBhcyB7XG4gIC8vICAgICBba2V5OiBrZXlCYXRjaF06IFRcbiAgLy8gICB9XG4gIC8vIH1cbiAgLy9cbiAgLy8gb3ZlcnJpZGUgbWFwQnJhbmNoUmVzdWx0V2l0aG91dEtleTxUPihyZXM6IGlCYXRjaFJlcXVlc3RBbnN3ZXI8VD5bXSk6IFRbXSB7XG4gIC8vICAgcmV0dXJuIGZsYXR0ZW48VD4oT2JqZWN0LmFzc2lnbihbXSwgLi4ucmVzLm1hcChpID0+IChpLnJlc3VsdCAmJiBpLnJlc3VsdC5yZXN1bHQpID8gaS5yZXN1bHQucmVzdWx0IDogdW5kZWZpbmVkKSkpXG4gIC8vIH1cblxuICBwb3N0PFQ+KG5hbWU6IHN0cmluZ1tdLFxuICAgICAgICAgIHBhcmFtczogYW55ID0ge30sXG4gICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwUG9zdDxpQlhSZXN0QW5zd2VyPFQ+Pih0aGlzLmdldE5hbWVNZXRob2QobmFtZSksIHBhcmFtcywgc2V0dGluZ3MpXG4gIH1cblxuICBnZXQ8VD4obmFtZTogc3RyaW5nW10sXG4gICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwR2V0PGlCWFJlc3RBbnN3ZXI8VD4+KHRoaXMuZ2V0TmFtZU1ldGhvZChuYW1lKSwgcGFyYW1zLCBzZXR0aW5ncylcbiAgfVxuXG4gIG92ZXJyaWRlIGh0dHBQb3N0PFQ+KHVybDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xuICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEF1dGhQYXJhbXMoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoYXV0aCA9PiB7XG4gICAgICAgIGlmIChhdXRoKSB7XG4gICAgICAgICAgY29uc3QgcGFyYW1zQ2xvbmUgPSBjbG9uZShwYXJhbXMpXG4gICAgICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRCYXNlVXJsKCkucGlwZShcbiAgICAgICAgICAgIG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUIHwgdW5kZWZpbmVkPihcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKHYpICsgdXJsLFxuICAgICAgICAgICAgICAgICAgdGhpcy5nZXRIdHRwUGFyYW1zUG9zdChwYXJhbXNDbG9uZSwgbmV3IEZvcm1EYXRhKCksIGZhbHNlLCBbXSwgc2V0dGluZ3MpKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdnZXQgYmFzZSB1cmwgZXJyb3InKVxuICAgICAgICAgICAgfSkpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ2F1dGggbm90IGdldCcpXG4gICAgICAgIH1cbiAgICAgIH0pKVxuICB9XG5cbiAgb3ZlcnJpZGUgaHR0cEdldDxUPihcbiAgICB1cmw6IHN0cmluZyxcbiAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzXG4gICk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpLnBpcGUoXG4gICAgICBtZXJnZU1hcChhdXRoID0+IHtcbiAgICAgICAgaWYgKGF1dGgpIHtcbiAgICAgICAgICBpZiAocGFyYW1zID09PSBudWxsKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSB7fVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcbiAgICAgICAgICBwYXJhbXNDbG9uZVt0aGlzLnNlc3Npb24uZ2V0S2V5QXV0aCgpXSA9IGF1dGhcbiAgICAgICAgICBsZXQgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIHBhcmFtczogdGhpcy5nZXRIdHRwUGFyYW1zR2V0KHBhcmFtc0Nsb25lKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0QmFzZVVybCgpLnBpcGUoXG4gICAgICAgICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLnByZXBhcmVCYXNlQWRkcmVzcyh2KSArIHVybCwgb3B0aW9ucylcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdhdXRoIG5vdCBnZXQnKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldE5hbWVNZXRob2QoYXJyOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBhcnIuam9pbignLicpXG4gIH1cblxufVxuXG4iXX0=
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEJYLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvc2VydmljZXMvaHR0cC9IdHRwQlgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQTtBQUU5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFBOztBQVFyQyxrREFBa0Q7QUFLbEQsTUFBTSxDQUFDLE9BQU8sT0FBTyxjQUFlLFNBQVEsWUFBWTtJQUV0RCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFvQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQzFCO1lBQ0QsT0FBTyxTQUFTLENBQUE7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQU8sS0FBeUQ7UUFDcEUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBUyxJQUFJLENBQUMsWUFBWSxDQUFJLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDdEUsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFBLENBQUMsbUJBQW1CO1FBQ25DLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQSxDQUFDLDJDQUEyQztRQUM3RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlELFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1NBQ2hFO1FBRUQsT0FBTyxRQUFRLENBQ2IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pDLElBQUksRUFBRSxDQUFDO2dCQUNQLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2xDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFBO2dCQUN2QixDQUFDLENBQUMsQ0FBQzthQUNKLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUNxQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxZQUFZLENBQUksS0FBeUQ7UUFDdkUsSUFBSSxHQUFHLEdBQTJCLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUN6RCxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNYLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFDRCxFQUE0QixDQUM3QixDQUFDO1FBQ0YsS0FBSyxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUU7WUFDckIsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUU7Z0JBQzFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO2FBQ3RGO1NBQ0Y7UUFDRCxPQUFPLEdBQUcsQ0FBQTtJQUNaLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsZ0hBQWdIO0lBQ2hILHlCQUF5QjtJQUN6QixNQUFNO0lBQ04sSUFBSTtJQUNKLEVBQUU7SUFDRiw4RUFBOEU7SUFDOUUsdUhBQXVIO0lBQ3ZILElBQUk7SUFFSixJQUFJLENBQUksSUFBYyxFQUNkLFNBQWMsRUFBRSxFQUNoQixXQUErQixJQUFJLENBQUMsV0FBVztRQUNyRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQW1CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ3BGLENBQUM7SUFFRCxHQUFHLENBQUksSUFBYyxFQUNkLFNBQWMsRUFBRSxFQUNoQixXQUErQixJQUFJLENBQUMsV0FBVztRQUNwRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQW1CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFFUSxRQUFRLENBQUksR0FBVyxFQUNYLFNBQWMsRUFBRSxFQUNoQixXQUErQixJQUFJLENBQUMsV0FBVztRQUVsRSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBQ3ZDLElBQUksSUFBSSxFQUFFO1lBQ1IsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2pDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFBO1lBQzdDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsRUFBRTtvQkFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO2lCQUM1RTtnQkFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDTjthQUFNO1lBQ0wsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUE7U0FDeEM7SUFDSCxDQUFDO0lBRVEsT0FBTyxDQUNkLEdBQVcsRUFDWCxTQUFjLEVBQUUsRUFDaEIsV0FBK0IsSUFBSSxDQUFDLFdBQVc7UUFFL0MsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQTtRQUV2QyxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksTUFBTSxLQUFLLElBQUksRUFBRTtnQkFDbkIsTUFBTSxHQUFHLEVBQUUsQ0FBQTthQUNaO1lBQ0QsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2pDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFBO1lBQzdDLElBQUksT0FBTyxHQUFHO2dCQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO2FBQzNDLENBQUE7WUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUNuQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLEVBQUU7b0JBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO2lCQUNuRTtnQkFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1lBQy9DLENBQUMsQ0FBQyxDQUNILENBQUE7U0FDRjthQUFNO1lBQ0wsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUE7U0FDeEM7SUFFSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQWE7UUFDekIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3RCLENBQUM7OzJHQWxJa0IsY0FBYzsrR0FBZCxjQUFjLGNBRnJCLE1BQU07MkZBRUMsY0FBYztrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yLCBtZXJnZU1hcCwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJ1xuaW1wb3J0IHsgaUh0dHBQYXJhbVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3Qvc2V0dGluZ3MnXG5pbXBvcnQgeyBIdHRwU2VydmljZXMgfSBmcm9tICcuL2h0dHAnXG5pbXBvcnQge1xuICBpQmF0Y2hSZXF1ZXN0QW5zd2VyLCBpQmF0Y2hSZXF1ZXN0UGFyYW0sXG4gIGlCYXRjaFJlcXVlc3RQYXJhbUFycixcbiAgaUJhdGNoUmVxdWVzdFBhcmFtSHR0cCxcbn0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmF0Y2gvYmF0Y2hSZXF1ZXN0UGFyYW0nXG5pbXBvcnQgeyBpQlhSZXN0QW5zd2VyIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hbnN3ZXInXG5cbi8vIHR5cGUgVHJhbnNmb3JtRnVuY3Rpb248VCwgUj4gPSAoaW5wdXQ6IFQpID0+IFI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHR0cEJYU2VydmljZXMgZXh0ZW5kcyBIdHRwU2VydmljZXMge1xuXG4gIHRpbWVOb3dPblNlcnZlcigpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwR2V0PHsgcmVzdWx0PzogRGF0ZSwgZXJyb3I/OiBzdHJpbmcgfT4oJ3NlcnZlci50aW1lJykucGlwZShcbiAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcbiAgICAgICAgICByZXR1cm4gbmV3IERhdGUodi5yZXN1bHQpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqINCt0YLQviDQv9C40LfQtNC10YYg0LAg0L3QtSDQvNC10YLQvtC0XG4gICAqIEBwYXJhbSBwYXJhbVxuICAgKi9cbiAgYnJhbmNoPFQsIEE+KHBhcmFtOiBpQmF0Y2hSZXF1ZXN0UGFyYW1BcnI8VD4gfCBpQmF0Y2hSZXF1ZXN0UGFyYW08VD5bXSk6IE9ic2VydmFibGU8aUJhdGNoUmVxdWVzdEFuc3dlcjxBPltdIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IHByZXBhcmVQYXJhbSA9IE9iamVjdC5lbnRyaWVzPHN0cmluZz4odGhpcy5wcmVwYXJlQmF0Y2g8VD4ocGFyYW0pKVxuICAgIGNvbnN0IHNpemUgPSA1MCAvLyDQsdC+0LvRjNGI0LUg0L3QtSDQvtGC0LTQsNGB0YJcbiAgICBsZXQgc3ViYXJyYXkgPSBbXSAvL9C80LDRgdGB0LjQsiDQsiDQutC+0YLQvtGA0YvQuSDQsdGD0LTQtdGCINCy0YvQstC10LTQtdC9INGA0LXQt9GD0LvRjNGC0LDRgi5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE1hdGguY2VpbChwcmVwYXJlUGFyYW0ubGVuZ3RoIC8gc2l6ZSk7IGkrKykge1xuICAgICAgc3ViYXJyYXlbaV0gPSBwcmVwYXJlUGFyYW0uc2xpY2UoKGkgKiBzaXplKSwgKGkgKiBzaXplKSArIHNpemUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKFxuICAgICAgc3ViYXJyYXkubWFwKGkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwUG9zdCgnYmF0Y2guanNvbicsIHtcbiAgICAgICAgICBoYWx0OiAwLFxuICAgICAgICAgIGNtZDogT2JqZWN0LmFzc2lnbih7fSwgLi4uaS5tYXAoeCA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1t4WzBdXTogeFsxXX1cbiAgICAgICAgICB9KSlcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgKSBhcyBPYnNlcnZhYmxlPGlCYXRjaFJlcXVlc3RBbnN3ZXI8QT5bXT5cbiAgfVxuXG4gIHByZXBhcmVCYXRjaDxUPihwYXJhbTogaUJhdGNoUmVxdWVzdFBhcmFtQXJyPFQ+IHwgaUJhdGNoUmVxdWVzdFBhcmFtPFQ+W10pOiBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwIHtcbiAgICBsZXQgcmVzOiBpQmF0Y2hSZXF1ZXN0UGFyYW1IdHRwID0gT2JqZWN0LmtleXMocGFyYW0pLnJlZHVjZShcbiAgICAgIChvYmosIGtleSkgPT4ge1xuICAgICAgICBvYmpba2V5XSA9ICcnO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIGlCYXRjaFJlcXVlc3RQYXJhbUh0dHBcbiAgICApO1xuICAgIGZvciAobGV0IGtleSBpbiBwYXJhbSkge1xuICAgICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBrZXkgPT09ICdudW1iZXInICYmIHBhcmFtW2tleV0ucGFyYW0pIHtcbiAgICAgICAgcmVzW2tleV0gPSBwYXJhbVtrZXldLm5hbWUgKyAnPycgKyB0aGlzLmdldEh0dHBQYXJhbXNHZXQocGFyYW1ba2V5XS5wYXJhbSkudG9TdHJpbmcoKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICAvLyBvdmVycmlkZSBtYXBCcmFuY2hSZXN1bHQ8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pIHtcbiAgLy8gICByZXR1cm4gT2JqZWN0LmFzc2lnbihbXSwgLi4ucmVzLm1hcChpID0+IChpLnJlc3VsdCAmJiBpLnJlc3VsdC5yZXN1bHQpID8gaS5yZXN1bHQucmVzdWx0IDogdW5kZWZpbmVkKSkgYXMge1xuICAvLyAgICAgW2tleToga2V5QmF0Y2hdOiBUXG4gIC8vICAgfVxuICAvLyB9XG4gIC8vXG4gIC8vIG92ZXJyaWRlIG1hcEJyYW5jaFJlc3VsdFdpdGhvdXRLZXk8VD4ocmVzOiBpQmF0Y2hSZXF1ZXN0QW5zd2VyPFQ+W10pOiBUW10ge1xuICAvLyAgIHJldHVybiBmbGF0dGVuPFQ+KE9iamVjdC5hc3NpZ24oW10sIC4uLnJlcy5tYXAoaSA9PiAoaS5yZXN1bHQgJiYgaS5yZXN1bHQucmVzdWx0KSA/IGkucmVzdWx0LnJlc3VsdCA6IHVuZGVmaW5lZCkpKVxuICAvLyB9XG5cbiAgcG9zdDxUPihuYW1lOiBzdHJpbmdbXSxcbiAgICAgICAgICBwYXJhbXM6IGFueSA9IHt9LFxuICAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFBvc3Q8aUJYUmVzdEFuc3dlcjxUPj4odGhpcy5nZXROYW1lTWV0aG9kKG5hbWUpLCBwYXJhbXMsIHNldHRpbmdzKVxuICB9XG5cbiAgZ2V0PFQ+KG5hbWU6IHN0cmluZ1tdLFxuICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcbiAgICAgICAgIHNldHRpbmdzOiBpSHR0cFBhcmFtU2V0dGluZ3MgPSB0aGlzLmRlZlNldHRpbmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cEdldDxpQlhSZXN0QW5zd2VyPFQ+Pih0aGlzLmdldE5hbWVNZXRob2QobmFtZSksIHBhcmFtcywgc2V0dGluZ3MpXG4gIH1cblxuICBvdmVycmlkZSBodHRwUG9zdDxUPih1cmw6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiBhbnkgPSB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M6IGlIdHRwUGFyYW1TZXR0aW5ncyA9IHRoaXMuZGVmU2V0dGluZ3NcbiAgKTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IGF1dGggPSB0aGlzLnNlc3Npb24uZ2V0QXV0aFBhcmFtcygpXG4gICAgaWYgKGF1dGgpIHtcbiAgICAgIGNvbnN0IHBhcmFtc0Nsb25lID0gY2xvbmUocGFyYW1zKVxuICAgICAgcGFyYW1zQ2xvbmVbdGhpcy5zZXNzaW9uLmdldEtleUF1dGgoKV0gPSBhdXRoXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxuICAgICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQgfCB1bmRlZmluZWQ+KFxuICAgICAgICAgICAgICB0aGlzLnByZXBhcmVCYXNlQWRkcmVzcyh2KSArIHVybCxcbiAgICAgICAgICAgICAgdGhpcy5nZXRIdHRwUGFyYW1zUG9zdChwYXJhbXNDbG9uZSwgbmV3IEZvcm1EYXRhKCksIGZhbHNlLCBbXSwgc2V0dGluZ3MpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnZ2V0IGJhc2UgdXJsIGVycm9yJylcbiAgICAgICAgfSkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdhdXRoIG5vdCBnZXQnKVxuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIGh0dHBHZXQ8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBhbnkgPSB7fSxcbiAgICBzZXR0aW5nczogaUh0dHBQYXJhbVNldHRpbmdzID0gdGhpcy5kZWZTZXR0aW5nc1xuICApOiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+IHtcbiAgICBsZXQgYXV0aCA9IHRoaXMuc2Vzc2lvbi5nZXRBdXRoUGFyYW1zKClcblxuICAgIGlmIChhdXRoKSB7XG4gICAgICBpZiAocGFyYW1zID09PSBudWxsKSB7XG4gICAgICAgIHBhcmFtcyA9IHt9XG4gICAgICB9XG4gICAgICBjb25zdCBwYXJhbXNDbG9uZSA9IGNsb25lKHBhcmFtcylcbiAgICAgIHBhcmFtc0Nsb25lW3RoaXMuc2Vzc2lvbi5nZXRLZXlBdXRoKCldID0gYXV0aFxuICAgICAgbGV0IG9wdGlvbnMgPSB7XG4gICAgICAgIHBhcmFtczogdGhpcy5nZXRIdHRwUGFyYW1zR2V0KHBhcmFtc0Nsb25lKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldEJhc2VVcmwoKS5waXBlKFxuICAgICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VD4odGhpcy5wcmVwYXJlQmFzZUFkZHJlc3ModikgKyB1cmwsIG9wdGlvbnMpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdnZXQgYmFzZSB1cmwgZXJyb3InKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnYXV0aCBub3QgZ2V0JylcbiAgICB9XG5cbiAgfVxuXG4gIGdldE5hbWVNZXRob2QoYXJyOiBzdHJpbmdbXSkge1xuICAgIHJldHVybiBhcnIuam9pbignLicpXG4gIH1cblxufVxuXG4iXX0=
|