@hmcts/ccd-case-ui-toolkit 6.13.10-show-condition-code-fix → 6.13.11-activity-tracker

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 (198) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +12262 -9090
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +11 -1
  6. package/esm2015/lib/components/banners/index.js +2 -1
  7. package/esm2015/lib/components/banners/notification-banner/index.js +2 -1
  8. package/esm2015/lib/components/body/index.js +2 -1
  9. package/esm2015/lib/components/footer/index.js +2 -1
  10. package/esm2015/lib/components/form/index.js +2 -1
  11. package/esm2015/lib/shared/commons/case-edit-data/case-edit-data.service.js +19 -1
  12. package/esm2015/lib/shared/components/activity/activity-banner/activity-banner.component.js +5 -5
  13. package/esm2015/lib/shared/components/activity/activity-icon/activity-icon.component.js +2 -2
  14. package/esm2015/lib/shared/components/activity/activity.module.js +13 -13
  15. package/esm2015/lib/shared/components/activity/case-activity.component.js +174 -0
  16. package/esm2015/lib/shared/components/activity/index.js +2 -2
  17. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +6 -1
  18. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +7 -1
  19. package/esm2015/lib/shared/components/case-editor/services/cases.service.js +7 -1
  20. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +29 -16
  21. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +38 -18
  22. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +7 -5
  23. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.js +2 -2
  24. package/esm2015/lib/shared/components/palette/index.js +3 -6
  25. package/esm2015/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.js +126 -0
  26. package/esm2015/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.js +220 -0
  27. package/esm2015/lib/shared/components/palette/linked-cases/components/index.js +8 -0
  28. package/esm2015/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.js +572 -0
  29. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.js +219 -0
  30. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.js +285 -0
  31. package/esm2015/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.js +79 -0
  32. package/esm2015/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.js +214 -0
  33. package/esm2015/lib/shared/components/palette/linked-cases/domain/index.js +3 -0
  34. package/esm2015/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.js +2 -0
  35. package/esm2015/lib/shared/components/palette/linked-cases/domain/linked-cases.model.js +21 -0
  36. package/esm2015/lib/shared/components/palette/linked-cases/enums/index.js +2 -0
  37. package/esm2015/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.js +35 -0
  38. package/esm2015/lib/shared/components/palette/linked-cases/index.js +6 -0
  39. package/esm2015/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.js +183 -0
  40. package/esm2015/lib/shared/components/palette/linked-cases/services/index.js +2 -0
  41. package/esm2015/lib/shared/components/palette/linked-cases/services/linked-cases.service.js +134 -0
  42. package/esm2015/lib/shared/components/palette/linked-cases/utils/validators.utils.js +27 -0
  43. package/esm2015/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.js +272 -0
  44. package/esm2015/lib/shared/components/palette/palette.module.js +51 -7
  45. package/esm2015/lib/shared/components/palette/palette.service.js +19 -7
  46. package/esm2015/lib/shared/components/search-result/search-result.component.js +36 -19
  47. package/esm2015/lib/shared/components/search-result/search-result.module.js +2 -2
  48. package/esm2015/lib/shared/domain/activity/activity.model.js +1 -1
  49. package/esm2015/lib/shared/domain/activity/case-activity-info.model.js +3 -0
  50. package/esm2015/lib/shared/domain/activity/case-activity.model.js +3 -0
  51. package/esm2015/lib/shared/domain/activity/index.js +4 -1
  52. package/esm2015/lib/shared/domain/activity/user.model.js +3 -0
  53. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +12 -0
  54. package/esm2015/lib/shared/domain/search/index.js +2 -1
  55. package/esm2015/lib/shared/domain/search/sorting/index.js +4 -0
  56. package/esm2015/lib/shared/domain/user/index.js +3 -0
  57. package/esm2015/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.js +2 -2
  58. package/esm2015/lib/shared/pipes/index.js +3 -1
  59. package/esm2015/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.js +28 -0
  60. package/esm2015/lib/shared/pipes/link-cases-from-reason-code/index.js +2 -0
  61. package/esm2015/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.js +28 -0
  62. package/esm2015/lib/shared/pipes/link-cases-reason-code/index.js +2 -0
  63. package/esm2015/lib/shared/pipes/pipes.module.js +12 -4
  64. package/esm2015/lib/shared/services/activity/activity-socket.service.js +91 -0
  65. package/esm2015/lib/shared/services/activity/activity.polling.service.js +25 -10
  66. package/esm2015/lib/shared/services/activity/activity.service.js +47 -21
  67. package/esm2015/lib/shared/services/activity/index.js +2 -1
  68. package/esm2015/lib/shared/services/activity/utils/index.js +117 -0
  69. package/esm2015/lib/shared/services/common-data-service/common-data-service.js +1 -1
  70. package/esm2015/lib/shared/services/fields/fields.utils.js +7 -1
  71. package/esm2015/lib/shared/services/form/form-value.service.js +33 -2
  72. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +9947 -7143
  73. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  74. package/lib/app.config.d.ts +10 -0
  75. package/lib/app.config.d.ts.map +1 -1
  76. package/lib/components/banners/index.d.ts +1 -0
  77. package/lib/components/banners/index.d.ts.map +1 -1
  78. package/lib/components/banners/notification-banner/index.d.ts +1 -0
  79. package/lib/components/banners/notification-banner/index.d.ts.map +1 -1
  80. package/lib/components/body/index.d.ts +1 -0
  81. package/lib/components/body/index.d.ts.map +1 -1
  82. package/lib/components/footer/index.d.ts +1 -0
  83. package/lib/components/footer/index.d.ts.map +1 -1
  84. package/lib/components/form/index.d.ts +1 -0
  85. package/lib/components/form/index.d.ts.map +1 -1
  86. package/lib/shared/commons/case-edit-data/case-edit-data.service.d.ts +13 -0
  87. package/lib/shared/commons/case-edit-data/case-edit-data.service.d.ts.map +1 -1
  88. package/lib/shared/components/activity/activity.module.d.ts +4 -4
  89. package/lib/shared/components/activity/activity.module.d.ts.map +1 -1
  90. package/lib/shared/components/activity/case-activity.component.d.ts +32 -0
  91. package/lib/shared/components/activity/case-activity.component.d.ts.map +1 -0
  92. package/lib/shared/components/activity/index.d.ts +1 -1
  93. package/lib/shared/components/activity/index.d.ts.map +1 -1
  94. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  95. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +1 -0
  96. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  97. package/lib/shared/components/case-editor/services/cases.service.d.ts +2 -0
  98. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  99. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +5 -4
  100. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  101. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +7 -4
  102. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  103. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  104. package/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.d.ts.map +1 -1
  105. package/lib/shared/components/palette/index.d.ts +2 -5
  106. package/lib/shared/components/palette/index.d.ts.map +1 -1
  107. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts +23 -0
  108. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts.map +1 -0
  109. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts +18 -0
  110. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts.map +1 -0
  111. package/lib/shared/components/palette/linked-cases/components/index.d.ts +8 -0
  112. package/lib/shared/components/palette/linked-cases/components/index.d.ts.map +1 -0
  113. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts +49 -0
  114. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -0
  115. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts +38 -0
  116. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts.map +1 -0
  117. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts +47 -0
  118. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts.map +1 -0
  119. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts +18 -0
  120. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -0
  121. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts +38 -0
  122. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts.map +1 -0
  123. package/lib/shared/components/palette/linked-cases/domain/index.d.ts +3 -0
  124. package/lib/shared/components/palette/linked-cases/domain/index.d.ts.map +1 -0
  125. package/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.d.ts +12 -0
  126. package/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.d.ts.map +1 -0
  127. package/lib/shared/components/palette/linked-cases/domain/linked-cases.model.d.ts +68 -0
  128. package/lib/shared/components/palette/linked-cases/domain/linked-cases.model.d.ts.map +1 -0
  129. package/lib/shared/components/palette/linked-cases/enums/index.d.ts +2 -0
  130. package/lib/shared/components/palette/linked-cases/enums/index.d.ts.map +1 -0
  131. package/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.d.ts +31 -0
  132. package/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.d.ts.map +1 -0
  133. package/lib/shared/components/palette/linked-cases/index.d.ts +6 -0
  134. package/lib/shared/components/palette/linked-cases/index.d.ts.map +1 -0
  135. package/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.d.ts +38 -0
  136. package/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.d.ts.map +1 -0
  137. package/lib/shared/components/palette/linked-cases/services/index.d.ts +2 -0
  138. package/lib/shared/components/palette/linked-cases/services/index.d.ts.map +1 -0
  139. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts +44 -0
  140. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -0
  141. package/lib/shared/components/palette/linked-cases/utils/validators.utils.d.ts +10 -0
  142. package/lib/shared/components/palette/linked-cases/utils/validators.utils.d.ts.map +1 -0
  143. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts +43 -0
  144. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -0
  145. package/lib/shared/components/palette/palette.module.d.ts +67 -58
  146. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  147. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  148. package/lib/shared/components/search-result/search-result.component.d.ts +9 -6
  149. package/lib/shared/components/search-result/search-result.component.d.ts.map +1 -1
  150. package/lib/shared/domain/activity/activity.model.d.ts +1 -0
  151. package/lib/shared/domain/activity/activity.model.d.ts.map +1 -1
  152. package/lib/shared/domain/activity/case-activity-info.model.d.ts +9 -0
  153. package/lib/shared/domain/activity/case-activity-info.model.d.ts.map +1 -0
  154. package/lib/shared/domain/activity/case-activity.model.d.ts +5 -0
  155. package/lib/shared/domain/activity/case-activity.model.d.ts.map +1 -0
  156. package/lib/shared/domain/activity/index.d.ts +3 -0
  157. package/lib/shared/domain/activity/index.d.ts.map +1 -1
  158. package/lib/shared/domain/activity/user.model.d.ts +6 -0
  159. package/lib/shared/domain/activity/user.model.d.ts.map +1 -0
  160. package/lib/shared/domain/definition/display-context-enum.model.d.ts +10 -0
  161. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -0
  162. package/lib/shared/domain/search/index.d.ts +1 -0
  163. package/lib/shared/domain/search/index.d.ts.map +1 -1
  164. package/lib/shared/domain/search/sorting/index.d.ts +4 -0
  165. package/lib/shared/domain/search/sorting/index.d.ts.map +1 -0
  166. package/lib/shared/domain/user/index.d.ts +3 -0
  167. package/lib/shared/domain/user/index.d.ts.map +1 -0
  168. package/lib/shared/pipes/index.d.ts +2 -0
  169. package/lib/shared/pipes/index.d.ts.map +1 -1
  170. package/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.d.ts +12 -0
  171. package/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.d.ts.map +1 -0
  172. package/lib/shared/pipes/link-cases-from-reason-code/index.d.ts +2 -0
  173. package/lib/shared/pipes/link-cases-from-reason-code/index.d.ts.map +1 -0
  174. package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts +12 -0
  175. package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts.map +1 -0
  176. package/lib/shared/pipes/link-cases-reason-code/index.d.ts +2 -0
  177. package/lib/shared/pipes/link-cases-reason-code/index.d.ts.map +1 -0
  178. package/lib/shared/pipes/pipes.module.d.ts +4 -2
  179. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  180. package/lib/shared/services/activity/activity-socket.service.d.ts +33 -0
  181. package/lib/shared/services/activity/activity-socket.service.d.ts.map +1 -0
  182. package/lib/shared/services/activity/activity.polling.service.d.ts +6 -5
  183. package/lib/shared/services/activity/activity.polling.service.d.ts.map +1 -1
  184. package/lib/shared/services/activity/activity.service.d.ts +14 -5
  185. package/lib/shared/services/activity/activity.service.d.ts.map +1 -1
  186. package/lib/shared/services/activity/index.d.ts +1 -0
  187. package/lib/shared/services/activity/index.d.ts.map +1 -1
  188. package/lib/shared/services/activity/utils/index.d.ts +40 -0
  189. package/lib/shared/services/activity/utils/index.d.ts.map +1 -0
  190. package/lib/shared/services/common-data-service/common-data-service.d.ts.map +1 -1
  191. package/lib/shared/services/fields/fields.utils.d.ts +1 -0
  192. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  193. package/lib/shared/services/form/form-value.service.d.ts +14 -0
  194. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  195. package/package.json +1 -1
  196. package/esm2015/lib/shared/components/activity/activity.component.js +0 -150
  197. package/lib/shared/components/activity/activity.component.d.ts +0 -32
  198. package/lib/shared/components/activity/activity.component.d.ts.map +0 -1
