bx-rest 0.0.34 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +60 -4
  2. package/esm2020/functions/mapResult.mjs +2 -2
  3. package/esm2020/map/disk/base.mjs +57 -0
  4. package/esm2020/map/disk/folder.mjs +17 -0
  5. package/esm2020/map/disk/storage.mjs +17 -0
  6. package/esm2020/map/lists/element.mjs +8 -8
  7. package/esm2020/map/lists.mjs +19 -0
  8. package/esm2020/map/task.mjs +115 -0
  9. package/esm2020/map/user.mjs +89 -0
  10. package/esm2020/public-api.mjs +4 -2
  11. package/esm2020/request/disk/file.mjs +38 -0
  12. package/esm2020/request/disk/folder.mjs +46 -0
  13. package/esm2020/request/disk/storage.mjs +46 -0
  14. package/esm2020/request/disk.mjs +19 -0
  15. package/esm2020/request/lists/element.mjs +5 -7
  16. package/esm2020/request/tasks/task.mjs +61 -0
  17. package/esm2020/request/tasks.mjs +17 -0
  18. package/esm2020/request/user.mjs +23 -55
  19. package/esm2020/request-navvy/disk/file.mjs +43 -0
  20. package/esm2020/request-navvy/disk/folder.mjs +45 -0
  21. package/esm2020/request-navvy/disk/operation.mjs +95 -0
  22. package/esm2020/request-navvy/disk/storage.mjs +54 -0
  23. package/esm2020/request-navvy/disk.mjs +21 -0
  24. package/esm2020/request-navvy/lists/element.mjs +24 -0
  25. package/esm2020/request-navvy/lists.mjs +25 -0
  26. package/esm2020/request-navvy/tasks/task.mjs +64 -0
  27. package/esm2020/request-navvy/tasks.mjs +17 -0
  28. package/esm2020/request-navvy/user.mjs +53 -0
  29. package/esm2020/rest.mjs +42 -4
  30. package/esm2020/services/base.mjs +3 -2
  31. package/esm2020/services/http/HttpBX.mjs +15 -35
  32. package/esm2020/services/http/HttpData.mjs +2 -8
  33. package/esm2020/services/http/http.mjs +8 -8
  34. package/esm2020/services/http/sessionKey.mjs +36 -20
  35. package/esm2020/settings.mjs +4 -5
  36. package/esm2020/typification/rest/base/answer.mjs +2 -0
  37. package/esm2020/typification/rest/base/filterGenerator.mjs +2 -0
  38. package/esm2020/typification/rest/batch/batchRequestParam.mjs +1 -1
  39. package/esm2020/typification/rest/disk/file.mjs +2 -0
  40. package/esm2020/typification/rest/disk/folder.mjs +2 -0
  41. package/esm2020/typification/rest/disk/map.mjs +2 -0
  42. package/esm2020/typification/rest/disk/storage/uploadfile.mjs +2 -0
  43. package/esm2020/typification/rest/lists/element/get.mjs +1 -1
  44. package/esm2020/typification/rest/task/fieldsForSend.mjs +2 -0
  45. package/esm2020/typification/rest/task/people/base.mjs +2 -0
  46. package/esm2020/typification/rest/task/task.mjs +2 -0
  47. package/esm2020/typification/settings.mjs +1 -1
  48. package/fesm2015/bx-rest.mjs +1094 -312
  49. package/fesm2015/bx-rest.mjs.map +1 -1
  50. package/fesm2020/bx-rest.mjs +1092 -312
  51. package/fesm2020/bx-rest.mjs.map +1 -1
  52. package/functions/mapResult.d.ts +4 -2
  53. package/map/disk/base.d.ts +12 -0
  54. package/map/disk/folder.d.ts +9 -0
  55. package/map/disk/storage.d.ts +9 -0
  56. package/map/lists/element.d.ts +4 -4
  57. package/map/lists.d.ts +9 -0
  58. package/map/task.d.ts +8 -0
  59. package/map/user.d.ts +12 -0
  60. package/package.json +1 -1
  61. package/public-api.d.ts +3 -1
  62. package/request/disk/file.d.ts +25 -0
  63. package/request/disk/folder.d.ts +26 -0
  64. package/request/disk/storage.d.ts +34 -0
  65. package/request/disk.d.ts +10 -0
  66. package/request/lists/element.d.ts +3 -5
  67. package/request/tasks/task.d.ts +55 -0
  68. package/request/tasks.d.ts +8 -0
  69. package/request/user.d.ts +9 -20
  70. package/request-navvy/disk/file.d.ts +19 -0
  71. package/request-navvy/disk/folder.d.ts +11 -0
  72. package/request-navvy/disk/operation.d.ts +23 -0
  73. package/request-navvy/disk/storage.d.ts +23 -0
  74. package/request-navvy/disk.d.ts +12 -0
  75. package/request-navvy/lists/element.d.ts +12 -0
  76. package/request-navvy/lists.d.ts +15 -0
  77. package/request-navvy/tasks/task.d.ts +16 -0
  78. package/request-navvy/tasks.d.ts +8 -0
  79. package/request-navvy/user.d.ts +19 -0
  80. package/rest.d.ts +25 -1
  81. package/services/http/HttpBX.d.ts +3 -12
  82. package/services/http/HttpData.d.ts +1 -3
  83. package/services/http/http.d.ts +0 -5
  84. package/services/http/sessionKey.d.ts +13 -2
  85. package/typification/rest/base/{httpAnswerBX.d.ts → answer.d.ts} +1 -1
  86. package/typification/rest/base/filterGenerator.d.ts +5 -0
  87. package/typification/rest/batch/batchRequestParam.d.ts +2 -2
  88. package/typification/rest/disk/file.d.ts +14 -0
  89. package/typification/rest/disk/folder.d.ts +47 -0
  90. package/typification/rest/disk/map.d.ts +6 -0
  91. package/typification/rest/disk/storage/uploadfile.d.ts +9 -0
  92. package/typification/rest/lists/element/get.d.ts +9 -1
  93. package/typification/rest/task/fieldsForSend.d.ts +61 -0
  94. package/typification/rest/task/people/base.d.ts +12 -0
  95. package/typification/rest/task/task.d.ts +102 -0
  96. package/typification/settings.d.ts +3 -4
  97. package/esm2020/services/map/base.mjs +0 -14
  98. package/esm2020/services/map/rest/user.mjs +0 -89
  99. package/esm2020/typification/rest/base/httpAnswerBX.mjs +0 -2
  100. package/services/map/base.d.ts +0 -6
  101. package/services/map/rest/user.d.ts +0 -12
