@lifeready/core 1.0.15 → 1.0.16

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 (219) hide show
  1. package/README.md +62 -62
  2. package/bundles/lifeready-core.umd.js +14315 -14315
  3. package/bundles/lifeready-core.umd.js.map +1 -1
  4. package/bundles/lifeready-core.umd.min.js.map +1 -1
  5. package/esm2015/lib/_common/ast.js +40 -40
  6. package/esm2015/lib/_common/deferred-promise.js +24 -24
  7. package/esm2015/lib/_common/exceptions.js +157 -157
  8. package/esm2015/lib/_common/queries.gql.js +190 -190
  9. package/esm2015/lib/_common/run-outside-angular.js +79 -79
  10. package/esm2015/lib/_common/types.js +1 -1
  11. package/esm2015/lib/_common/utils.js +52 -52
  12. package/esm2015/lib/api/contact-card.gql.js +79 -79
  13. package/esm2015/lib/api/contact-card.service.js +154 -154
  14. package/esm2015/lib/api/contact-card2.gql.js +60 -60
  15. package/esm2015/lib/api/contact-card2.service.js +103 -103
  16. package/esm2015/lib/api/file.service.js +74 -74
  17. package/esm2015/lib/api/key-exchange.gql.js +188 -188
  18. package/esm2015/lib/api/key-exchange.service.js +442 -442
  19. package/esm2015/lib/api/key-exchange.types.js +18 -18
  20. package/esm2015/lib/api/key-exchange2.gql.js +171 -171
  21. package/esm2015/lib/api/key-exchange2.service.js +479 -479
  22. package/esm2015/lib/api/lock.gql.js +40 -40
  23. package/esm2015/lib/api/lock.service.js +64 -64
  24. package/esm2015/lib/api/lr-apollo.service.js +46 -46
  25. package/esm2015/lib/api/lr-graphql/index.js +6 -6
  26. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -155
  27. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -213
  28. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -51
  29. package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -48
  30. package/esm2015/lib/api/lr-graphql/lr.service.js +18 -18
  31. package/esm2015/lib/api/message.service.js +138 -138
  32. package/esm2015/lib/api/persist.service.js +181 -181
  33. package/esm2015/lib/api/query-processor/common-processors.service.js +93 -93
  34. package/esm2015/lib/api/query-processor/index.js +3 -3
  35. package/esm2015/lib/api/query-processor/query-processor.service.js +262 -262
  36. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -109
  37. package/esm2015/lib/api/shared-contact-card.service.js +119 -119
  38. package/esm2015/lib/api/shared-contact-card2.gql.js +41 -41
  39. package/esm2015/lib/api/shared-contact-card2.service.js +117 -117
  40. package/esm2015/lib/api/time.service.js +146 -146
  41. package/esm2015/lib/api/types/graphql.types.js +7 -7
  42. package/esm2015/lib/api/types/index.js +3 -3
  43. package/esm2015/lib/api/types/lr-graphql.types.js +101 -101
  44. package/esm2015/lib/auth/auth.config.js +57 -57
  45. package/esm2015/lib/auth/auth.gql.js +48 -48
  46. package/esm2015/lib/auth/auth.types.js +27 -27
  47. package/esm2015/lib/auth/idle.service.js +168 -168
  48. package/esm2015/lib/auth/idle.types.js +7 -7
  49. package/esm2015/lib/auth/lbop.service.js +355 -355
  50. package/esm2015/lib/auth/life-ready-auth.service.js +488 -488
  51. package/esm2015/lib/auth/password.service.js +320 -320
  52. package/esm2015/lib/auth/register.service.js +172 -172
  53. package/esm2015/lib/auth/two-factor.service.js +74 -74
  54. package/esm2015/lib/category/category-meta.service.js +99 -99
  55. package/esm2015/lib/category/category.gql.js +406 -406
  56. package/esm2015/lib/category/category.service.js +390 -390
  57. package/esm2015/lib/category/category.types.js +29 -29
  58. package/esm2015/lib/cryptography/cryptography.types.js +11 -11
  59. package/esm2015/lib/cryptography/encryption.service.js +189 -189
  60. package/esm2015/lib/cryptography/key-factory.service.js +237 -237
  61. package/esm2015/lib/cryptography/key-graph.service.js +299 -299
  62. package/esm2015/lib/cryptography/key-meta.service.js +200 -200
  63. package/esm2015/lib/cryptography/key.service.js +124 -124
  64. package/esm2015/lib/cryptography/slip39.service.js +169 -169
  65. package/esm2015/lib/cryptography/web-crypto.service.js +29 -29
  66. package/esm2015/lib/items2/item2.gql.js +139 -139
  67. package/esm2015/lib/items2/item2.service.js +498 -498
  68. package/esm2015/lib/items2/item2.types.js +1 -1
  69. package/esm2015/lib/life-ready.config.js +84 -84
  70. package/esm2015/lib/life-ready.module.js +74 -74
  71. package/esm2015/lib/notification/notification.gql.js +43 -43
  72. package/esm2015/lib/notification/notification.service.js +118 -118
  73. package/esm2015/lib/plan/plan.gql.js +123 -123
  74. package/esm2015/lib/plan/plan.service.js +149 -149
  75. package/esm2015/lib/plan/plan.types.js +11 -11
  76. package/esm2015/lib/record/record-attachment.service.js +101 -101
  77. package/esm2015/lib/record/record.gql.js +179 -179
  78. package/esm2015/lib/record/record.service.js +206 -206
  79. package/esm2015/lib/record/record.types.js +15 -15
  80. package/esm2015/lib/record-type/record-type.service.js +75 -75
  81. package/esm2015/lib/record-type/record-type.types.js +28 -28
  82. package/esm2015/lib/scenario/scenario.constants.js +2 -2
  83. package/esm2015/lib/scenario/scenario.controller.js +34 -34
  84. package/esm2015/lib/scenario/scenario.gql.js +72 -72
  85. package/esm2015/lib/scenario/scenario.gql.private.js +198 -198
  86. package/esm2015/lib/scenario/scenario.service.js +538 -538
  87. package/esm2015/lib/scenario/scenario.types.js +1 -1
  88. package/esm2015/lib/trusted-parties/tp-assembly.gql.private.js +22 -22
  89. package/esm2015/lib/trusted-parties/tp-assembly.js +362 -362
  90. package/esm2015/lib/trusted-parties/tp-assembly.types.js +1 -1
  91. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +113 -113
  92. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +129 -129
  93. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +4 -4
  94. package/esm2015/lib/trusted-parties/tp-password-reset.controller.js +34 -34
  95. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +236 -236
  96. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +95 -95
  97. package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -148
  98. package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -326
  99. package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -41
  100. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -87
  101. package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -215
  102. package/esm2015/lib/users/profile-details.service.js +214 -214
  103. package/esm2015/lib/users/profile.gql.js +97 -97
  104. package/esm2015/lib/users/profile.service.js +169 -169
  105. package/esm2015/lib/users/profile.types.js +34 -34
  106. package/esm2015/lib/users/user.gql.js +60 -60
  107. package/esm2015/lib/users/user.service.js +79 -79
  108. package/esm2015/lib/users/user.types.js +5 -5
  109. package/esm2015/lifeready-core.js +13 -13
  110. package/esm2015/public-api.js +71 -71
  111. package/fesm2015/lifeready-core.js +12258 -12258
  112. package/fesm2015/lifeready-core.js.map +1 -1
  113. package/lib/_common/ast.d.ts +11 -11
  114. package/lib/_common/deferred-promise.d.ts +12 -12
  115. package/lib/_common/exceptions.d.ts +109 -109
  116. package/lib/_common/queries.gql.d.ts +10 -10
  117. package/lib/_common/run-outside-angular.d.ts +14 -14
  118. package/lib/_common/types.d.ts +10 -10
  119. package/lib/_common/utils.d.ts +9 -9
  120. package/lib/api/contact-card.gql.d.ts +7 -7
  121. package/lib/api/contact-card.service.d.ts +52 -52
  122. package/lib/api/contact-card2.gql.d.ts +34 -34
  123. package/lib/api/contact-card2.service.d.ts +49 -49
  124. package/lib/api/file.service.d.ts +18 -18
  125. package/lib/api/key-exchange.gql.d.ts +9 -9
  126. package/lib/api/key-exchange.service.d.ts +39 -39
  127. package/lib/api/key-exchange.types.d.ts +196 -196
  128. package/lib/api/key-exchange2.gql.d.ts +125 -125
  129. package/lib/api/key-exchange2.service.d.ts +187 -187
  130. package/lib/api/lock.gql.d.ts +27 -27
  131. package/lib/api/lock.service.d.ts +34 -34
  132. package/lib/api/lr-apollo.service.d.ts +15 -15
  133. package/lib/api/lr-graphql/index.d.ts +5 -5
  134. package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -60
  135. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +28 -28
  136. package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -28
  137. package/lib/api/lr-graphql/lr-mutation.d.ts +8 -8
  138. package/lib/api/lr-graphql/lr.service.d.ts +9 -9
  139. package/lib/api/message.service.d.ts +58 -58
  140. package/lib/api/persist.service.d.ts +31 -31
  141. package/lib/api/query-processor/common-processors.service.d.ts +36 -36
  142. package/lib/api/query-processor/index.d.ts +2 -2
  143. package/lib/api/query-processor/query-processor.service.d.ts +18 -18
  144. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -15
  145. package/lib/api/shared-contact-card.service.d.ts +33 -33
  146. package/lib/api/shared-contact-card2.gql.d.ts +36 -36
  147. package/lib/api/shared-contact-card2.service.d.ts +45 -45
  148. package/lib/api/time.service.d.ts +16 -16
  149. package/lib/api/types/graphql.types.d.ts +29 -29
  150. package/lib/api/types/index.d.ts +2 -2
  151. package/lib/api/types/lr-graphql.types.d.ts +502 -502
  152. package/lib/auth/auth.config.d.ts +5 -5
  153. package/lib/auth/auth.gql.d.ts +15 -15
  154. package/lib/auth/auth.types.d.ts +66 -66
  155. package/lib/auth/idle.service.d.ts +40 -40
  156. package/lib/auth/idle.types.d.ts +10 -10
  157. package/lib/auth/lbop.service.d.ts +91 -91
  158. package/lib/auth/life-ready-auth.service.d.ts +61 -61
  159. package/lib/auth/password.service.d.ts +78 -78
  160. package/lib/auth/register.service.d.ts +25 -25
  161. package/lib/auth/two-factor.service.d.ts +15 -15
  162. package/lib/category/category-meta.service.d.ts +23 -23
  163. package/lib/category/category.gql.d.ts +45 -45
  164. package/lib/category/category.service.d.ts +67 -67
  165. package/lib/category/category.types.d.ts +79 -79
  166. package/lib/cryptography/cryptography.types.d.ts +83 -83
  167. package/lib/cryptography/encryption.service.d.ts +41 -41
  168. package/lib/cryptography/key-factory.service.d.ts +38 -38
  169. package/lib/cryptography/key-graph.service.d.ts +41 -41
  170. package/lib/cryptography/key-meta.service.d.ts +44 -44
  171. package/lib/cryptography/key.service.d.ts +36 -36
  172. package/lib/cryptography/slip39.service.d.ts +43 -43
  173. package/lib/cryptography/web-crypto.service.d.ts +5 -5
  174. package/lib/items2/item2.gql.d.ts +123 -123
  175. package/lib/items2/item2.service.d.ts +203 -203
  176. package/lib/items2/item2.types.d.ts +70 -70
  177. package/lib/life-ready.config.d.ts +14 -14
  178. package/lib/life-ready.module.d.ts +5 -5
  179. package/lib/notification/notification.gql.d.ts +37 -37
  180. package/lib/notification/notification.service.d.ts +63 -63
  181. package/lib/plan/plan.gql.d.ts +11 -11
  182. package/lib/plan/plan.service.d.ts +33 -33
  183. package/lib/plan/plan.types.d.ts +31 -31
  184. package/lib/record/record-attachment.service.d.ts +16 -16
  185. package/lib/record/record.gql.d.ts +14 -14
  186. package/lib/record/record.service.d.ts +25 -25
  187. package/lib/record/record.types.d.ts +57 -57
  188. package/lib/record-type/record-type.service.d.ts +11 -11
  189. package/lib/record-type/record-type.types.d.ts +50 -50
  190. package/lib/scenario/scenario.constants.d.ts +1 -1
  191. package/lib/scenario/scenario.controller.d.ts +10 -10
  192. package/lib/scenario/scenario.gql.d.ts +62 -62
  193. package/lib/scenario/scenario.gql.private.d.ts +16 -16
  194. package/lib/scenario/scenario.service.d.ts +233 -233
  195. package/lib/scenario/scenario.types.d.ts +50 -50
  196. package/lib/trusted-parties/tp-assembly.d.ts +177 -177
  197. package/lib/trusted-parties/tp-assembly.gql.private.d.ts +5 -5
  198. package/lib/trusted-parties/tp-assembly.types.d.ts +38 -38
  199. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -20
  200. package/lib/trusted-parties/tp-password-reset-user.service.d.ts +35 -35
  201. package/lib/trusted-parties/tp-password-reset.constants.d.ts +3 -3
  202. package/lib/trusted-parties/tp-password-reset.controller.d.ts +10 -10
  203. package/lib/trusted-parties/tp-password-reset.gql.d.ts +223 -223
  204. package/lib/trusted-parties/tp-password-reset.service.d.ts +188 -188
  205. package/lib/trusted-parties/trusted-party.gql.d.ts +9 -9
  206. package/lib/trusted-parties/trusted-party.service.d.ts +44 -44
  207. package/lib/trusted-parties/trusted-party.types.d.ts +102 -102
  208. package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -79
  209. package/lib/trusted-parties/trusted-party2.service.d.ts +114 -114
  210. package/lib/users/profile-details.service.d.ts +21 -21
  211. package/lib/users/profile.gql.d.ts +11 -11
  212. package/lib/users/profile.service.d.ts +35 -35
  213. package/lib/users/profile.types.d.ts +96 -96
  214. package/lib/users/user.gql.d.ts +9 -9
  215. package/lib/users/user.service.d.ts +12 -12
  216. package/lib/users/user.types.d.ts +23 -23
  217. package/lifeready-core.d.ts +12 -12
  218. package/package.json +1 -1
  219. package/public-api.d.ts +67 -67