@@ -1,8 +1,10 @@
1
1
  import { HttpHeaders } from '@angular/common/http';
2
2
  import { Injectable } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
3
4
  import { map } from 'rxjs/operators';
4
5
  import { AbstractAppConfig } from '../../../app.config';
5
6
  import { HttpErrorService, HttpService } from '../http';
7
+ import { MODES } from '../activity/utils';
6
8
  import { SessionStorageService } from '../session';
7
9
  import * as i0 from "@angular/core";
8
10
  import * as i1 from "../http";
@@ -14,12 +16,33 @@ export class ActivityService {
14
16
  this.http = http;
15
17
  this.appConfig = appConfig;
16
18
  this.sessionStorageService = sessionStorageService;
19
+ this.modeSubject = new BehaviorSubject(MODES.off);
17
20
  this.userAuthorised = undefined;
21
+ this.pMode = MODES.off;
22
+ this.pActivityUrlSet = false;
18
23
  }
19
24
  static get ACTIVITY_VIEW() { return 'view'; }
20
25
  static get ACTIVITY_EDIT() { return 'edit'; }
26
+ get mode() {
27
+ return this.pMode;
28
+ }
29
+ set mode(value) {
30
+ if (!!value && this.pMode !== value) {
31
+ this.pMode = value;
32
+ this.modeSubject.next(value);
33
+ if (this.pMode !== MODES.off) {
34
+ this.verifyUserIsAuthorized();
35
+ }
36
+ }
37
+ }
38
+ get activityUrl() {
39
+ if (!this.pActivityUrlSet) {
40
+ this.setupActivityUrl();
41
+ }
42
+ return this.pActivityUrl;
43
+ }
21
44
  get isEnabled() {
22
- return this.activityUrl() && this.userAuthorised;
45
+ return this.mode !== MODES.off && this.activityUrl && this.userAuthorised;
23
46
  }