@@ -0,0 +1,95 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { map, mergeMap, take } from 'rxjs/operators';
3
+ import { BXRestMapResult } from '../../functions/mapResult';
4
+ import { of } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./folder";
7
+ import * as i2 from "./file";
8
+ import * as i3 from "./storage";
9
+ export class BXRestNavvyDiskOperation {
10
+ constructor(folder, disk, storage) {
11
+ this.folder = folder;
12
+ this.disk = disk;
13
+ this.storage = storage;
14
+ }
15
+ // данные файла в base64
16
+ loadFileInAppFolder(file) {
17
+ return this.storage.getforapp().pipe(take(1), mergeMap(infoFolder => {
18
+ if (infoFolder) {
19
+ return this.storage.uploadfile({
20
+ id: infoFolder.ID,
21
+ fileContent: [file.name, file.val],
22
+ data: {
23
+ NAME: file.name
24
+ },
25
+ generateUniqueName: true
26
+ }).pipe(map(v => BXRestMapResult(v)));
27
+ }
28
+ return of(undefined);
29
+ }));
30
+ }
31
+ getOfCreateRootContentFolderApp(folderName) {
32
+ return this.getOfCreateRootFolderApp(folderName).pipe(mergeMap(v => {
33
+ if (v) {
34
+ return this.folder.getchildren(v.ID);
35
+ }
36
+ return of(undefined);
37
+ }));
38
+ }
39
+ getRootFoldersApp() {
40
+ // return this.BXDiskFolder$.pipe(
41
+ // take(1),
42
+ // mergeMap(
43
+ // saveData => {
44
+ // if (saveData.content.root.app) {
45
+ // return of(saveData.content.root.app)
46
+ // }
47
+ return this.storage.getforapp().pipe(mergeMap(v => {
48
+ if (v && v.ID) {
49
+ return this.storage.getchildren({ id: v.ID });
50
+ // .pipe(
51
+ // tap(v => {
52
+ // if (v) {
53
+ // this.store.dispatch(saveContentRootAppInfo({value: v}))
54
+ // }
55
+ // })
56
+ // )
57
+ }
58
+ return of(undefined);
59
+ }));
60
+ // }
61
+ // )
62
+ // )
63
+ }
64
+ /**
65
+ * Получать или создать папку, если её нет, с определенным именем для приложения
66
+ * @param folderName
67
+ */
68
+ getOfCreateRootFolderApp(folderName) {
69
+ return this.getRootFoldersApp().pipe(mergeMap(v => {
70
+ if (v) {
71
+ if (v.folder.length) {
72
+ let find = v.folder.find(i => i.NAME === folderName);
73
+ if (find) {
74
+ return of(find);
75
+ }
76
+ }
77
+ }
78
+ return this.storage.getforapp().pipe(mergeMap(v => {
79
+ if (v && v.ID) {
80
+ return this.storage.addfolder({ id: v.ID, data: { NAME: folderName } });
81
+ }
82
+ return of(undefined);
83
+ }));
84
+ }));
85
+ }
86
+ }
87
+ BXRestNavvyDiskOperation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskOperation, deps: [{ token: i1.BXRestDiskNavvyFolder }, { token: i2.BXRestNavvyDiskFile }, { token: i3.BXRestNavvyDiskStorage }], target: i0.ɵɵFactoryTarget.Injectable });
88
+ BXRestNavvyDiskOperation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskOperation, providedIn: 'root' });
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskOperation, decorators: [{
90
+ type: Injectable,
91
+ args: [{
92
+ providedIn: 'root'
93
+ }]
94
+ }], ctorParameters: function () { return [{ type: i1.BXRestDiskNavvyFolder }, { type: i2.BXRestNavvyDiskFile }, { type: i3.BXRestNavvyDiskStorage }]; } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvcmVxdWVzdC1uYXZ2eS9kaXNrL29wZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBR3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7OztBQUt6QixNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLFlBQ1MsTUFBNkIsRUFDN0IsSUFBeUIsRUFDeEIsT0FBK0I7UUFGaEMsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUFDN0IsU0FBSSxHQUFKLElBQUksQ0FBcUI7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7SUFFekMsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixtQkFBbUIsQ0FBQyxJQUFtQztRQUNyRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BCLElBQUksVUFBVSxFQUFFO2dCQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQzVCO29CQUNFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRTtvQkFDakIsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUNsQyxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3FCQUNoQjtvQkFDRCxrQkFBa0IsRUFBRSxJQUFJO2lCQUN6QixDQUFDLENBQUMsSUFBSSxDQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM3QixDQUFBO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELCtCQUErQixDQUFDLFVBQWtCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDbkQsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDckM7WUFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0QixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtRQUNmLGtDQUFrQztRQUNsQyxhQUFhO1FBQ2IsY0FBYztRQUNkLG9CQUFvQjtRQUNwQix5Q0FBeUM7UUFDekMsK0NBQStDO1FBQy9DLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUNsQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUE7Z0JBQzNDLFdBQVc7Z0JBQ1gsZUFBZTtnQkFDZixlQUFlO2dCQUNmLGdFQUFnRTtnQkFDaEUsUUFBUTtnQkFDUixPQUFPO2dCQUNQLElBQUk7YUFDTDtZQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ3RCLENBQUMsQ0FBQyxDQUNILENBQUE7UUFDRCxRQUFRO1FBQ1IsTUFBTTtRQUNOLElBQUk7SUFDTixDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsd0JBQXdCLENBQUMsVUFBa0I7UUFDekMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQ2xDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNULElBQUksQ0FBQyxFQUFFO2dCQUNMLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ25CLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQTtvQkFDcEQsSUFBSSxJQUFJLEVBQUU7d0JBQ1IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7cUJBQ2hCO2lCQUNGO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUNsQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxFQUFDLENBQUMsQ0FBQTtpQkFDcEU7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtRQUNILENBQUMsQ0FDRixDQUFDLENBQUE7SUFDTixDQUFDOztxSEFqR1Usd0JBQXdCO3lIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTsyRkFFUCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEJYUmVzdERpc2tOYXZ2eUZvbGRlciB9IGZyb20gJy4vZm9sZGVyJ1xyXG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGlza0ZpbGUgfSBmcm9tICcuL2ZpbGUnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGlza1N0b3JhZ2UgfSBmcm9tICcuL3N0b3JhZ2UnXHJcbmltcG9ydCB7IEJYUmVzdE1hcFJlc3VsdCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9tYXBSZXN1bHQnXHJcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5RGlza09wZXJhdGlvbiB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGZvbGRlcjogQlhSZXN0RGlza05hdnZ5Rm9sZGVyLFxyXG4gICAgcHVibGljIGRpc2s6IEJYUmVzdE5hdnZ5RGlza0ZpbGUsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2U6IEJYUmVzdE5hdnZ5RGlza1N0b3JhZ2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICAvLyDQtNCw0L3QvdGL0LUg0YTQsNC50LvQsCDQsiBiYXNlNjRcclxuICBsb2FkRmlsZUluQXBwRm9sZGVyKGZpbGU6IHsgbmFtZTogc3RyaW5nLCB2YWw6IHN0cmluZyB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmdldGZvcmFwcCgpLnBpcGUoXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIG1lcmdlTWFwKGluZm9Gb2xkZXIgPT4ge1xyXG4gICAgICAgIGlmIChpbmZvRm9sZGVyKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnVwbG9hZGZpbGUoXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBpZDogaW5mb0ZvbGRlci5JRCxcclxuICAgICAgICAgICAgICBmaWxlQ29udGVudDogW2ZpbGUubmFtZSwgZmlsZS52YWxdLFxyXG4gICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgIE5BTUU6IGZpbGUubmFtZVxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZ2VuZXJhdGVVbmlxdWVOYW1lOiB0cnVlXHJcbiAgICAgICAgICAgIH0pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCh2ID0+IEJYUmVzdE1hcFJlc3VsdCh2KSksXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBnZXRPZkNyZWF0ZVJvb3RDb250ZW50Rm9sZGVyQXBwKGZvbGRlck5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0T2ZDcmVhdGVSb290Rm9sZGVyQXBwKGZvbGRlck5hbWUpLnBpcGUoXHJcbiAgICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5mb2xkZXIuZ2V0Y2hpbGRyZW4odi5JRClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIGdldFJvb3RGb2xkZXJzQXBwKCkge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuQlhEaXNrRm9sZGVyJC5waXBlKFxyXG4gICAgLy8gICB0YWtlKDEpLFxyXG4gICAgLy8gICBtZXJnZU1hcChcclxuICAgIC8vICAgICBzYXZlRGF0YSA9PiB7XHJcbiAgICAvLyAgICAgICBpZiAoc2F2ZURhdGEuY29udGVudC5yb290LmFwcCkge1xyXG4gICAgLy8gICAgICAgICByZXR1cm4gb2Yoc2F2ZURhdGEuY29udGVudC5yb290LmFwcClcclxuICAgIC8vICAgICAgIH1cclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0Zm9yYXBwKCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAodiA9PiB7XHJcbiAgICAgICAgaWYgKHYgJiYgdi5JRCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5nZXRjaGlsZHJlbih7aWQ6IHYuSUR9KVxyXG4gICAgICAgICAgLy8gICAucGlwZShcclxuICAgICAgICAgIC8vICAgdGFwKHYgPT4ge1xyXG4gICAgICAgICAgLy8gICAgIGlmICh2KSB7XHJcbiAgICAgICAgICAvLyAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKHNhdmVDb250ZW50Um9vdEFwcEluZm8oe3ZhbHVlOiB2fSkpXHJcbiAgICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgICAgLy8gICB9KVxyXG4gICAgICAgICAgLy8gKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgKVxyXG4gICAgLy8gKVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqINCf0L7Qu9GD0YfQsNGC0Ywg0LjQu9C4INGB0L7Qt9C00LDRgtGMINC/0LDQv9C60YMsINC10YHQu9C4INC10ZEg0L3QtdGCLCDRgSDQvtC/0YDQtdC00LXQu9C10L3QvdGL0Lwg0LjQvNC10L3QtdC8INC00LvRjyDQv9GA0LjQu9C+0LbQtdC90LjRj1xyXG4gICAqIEBwYXJhbSBmb2xkZXJOYW1lXHJcbiAgICovXHJcbiAgZ2V0T2ZDcmVhdGVSb290Rm9sZGVyQXBwKGZvbGRlck5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Um9vdEZvbGRlcnNBcHAoKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICAgIGlmICh2LmZvbGRlci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICBsZXQgZmluZCA9IHYuZm9sZGVyLmZpbmQoaSA9PiBpLk5BTUUgPT09IGZvbGRlck5hbWUpXHJcbiAgICAgICAgICAgICAgaWYgKGZpbmQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihmaW5kKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5nZXRmb3JhcHAoKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICAgICAgICBpZiAodiAmJiB2LklEKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmFkZGZvbGRlcih7aWQ6IHYuSUQsIGRhdGE6IHtOQU1FOiBmb2xkZXJOYW1lfX0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgfVxyXG4gICAgICApKVxyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,54 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { BXRestMapResult } from '../../functions/mapResult';
4
+ import BXRestMapDiskStorage from '../../map/disk/storage';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../request/disk/storage";
7
+ export class BXRestNavvyDiskStorage {
8
+ // BXDiskFolder$ = new Observable<BXDiskFolderStore>()
9
+ constructor(BXRestDiskStorage, BXRestMapDiskStorage
10
+ // private store: Store<{ BXDiskFolder: BXDiskFolderStore }>,
11
+ ) {
12
+ this.BXRestDiskStorage = BXRestDiskStorage;
13
+ this.BXRestMapDiskStorage = BXRestMapDiskStorage;
14
+ // this.BXDiskFolder$ = this.store.select('BXDiskFolder')
15
+ }
16
+ getforapp() {
17
+ // return this.BXDiskFolder$.pipe(
18
+ // take(1),
19
+ // mergeMap(
20
+ // saveData => {
21
+ // if (saveData.folder.app) {
22
+ // return of(saveData.folder.app)
23
+ // }
24
+ return this.BXRestDiskStorage.getforapp().pipe(map(v => BXRestMapResult(v)));
25
+ // }
26
+ // )
27
+ // )
28
+ }
29
+ // TODO: разобраться с фильтром позже
30
+ getchildren(param) {
31
+ return this.BXRestDiskStorage.getchildren(param).pipe(map(v => BXRestMapResult(v)), map(v => {
32
+ if (v && v.length) {
33
+ return this.BXRestMapDiskStorage.getchildren(v);
34
+ }
35
+ return { file: [], folder: [] };
36
+ }));
37
+ }
38
+ // TODO: разобраться что возвращает и что вставлять
39
+ addfolder(param) {
40
+ return this.BXRestDiskStorage.addfolder(param).pipe(map(v => BXRestMapResult(v)));
41
+ }
42
+ uploadfile(param) {
43
+ return this.BXRestDiskStorage.uploadfile(param);
44
+ }
45
+ }
46
+ BXRestNavvyDiskStorage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskStorage, deps: [{ token: i1.BXRestDiskStorage }, { token: BXRestMapDiskStorage }], target: i0.ɵɵFactoryTarget.Injectable });
47
+ BXRestNavvyDiskStorage.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskStorage, providedIn: 'root' });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDiskStorage, decorators: [{
49
+ type: Injectable,
50
+ args: [{
51
+ providedIn: 'root'
52
+ }]
53
+ }], ctorParameters: function () { return [{ type: i1.BXRestDiskStorage }, { type: BXRestMapDiskStorage }]; } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvZGlzay9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMzRCxPQUFPLG9CQUFvQixNQUFNLHdCQUF3QixDQUFBOzs7QUFNekQsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxzREFBc0Q7SUFFdEQsWUFDVSxpQkFBb0MsRUFDcEMsb0JBQTBDO0lBQ2xELDZEQUE2RDs7UUFGckQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBSWxELHlEQUF5RDtJQUMzRCxDQUFDO0lBRUQsU0FBUztRQUNQLGtDQUFrQztRQUNsQyxhQUFhO1FBQ2IsY0FBYztRQUNkLG9CQUFvQjtRQUNwQixtQ0FBbUM7UUFDbkMseUNBQXlDO1FBQ3pDLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQzVDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQU03QixDQUFBO1FBQ0QsUUFBUTtRQUNSLE1BQU07UUFDTixJQUFJO0lBQ04sQ0FBQztJQUVELHFDQUFxQztJQUNyQyxXQUFXLENBQUMsS0FBbUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDbkQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNoRDtZQUNELE9BQU8sRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUMsQ0FBQTtRQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELG1EQUFtRDtJQUNuRCxTQUFTLENBQUMsS0FBNkM7UUFDckQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDakQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzdCLENBQUE7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQTZCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDOzttSEF4RFUsc0JBQXNCLG1EQU41QixvQkFBb0I7dUhBTWQsc0JBQXNCLGNBRnJCLE1BQU07MkZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjswRkFMTSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0RGlza1N0b3JhZ2UgfSBmcm9tICcuLi8uLi9yZXF1ZXN0L2Rpc2svc3RvcmFnZSdcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBSZXN1bHQgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvbWFwUmVzdWx0J1xyXG5pbXBvcnQgQlhSZXN0TWFwRGlza1N0b3JhZ2UgZnJvbSAnLi4vLi4vbWFwL2Rpc2svc3RvcmFnZSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVXBsb2FkRmlsZSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L2Rpc2svc3RvcmFnZS91cGxvYWRmaWxlJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlEaXNrU3RvcmFnZSB7XHJcblxyXG4gIC8vIEJYRGlza0ZvbGRlciQgPSBuZXcgT2JzZXJ2YWJsZTxCWERpc2tGb2xkZXJTdG9yZT4oKVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgQlhSZXN0RGlza1N0b3JhZ2U6IEJYUmVzdERpc2tTdG9yYWdlLFxyXG4gICAgcHJpdmF0ZSBCWFJlc3RNYXBEaXNrU3RvcmFnZTogQlhSZXN0TWFwRGlza1N0b3JhZ2VcclxuICAgIC8vIHByaXZhdGUgc3RvcmU6IFN0b3JlPHsgQlhEaXNrRm9sZGVyOiBCWERpc2tGb2xkZXJTdG9yZSB9PixcclxuXHJcbiAgKSB7XHJcbiAgICAvLyB0aGlzLkJYRGlza0ZvbGRlciQgPSB0aGlzLnN0b3JlLnNlbGVjdCgnQlhEaXNrRm9sZGVyJylcclxuICB9XHJcblxyXG4gIGdldGZvcmFwcCgpIHtcclxuICAgIC8vIHJldHVybiB0aGlzLkJYRGlza0ZvbGRlciQucGlwZShcclxuICAgIC8vICAgdGFrZSgxKSxcclxuICAgIC8vICAgbWVyZ2VNYXAoXHJcbiAgICAvLyAgICAgc2F2ZURhdGEgPT4ge1xyXG4gICAgLy8gICAgICAgaWYgKHNhdmVEYXRhLmZvbGRlci5hcHApIHtcclxuICAgIC8vICAgICAgICAgcmV0dXJuIG9mKHNhdmVEYXRhLmZvbGRlci5hcHApXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5CWFJlc3REaXNrU3RvcmFnZS5nZXRmb3JhcHAoKS5waXBlKFxyXG4gICAgICBtYXAodiA9PiBCWFJlc3RNYXBSZXN1bHQodikpLFxyXG4gICAgICAvLyB0YXAodiA9PiB7XHJcbiAgICAgIC8vICAgaWYgKHYpIHtcclxuICAgICAgLy8gICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZvbGRlckFwcEluZm8oe3ZhbHVlOiB2fSkpXHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvLyB9KVxyXG4gICAgKVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgKVxyXG4gICAgLy8gKVxyXG4gIH1cclxuXHJcbiAgLy8gVE9ETzog0YDQsNC30L7QsdGA0LDRgtGM0YHRjyDRgSDRhNC40LvRjNGC0YDQvtC8INC/0L7Qt9C20LVcclxuICBnZXRjaGlsZHJlbihwYXJhbTogeyBpZDogbnVtYmVyLCBmaWx0ZXI/OiBhbnkgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuQlhSZXN0RGlza1N0b3JhZ2UuZ2V0Y2hpbGRyZW4ocGFyYW0pLnBpcGUoXHJcbiAgICAgIG1hcCh2ID0+IEJYUmVzdE1hcFJlc3VsdCh2KSksXHJcbiAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAmJiB2Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0TWFwRGlza1N0b3JhZ2UuZ2V0Y2hpbGRyZW4odilcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHtmaWxlOiBbXSwgZm9sZGVyOiBbXX1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8vIFRPRE86INGA0LDQt9C+0LHRgNCw0YLRjNGB0Y8g0YfRgtC+INCy0L7Qt9Cy0YDQsNGJ0LDQtdGCINC4INGH0YLQviDQstGB0YLQsNCy0LvRj9GC0YxcclxuICBhZGRmb2xkZXIocGFyYW06IHsgaWQ6IG51bWJlciwgZGF0YTogeyBOQU1FOiBzdHJpbmcgfSB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5CWFJlc3REaXNrU3RvcmFnZS5hZGRmb2xkZXIocGFyYW0pLnBpcGUoXHJcbiAgICAgIG1hcCh2ID0+IEJYUmVzdE1hcFJlc3VsdCh2KSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIHVwbG9hZGZpbGUocGFyYW06IGlCWFJlc3RQYXJhbVVwbG9hZEZpbGUpIHtcclxuICAgIHJldHVybiB0aGlzLkJYUmVzdERpc2tTdG9yYWdlLnVwbG9hZGZpbGUocGFyYW0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./disk/file";
4
+ import * as i2 from "./disk/folder";
5
+ import * as i3 from "./disk/operation";
6
+ export class BXRestNavvyDisk {
7
+ constructor(file, folder, operation) {
8
+ this.file = file;
9
+ this.folder = folder;
10
+ this.operation = operation;
11
+ }
12
+ }
13
+ BXRestNavvyDisk.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDisk, deps: [{ token: i1.BXRestNavvyDiskFile }, { token: i2.BXRestDiskNavvyFolder }, { token: i3.BXRestNavvyDiskOperation }], target: i0.ɵɵFactoryTarget.Injectable });
14
+ BXRestNavvyDisk.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDisk, providedIn: 'root' });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyDisk, decorators: [{
16
+ type: Injectable,
17
+ args: [{
18
+ providedIn: 'root'
19
+ }]
20
+ }], ctorParameters: function () { return [{ type: i1.BXRestNavvyDiskFile }, { type: i2.BXRestDiskNavvyFolder }, { type: i3.BXRestNavvyDiskOperation }]; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvZGlzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7OztBQVExQyxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNTLElBQXlCLEVBQ3pCLE1BQTZCLEVBQzdCLFNBQW1DO1FBRm5DLFNBQUksR0FBSixJQUFJLENBQXFCO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQXVCO1FBQzdCLGNBQVMsR0FBVCxTQUFTLENBQTBCO0lBRTVDLENBQUM7OzRHQU5VLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlEaXNrRmlsZSB9IGZyb20gJy4vZGlzay9maWxlJ1xyXG5pbXBvcnQgeyBCWFJlc3REaXNrTmF2dnlGb2xkZXIgfSBmcm9tICcuL2Rpc2svZm9sZGVyJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eURpc2tPcGVyYXRpb24gfSBmcm9tICcuL2Rpc2svb3BlcmF0aW9uJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlEaXNrIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBmaWxlOiBCWFJlc3ROYXZ2eURpc2tGaWxlLFxyXG4gICAgcHVibGljIGZvbGRlcjogQlhSZXN0RGlza05hdnZ5Rm9sZGVyLFxyXG4gICAgcHVibGljIG9wZXJhdGlvbjogQlhSZXN0TmF2dnlEaXNrT3BlcmF0aW9uXHJcbiAgKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { BXRestMapResult } from '../../functions/mapResult';
4
+ import BXRestListsElementMap from '../../map/lists/element';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../request/lists/element";
7
+ export class BXRestNavvyListsElement {
8
+ constructor(BXRestListsElement, BXRestMap) {
9
+ this.BXRestListsElement = BXRestListsElement;
10
+ this.BXRestMap = BXRestMap;
11
+ }
12
+ get(pram) {
13
+ return this.BXRestListsElement.get(pram).pipe(map(v => (v) ? this.BXRestMap.get(BXRestMapResult(v)) : undefined));
14
+ }
15
+ }
16
+ BXRestNavvyListsElement.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyListsElement, deps: [{ token: i1.BXRestListsElement }, { token: BXRestListsElementMap }], target: i0.ɵɵFactoryTarget.Injectable });
17
+ BXRestNavvyListsElement.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyListsElement, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyListsElement, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: 'root'
22
+ }]
23
+ }], ctorParameters: function () { return [{ type: i1.BXRestListsElement }, { type: BXRestListsElementMap }]; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvbGlzdHMvZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDM0QsT0FBTyxxQkFBcUIsTUFBTSx5QkFBeUIsQ0FBQTs7O0FBTTNELE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsWUFDVSxrQkFBc0MsRUFDdEMsU0FBZ0M7UUFEaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxjQUFTLEdBQVQsU0FBUyxDQUF1QjtJQUUxQyxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQWlDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FDbkUsQ0FBQTtJQUNILENBQUM7O29IQVpVLHVCQUF1QixvREFON0IscUJBQXFCO3dIQU1mLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7MkZBTE0scUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaUJYUmVzdFBhcmFtTGlzdHNFbGVtZW50R2V0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvbGlzdHMvZWxlbWVudC9nZXQnXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBCWFJlc3RMaXN0c0VsZW1lbnQgfSBmcm9tICcuLi8uLi9yZXF1ZXN0L2xpc3RzL2VsZW1lbnQnXHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBSZXN1bHQgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvbWFwUmVzdWx0J1xyXG5pbXBvcnQgQlhSZXN0TGlzdHNFbGVtZW50TWFwIGZyb20gJy4uLy4uL21hcC9saXN0cy9lbGVtZW50J1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5TGlzdHNFbGVtZW50IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIEJYUmVzdExpc3RzRWxlbWVudDogQlhSZXN0TGlzdHNFbGVtZW50LFxyXG4gICAgcHJpdmF0ZSBCWFJlc3RNYXA6IEJYUmVzdExpc3RzRWxlbWVudE1hcFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgZ2V0KHByYW06IGlCWFJlc3RQYXJhbUxpc3RzRWxlbWVudEdldCkge1xyXG4gICAgcmV0dXJuIHRoaXMuQlhSZXN0TGlzdHNFbGVtZW50LmdldChwcmFtKS5waXBlKFxyXG4gICAgICBtYXAodiA9PiAodikgPyB0aGlzLkJYUmVzdE1hcC5nZXQoQlhSZXN0TWFwUmVzdWx0KHYpKSA6IHVuZGVmaW5lZCksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvLyBhZGQocGFyYW06IGlSZXN0QlhQYXJhbUxpc3RzRWxlbWVudEFkZCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8bnVtYmVyPj4odGhpcy51cmwuYWRkLCBwYXJhbSlcclxuICAvLyB9XHJcbn1cclxuIl19
@@ -0,0 +1,25 @@
1
+ import { $add, $delete, $get, $iblock, $id, $lists, $type, $update } from '../consts/part-name-metods';
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./lists/element";
5
+ export default class BXRestNavvyLists {
6
+ constructor(element) {
7
+ this.element = element;
8
+ this.url = {
9
+ add: [$lists, $add],
10
+ delete: [$lists, $delete],
11
+ get: [$lists, $get],
12
+ update: [$lists, $update],
13
+ getIblockTypeId: [$lists, $get, $iblock, $type, $id], // Метод возвращает id типа инфоблока
14
+ };
15
+ }
16
+ }
17
+ BXRestNavvyLists.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyLists, deps: [{ token: i1.BXRestNavvyListsElement }], target: i0.ɵɵFactoryTarget.Injectable });
18
+ BXRestNavvyLists.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyLists, providedIn: 'root' });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyLists, decorators: [{
20
+ type: Injectable,
21
+ args: [{
22
+ providedIn: 'root'
23
+ }]
24
+ }], ctorParameters: function () { return [{ type: i1.BXRestNavvyListsElement }]; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L2xpc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxJQUFJLEVBQ0osT0FBTyxFQUNQLElBQUksRUFDSixPQUFPLEVBQ1AsR0FBRyxFQUNILE1BQU0sRUFDTixLQUFLLEVBQ0wsT0FBTyxFQUNSLE1BQU0sNEJBQTRCLENBQUE7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7O0FBTTFDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sZ0JBQWdCO0lBU25DLFlBQ1MsT0FBZ0M7UUFBaEMsWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFUekMsUUFBRyxHQUFHO1lBQ0osR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztZQUNuQixNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO1lBQ3pCLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7WUFDbkIsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztZQUN6QixlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUUscUNBQXFDO1NBQzVGLENBQUE7SUFLRCxDQUFDOzs2R0Faa0IsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FGdkIsTUFBTTsyRkFFQyxnQkFBZ0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAkYWRkLFxyXG4gICRkZWxldGUsXHJcbiAgJGdldCxcclxuICAkaWJsb2NrLFxyXG4gICRpZCxcclxuICAkbGlzdHMsXHJcbiAgJHR5cGUsXHJcbiAgJHVwZGF0ZVxyXG59IGZyb20gJy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0b2RzJ1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlMaXN0c0VsZW1lbnQgfSBmcm9tICcuL2xpc3RzL2VsZW1lbnQnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJYUmVzdE5hdnZ5TGlzdHMge1xyXG4gIHVybCA9IHtcclxuICAgIGFkZDogWyRsaXN0cywgJGFkZF0sIC8vINCc0LXRgtC+0LQg0YHQvtC30LTQsNGR0YIg0YHQv9C40YHQvtC6XHJcbiAgICBkZWxldGU6IFskbGlzdHMsICRkZWxldGVdLCAvLyDQnNC10YLQvtC0INGD0LTQsNC70Y/QtdGCINGB0L/QuNGB0L7QulxyXG4gICAgZ2V0OiBbJGxpc3RzLCAkZ2V0XSwgLy8g0JzQtdGC0L7QtCDQstC+0LfQstGA0LDRidCw0LXRgiDQtNCw0L3QvdGL0LUg0L/QviDRgdC/0LjRgdC60LDQvFxyXG4gICAgdXBkYXRlOiBbJGxpc3RzLCAkdXBkYXRlXSwgLy8g0JzQtdGC0L7QtCDQvtCx0L3QvtCy0LvRj9C10YIg0YHRg9GJ0LXRgdGC0LLRg9GO0YnQuNC5INGB0L/QuNGB0L7QulxyXG4gICAgZ2V0SWJsb2NrVHlwZUlkOiBbJGxpc3RzLCAkZ2V0LCAkaWJsb2NrLCAkdHlwZSwgJGlkXSwgLy8g0JzQtdGC0L7QtCDQstC+0LfQstGA0LDRidCw0LXRgiBpZCDRgtC40L/QsCDQuNC90YTQvtCx0LvQvtC60LBcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGVsZW1lbnQ6IEJYUmVzdE5hdnZ5TGlzdHNFbGVtZW50XHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICAvLyBjb25zdHJ1Y3RvcihcclxuICAvLyAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQlhTZXJ2aWNlcyxcclxuICAvLyAgICAgcHJpdmF0ZSBsaXN0c01hcDogTGlzdHNNYXBTZXJ2aWNlc1xyXG4gIC8vICkge1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gZ2V0KHByYW06IGlCWFJlc3RQYXJhbUxpc3RHZXQpOiBPYnNlcnZhYmxlPEl0ZW1MaXN0c1tdIHwgdW5kZWZpbmVkPiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPEl0ZW1MaXN0c0JYW10+Pih0aGlzLnVybC5nZXQsIHByYW0pXHJcbiAgLy8gICAgICAgICAucGlwZShcclxuICAvLyAgICAgICAgICAgICBtYXAodiA9PiAodiAmJiB2Lmxlbmd0aCkgPyB2Lm1hcChpID0+IHRoaXMubGlzdHNNYXAubWFwSXRlbUxpc3RzKGkpKSA6IFtdKVxyXG4gIC8vICAgICAgICAgKVxyXG4gIC8vIH1cclxuXHJcbiAgLy8gZ2V0QWxsKHByYW06IGdldExpc3RQYXJhbSk6IE9ic2VydmFibGU8SXRlbUxpc3RzQlhbXSB8IHVuZGVmaW5lZD4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5nZXRCYXNlKHByYW0pXHJcbiAgLy8gICAgICAgICAucGlwZShcclxuICAvLyAgICAgICAgICAgICBtZXJnZU1hcChpdGVtcyA9PiB7XHJcbiAgLy8gICAgICAgICAgICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQpIHtcclxuICAvLyAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgcHJhbS5zdGFydCA9IGl0ZW1zLm5leHRcclxuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGwocHJhbSkucGlwZShcclxuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKHZFbmQgPT4ge1xyXG4gIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0KSB7XHJcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5pdGVtcy5yZXN1bHQsIC4uLnZFbmRdXHJcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zLnJlc3VsdCkgPyBpdGVtcy5yZXN1bHQgOiBbXVxyXG4gIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSlcclxuICAvLyAgICAgICAgICAgICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihpdGVtcy5yZXN1bHQpXHJcbiAgLy8gICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICAgICAgICAgICAgICByZXR1cm4gW11cclxuICAvLyAgICAgICAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICAgIH0pXHJcbiAgLy8gICAgICAgICApXHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXRBbGxXaXRoTWFwKHByYW06IGdldExpc3RQYXJhbSk6IE9ic2VydmFibGU8SXRlbUxpc3RzW10gfCB1bmRlZmluZWQ+IHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsKHByYW0pXHJcbiAgLy8gICAgICAgICAucGlwZShcclxuICAvLyAgICAgICAgICAgICBtYXAodiA9PiAodiAmJiB2Lmxlbmd0aCkgPyB2Lm1hcChpID0+IHRoaXMubGlzdHNNYXAubWFwSXRlbUxpc3RzKGkpKSA6IFtdKVxyXG4gIC8vICAgICAgICAgKVxyXG4gIC8vIH1cclxuXHJcbiAgLy8gZ2V0RmllbGQocHJhbTogZ2V0TGlzdEZpZWxkUGFyYW0pOiBPYnNlcnZhYmxlPGlIdHRwQW5zd2VyQlg8RmllbGRJdGVtTGlzdHNbXT4gfCB1bmRlZmluZWQ+IHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBba2V5OiBzdHJpbmddOiBGaWVsZEl0ZW1MaXN0cyB9Pj4odGhpcy51cmwuZmllbGQuZ2V0LCBwcmFtKVxyXG4gIC8vIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,64 @@
1
+ import { Injectable } from '@angular/core';
2
+ import SnackBarService from '../../services/snack-bar/snack-bar.service';
3
+ import { map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../request/tasks/task";
6
+ import * as i2 from "../../map/task";
7
+ // export interface TimeProcess {
8
+ // total: number,
9
+ // next: number
10
+ // }
11
+ 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
+ // storeTask$: Observable<iStoreTask>
23
+ constructor(BXRestTasks, snackBar,
24
+ // private store: Store<{ tasks: IStoreTask }>,
25
+ taskMap) {
26
+ this.BXRestTasks = BXRestTasks;
27
+ this.snackBar = snackBar;
28
+ this.taskMap = taskMap;
29
+ // this.storeTask$ = this.store.select('tasks')
30
+ // this.nowLoad$.next({
31
+ // total: 0,
32
+ // next: 0
33
+ // })
34
+ }
35
+ add(param) {
36
+ return this.BXRestTasks.add(param).pipe(map(v => {
37
+ if (v && v.result && v.result.task) {
38
+ return this.taskMap.TaskBXHttpToTaskBX(v.result.task);
39
+ }
40
+ return undefined;
41
+ }));
42
+ // return this.http.post<{ task: TaskBXHttp }>(this.url.add, {fields: param}).pipe(
43
+ // map(v => {
44
+ // if (v && v.result && v.result.task) {
45
+ // return Object.assign(
46
+ // v,
47
+ // {
48
+ // result: this.taskBXMap.TaskBXHttpToTaskBX(v.result.task)
49
+ // })
50
+ // }
51
+ // return undefined
52
+ // }
53
+ // ))
54
+ }
55
+ }
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 });
57
+ BXRestNavvyTasksTask.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, providedIn: 'root' });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasksTask, decorators: [{
59
+ type: Injectable,
60
+ args: [{
61
+ providedIn: 'root'
62
+ }]
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=
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./tasks/task";
4
+ export class BXRestNavvyTasks {
5
+ constructor(task) {
6
+ this.task = task;
7
+ }
8
+ }
9
+ BXRestNavvyTasks.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasks, deps: [{ token: i1.BXRestNavvyTasksTask }], target: i0.ɵɵFactoryTarget.Injectable });
10
+ BXRestNavvyTasks.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasks, providedIn: 'root' });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyTasks, decorators: [{
12
+ type: Injectable,
13
+ args: [{
14
+ providedIn: 'root'
15
+ }]
16
+ }], ctorParameters: function () { return [{ type: i1.BXRestNavvyTasksTask }]; } });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7OztBQU0xQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW1CLElBQTBCO1FBQTFCLFNBQUksR0FBSixJQUFJLENBQXNCO0lBQzdDLENBQUM7OzZHQUhVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tzVGFzayB9IGZyb20gJy4vdGFza3MvdGFzaydcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlUYXNrcyB7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRhc2s6IEJYUmVzdE5hdnZ5VGFza3NUYXNrKSB7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { of, tap } from 'rxjs';
2
+ import { first, map, mergeMap } from 'rxjs/operators';
3
+ import { saveSelf } from '../store/users';
4
+ import { Injectable } from '@angular/core';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../request/user";
7
+ import * as i2 from "@ngrx/store";
8
+ import * as i3 from "../map/user";
9
+ export class BXRestNavvyUser {
10
+ constructor(BXRestUser, store, BXRestUserMap) {
11
+ this.BXRestUser = BXRestUser;
12
+ this.store = store;
13
+ this.BXRestUserMap = BXRestUserMap;
14
+ this.user$ = this.store.select('users');
15
+ }
16
+ current(update = false) {
17
+ if (update) {
18
+ return this.self();
19
+ }
20
+ else {
21
+ return this.user$.pipe(mergeMap(v => {
22
+ if (v && v.self) {
23
+ return of(v.self);
24
+ }
25
+ else {
26
+ return this.self();
27
+ }
28
+ }), first());
29
+ }
30
+ }
31
+ self() {
32
+ return this.BXRestUser.current()
33
+ .pipe(map(v => {
34
+ if (v && v.result) {
35
+ return this.BXRestUserMap.current(v.result);
36
+ }
37
+ return undefined;
38
+ }), tap(v => {
39
+ if (v) {
40
+ this.store.dispatch(saveSelf({ self: v }));
41
+ }
42
+ }));
43
+ }
44
+ }
45
+ BXRestNavvyUser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, deps: [{ token: i1.BXRestUser }, { token: i2.Store }, { token: i3.BXRestUserMap }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ BXRestNavvyUser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, providedIn: 'root' });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvyUser, decorators: [{
48
+ type: Injectable,
49
+ args: [{
50
+ providedIn: 'root'
51
+ }]
52
+ }], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: i2.Store }, { type: i3.BXRestUserMap }]; } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRCxPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sZ0JBQWdCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7Ozs7QUFPMUMsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFDVSxVQUFzQixFQUN0QixLQUFtQyxFQUNuQyxhQUE0QjtRQUY1QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQThCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRXBDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUNwQixJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO1NBQ25CO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNwQixRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTtvQkFDZixPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7aUJBQ2xCO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO2lCQUNuQjtZQUNILENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxDQUNSLENBQUE7U0FDRjtJQUNILENBQUM7SUFFTyxJQUFJO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRTthQUM3QixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7YUFDNUM7WUFDRCxPQUFPLFNBQVMsQ0FBQTtRQUNsQixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsRUFBRTtnQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ3pDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNMLENBQUM7OzRHQTVDVSxlQUFlO2dIQUFmLGVBQWUsY0FGZCxNQUFNOzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIHRhcCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBmaXJzdCwgbWFwLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IHNhdmVTZWxmLCBzdG9yZVVzZXJzIH0gZnJvbSAnLi4vc3RvcmUvdXNlcnMnXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJYUmVzdFVzZXIgfSBmcm9tICcuLi9yZXF1ZXN0L3VzZXInXG5pbXBvcnQgeyBCWFJlc3RVc2VyTWFwIH0gZnJvbSAnLi4vbWFwL3VzZXInXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VXNlciB7XG5cbiAgdXNlciQ6IE9ic2VydmFibGU8c3RvcmVVc2Vycz5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIEJYUmVzdFVzZXI6IEJYUmVzdFVzZXIsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8eyB1c2Vyczogc3RvcmVVc2VycyB9PixcbiAgICBwcml2YXRlIEJYUmVzdFVzZXJNYXA6IEJYUmVzdFVzZXJNYXBcbiAgKSB7XG4gICAgdGhpcy51c2VyJCA9IHRoaXMuc3RvcmUuc2VsZWN0KCd1c2VycycpXG4gIH1cblxuICBjdXJyZW50KHVwZGF0ZSA9IGZhbHNlKSB7XG4gICAgaWYgKHVwZGF0ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZigpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnVzZXIkLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKHYgPT4ge1xuICAgICAgICAgIGlmICh2ICYmIHYuc2VsZikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHYuc2VsZilcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VsZigpXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgZmlyc3QoKVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZigpIHtcbiAgICByZXR1cm4gdGhpcy5CWFJlc3RVc2VyLmN1cnJlbnQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0VXNlck1hcC5jdXJyZW50KHYucmVzdWx0KVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pLFxuICAgICAgICB0YXAodiA9PiB7XG4gICAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZVNlbGYoe3NlbGY6IHZ9KSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICB9XG5cbn1cblxuIl19
package/esm2020/rest.mjs CHANGED
@@ -1,19 +1,57 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import BXRestLists from './request/lists';
3
+ import BXRestListsMap from './map/lists';
4
+ import BXRestNavvyLists from './request-navvy/lists';
3
5
  import * as i0 from "@angular/core";
