@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
@@ -3,5 +3,5 @@
3
3
  * Generated from: lib/components/index.ts
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
- export { AccessibilityComponent, CheckboxListComponent, ContactDetailsComponent, DueDateComponent, ExuiPageWrapperComponent, HmctsSessionDialogComponent, InviteUserFormComponent, InviteUserPermissionComponent, LoadingSpinnerComponent, SelectedCaseComponent, SelectedCaseConfirmComponent, SelectedCaseListComponent, ServiceMessageComponent, ServiceMessagesComponent, ShareCaseComponent, ShareCaseConfirmComponent, TabComponent, TcConfirmComponent, TermsAndConditionsComponent, TcDisplayHtmlComponent, TcDisplayPlainComponent, UserDetailsComponent, UserListComponent, UserSelectComponent, GenericFilterComponent } from './public_api';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5bUJBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
6
+ export { AccessibilityComponent, CheckboxListComponent, ContactDetailsComponent, DueDateComponent, GenericFilterComponent, HmctsSessionDialogComponent, InviteUserFormComponent, InviteUserPermissionComponent, LoadingSpinnerComponent, SelectedCaseConfirmComponent, SelectedCaseListComponent, SelectedCaseComponent, ServiceMessageComponent, ServiceMessagesComponent, ShareCaseConfirmComponent, ShareCaseComponent, TabComponent, TcConfirmComponent, TcDisplayHtmlComponent, TcDisplayPlainComponent, TermsAndConditionsComponent, UserDetailsComponent, UserListComponent, CookieBannerComponent, FindLocationComponent, SearchLocationComponent, PaginationComponent } from './public_api';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzcEJBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==
@@ -3,59 +3,27 @@
3
3
  * Generated from: lib/components/loading-spinner/loading-spinner.component.ts
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
- import { Component, Input, Renderer2, ViewEncapsulation } from '@angular/core';
6
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
7
7
  var LoadingSpinnerComponent = /** @class */ (function () {
8
- function LoadingSpinnerComponent(renderer) {
9
- this.renderer = renderer;
10
- this.zIndex = 1000;
11
- this.loadingText = 'Page can take up to 30 seconds to load';
8
+ function LoadingSpinnerComponent() {
9
+ this.loadingText = 'Loading';
12
10
  }
13
- /**
14
- * @return {?}
15
- */
16
- LoadingSpinnerComponent.prototype.ngOnInit = /**
17
- * @return {?}
18
- */
19
- function () {
20
- this.renderer.addClass(document.body, 'loading-spinner-in-action');
21
- };
22
- /**
23
- * @return {?}
24
- */
25
- LoadingSpinnerComponent.prototype.ngOnDestroy = /**
26
- * @return {?}
27
- */
28
- function () {
29
- this.renderer.removeClass(document.body, 'loading-spinner-in-action');
30
- };
31
11
  LoadingSpinnerComponent.decorators = [
32
12
  { type: Component, args: [{
33
13
  selector: 'xuilib-loading-spinner',
34
- template: "<div class=\"loading-spinner__overlay\" [ngStyle]=\"{'z-index': zIndex}\">\n <div class=\"loading-spinner__box\" [ngStyle]=\"{'z-index': zIndex + 1}\">\n <div class=\"loading-spinner__fan\">\n <ng-container *ngFor=\"let i of [].constructor(12)\">\n <div></div>\n </ng-container>\n </div>\n <p>{{loadingText}}</p>\n </div>\n</div>",
14
+ template: "<div class=\"spinner-container\">\n <div class=\"spinner-inner-container\">\n <p>{{loadingText}}</p>\n <div class=\"spinner\" style=\"margin: auto;\"></div>\n </div>\n</div>\n",
35
15
  encapsulation: ViewEncapsulation.None,
36
- styles: [".loading-spinner-in-action{overflow:hidden}.loading-spinner-in-action .loading-spinner__overlay{position:fixed;top:0;left:0;bottom:0;right:0;background-color:rgba(255,255,255,.7)}.loading-spinner-in-action .loading-spinner__box{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.loading-spinner-in-action .loading-spinner__fan{display:inline-block;position:relative;width:64px;height:64px}.loading-spinner-in-action .loading-spinner__fan div{transform-origin:32px 32px;-webkit-animation:1.2s linear infinite lds-spinner;animation:1.2s linear infinite lds-spinner}.loading-spinner-in-action .loading-spinner__fan div:after{content:\" \";display:block;position:absolute;top:3px;left:29px;width:5px;height:14px;border-radius:20%;background:#0b0c0c}.loading-spinner-in-action .loading-spinner__fan div:nth-child(1){transform:rotate(0);-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(2){transform:rotate(30deg);-webkit-animation-delay:-1s;animation-delay:-1s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(3){transform:rotate(60deg);-webkit-animation-delay:-.9s;animation-delay:-.9s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(4){transform:rotate(90deg);-webkit-animation-delay:-.8s;animation-delay:-.8s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(5){transform:rotate(120deg);-webkit-animation-delay:-.7s;animation-delay:-.7s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(6){transform:rotate(150deg);-webkit-animation-delay:-.6s;animation-delay:-.6s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(7){transform:rotate(180deg);-webkit-animation-delay:-.5s;animation-delay:-.5s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(8){transform:rotate(210deg);-webkit-animation-delay:-.4s;animation-delay:-.4s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(9){transform:rotate(240deg);-webkit-animation-delay:-.3s;animation-delay:-.3s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(10){transform:rotate(270deg);-webkit-animation-delay:-.2s;animation-delay:-.2s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(11){transform:rotate(300deg);-webkit-animation-delay:-.1s;animation-delay:-.1s}.loading-spinner-in-action .loading-spinner__fan div:nth-child(12){transform:rotate(330deg);-webkit-animation-delay:0s;animation-delay:0s}@-webkit-keyframes lds-spinner{0%{opacity:1}100%{opacity:0}}@keyframes lds-spinner{0%{opacity:1}100%{opacity:0}}"]
16
+ styles: [".spinner-container{position:fixed;top:0;left:0;height:100%;width:100%;display:flex;justify-content:center;align-items:center;background:rgba(255,255,255,.5);z-index:99}.spinner-container .spinner-inner-container p{text-align:center}.spinner-container .spinner-inner-container .spinner{border:10px solid #ddd;border-top:10px solid #000;border-radius:50%;width:40px;height:40px;-webkit-animation:1s linear infinite spin;animation:1s linear infinite spin}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}"]
37
17
  }] }
38
18
  ];
39
- /** @nocollapse */
40
- LoadingSpinnerComponent.ctorParameters = function () { return [
41
- { type: Renderer2 }
42
- ]; };
43
19
  LoadingSpinnerComponent.propDecorators = {
44
- zIndex: [{ type: Input }],
45
20
  loadingText: [{ type: Input }]
46
21
  };
47
22
  return LoadingSpinnerComponent;
48
23
  }());
49
24
  export { LoadingSpinnerComponent };
50
25
  if (false) {
51
- /** @type {?} */
52
- LoadingSpinnerComponent.prototype.zIndex;
53
26
  /** @type {?} */
54
27
  LoadingSpinnerComponent.prototype.loadingText;
55
- /**
56
- * @type {?}
57
- * @private
58
- */
59
- LoadingSpinnerComponent.prototype.renderer;
60
28
  }
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zcGlubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEc7SUFXRSxpQ0FBNkIsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUhoQyxXQUFNLEdBQVcsSUFBSSxDQUFDO1FBQ3RCLGdCQUFXLEdBQVcsd0NBQXdDLENBQUM7SUFHL0UsQ0FBQzs7OztJQUVNLDBDQUFROzs7SUFBZjtRQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUNyRSxDQUFDOzs7O0lBRU0sNkNBQVc7OztJQUFsQjtRQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUN4RSxDQUFDOztnQkFwQkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLGlYQUErQztvQkFFL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2lCQUN0Qzs7OztnQkFQNkMsU0FBUzs7O3lCQVVwRCxLQUFLOzhCQUNMLEtBQUs7O0lBWVIsOEJBQUM7Q0FBQSxBQXJCRCxJQXFCQztTQWRZLHVCQUF1Qjs7O0lBQ2xDLHlDQUFzQzs7SUFDdEMsOENBQStFOzs7OztJQUVuRSwyQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItbG9hZGluZy1zcGlubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRpbmctc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvYWRpbmctc3Bpbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuXG5leHBvcnQgY2xhc3MgTG9hZGluZ1NwaW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyB6SW5kZXg6IG51bWJlciA9IDEwMDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkaW5nVGV4dDogc3RyaW5nID0gJ1BhZ2UgY2FuIHRha2UgdXAgdG8gMzAgc2Vjb25kcyB0byBsb2FkJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksICdsb2FkaW5nLXNwaW5uZXItaW4tYWN0aW9uJyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhkb2N1bWVudC5ib2R5LCAnbG9hZGluZy1zcGlubmVyLWluLWFjdGlvbicpO1xuICB9XG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zcGlubmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBFO0lBQUE7UUFRa0IsZ0JBQVcsR0FBVyxTQUFTLENBQUM7SUFDbEQsQ0FBQzs7Z0JBVEEsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLCtNQUErQztvQkFFL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2lCQUN0Qzs7OzhCQUdFLEtBQUs7O0lBQ1IsOEJBQUM7Q0FBQSxBQVRELElBU0M7U0FGWSx1QkFBdUI7OztJQUNsQyw4Q0FBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItbG9hZGluZy1zcGlubmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRpbmctc3Bpbm5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xvYWRpbmctc3Bpbm5lci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuXG5leHBvcnQgY2xhc3MgTG9hZGluZ1NwaW5uZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgbG9hZGluZ1RleHQ6IHN0cmluZyA9ICdMb2FkaW5nJztcbn1cbiJdfQ==
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/pagination/pagination.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
7
+ var PaginationComponent = /** @class */ (function () {
8
+ function PaginationComponent() {
9
+ this.previousPage = new EventEmitter();
10
+ this.nextPage = new EventEmitter();
11
+ }
12
+ /**
13
+ * @return {?}
14
+ */
15
+ PaginationComponent.prototype.onPrevious = /**
16
+ * @return {?}
17
+ */
18
+ function () {
19
+ this.previousPage.emit(null);
20
+ };
21
+ /**
22
+ * @return {?}
23
+ */
24
+ PaginationComponent.prototype.onNext = /**
25
+ * @return {?}
26
+ */
27
+ function () {
28
+ this.nextPage.emit(null);
29
+ };
30
+ PaginationComponent.decorators = [
31
+ { type: Component, args: [{
32
+ selector: 'xuilib-pagination',
33
+ template: "<nav class=\"hmcts-pagination\" id=\"pagination-label\">\n\n <p class=\"govuk-visually-hidden\" aria-labelledby=\"pagination-label\">Pagination navigation</p>\n\n <ul class=\"hmcts-pagination__list\">\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\">\n <a *ngIf=\"firstRecord > 1; else noPrevious\" class=\"hmcts-pagination__link\" (click)=\"onPrevious()\" href=\"javascript:void(0)\">\n Previous page\n </a>\n <ng-template #noPrevious>\n <span class=\"hmcts-pagination__link\">Previous page</span>\n </ng-template>\n </li>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\">\n <a *ngIf=\"moreItems; else noNext\" class=\"hmcts-pagination__link\" (click)=\"onNext()\" href=\"javascript:void(0)\">Next page</a>\n <ng-template #noNext>\n <span class=\"hmcts-pagination__link\">Next page</span>\n </ng-template>\n </li>\n </ul>\n</nav>\n",
34
+ styles: ["span.hmcts-pagination__link:hover{color:revert}"]
35
+ }] }
36
+ ];
37
+ /** @nocollapse */
38
+ PaginationComponent.ctorParameters = function () { return []; };
39
+ PaginationComponent.propDecorators = {
40
+ moreItems: [{ type: Input }],
41
+ firstRecord: [{ type: Input }],
42
+ previousPage: [{ type: Output }],
43
+ nextPage: [{ type: Output }]
44
+ };
45
+ return PaginationComponent;
46
+ }());
47
+ export { PaginationComponent };
48
+ if (false) {
49
+ /** @type {?} */
50
+ PaginationComponent.prototype.moreItems;
51
+ /** @type {?} */
52
+ PaginationComponent.prototype.firstRecord;
53
+ /** @type {?} */
54
+ PaginationComponent.prototype.previousPage;
55
+ /** @type {?} */
56
+ PaginationComponent.prototype.nextPage;
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkU7SUFZRTtRQUhpQixpQkFBWSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JELGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVsRCxDQUFDOzs7O0lBRVYsd0NBQVU7OztJQUFqQjtRQUNFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7Ozs7SUFFTSxvQ0FBTTs7O0lBQWI7UUFDRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOztnQkFwQkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLDY3QkFBMEM7O2lCQUUzQzs7Ozs7NEJBR0UsS0FBSzs4QkFDTCxLQUFLOytCQUNMLE1BQU07MkJBQ04sTUFBTTs7SUFXVCwwQkFBQztDQUFBLEFBckJELElBcUJDO1NBaEJZLG1CQUFtQjs7O0lBRTlCLHdDQUFtQzs7SUFDbkMsMENBQW9DOztJQUNwQywyQ0FBc0U7O0lBQ3RFLHVDQUFrRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1wYWdpbmF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgcHVibGljIG1vcmVJdGVtczogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIGZpcnN0UmVjb3JkOiBudW1iZXI7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcHJldmlvdXNQYWdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBuZXh0UGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgb25QcmV2aW91cygpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZpb3VzUGFnZS5lbWl0KG51bGwpO1xuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLm5leHRQYWdlLmVtaXQobnVsbCk7XG4gIH1cbn1cbiJdfQ==
@@ -7,25 +7,27 @@ export { AccessibilityComponent } from './accessibility/accessibility.component'
7
7
  export { CheckboxListComponent } from './checkbox-list/checkbox-list.component';
8
8
  export { ContactDetailsComponent } from './contact-details/contact-details.component';
9
9
  export { DueDateComponent } from './due-date/due-date.component';
10
- export { ExuiPageWrapperComponent } from './exui-main-wrapper/exui-page-wrapper.component';
10
+ export { GenericFilterComponent } from './generic-filter/generic-filter.component';
11
11
  export { HmctsSessionDialogComponent } from './hmcts-session-dialog/hmcts-session-dialog.component';
12
12
  export { InviteUserFormComponent } from './invite-user-form/invite-user-form.component';
13
13
  export { InviteUserPermissionComponent } from './invite-user-permissions/invite-user-permission.component';
14
14
  export { LoadingSpinnerComponent } from './loading-spinner/loading-spinner.component';
15
- export { SelectedCaseComponent } from './selected-case/selected-case.component';
16
15
  export { SelectedCaseConfirmComponent } from './selected-case-confirm/selected-case-confirm.component';
17
16
  export { SelectedCaseListComponent } from './selected-case-list/selected-case-list.component';
17
+ export { SelectedCaseComponent } from './selected-case/selected-case.component';
18
18
  export { ServiceMessageComponent } from './service-message/service-message.component';
19
19
  export { ServiceMessagesComponent } from './service-messages/service-messages.component';
20
- export { ShareCaseComponent } from './share-case/share-case.component';
21
20
  export { ShareCaseConfirmComponent } from './share-case-confirm/share-case-confirm.component';
21
+ export { ShareCaseComponent } from './share-case/share-case.component';
22
22
  export { TabComponent } from './tab/tab.component';
23
23
  export { TcConfirmComponent } from './tc-confirm/tc-confirm.component';
24
- export { TermsAndConditionsComponent } from './terms-and-conditions/terms-and-conditions.component';
25
24
  export { TcDisplayHtmlComponent } from './terms-and-conditions/tc-display/tc-display-html/tc-display-html.component';
26
25
  export { TcDisplayPlainComponent } from './terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component';
26
+ export { TermsAndConditionsComponent } from './terms-and-conditions/terms-and-conditions.component';
27
27
  export { UserDetailsComponent } from './user-details/user-details.component';
28
28
  export { UserListComponent } from './user-list/user-list.component';
29
- export { UserSelectComponent } from './user-select/user-select.component';
30
- export { GenericFilterComponent } from './generic-filter/generic-filter.component';
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUNBQWMseUNBQXlDLENBQUM7QUFDeEQsc0NBQWMseUNBQXlDLENBQUM7QUFDeEQsd0NBQWMsNkNBQTZDLENBQUM7QUFDNUQsaUNBQWMsK0JBQStCLENBQUM7QUFDOUMseUNBQWMsaURBQWlELENBQUM7QUFDaEUsNENBQWMsdURBQXVELENBQUM7QUFDdEUsd0NBQWMsK0NBQStDLENBQUM7QUFDOUQsOENBQWMsNERBQTRELENBQUM7QUFDM0Usd0NBQWMsNkNBQTZDLENBQUM7QUFDNUQsc0NBQWMseUNBQXlDLENBQUM7QUFDeEQsNkNBQWMseURBQXlELENBQUM7QUFDeEUsMENBQWMsbURBQW1ELENBQUM7QUFDbEUsd0NBQWMsNkNBQTZDLENBQUM7QUFDNUQseUNBQWMsK0NBQStDLENBQUM7QUFDOUQsbUNBQWMsbUNBQW1DLENBQUM7QUFDbEQsMENBQWMsbURBQW1ELENBQUM7QUFDbEUsNkJBQWMscUJBQXFCLENBQUM7QUFDcEMsbUNBQWMsbUNBQW1DLENBQUM7QUFDbEQsNENBQWMsdURBQXVELENBQUM7QUFDdEUsdUNBQWMsNkVBQTZFLENBQUM7QUFDNUYsd0NBQWMsK0VBQStFLENBQUM7QUFDOUYscUNBQWMsdUNBQXVDLENBQUM7QUFDdEQsa0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsb0NBQWMscUNBQXFDLENBQUM7QUFDcEQsdUNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC1saXN0L2NoZWNrYm94LWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kdWUtZGF0ZS9kdWUtZGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9leHVpLW1haW4td3JhcHBlci9leHVpLXBhZ2Utd3JhcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9obWN0cy1zZXNzaW9uLWRpYWxvZy9obWN0cy1zZXNzaW9uLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnZpdGUtdXNlci1mb3JtL2ludml0ZS11c2VyLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW52aXRlLXVzZXItcGVybWlzc2lvbnMvaW52aXRlLXVzZXItcGVybWlzc2lvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGVkLWNhc2Uvc2VsZWN0ZWQtY2FzZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3RlZC1jYXNlLWNvbmZpcm0vc2VsZWN0ZWQtY2FzZS1jb25maXJtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGVkLWNhc2UtbGlzdC9zZWxlY3RlZC1jYXNlLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1tZXNzYWdlL3NlcnZpY2UtbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLW1lc3NhZ2VzL3NlcnZpY2UtbWVzc2FnZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmUtY2FzZS9zaGFyZS1jYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlLWNhc2UtY29uZmlybS9zaGFyZS1jYXNlLWNvbmZpcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFiL3RhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90Yy1jb25maXJtL3RjLWNvbmZpcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGVybXMtYW5kLWNvbmRpdGlvbnMvdGVybXMtYW5kLWNvbmRpdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGVybXMtYW5kLWNvbmRpdGlvbnMvdGMtZGlzcGxheS90Yy1kaXNwbGF5LWh0bWwvdGMtZGlzcGxheS1odG1sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Rlcm1zLWFuZC1jb25kaXRpb25zL3RjLWRpc3BsYXkvdGMtZGlzcGxheS1wbGFpbi90Yy1kaXNwbGF5LXBsYWluLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItZGV0YWlscy91c2VyLWRldGFpbHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1saXN0L3VzZXItbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi91c2VyLXNlbGVjdC91c2VyLXNlbGVjdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmljLWZpbHRlci9nZW5lcmljLWZpbHRlci5jb21wb25lbnQnO1xuIl19
29
+ export { CookieBannerComponent } from './cookie-banner/cookie-banner.component';
30
+ export { FindLocationComponent } from './find-location/find-location.component';
31
+ export { SearchLocationComponent } from './search-location/search-location.component';
32
+ export { PaginationComponent } from './pagination/pagination.component';
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsdUNBQWMseUNBQXlDLENBQUM7QUFDeEQsc0NBQWMseUNBQXlDLENBQUM7QUFDeEQsd0NBQWMsNkNBQTZDLENBQUM7QUFDNUQsaUNBQWMsK0JBQStCLENBQUM7QUFDOUMsdUNBQWMsMkNBQTJDLENBQUM7QUFDMUQsNENBQWMsdURBQXVELENBQUM7QUFDdEUsd0NBQWMsK0NBQStDLENBQUM7QUFDOUQsOENBQWMsNERBQTRELENBQUM7QUFDM0Usd0NBQWMsNkNBQTZDLENBQUM7QUFDNUQsNkNBQWMseURBQXlELENBQUM7QUFDeEUsMENBQWMsbURBQW1ELENBQUM7QUFDbEUsc0NBQWMseUNBQXlDLENBQUM7QUFDeEQsd0NBQWMsNkNBQTZDLENBQUM7QUFDNUQseUNBQWMsK0NBQStDLENBQUM7QUFDOUQsMENBQWMsbURBQW1ELENBQUM7QUFDbEUsbUNBQWMsbUNBQW1DLENBQUM7QUFDbEQsNkJBQWMscUJBQXFCLENBQUM7QUFDcEMsbUNBQWMsbUNBQW1DLENBQUM7QUFDbEQsdUNBQWMsNkVBQTZFLENBQUM7QUFDNUYsd0NBQWMsK0VBQStFLENBQUM7QUFDOUYsNENBQWMsdURBQXVELENBQUM7QUFDdEUscUNBQWMsdUNBQXVDLENBQUM7QUFDdEQsa0NBQWMsaUNBQWlDLENBQUM7QUFDaEQsc0NBQWMseUNBQXlDLENBQUM7QUFDeEQsc0NBQWMseUNBQXlDLENBQUM7QUFDeEQsd0NBQWMsNkNBQTZDLENBQUM7QUFDNUQsb0NBQWMsbUNBQW1DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC1saXN0L2NoZWNrYm94LWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kdWUtZGF0ZS9kdWUtZGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmljLWZpbHRlci9nZW5lcmljLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9obWN0cy1zZXNzaW9uLWRpYWxvZy9obWN0cy1zZXNzaW9uLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnZpdGUtdXNlci1mb3JtL2ludml0ZS11c2VyLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW52aXRlLXVzZXItcGVybWlzc2lvbnMvaW52aXRlLXVzZXItcGVybWlzc2lvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGVkLWNhc2UtY29uZmlybS9zZWxlY3RlZC1jYXNlLWNvbmZpcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0ZWQtY2FzZS1saXN0L3NlbGVjdGVkLWNhc2UtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3RlZC1jYXNlL3NlbGVjdGVkLWNhc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1tZXNzYWdlL3NlcnZpY2UtbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLW1lc3NhZ2VzL3NlcnZpY2UtbWVzc2FnZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmUtY2FzZS1jb25maXJtL3NoYXJlLWNhc2UtY29uZmlybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZS1jYXNlL3NoYXJlLWNhc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFiL3RhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90Yy1jb25maXJtL3RjLWNvbmZpcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGVybXMtYW5kLWNvbmRpdGlvbnMvdGMtZGlzcGxheS90Yy1kaXNwbGF5LWh0bWwvdGMtZGlzcGxheS1odG1sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Rlcm1zLWFuZC1jb25kaXRpb25zL3RjLWRpc3BsYXkvdGMtZGlzcGxheS1wbGFpbi90Yy1kaXNwbGF5LXBsYWluLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Rlcm1zLWFuZC1jb25kaXRpb25zL3Rlcm1zLWFuZC1jb25kaXRpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItZGV0YWlscy91c2VyLWRldGFpbHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1saXN0L3VzZXItbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb29raWUtYmFubmVyL2Nvb2tpZS1iYW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmluZC1sb2NhdGlvbi9maW5kLWxvY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1sb2NhdGlvbi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,291 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * Generated from: lib/components/search-judicials/search-judicials.component.ts
4
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
+ */
6
+ import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
7
+ import { AbstractControl, FormArray, FormBuilder, FormControl } from '@angular/forms';
8
+ import { Subject } from 'rxjs';
9
+ import { debounceTime, mergeMap } from 'rxjs/operators';
10
+ import { FindAPersonService } from '../../services/find-person/find-person.service';
11
+ var SearchJudicialsComponent = /** @class */ (function () {
12
+ function SearchJudicialsComponent(judicialService, fb) {
13
+ this.judicialService = judicialService;
14
+ this.disabled = null;
15
+ this.selectedJudicials = [];
16
+ this.submitted = true;
17
+ this.placeholderContent = '';
18
+ this.showAutocomplete = false;
19
+ this.judicialChanged = new EventEmitter();
20
+ this.idValue = '';
21
+ this.errorMessage = 'You must select a name';
22
+ this.serviceId = '';
23
+ this.minSearchCharacters = 3;
24
+ this.keyUpSubject$ = new Subject();
25
+ this.searchInProgress = false;
26
+ this.formGroup = fb.group({
27
+ formControl: [null],
28
+ selectedFormControl: [null]
29
+ });
30
+ }
31
+ /**
32
+ * @return {?}
33
+ */
34
+ SearchJudicialsComponent.prototype.ngOnInit = /**
35
+ * @return {?}
36
+ */
37
+ function () {
38
+ var _this = this;
39
+ this.displayedJudicials = [];
40
+ if (this.control) {
41
+ if (this.formGroup && this.formGroup.controls) {
42
+ this.formGroup.controls.selectedFormControl = this.control;
43
+ this.formGroup.controls.formControl.setValue(this.getControlValueDisplayText());
44
+ }
45
+ }
46
+ this.keyUpSubject$.pipe(debounceTime(500)).subscribe((/**
47
+ * @param {?} searchValue
48
+ * @return {?}
49
+ */
50
+ function (searchValue) { return _this.search((/** @type {?} */ (searchValue))); }));
51
+ };
52
+ /**
53
+ * @return {?}
54
+ */
55
+ SearchJudicialsComponent.prototype.onKeyDown = /**
56
+ * @return {?}
57
+ */
58
+ function () {
59
+ this.judicialChanged.emit();
60
+ };
61
+ /**
62
+ * @param {?} event
63
+ * @return {?}
64
+ */
65
+ SearchJudicialsComponent.prototype.onKeyUp = /**
66
+ * @param {?} event
67
+ * @return {?}
68
+ */
69
+ function (event) {
70
+ this.showAutocomplete = false;
71
+ this.keyUpSubject$.next(event.target.value);
72
+ };
73
+ /**
74
+ * @return {?}
75
+ */
76
+ SearchJudicialsComponent.prototype.onFocus = /**
77
+ * @return {?}
78
+ */
79
+ function () {
80
+ this.showAutocomplete = false;
81
+ };
82
+ Object.defineProperty(SearchJudicialsComponent.prototype, "displayedJudicialsDuplicationFiltered", {
83
+ get: /**
84
+ * @return {?}
85
+ */
86
+ function () {
87
+ var _this = this;
88
+ return this.displayedJudicials.filter((/**
89
+ * @param {?} judicial
90
+ * @return {?}
91
+ */
92
+ function (judicial) { return !_this.selectedJudicials.map((/**
93
+ * @param {?} selectedJudicial
94
+ * @return {?}
95
+ */
96
+ function (selectedJudicial) { return selectedJudicial.idamId; })).includes(judicial.idamId); }));
97
+ },
98
+ enumerable: true,
99
+ configurable: true
100
+ });
101
+ /**
102
+ * @param {?} term
103
+ * @return {?}
104
+ */
105
+ SearchJudicialsComponent.prototype.filter = /**
106
+ * @param {?} term
107
+ * @return {?}
108
+ */
109
+ function (term) {
110
+ var _this = this;
111
+ this.searchJudicials(term, this.serviceId).pipe(mergeMap((/**
112
+ * @param {?} apiData
113
+ * @return {?}
114
+ */
115
+ function (apiData) {
116
+ /** @type {?} */
117
+ var apiFilter = apiData.filter((/**
118
+ * @param {?} apiJudicial
119
+ * @return {?}
120
+ */
121
+ function (apiJudicial) { return !_this.selectedJudicials.map((/**
122
+ * @param {?} selectedJudicial
123
+ * @return {?}
124
+ */
125
+ function (selectedJudicial) { return selectedJudicial.idamId; })).includes(apiJudicial.idamId); }));
126
+ _this.displayedJudicials = apiFilter;
127
+ _this.searchInProgress = false;
128
+ return apiFilter;
129
+ }))).subscribe((/**
130
+ * @param {?} judicial
131
+ * @return {?}
132
+ */
133
+ function (judicial) {
134
+ if (term === judicial.knownAs) {
135
+ _this.formGroup.controls.selectedFormControl.setValue(judicial);
136
+ _this.displayedJudicials = [];
137
+ _this.judicialChanged.emit(judicial);
138
+ _this.showAutocomplete = false;
139
+ }
140
+ _this.searchInProgress = false;
141
+ }));
142
+ };
143
+ /**
144
+ * @param {?=} selection
145
+ * @return {?}
146
+ */
147
+ SearchJudicialsComponent.prototype.onSelectionChange = /**
148
+ * @param {?=} selection
149
+ * @return {?}
150
+ */
151
+ function (selection) {
152
+ if (this.formGroup.controls.formControl instanceof FormArray) {
153
+ ((/** @type {?} */ (this.formGroup.controls.selectedFormControl))).push(new FormControl(selection.idamId));
154
+ }
155
+ else {
156
+ this.formGroup.controls.selectedFormControl.setValue(selection);
157
+ }
158
+ this.judicialChanged.emit(selection);
159
+ };
160
+ /**
161
+ * @param {?} currentValue
162
+ * @return {?}
163
+ */
164
+ SearchJudicialsComponent.prototype.search = /**
165
+ * @param {?} currentValue
166
+ * @return {?}
167
+ */
168
+ function (currentValue) {
169
+ this.searchInProgress = true;
170
+ this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);
171
+ if (!!currentValue) {
172
+ this.formGroup.controls.selectedFormControl.markAsDirty();
173
+ }
174
+ else {
175
+ this.formGroup.controls.selectedFormControl.reset();
176
+ }
177
+ if (this.showAutocomplete) {
178
+ this.filter(currentValue);
179
+ }
180
+ else {
181
+ this.searchInProgress = false;
182
+ }
183
+ };
184
+ /**
185
+ * @param {?} selectedJudicial
186
+ * @return {?}
187
+ */
188
+ SearchJudicialsComponent.prototype.getDisplayName = /**
189
+ * @param {?} selectedJudicial
190
+ * @return {?}
191
+ */
192
+ function (selectedJudicial) {
193
+ return selectedJudicial.knownAs + " (" + selectedJudicial.emailId + ")";
194
+ };
195
+ /**
196
+ * @param {?} term
197
+ * @param {?} serviceId
198
+ * @return {?}
199
+ */
200
+ SearchJudicialsComponent.prototype.searchJudicials = /**
201
+ * @param {?} term
202
+ * @param {?} serviceId
203
+ * @return {?}
204
+ */
205
+ function (term, serviceId) {
206
+ return this.judicialService.searchJudicial(term, serviceId);
207
+ };
208
+ /**
209
+ * @return {?}
210
+ */
211
+ SearchJudicialsComponent.prototype.getControlValueDisplayText = /**
212
+ * @return {?}
213
+ */
214
+ function () {
215
+ return this.formGroup && this.formGroup.controls && this.formGroup.controls.selectedFormControl.value ?
216
+ this.getDisplayName((/** @type {?} */ (this.formGroup.controls.selectedFormControl.value))) : '';
217
+ };
218
+ SearchJudicialsComponent.decorators = [
219
+ { type: Component, args: [{
220
+ selector: 'xuilib-search-judicials',
221
+ template: "<div class=\"govuk-form-group\">\n <input id=\"inputSelectPerson{{idValue}}\" [placeholder]=\"placeholderContent\" [formControl]=\"formGroup.controls.formControl\"\n [matAutocomplete]=\"autoComplete\" (keydown)=\"onKeyDown()\" (keyup)=\"onKeyUp($event)\" (focus)=\"onFocus()\"\n class=\"govuk-input\" [attr.disabled]=\"!disabled ? null: disabled\" [value]=\"getControlValueDisplayText()\"\n #inputSelection>\n <mat-autocomplete autoActiveFirstOption #autoComplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let judicial of displayedJudicialsDuplicationFiltered\" class=\"select-option\"\n [value]=\"getDisplayName(judicial)\" (onSelectionChange)=\"onSelectionChange(judicial)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(judicial) }}\n </mat-option>\n <mat-option class=\"select-option\"\n *ngIf=\"!displayedJudicialsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">\n {{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n</div>\n",
222
+ styles: [".hide-autocomplete{display:none}.mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}"]
223
+ }] }
224
+ ];
225
+ /** @nocollapse */
226
+ SearchJudicialsComponent.ctorParameters = function () { return [
227
+ { type: FindAPersonService },
228
+ { type: FormBuilder }
229
+ ]; };
230
+ SearchJudicialsComponent.propDecorators = {
231
+ control: [{ type: Input }],
232
+ disabled: [{ type: Input }],
233
+ selectedJudicials: [{ type: Input }],
234
+ submitted: [{ type: Input }],
235
+ placeholderContent: [{ type: Input }],
236
+ showAutocomplete: [{ type: Input }],
237
+ displayedJudicials: [{ type: Input }],
238
+ judicialChanged: [{ type: Output }],
239
+ idValue: [{ type: Input }],
240
+ errorMessage: [{ type: Input }],
241
+ serviceId: [{ type: Input }],
242
+ autoCompleteInputBox: [{ type: ViewChild, args: ['inputSelection', { read: ElementRef, static: true },] }]
243
+ };
244
+ return SearchJudicialsComponent;
245
+ }());
246
+ export { SearchJudicialsComponent };
247
+ if (false) {
248
+ /** @type {?} */
249
+ SearchJudicialsComponent.prototype.formGroup;
250
+ /** @type {?} */
251
+ SearchJudicialsComponent.prototype.control;
252
+ /** @type {?} */
253
+ SearchJudicialsComponent.prototype.disabled;
254
+ /** @type {?} */
255
+ SearchJudicialsComponent.prototype.selectedJudicials;
256
+ /** @type {?} */
257
+ SearchJudicialsComponent.prototype.submitted;
258
+ /** @type {?} */
259
+ SearchJudicialsComponent.prototype.placeholderContent;
260
+ /** @type {?} */
261
+ SearchJudicialsComponent.prototype.showAutocomplete;
262
+ /** @type {?} */
263
+ SearchJudicialsComponent.prototype.displayedJudicials;
264
+ /** @type {?} */
265
+ SearchJudicialsComponent.prototype.judicialChanged;
266
+ /** @type {?} */
267
+ SearchJudicialsComponent.prototype.idValue;
268
+ /** @type {?} */
269
+ SearchJudicialsComponent.prototype.errorMessage;
270
+ /** @type {?} */
271
+ SearchJudicialsComponent.prototype.serviceId;
272
+ /** @type {?} */
273
+ SearchJudicialsComponent.prototype.autoCompleteInputBox;
274
+ /** @type {?} */
275
+ SearchJudicialsComponent.prototype.selectedJudicial;
276
+ /**
277
+ * @type {?}
278
+ * @private
279
+ */
280
+ SearchJudicialsComponent.prototype.minSearchCharacters;
281
+ /** @type {?} */
282
+ SearchJudicialsComponent.prototype.keyUpSubject$;
283
+ /** @type {?} */
284
+ SearchJudicialsComponent.prototype.searchInProgress;
285
+ /**
286
+ * @type {?}
287
+ * @private
288
+ */
289
+ SearchJudicialsComponent.prototype.judicialService;
290
+ }
291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWp1ZGljaWFscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VhcmNoLWp1ZGljaWFscy9zZWFyY2gtanVkaWNpYWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXBGO0lBd0JFLGtDQUE2QixlQUFtQyxFQUFFLEVBQWU7UUFBcEQsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBaEJoRCxhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFDNUMsY0FBUyxHQUFhLElBQUksQ0FBQztRQUMzQix1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDekQsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixpQkFBWSxHQUFXLHdCQUF3QixDQUFDO1FBQ2hELGNBQVMsR0FBVyxFQUFFLENBQUM7UUFHdEIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFDL0MscUJB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OzRCQUNMLEtBQUs7dUNBQ0wsU0FBUyxTQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztJQW9HakUsK0JBQUM7Q0FBQSxBQXRIRCxJQXNIQztTQWpIWSx3QkFBd0I7OztJQUNuQyw2Q0FBNEI7O0lBQzVCLDJDQUF5Qzs7SUFDekMsNENBQXlDOztJQUN6QyxxREFBNEQ7O0lBQzVELDZDQUEyQzs7SUFDM0Msc0RBQWdEOztJQUNoRCxvREFBa0Q7O0lBQ2xELHNEQUF3RDs7SUFDeEQsbURBQXlFOztJQUN6RSwyQ0FBcUM7O0lBQ3JDLGdEQUFnRTs7SUFDaEUsNkNBQXVDOztJQUN2Qyx3REFBMkg7O0lBQzNILG9EQUEyQzs7Ozs7SUFDM0MsdURBQXlDOztJQUN6QyxpREFBc0Q7O0lBQ3RELG9EQUF5Qzs7Ozs7SUFFN0IsbURBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSnVkaWNpYWxVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRmluZEFQZXJzb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmluZC1wZXJzb24vZmluZC1wZXJzb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1zZWFyY2gtanVkaWNpYWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1qdWRpY2lhbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtanVkaWNpYWxzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoSnVkaWNpYWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRKdWRpY2lhbHM6IEp1ZGljaWFsVXNlck1vZGVsW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIHN1Ym1pdHRlZD86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXJDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXllZEp1ZGljaWFsczogSnVkaWNpYWxVc2VyTW9kZWxbXTtcbiAgQE91dHB1dCgpIHB1YmxpYyBqdWRpY2lhbENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEp1ZGljaWFsVXNlck1vZGVsPigpO1xuICBASW5wdXQoKSBwdWJsaWMgaWRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICdZb3UgbXVzdCBzZWxlY3QgYSBuYW1lJztcbiAgQElucHV0KCkgcHVibGljIHNlcnZpY2VJZDogc3RyaW5nID0gJyc7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0U2VsZWN0aW9uJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgcHVibGljIGF1dG9Db21wbGV0ZUlucHV0Qm94OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBwdWJsaWMgc2VsZWN0ZWRKdWRpY2lhbDogSnVkaWNpYWxVc2VyTW9kZWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWluU2VhcmNoQ2hhcmFjdGVycyA9IDM7XG4gIHB1YmxpYyBrZXlVcFN1YmplY3QkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgc2VhcmNoSW5Qcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkganVkaWNpYWxTZXJ2aWNlOiBGaW5kQVBlcnNvblNlcnZpY2UsIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gZmIuZ3JvdXAoe1xuICAgICAgZm9ybUNvbnRyb2w6IFtudWxsXSxcbiAgICAgIHNlbGVjdGVkRm9ybUNvbnRyb2w6IFtudWxsXVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkSnVkaWNpYWxzID0gW107XG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wgPSB0aGlzLmNvbnRyb2w7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZ2V0Q29udHJvbFZhbHVlRGlzcGxheVRleHQoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMua2V5VXBTdWJqZWN0JC5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUoc2VhcmNoVmFsdWUgPT4gdGhpcy5zZWFyY2goc2VhcmNoVmFsdWUgYXMgc3RyaW5nKSk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlEb3duKCk6IHZvaWQge1xuICAgIHRoaXMuanVkaWNpYWxDaGFuZ2VkLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleVVwKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZTtcbiAgICB0aGlzLmtleVVwU3ViamVjdCQubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc3BsYXllZEp1ZGljaWFsc0R1cGxpY2F0aW9uRmlsdGVyZWQoKTogSnVkaWNpYWxVc2VyTW9kZWxbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheWVkSnVkaWNpYWxzLmZpbHRlcihcbiAgICAgIGp1ZGljaWFsID0+ICF0aGlzLnNlbGVjdGVkSnVkaWNpYWxzLm1hcChzZWxlY3RlZEp1ZGljaWFsID0+IHNlbGVjdGVkSnVkaWNpYWwuaWRhbUlkKS5pbmNsdWRlcyhqdWRpY2lhbC5pZGFtSWQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXIodGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hKdWRpY2lhbHModGVybSwgdGhpcy5zZXJ2aWNlSWQpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoYXBpRGF0YTogSnVkaWNpYWxVc2VyTW9kZWxbXSkgPT4ge1xuICAgICAgICBjb25zdCBhcGlGaWx0ZXIgPSBhcGlEYXRhLmZpbHRlcihcbiAgICAgICAgICBhcGlKdWRpY2lhbCA9PiAhdGhpcy5zZWxlY3RlZEp1ZGljaWFscy5tYXAoc2VsZWN0ZWRKdWRpY2lhbCA9PiBzZWxlY3RlZEp1ZGljaWFsLmlkYW1JZCkuaW5jbHVkZXMoYXBpSnVkaWNpYWwuaWRhbUlkKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRpc3BsYXllZEp1ZGljaWFscyA9IGFwaUZpbHRlcjtcbiAgICAgICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBhcGlGaWx0ZXI7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKGp1ZGljaWFsID0+IHtcbiAgICAgIGlmICh0ZXJtID09PSBqdWRpY2lhbC5rbm93bkFzKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUoanVkaWNpYWwpO1xuICAgICAgICB0aGlzLmRpc3BsYXllZEp1ZGljaWFscyA9IFtdO1xuICAgICAgICB0aGlzLmp1ZGljaWFsQ2hhbmdlZC5lbWl0KGp1ZGljaWFsKTtcbiAgICAgICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24/OiBKdWRpY2lhbFVzZXJNb2RlbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wgYXMgRm9ybUFycmF5KS5wdXNoKG5ldyBGb3JtQ29udHJvbChzZWxlY3Rpb24uaWRhbUlkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUoc2VsZWN0aW9uKTtcbiAgICB9XG4gICAgdGhpcy5qdWRpY2lhbENoYW5nZWQuZW1pdChzZWxlY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaChjdXJyZW50VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gISFjdXJyZW50VmFsdWUgJiYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPj0gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKTtcbiAgICBpZiAoISFjdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93QXV0b2NvbXBsZXRlKSB7XG4gICAgICB0aGlzLmZpbHRlcihjdXJyZW50VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRKdWRpY2lhbDogSnVkaWNpYWxVc2VyTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzZWxlY3RlZEp1ZGljaWFsLmtub3duQXN9ICgke3NlbGVjdGVkSnVkaWNpYWwuZW1haWxJZH0pYDtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hKdWRpY2lhbHModGVybTogc3RyaW5nLCBzZXJ2aWNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SnVkaWNpYWxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmp1ZGljaWFsU2VydmljZS5zZWFyY2hKdWRpY2lhbCh0ZXJtLCBzZXJ2aWNlSWQpO1xuICB9XG5cbiAgcHVibGljIGdldENvbnRyb2xWYWx1ZURpc3BsYXlUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzICYmIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wudmFsdWUgP1xuICAgICAgdGhpcy5nZXREaXNwbGF5TmFtZSh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlIGFzIEp1ZGljaWFsVXNlck1vZGVsKSA6ICcnO1xuICB9XG59XG4iXX0=