@hmcts/rpx-xui-common-lib 2.0.0-rc.6 → 2.1.2-angular-upgrade-11

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 (177) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +7465 -2916
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +15 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +59 -47
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +2 -2
  7. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +129 -0
  8. package/esm2015/lib/components/due-date/due-date.component.js +6 -7
  9. package/esm2015/lib/components/find-location/find-location.component.js +240 -0
  10. package/esm2015/lib/components/find-person/find-person.component.js +259 -0
  11. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +65 -0
  12. package/esm2015/lib/components/generic-filter/generic-filter.component.js +548 -52
  13. package/esm2015/lib/components/index.js +2 -2
  14. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +6 -35
  15. package/esm2015/lib/components/pagination/pagination.component.js +50 -0
  16. package/esm2015/lib/components/public_api.js +9 -7
  17. package/esm2015/lib/components/search-judicials/search-judicials.component.js +249 -0
  18. package/esm2015/lib/components/search-location/search-location.component.js +294 -0
  19. package/esm2015/lib/components/search-venue/search-venue.component.js +246 -0
  20. package/esm2015/lib/components/service-messages/service-messages.component.js +2 -2
  21. package/esm2015/lib/components/share-case/share-case.component.js +2 -2
  22. package/esm2015/lib/components/user-list/user-list.component.js +29 -3
  23. package/esm2015/lib/exui-common-lib.module.js +30 -27
  24. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +81 -9
  25. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +2 -2
  26. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +49 -0
  27. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +7 -2
  28. package/esm2015/lib/gov-ui/components/index.js +2 -2
  29. package/esm2015/lib/gov-ui/components/public_api.js +1 -20
  30. package/esm2015/lib/gov-ui/gov-ui.service.js +1 -1
  31. package/esm2015/lib/gov-ui/index.js +2 -2
  32. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +24 -0
  33. package/esm2015/lib/gov-ui/public_api.js +2 -4
  34. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +58 -0
  35. package/esm2015/lib/models/contact-details.model.js +8 -1
  36. package/esm2015/lib/models/due-date.model.js +8 -1
  37. package/esm2015/lib/models/filter.model.js +59 -1
  38. package/esm2015/lib/models/index.js +15 -2
  39. package/esm2015/lib/models/location.model.js +129 -0
  40. package/esm2015/lib/models/pagination.model.js +18 -0
  41. package/esm2015/lib/models/person.model.js +92 -0
  42. package/esm2015/lib/models/public_api.js +3 -9
  43. package/esm2015/lib/models/search-options.model.js +22 -0
  44. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +1 -1
  45. package/esm2015/lib/services/cookie/cookie.service.js +110 -0
  46. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +8 -2
  47. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +4 -3
  48. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +28 -27
  49. package/esm2015/lib/services/filter/filter.service.js +8 -4
  50. package/esm2015/lib/services/find-person/find-person.service.js +214 -0
  51. package/esm2015/lib/services/google-analytics/google-analytics.service.js +1 -1
  52. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +1 -1
  53. package/esm2015/lib/services/index.js +2 -2
  54. package/esm2015/lib/services/loading/loading.service.js +1 -1
  55. package/esm2015/lib/services/locations/location.service.js +57 -0
  56. package/esm2015/lib/services/manage-session/manage-session.services.js +3 -3
  57. package/esm2015/lib/services/public-api.js +8 -4
  58. package/esm2015/lib/services/role-guard/role.guard.js +1 -1
  59. package/esm2015/lib/services/role-guard/role.service.js +1 -1
  60. package/esm2015/lib/services/session-storage/session-storage.service.js +55 -0
  61. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +3 -3
  62. package/esm2015/public-api.js +6 -6
  63. package/esm5/hmcts-rpx-xui-common-lib.js +59 -47
  64. package/esm5/lib/components/accessibility/accessibility.component.js +2 -2
  65. package/esm5/lib/components/cookie-banner/cookie-banner.component.js +154 -0
  66. package/esm5/lib/components/due-date/due-date.component.js +6 -7
  67. package/esm5/lib/components/find-location/find-location.component.js +293 -0
  68. package/esm5/lib/components/find-person/find-person.component.js +286 -0
  69. package/esm5/lib/components/generic-filter/generic-filter-utils.js +66 -0
  70. package/esm5/lib/components/generic-filter/generic-filter.component.js +735 -57
  71. package/esm5/lib/components/index.js +2 -2
  72. package/esm5/lib/components/loading-spinner/loading-spinner.component.js +6 -38
  73. package/esm5/lib/components/pagination/pagination.component.js +58 -0
  74. package/esm5/lib/components/public_api.js +9 -7
  75. package/esm5/lib/components/search-judicials/search-judicials.component.js +291 -0
  76. package/esm5/lib/components/search-location/search-location.component.js +330 -0
  77. package/esm5/lib/components/search-venue/search-venue.component.js +290 -0
  78. package/esm5/lib/components/service-messages/service-messages.component.js +2 -2
  79. package/esm5/lib/components/share-case/share-case.component.js +2 -2
  80. package/esm5/lib/components/user-list/user-list.component.js +36 -3
  81. package/esm5/lib/exui-common-lib.module.js +32 -28
  82. package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +95 -8
  83. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +2 -2
  84. package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +51 -0
  85. package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +7 -2
  86. package/esm5/lib/gov-ui/components/index.js +2 -2
  87. package/esm5/lib/gov-ui/components/public_api.js +1 -20
  88. package/esm5/lib/gov-ui/gov-ui.service.js +1 -1
  89. package/esm5/lib/gov-ui/index.js +2 -2
  90. package/esm5/lib/gov-ui/models/isession-storage.interface.js +24 -0
  91. package/esm5/lib/gov-ui/public_api.js +2 -4
  92. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +58 -0
  93. package/esm5/lib/models/contact-details.model.js +8 -1
  94. package/esm5/lib/models/due-date.model.js +8 -1
  95. package/esm5/lib/models/filter.model.js +59 -1
  96. package/esm5/lib/models/index.js +15 -2
  97. package/esm5/lib/models/location.model.js +129 -0
  98. package/esm5/lib/models/pagination.model.js +18 -0
  99. package/esm5/lib/models/person.model.js +92 -0
  100. package/esm5/lib/models/public_api.js +3 -9
  101. package/esm5/lib/models/search-options.model.js +22 -0
  102. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +1 -1
  103. package/esm5/lib/services/cookie/cookie.service.js +136 -0
  104. package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +8 -2
  105. package/esm5/lib/services/feature-toggle/feature-toggle.service.js +5 -3
  106. package/esm5/lib/services/feature-toggle/launch-darkly.service.js +29 -25
  107. package/esm5/lib/services/filter/filter.service.js +8 -4
  108. package/esm5/lib/services/find-person/find-person.service.js +238 -0
  109. package/esm5/lib/services/google-analytics/google-analytics.service.js +1 -1
  110. package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +1 -1
  111. package/esm5/lib/services/index.js +2 -2
  112. package/esm5/lib/services/loading/loading.service.js +1 -1
  113. package/esm5/lib/services/locations/location.service.js +86 -0
  114. package/esm5/lib/services/manage-session/manage-session.services.js +3 -3
  115. package/esm5/lib/services/public-api.js +8 -4
  116. package/esm5/lib/services/role-guard/role.guard.js +1 -1
  117. package/esm5/lib/services/role-guard/role.service.js +1 -1
  118. package/esm5/lib/services/session-storage/session-storage.service.js +96 -0
  119. package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +3 -3
  120. package/esm5/public-api.js +6 -6
  121. package/fesm2015/hmcts-rpx-xui-common-lib.js +4567 -751
  122. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  123. package/fesm5/hmcts-rpx-xui-common-lib.js +6324 -1958
  124. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  125. package/hmcts-rpx-xui-common-lib.d.ts +57 -45
  126. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  127. package/lib/components/cookie-banner/cookie-banner.component.d.ts +20 -0
  128. package/lib/components/find-location/find-location.component.d.ts +32 -0
  129. package/lib/components/find-person/find-person.component.d.ts +40 -0
  130. package/lib/components/generic-filter/generic-filter-utils.d.ts +8 -0
  131. package/lib/components/generic-filter/generic-filter.component.d.ts +34 -10
  132. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
  133. package/lib/components/invite-user-form/invite-user-form.component.d.ts +1 -1
  134. package/lib/components/loading-spinner/loading-spinner.component.d.ts +1 -7
  135. package/lib/components/pagination/pagination.component.d.ts +10 -0
  136. package/lib/components/public_api.d.ts +8 -6
  137. package/lib/components/search-judicials/search-judicials.component.d.ts +37 -0
  138. package/lib/components/search-location/search-location.component.d.ts +41 -0
  139. package/lib/components/search-venue/search-venue.component.d.ts +37 -0
  140. package/lib/components/user-list/user-list.component.d.ts +9 -2
  141. package/lib/exui-common-lib.module.d.ts +10 -11
  142. package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +8 -0
  143. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +10 -0
  144. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +2 -0
  145. package/lib/gov-ui/components/public_api.d.ts +0 -19
  146. package/lib/gov-ui/models/isession-storage.interface.d.ts +4 -0
  147. package/lib/gov-ui/public_api.d.ts +0 -2
  148. package/lib/gov-ui/util/session-storage/session-storage-utils.d.ts +6 -0
  149. package/lib/models/contact-details.model.d.ts +5 -1
  150. package/lib/models/due-date.model.d.ts +5 -0
  151. package/lib/models/filter.model.d.ts +33 -2
  152. package/lib/models/index.d.ts +13 -0
  153. package/lib/models/location.model.d.ts +60 -0
  154. package/lib/models/pagination.model.d.ts +5 -0
  155. package/lib/models/person.model.d.ts +43 -0
  156. package/lib/models/public_api.d.ts +1 -7
  157. package/lib/models/search-options.model.d.ts +8 -0
  158. package/lib/services/cookie/cookie.service.d.ts +9 -0
  159. package/lib/services/feature-toggle/feature-toggle.service.d.ts +1 -1
  160. package/lib/services/feature-toggle/launch-darkly.service.d.ts +4 -6
  161. package/lib/services/filter/filter.service.d.ts +4 -3
  162. package/lib/services/find-person/find-person.service.d.ts +17 -0
  163. package/lib/services/locations/location.service.d.ts +23 -0
  164. package/lib/services/public-api.d.ts +6 -2
  165. package/lib/services/session-storage/session-storage.service.d.ts +20 -0
  166. package/lib/window.d.ts +1 -1
  167. package/package.json +5 -3
  168. package/public-api.d.ts +2 -2
  169. package/esm2015/lib/gov-ui/directives/index.js +0 -7
  170. package/esm2015/lib/gov-ui/directives/public_api.js +0 -7
  171. package/esm2015/lib/models/badge-colour.enum.js +0 -14
  172. package/esm5/lib/gov-ui/directives/index.js +0 -7
  173. package/esm5/lib/gov-ui/directives/public_api.js +0 -7
  174. package/esm5/lib/models/badge-colour.enum.js +0 -14
  175. package/lib/gov-ui/directives/index.d.ts +0 -1
  176. package/lib/gov-ui/directives/public_api.d.ts +0 -1
  177. package/lib/models/badge-colour.enum.d.ts +0 -6
@@ -0,0 +1,154 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/cookie-banner/cookie-banner.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
7
+ import { CookieService } from '../../services/cookie/cookie.service';
8
+ import { windowToken } from '../../window';
9
+ var CookieBannerComponent = /** @class */ (function () {
10
+ function CookieBannerComponent(cookieService, window) {
11
+ this.cookieService = cookieService;
12
+ this.rejectionNotifier = new EventEmitter();
13
+ this.acceptanceNotifier = new EventEmitter();
14
+ this.isCookieBannerVisible = false;
15
+ this.window = (/** @type {?} */ (window));
16
+ }
17
+ /**
18
+ * @return {?}
19
+ */
20
+ CookieBannerComponent.prototype.ngOnInit = /**
21
+ * @return {?}
22
+ */
23
+ function () {
24
+ this.setState();
25
+ };
26
+ /**
27
+ * @return {?}
28
+ */
29
+ CookieBannerComponent.prototype.acceptCookie = /**
30
+ * @return {?}
31
+ */
32
+ function () {
33
+ this.cookieService.setCookie(this.identifier, 'true', this.getExpiryDate());
34
+ this.setState(true);
35
+ };
36
+ /**
37
+ * @return {?}
38
+ */
39
+ CookieBannerComponent.prototype.rejectCookie = /**
40
+ * @return {?}
41
+ */
42
+ function () {
43
+ this.cookieService.setCookie(this.identifier, 'false', this.getExpiryDate());
44
+ this.setState(true);
45
+ };
46
+ /**
47
+ * @param {?=} reload
48
+ * @return {?}
49
+ */
50
+ CookieBannerComponent.prototype.setState = /**
51
+ * @param {?=} reload
52
+ * @return {?}
53
+ */
54
+ function (reload) {
55
+ if (reload === void 0) { reload = false; }
56
+ this.isCookieBannerVisible = !this.cookieService.checkCookie(this.identifier);
57
+ if (this.areCookiesAccepted()) {
58
+ this.notifyAcceptance();
59
+ }
60
+ else {
61
+ this.notifyRejection();
62
+ }
63
+ if (reload) { // reload if any of the buttons are pressed
64
+ this.window.location.reload();
65
+ }
66
+ };
67
+ /**
68
+ * @return {?}
69
+ */
70
+ CookieBannerComponent.prototype.areCookiesAccepted = /**
71
+ * @return {?}
72
+ */
73
+ function () {
74
+ return this.cookieService.checkCookie(this.identifier) && this.cookieService.getCookie(this.identifier) === 'true';
75
+ };
76
+ /**
77
+ * @return {?}
78
+ */
79
+ CookieBannerComponent.prototype.notifyRejection = /**
80
+ * @return {?}
81
+ */
82
+ function () {
83
+ this.rejectionNotifier.emit();
84
+ };
85
+ /**
86
+ * @return {?}
87
+ */
88
+ CookieBannerComponent.prototype.notifyAcceptance = /**
89
+ * @return {?}
90
+ */
91
+ function () {
92
+ this.acceptanceNotifier.emit();
93
+ };
94
+ /**
95
+ * @private
96
+ * @return {?}
97
+ */
98
+ CookieBannerComponent.prototype.getExpiryDate = /**
99
+ * @private
100
+ * @return {?}
101
+ */
102
+ function () {
103
+ /** @type {?} */
104
+ var now = new Date();
105
+ /** @type {?} */
106
+ var time = now.getTime();
107
+ /** @type {?} */
108
+ var expireTime = time + 31536000000;
109
+ now.setTime(expireTime);
110
+ return now.toUTCString();
111
+ };
112
+ CookieBannerComponent.decorators = [
113
+ { type: Component, args: [{
114
+ selector: 'xuilib-cookie-banner',
115
+ template: "<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">Cookies on {{appName}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>We use some essential cookies to make this service work.</p>\n <p>We\u2019d also like to use analytics cookies so we can understand how you use the service and make improvements.</p>\n </div>\n </div>\n </div>\n\n <div class=\"govuk-button-group\">\n <button value=\"accept\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"acceptCookie()\">\n Accept analytics cookies\n </button>\n <button value=\"reject\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"rejectCookie()\">\n Reject analytics cookies\n </button>\n <a class=\"govuk-link\" routerLink=\"/cookies\">View cookies</a>\n </div>\n </div>\n</div>"
116
+ }] }
117
+ ];
118
+ /** @nocollapse */
119
+ CookieBannerComponent.ctorParameters = function () { return [
120
+ { type: CookieService },
121
+ { type: undefined, decorators: [{ type: Inject, args: [windowToken,] }] }
122
+ ]; };
123
+ CookieBannerComponent.propDecorators = {
124
+ identifier: [{ type: Input }],
125
+ appName: [{ type: Input }],
126
+ rejectionNotifier: [{ type: Output }],
127
+ acceptanceNotifier: [{ type: Output }]
128
+ };
129
+ return CookieBannerComponent;
130
+ }());
131
+ export { CookieBannerComponent };
132
+ if (false) {
133
+ /** @type {?} */
134
+ CookieBannerComponent.prototype.identifier;
135
+ /** @type {?} */
136
+ CookieBannerComponent.prototype.appName;
137
+ /** @type {?} */
138
+ CookieBannerComponent.prototype.rejectionNotifier;
139
+ /** @type {?} */
140
+ CookieBannerComponent.prototype.acceptanceNotifier;
141
+ /** @type {?} */
142
+ CookieBannerComponent.prototype.isCookieBannerVisible;
143
+ /**
144
+ * @type {?}
145
+ * @private
146
+ */
147
+ CookieBannerComponent.prototype.window;
148
+ /**
149
+ * @type {?}
150
+ * @private
151
+ */
152
+ CookieBannerComponent.prototype.cookieService;
153
+ }
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLWJhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvY29va2llLWJhbm5lci9jb29raWUtYmFubmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDO0lBY0UsK0JBQ21CLGFBQTRCLEVBQ3hCLE1BQVc7UUFEZixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVA5QixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzVDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFdkQsMEJBQXFCLEdBQVksS0FBSyxDQUFDO1FBTzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsbUJBQUEsTUFBTSxFQUFVLENBQUM7SUFDakMsQ0FBQzs7OztJQUVNLHdDQUFROzs7SUFBZjtRQUNFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDOzs7O0lBRU0sNENBQVk7OztJQUFuQjtRQUNFLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQzs7OztJQUVNLDRDQUFZOzs7SUFBbkI7UUFDRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBRU0sd0NBQVE7Ozs7SUFBZixVQUFnQixNQUF1QjtRQUF2Qix1QkFBQSxFQUFBLGNBQXVCO1FBQ3JDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU5RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7UUFFRCxJQUFJLE1BQU0sRUFBRSxFQUFFLDJDQUEyQztZQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMvQjtJQUNILENBQUM7Ozs7SUFFTSxrREFBa0I7OztJQUF6QjtRQUNFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLENBQUM7SUFDckgsQ0FBQzs7OztJQUVNLCtDQUFlOzs7SUFBdEI7UUFDRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQzs7OztJQUVNLGdEQUFnQjs7O0lBQXZCO1FBQ0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7Ozs7O0lBRU8sNkNBQWE7Ozs7SUFBckI7O1lBQ1EsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFOztZQUNoQixJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRTs7WUFDcEIsVUFBVSxHQUFHLElBQUksR0FBRyxXQUFXO1FBQ3JDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7Z0JBbkVGLFNBQVMsU0FBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxxdENBQTZDO2lCQUNoRDs7OztnQkFOUSxhQUFhO2dEQW1CakIsTUFBTSxTQUFDLFdBQVc7Ozs2QkFWcEIsS0FBSzswQkFDTCxLQUFLO29DQUNMLE1BQU07cUNBQ04sTUFBTTs7SUE0RFQsNEJBQUM7Q0FBQSxBQXJFRCxJQXFFQztTQWhFWSxxQkFBcUI7OztJQUNoQywyQ0FBbUM7O0lBQ25DLHdDQUFnQzs7SUFDaEMsa0RBQTZEOztJQUM3RCxtREFBOEQ7O0lBRTlELHNEQUE4Qzs7Ozs7SUFDOUMsdUNBQWdDOzs7OztJQUc5Qiw4Q0FBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb29raWUvY29va2llLnNlcnZpY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi93aW5kb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3h1aWxpYi1jb29raWUtYmFubmVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29va2llLWJhbm5lci5jb21wb25lbnQuaHRtbCdcbn0pXG5cbmV4cG9ydCBjbGFzcyBDb29raWVCYW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgaWRlbnRpZmllcjogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgYXBwTmFtZTogc3RyaW5nO1xuICBAT3V0cHV0KCkgcHVibGljIHJlamVjdGlvbk5vdGlmaWVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgYWNjZXB0YW5jZU5vdGlmaWVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHVibGljIGlzQ29va2llQmFubmVyVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogV2luZG93O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogQ29va2llU2VydmljZSxcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSB3aW5kb3c6IGFueSxcbiAgKSB7XG4gICAgdGhpcy53aW5kb3cgPSB3aW5kb3cgYXMgV2luZG93O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhY2NlcHRDb29raWUoKTogdm9pZCB7XG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldENvb2tpZSh0aGlzLmlkZW50aWZpZXIsICd0cnVlJywgdGhpcy5nZXRFeHBpcnlEYXRlKCkpO1xuICAgIHRoaXMuc2V0U3RhdGUodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVqZWN0Q29va2llKCk6IHZvaWQge1xuICAgIHRoaXMuY29va2llU2VydmljZS5zZXRDb29raWUodGhpcy5pZGVudGlmaWVyLCAnZmFsc2UnLCB0aGlzLmdldEV4cGlyeURhdGUoKSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTdGF0ZShyZWxvYWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuaXNDb29raWVCYW5uZXJWaXNpYmxlID0gIXRoaXMuY29va2llU2VydmljZS5jaGVja0Nvb2tpZSh0aGlzLmlkZW50aWZpZXIpO1xuXG4gICAgaWYgKHRoaXMuYXJlQ29va2llc0FjY2VwdGVkKCkpIHtcbiAgICAgIHRoaXMubm90aWZ5QWNjZXB0YW5jZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5vdGlmeVJlamVjdGlvbigpO1xuICAgIH1cblxuICAgIGlmIChyZWxvYWQpIHsgLy8gcmVsb2FkIGlmIGFueSBvZiB0aGUgYnV0dG9ucyBhcmUgcHJlc3NlZFxuICAgICAgdGhpcy53aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFyZUNvb2tpZXNBY2NlcHRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb29raWVTZXJ2aWNlLmNoZWNrQ29va2llKHRoaXMuaWRlbnRpZmllcikgJiYgdGhpcy5jb29raWVTZXJ2aWNlLmdldENvb2tpZSh0aGlzLmlkZW50aWZpZXIpID09PSAndHJ1ZSc7XG4gIH1cblxuICBwdWJsaWMgbm90aWZ5UmVqZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMucmVqZWN0aW9uTm90aWZpZXIuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG5vdGlmeUFjY2VwdGFuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5hY2NlcHRhbmNlTm90aWZpZXIuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHBpcnlEYXRlKCk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCB0aW1lID0gbm93LmdldFRpbWUoKTtcbiAgICBjb25zdCBleHBpcmVUaW1lID0gdGltZSArIDMxNTM2MDAwMDAwOyAgLy8gIGluIDM2NSBkYXlzID0gMzYwMCAqIDEwMDAgKiAyNCAqIDM2NVxuICAgIG5vdy5zZXRUaW1lKGV4cGlyZVRpbWUpO1xuICAgIHJldHVybiBub3cudG9VVENTdHJpbmcoKTtcbiAgfVxuXG59XG4iXX0=
@@ -5,8 +5,7 @@
5
5
  */
6
6
  import { formatDate } from '@angular/common';
7
7
  import { Component, Input, ViewEncapsulation } from '@angular/core';
8
- import { BadgeColour } from '../../models/badge-colour.enum';
9
- import { SECONDS_IN_A_DAY } from '../../models/due-date.model';
8
+ import { DateBadgeColour, SECONDS_IN_A_DAY } from '../../models/due-date.model';
10
9
  var DueDateComponent = /** @class */ (function () {
11
10
  function DueDateComponent() {
12
11
  /**
@@ -118,7 +117,7 @@ var DueDateComponent = /** @class */ (function () {
118
117
  this.pDaysDiff = this.getDaysDifference(this.dueDate, new Date());
119
118
  // Is it overdue?
120
119
  if (this.daysDiff > 0) {
121
- this.pBadge = BadgeColour.RED;
120
+ this.pBadge = DateBadgeColour.RED;
122
121
  /** @type {?} */
123
122
  var daysLabel = this.daysDiff === 1 ? 'day' : 'days';
124
123
  this.pLabel = "+" + this.daysDiff + " " + daysLabel;
@@ -135,13 +134,13 @@ var DueDateComponent = /** @class */ (function () {
135
134
  this.pAccessibleLabel = "This task is due to be completed by " + formatDate(this.dueDate, 'd MMMM y', 'en-GB');
136
135
  }
137
136
  if (this.daysDiff + this.highUrgencyCutoff > 0) {
138
- this.pBadge = BadgeColour.RED;
137
+ this.pBadge = DateBadgeColour.RED;
139
138
  }
140
139
  else if (this.daysDiff + this.mediumUrgencyCutoff > 0) {
141
- this.pBadge = BadgeColour.ORANGE;
140
+ this.pBadge = DateBadgeColour.ORANGE;
142
141
  }
143
142
  else {
144
- this.pBadge = BadgeColour.GREEN;
143
+ this.pBadge = DateBadgeColour.GREEN;
145
144
  }
146
145
  }
147
146
  };
@@ -252,4 +251,4 @@ if (false) {
252
251
  */
253
252
  DueDateComponent.prototype.pDaysDiff;
254
253
  }
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2R1ZS1kYXRlL2R1ZS1kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFL0Q7SUFBQTs7Ozs7Ozs7Ozs7Ozs7OztRQTZCa0Isc0JBQWlCLEdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVTs7Ozs7Ozs7Ozs7Ozs7O1FBZXpDLHdCQUFtQixHQUFXLENBQUMsQ0FBQztJQThFbEQsQ0FBQztJQTFFQyxzQkFBVyxtQ0FBSzs7OztRQUFoQjtZQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQUlELHNCQUFXLG1DQUFLOzs7O1FBQWhCO1lBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7OztPQUFBO0lBSUQsc0JBQVcsNkNBQWU7Ozs7UUFBMUI7WUFDRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQUlELHNCQUFXLHNDQUFROzs7O1FBQW5CO1lBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7OztPQUFBO0lBRUQsc0RBQXNEOzs7OztJQUMvQyxzQ0FBVzs7Ozs7SUFBbEI7UUFDRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsNkRBQTZEOzs7Ozs7SUFDckQsNkNBQWtC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SUFNakMscUNBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYWRnZUNvbG91ciB9IGZyb20gJy4uLy4uL21vZGVscy9iYWRnZS1jb2xvdXIuZW51bSc7XG5cbmltcG9ydCB7IFNFQ09ORFNfSU5fQV9EQVkgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHVlLWRhdGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZHVlLWRhdGUnLFxuICB0ZW1wbGF0ZVVybDogJ2R1ZS1kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2R1ZS1kYXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRHVlRGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBkdWUgZGF0ZSB0byB1c2UgYXMgdGhlIGJhc2lzIGZvciByZW5kZXJpbmcgdGhpcyBjb21wb25lbnQuIEl0IGlzXG4gICAqIGNvbXBhcmVkIHRvIHRoZSBjdXJyZW50IGRhdGUgYW5kIGRpc3BsYXllZCBhY2NvcmRpbmdseS5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBkdWVEYXRlOiBEYXRlO1xuXG4gIC8qKlxuICAgKiBUaGlzIHNob3VsZCBiZSBjb25zaWRlcmVkIEhJR0ggdXJnZW5jeSBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB0aGlzXG4gICAqIG1hbnkgZGF5cyB1bnRpbCB0aGUgZHVlIGRhdGUuXG4gICAqICAgICogU2V0IHRvIDAgaWYgeW91IHdhbnQgaXQgdG8gc2hvdyBISUdIIGlmIGl0IHdhcyBkdWUgeWVzdGVyZGF5LlxuICAgKiAgICAqIFNldCB0byAxIGlmIHlvdSB3YW50IGl0IHRvIHNob3cgSElHSCBpZiBpdCdzIGR1ZSB0b2RheS5cbiAgICogICAgKiBTZXQgdG8gMiBpZiB5b3Ugd2FudCBpdCB0byBzaG93IEhJR0ggaWYgaXQncyBkdWUgdG9tb3Jyb3cuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIDAgKFpFUk8pLCB3aGljaCBtZWFucyBpdCB3b24ndCBzaG93IGFzIEhJR0ggdXJnZW5jeSB1bnRpbCB0aGVcbiAgICogZHVlIGRhdGUgaXMgaW4gdGhlIHBhc3QuXG4gICAqXG4gICAqIE5PVEU6IElmIHRoaXMgaXMgaGlnaGVyIHRoYW4gdGhlIG1lZGl1bVVyZ2VuY3lDdXRvZmYgdmFsdWUsIE1FRElVTSB1cmdlbmN5XG4gICAqIHdpbGwgbmV2ZXIgYmUgc2hvd24uXG4gICAqXG4gICAqIEFMU08gTk9URTogQW55dGhpbmcgb3ZlcmR1ZSBpcyBhdXRvbWF0aWNhbGx5IGNvbnNpZGVyZWQgSElHSCB1cmdlbmN5LlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGhpZ2hVcmdlbmN5Q3V0b2ZmOiBudW1iZXIgPSAwOyAvLyBEZWZhdWx0XG5cbiAgLyoqXG4gICAqIFRoaXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgTUVESVVNIHVyZ2VuY3kgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gdGhpc1xuICAgKiBtYW55IGRheXMgdW50aWwgdGhlIGR1ZSBkYXRlLlxuICAgKiAgICAqIFNldCB0byAxIGlmIHlvdSB3YW50IGl0IHRvIHNob3cgTUVESVVNIGlmIGl0J3MgZHVlIHRvZGF5LlxuICAgKiAgICAqIFNldCB0byAyIGlmIHlvdSB3YW50IGl0IHRvIHNob3cgTUVESVVNIGlmIGl0J3MgZHVlIHRvbW9ycm93LlxuICAgKiAgICAqIFNldCB0byAzIGlmIHlvdSB3YW50IGl0IHRvIHNob3cgTUVESVVNIGlmIGl0J3MgZHVlIHRoZSBkYXkgYWZ0ZXIgdG9tb3Jyb3cuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIDIsIHdoaWNoIG1lYW5zIGl0IHdvbid0IHNob3cgYXMgTUVESVVNIHVyZ2VuY3kgdW5sZXNzIHRoZVxuICAgKiBkdWUgZGF0ZSBpcyB0b2RheSBvciB0b21vcnJvdy5cbiAgICpcbiAgICogTk9URTogSWYgdGhpcyBpcyBsb3dlciB0aGFuIHRoZSBoaWdoVXJnZW5jeUN1dG9mZiB2YWx1ZSwgTUVESVVNIHVyZ2VuY3lcbiAgICogd2lsbCBuZXZlciBiZSBzaG93bi5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBtZWRpdW1VcmdlbmN5Q3V0b2ZmOiBudW1iZXIgPSAyO1xuXG4gIC8vIFRoZSBITUNUUyBiYWRnZSBjbGFzcywgdXNlZCBmb3IgY29sb3VyYXRpb24uXG4gIHByaXZhdGUgcEJhZGdlOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgYmFkZ2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wQmFkZ2U7XG4gIH1cblxuICAvLyBUaGUgdGV4dHVhbCBsYWJlbCB0byBkaXNwbGF5IGluIHRoZSBjb21wb25lbnQuXG4gIHByaXZhdGUgcExhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wTGFiZWw7XG4gIH1cblxuICAvLyBUaGUgYWNjZXNzaWJsZSBsYWJlbCwgd2hpY2ggaXMgYWxzbyB1c2VkIGZvciB0aGUgdG9vbHRpcC5cbiAgcHJpdmF0ZSBwQWNjZXNzaWJsZUxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBnZXQgYWNjZXNzaWJsZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucEFjY2Vzc2libGVMYWJlbDtcbiAgfVxuXG4gIC8vIEhvdyBtYW55IGRheXMgdGhlIGR1ZURhdGUgdmFyaWVzIGZyb20gdG9kYXkuXG4gIHByaXZhdGUgcERheXNEaWZmOiBudW1iZXI7XG4gIHB1YmxpYyBnZXQgZGF5c0RpZmYoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wRGF5c0RpZmY7XG4gIH1cblxuICAvLyBDYXRjaCBhbnkgY2hhbmdlcyB0byBhbnkgb2YgdGhlIElucHV0KCkgcHJvcGVydGllcy5cbiAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyBTZXQgdXAgdGhlIGxhYmVsLCB1cmdlbmN5IGNsYXNzLCBhbmQgYWNjZXNzaWJpbGl0eSBmaWVsZHMuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2VzKCkge1xuICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBkdWVEYXRlLCBza2lwIG91dCBvZiBoZXJlLlxuICAgIGlmICghdGhpcy5kdWVEYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gSG93IG1hbnkgZGF5cyBmcm9tIHRvZGF5IGlzIHRoZSBkdWUgZGF0ZT9cbiAgICAvLyBBbHJlYWR5IGhhcHBlbmVkIG1lYW5zIGRheXNEaWZmID4gMDtcbiAgICAvLyBUb2RheSBtZWFucyBkYXlzRGlmZiA9IDA7XG4gICAgLy8gWWV0IHRvIGNvbWUgbWVhbnMgZGF5c0RpZmYgPCAwO1xuICAgIHRoaXMucERheXNEaWZmID0gdGhpcy5nZXREYXlzRGlmZmVyZW5jZSh0aGlzLmR1ZURhdGUsIG5ldyBEYXRlKCkpO1xuXG4gICAgLy8gSXMgaXQgb3ZlcmR1ZT9cbiAgICBpZiAodGhpcy5kYXlzRGlmZiA+IDApIHtcbiAgICAgIHRoaXMucEJhZGdlID0gQmFkZ2VDb2xvdXIuUkVEO1xuICAgICAgY29uc3QgZGF5c0xhYmVsID0gdGhpcy5kYXlzRGlmZiA9PT0gMSA/ICdkYXknIDogJ2RheXMnO1xuICAgICAgdGhpcy5wTGFiZWwgPSBgKyR7dGhpcy5kYXlzRGlmZn0gJHtkYXlzTGFiZWx9YDtcbiAgICAgIHRoaXMucEFjY2Vzc2libGVMYWJlbCA9IGBUaGlzIHRhc2sgaXMgJHt0aGlzLmRheXNEaWZmfSAke2RheXNMYWJlbH0gcGFzdCBpdHMgZHVlIGRhdGVgO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTcGVjaWFsIGxhYmVsIGZvciBcIlRvZGF5XCIuXG4gICAgICBpZiAodGhpcy5kYXlzRGlmZiA9PT0gMCkge1xuICAgICAgICB0aGlzLnBMYWJlbCA9ICdUT0RBWSc7XG4gICAgICAgIHRoaXMucEFjY2Vzc2libGVMYWJlbCA9ICdUaGlzIHRhc2sgaXMgZHVlIHRvIGJlIGNvbXBsZXRlZCB0b2RheSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBMYWJlbCA9IGAke2Zvcm1hdERhdGUodGhpcy5kdWVEYXRlLCAnZCBNTU0nLCAnZW4tR0InKX1gO1xuICAgICAgICB0aGlzLnBBY2Nlc3NpYmxlTGFiZWwgPSBgVGhpcyB0YXNrIGlzIGR1ZSB0byBiZSBjb21wbGV0ZWQgYnkgJHtmb3JtYXREYXRlKHRoaXMuZHVlRGF0ZSwgJ2QgTU1NTSB5JywgJ2VuLUdCJyl9YDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRheXNEaWZmICsgdGhpcy5oaWdoVXJnZW5jeUN1dG9mZiA+IDApIHtcbiAgICAgICAgdGhpcy5wQmFkZ2UgPSBCYWRnZUNvbG91ci5SRUQ7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGF5c0RpZmYgKyB0aGlzLm1lZGl1bVVyZ2VuY3lDdXRvZmYgPiAwKSB7XG4gICAgICAgIHRoaXMucEJhZGdlID0gQmFkZ2VDb2xvdXIuT1JBTkdFO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wQmFkZ2UgPSBCYWRnZUNvbG91ci5HUkVFTjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIHdpbGwgcmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGRhdGVzLlxuICAvLyBJZiBmcm9tRGF0ZSBpcyBCRUZPUkUgdG9EYXRlLCBpdCB3aWxsIGJlIGEgcG9zaXRpdmUgbnVtYmVyLlxuICAvLyBJZiBmcm9tRGF0ZSBpcyBBRlRFUiB0b0RhdGUsIGl0IHdpbGwgYmUgYSBuZWdhdGl2ZSBudW1iZXIuXG4gIHByaXZhdGUgZ2V0RGF5c0RpZmZlcmVuY2UoZnJvbURhdGU6IERhdGUsIHRvRGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgY29uc3QgZnJvbUVwb2NoID0gZnJvbURhdGUuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHRvRXBvY2ggPSB0b0RhdGUuZ2V0VGltZSgpO1xuICAgIGNvbnN0IGRpZmZTZWNzID0gTWF0aC5mbG9vcigodG9FcG9jaCAtIGZyb21FcG9jaCkgLyAxMDAwKTtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmU2VjcyAvIFNFQ09ORFNfSU5fQV9EQVkpO1xuICB9XG59XG4iXX0=
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2R1ZS1kYXRlL2R1ZS1kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEY7SUFBQTs7Ozs7Ozs7Ozs7Ozs7OztRQTZCa0Isc0JBQWlCLEdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVTs7Ozs7Ozs7Ozs7Ozs7O1FBZXpDLHdCQUFtQixHQUFXLENBQUMsQ0FBQztJQThFbEQsQ0FBQztJQTFFQyxzQkFBVyxtQ0FBSzs7OztRQUFoQjtZQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNyQixDQUFDOzs7T0FBQTtJQUlELHNCQUFXLG1DQUFLOzs7O1FBQWhCO1lBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3JCLENBQUM7OztPQUFBO0lBSUQsc0JBQVcsNkNBQWU7Ozs7UUFBMUI7WUFDRSxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQixDQUFDOzs7T0FBQTtJQUlELHNCQUFXLHNDQUFROzs7O1FBQW5CO1lBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7OztPQUFBO0lBRUQsc0RBQXNEOzs7OztJQUMvQyxzQ0FBVzs7Ozs7SUFBbEI7UUFDRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsNkRBQTZEOzs7Ozs7SUFDckQsNkNBQWtCOzs7Ozs7SUFBMUI7UUFDRSxnREFBZ0Q7UUFDaEQsSUFB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aW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERhdGVCYWRnZUNvbG91ciwgU0VDT05EU19JTl9BX0RBWSB9IGZyb20gJy4uLy4uL21vZGVscy9kdWUtZGF0ZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1kdWUtZGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnZHVlLWRhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZHVlLWRhdGUuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBEdWVEYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAvKipcbiAgICogVGhlIGR1ZSBkYXRlIHRvIHVzZSBhcyB0aGUgYmFzaXMgZm9yIHJlbmRlcmluZyB0aGlzIGNvbXBvbmVudC4gSXQgaXNcbiAgICogY29tcGFyZWQgdG8gdGhlIGN1cnJlbnQgZGF0ZSBhbmQgZGlzcGxheWVkIGFjY29yZGluZ2x5LlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGR1ZURhdGU6IERhdGU7XG5cbiAgLyoqXG4gICAqIFRoaXMgc2hvdWxkIGJlIGNvbnNpZGVyZWQgSElHSCB1cmdlbmN5IGlmIHRoZXJlIGFyZSBmZXdlciB0aGFuIHRoaXNcbiAgICogbWFueSBkYXlzIHVudGlsIHRoZSBkdWUgZGF0ZS5cbiAgICogICAgKiBTZXQgdG8gMCBpZiB5b3Ugd2FudCBpdCB0byBzaG93IEhJR0ggaWYgaXQgd2FzIGR1ZSB5ZXN0ZXJkYXkuXG4gICAqICAgICogU2V0IHRvIDEgaWYgeW91IHdhbnQgaXQgdG8gc2hvdyBISUdIIGlmIGl0J3MgZHVlIHRvZGF5LlxuICAgKiAgICAqIFNldCB0byAyIGlmIHlvdSB3YW50IGl0IHRvIHNob3cgSElHSCBpZiBpdCdzIGR1ZSB0b21vcnJvdy5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gMCAoWkVSTyksIHdoaWNoIG1lYW5zIGl0IHdvbid0IHNob3cgYXMgSElHSCB1cmdlbmN5IHVudGlsIHRoZVxuICAgKiBkdWUgZGF0ZSBpcyBpbiB0aGUgcGFzdC5cbiAgICpcbiAgICogTk9URTogSWYgdGhpcyBpcyBoaWdoZXIgdGhhbiB0aGUgbWVkaXVtVXJnZW5jeUN1dG9mZiB2YWx1ZSwgTUVESVVNIHVyZ2VuY3lcbiAgICogd2lsbCBuZXZlciBiZSBzaG93bi5cbiAgICpcbiAgICogQUxTTyBOT1RFOiBBbnl0aGluZyBvdmVyZHVlIGlzIGF1dG9tYXRpY2FsbHkgY29uc2lkZXJlZCBISUdIIHVyZ2VuY3kuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaGlnaFVyZ2VuY3lDdXRvZmY6IG51bWJlciA9IDA7IC8vIERlZmF1bHRcblxuICAvKipcbiAgICogVGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBNRURJVU0gdXJnZW5jeSBpZiB0aGVyZSBhcmUgZmV3ZXIgdGhhbiB0aGlzXG4gICAqIG1hbnkgZGF5cyB1bnRpbCB0aGUgZHVlIGRhdGUuXG4gICAqICAgICogU2V0IHRvIDEgaWYgeW91IHdhbnQgaXQgdG8gc2hvdyBNRURJVU0gaWYgaXQncyBkdWUgdG9kYXkuXG4gICAqICAgICogU2V0IHRvIDIgaWYgeW91IHdhbnQgaXQgdG8gc2hvdyBNRURJVU0gaWYgaXQncyBkdWUgdG9tb3Jyb3cuXG4gICAqICAgICogU2V0IHRvIDMgaWYgeW91IHdhbnQgaXQgdG8gc2hvdyBNRURJVU0gaWYgaXQncyBkdWUgdGhlIGRheSBhZnRlciB0b21vcnJvdy5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gMiwgd2hpY2ggbWVhbnMgaXQgd29uJ3Qgc2hvdyBhcyBNRURJVU0gdXJnZW5jeSB1bmxlc3MgdGhlXG4gICAqIGR1ZSBkYXRlIGlzIHRvZGF5IG9yIHRvbW9ycm93LlxuICAgKlxuICAgKiBOT1RFOiBJZiB0aGlzIGlzIGxvd2VyIHRoYW4gdGhlIGhpZ2hVcmdlbmN5Q3V0b2ZmIHZhbHVlLCBNRURJVU0gdXJnZW5jeVxuICAgKiB3aWxsIG5ldmVyIGJlIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIG1lZGl1bVVyZ2VuY3lDdXRvZmY6IG51bWJlciA9IDI7XG5cbiAgLy8gVGhlIEhNQ1RTIGJhZGdlIGNsYXNzLCB1c2VkIGZvciBjb2xvdXJhdGlvbi5cbiAgcHJpdmF0ZSBwQmFkZ2U6IHN0cmluZztcbiAgcHVibGljIGdldCBiYWRnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBCYWRnZTtcbiAgfVxuXG4gIC8vIFRoZSB0ZXh0dWFsIGxhYmVsIHRvIGRpc3BsYXkgaW4gdGhlIGNvbXBvbmVudC5cbiAgcHJpdmF0ZSBwTGFiZWw6IHN0cmluZztcbiAgcHVibGljIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBMYWJlbDtcbiAgfVxuXG4gIC8vIFRoZSBhY2Nlc3NpYmxlIGxhYmVsLCB3aGljaCBpcyBhbHNvIHVzZWQgZm9yIHRoZSB0b29sdGlwLlxuICBwcml2YXRlIHBBY2Nlc3NpYmxlTGFiZWw6IHN0cmluZztcbiAgcHVibGljIGdldCBhY2Nlc3NpYmxlTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wQWNjZXNzaWJsZUxhYmVsO1xuICB9XG5cbiAgLy8gSG93IG1hbnkgZGF5cyB0aGUgZHVlRGF0ZSB2YXJpZXMgZnJvbSB0b2RheS5cbiAgcHJpdmF0ZSBwRGF5c0RpZmY6IG51bWJlcjtcbiAgcHVibGljIGdldCBkYXlzRGlmZigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBEYXlzRGlmZjtcbiAgfVxuXG4gIC8vIENhdGNoIGFueSBjaGFuZ2VzIHRvIGFueSBvZiB0aGUgSW5wdXQoKSBwcm9wZXJ0aWVzLlxuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZXMoKTtcbiAgfVxuXG4gIC8vIFNldCB1cCB0aGUgbGFiZWwsIHVyZ2VuY3kgY2xhc3MsIGFuZCBhY2Nlc3NpYmlsaXR5IGZpZWxkcy5cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZXMoKSB7XG4gICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIGR1ZURhdGUsIHNraXAgb3V0IG9mIGhlcmUuXG4gICAgaWYgKCF0aGlzLmR1ZURhdGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBIb3cgbWFueSBkYXlzIGZyb20gdG9kYXkgaXMgdGhlIGR1ZSBkYXRlP1xuICAgIC8vIEFscmVhZHkgaGFwcGVuZWQgbWVhbnMgZGF5c0RpZmYgPiAwO1xuICAgIC8vIFRvZGF5IG1lYW5zIGRheXNEaWZmID0gMDtcbiAgICAvLyBZZXQgdG8gY29tZSBtZWFucyBkYXlzRGlmZiA8IDA7XG4gICAgdGhpcy5wRGF5c0RpZmYgPSB0aGlzLmdldERheXNEaWZmZXJlbmNlKHRoaXMuZHVlRGF0ZSwgbmV3IERhdGUoKSk7XG5cbiAgICAvLyBJcyBpdCBvdmVyZHVlP1xuICAgIGlmICh0aGlzLmRheXNEaWZmID4gMCkge1xuICAgICAgdGhpcy5wQmFkZ2UgPSBEYXRlQmFkZ2VDb2xvdXIuUkVEO1xuICAgICAgY29uc3QgZGF5c0xhYmVsID0gdGhpcy5kYXlzRGlmZiA9PT0gMSA/ICdkYXknIDogJ2RheXMnO1xuICAgICAgdGhpcy5wTGFiZWwgPSBgKyR7dGhpcy5kYXlzRGlmZn0gJHtkYXlzTGFiZWx9YDtcbiAgICAgIHRoaXMucEFjY2Vzc2libGVMYWJlbCA9IGBUaGlzIHRhc2sgaXMgJHt0aGlzLmRheXNEaWZmfSAke2RheXNMYWJlbH0gcGFzdCBpdHMgZHVlIGRhdGVgO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTcGVjaWFsIGxhYmVsIGZvciBcIlRvZGF5XCIuXG4gICAgICBpZiAodGhpcy5kYXlzRGlmZiA9PT0gMCkge1xuICAgICAgICB0aGlzLnBMYWJlbCA9ICdUT0RBWSc7XG4gICAgICAgIHRoaXMucEFjY2Vzc2libGVMYWJlbCA9ICdUaGlzIHRhc2sgaXMgZHVlIHRvIGJlIGNvbXBsZXRlZCB0b2RheSc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBMYWJlbCA9IGAke2Zvcm1hdERhdGUodGhpcy5kdWVEYXRlLCAnZCBNTU0nLCAnZW4tR0InKX1gO1xuICAgICAgICB0aGlzLnBBY2Nlc3NpYmxlTGFiZWwgPSBgVGhpcyB0YXNrIGlzIGR1ZSB0byBiZSBjb21wbGV0ZWQgYnkgJHtmb3JtYXREYXRlKHRoaXMuZHVlRGF0ZSwgJ2QgTU1NTSB5JywgJ2VuLUdCJyl9YDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRheXNEaWZmICsgdGhpcy5oaWdoVXJnZW5jeUN1dG9mZiA+IDApIHtcbiAgICAgICAgdGhpcy5wQmFkZ2UgPSBEYXRlQmFkZ2VDb2xvdXIuUkVEO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmRheXNEaWZmICsgdGhpcy5tZWRpdW1VcmdlbmN5Q3V0b2ZmID4gMCkge1xuICAgICAgICB0aGlzLnBCYWRnZSA9IERhdGVCYWRnZUNvbG91ci5PUkFOR0U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBCYWRnZSA9IERhdGVCYWRnZUNvbG91ci5HUkVFTjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUaGlzIHdpbGwgcmV0dXJuIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdHdvIGRhdGVzLlxuICAvLyBJZiBmcm9tRGF0ZSBpcyBCRUZPUkUgdG9EYXRlLCBpdCB3aWxsIGJlIGEgcG9zaXRpdmUgbnVtYmVyLlxuICAvLyBJZiBmcm9tRGF0ZSBpcyBBRlRFUiB0b0RhdGUsIGl0IHdpbGwgYmUgYSBuZWdhdGl2ZSBudW1iZXIuXG4gIHByaXZhdGUgZ2V0RGF5c0RpZmZlcmVuY2UoZnJvbURhdGU6IERhdGUsIHRvRGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgY29uc3QgZnJvbUVwb2NoID0gZnJvbURhdGUuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHRvRXBvY2ggPSB0b0RhdGUuZ2V0VGltZSgpO1xuICAgIGNvbnN0IGRpZmZTZWNzID0gTWF0aC5mbG9vcigodG9FcG9jaCAtIGZyb21FcG9jaCkgLyAxMDAwKTtcbiAgICByZXR1cm4gTWF0aC5mbG9vcihkaWZmU2VjcyAvIFNFQ09ORFNfSU5fQV9EQVkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,293 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/find-location/find-location.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import * as tslib_1 from "tslib";
7
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
8
+ import { FormControl, FormGroup } from '@angular/forms';
9
+ import { getValues } from '../generic-filter/generic-filter-utils';
10
+ import { SearchLocationComponent } from '../search-location/search-location.component';
11
+ var FindLocationComponent = /** @class */ (function () {
12
+ function FindLocationComponent() {
13
+ this.locationFieldChanged = new EventEmitter();
14
+ this.selectedLocations = [];
15
+ this.submitted = true;
16
+ this.enableAddLocationButton = true;
17
+ this.locationTitle = 'Search for a location by name';
18
+ this.disableInputField = false;
19
+ this.locations = [];
20
+ this.tempSelectedLocation = null;
21
+ this.serviceIds = 'SSCS,IA';
22
+ this.pServices = [];
23
+ this.pDisabled = false;
24
+ }
25
+ Object.defineProperty(FindLocationComponent.prototype, "disabled", {
26
+ get: /**
27
+ * @return {?}
28
+ */
29
+ function () {
30
+ return this.pDisabled;
31
+ },
32
+ set: /**
33
+ * @param {?} value
34
+ * @return {?}
35
+ */
36
+ function (value) {
37
+ if (value) {
38
+ this.searchLocationComponent.resetSearchTerm();
39
+ this.removeSelectedValues();
40
+ }
41
+ this.pDisabled = this.disableInputField === true ? true : null;
42
+ },
43
+ enumerable: true,
44
+ configurable: true
45
+ });
46
+ Object.defineProperty(FindLocationComponent.prototype, "services", {
47
+ get: /**
48
+ * @return {?}
49
+ */
50
+ function () {
51
+ return this.pServices;
52
+ },
53
+ set: /**
54
+ * @param {?} value
55
+ * @return {?}
56
+ */
57
+ function (value) {
58
+ var _this = this;
59
+ this.pServices = value;
60
+ /** @type {?} */
61
+ var field = this.fields.find((/**
62
+ * @param {?} f
63
+ * @return {?}
64
+ */
65
+ function (f) { return f.name === _this.field.findLocationField; }));
66
+ if (field) {
67
+ if (typeof value === 'string') {
68
+ this.serviceIds = value;
69
+ }
70
+ else {
71
+ this.serviceIds = getValues(field.options, value).filter((/**
72
+ * @param {?} x
73
+ * @return {?}
74
+ */
75
+ function (x) { return x !== 'services_all'; })).join(',');
76
+ }
77
+ }
78
+ },
79
+ enumerable: true,
80
+ configurable: true
81
+ });
82
+ /**
83
+ * @return {?}
84
+ */
85
+ FindLocationComponent.prototype.ngOnInit = /**
86
+ * @return {?}
87
+ */
88
+ function () {
89
+ // implemented to get rid of undefined values
90
+ this.selectedLocations = this.selectedLocations.filter((/**
91
+ * @param {?} location
92
+ * @return {?}
93
+ */
94
+ function (location) { return location.epimms_id; }));
95
+ };
96
+ /**
97
+ * @return {?}
98
+ */
99
+ FindLocationComponent.prototype.addLocation = /**
100
+ * @return {?}
101
+ */
102
+ function () {
103
+ if (this.tempSelectedLocation) {
104
+ this.selectedLocations = tslib_1.__spread(this.selectedLocations, [this.tempSelectedLocation]);
105
+ this.addSelectedLocationsToForm([this.tempSelectedLocation]);
106
+ this.tempSelectedLocation = null;
107
+ this.locations = [];
108
+ this.searchLocationComponent.resetSearchTerm();
109
+ }
110
+ };
111
+ /**
112
+ * @param {?} location
113
+ * @return {?}
114
+ */
115
+ FindLocationComponent.prototype.removeLocation = /**
116
+ * @param {?} location
117
+ * @return {?}
118
+ */
119
+ function (location) {
120
+ if (location.epimms_id) {
121
+ this.selectedLocations = this.selectedLocations.filter((/**
122
+ * @param {?} selectedLocation
123
+ * @return {?}
124
+ */
125
+ function (selectedLocation) { return selectedLocation.epimms_id !== location.epimms_id; }));
126
+ /** @type {?} */
127
+ var formArray = (/** @type {?} */ (this.form.get(this.field.name)));
128
+ /** @type {?} */
129
+ var index = ((/** @type {?} */ (formArray.value))).findIndex((/**
130
+ * @param {?} selectedLocation
131
+ * @return {?}
132
+ */
133
+ function (selectedLocation) { return selectedLocation.epimms_id === location.epimms_id; }));
134
+ if (index > -1) {
135
+ formArray.removeAt(index);
136
+ }
137
+ }
138
+ };
139
+ /**
140
+ * @param {?} term
141
+ * @return {?}
142
+ */
143
+ FindLocationComponent.prototype.onInputChanged = /**
144
+ * @param {?} term
145
+ * @return {?}
146
+ */
147
+ function (term) {
148
+ // if the filter is in single mode clear the selected locations
149
+ if (typeof term === 'string' && this.field.maxSelected === 1) {
150
+ this.removeSelectedValues();
151
+ }
152
+ };
153
+ /**
154
+ * @return {?}
155
+ */
156
+ FindLocationComponent.prototype.onSearchInputChanged = /**
157
+ * @return {?}
158
+ */
159
+ function () {
160
+ this.locationFieldChanged.emit();
161
+ };
162
+ /**
163
+ * @param {?} location
164
+ * @return {?}
165
+ */
166
+ FindLocationComponent.prototype.onLocationSelected = /**
167
+ * @param {?} location
168
+ * @return {?}
169
+ */
170
+ function (location) {
171
+ if (this.field.maxSelected === 1) {
172
+ this.removeSelectedValues();
173
+ this.addSelectedLocationsToForm([location]);
174
+ }
175
+ else {
176
+ if (!this.selectedLocations.find((/**
177
+ * @param {?} x
178
+ * @return {?}
179
+ */
180
+ function (x) { return x.epimms_id === location.epimms_id; }))) {
181
+ if (location.epimms_id) {
182
+ this.tempSelectedLocation = location;
183
+ }
184
+ }
185
+ }
186
+ };
187
+ /**
188
+ * @private
189
+ * @return {?}
190
+ */
191
+ FindLocationComponent.prototype.removeSelectedValues = /**
192
+ * @private
193
+ * @return {?}
194
+ */
195
+ function () {
196
+ /** @type {?} */
197
+ var formArray = (/** @type {?} */ (this.form.get(this.field.name)));
198
+ for (var i = 0; i < formArray.length; i++) {
199
+ formArray.removeAt(i);
200
+ }
201
+ this.selectedLocations = [];
202
+ };
203
+ /**
204
+ * @private
205
+ * @param {?} locations
206
+ * @return {?}
207
+ */
208
+ FindLocationComponent.prototype.addSelectedLocationsToForm = /**
209
+ * @private
210
+ * @param {?} locations
211
+ * @return {?}
212
+ */
213
+ function (locations) {
214
+ var e_1, _a;
215
+ /** @type {?} */
216
+ var formArray = (/** @type {?} */ (this.form.get(this.field.name)));
217
+ try {
218
+ for (var locations_1 = tslib_1.__values(locations), locations_1_1 = locations_1.next(); !locations_1_1.done; locations_1_1 = locations_1.next()) {
219
+ var location_1 = locations_1_1.value;
220
+ formArray.push(new FormControl(location_1));
221
+ }
222
+ }
223
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
224
+ finally {
225
+ try {
226
+ if (locations_1_1 && !locations_1_1.done && (_a = locations_1.return)) _a.call(locations_1);
227
+ }
228
+ finally { if (e_1) throw e_1.error; }
229
+ }
230
+ };
231
+ FindLocationComponent.decorators = [
232
+ { type: Component, args: [{
233
+ selector: 'xuilib-find-location',
234
+ template: "<div class=\"location-picker-custom\">\n <div class=\"search-location\">\n <div>\n <label id=\"input-selected-location-label\" *ngIf=\"locationTitle\">{{locationTitle}}</label>\n </div>\n <exui-search-location class=\"search-location\"\n [locations]=\"locations\"\n [selectedLocations]=\"selectedLocations\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [serviceIds]=\"serviceIds\"\n (locationInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\"></exui-search-location>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button\" data-module=\"govuk-button\" *ngIf=\"enableAddLocationButton\">\n Add location\n </a>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedLocations\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection)\" href=\"javascript:void(0)\">\n {{ selection.site_name }}\n </a>\n </li>\n </ul>\n</div>\n",
235
+ styles: [""]
236
+ }] }
237
+ ];
238
+ FindLocationComponent.propDecorators = {
239
+ locationFieldChanged: [{ type: Output }],
240
+ selectedLocations: [{ type: Input }],
241
+ submitted: [{ type: Input }],
242
+ enableAddLocationButton: [{ type: Input }],
243
+ form: [{ type: Input }],
244
+ field: [{ type: Input }],
245
+ fields: [{ type: Input }],
246
+ locationTitle: [{ type: Input }],
247
+ disableInputField: [{ type: Input }],
248
+ searchLocationComponent: [{ type: ViewChild, args: [SearchLocationComponent, { static: true },] }],
249
+ disabled: [{ type: Input }],
250
+ services: [{ type: Input }]
251
+ };
252
+ return FindLocationComponent;
253
+ }());
254
+ export { FindLocationComponent };
255
+ if (false) {
256
+ /** @type {?} */
257
+ FindLocationComponent.prototype.locationFieldChanged;
258
+ /** @type {?} */
259
+ FindLocationComponent.prototype.selectedLocations;
260
+ /** @type {?} */
261
+ FindLocationComponent.prototype.submitted;
262
+ /** @type {?} */
263
+ FindLocationComponent.prototype.enableAddLocationButton;
264
+ /** @type {?} */
265
+ FindLocationComponent.prototype.form;
266
+ /** @type {?} */
267
+ FindLocationComponent.prototype.field;
268
+ /** @type {?} */
269
+ FindLocationComponent.prototype.fields;
270
+ /** @type {?} */
271
+ FindLocationComponent.prototype.locationTitle;
272
+ /** @type {?} */
273
+ FindLocationComponent.prototype.disableInputField;
274
+ /** @type {?} */
275
+ FindLocationComponent.prototype.locations;
276
+ /** @type {?} */
277
+ FindLocationComponent.prototype.tempSelectedLocation;
278
+ /** @type {?} */
279
+ FindLocationComponent.prototype.serviceIds;
280
+ /** @type {?} */
281
+ FindLocationComponent.prototype.searchLocationComponent;
282
+ /**
283
+ * @type {?}
284
+ * @private
285
+ */
286
+ FindLocationComponent.prototype.pServices;
287
+ /**
288
+ * @type {?}
289
+ * @private
290
+ */
291
+ FindLocationComponent.prototype.pDisabled;
292
+ }
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1sb2NhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZmluZC1sb2NhdGlvbi9maW5kLWxvY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQVksV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR2pFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUVyRjtJQUFBO1FBTW1CLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDakQsc0JBQWlCLEdBQTRCLEVBQUUsQ0FBQztRQUNoRCxjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLDRCQUF1QixHQUFZLElBQUksQ0FBQztRQUl4QyxrQkFBYSxHQUFHLCtCQUErQixDQUFDO1FBQ2hELHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUNuQyxjQUFTLEdBQTRCLEVBQUUsQ0FBQztRQUN4Qyx5QkFBb0IsR0FBMEIsSUFBSSxDQUFDO1FBQ25ELGVBQVUsR0FBVyxTQUFTLENBQUM7UUFFOUIsY0FBUyxHQUFhLEVBQUUsQ0FBQztRQUN6QixjQUFTLEdBQVksS0FBSyxDQUFDO0lBZ0dyQyxDQUFDO0lBOUZDLHNCQUFXLDJDQUFROzs7O1FBQW5CO1lBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3hCLENBQUM7Ozs7O1FBRUQsVUFDb0IsS0FBYztZQUNoQyxJQUFJLEtBQUssRUFBRTtnQkFDVCxJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxFQUFFLENB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RSxDQUFDO0lBQzlCLENBQUM7Ozs7OztJQUVPLDBEQUEwQjs7Ozs7SUFBbEMsVUFBbUMsU0FBa0M7OztZQUM3RCxTQUFTLEdBQUcsbUJBQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBYTs7WUFDN0QsS0FBdUIsSUFBQSxjQUFBLGlCQUFBLFNBQVMsQ0FBQSxvQ0FBQSwyREFBRTtnQkFBN0IsSUFBTSxVQUFRLHNCQUFBO2dCQUNqQixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLFVBQVEsQ0FBQyxDQUFDLENBQUM7YUFDM0M7Ozs7Ozs7OztJQUNILENBQUM7O2dCQW5IRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsZ2dEQUE2Qzs7aUJBRTlDOzs7dUNBRUUsTUFBTTtvQ0FDTixLQUFLOzRCQUNMLEtBQUs7MENBQ0wsS0FBSzt1QkFDTCxLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSztnQ0FDTCxLQUFLO29DQUNMLEtBQUs7MENBSUwsU0FBUyxTQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTsyQkFRbkQsS0FBSzsyQkFhTCxLQUFLOztJQTZFUiw0QkFBQztDQUFBLEFBcEhELElBb0hDO1NBL0dZLHFCQUFxQjs7O0lBQ2hDLHFEQUFpRTs7SUFDakUsa0RBQWdFOztJQUNoRSwwQ0FBMEM7O0lBQzFDLHdEQUF3RDs7SUFDeEQscUNBQWdDOztJQUNoQyxzQ0FBeUM7O0lBQ3pDLHVDQUE0Qzs7SUFDNUMsOENBQWdFOztJQUNoRSxrREFBMEM7O0lBQzFDLDBDQUErQzs7SUFDL0MscURBQTBEOztJQUMxRCwyQ0FBc0M7O0lBQ3RDLHdEQUE4Rzs7Ozs7SUFDOUcsMENBQWlDOzs7OztJQUNqQywwQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtGaWx0ZXJGaWVsZENvbmZpZ30gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TG9jYXRpb25CeUVQSU1NU01vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHtnZXRWYWx1ZXN9IGZyb20gJy4uL2dlbmVyaWMtZmlsdGVyL2dlbmVyaWMtZmlsdGVyLXV0aWxzJztcbmltcG9ydCB7U2VhcmNoTG9jYXRpb25Db21wb25lbnR9IGZyb20gJy4uL3NlYXJjaC1sb2NhdGlvbi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLWZpbmQtbG9jYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtbG9jYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaW5kTG9jYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAT3V0cHV0KCkgcHVibGljIGxvY2F0aW9uRmllbGRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQWRkTG9jYXRpb25CdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgZmllbGQ6IEZpbHRlckZpZWxkQ29uZmlnO1xuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWx0ZXJGaWVsZENvbmZpZ1tdO1xuICBASW5wdXQoKSBwdWJsaWMgbG9jYXRpb25UaXRsZSA9ICdTZWFyY2ggZm9yIGEgbG9jYXRpb24gYnkgbmFtZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlSW5wdXRGaWVsZCA9IGZhbHNlO1xuICBwdWJsaWMgbG9jYXRpb25zOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgdGVtcFNlbGVjdGVkTG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCA9IG51bGw7XG4gIHB1YmxpYyBzZXJ2aWNlSWRzOiBzdHJpbmcgPSAnU1NDUyxJQSc7XG4gIEBWaWV3Q2hpbGQoU2VhcmNoTG9jYXRpb25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBzZWFyY2hMb2NhdGlvbkNvbXBvbmVudDogU2VhcmNoTG9jYXRpb25Db21wb25lbnQ7XG4gIHByaXZhdGUgcFNlcnZpY2VzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHBEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucERpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZWFyY2hMb2NhdGlvbkNvbXBvbmVudC5yZXNldFNlYXJjaFRlcm0oKTtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG4gICAgdGhpcy5wRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVJbnB1dEZpZWxkID09PSB0cnVlID8gdHJ1ZSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlcnZpY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5wU2VydmljZXM7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlcnZpY2VzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMucFNlcnZpY2VzID0gdmFsdWU7XG4gICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkcy5maW5kKGYgPT4gZi5uYW1lID09PSB0aGlzLmZpZWxkLmZpbmRMb2NhdGlvbkZpZWxkKTtcbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuc2VydmljZUlkcyA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlSWRzID0gZ2V0VmFsdWVzKGZpZWxkLm9wdGlvbnMsIHZhbHVlKS5maWx0ZXIoeCA9PiB4ICE9PSAnc2VydmljZXNfYWxsJykuam9pbignLCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBpbXBsZW1lbnRlZCB0byBnZXQgcmlkIG9mIHVuZGVmaW5lZCB2YWx1ZXNcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25zID0gdGhpcy5zZWxlY3RlZExvY2F0aW9ucy5maWx0ZXIobG9jYXRpb24gPT4gbG9jYXRpb24uZXBpbW1zX2lkKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRMb2NhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50ZW1wU2VsZWN0ZWRMb2NhdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9ucyA9IFsuLi50aGlzLnNlbGVjdGVkTG9jYXRpb25zLCB0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uXTtcbiAgICAgIHRoaXMuYWRkU2VsZWN0ZWRMb2NhdGlvbnNUb0Zvcm0oW3RoaXMudGVtcFNlbGVjdGVkTG9jYXRpb25dKTtcbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkTG9jYXRpb24gPSBudWxsO1xuICAgICAgdGhpcy5sb2NhdGlvbnMgPSBbXTtcbiAgICAgIHRoaXMuc2VhcmNoTG9jYXRpb25Db21wb25lbnQucmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUxvY2F0aW9uKGxvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAobG9jYXRpb24uZXBpbW1zX2lkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25zID0gdGhpcy5zZWxlY3RlZExvY2F0aW9ucy5maWx0ZXIoc2VsZWN0ZWRMb2NhdGlvbiA9PiBzZWxlY3RlZExvY2F0aW9uLmVwaW1tc19pZCAhPT0gbG9jYXRpb24uZXBpbW1zX2lkKTtcbiAgICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5uYW1lKSBhcyBGb3JtQXJyYXk7XG4gICAgICBjb25zdCBpbmRleCA9IChmb3JtQXJyYXkudmFsdWUgYXMgTG9jYXRpb25CeUVQSU1NU01vZGVsW10pLmZpbmRJbmRleChzZWxlY3RlZExvY2F0aW9uID0+IHNlbGVjdGVkTG9jYXRpb24uZXBpbW1zX2lkID09PSBsb2NhdGlvbi5lcGltbXNfaWQpO1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JbnB1dENoYW5nZWQodGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gaWYgdGhlIGZpbHRlciBpcyBpbiBzaW5nbGUgbW9kZSBjbGVhciB0aGUgc2VsZWN0ZWQgbG9jYXRpb25zXG4gICAgaWYgKHR5cGVvZiB0ZXJtID09PSAnc3RyaW5nJyAmJiB0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TZWFyY2hJbnB1dENoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhdGlvbkZpZWxkQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25Mb2NhdGlvblNlbGVjdGVkKGxvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWVsZC5tYXhTZWxlY3RlZCA9PT0gMSkge1xuICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgdGhpcy5hZGRTZWxlY3RlZExvY2F0aW9uc1RvRm9ybShbbG9jYXRpb25dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkTG9jYXRpb25zLmZpbmQoeCA9PiB4LmVwaW1tc19pZCA9PT0gbG9jYXRpb24uZXBpbW1zX2lkKSkge1xuICAgICAgICBpZiAobG9jYXRpb24uZXBpbW1zX2lkKSB7XG4gICAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRMb2NhdGlvbiA9IGxvY2F0aW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTZWxlY3RlZFZhbHVlcygpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgRm9ybUFycmF5O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybUFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkU2VsZWN0ZWRMb2NhdGlvbnNUb0Zvcm0obG9jYXRpb25zOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5uYW1lKSBhcyBGb3JtQXJyYXk7XG4gICAgZm9yIChjb25zdCBsb2NhdGlvbiBvZiBsb2NhdGlvbnMpIHtcbiAgICAgIGZvcm1BcnJheS5wdXNoKG5ldyBGb3JtQ29udHJvbChsb2NhdGlvbikpO1xuICAgIH1cbiAgfVxufVxuIl19