4
6
  import * as i1 from "./request/user";
7
+ import * as i2 from "./request/tasks";
8
+ import * as i3 from "./request/disk";
9
+ import * as i4 from "./request-navvy/user";
10
+ import * as i5 from "./request-navvy/tasks";
11
+ import * as i6 from "./request-navvy/disk";
5
12
  export class BXRest {
6
- constructor(user, lists) {
13
+ constructor(user, lists, tasks, disk) {
7
14
  this.user = user;
8
15
  this.lists = lists;
16
+ this.tasks = tasks;
17
+ this.disk = disk;
9
18
  }
10
19
  }
11
- BXRest.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, deps: [{ token: i1.BXRestUser }, { token: BXRestLists }], target: i0.ɵɵFactoryTarget.Injectable });
20
+ BXRest.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, deps: [{ token: i1.BXRestUser }, { token: BXRestLists }, { token: i2.BXRestTasks }, { token: i3.BXRestDisk }], target: i0.ɵɵFactoryTarget.Injectable });
12
21
  BXRest.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, providedIn: 'root' });
13
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRest, decorators: [{
14
23
  type: Injectable,
15
24
  args: [{
16
25
  providedIn: 'root'
17
26
  }]
18
- }], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: BXRestLists }]; } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3Jlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTs7O0FBS3pDLE1BQU0sT0FBTyxNQUFNO0lBQ2pCLFlBQ1MsSUFBZ0IsRUFDaEIsS0FBa0I7UUFEbEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFhO0lBRTNCLENBQUM7O21HQUxVLE1BQU0sNENBTFosV0FBVzt1R0FLTCxNQUFNLGNBRkwsTUFBTTsyRkFFUCxNQUFNO2tCQUhsQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjttRkFKTSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEJYUmVzdFVzZXIgfSBmcm9tICcuL3JlcXVlc3QvdXNlcidcclxuaW1wb3J0IEJYUmVzdExpc3RzIGZyb20gJy4vcmVxdWVzdC9saXN0cydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdXNlcjogQlhSZXN0VXNlcixcclxuICAgIHB1YmxpYyBsaXN0czogQlhSZXN0TGlzdHNcclxuICApIHtcclxuICB9XHJcbn1cclxuIl19
27
+ }], ctorParameters: function () { return [{ type: i1.BXRestUser }, { type: BXRestLists }, { type: i2.BXRestTasks }, { type: i3.BXRestDisk }]; } });
28
+ export class BXRestNavvy {
29
+ constructor(user, lists, tasks, disk) {
30
+ this.user = user;
31
+ this.lists = lists;
32
+ this.tasks = tasks;
33
+ this.disk = disk;
34
+ }
35
+ }
36
+ BXRestNavvy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, deps: [{ token: i4.BXRestNavvyUser }, { token: BXRestNavvyLists }, { token: i5.BXRestNavvyTasks }, { token: i6.BXRestNavvyDisk }], target: i0.ɵɵFactoryTarget.Injectable });
37
+ BXRestNavvy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, providedIn: 'root' });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestNavvy, decorators: [{
39
+ type: Injectable,
40
+ args: [{
41
+ providedIn: 'root'
42
+ }]
43
+ }], ctorParameters: function () { return [{ type: i4.BXRestNavvyUser }, { type: BXRestNavvyLists }, { type: i5.BXRestNavvyTasks }, { type: i6.BXRestNavvyDisk }]; } });
44
+ export class BXRestMap {
45
+ constructor(lists) {
46
+ this.lists = lists;
47
+ }
48
+ }
49
+ BXRestMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, deps: [{ token: BXRestListsMap }], target: i0.ɵɵFactoryTarget.Injectable });
50
+ BXRestMap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, providedIn: 'root' });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BXRestMap, decorators: [{
52
+ type: Injectable,
53
+ args: [{
54
+ providedIn: 'root'
55
+ }]
56
+ }], ctorParameters: function () { return [{ type: BXRestListsMap }]; } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3Jlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLFdBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUN6QyxPQUFPLGNBQWMsTUFBTSxhQUFhLENBQUE7QUFDeEMsT0FBTyxnQkFBZ0IsTUFBTSx1QkFBdUIsQ0FBQTs7Ozs7Ozs7QUFVcEQsTUFBTSxPQUFPLE1BQU07SUFDakIsWUFDUyxJQUFnQixFQUNoQixLQUFrQixFQUNsQixLQUFrQixFQUNsQixJQUFnQjtRQUhoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQWE7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBRXpCLENBQUM7O21HQVBVLE1BQU0sNENBWlosV0FBVzt1R0FZTCxNQUFNLGNBRkwsTUFBTTsyRkFFUCxNQUFNO2tCQUhsQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjttRkFYTSxXQUFXO0FBeUJsQixNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNTLElBQXFCLEVBQ3JCLEtBQXVCLEVBQ3ZCLEtBQXVCLEVBQ3ZCLElBQXFCO1FBSHJCLFNBQUksR0FBSixJQUFJLENBQWlCO1FBQ3JCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRTlCLENBQUM7O3dHQVBVLFdBQVcsaURBdkJqQixnQkFBZ0I7NEdBdUJWLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CO3dGQXRCTSxnQkFBZ0I7QUFvQ3ZCLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQ1MsS0FBcUI7UUFBckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFFOUIsQ0FBQzs7c0dBSlUsU0FBUyxrQkFyQ2YsY0FBYzswR0FxQ1IsU0FBUyxjQUZSLE1BQU07MkZBRVAsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7MERBcENNLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0VXNlciB9IGZyb20gJy4vcmVxdWVzdC91c2VyJ1xyXG5pbXBvcnQgQlhSZXN0TGlzdHMgZnJvbSAnLi9yZXF1ZXN0L2xpc3RzJ1xyXG5pbXBvcnQgQlhSZXN0TGlzdHNNYXAgZnJvbSAnLi9tYXAvbGlzdHMnXHJcbmltcG9ydCBCWFJlc3ROYXZ2eUxpc3RzIGZyb20gJy4vcmVxdWVzdC1uYXZ2eS9saXN0cydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlUYXNrcyB9IGZyb20gJy4vcmVxdWVzdC1uYXZ2eS90YXNrcydcclxuaW1wb3J0IHsgQlhSZXN0VGFza3MgfSBmcm9tICcuL3JlcXVlc3QvdGFza3MnXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5VXNlciB9IGZyb20gJy4vcmVxdWVzdC1uYXZ2eS91c2VyJ1xyXG5pbXBvcnQgeyBCWFJlc3REaXNrIH0gZnJvbSAnLi9yZXF1ZXN0L2Rpc2snXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGlzayB9IGZyb20gJy4vcmVxdWVzdC1uYXZ2eS9kaXNrJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB1c2VyOiBCWFJlc3RVc2VyLFxyXG4gICAgcHVibGljIGxpc3RzOiBCWFJlc3RMaXN0cyxcclxuICAgIHB1YmxpYyB0YXNrczogQlhSZXN0VGFza3MsXHJcbiAgICBwdWJsaWMgZGlzazogQlhSZXN0RGlza1xyXG4gICkge1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnkge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHVzZXI6IEJYUmVzdE5hdnZ5VXNlcixcclxuICAgIHB1YmxpYyBsaXN0czogQlhSZXN0TmF2dnlMaXN0cyxcclxuICAgIHB1YmxpYyB0YXNrczogQlhSZXN0TmF2dnlUYXNrcyxcclxuICAgIHB1YmxpYyBkaXNrOiBCWFJlc3ROYXZ2eURpc2tcclxuICApIHtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE1hcCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgbGlzdHM6IEJYUmVzdExpc3RzTWFwXHJcbiAgKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2,6 +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 { REST_SETTINGS } from '../settings';
5
6
  import * as i0 from "@angular/core";
6
7
  export class BaseServices {
7
8
  toStr(val) {
@@ -100,7 +101,7 @@ export class BaseServices {
100
101
  }
101
102
  getHomeAddress() {
102
103
  // return this.prepareBaseAddress(environment.urls.home)
103
- return this.prepareBaseAddress('b24.trace-studio.com');
104
+ return this.prepareBaseAddress(REST_SETTINGS.urls.home);
104
105
  }
105
106
  dateDiff(a, b) {
106
107
  return new Date(a.valueOf() - b.valueOf());
@@ -171,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
171
172
  providedIn: 'root'
172
173
  }]
173
174
  }] });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckMsaUVBQWlFO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7O0FBTWhDLE1BQU0sT0FBTyxZQUFZO0lBRXJCLEtBQUssQ0FBQyxHQUFRO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQVE7UUFDVixPQUFPLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQTJCLEVBQUUsTUFBZSxFQUFFLEdBQXFCO1FBQ3RFLElBQUksR0FBRyxZQUFZLElBQUksRUFBRTtZQUNyQixPQUFPLEdBQUcsQ0FBQTtTQUNiO2FBQU0sSUFBSSxPQUFPLEdBQUcsSUFBSSxRQUFRLEVBQUU7WUFDL0IsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsSUFBSSxHQUFHLEVBQUU7b0JBQ0wsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7aUJBQzFEO2dCQUNELE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7YUFDckQ7aUJBQU07Z0JB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QUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUM1QyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUMzQyxPQUFPLEdBQUcsQ0FBQTtJQUNkLENBQUM7O3lHQWhMUSxZQUFZOzZHQUFaLFlBQVksY0FGVCxNQUFNOzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9jb25zdHMvdGltZSdcclxuLy8gaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICdieC1yZXN0L2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCdcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbidcclxuaW1wb3J0IHsgRGF0ZVRpbWVPcHRpb25zIH0gZnJvbSAnbHV4b24vc3JjL2RhdGV0aW1lJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZXMge1xyXG5cclxuICAgIHRvU3RyKHZhbDogYW55KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnXHJcbiAgICB9XHJcblxyXG4gICAgdG9OdW0odmFsOiBhbnkpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiAodmFsICYmIE51bWJlcih2YWwpKSA/IE51bWJlcih2YWwpIDogMFxyXG4gICAgfVxyXG5cclxuICAgIHRvRGF0ZSh2YWw6IG51bWJlciB8IHN0cmluZyB8IERhdGUsIGZvcm1hdD86IHN0cmluZywgb3B0PzogRGF0ZVRpbWVPcHRpb25zKTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbFxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBpZiAoZm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob3B0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQsIG9wdCkudG9KU0RhdGUoKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQpLnRvSlNEYXRlKClcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWwpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbClcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignV3JvbmcgZGF0ZSBmb3JtYXQnLCB2YWwsIGZvcm1hdClcclxuICAgICAgICB0aHJvdyAnV3JvbmcgZGF0ZSBmb3JtYXQnXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QlhTdHJUaW1lKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRvSVNPU3RyaW5nV2l0aFRpbWV6b25lKGRhdGUpXHJcbiAgICB9XHJcblxyXG4gICAgdG9JU09TdHJpbmdXaXRoVGltZXpvbmUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgdHpPZmZzZXQgPSAtZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpXHJcbiAgICAgICAgY29uc3QgZGlmZiA9IHR6T2Zmc2V0ID49IDAgPyAnKycgOiAnLSdcclxuICAgICAgICBjb25zdCBwYWQgPSAobjogbnVtYmVyKSA9PiBgJHtNYXRoLmZsb29yKE1hdGguYWJzKG4pKX1gLnBhZFN0YXJ0KDIsICcwJylcclxuICAgICAgICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICtcclxuICAgICAgICAgICAgJy0nICsgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpICtcclxuICAgICAgICAgICAgJy0nICsgcGFkKGRhdGUuZ2V0RGF0ZSgpKSArXHJcbiAgICAgICAgICAgICdUJyArIHBhZChkYXRlLmdldEhvdXJzKCkpICtcclxuICAgICAgICAgICAgJzonICsgcGFkKGRhdGUuZ2V0TWludXRlcygpKSArXHJcbiAgICAgICAgICAgICc6JyArIHBhZChkYXRlLmdldFNlY29uZHMoKSkgK1xyXG4gICAgICAgICAgICBkaWZmICsgcGFkKHR6T2Zmc2V0IC8gNjApICtcclxuICAgICAgICAgICAgJzonICsgcGFkKHR6T2Zmc2V0ICUgNjApXHJcbiAgICB9O1xyXG5cclxuICAgIHRvQm9vbCh2YWw6IGFueSkge1xyXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbCkge1xyXG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgICAgICAgICAgdmFsID0gdmFsLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgICAgIGlmICh2YWwgPT09ICduJyB8fCB2YWwgPT09ICd5JykgeyAvLyDQsdC40YLRgNC40LrRgdC+0LLRi9C1INC/0L7QvdGP0YLQuNGPINC+IGJvb2xcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsID09PSAneSdcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsID09PSAndHJ1ZScgfHwgdmFsID09PSAnZmFsc2UnKSB7IC8vINCx0LjRgtGA0LjQutGB0L7QstGL0LUg0L/QvtC90Y/RgtC40Y8g0L4gYm9vbFxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPT09ICd0cnVlJ1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuKHZhbClcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdG9CWFlvck4odmFsOiBib29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuICh2YWwpID8gJ1knIDogJ04nXHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mKHZhbDogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWxcclxuICAgIH1cclxuXHJcbiAgICB0eXBlRGVmQ2xhc3ModmFsOiBvYmplY3QpOiB1bmRlZmluZWQgfCBudWxsIHwgJ2RhdGUnIHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RhdGUnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRvSlNPTih2YWw6IG9iamVjdCkge1xyXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWwpXHJcbiAgICB9XHJcblxyXG4gICAgZnJvbUpTT048VD4odmFsOiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWwpXHJcbiAgICB9XHJcblxyXG4gICAgcHJlcGFyZUJhc2VBZGRyZXNzKHVybDogc3RyaW5nLCBhZGQ6IHN0cmluZyA9ICcnKSB7XHJcbiAgICAgICAgaWYgKHVybC5zZWFyY2goJ2h0dHBzOi8vJykgIT09IDAgJiYgdXJsLnNlYXJjaCgnaHR0cDovLycpKSB7XHJcbiAgICAgICAgICAgIHVybCA9ICdodHRwczovLycgKyB1cmxcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh1cmwubGFzdEluZGV4T2YoJy8nKSAhPT0gKHVybC5sZW5ndGggLSAxKSkge1xyXG4gICAgICAgICAgICB1cmwgPSB1cmwgKyAnLydcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHVybCA9IHVybCArIGFkZFxyXG5cclxuICAgICAgICByZXR1cm4gdXJsXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SG9tZUFkZHJlc3MoKSB7XHJcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKGVudmlyb25tZW50LnVybHMuaG9tZSlcclxuICAgICAgICByZXR1cm4gdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3MoJ2IyNC50cmFjZS1zdHVkaW8uY29tJylcclxuICAgIH1cclxuXHJcbiAgICBkYXRlRGlmZihhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGEudmFsdWVPZigpIC0gYi52YWx1ZU9mKCkpXHJcbiAgICB9XHJcblxyXG4gICAgZGF0ZURpZmZJbkRheXMoYTogRGF0ZSwgYjogRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMuZGF0ZURpZmYoYSwgYikudmFsdWVPZigpIC8gdGltZS5vbmVEYXlNaWxsaXNlY29uZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEJhc2U2NEZpbGUoZmlsZTogRmlsZSkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKClcclxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSlcclxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdClcclxuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSBlcnJvciA9PiByZWplY3QoZXJyb3IpXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBnZXRCYXNlNjRGaWxlTGlrZVN0cihmaWxlOiBGaWxlKTogUHJvbWlzZTx7IGhlYWRlcjogc3RyaW5nLCB2YWw6IHN0cmluZyB9IHwgdW5kZWZpbmVkPiB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0QmFzZTY0RmlsZShmaWxlKVxyXG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICBsZXQgc3BsaXQgPSByZXN1bHQuc3BsaXQoJywnKVxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaGVhZGVyOiBzcGxpdFswXSxcclxuICAgICAgICAgICAgICAgIHZhbDogc3BsaXRbMV1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICB9XHJcblxyXG4gICAgc3VtQXJyYXkobnVtYmVyczogbnVtYmVyW10pIHtcclxuICAgICAgICByZXR1cm4gbnVtYmVycy5yZWR1Y2UoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGEgKyBiO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgaXNJdFRoZVNhbWVEYXRlKGRhdGUxOiBEYXRlLCBkYXRlMjogRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBkYXRlMS5nZXREYXRlKCkgPT09IGRhdGUyLmdldERhdGUoKVxyXG4gICAgICAgICAgICAmJiBkYXRlMS5nZXRNb250aCgpID09PSBkYXRlMi5nZXRNb250aCgpXHJcbiAgICAgICAgICAgICYmIGRhdGUxLmdldEZ1bGxZZWFyKCkgPT09IGRhdGUyLmdldEZ1bGxZZWFyKClcclxuICAgIH1cclxuXHJcbiAgICB0b1VuaXgoZGF0ZTogRGF0ZSkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKGRhdGUudmFsdWVPZigpIC8gMTAwMClcclxuICAgIH1cclxuXHJcbiAgICBhcnJTdW0oeDogbnVtYmVyW10pIHtcclxuICAgICAgICBsZXQgcyA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB4Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHMgKz0geFtpXVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc1xyXG4gICAgfVxyXG5cclxuICAgIGdldEJhc2VVcmxIdHRwcyh1cmw6IHN0cmluZywgY29tcG9uZW50ID0gZmFsc2UpIHtcclxuICAgICAgICBpZiAoY29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVVUkkodGhpcy5jcm9wVXJsKHVybCkgKyAnLycpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbmNvZGVVUkkoJ2h0dHBzOi8vJyArIHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3JvcFVybCh1cmw6IHN0cmluZykge1xyXG4gICAgICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpIDogJydcclxuICAgICAgICB1cmwgPSAodXJsKSA/IHVybC5yZXBsYWNlKCdodHRwOi8vJywgJycpIDogJydcclxuICAgICAgICB1cmwgPSAodXJsKSA/IHVybC5yZXBsYWNlKCdodHRwczonLCAnJykgOiAnJ1xyXG4gICAgICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6JywgJycpIDogJydcclxuICAgICAgICByZXR1cm4gdXJsXHJcbiAgICB9XHJcbn1cclxuIl19
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckMsaUVBQWlFO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFaEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLNUMsTUFBTSxPQUFPLFlBQVk7SUFFdkIsS0FBSyxDQUFDLEdBQVE7UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBUTtRQUNaLE9BQU8sQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBMkIsRUFBRSxNQUFlLEVBQUUsR0FBcUI7UUFDeEUsSUFBSSxHQUFHLFlBQVksSUFBSSxFQUFFO1lBQ3ZCLE9BQU8sR0FBRyxDQUFBO1NBQ1g7YUFBTSxJQUFJLE9BQU8sR0FBRyxJQUFJLFFBQVEsRUFBRTtZQUNqQyxJQUFJLE1BQU0sRUFBRTtnQkFDVixJQUFJLEdBQUcsRUFBRTtvQkFDUCxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtpQkFDeEQ7Z0JBQ0QsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTthQUNuRDtpQkFBTTtnQkFDTCxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ3JCO1NBQ0Y7YUFBTSxJQUFJLE9BQU8sR0FBRyxJQUFJLFFBQVEsRUFBRTtZQUNqQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3JCO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDL0MsTUFBTSxtQkFBbUIsQ0FBQTtJQUMzQixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQVU7UUFDaEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUMxQyxNQUFNLElBQUksR0FBRyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtRQUN0QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDeEUsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3ZCLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5QixHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQixHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixHQUFHLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixJQUFJLEdBQUcsR0FBRyxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDekIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUE7SUFDNUIsQ0FBQztJQUFBLENBQUM7SUFFRixNQUFNLENBQUMsR0FBUTtRQUNiLFFBQVEsT0FBTyxHQUFHLEVBQUU7WUFDbEIsS0FBSyxRQUFRO2dCQUNYLEdBQUcsR0FBRyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUE7Z0JBQ3ZCLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxFQUFFLEVBQUUsNkJBQTZCO29CQUM3RCxPQUFPLEdBQUcsS0FBSyxHQUFHLENBQUE7aUJBQ25CO3FCQUFNLElBQUksR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFLEVBQUUsNkJBQTZCO29CQUMzRSxPQUFPLEdBQUcsS0FBSyxNQUFNLENBQUE7aUJBQ3RCO3FCQUFNO29CQUNMLE9BQU8sS0FBSyxDQUFBO2lCQUNiO1lBQ0g7Z0JBQ0UsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7U0FDdEI7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVk7UUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQTtJQUMxQixDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQVE7UUFDYixPQUFPLE9BQU8sR0FBRyxDQUFBO0lBQ25CLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBVztRQUN0QixJQUFJLEdBQUcsRUFBRTtZQUNQLElBQUksR0FBRyxZQUFZLElBQUksRUFBRTtnQkFDdkIsT0FBTyxNQUFNLENBQUE7YUFDZDtZQUNELE9BQU8sU0FBUyxDQUFBO1NBQ2pCO2FBQU07WUFDTCxPQUFPLElBQUksQ0FBQTtTQUNaO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRUQsUUFBUSxDQUFJLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxHQUFXLEVBQUUsTUFBYyxFQUFFO1FBQzlDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN6RCxHQUFHLEdBQUcsVUFBVSxHQUFHLEdBQUcsQ0FBQTtTQUN2QjtRQUVELElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUE7U0FDaEI7UUFFRCxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQTtRQUVmLE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQztJQUVELGNBQWM7UUFDWix3REFBd0Q7UUFFeEQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN6RCxDQUFDO0lBRUQsUUFBUSxDQUFDLENBQU8sRUFBRSxDQUFPO1FBQ3ZCLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxjQUFjLENBQUMsQ0FBTyxFQUFFLENBQU87UUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBVTtRQUN0QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7WUFDL0IsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUMxQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDNUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUN6QyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBVTtRQUNuQyxJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDM0MsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDOUIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUM3QixPQUFPO2dCQUNMLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNkLENBQUE7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBaUI7UUFDeEIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFXLEVBQUUsS0FBVztRQUN0QyxPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFO2VBQ3JDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFO2VBQ3JDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsTUFBTSxDQUFDLENBQVc7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtTQUNWO1FBQ0QsT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVcsRUFBRSxTQUFTLEdBQUcsS0FBSztRQUM1QyxJQUFJLFNBQVMsRUFBRTtZQUNiLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXO1FBQ2pCLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzlDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzdDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzVDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzNDLE9BQU8sR0FBRyxDQUFBO0lBQ1osQ0FBQzs7eUdBakxVLFlBQVk7NkdBQVosWUFBWSxjQUZYLE1BQU07MkZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uL2NvbnN0cy90aW1lJ1xyXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJ2J4LXJlc3QvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50J1xyXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJ1xyXG5pbXBvcnQgeyBEYXRlVGltZU9wdGlvbnMgfSBmcm9tICdsdXhvbi9zcmMvZGF0ZXRpbWUnXHJcbmltcG9ydCB7IFJFU1RfU0VUVElOR1MgfSBmcm9tICcuLi9zZXR0aW5ncyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZXMge1xyXG5cclxuICB0b1N0cih2YWw6IGFueSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKHZhbCkgPyBTdHJpbmcodmFsKSA6ICcnXHJcbiAgfVxyXG5cclxuICB0b051bSh2YWw6IGFueSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gKHZhbCAmJiBOdW1iZXIodmFsKSkgPyBOdW1iZXIodmFsKSA6IDBcclxuICB9XHJcblxyXG4gIHRvRGF0ZSh2YWw6IG51bWJlciB8IHN0cmluZyB8IERhdGUsIGZvcm1hdD86IHN0cmluZywgb3B0PzogRGF0ZVRpbWVPcHRpb25zKTogRGF0ZSB7XHJcbiAgICBpZiAodmFsIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICByZXR1cm4gdmFsXHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ3N0cmluZycpIHtcclxuICAgICAgaWYgKGZvcm1hdCkge1xyXG4gICAgICAgIGlmIChvcHQpIHtcclxuICAgICAgICAgIHJldHVybiBEYXRlVGltZS5mcm9tRm9ybWF0KHZhbCwgZm9ybWF0LCBvcHQpLnRvSlNEYXRlKClcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQpLnRvSlNEYXRlKClcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT0gJ251bWJlcicpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbClcclxuICAgIH1cclxuICAgIGNvbnNvbGUuZXJyb3IoJ1dyb25nIGRhdGUgZm9ybWF0JywgdmFsLCBmb3JtYXQpXHJcbiAgICB0aHJvdyAnV3JvbmcgZGF0ZSBmb3JtYXQnXHJcbiAgfVxyXG5cclxuICBnZXRCWFN0clRpbWUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50b0lTT1N0cmluZ1dpdGhUaW1lem9uZShkYXRlKVxyXG4gIH1cclxuXHJcbiAgdG9JU09TdHJpbmdXaXRoVGltZXpvbmUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0ek9mZnNldCA9IC1kYXRlLmdldFRpbWV6b25lT2Zmc2V0KClcclxuICAgIGNvbnN0IGRpZmYgPSB0ek9mZnNldCA+PSAwID8gJysnIDogJy0nXHJcbiAgICBjb25zdCBwYWQgPSAobjogbnVtYmVyKSA9PiBgJHtNYXRoLmZsb29yKE1hdGguYWJzKG4pKX1gLnBhZFN0YXJ0KDIsICcwJylcclxuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXRNb250aCgpICsgMSkgK1xyXG4gICAgICAnLScgKyBwYWQoZGF0ZS5nZXREYXRlKCkpICtcclxuICAgICAgJ1QnICsgcGFkKGRhdGUuZ2V0SG91cnMoKSkgK1xyXG4gICAgICAnOicgKyBwYWQoZGF0ZS5nZXRNaW51dGVzKCkpICtcclxuICAgICAgJzonICsgcGFkKGRhdGUuZ2V0U2Vjb25kcygpKSArXHJcbiAgICAgIGRpZmYgKyBwYWQodHpPZmZzZXQgLyA2MCkgK1xyXG4gICAgICAnOicgKyBwYWQodHpPZmZzZXQgJSA2MClcclxuICB9O1xyXG5cclxuICB0b0Jvb2wodmFsOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZW9mIHZhbCkge1xyXG4gICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgIHZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgaWYgKHZhbCA9PT0gJ24nIHx8IHZhbCA9PT0gJ3knKSB7IC8vINCx0LjRgtGA0LjQutGB0L7QstGL0LUg0L/QvtC90Y/RgtC40Y8g0L4gYm9vbFxyXG4gICAgICAgICAgcmV0dXJuIHZhbCA9PT0gJ3knXHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdmYWxzZScpIHsgLy8g0LHQuNGC0YDQuNC60YHQvtCy0YvQtSDQv9C+0L3Rj9GC0LjRjyDQviBib29sXHJcbiAgICAgICAgICByZXR1cm4gdmFsID09PSAndHJ1ZSdcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBCb29sZWFuKHZhbClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvQlhZb3JOKHZhbDogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuICh2YWwpID8gJ1knIDogJ04nXHJcbiAgfVxyXG5cclxuICB0eXBlb2YodmFsOiBhbnkpIHtcclxuICAgIHJldHVybiB0eXBlb2YgdmFsXHJcbiAgfVxyXG5cclxuICB0eXBlRGVmQ2xhc3ModmFsOiBvYmplY3QpOiB1bmRlZmluZWQgfCBudWxsIHwgJ2RhdGUnIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICByZXR1cm4gJ2RhdGUnXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvSlNPTih2YWw6IG9iamVjdCkge1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbClcclxuICB9XHJcblxyXG4gIGZyb21KU09OPFQ+KHZhbDogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWwpXHJcbiAgfVxyXG5cclxuICBwcmVwYXJlQmFzZUFkZHJlc3ModXJsOiBzdHJpbmcsIGFkZDogc3RyaW5nID0gJycpIHtcclxuICAgIGlmICh1cmwuc2VhcmNoKCdodHRwczovLycpICE9PSAwICYmIHVybC5zZWFyY2goJ2h0dHA6Ly8nKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cHM6Ly8nICsgdXJsXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVybC5sYXN0SW5kZXhPZignLycpICE9PSAodXJsLmxlbmd0aCAtIDEpKSB7XHJcbiAgICAgIHVybCA9IHVybCArICcvJ1xyXG4gICAgfVxyXG5cclxuICAgIHVybCA9IHVybCArIGFkZFxyXG5cclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcblxyXG4gIGdldEhvbWVBZGRyZXNzKCkge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMucHJlcGFyZUJhc2VBZGRyZXNzKGVudmlyb25tZW50LnVybHMuaG9tZSlcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlQmFzZUFkZHJlc3MoUkVTVF9TRVRUSU5HUy51cmxzLmhvbWUpXHJcbiAgfVxyXG5cclxuICBkYXRlRGlmZihhOiBEYXRlLCBiOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoYS52YWx1ZU9mKCkgLSBiLnZhbHVlT2YoKSlcclxuICB9XHJcblxyXG4gIGRhdGVEaWZmSW5EYXlzKGE6IERhdGUsIGI6IERhdGUpIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMuZGF0ZURpZmYoYSwgYikudmFsdWVPZigpIC8gdGltZS5vbmVEYXlNaWxsaXNlY29uZHMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZTY0RmlsZShmaWxlOiBGaWxlKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpXHJcbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpXHJcbiAgICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGFzeW5jIGdldEJhc2U2NEZpbGVMaWtlU3RyKGZpbGU6IEZpbGUpOiBQcm9taXNlPHsgaGVhZGVyOiBzdHJpbmcsIHZhbDogc3RyaW5nIH0gfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmdldEJhc2U2NEZpbGUoZmlsZSlcclxuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICBsZXQgc3BsaXQgPSByZXN1bHQuc3BsaXQoJywnKVxyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGhlYWRlcjogc3BsaXRbMF0sXHJcbiAgICAgICAgdmFsOiBzcGxpdFsxXVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuICBzdW1BcnJheShudW1iZXJzOiBudW1iZXJbXSkge1xyXG4gICAgcmV0dXJuIG51bWJlcnMucmVkdWNlKChhLCBiKSA9PiB7XHJcbiAgICAgIHJldHVybiBhICsgYjtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBpc0l0VGhlU2FtZURhdGUoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKSB7XHJcbiAgICByZXR1cm4gZGF0ZTEuZ2V0RGF0ZSgpID09PSBkYXRlMi5nZXREYXRlKClcclxuICAgICAgJiYgZGF0ZTEuZ2V0TW9udGgoKSA9PT0gZGF0ZTIuZ2V0TW9udGgoKVxyXG4gICAgICAmJiBkYXRlMS5nZXRGdWxsWWVhcigpID09PSBkYXRlMi5nZXRGdWxsWWVhcigpXHJcbiAgfVxyXG5cclxuICB0b1VuaXgoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoZGF0ZS52YWx1ZU9mKCkgLyAxMDAwKVxyXG4gIH1cclxuXHJcbiAgYXJyU3VtKHg6IG51bWJlcltdKSB7XHJcbiAgICBsZXQgcyA9IDA7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgcyArPSB4W2ldXHJcbiAgICB9XHJcbiAgICByZXR1cm4gc1xyXG4gIH1cclxuXHJcbiAgZ2V0QmFzZVVybEh0dHBzKHVybDogc3RyaW5nLCBjb21wb25lbnQgPSBmYWxzZSkge1xyXG4gICAgaWYgKGNvbXBvbmVudCkge1xyXG4gICAgICByZXR1cm4gZW5jb2RlVVJJKHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBlbmNvZGVVUkkoJ2h0dHBzOi8vJyArIHRoaXMuY3JvcFVybCh1cmwpICsgJy8nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyb3BVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHBzOi8vJywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJykgOiAnJ1xyXG4gICAgdXJsID0gKHVybCkgPyB1cmwucmVwbGFjZSgnaHR0cHM6JywgJycpIDogJydcclxuICAgIHVybCA9ICh1cmwpID8gdXJsLnJlcGxhY2UoJ2h0dHA6JywgJycpIDogJydcclxuICAgIHJldHVybiB1cmxcclxuICB9XHJcbn1cclxuIl19