@@ -1,99 +1,99 @@
1
- import { __awaiter } from "tslib";
2
- import { HttpClient } from '@angular/common/http';
3
- import { Injectable } from '@angular/core';
4
- import { CategoryService } from './category.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- import * as i2 from "./category.service";
8
- export class LoadedCategoryTree {
9
- }
10
- export class CategoryMetaService {
11
- constructor(http, categoryService) {
12
- this.http = http;
13
- this.categoryService = categoryService;
14
- }
15
- getCoreCategories() {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- if (!this.categories) {
18
- this.categories = yield this.http
19
- .get('/assets/meta/categories.json')
20
- .toPromise();
21
- }
22
- return Promise.resolve(this.categories);
23
- });
24
- }
25
- loadCategories(categoryTrees, selectedCategoryId, trustedPartyId) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- const rootCategories = trustedPartyId
28
- ? (yield this.categoryService.getTrustedPartyCategories(trustedPartyId))
29
- .categories
30
- : yield this.categoryService.getCategories();
31
- const selectedCategory = selectedCategoryId
32
- ? yield this.categoryService.getCategory(selectedCategoryId)
33
- : null;
34
- const categoryPromises = categoryTrees.map((x) => __awaiter(this, void 0, void 0, function* () {
35
- return ({
36
- categoryTree: x,
37
- category: yield this.loadCategory([...x], rootCategories, selectedCategory),
38
- });
39
- }));
40
- const loadedCategories = yield Promise.all(categoryPromises);
41
- const loadedCategoryTree = {
42
- categories: [],
43
- missingCategories: [],
44
- };
45
- loadedCategories.forEach((x) => x.category
46
- ? loadedCategoryTree.categories.push(x.category)
47
- : loadedCategoryTree.missingCategories.push(x.categoryTree));
48
- return loadedCategoryTree;
49
- });
50
- }
51
- loadCategoriesForRole(categories) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- const rootCategories = yield this.categoryService.getCategories();
54
- return yield Promise.all(categories.map((x) => __awaiter(this, void 0, void 0, function* () {
55
- return ({
56
- category: yield this.loadCategory([...x.category], rootCategories),
57
- accessLevel: x.accessLevel,
58
- });
59
- })));
60
- });
61
- }
62
- loadCategory(categoryTree, categories, selectedCategory) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- const name = categoryTree.shift();
65
- const currentCategory = categories.find((x) => x.code === name && !x.isCustom);
66
- if (currentCategory) {
67
- if (categoryTree.length) {
68
- const { subCategories } = yield this.categoryService.getCategory(currentCategory.id);
69
- return this.loadCategory(categoryTree, subCategories, selectedCategory);
70
- }
71
- else {
72
- const { category } = yield this.categoryService.getCategory(currentCategory.id);
73
- if (selectedCategory &&
74
- selectedCategory.category.parents.some((x) => x.id === category.id)) {
75
- return selectedCategory.category;
76
- }
77
- return category;
78
- }
79
- }
80
- else if (categoryTree.length) {
81
- return this.loadCategory(categoryTree, categories, selectedCategory);
82
- }
83
- else {
84
- return null;
85
- }
86
- });
87
- }
88
- }
89
- CategoryMetaService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CategoryMetaService_Factory() { return new CategoryMetaService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.CategoryService)); }, token: CategoryMetaService, providedIn: "root" });
90
- CategoryMetaService.decorators = [
91
- { type: Injectable, args: [{
92
- providedIn: 'root',
93
- },] }
94
- ];
95
- CategoryMetaService.ctorParameters = () => [
96
- { type: HttpClient },
97
- { type: CategoryService }
98
- ];
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktbWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL2tjLWNsaWVudC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jYXRlZ29yeS9jYXRlZ29yeS1tZXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQVNyRCxNQUFNLE9BQU8sa0JBQWtCO0NBRzlCO0FBS0QsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUNVLElBQWdCLEVBQ2hCLGVBQWdDO1FBRGhDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQ3ZDLENBQUM7SUFFUyxpQkFBaUI7O1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUk7cUJBQzlCLEdBQUcsQ0FBb0IsOEJBQThCLENBQUM7cUJBQ3RELFNBQVMsRUFBRSxDQUFDO2FBQ2hCO1lBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxDQUFDO0tBQUE7SUFFSyxjQUFjLENBQ2xCLGFBQXlCLEVBQ3pCLGtCQUEyQixFQUMzQixjQUF1Qjs7WUFFdkIsTUFBTSxjQUFjLEdBQUcsY0FBYztnQkFDbkMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxDQUFDO3FCQUNuRSxVQUFVO2dCQUNmLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFL0Ms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QkFDbEM7b0JBQ0QsT0FBTyxRQUFRLENBQUM7aUJBQ2pCO2FBQ0Y7aUJBQU0sSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUM5QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2FBQ3RFO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7Ozs7WUEzR0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFsQlEsVUFBVTtZQUVWLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENhdGVnb3J5U2VydmljZSB9IGZyb20gJy4vY2F0ZWdvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQWNjZXNzTGV2ZWwsXHJcbiAgQ2F0ZWdvcnksXHJcbiAgQ3VycmVudENhdGVnb3J5LFxyXG4gIERlZmF1bHRDYXRlZ29yeSxcclxuICBWYXVsdENhdGVnb3J5LFxyXG59IGZyb20gJy4vY2F0ZWdvcnkudHlwZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIExvYWRlZENhdGVnb3J5VHJlZSB7XHJcbiAgY2F0ZWdvcmllczogQ3VycmVudENhdGVnb3J5W107XHJcbiAgbWlzc2luZ0NhdGVnb3JpZXM6IHN0cmluZ1tdW107XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeU1ldGFTZXJ2aWNlIHtcclxuICBwcml2YXRlIGNhdGVnb3JpZXM6IERlZmF1bHRDYXRlZ29yeVtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgY2F0ZWdvcnlTZXJ2aWNlOiBDYXRlZ29yeVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRDb3JlQ2F0ZWdvcmllcygpOiBQcm9taXNlPERlZmF1bHRDYXRlZ29yeVtdPiB7XHJcbiAgICBpZiAoIXRoaXMuY2F0ZWdvcmllcykge1xyXG4gICAgICB0aGlzLmNhdGVnb3JpZXMgPSBhd2FpdCB0aGlzLmh0dHBcclxuICAgICAgICAuZ2V0PERlZmF1bHRDYXRlZ29yeVtdPignL2Fzc2V0cy9tZXRhL2NhdGVnb3JpZXMuanNvbicpXHJcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmNhdGVnb3JpZXMpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbG9hZENhdGVnb3JpZXMoXHJcbiAgICBjYXRlZ29yeVRyZWVzOiBzdHJpbmdbXVtdLFxyXG4gICAgc2VsZWN0ZWRDYXRlZ29yeUlkPzogc3RyaW5nLFxyXG4gICAgdHJ1c3RlZFBhcnR5SWQ/OiBzdHJpbmdcclxuICApOiBQcm9taXNlPExvYWRlZENhdGVnb3J5VHJlZT4ge1xyXG4gICAgY29uc3Qgcm9vdENhdGVnb3JpZXMgPSB0cnVzdGVkUGFydHlJZFxyXG4gICAgICA/IChhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRUcnVzdGVkUGFydHlDYXRlZ29yaWVzKHRydXN0ZWRQYXJ0eUlkKSlcclxuICAgICAgICAgIC5jYXRlZ29yaWVzXHJcbiAgICAgIDogYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZ2V0Q2F0ZWdvcmllcygpO1xyXG5cclxuICAgIGNvbnN0IHNlbGVjdGVkQ2F0ZWdvcnkgPSBzZWxlY3RlZENhdGVnb3J5SWRcclxuICAgICAgPyBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShzZWxlY3RlZENhdGVnb3J5SWQpXHJcbiAgICAgIDogbnVsbDtcclxuXHJcbiAgICBjb25zdCBjYXRlZ29yeVByb21pc2VzID0gY2F0ZWdvcnlUcmVlcy5tYXAoYXN5bmMgKHgpID0+ICh7XHJcbiAgICAgIGNhdGVnb3J5VHJlZTogeCxcclxuICAgICAgY2F0ZWdvcnk6IGF3YWl0IHRoaXMubG9hZENhdGVnb3J5KFxyXG4gICAgICAgIFsuLi54XSxcclxuICAgICAgICByb290Q2F0ZWdvcmllcyxcclxuICAgICAgICBzZWxlY3RlZENhdGVnb3J5XHJcbiAgICAgICksXHJcbiAgICB9KSk7XHJcblxyXG4gICAgY29uc3QgbG9hZGVkQ2F0ZWdvcmllcyA9IGF3YWl0IFByb21pc2UuYWxsKGNhdGVnb3J5UHJvbWlzZXMpO1xyXG5cclxuICAgIGNvbnN0IGxvYWRlZENhdGVnb3J5VHJlZTogTG9hZGVkQ2F0ZWdvcnlUcmVlID0ge1xyXG4gICAgICBjYXRlZ29yaWVzOiBbXSxcclxuICAgICAgbWlzc2luZ0NhdGVnb3JpZXM6IFtdLFxyXG4gICAgfTtcclxuXHJcbiAgICBsb2FkZWRDYXRlZ29yaWVzLmZvckVhY2goKHgpID0+XHJcbiAgICAgIHguY2F0ZWdvcnlcclxuICAgICAgICA/IGxvYWRlZENhdGVnb3J5VHJlZS5jYXRlZ29yaWVzLnB1c2goeC5jYXRlZ29yeSlcclxuICAgICAgICA6IGxvYWRlZENhdGVnb3J5VHJlZS5taXNzaW5nQ2F0ZWdvcmllcy5wdXNoKHguY2F0ZWdvcnlUcmVlKVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gbG9hZGVkQ2F0ZWdvcnlUcmVlO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbG9hZENhdGVnb3JpZXNGb3JSb2xlKFxyXG4gICAgY2F0ZWdvcmllczogeyBjYXRlZ29yeTogc3RyaW5nW107IGFjY2Vzc0xldmVsOiBBY2Nlc3NMZXZlbCB9W11cclxuICApOiBQcm9taXNlPHsgY2F0ZWdvcnk6IEN1cnJlbnRDYXRlZ29yeTsgYWNjZXNzTGV2ZWw6IEFjY2Vzc0xldmVsIH1bXT4ge1xyXG4gICAgY29uc3Qgcm9vdENhdGVnb3JpZXMgPSBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yaWVzKCk7XHJcblxyXG4gICAgcmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKFxyXG4gICAgICBjYXRlZ29yaWVzLm1hcChhc3luYyAoeCkgPT4gKHtcclxuICAgICAgICBjYXRlZ29yeTogYXdhaXQgdGhpcy5sb2FkQ2F0ZWdvcnkoWy4uLnguY2F0ZWdvcnldLCByb290Q2F0ZWdvcmllcyksXHJcbiAgICAgICAgYWNjZXNzTGV2ZWw6IHguYWNjZXNzTGV2ZWwsXHJcbiAgICAgIH0pKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgbG9hZENhdGVnb3J5KFxyXG4gICAgY2F0ZWdvcnlUcmVlOiBzdHJpbmdbXSxcclxuICAgIGNhdGVnb3JpZXM6IENhdGVnb3J5W10sXHJcbiAgICBzZWxlY3RlZENhdGVnb3J5PzogVmF1bHRDYXRlZ29yeVxyXG4gICk6IFByb21pc2U8Q3VycmVudENhdGVnb3J5PiB7XHJcbiAgICBjb25zdCBuYW1lID0gY2F0ZWdvcnlUcmVlLnNoaWZ0KCk7XHJcblxyXG4gICAgY29uc3QgY3VycmVudENhdGVnb3J5ID0gY2F0ZWdvcmllcy5maW5kKFxyXG4gICAgICAoeCkgPT4geC5jb2RlID09PSBuYW1lICYmICF4LmlzQ3VzdG9tXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChjdXJyZW50Q2F0ZWdvcnkpIHtcclxuICAgICAgaWYgKGNhdGVnb3J5VHJlZS5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCB7IHN1YkNhdGVnb3JpZXMgfSA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3J5KFxyXG4gICAgICAgICAgY3VycmVudENhdGVnb3J5LmlkXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkQ2F0ZWdvcnkoY2F0ZWdvcnlUcmVlLCBzdWJDYXRlZ29yaWVzLCBzZWxlY3RlZENhdGVnb3J5KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCB7IGNhdGVnb3J5IH0gPSBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yeShcclxuICAgICAgICAgIGN1cnJlbnRDYXRlZ29yeS5pZFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnkgJiZcclxuICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnkuY2F0ZWdvcnkucGFyZW50cy5zb21lKCh4KSA9PiB4LmlkID09PSBjYXRlZ29yeS5pZClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHJldHVybiBzZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2F0ZWdvcnk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoY2F0ZWdvcnlUcmVlLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2FkQ2F0ZWdvcnkoY2F0ZWdvcnlUcmVlLCBjYXRlZ29yaWVzLCBzZWxlY3RlZENhdGVnb3J5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { __awaiter } from "tslib";
2
+ import { HttpClient } from '@angular/common/http';
3
+ import { Injectable } from '@angular/core';
4
+ import { CategoryService } from './category.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ import * as i2 from "./category.service";
8
+ export class LoadedCategoryTree {
9
+ }
10
+ export class CategoryMetaService {
11
+ constructor(http, categoryService) {
12
+ this.http = http;
13
+ this.categoryService = categoryService;
14
+ }
15
+ getCoreCategories() {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ if (!this.categories) {
18
+ this.categories = yield this.http
19
+ .get('/assets/meta/categories.json')
20
+ .toPromise();
21
+ }
22
+ return Promise.resolve(this.categories);
23
+ });
24
+ }
25
+ loadCategories(categoryTrees, selectedCategoryId, trustedPartyId) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const rootCategories = trustedPartyId
28
+ ? (yield this.categoryService.getTrustedPartyCategories(trustedPartyId))
29
+ .categories
30
+ : yield this.categoryService.getCategories();
31
+ const selectedCategory = selectedCategoryId
32
+ ? yield this.categoryService.getCategory(selectedCategoryId)
33
+ : null;
34
+ const categoryPromises = categoryTrees.map((x) => __awaiter(this, void 0, void 0, function* () {
35
+ return ({
36
+ categoryTree: x,
37
+ category: yield this.loadCategory([...x], rootCategories, selectedCategory),
38
+ });
39
+ }));
40
+ const loadedCategories = yield Promise.all(categoryPromises);
41
+ const loadedCategoryTree = {
42
+ categories: [],
43
+ missingCategories: [],
44
+ };
45
+ loadedCategories.forEach((x) => x.category
46
+ ? loadedCategoryTree.categories.push(x.category)
47
+ : loadedCategoryTree.missingCategories.push(x.categoryTree));
48
+ return loadedCategoryTree;
49
+ });
50
+ }
51
+ loadCategoriesForRole(categories) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const rootCategories = yield this.categoryService.getCategories();
54
+ return yield Promise.all(categories.map((x) => __awaiter(this, void 0, void 0, function* () {
55
+ return ({
56
+ category: yield this.loadCategory([...x.category], rootCategories),
57
+ accessLevel: x.accessLevel,
58
+ });
59
+ })));
60
+ });
61
+ }
62
+ loadCategory(categoryTree, categories, selectedCategory) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const name = categoryTree.shift();
65
+ const currentCategory = categories.find((x) => x.code === name && !x.isCustom);
66
+ if (currentCategory) {
67
+ if (categoryTree.length) {
68
+ const { subCategories } = yield this.categoryService.getCategory(currentCategory.id);
69
+ return this.loadCategory(categoryTree, subCategories, selectedCategory);
70
+ }
71
+ else {
72
+ const { category } = yield this.categoryService.getCategory(currentCategory.id);
73
+ if (selectedCategory &&
74
+ selectedCategory.category.parents.some((x) => x.id === category.id)) {
75
+ return selectedCategory.category;
76
+ }
77
+ return category;
78
+ }
79
+ }
80
+ else if (categoryTree.length) {
81
+ return this.loadCategory(categoryTree, categories, selectedCategory);
82
+ }
83
+ else {
84
+ return null;
85
+ }
86
+ });
87
+ }
88
+ }
89
+ CategoryMetaService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CategoryMetaService_Factory() { return new CategoryMetaService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.CategoryService)); }, token: CategoryMetaService, providedIn: "root" });
90
+ CategoryMetaService.decorators = [
91
+ { type: Injectable, args: [{
92
+ providedIn: 'root',
93
+ },] }
94
+ ];
95
+ CategoryMetaService.ctorParameters = () => [
96
+ { type: HttpClient },
97
+ { type: CategoryService }
98
+ ];
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktbWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9vcHQvYXRsYXNzaWFuL3BpcGVsaW5lcy9hZ2VudC9idWlsZC9wcm9qZWN0cy9jb3JlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jYXRlZ29yeS9jYXRlZ29yeS1tZXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQVNyRCxNQUFNLE9BQU8sa0JBQWtCO0NBRzlCO0FBS0QsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUNVLElBQWdCLEVBQ2hCLGVBQWdDO1FBRGhDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQ3ZDLENBQUM7SUFFUyxpQkFBaUI7O1lBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUk7cUJBQzlCLEdBQUcsQ0FBb0IsOEJBQThCLENBQUM7cUJBQ3RELFNBQVMsRUFBRSxDQUFDO2FBQ2hCO1lBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxDQUFDO0tBQUE7SUFFSyxjQUFjLENBQ2xCLGFBQXlCLEVBQ3pCLGtCQUEyQixFQUMzQixjQUF1Qjs7WUFFdkIsTUFBTSxjQUFjLEdBQUcsY0FBYztnQkFDbkMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxDQUFDO3FCQUNuRSxVQUFVO2dCQUNmLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxF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QUFDLFFBQVEsQ0FBQztxQkFDbEM7b0JBQ0QsT0FBTyxRQUFRLENBQUM7aUJBQ2pCO2FBQ0Y7aUJBQU0sSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO2dCQUM5QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2FBQ3RFO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDO0tBQUE7Ozs7WUEzR0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFsQlEsVUFBVTtZQUVWLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYXRlZ29yeS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEFjY2Vzc0xldmVsLFxuICBDYXRlZ29yeSxcbiAgQ3VycmVudENhdGVnb3J5LFxuICBEZWZhdWx0Q2F0ZWdvcnksXG4gIFZhdWx0Q2F0ZWdvcnksXG59IGZyb20gJy4vY2F0ZWdvcnkudHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgTG9hZGVkQ2F0ZWdvcnlUcmVlIHtcbiAgY2F0ZWdvcmllczogQ3VycmVudENhdGVnb3J5W107XG4gIG1pc3NpbmdDYXRlZ29yaWVzOiBzdHJpbmdbXVtdO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlNZXRhU2VydmljZSB7XG4gIHByaXZhdGUgY2F0ZWdvcmllczogRGVmYXVsdENhdGVnb3J5W107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY2F0ZWdvcnlTZXJ2aWNlOiBDYXRlZ29yeVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb3JlQ2F0ZWdvcmllcygpOiBQcm9taXNlPERlZmF1bHRDYXRlZ29yeVtdPiB7XG4gICAgaWYgKCF0aGlzLmNhdGVnb3JpZXMpIHtcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IGF3YWl0IHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PERlZmF1bHRDYXRlZ29yeVtdPignL2Fzc2V0cy9tZXRhL2NhdGVnb3JpZXMuanNvbicpXG4gICAgICAgIC50b1Byb21pc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmNhdGVnb3JpZXMpO1xuICB9XG5cbiAgYXN5bmMgbG9hZENhdGVnb3JpZXMoXG4gICAgY2F0ZWdvcnlUcmVlczogc3RyaW5nW11bXSxcbiAgICBzZWxlY3RlZENhdGVnb3J5SWQ/OiBzdHJpbmcsXG4gICAgdHJ1c3RlZFBhcnR5SWQ/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxMb2FkZWRDYXRlZ29yeVRyZWU+IHtcbiAgICBjb25zdCByb290Q2F0ZWdvcmllcyA9IHRydXN0ZWRQYXJ0eUlkXG4gICAgICA/IChhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRUcnVzdGVkUGFydHlDYXRlZ29yaWVzKHRydXN0ZWRQYXJ0eUlkKSlcbiAgICAgICAgICAuY2F0ZWdvcmllc1xuICAgICAgOiBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yaWVzKCk7XG5cbiAgICBjb25zdCBzZWxlY3RlZENhdGVnb3J5ID0gc2VsZWN0ZWRDYXRlZ29yeUlkXG4gICAgICA/IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3J5KHNlbGVjdGVkQ2F0ZWdvcnlJZClcbiAgICAgIDogbnVsbDtcblxuICAgIGNvbnN0IGNhdGVnb3J5UHJvbWlzZXMgPSBjYXRlZ29yeVRyZWVzLm1hcChhc3luYyAoeCkgPT4gKHtcbiAgICAgIGNhdGVnb3J5VHJlZTogeCxcbiAgICAgIGNhdGVnb3J5OiBhd2FpdCB0aGlzLmxvYWRDYXRlZ29yeShcbiAgICAgICAgWy4uLnhdLFxuICAgICAgICByb290Q2F0ZWdvcmllcyxcbiAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeVxuICAgICAgKSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCBsb2FkZWRDYXRlZ29yaWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoY2F0ZWdvcnlQcm9taXNlcyk7XG5cbiAgICBjb25zdCBsb2FkZWRDYXRlZ29yeVRyZWU6IExvYWRlZENhdGVnb3J5VHJlZSA9IHtcbiAgICAgIGNhdGVnb3JpZXM6IFtdLFxuICAgICAgbWlzc2luZ0NhdGVnb3JpZXM6IFtdLFxuICAgIH07XG5cbiAgICBsb2FkZWRDYXRlZ29yaWVzLmZvckVhY2goKHgpID0+XG4gICAgICB4LmNhdGVnb3J5XG4gICAgICAgID8gbG9hZGVkQ2F0ZWdvcnlUcmVlLmNhdGVnb3JpZXMucHVzaCh4LmNhdGVnb3J5KVxuICAgICAgICA6IGxvYWRlZENhdGVnb3J5VHJlZS5taXNzaW5nQ2F0ZWdvcmllcy5wdXNoKHguY2F0ZWdvcnlUcmVlKVxuICAgICk7XG5cbiAgICByZXR1cm4gbG9hZGVkQ2F0ZWdvcnlUcmVlO1xuICB9XG5cbiAgYXN5bmMgbG9hZENhdGVnb3JpZXNGb3JSb2xlKFxuICAgIGNhdGVnb3JpZXM6IHsgY2F0ZWdvcnk6IHN0cmluZ1tdOyBhY2Nlc3NMZXZlbDogQWNjZXNzTGV2ZWwgfVtdXG4gICk6IFByb21pc2U8eyBjYXRlZ29yeTogQ3VycmVudENhdGVnb3J5OyBhY2Nlc3NMZXZlbDogQWNjZXNzTGV2ZWwgfVtdPiB7XG4gICAgY29uc3Qgcm9vdENhdGVnb3JpZXMgPSBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yaWVzKCk7XG5cbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjYXRlZ29yaWVzLm1hcChhc3luYyAoeCkgPT4gKHtcbiAgICAgICAgY2F0ZWdvcnk6IGF3YWl0IHRoaXMubG9hZENhdGVnb3J5KFsuLi54LmNhdGVnb3J5XSwgcm9vdENhdGVnb3JpZXMpLFxuICAgICAgICBhY2Nlc3NMZXZlbDogeC5hY2Nlc3NMZXZlbCxcbiAgICAgIH0pKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRDYXRlZ29yeShcbiAgICBjYXRlZ29yeVRyZWU6IHN0cmluZ1tdLFxuICAgIGNhdGVnb3JpZXM6IENhdGVnb3J5W10sXG4gICAgc2VsZWN0ZWRDYXRlZ29yeT86IFZhdWx0Q2F0ZWdvcnlcbiAgKTogUHJvbWlzZTxDdXJyZW50Q2F0ZWdvcnk+IHtcbiAgICBjb25zdCBuYW1lID0gY2F0ZWdvcnlUcmVlLnNoaWZ0KCk7XG5cbiAgICBjb25zdCBjdXJyZW50Q2F0ZWdvcnkgPSBjYXRlZ29yaWVzLmZpbmQoXG4gICAgICAoeCkgPT4geC5jb2RlID09PSBuYW1lICYmICF4LmlzQ3VzdG9tXG4gICAgKTtcblxuICAgIGlmIChjdXJyZW50Q2F0ZWdvcnkpIHtcbiAgICAgIGlmIChjYXRlZ29yeVRyZWUubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHsgc3ViQ2F0ZWdvcmllcyB9ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZ2V0Q2F0ZWdvcnkoXG4gICAgICAgICAgY3VycmVudENhdGVnb3J5LmlkXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRDYXRlZ29yeShjYXRlZ29yeVRyZWUsIHN1YkNhdGVnb3JpZXMsIHNlbGVjdGVkQ2F0ZWdvcnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeSB9ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZ2V0Q2F0ZWdvcnkoXG4gICAgICAgICAgY3VycmVudENhdGVnb3J5LmlkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnkgJiZcbiAgICAgICAgICBzZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5LnBhcmVudHMuc29tZSgoeCkgPT4geC5pZCA9PT0gY2F0ZWdvcnkuaWQpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBzZWxlY3RlZENhdGVnb3J5LmNhdGVnb3J5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYXRlZ29yeTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGNhdGVnb3J5VHJlZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmxvYWRDYXRlZ29yeShjYXRlZ29yeVRyZWUsIGNhdGVnb3JpZXMsIHNlbGVjdGVkQ2F0ZWdvcnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==