@lifeready/core 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/README.md +62 -62
  2. package/bundles/lifeready-core.umd.js +15445 -15445
  3. package/bundles/lifeready-core.umd.js.map +1 -1
  4. package/bundles/lifeready-core.umd.min.js +1 -1
  5. package/bundles/lifeready-core.umd.min.js.map +1 -1
  6. package/esm2015/lib/_common/ast.js +40 -40
  7. package/esm2015/lib/_common/deferred-promise.js +24 -24
  8. package/esm2015/lib/_common/exceptions.js +157 -157
  9. package/esm2015/lib/_common/queries.gql.js +190 -190
  10. package/esm2015/lib/_common/run-outside-angular.js +79 -79
  11. package/esm2015/lib/_common/types.js +1 -1
  12. package/esm2015/lib/_common/utils.js +44 -44
  13. package/esm2015/lib/api/contact-card.gql.js +79 -79
  14. package/esm2015/lib/api/contact-card.service.js +154 -154
  15. package/esm2015/lib/api/contact-card2.gql.js +60 -60
  16. package/esm2015/lib/api/contact-card2.service.js +103 -103
  17. package/esm2015/lib/api/file.service.js +74 -74
  18. package/esm2015/lib/api/item2.gql.js +110 -110
  19. package/esm2015/lib/api/item2.service.js +311 -311
  20. package/esm2015/lib/api/key-exchange.gql.js +188 -188
  21. package/esm2015/lib/api/key-exchange.service.js +442 -442
  22. package/esm2015/lib/api/key-exchange.types.js +18 -18
  23. package/esm2015/lib/api/key-exchange2.gql.js +171 -171
  24. package/esm2015/lib/api/key-exchange2.service.js +479 -479
  25. package/esm2015/lib/api/lock.gql.js +40 -40
  26. package/esm2015/lib/api/lock.service.js +64 -64
  27. package/esm2015/lib/api/lr-apollo.service.js +46 -46
  28. package/esm2015/lib/api/lr-graphql/index.js +6 -6
  29. package/esm2015/lib/api/lr-graphql/lr-graphql.service.js +155 -155
  30. package/esm2015/lib/api/lr-graphql/lr-merged-mutation.js +213 -213
  31. package/esm2015/lib/api/lr-graphql/lr-mutation-base.js +51 -51
  32. package/esm2015/lib/api/lr-graphql/lr-mutation.js +48 -48
  33. package/esm2015/lib/api/lr-graphql/lr.service.js +18 -18
  34. package/esm2015/lib/api/message.service.js +138 -138
  35. package/esm2015/lib/api/persist.service.js +181 -181
  36. package/esm2015/lib/api/query-processor/common-processors.service.js +93 -93
  37. package/esm2015/lib/api/query-processor/index.js +3 -3
  38. package/esm2015/lib/api/query-processor/query-processor.service.js +192 -192
  39. package/esm2015/lib/api/query-processor/tp-password-reset-processor.service.js +109 -109
  40. package/esm2015/lib/api/shared-contact-card.service.js +119 -119
  41. package/esm2015/lib/api/shared-contact-card2.gql.js +41 -41
  42. package/esm2015/lib/api/shared-contact-card2.service.js +117 -117
  43. package/esm2015/lib/api/time.service.js +146 -146
  44. package/esm2015/lib/api/types/graphql.types.js +7 -7
  45. package/esm2015/lib/api/types/index.js +3 -3
  46. package/esm2015/lib/api/types/lr-graphql.types.js +71 -71
  47. package/esm2015/lib/auth/auth.config.js +57 -57
  48. package/esm2015/lib/auth/auth.gql.js +48 -48
  49. package/esm2015/lib/auth/auth.types.js +27 -27
  50. package/esm2015/lib/auth/idle.service.js +168 -168
  51. package/esm2015/lib/auth/idle.types.js +7 -7
  52. package/esm2015/lib/auth/lbop.service.js +355 -355
  53. package/esm2015/lib/auth/life-ready-auth.service.js +500 -500
  54. package/esm2015/lib/auth/password.service.js +320 -320
  55. package/esm2015/lib/auth/register.service.js +172 -172
  56. package/esm2015/lib/auth/two-factor.service.js +74 -74
  57. package/esm2015/lib/category/category-meta.service.js +99 -99
  58. package/esm2015/lib/category/category.gql.js +406 -406
  59. package/esm2015/lib/category/category.service.js +390 -390
  60. package/esm2015/lib/category/category.types.js +29 -29
  61. package/esm2015/lib/cryptography/cryptography.types.js +11 -11
  62. package/esm2015/lib/cryptography/encryption.service.js +189 -189
  63. package/esm2015/lib/cryptography/key-factory.service.js +237 -237
  64. package/esm2015/lib/cryptography/key-graph.service.js +280 -280
  65. package/esm2015/lib/cryptography/key-meta.service.js +200 -200
  66. package/esm2015/lib/cryptography/key.service.js +124 -124
  67. package/esm2015/lib/cryptography/slip39.service.js +169 -169
  68. package/esm2015/lib/cryptography/web-crypto.service.js +29 -29
  69. package/esm2015/lib/life-ready.config.js +84 -84
  70. package/esm2015/lib/life-ready.module.js +74 -74
  71. package/esm2015/lib/plan/plan.gql.js +123 -123
  72. package/esm2015/lib/plan/plan.service.js +149 -149
  73. package/esm2015/lib/plan/plan.types.js +11 -11
  74. package/esm2015/lib/record/record-attachment.service.js +101 -101
  75. package/esm2015/lib/record/record.gql.js +179 -179
  76. package/esm2015/lib/record/record.service.js +206 -206
  77. package/esm2015/lib/record/record.types.js +15 -15
  78. package/esm2015/lib/record-type/record-type.service.js +75 -75
  79. package/esm2015/lib/record-type/record-type.types.js +28 -28
  80. package/esm2015/lib/scenario/approvals/scenario-approval.gql.js +105 -105
  81. package/esm2015/lib/scenario/approvals/scenario-approval.types.js +1 -1
  82. package/esm2015/lib/scenario/approvals/scenario-approver.service.js +300 -300
  83. package/esm2015/lib/scenario/claimants/scenario-claimant.gql.js +52 -52
  84. package/esm2015/lib/scenario/claimants/scenario-claimant.service.js +97 -97
  85. package/esm2015/lib/scenario/claimants/scenario-claimant.types.js +1 -1
  86. package/esm2015/lib/scenario/receivers/scenario-receiver.gql.js +150 -150
  87. package/esm2015/lib/scenario/receivers/scenario-receiver.service.js +229 -229
  88. package/esm2015/lib/scenario/receivers/scenario-receiver.types.js +1 -1
  89. package/esm2015/lib/scenario/scenario-setup.service.js +269 -269
  90. package/esm2015/lib/scenario/scenario.gql.js +368 -368
  91. package/esm2015/lib/scenario/scenario.service.js +611 -611
  92. package/esm2015/lib/scenario/scenario.types.js +64 -64
  93. package/esm2015/lib/search/search.gql.js +62 -62
  94. package/esm2015/lib/search/search.service.js +156 -156
  95. package/esm2015/lib/search/search.types.js +6 -6
  96. package/esm2015/lib/trusted-parties/tp-password-reset-request.service.js +112 -112
  97. package/esm2015/lib/trusted-parties/tp-password-reset-user.service.js +129 -129
  98. package/esm2015/lib/trusted-parties/tp-password-reset.constants.js +4 -4
  99. package/esm2015/lib/trusted-parties/tp-password-reset.gql.js +232 -232
  100. package/esm2015/lib/trusted-parties/tp-password-reset.service.js +299 -299
  101. package/esm2015/lib/trusted-parties/trusted-party.gql.js +148 -148
  102. package/esm2015/lib/trusted-parties/trusted-party.service.js +326 -326
  103. package/esm2015/lib/trusted-parties/trusted-party.types.js +41 -41
  104. package/esm2015/lib/trusted-parties/trusted-party2.gql.js +87 -87
  105. package/esm2015/lib/trusted-parties/trusted-party2.service.js +215 -215
  106. package/esm2015/lib/users/profile-details.service.js +214 -214
  107. package/esm2015/lib/users/profile.gql.js +97 -97
  108. package/esm2015/lib/users/profile.service.js +169 -169
  109. package/esm2015/lib/users/profile.types.js +34 -34
  110. package/esm2015/lib/users/user.gql.js +60 -60
  111. package/esm2015/lib/users/user.service.js +79 -79
  112. package/esm2015/lib/users/user.types.js +5 -5
  113. package/esm2015/lifeready-core.js +10 -10
  114. package/esm2015/public-api.js +81 -81
  115. package/fesm2015/lifeready-core.js +13088 -13088
  116. package/fesm2015/lifeready-core.js.map +1 -1
  117. package/lib/_common/ast.d.ts +11 -11
  118. package/lib/_common/deferred-promise.d.ts +12 -12
  119. package/lib/_common/exceptions.d.ts +109 -109
  120. package/lib/_common/queries.gql.d.ts +10 -10
  121. package/lib/_common/run-outside-angular.d.ts +14 -14
  122. package/lib/_common/types.d.ts +10 -10
  123. package/lib/_common/utils.d.ts +3 -3
  124. package/lib/api/contact-card.gql.d.ts +7 -7
  125. package/lib/api/contact-card.service.d.ts +52 -52
  126. package/lib/api/contact-card2.gql.d.ts +34 -34
  127. package/lib/api/contact-card2.service.d.ts +49 -49
  128. package/lib/api/file.service.d.ts +18 -18
  129. package/lib/api/item2.gql.d.ts +96 -96
  130. package/lib/api/item2.service.d.ts +177 -177
  131. package/lib/api/key-exchange.gql.d.ts +9 -9
  132. package/lib/api/key-exchange.service.d.ts +39 -39
  133. package/lib/api/key-exchange.types.d.ts +196 -196
  134. package/lib/api/key-exchange2.gql.d.ts +125 -125
  135. package/lib/api/key-exchange2.service.d.ts +187 -187
  136. package/lib/api/lock.gql.d.ts +27 -27
  137. package/lib/api/lock.service.d.ts +25 -25
  138. package/lib/api/lr-apollo.service.d.ts +15 -15
  139. package/lib/api/lr-graphql/index.d.ts +5 -5
  140. package/lib/api/lr-graphql/lr-graphql.service.d.ts +60 -60
  141. package/lib/api/lr-graphql/lr-merged-mutation.d.ts +27 -27
  142. package/lib/api/lr-graphql/lr-mutation-base.d.ts +28 -28
  143. package/lib/api/lr-graphql/lr-mutation.d.ts +8 -8
  144. package/lib/api/lr-graphql/lr.service.d.ts +9 -9
  145. package/lib/api/message.service.d.ts +58 -58
  146. package/lib/api/persist.service.d.ts +31 -31
  147. package/lib/api/query-processor/common-processors.service.d.ts +36 -36
  148. package/lib/api/query-processor/index.d.ts +2 -2
  149. package/lib/api/query-processor/query-processor.service.d.ts +18 -18
  150. package/lib/api/query-processor/tp-password-reset-processor.service.d.ts +15 -15
  151. package/lib/api/shared-contact-card.service.d.ts +33 -33
  152. package/lib/api/shared-contact-card2.gql.d.ts +36 -36
  153. package/lib/api/shared-contact-card2.service.d.ts +45 -45
  154. package/lib/api/time.service.d.ts +16 -16
  155. package/lib/api/types/graphql.types.d.ts +29 -29
  156. package/lib/api/types/index.d.ts +2 -2
  157. package/lib/api/types/lr-graphql.types.d.ts +393 -385
  158. package/lib/auth/auth.config.d.ts +5 -5
  159. package/lib/auth/auth.gql.d.ts +15 -15
  160. package/lib/auth/auth.types.d.ts +66 -66
  161. package/lib/auth/idle.service.d.ts +40 -40
  162. package/lib/auth/idle.types.d.ts +10 -10
  163. package/lib/auth/lbop.service.d.ts +91 -91
  164. package/lib/auth/life-ready-auth.service.d.ts +59 -59
  165. package/lib/auth/password.service.d.ts +78 -78
  166. package/lib/auth/register.service.d.ts +25 -25
  167. package/lib/auth/two-factor.service.d.ts +15 -15
  168. package/lib/category/category-meta.service.d.ts +23 -23
  169. package/lib/category/category.gql.d.ts +45 -45
  170. package/lib/category/category.service.d.ts +67 -67
  171. package/lib/category/category.types.d.ts +79 -79
  172. package/lib/cryptography/cryptography.types.d.ts +83 -83
  173. package/lib/cryptography/encryption.service.d.ts +41 -41
  174. package/lib/cryptography/key-factory.service.d.ts +38 -38
  175. package/lib/cryptography/key-graph.service.d.ts +33 -33
  176. package/lib/cryptography/key-meta.service.d.ts +44 -44
  177. package/lib/cryptography/key.service.d.ts +36 -36
  178. package/lib/cryptography/slip39.service.d.ts +43 -43
  179. package/lib/cryptography/web-crypto.service.d.ts +5 -5
  180. package/lib/life-ready.config.d.ts +14 -14
  181. package/lib/life-ready.module.d.ts +5 -5
  182. package/lib/plan/plan.gql.d.ts +11 -11
  183. package/lib/plan/plan.service.d.ts +33 -33
  184. package/lib/plan/plan.types.d.ts +31 -31
  185. package/lib/record/record-attachment.service.d.ts +16 -16
  186. package/lib/record/record.gql.d.ts +14 -14
  187. package/lib/record/record.service.d.ts +25 -25
  188. package/lib/record/record.types.d.ts +57 -57
  189. package/lib/record-type/record-type.service.d.ts +11 -11
  190. package/lib/record-type/record-type.types.d.ts +50 -50
  191. package/lib/scenario/approvals/scenario-approval.gql.d.ts +7 -7
  192. package/lib/scenario/approvals/scenario-approval.types.d.ts +63 -63
  193. package/lib/scenario/approvals/scenario-approver.service.d.ts +32 -32
  194. package/lib/scenario/claimants/scenario-claimant.gql.d.ts +5 -5
  195. package/lib/scenario/claimants/scenario-claimant.service.d.ts +17 -17
  196. package/lib/scenario/claimants/scenario-claimant.types.d.ts +18 -18
  197. package/lib/scenario/receivers/scenario-receiver.gql.d.ts +8 -8
  198. package/lib/scenario/receivers/scenario-receiver.service.d.ts +30 -30
  199. package/lib/scenario/receivers/scenario-receiver.types.d.ts +54 -54
  200. package/lib/scenario/scenario-setup.service.d.ts +22 -22
  201. package/lib/scenario/scenario.gql.d.ts +34 -34
  202. package/lib/scenario/scenario.service.d.ts +58 -58
  203. package/lib/scenario/scenario.types.d.ts +217 -217
  204. package/lib/search/search.gql.d.ts +1 -1
  205. package/lib/search/search.service.d.ts +25 -25
  206. package/lib/search/search.types.d.ts +20 -20
  207. package/lib/trusted-parties/tp-password-reset-request.service.d.ts +20 -20
  208. package/lib/trusted-parties/tp-password-reset-user.service.d.ts +35 -35
  209. package/lib/trusted-parties/tp-password-reset.constants.d.ts +3 -3
  210. package/lib/trusted-parties/tp-password-reset.gql.d.ts +218 -218
  211. package/lib/trusted-parties/tp-password-reset.service.d.ts +130 -130
  212. package/lib/trusted-parties/trusted-party.gql.d.ts +9 -9
  213. package/lib/trusted-parties/trusted-party.service.d.ts +44 -44
  214. package/lib/trusted-parties/trusted-party.types.d.ts +102 -102
  215. package/lib/trusted-parties/trusted-party2.gql.d.ts +79 -79
  216. package/lib/trusted-parties/trusted-party2.service.d.ts +114 -114
  217. package/lib/users/profile-details.service.d.ts +21 -21
  218. package/lib/users/profile.gql.d.ts +11 -11
  219. package/lib/users/profile.service.d.ts +35 -35
  220. package/lib/users/profile.types.d.ts +96 -96
  221. package/lib/users/user.gql.d.ts +9 -9
  222. package/lib/users/user.service.d.ts +12 -12
  223. package/lib/users/user.types.d.ts +23 -23
  224. package/lifeready-core.d.ts +9 -9
  225. package/package.json +1 -1
  226. package/public-api.d.ts +77 -77
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktbWV0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1Byb2plY3RzL25ld3JlcG8va2MtY2xpZW50L3Byb2plY3RzL2NvcmUvc3JjLyIsInNvdXJjZXMiOlsibGliL2NhdGVnb3J5L2NhdGVnb3J5LW1ldGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBU3JELE1BQU0sT0FBTyxrQkFBa0I7Q0FHOUI7QUFLRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLFlBQ1UsSUFBZ0IsRUFDaEIsZUFBZ0M7UUFEaEMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDdkMsQ0FBQztJQUVTLGlCQUFpQjs7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSTtxQkFDOUIsR0FBRyxDQUFvQiw4QkFBOEIsQ0FBQztxQkFDdEQsU0FBUyxFQUFFLENBQUM7YUFDaEI7WUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUM7S0FBQTtJQUVLLGNBQWMsQ0FDbEIsYUFBeUIsRUFDekIsa0JBQTJCLEVBQzNCLGNBQXVCOztZQUV2QixNQUFNLGNBQWMsR0FBRyxjQUFjO2dCQUNuQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLENBQUM7cUJBQ25FLFVBQVU7Z0JBQ2YsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FB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USxDQUFDO3FCQUNsQztvQkFDRCxPQUFPLFFBQVEsQ0FBQztpQkFDakI7YUFDRjtpQkFBTSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7Z0JBQzlCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7YUFDdEU7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtRQUNILENBQUM7S0FBQTs7OztZQTNHRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQWxCUSxVQUFVO1lBRVYsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYXRlZ29yeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBBY2Nlc3NMZXZlbCxcclxuICBDYXRlZ29yeSxcclxuICBDdXJyZW50Q2F0ZWdvcnksXHJcbiAgRGVmYXVsdENhdGVnb3J5LFxyXG4gIFZhdWx0Q2F0ZWdvcnksXHJcbn0gZnJvbSAnLi9jYXRlZ29yeS50eXBlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgTG9hZGVkQ2F0ZWdvcnlUcmVlIHtcclxuICBjYXRlZ29yaWVzOiBDdXJyZW50Q2F0ZWdvcnlbXTtcclxuICBtaXNzaW5nQ2F0ZWdvcmllczogc3RyaW5nW11bXTtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhdGVnb3J5TWV0YVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgY2F0ZWdvcmllczogRGVmYXVsdENhdGVnb3J5W107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldENvcmVDYXRlZ29yaWVzKCk6IFByb21pc2U8RGVmYXVsdENhdGVnb3J5W10+IHtcclxuICAgIGlmICghdGhpcy5jYXRlZ29yaWVzKSB7XHJcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IGF3YWl0IHRoaXMuaHR0cFxyXG4gICAgICAgIC5nZXQ8RGVmYXVsdENhdGVnb3J5W10+KCcvYXNzZXRzL21ldGEvY2F0ZWdvcmllcy5qc29uJylcclxuICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuY2F0ZWdvcmllcyk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBsb2FkQ2F0ZWdvcmllcyhcclxuICAgIGNhdGVnb3J5VHJlZXM6IHN0cmluZ1tdW10sXHJcbiAgICBzZWxlY3RlZENhdGVnb3J5SWQ/OiBzdHJpbmcsXHJcbiAgICB0cnVzdGVkUGFydHlJZD86IHN0cmluZ1xyXG4gICk6IFByb21pc2U8TG9hZGVkQ2F0ZWdvcnlUcmVlPiB7XHJcbiAgICBjb25zdCByb290Q2F0ZWdvcmllcyA9IHRydXN0ZWRQYXJ0eUlkXHJcbiAgICAgID8gKGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldFRydXN0ZWRQYXJ0eUNhdGVnb3JpZXModHJ1c3RlZFBhcnR5SWQpKVxyXG4gICAgICAgICAgLmNhdGVnb3JpZXNcclxuICAgICAgOiBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5nZXRDYXRlZ29yaWVzKCk7XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRDYXRlZ29yeSA9IHNlbGVjdGVkQ2F0ZWdvcnlJZFxyXG4gICAgICA/IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3J5KHNlbGVjdGVkQ2F0ZWdvcnlJZClcclxuICAgICAgOiBudWxsO1xyXG5cclxuICAgIGNvbnN0IGNhdGVnb3J5UHJvbWlzZXMgPSBjYXRlZ29yeVRyZWVzLm1hcChhc3luYyAoeCkgPT4gKHtcclxuICAgICAgY2F0ZWdvcnlUcmVlOiB4LFxyXG4gICAgICBjYXRlZ29yeTogYXdhaXQgdGhpcy5sb2FkQ2F0ZWdvcnkoXHJcbiAgICAgICAgWy4uLnhdLFxyXG4gICAgICAgIHJvb3RDYXRlZ29yaWVzLFxyXG4gICAgICAgIHNlbGVjdGVkQ2F0ZWdvcnlcclxuICAgICAgKSxcclxuICAgIH0pKTtcclxuXHJcbiAgICBjb25zdCBsb2FkZWRDYXRlZ29yaWVzID0gYXdhaXQgUHJvbWlzZS5hbGwoY2F0ZWdvcnlQcm9taXNlcyk7XHJcblxyXG4gICAgY29uc3QgbG9hZGVkQ2F0ZWdvcnlUcmVlOiBMb2FkZWRDYXRlZ29yeVRyZWUgPSB7XHJcbiAgICAgIGNhdGVnb3JpZXM6IFtdLFxyXG4gICAgICBtaXNzaW5nQ2F0ZWdvcmllczogW10sXHJcbiAgICB9O1xyXG5cclxuICAgIGxvYWRlZENhdGVnb3JpZXMuZm9yRWFjaCgoeCkgPT5cclxuICAgICAgeC5jYXRlZ29yeVxyXG4gICAgICAgID8gbG9hZGVkQ2F0ZWdvcnlUcmVlLmNhdGVnb3JpZXMucHVzaCh4LmNhdGVnb3J5KVxyXG4gICAgICAgIDogbG9hZGVkQ2F0ZWdvcnlUcmVlLm1pc3NpbmdDYXRlZ29yaWVzLnB1c2goeC5jYXRlZ29yeVRyZWUpXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBsb2FkZWRDYXRlZ29yeVRyZWU7XHJcbiAgfVxyXG5cclxuICBhc3luYyBsb2FkQ2F0ZWdvcmllc0ZvclJvbGUoXHJcbiAgICBjYXRlZ29yaWVzOiB7IGNhdGVnb3J5OiBzdHJpbmdbXTsgYWNjZXNzTGV2ZWw6IEFjY2Vzc0xldmVsIH1bXVxyXG4gICk6IFByb21pc2U8eyBjYXRlZ29yeTogQ3VycmVudENhdGVnb3J5OyBhY2Nlc3NMZXZlbDogQWNjZXNzTGV2ZWwgfVtdPiB7XHJcbiAgICBjb25zdCByb290Q2F0ZWdvcmllcyA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3JpZXMoKTtcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIGNhdGVnb3JpZXMubWFwKGFzeW5jICh4KSA9PiAoe1xyXG4gICAgICAgIGNhdGVnb3J5OiBhd2FpdCB0aGlzLmxvYWRDYXRlZ29yeShbLi4ueC5jYXRlZ29yeV0sIHJvb3RDYXRlZ29yaWVzKSxcclxuICAgICAgICBhY2Nlc3NMZXZlbDogeC5hY2Nlc3NMZXZlbCxcclxuICAgICAgfSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBsb2FkQ2F0ZWdvcnkoXHJcbiAgICBjYXRlZ29yeVRyZWU6IHN0cmluZ1tdLFxyXG4gICAgY2F0ZWdvcmllczogQ2F0ZWdvcnlbXSxcclxuICAgIHNlbGVjdGVkQ2F0ZWdvcnk/OiBWYXVsdENhdGVnb3J5XHJcbiAgKTogUHJvbWlzZTxDdXJyZW50Q2F0ZWdvcnk+IHtcclxuICAgIGNvbnN0IG5hbWUgPSBjYXRlZ29yeVRyZWUuc2hpZnQoKTtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50Q2F0ZWdvcnkgPSBjYXRlZ29yaWVzLmZpbmQoXHJcbiAgICAgICh4KSA9PiB4LmNvZGUgPT09IG5hbWUgJiYgIXguaXNDdXN0b21cclxuICAgICk7XHJcblxyXG4gICAgaWYgKGN1cnJlbnRDYXRlZ29yeSkge1xyXG4gICAgICBpZiAoY2F0ZWdvcnlUcmVlLmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IHsgc3ViQ2F0ZWdvcmllcyB9ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UuZ2V0Q2F0ZWdvcnkoXHJcbiAgICAgICAgICBjdXJyZW50Q2F0ZWdvcnkuaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRDYXRlZ29yeShjYXRlZ29yeVRyZWUsIHN1YkNhdGVnb3JpZXMsIHNlbGVjdGVkQ2F0ZWdvcnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnkgfSA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmdldENhdGVnb3J5KFxyXG4gICAgICAgICAgY3VycmVudENhdGVnb3J5LmlkXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeSAmJlxyXG4gICAgICAgICAgc2VsZWN0ZWRDYXRlZ29yeS5jYXRlZ29yeS5wYXJlbnRzLnNvbWUoKHgpID0+IHguaWQgPT09IGNhdGVnb3J5LmlkKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgcmV0dXJuIHNlbGVjdGVkQ2F0ZWdvcnkuY2F0ZWdvcnk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjYXRlZ29yeTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChjYXRlZ29yeVRyZWUubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvYWRDYXRlZ29yeShjYXRlZ29yeVRyZWUsIGNhdGVnb3JpZXMsIHNlbGVjdGVkQ2F0ZWdvcnkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
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==