24
47
  static handleHttpError(response) {
25
48
  const error = HttpErrorService.convertToHttpError(response);
@@ -41,10 +64,8 @@ export class ActivityService {
41
64
  getActivities(...caseId) {
42
65
  try {
43
66
  const options = this.getOptions();
44
- const url = this.activityUrl() + `/cases/${caseId.join(',')}/activity`;
45
- return this.http
46
- .get(url, options, false, ActivityService.handleHttpError)
47
- .pipe(map(response => response));
67
+ const url = `${this.activityUrl}/cases/${caseId.join(',')}/activity`;
68
+ return this.http.get(url, options, false, ActivityService.handleHttpError);
48
69
  }
49
70
  catch (error) {
50
71
  console.log('user may not be authenticated.' + error);
@@ -53,7 +74,7 @@ export class ActivityService {
53
74
  postActivity(caseId, activity) {
54
75
  try {
55
76
  const options = this.getOptions();
56
- const url = this.activityUrl() + `/cases/${caseId}/activity`;
77
+ const url = `${this.activityUrl}/cases/${caseId}/activity`;
57
78
  const body = { activity };
58
79
  return this.http
59
80
  .post(url, body, options, false)
@@ -64,28 +85,33 @@ export class ActivityService {
64
85
  }
65
86
  }
66
87
  verifyUserIsAuthorized() {
67
- if (this.sessionStorageService.getItem('userDetails') === undefined) {
68
- return;
69
- }
70
- if (this.activityUrl() && this.userAuthorised === undefined) {
71
- this.getActivities(ActivityService.DUMMY_CASE_REFERENCE).subscribe(() => this.userAuthorised = true, error => {
72
- if ([401, 403].indexOf(error.status) > -1) {
73
- this.userAuthorised = false;
74
- }
75
- else {
76
- this.userAuthorised = true;
77
- }
78
- });
88
+ if (this.activityUrl && this.userAuthorised === undefined) {
89
+ if (this.mode === MODES.polling) {
90
+ this.getActivities(ActivityService.DUMMY_CASE_REFERENCE).subscribe(() => this.userAuthorised = true, error => {
91
+ if ([401, 403].indexOf(error.status) > -1) {
92
+ this.userAuthorised = false;
93
+ }
94
+ else {
95
+ this.userAuthorised = true;
96
+ }
97
+ });
98
+ }
99
+ else if (this.mode !== MODES.off) {
100
+ // TODO: Implement a proper authorisation mechanism for sockets.
101
+ this.userAuthorised = true;
102
+ }
79
103
  }
80
104
  }
81
- activityUrl() {
82
- return this.appConfig.getActivityUrl();
105
+ setupActivityUrl() {
106
+ this.pActivityUrl = this.appConfig.getActivityUrl();
107
+ this.pActivityUrlSet = true;
83
108
  }
84
109
  }
110
+ ActivityService.MODES = MODES;
85
111
  ActivityService.DUMMY_CASE_REFERENCE = '0';
86
112
  ActivityService.ɵfac = function ActivityService_Factory(t) { return new (t || ActivityService)(i0.ɵɵinject(i1.HttpService), i0.ɵɵinject(i2.AbstractAppConfig), i0.ɵɵinject(i3.SessionStorageService)); };
87
113
  ActivityService.ɵprov = i0.ɵɵdefineInjectable({ token: ActivityService, factory: ActivityService.ɵfac });
88
114
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActivityService, [{
89
115
  type: Injectable
90
116
  }], function () { return [{ type: i1.HttpService }, { type: i2.AbstractAppConfig }, { type: i3.SessionStorageService }]; }, null); })();
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvYWN0aXZpdHkvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQWUsTUFBTSxTQUFTLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7OztBQUVuRCxXQUFXO0FBRVgsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFDbUIsSUFBaUIsRUFDakIsU0FBNEIsRUFDNUIscUJBQTRDO1FBRjVDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFDNUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQVF2RCxtQkFBYyxHQUFZLFNBQVMsQ0FBQztJQVB6QyxDQUFDO0lBUEcsTUFBTSxLQUFLLGFBQWEsS0FBSyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0MsTUFBTSxLQUFLLGFBQWEsS0FBSyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFRcEQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDbkQsQ0FBQztJQUtPLE1BQU0sQ0FBQyxlQUFlLENBQUMsUUFBMkI7UUFDeEQsTUFBTSxLQUFLLEdB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QUcsS0FBSyxDQUFDO2lCQUM3QjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztpQkFDNUI7WUFDSCxDQUFDLENBQ0YsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVPLFdBQVc7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pDLENBQUM7O0FBeEVzQixvQ0FBb0IsR0FBRyxHQUFHLENBQUM7OEVBYnZDLGVBQWU7dURBQWYsZUFBZSxXQUFmLGVBQWU7dUZBQWYsZUFBZTtjQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9kb21haW4vYWN0aXZpdHkvYWN0aXZpdHkubW9kZWwnO1xuaW1wb3J0IHsgSHR0cEVycm9yIH0gZnJvbSAnLi4vLi4vZG9tYWluL2h0dHAvaHR0cC1lcnJvci5tb2RlbCc7XG5pbXBvcnQgeyBIdHRwRXJyb3JTZXJ2aWNlLCBIdHRwU2VydmljZSwgT3B0aW9uc1R5cGUgfSBmcm9tICcuLi9odHRwJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24nO1xuXG4vLyBAZHluYW1pY1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5U2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IEFDVElWSVRZX1ZJRVcoKSB7IHJldHVybiAndmlldyc7IH1cbiAgcHVibGljIHN0YXRpYyBnZXQgQUNUSVZJVFlfRURJVCgpIHsgcmV0dXJuICdlZGl0JzsgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgaXNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5VXJsKCkgJiYgdGhpcy51c2VyQXV0aG9yaXNlZDtcbiAgfVxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERVTU1ZX0NBU0VfUkVGRVJFTkNFID0gJzAnO1xuXG4gIHByaXZhdGUgdXNlckF1dGhvcmlzZWQ6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaGFuZGxlSHR0cEVycm9yKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IEh0dHBFcnJvciB7XG4gICAgY29uc3QgZXJyb3I6IEh0dHBFcnJvciA9IEh0dHBFcnJvclNlcnZpY2UuY29udmVydFRvSHR0cEVycm9yKHJlc3BvbnNlKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICYmIHJlc3BvbnNlLnN0YXR1cyAhPT0gZXJyb3Iuc3RhdHVzKSB7XG4gICAgICBlcnJvci5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPcHRpb25zKCk6IE9wdGlvbnNUeXBlIHtcbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKSk7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB1c2VyRGV0YWlscy50b2tlbik7XG4gICAgY29uc3Qgb3B0aW9uczogT3B0aW9uc1R5cGUgPSB7XG4gICAgICBoZWFkZXJzLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgIH07XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWN0aXZpdGllcyguLi5jYXNlSWQ6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxBY3Rpdml0eVtdPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKTtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuYWN0aXZpdHlVcmwoKSArIGAvY2FzZXMvJHtjYXNlSWQuam9pbignLCcpfS9hY3Rpdml0eWA7XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5nZXQodXJsLCBvcHRpb25zLCBmYWxzZSwgQWN0aXZpdHlTZXJ2aWNlLmhhbmRsZUh0dHBFcnJvcilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlKVxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygndXNlciBtYXkgbm90IGJlIGF1dGhlbnRpY2F0ZWQuJyArIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcG9zdEFjdGl2aXR5KGNhc2VJZDogc3RyaW5nLCBhY3Rpdml0eTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBY3Rpdml0eVtdPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKTtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuYWN0aXZpdHlVcmwoKSArIGAvY2FzZXMvJHtjYXNlSWR9L2FjdGl2aXR5YDtcbiAgICAgIGNvbnN0IGJvZHkgPSB7IGFjdGl2aXR5IH07XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5wb3N0KHVybCwgYm9keSwgb3B0aW9ucywgZmFsc2UpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSlcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coJ3VzZXIgbWF5IG5vdCBiZSBhdXRoZW50aWNhdGVkLicgKyBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHZlcmlmeVVzZXJJc0F1dGhvcml6ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJykgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5hY3Rpdml0eVVybCgpICYmIHRoaXMudXNlckF1dGhvcmlzZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5nZXRBY3Rpdml0aWVzKEFjdGl2aXR5U2VydmljZS5EVU1NWV9DQVNFX1JFRkVSRU5DRSkuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB0aGlzLnVzZXJBdXRob3Jpc2VkID0gdHJ1ZSxcbiAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgIGlmIChbNDAxLCA0MDNdLmluZGV4T2YoZXJyb3Iuc3RhdHVzKSA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXJBdXRob3Jpc2VkID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXNlckF1dGhvcmlzZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFjdGl2aXR5VXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYXBwQ29uZmlnLmdldEFjdGl2aXR5VXJsKCk7XG4gIH1cblxufVxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvYWN0aXZpdHkvYWN0aXZpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBZSxNQUFNLFNBQVMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7OztBQUVuRCxXQUFXO0FBRVgsTUFBTSxPQUFPLGVBQWU7SUEyQzFCLFlBQ21CLElBQWlCLEVBQ2pCLFNBQTRCLEVBQzVCLHFCQUE0QztRQUY1QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUF4Qy9DLGdCQUFXLEdBQTJCLElBQUksZUFBZSxDQUFRLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVwRixtQkFBYyxHQUFZLFNBQVMsQ0FBQztRQUNwQyxVQUFLLEdBQVUsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQWN6QixvQkFBZSxHQUFHLEtBQUssQ0FBQztJQXdCN0IsQ0FBQztJQTVDRyxNQUFNLEtBQUssYUFBYSxLQUFL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QUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7O0FBM0dzQixxQkFBSyxHQUFHLEtBQUssQ0FBQztBQUNkLG9DQUFvQixHQUFHLEdBQUcsQ0FBQzs4RUFGdkMsZUFBZTt1REFBZixlQUFlLFdBQWYsZUFBZTt1RkFBZixlQUFlO2NBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi4vLi4vZG9tYWluL2FjdGl2aXR5L2FjdGl2aXR5Lm1vZGVsJztcbmltcG9ydCB7IEh0dHBFcnJvciB9IGZyb20gJy4uLy4uL2RvbWFpbi9odHRwL2h0dHAtZXJyb3IubW9kZWwnO1xuaW1wb3J0IHsgSHR0cEVycm9yU2VydmljZSwgSHR0cFNlcnZpY2UsIE9wdGlvbnNUeXBlIH0gZnJvbSAnLi4vaHR0cCc7XG5pbXBvcnQgeyBNT0RFUyB9IGZyb20gJy4uL2FjdGl2aXR5L3V0aWxzJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24nO1xuXG4vLyBAZHluYW1pY1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5U2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTU9ERVMgPSBNT0RFUztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBEVU1NWV9DQVNFX1JFRkVSRU5DRSA9ICcwJztcbiAgcHVibGljIHN0YXRpYyBnZXQgQUNUSVZJVFlfVklFVygpIHsgcmV0dXJuICd2aWV3JzsgfVxuICBwdWJsaWMgc3RhdGljIGdldCBBQ1RJVklUWV9FRElUKCkgeyByZXR1cm4gJ2VkaXQnOyB9XG5cbiAgcHVibGljIHJlYWRvbmx5IG1vZGVTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8TU9ERVM+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNT0RFUz4oTU9ERVMub2ZmKTtcblxuICBwcml2YXRlIHVzZXJBdXRob3Jpc2VkOiBib29sZWFuID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIHBNb2RlOiBNT0RFUyA9IE1PREVTLm9mZjtcbiAgcHVibGljIGdldCBtb2RlKCk6IE1PREVTIHtcbiAgICByZXR1cm4gdGhpcy5wTW9kZTtcbiAgfVxuICBwdWJsaWMgc2V0IG1vZGUodmFsdWU6IE1PREVTKSB7XG4gICAgaWYgKCEhdmFsdWUgJiYgdGhpcy5wTW9kZSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMucE1vZGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMubW9kZVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gICAgICBpZiAodGhpcy5wTW9kZSAhPT0gTU9ERVMub2ZmKSB7XG4gICAgICAgIHRoaXMudmVyaWZ5VXNlcklzQXV0aG9yaXplZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIHBBY3Rpdml0eVVybDogc3RyaW5nO1xuICBwcml2YXRlIHBBY3Rpdml0eVVybFNldCA9IGZhbHNlO1xuICBwcml2YXRlIGdldCBhY3Rpdml0eVVybCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5wQWN0aXZpdHlVcmxTZXQpIHtcbiAgICAgIHRoaXMuc2V0dXBBY3Rpdml0eVVybCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wQWN0aXZpdHlVcmw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlICE9PSBNT0RFUy5vZmYgJiYgdGhpcy5hY3Rpdml0eVVybCAmJiB0aGlzLnVzZXJBdXRob3Jpc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaGFuZGxlSHR0cEVycm9yKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSk6IEh0dHBFcnJvciB7XG4gICAgY29uc3QgZXJyb3I6IEh0dHBFcnJvciA9IEh0dHBFcnJvclNlcnZpY2UuY29udmVydFRvSHR0cEVycm9yKHJlc3BvbnNlKTtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICYmIHJlc3BvbnNlLnN0YXR1cyAhPT0gZXJyb3Iuc3RhdHVzKSB7XG4gICAgICBlcnJvci5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXM7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXRPcHRpb25zKCk6IE9wdGlvbnNUeXBlIHtcbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKSk7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKS5zZXQoJ0F1dGhvcml6YXRpb24nLCB1c2VyRGV0YWlscy50b2tlbik7XG4gICAgY29uc3Qgb3B0aW9uczogT3B0aW9uc1R5cGUgPSB7XG4gICAgICBoZWFkZXJzLFxuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxuICAgIH07XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWN0aXZpdGllcyguLi5jYXNlSWQ6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxBY3Rpdml0eVtdPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMoKTtcbiAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYWN0aXZpdHlVcmx9L2Nhc2VzLyR7Y2FzZUlkLmpvaW4oJywnKX0vYWN0aXZpdHlgO1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCBvcHRpb25zLCBmYWxzZSwgQWN0aXZpdHlTZXJ2aWNlLmhhbmRsZUh0dHBFcnJvcik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCd1c2VyIG1heSBub3QgYmUgYXV0aGVudGljYXRlZC4nICsgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3N0QWN0aXZpdHkoY2FzZUlkOiBzdHJpbmcsIGFjdGl2aXR5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFjdGl2aXR5W10+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZ2V0T3B0aW9ucygpO1xuICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5hY3Rpdml0eVVybH0vY2FzZXMvJHtjYXNlSWR9L2FjdGl2aXR5YDtcbiAgICAgIGNvbnN0IGJvZHkgPSB7IGFjdGl2aXR5IH07XG4gICAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAgIC5wb3N0KHVybCwgYm9keSwgb3B0aW9ucywgZmFsc2UpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZSlcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coJ3VzZXIgbWF5IG5vdCBiZSBhdXRoZW50aWNhdGVkLicgKyBlcnJvcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHZlcmlmeVVzZXJJc0F1dGhvcml6ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlVcmwgJiYgdGhpcy51c2VyQXV0aG9yaXNlZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5tb2RlID09PSBNT0RFUy5wb2xsaW5nKSB7XG4gICAgICAgIHRoaXMuZ2V0QWN0aXZpdGllcyhBY3Rpdml0eVNlcnZpY2UuRFVNTVlfQ0FTRV9SRUZFUkVOQ0UpLnN1YnNjcmliZShcbiAgICAgICAgICAoKSA9PiB0aGlzLnVzZXJBdXRob3Jpc2VkID0gdHJ1ZSxcbiAgICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgICBpZiAoWzQwMSwgNDAzXS5pbmRleE9mKGVycm9yLnN0YXR1cykgPiAtMSkge1xuICAgICAgICAgICAgICB0aGlzLnVzZXJBdXRob3Jpc2VkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnVzZXJBdXRob3Jpc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSAhPT0gTU9ERVMub2ZmKSB7XG4gICAgICAgIC8vIFRPRE86IEltcGxlbWVudCBhIHByb3BlciBhdXRob3Jpc2F0aW9uIG1lY2hhbmlzbSBmb3Igc29ja2V0cy5cbiAgICAgICAgdGhpcy51c2VyQXV0aG9yaXNlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cEFjdGl2aXR5VXJsKCk6IHZvaWQge1xuICAgIHRoaXMucEFjdGl2aXR5VXJsID0gdGhpcy5hcHBDb25maWcuZ2V0QWN0aXZpdHlVcmwoKTtcbiAgICB0aGlzLnBBY3Rpdml0eVVybFNldCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,4 @@
1
1
  export * from './activity.service';
2
2
  export * from './activity.polling.service';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2FjdGl2aXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHkuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5LnBvbGxpbmcuc2VydmljZSc7XG4iXX0=
3
+ export * from './activity-socket.service';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2FjdGl2aXR5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHkucG9sbGluZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktc29ja2V0LnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,117 @@
1
+ import { connect } from 'socket.io-client';
2
+ const BASE_CONFIGURATION = {
3
+ autoConnect: false,
4
+ reconnection: true,
5
+ reconnectionDelay: 1000 * 2,
6
+ reconnectionDelayMax: 1000 * 30,
7
+ timeout: 1000 * 60 * 3 // 5 minutes (default is 20s)
8
+ };
9
+ const TRANSPORTS = {
10
+ allowWebSockets: ['websocket'],
11
+ disallowWebSockets: ['polling']
12
+ };
13
+ export var MODES;
14
+ (function (MODES) {
15
+ MODES["off"] = "off";
16
+ MODES["polling"] = "polling";
17
+ MODES["socket"] = "socket";
18
+ MODES["socketLongPoll"] = "socket-long-poll";
19
+ })(MODES || (MODES = {}));
20
+ const DESCRIPTIONS = {
21
+ VIEWERS_SUFFIX: 'viewing this case',
22
+ EDITORS_PREFIX: 'This case is being updated by '
23
+ };
24
+ const UTILS = {
25
+ getTransports: (allowWebSockets) => {
26
+ const transports = allowWebSockets ? TRANSPORTS.allowWebSockets : TRANSPORTS.disallowWebSockets;
27
+ return {
28
+ transports,
29
+ upgrade: allowWebSockets
30
+ };
31
+ },
32
+ getOptions: (user, allowWebSockets) => {
33
+ return Object.assign(Object.assign(Object.assign({}, BASE_CONFIGURATION), UTILS.getTransports(allowWebSockets)), { query: { user: JSON.stringify(user) } });
34
+ },
35
+ getSocket: (user, allowWebSockets = false) => {
36
+ // Connects to current URL by not providing a uri parameter.
37
+ return connect(UTILS.getOptions(user, allowWebSockets));
38
+ },
39
+ activity: {
40
+ hasEditors: (activity) => {
41
+ if (activity) {
42
+ return (activity.editors.length + activity.unknownEditors) > 0;
43
+ }
44
+ return false;
45
+ },
46
+ hasViewers: (activity) => {
47
+ if (activity) {
48
+ return (activity.viewers.length + activity.unknownViewers) > 0;
49
+ }
50
+ return false;
51
+ },
52
+ hasViewersOrEditors: (activity) => {
53
+ return UTILS.activity.hasViewers(activity) || UTILS.activity.hasEditors(activity);
54
+ },
55
+ editorsDescription: (activity) => {
56
+ if (UTILS.activity.hasEditors(activity)) {
57
+ return UTILS.activity.generateDescription(DESCRIPTIONS.EDITORS_PREFIX, '', activity.editors, activity.unknownEditors);
58
+ }
59
+ return undefined;
60
+ },
61
+ viewersDescription: (activity) => {
62
+ if (UTILS.activity.hasViewers(activity)) {
63
+ return UTILS.activity.generateDescription('', DESCRIPTIONS.VIEWERS_SUFFIX, activity.viewers, activity.unknownViewers);
64
+ }
65
+ return undefined;
66
+ },
67
+ generateDescription: (prefix, suffix, names, unknownCount) => {
68
+ let resultText = `${prefix}${UTILS.activity.activityNames(names)}`;
69
+ if (unknownCount > 0) {
70
+ resultText += (names.length > 0 ? ` and ${unknownCount} other` : `${unknownCount} user`);
71
+ if (unknownCount > 1) {
72
+ resultText = `${resultText}s`;
73
+ }
74
+ }
75
+ else {
76
+ const lastCommaIndex = resultText.lastIndexOf(',');
77
+ if (lastCommaIndex >= 0) {
78
+ resultText = `${resultText.slice(0, lastCommaIndex)} and${resultText.slice(lastCommaIndex + 1)}`;
79
+ }
80
+ }
81
+ let preSuffix = '';
82
+ if (suffix.length > 0) {
83
+ if (names.length + unknownCount > 1) {
84
+ preSuffix = ' are ';
85
+ }
86
+ else {
87
+ preSuffix = ' is ';
88
+ }
89
+ }
90
+ return `${resultText}${preSuffix}${suffix}`;
91
+ },
92
+ activityName: (user) => {
93
+ if (user) {
94
+ return `${user.forename || ''} ${user.surname || ''}`.trim();
95
+ }
96
+ return undefined;
97
+ },
98
+ activityNames: (users) => {
99
+ if ((users === null || users === void 0 ? void 0 : users.length) > 0) {
100
+ return users.map(user => UTILS.activity.activityName(user)).filter(name => !!name).join(', ');
101
+ }
102
+ return '';
103
+ },
104
+ stripUserFromActivity: (activity, user) => {
105
+ const userId = user ? user['id'] : undefined;
106
+ if (userId && UTILS.activity.hasViewersOrEditors(activity)) {
107
+ activity.editors = activity.editors.filter(e => e.id !== userId);
108
+ activity.viewers = activity.viewers.filter(v => v.id !== userId);
109
+ }
110
+ return activity;
111
+ }
112
+ }
113
+ };
114
+ export const Utils = Object.assign({ BASE_CONFIGURATION,
115
+ DESCRIPTIONS,
116
+ TRANSPORTS }, UTILS);
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2FjdGl2aXR5L3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQXlDLE1BQU0sa0JBQWtCLENBQUM7QUFJbEYsTUFBTSxrQkFBa0IsR0FBRztJQUN6QixXQUFXLEVBQUUsS0FBSztJQUNsQixZQUFZLEVBQUUsSUFBSTtJQUNsQixpQkFBaUIsRUFBRSxJQUFJLEdBQUcsQ0FBQztJQUMzQixvQkFBb0IsRUFBRSxJQUFJLEdBQUcsRUFBRTtJQUMvQixPQUFPLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsNkJBQTZCO0NBQ3JELENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRztJQUNqQixlQUFlLEVBQUUsQ0FBQyxXQUFXLENBQUM7SUFDOUIsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQUM7Q0FDaEMsQ0FBQztBQUVGLE1BQU0sQ0FBTixJQUFZLEtBS1g7QUFMRCxXQUFZLEtBQUs7SUFDZixvQkFBVyxDQUFBO0lBQ1gsNEJBQW1CLENBQUE7SUFDbkIsMEJBQWlCLENBQUE7SUFDakIsNENBQW1DLENBQUE7QUFDckMsQ0FBQyxFQUxXLEtBQUssS0FBTCxLQUFLLFFBS2hCO0FBRUQsTUFBTSxZQUFZLEdBQUc7SUFDbkIsY0FBYyxFQUFFLG1CQUFtQjtJQUNuQyxjQUFjLEVBQUUsZ0NBQWdDO0NBQ2pELENBQUM7QUFFRixNQUFNLEtBQUssR0FBRztJQUNaLGFBQWEsRUFBRSxDQUFDLGVBQXdCLEVBQVUsRUFBRTtRQUNsRCxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztRQUNoRyxPQUFP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QUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQy9GO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QscUJBQXFCLEVBQUUsQ0FBQyxRQUFxQyxFQUFFLElBQVksRUFBK0IsRUFBRTtZQUMxRyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzdDLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQzFELFFBQVEsQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO2dCQUNqRSxRQUFRLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQzthQUNsRTtZQUNELE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7S0FDRjtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxLQUFLLG1CQUNoQixrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLFVBQVUsSUFDUCxLQUFLLENBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbm5lY3QsIE1hbmFnZXJPcHRpb25zLCBTb2NrZXQsIFNvY2tldE9wdGlvbnMgfSBmcm9tICdzb2NrZXQuaW8tY2xpZW50JztcblxuaW1wb3J0IHsgQWN0aXZpdHksIEFjdGl2aXR5SW5mbywgQ2FzZUFjdGl2aXR5SW5mbywgVXNlciB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbmNvbnN0IEJBU0VfQ09ORklHVVJBVElPTiA9IHtcbiAgYXV0b0Nvbm5lY3Q6IGZhbHNlLCAvLyAoZGVmYXVsdCBpcyBmYWxzZSlcbiAgcmVjb25uZWN0aW9uOiB0cnVlLFxuICByZWNvbm5lY3Rpb25EZWxheTogMTAwMCAqIDIsIC8vIDIgc2Vjb25kcyAoZGVmYXVsdCBpcyAxcylcbiAgcmVjb25uZWN0aW9uRGVsYXlNYXg6IDEwMDAgKiAzMCwgLy8gMzAgc2Vjb25kcyAoZGVmYXVsdCBpcyA1cylcbiAgdGltZW91dDogMTAwMCAqIDYwICogMyAvLyA1IG1pbnV0ZXMgKGRlZmF1bHQgaXMgMjBzKVxufTtcblxuY29uc3QgVFJBTlNQT1JUUyA9IHtcbiAgYWxsb3dXZWJTb2NrZXRzOiBbJ3dlYnNvY2tldCddLCAvLyBObyBmYWxsYmFjayB0byBsb25nIHBvbGxpbmcgYWxsb3dlZC5cbiAgZGlzYWxsb3dXZWJTb2NrZXRzOiBbJ3BvbGxpbmcnXVxufTtcblxuZXhwb3J0IGVudW0gTU9ERVMge1xuICBvZmYgPSAnb2ZmJyxcbiAgcG9sbGluZyA9ICdwb2xsaW5nJyxcbiAgc29ja2V0ID0gJ3NvY2tldCcsXG4gIHNvY2tldExvbmdQb2xsID0gJ3NvY2tldC1sb25nLXBvbGwnXG59XG5cbmNvbnN0IERFU0NSSVBUSU9OUyA9IHtcbiAgVklFV0VSU19TVUZGSVg6ICd2aWV3aW5nIHRoaXMgY2FzZScsXG4gIEVESVRPUlNfUFJFRklYOiAnVGhpcyBjYXNlIGlzIGJlaW5nIHVwZGF0ZWQgYnkgJ1xufTtcblxuY29uc3QgVVRJTFMgPSB7XG4gIGdldFRyYW5zcG9ydHM6IChhbGxvd1dlYlNvY2tldHM6IGJvb2xlYW4pOiBvYmplY3QgPT4ge1xuICAgIGNvbnN0IHRyYW5zcG9ydHMgPSBhbGxvd1dlYlNvY2tldHMgPyBUUkFOU1BPUlRTLmFsbG93V2ViU29ja2V0cyA6IFRSQU5TUE9SVFMuZGlzYWxsb3dXZWJTb2NrZXRzO1xuICAgIHJldHVybiB7XG4gICAgICB0cmFuc3BvcnRzLFxuICAgICAgdXBncmFkZTogYWxsb3dXZWJTb2NrZXRzXG4gICAgfTtcbiAgfSxcbiAgZ2V0T3B0aW9uczogKHVzZXI6IG9iamVjdCwgYWxsb3dXZWJTb2NrZXRzOiBib29sZWFuKTogUGFydGlhbDxNYW5hZ2VyT3B0aW9ucyAmIFNvY2tldE9wdGlvbnM+ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uQkFTRV9DT05GSUdVUkFUSU9OLFxuICAgICAgLi4uVVRJTFMuZ2V0VHJhbnNwb3J0cyhhbGxvd1dlYlNvY2tldHMpLFxuICAgICAgcXVlcnk6IHsgdXNlcjogSlNPTi5zdHJpbmdpZnkodXNlcikgfVxuICAgIH07XG4gIH0sXG4gIGdldFNvY2tldDogKHVzZXI6IG9iamVjdCwgYWxsb3dXZWJTb2NrZXRzID0gZmFsc2UpOiBTb2NrZXQgPT4ge1xuICAgIC8vIENvbm5lY3RzIHRvIGN1cnJlbnQgVVJMIGJ5IG5vdCBwcm92aWRpbmcgYSB1cmkgcGFyYW1ldGVyLlxuICAgIHJldHVybiBjb25uZWN0KFVUSUxTLmdldE9wdGlvbnModXNlciwgYWxsb3dXZWJTb2NrZXRzKSk7XG4gIH0sXG4gIGFjdGl2aXR5OiB7XG4gICAgaGFzRWRpdG9yczogKGFjdGl2aXR5OiBBY3Rpdml0eSB8IENhc2VBY3Rpdml0eUluZm8pOiBib29sZWFuID0+IHtcbiAgICAgIGlmIChhY3Rpdml0eSkge1xuICAgICAgICByZXR1cm4gKGFjdGl2aXR5LmVkaXRvcnMubGVuZ3RoICsgYWN0aXZpdHkudW5rbm93bkVkaXRvcnMpID4gMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9LFxuICAgIGhhc1ZpZXdlcnM6IChhY3Rpdml0eTogQWN0aXZpdHkgfCBDYXNlQWN0aXZpdHlJbmZvKTogYm9vbGVhbiA9PiB7XG4gICAgICBpZiAoYWN0aXZpdHkpIHtcbiAgICAgICAgcmV0dXJuIChhY3Rpdml0eS52aWV3ZXJzLmxlbmd0aCArIGFjdGl2aXR5LnVua25vd25WaWV3ZXJzKSA+IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSxcbiAgICBoYXNWaWV3ZXJzT3JFZGl0b3JzOiAoYWN0aXZpdHk6IEFjdGl2aXR5IHwgQ2FzZUFjdGl2aXR5SW5mbyk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIFVUSUxTLmFjdGl2aXR5Lmhhc1ZpZXdlcnMoYWN0aXZpdHkpIHx8IFVUSUxTLmFjdGl2aXR5Lmhhc0VkaXRvcnMoYWN0aXZpdHkpO1xuICAgIH0sXG4gICAgZWRpdG9yc0Rlc2NyaXB0aW9uOiAoYWN0aXZpdHk6IEFjdGl2aXR5IHwgQ2FzZUFjdGl2aXR5SW5mbyk6IHN0cmluZyA9PiB7XG4gICAgICBpZiAoVVRJTFMuYWN0aXZpdHkuaGFzRWRpdG9ycyhhY3Rpdml0eSkpIHtcbiAgICAgICAgcmV0dXJuIFVUSUxTLmFjdGl2aXR5LmdlbmVyYXRlRGVzY3JpcHRpb24oREVTQ1JJUFRJT05TLkVESVRPUlNfUFJFRklYLCAnJywgYWN0aXZpdHkuZWRpdG9ycywgYWN0aXZpdHkudW5rbm93bkVkaXRvcnMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LFxuICAgIHZpZXdlcnNEZXNjcmlwdGlvbjogKGFjdGl2aXR5OiBBY3Rpdml0eSB8IENhc2VBY3Rpdml0eUluZm8pOiBzdHJpbmcgPT4ge1xuICAgICAgaWYgKFVUSUxTLmFjdGl2aXR5Lmhhc1ZpZXdlcnMoYWN0aXZpdHkpKSB7XG4gICAgICAgIHJldHVybiBVVElMUy5hY3Rpdml0eS5nZW5lcmF0ZURlc2NyaXB0aW9uKCcnLCBERVNDUklQVElPTlMuVklFV0VSU19TVUZGSVgsIGFjdGl2aXR5LnZpZXdlcnMsIGFjdGl2aXR5LnVua25vd25WaWV3ZXJzKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBnZW5lcmF0ZURlc2NyaXB0aW9uOiAocHJlZml4OiBzdHJpbmcsIHN1ZmZpeDogc3RyaW5nLCBuYW1lczogQXJyYXk8QWN0aXZpdHlJbmZvIHwgVXNlcj4sIHVua25vd25Db3VudDogbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgICAgIGxldCByZXN1bHRUZXh0ID0gYCR7cHJlZml4fSR7VVRJTFMuYWN0aXZpdHkuYWN0aXZpdHlOYW1lcyhuYW1lcyl9YDtcbiAgICAgIGlmICh1bmtub3duQ291bnQgPiAwKSB7XG4gICAgICAgIHJlc3VsdFRleHQgKz0gKG5hbWVzLmxlbmd0aCA+IDAgPyBgIGFuZCAke3Vua25vd25Db3VudH0gb3RoZXJgIDogYCR7dW5rbm93bkNvdW50fSB1c2VyYCk7XG4gICAgICAgIGlmICh1bmtub3duQ291bnQgPiAxKSB7XG4gICAgICAgICAgcmVzdWx0VGV4dCA9IGAke3Jlc3VsdFRleHR9c2A7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxhc3RDb21tYUluZGV4ID0gcmVzdWx0VGV4dC5sYXN0SW5kZXhPZignLCcpO1xuICAgICAgICBpZiAobGFzdENvbW1hSW5kZXggPj0gMCkge1xuICAgICAgICAgIHJlc3VsdFRleHQgPSBgJHtyZXN1bHRUZXh0LnNsaWNlKDAsIGxhc3RDb21tYUluZGV4KX0gYW5kJHtyZXN1bHRUZXh0LnNsaWNlKGxhc3RDb21tYUluZGV4ICsgMSl9YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGV0IHByZVN1ZmZpeCA9ICcnO1xuICAgICAgaWYgKHN1ZmZpeC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChuYW1lcy5sZW5ndGggKyB1bmtub3duQ291bnQgPiAxKSB7XG4gICAgICAgICAgcHJlU3VmZml4ID0gJyBhcmUgJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmVTdWZmaXggPSAnIGlzICc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBgJHtyZXN1bHRUZXh0fSR7cHJlU3VmZml4fSR7c3VmZml4fWA7XG4gICAgfSxcbiAgICBhY3Rpdml0eU5hbWU6ICh1c2VyOiBBY3Rpdml0eUluZm8gfCBVc2VyKTogc3RyaW5nID0+IHtcbiAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgIHJldHVybiBgJHt1c2VyLmZvcmVuYW1lIHx8ICcnfSAke3VzZXIuc3VybmFtZSB8fCAnJ31gLnRyaW0oKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBhY3Rpdml0eU5hbWVzOiAodXNlcnM6IChBY3Rpdml0eUluZm8gfCBVc2VyKVtdKTogc3RyaW5nID0+IHtcbiAgICAgIGlmICh1c2Vycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gdXNlcnMubWFwKHVzZXIgPT4gVVRJTFMuYWN0aXZpdHkuYWN0aXZpdHlOYW1lKHVzZXIpKS5maWx0ZXIobmFtZSA9PiAhIW5hbWUpLmpvaW4oJywgJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSxcbiAgICBzdHJpcFVzZXJGcm9tQWN0aXZpdHk6IChhY3Rpdml0eTogQWN0aXZpdHkgfCBDYXNlQWN0aXZpdHlJbmZvLCB1c2VyOiBvYmplY3QpOiBBY3Rpdml0eSB8IENhc2VBY3Rpdml0eUluZm8gPT4ge1xuICAgICAgY29uc3QgdXNlcklkID0gdXNlciA/IHVzZXJbJ2lkJ10gOiB1bmRlZmluZWQ7XG4gICAgICBpZiAodXNlcklkICYmIFVUSUxTLmFjdGl2aXR5Lmhhc1ZpZXdlcnNPckVkaXRvcnMoYWN0aXZpdHkpKSB7XG4gICAgICAgIGFjdGl2aXR5LmVkaXRvcnMgPSBhY3Rpdml0eS5lZGl0b3JzLmZpbHRlcihlID0+IGUuaWQgIT09IHVzZXJJZCk7XG4gICAgICAgIGFjdGl2aXR5LnZpZXdlcnMgPSBhY3Rpdml0eS52aWV3ZXJzLmZpbHRlcih2ID0+IHYuaWQgIT09IHVzZXJJZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYWN0aXZpdHk7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgVXRpbHMgPSB7XG4gIEJBU0VfQ09ORklHVVJBVElPTixcbiAgREVTQ1JJUFRJT05TLFxuICBUUkFOU1BPUlRTLFxuICAuLi5VVElMUyxcbn07XG4iXX0=
@@ -19,4 +19,4 @@ CommonDataService.ɵprov = i0.ɵɵdefineInjectable({ token: CommonDataService, f
19
19
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CommonDataService, [{
20
20
  type: Injectable
21
21
  }], function () { return [{ type: i1.HttpClient }]; }, null); })();
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWRhdGEtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQXVCdEMsTUFBTSxPQUFPLGlCQUFpQjtJQUUxQixZQUE2QixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUcsQ0FBQztJQUUxQyxVQUFVLENBQUMsR0FBVztRQUNyQixJQUFJLEdBQUcsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsRUFBRSxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQzs7a0ZBVFEsaUJBQWlCO3lEQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCO3VGQUFqQixpQkFBaUI7Y0FEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvdlJlZkRhdGFNb2RlbCB7XG4gICAgY2F0ZWdvcnlfa2V5OiBzdHJpbmc7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWVfZW46IHN0cmluZztcbiAgICB2YWx1ZV9jeTogc3RyaW5nO1xuICAgIGhpbnRfdGV4dF9lbjogc3RyaW5nO1xuICAgIGhpbnRfdGV4dF9jeTogc3RyaW5nO1xuICAgIGxvdl9vcmRlcjogbnVtYmVyO1xuICAgIHBhcmVudF9jYXRlZ29yeTogc3RyaW5nO1xuICAgIHBhcmVudF9rZXk6IHN0cmluZztcbiAgICBhY3RpdmVfZmxhZzogc3RyaW5nO1xuICAgIGNoaWxkX25vZGVzPzogTG92UmVmRGF0YU1vZGVsW107XG4gICAgZnJvbT86IHN0cmluZztcbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIExvdlJlZkRhdGFCeVNlcnZpY2VNb2RlbCB7XG4gICAgbGlzdF9vZl92YWx1ZXM6IExvdlJlZkRhdGFNb2RlbFtdO1xuICB9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21tb25EYXRhU2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgICBwdWJsaWMgZ2V0UmVmRGF0YSh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8TG92UmVmRGF0YUJ5U2VydmljZU1vZGVsPiB7XG4gICAgICAgICAgICBpZiAodXJsKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PExvdlJlZkRhdGFCeVNlcnZpY2VNb2RlbD4odXJsLCB7b2JzZXJ2ZTogJ2JvZHknfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxufVxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWRhdGEtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQXVCdEMsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUE2QixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUcsQ0FBQztJQUUxQyxVQUFVLENBQUMsR0FBVztRQUMzQixJQUFJLEdBQUcsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsRUFBRSxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEIsQ0FBQzs7a0ZBVFUsaUJBQWlCO3lEQUFqQixpQkFBaUIsV0FBakIsaUJBQWlCO3VGQUFqQixpQkFBaUI7Y0FEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvdlJlZkRhdGFNb2RlbCB7XG4gIGNhdGVnb3J5X2tleTogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVfZW46IHN0cmluZztcbiAgdmFsdWVfY3k6IHN0cmluZztcbiAgaGludF90ZXh0X2VuOiBzdHJpbmc7XG4gIGhpbnRfdGV4dF9jeTogc3RyaW5nO1xuICBsb3Zfb3JkZXI6IG51bWJlcjtcbiAgcGFyZW50X2NhdGVnb3J5OiBzdHJpbmc7XG4gIHBhcmVudF9rZXk6IHN0cmluZztcbiAgYWN0aXZlX2ZsYWc6IHN0cmluZztcbiAgY2hpbGRfbm9kZXM/OiBMb3ZSZWZEYXRhTW9kZWxbXTtcbiAgZnJvbT86IHN0cmluZztcbiAgc2VsZWN0ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvdlJlZkRhdGFCeVNlcnZpY2VNb2RlbCB7XG4gIGxpc3Rfb2ZfdmFsdWVzOiBMb3ZSZWZEYXRhTW9kZWxbXTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENvbW1vbkRhdGFTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgcHVibGljIGdldFJlZkRhdGEodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvdlJlZkRhdGFCeVNlcnZpY2VNb2RlbD4ge1xuICAgIGlmICh1cmwpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PExvdlJlZkRhdGFCeVNlcnZpY2VNb2RlbD4odXJsLCB7b2JzZXJ2ZTogJ2JvZHknfSk7XG4gICAgfVxuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxufVxuIl19