@hmcts/rpx-xui-common-lib 3.0.4 → 3.0.15-alpha-4

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 (207) hide show
  1. package/{esm2022 → esm2020}/lib/components/accessibility/accessibility.component.mjs +4 -4
  2. package/{esm2022 → esm2020}/lib/components/checkbox-list/checkbox-list.component.mjs +4 -4
  3. package/{esm2022 → esm2020}/lib/components/contact-details/contact-details.component.mjs +4 -4
  4. package/{esm2022 → esm2020}/lib/components/cookie-banner/cookie-banner.component.mjs +4 -4
  5. package/{esm2022 → esm2020}/lib/components/due-date/due-date.component.mjs +4 -4
  6. package/{esm2022 → esm2020}/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +4 -4
  7. package/{esm2022 → esm2020}/lib/components/find-location/find-location.component.mjs +4 -4
  8. package/{esm2022 → esm2020}/lib/components/find-person/find-person.component.mjs +4 -4
  9. package/{esm2022 → esm2020}/lib/components/find-service/find-service.component.mjs +4 -4
  10. package/{esm2022 → esm2020}/lib/components/find-task-name/find-task-name.component.mjs +4 -4
  11. package/{esm2022 → esm2020}/lib/components/generic-filter/generic-filter.component.mjs +4 -4
  12. package/{esm2022 → esm2020}/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +4 -4
  13. package/{esm2022 → esm2020}/lib/components/invite-user-form/invite-user-form.component.mjs +4 -4
  14. package/{esm2022 → esm2020}/lib/components/invite-user-permissions/invite-user-permission.component.mjs +4 -4
  15. package/{esm2022 → esm2020}/lib/components/loading-spinner/loading-spinner.component.mjs +4 -4
  16. package/{esm2022 → esm2020}/lib/components/pagination/pagination.component.mjs +4 -4
  17. package/{esm2022 → esm2020}/lib/components/search-judicials/search-judicials.component.mjs +4 -4
  18. package/{esm2022 → esm2020}/lib/components/search-location/search-location.component.mjs +11 -11
  19. package/{esm2022 → esm2020}/lib/components/search-service/search-service.component.mjs +4 -4
  20. package/{esm2022 → esm2020}/lib/components/search-venue/search-venue.component.mjs +4 -4
  21. package/{esm2022 → esm2020}/lib/components/selected-case/selected-case.component.mjs +4 -4
  22. package/{esm2022 → esm2020}/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +4 -4
  23. package/{esm2022 → esm2020}/lib/components/selected-case-list/selected-case-list.component.mjs +4 -4
  24. package/{esm2022 → esm2020}/lib/components/service-message/service-message.component.mjs +4 -4
  25. package/{esm2022 → esm2020}/lib/components/service-messages/service-messages.component.mjs +4 -4
  26. package/{esm2022 → esm2020}/lib/components/share-case/share-case.component.mjs +4 -4
  27. package/{esm2022 → esm2020}/lib/components/share-case-confirm/share-case-confirm.component.mjs +4 -4
  28. package/{esm2022 → esm2020}/lib/components/tab/tab.component.mjs +4 -4
  29. package/{esm2022 → esm2020}/lib/components/tc-confirm/tc-confirm.component.mjs +4 -4
  30. package/{esm2022 → esm2020}/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +4 -4
  31. package/{esm2022 → esm2020}/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +4 -4
  32. package/{esm2022 → esm2020}/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +4 -4
  33. package/{esm2022 → esm2020}/lib/components/user-details/user-details.component.mjs +4 -4
  34. package/esm2020/lib/components/user-list/user-list.component.mjs +40 -0
  35. package/{esm2022 → esm2020}/lib/components/user-select/user-select.component.mjs +4 -4
  36. package/{esm2022 → esm2020}/lib/directives/feature-toggle/feature-toggle.directive.mjs +8 -8
  37. package/{esm2022 → esm2020}/lib/directives/let/let.directive.mjs +4 -4
  38. package/esm2020/lib/exui-common-lib.module.mjs +300 -0
  39. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +4 -4
  40. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +4 -4
  41. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +4 -4
  42. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +4 -4
  43. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +4 -4
  44. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +4 -4
  45. package/esm2020/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +28 -0
  46. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +4 -4
  47. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +4 -4
  48. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +4 -4
  49. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +4 -4
  50. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +4 -4
  51. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +4 -4
  52. package/{esm2022 → esm2020}/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +4 -4
  53. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +4 -4
  54. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +7 -7
  55. package/esm2020/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +18 -0
  56. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +7 -7
  57. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +4 -4
  58. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +6 -6
  59. package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +4 -4
  60. package/{esm2022 → esm2020}/lib/gov-ui/directives/remove-host.directive.mjs +4 -4
  61. package/{esm2022 → esm2020}/lib/gov-ui/gov-ui.service.mjs +4 -4
  62. package/{esm2022 → esm2020}/lib/pipes/capitalize/capitalize.pipe.mjs +4 -4
  63. package/esm2020/lib/services/case-sharing-state/case-sharing-state.service.mjs +170 -0
  64. package/{esm2022 → esm2020}/lib/services/cookie/cookie.service.mjs +4 -4
  65. package/{esm2022 → esm2020}/lib/services/feature-toggle/feature-toggle.guard.mjs +4 -4
  66. package/{esm2022 → esm2020}/lib/services/feature-toggle/feature-toggle.service.mjs +4 -4
  67. package/{esm2022 → esm2020}/lib/services/feature-toggle/launch-darkly.service.mjs +4 -4
  68. package/{esm2022 → esm2020}/lib/services/filter/filter.service.mjs +4 -4
  69. package/esm2020/lib/services/find-person/find-person.service.mjs +111 -0
  70. package/{esm2022 → esm2020}/lib/services/google-analytics/google-analytics.service.mjs +4 -4
  71. package/{esm2022 → esm2020}/lib/services/google-tag-manager/google-tag-manager.service.mjs +4 -4
  72. package/{esm2022 → esm2020}/lib/services/loading/loading.service.mjs +4 -4
  73. package/{esm2022 → esm2020}/lib/services/locations/location.service.mjs +4 -4
  74. package/{esm2022 → esm2020}/lib/services/manage-session/manage-session.services.mjs +4 -4
  75. package/esm2020/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +33 -0
  76. package/{esm2022 → esm2020}/lib/services/ref-data/ref-data.service.mjs +4 -4
  77. package/{esm2022 → esm2020}/lib/services/role-guard/role.guard.mjs +4 -4
  78. package/{esm2022 → esm2020}/lib/services/role-guard/role.service.mjs +4 -4
  79. package/{esm2022 → esm2020}/lib/services/storage/session-storage/session-storage.service.mjs +4 -4
  80. package/esm2020/lib/services/task-name/task-name.service.mjs +33 -0
  81. package/{esm2022 → esm2020}/lib/services/timeout-notifications/timeout-notifications.service.mjs +4 -4
  82. package/fesm2015/hmcts-rpx-xui-common-lib.mjs +5024 -0
  83. package/fesm2015/hmcts-rpx-xui-common-lib.mjs.map +1 -0
  84. package/{fesm2022 → fesm2020}/hmcts-rpx-xui-common-lib.mjs +431 -425
  85. package/fesm2020/hmcts-rpx-xui-common-lib.mjs.map +1 -0
  86. package/lib/components/checkbox-list/checkbox-list.component.d.ts +1 -1
  87. package/lib/components/contact-details/contact-details.component.d.ts +1 -1
  88. package/lib/components/cookie-banner/cookie-banner.component.d.ts +1 -1
  89. package/lib/components/due-date/due-date.component.d.ts +1 -1
  90. package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +1 -1
  91. package/lib/components/find-location/find-location.component.d.ts +1 -1
  92. package/lib/components/find-person/find-person.component.d.ts +1 -1
  93. package/lib/components/find-service/find-service.component.d.ts +1 -1
  94. package/lib/components/find-task-name/find-task-name.component.d.ts +1 -1
  95. package/lib/components/generic-filter/generic-filter.component.d.ts +1 -1
  96. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
  97. package/lib/components/invite-user-form/invite-user-form.component.d.ts +1 -1
  98. package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +1 -1
  99. package/lib/components/loading-spinner/loading-spinner.component.d.ts +1 -1
  100. package/lib/components/pagination/pagination.component.d.ts +1 -1
  101. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  102. package/lib/components/search-location/search-location.component.d.ts +1 -1
  103. package/lib/components/search-service/search-service.component.d.ts +1 -1
  104. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  105. package/lib/components/selected-case/selected-case.component.d.ts +1 -1
  106. package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +1 -1
  107. package/lib/components/selected-case-list/selected-case-list.component.d.ts +1 -1
  108. package/lib/components/service-message/service-message.component.d.ts +1 -1
  109. package/lib/components/service-messages/service-messages.component.d.ts +1 -1
  110. package/lib/components/share-case/share-case.component.d.ts +1 -1
  111. package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +1 -1
  112. package/lib/components/tab/tab.component.d.ts +1 -1
  113. package/lib/components/tc-confirm/tc-confirm.component.d.ts +1 -1
  114. package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +1 -1
  115. package/lib/components/user-details/user-details.component.d.ts +1 -1
  116. package/lib/components/user-list/user-list.component.d.ts +1 -1
  117. package/lib/components/user-select/user-select.component.d.ts +1 -1
  118. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  119. package/lib/directives/let/let.directive.d.ts +1 -1
  120. package/lib/exui-common-lib.module.d.ts +2 -1
  121. package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +1 -1
  122. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +1 -1
  123. package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +1 -1
  124. package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +1 -1
  125. package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +1 -1
  126. package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +1 -1
  127. package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +1 -1
  128. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +1 -1
  129. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +1 -1
  130. package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +1 -1
  131. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +1 -1
  132. package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +1 -1
  133. package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +1 -1
  134. package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +1 -1
  135. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +1 -1
  136. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  137. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  138. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +1 -1
  139. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +1 -1
  140. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  141. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +1 -1
  142. package/lib/models/feature-user.d.ts +1 -1
  143. package/lib/models/filter.model.d.ts +2 -2
  144. package/lib/services/feature-toggle/feature-toggle.guard.d.ts +2 -2
  145. package/lib/services/role-guard/role.guard.d.ts +2 -2
  146. package/lib/services/role-guard/role.service.d.ts +2 -2
  147. package/package.json +11 -5
  148. package/esm2022/lib/components/user-list/user-list.component.mjs +0 -36
  149. package/esm2022/lib/exui-common-lib.module.mjs +0 -295
  150. package/esm2022/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +0 -27
  151. package/esm2022/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +0 -18
  152. package/esm2022/lib/services/case-sharing-state/case-sharing-state.service.mjs +0 -170
  153. package/esm2022/lib/services/find-person/find-person.service.mjs +0 -111
  154. package/esm2022/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +0 -33
  155. package/esm2022/lib/services/task-name/task-name.service.mjs +0 -33
  156. package/fesm2022/hmcts-rpx-xui-common-lib.mjs.map +0 -1
  157. /package/{esm2022 → esm2020}/hmcts-rpx-xui-common-lib.mjs +0 -0
  158. /package/{esm2022 → esm2020}/lib/components/generic-filter/generic-filter-utils.mjs +0 -0
  159. /package/{esm2022 → esm2020}/lib/components/index.mjs +0 -0
  160. /package/{esm2022 → esm2020}/lib/components/public_api.mjs +0 -0
  161. /package/{esm2022 → esm2020}/lib/directives/index.mjs +0 -0
  162. /package/{esm2022 → esm2020}/lib/directives/public-api.mjs +0 -0
  163. /package/{esm2022 → esm2020}/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs +0 -0
  164. /package/{esm2022 → esm2020}/lib/gov-ui/components/index.mjs +0 -0
  165. /package/{esm2022 → esm2020}/lib/gov-ui/components/public_api.mjs +0 -0
  166. /package/{esm2022 → esm2020}/lib/gov-ui/index.mjs +0 -0
  167. /package/{esm2022 → esm2020}/lib/gov-ui/models/checkboxes-model.mjs +0 -0
  168. /package/{esm2022 → esm2020}/lib/gov-ui/models/error-messages-model.mjs +0 -0
  169. /package/{esm2022 → esm2020}/lib/gov-ui/models/gov-ui-config-model.mjs +0 -0
  170. /package/{esm2022 → esm2020}/lib/gov-ui/models/index.mjs +0 -0
  171. /package/{esm2022 → esm2020}/lib/gov-ui/models/isession-storage.interface.mjs +0 -0
  172. /package/{esm2022 → esm2020}/lib/gov-ui/models/public_api.mjs +0 -0
  173. /package/{esm2022 → esm2020}/lib/gov-ui/models/radio-buttons.model.mjs +0 -0
  174. /package/{esm2022 → esm2020}/lib/gov-ui/public_api.mjs +0 -0
  175. /package/{esm2022 → esm2020}/lib/gov-ui/util/helpers/html-templates.helper.mjs +0 -0
  176. /package/{esm2022 → esm2020}/lib/gov-ui/util/session-storage/session-storage-utils.mjs +0 -0
  177. /package/{esm2022 → esm2020}/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs +0 -0
  178. /package/{esm2022 → esm2020}/lib/gov-ui/validators/date.validator.mjs +0 -0
  179. /package/{esm2022 → esm2020}/lib/gov-ui/validators/index.mjs +0 -0
  180. /package/{esm2022 → esm2020}/lib/gov-ui/validators/public_api.mjs +0 -0
  181. /package/{esm2022 → esm2020}/lib/gov-ui/validators/radio-group.validator.mjs +0 -0
  182. /package/{esm2022 → esm2020}/lib/models/case-share.model.mjs +0 -0
  183. /package/{esm2022 → esm2020}/lib/models/contact-details.model.mjs +0 -0
  184. /package/{esm2022 → esm2020}/lib/models/due-date.model.mjs +0 -0
  185. /package/{esm2022 → esm2020}/lib/models/feature-user.mjs +0 -0
  186. /package/{esm2022 → esm2020}/lib/models/filter.model.mjs +0 -0
  187. /package/{esm2022 → esm2020}/lib/models/idle-config.model.mjs +0 -0
  188. /package/{esm2022 → esm2020}/lib/models/index.mjs +0 -0
  189. /package/{esm2022 → esm2020}/lib/models/location.model.mjs +0 -0
  190. /package/{esm2022 → esm2020}/lib/models/pagination.model.mjs +0 -0
  191. /package/{esm2022 → esm2020}/lib/models/person.model.mjs +0 -0
  192. /package/{esm2022 → esm2020}/lib/models/public_api.mjs +0 -0
  193. /package/{esm2022 → esm2020}/lib/models/search-options.model.mjs +0 -0
  194. /package/{esm2022 → esm2020}/lib/models/task-name.model.mjs +0 -0
  195. /package/{esm2022 → esm2020}/lib/models/tcDocument.model.mjs +0 -0
  196. /package/{esm2022 → esm2020}/lib/models/timeout-notification.model.mjs +0 -0
  197. /package/{esm2022 → esm2020}/lib/models/user-details.model.mjs +0 -0
  198. /package/{esm2022 → esm2020}/lib/models/user.model.mjs +0 -0
  199. /package/{esm2022 → esm2020}/lib/pipes/index.mjs +0 -0
  200. /package/{esm2022 → esm2020}/lib/services/index.mjs +0 -0
  201. /package/{esm2022 → esm2020}/lib/services/public-api.mjs +0 -0
  202. /package/{esm2022 → esm2020}/lib/services/ref-data/index.mjs +0 -0
  203. /package/{esm2022 → esm2020}/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs +0 -0
  204. /package/{esm2022 → esm2020}/lib/services/ref-data/models/ref-data-region.model.mjs +0 -0
  205. /package/{esm2022 → esm2020}/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs +0 -0
  206. /package/{esm2022 → esm2020}/lib/window.mjs +0 -0
  207. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
@@ -120,10 +120,10 @@ export class FindLocationComponent {
120
120
  ngOnDestroy() {
121
121
  this.formSubmissionEventSubscription?.unsubscribe();
122
122
  }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindLocationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
124
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FindLocationComponent, selector: "xuilib-find-location", inputs: { submitted: "submitted", enableAddLocationButton: "enableAddLocationButton", form: "form", field: "field", fields: "fields", locationTitle: "locationTitle", disableInputField: "disableInputField", formSubmissionEvent$: "formSubmissionEvent$", disabled: "disabled", services: "services" }, outputs: { locationFieldChanged: "locationFieldChanged" }, viewQueries: [{ propertyName: "searchLocationComponent", first: true, predicate: SearchLocationComponent, descendants: true, static: true }], ngImport: i0, 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 [form]=\"form\"\n [field]=\"field\"\n [selectedLocations]=\"selectedLocations\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [serviceIds]=\"serviceIds\"\n [propertyNameFilter]=\"propertyNameFilter\"\n (locationTermSearchInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\">\n </exui-search-location>\n </div>\n\n <div>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button add-location-button\" data-module=\"govuk-button\" *ngIf=\"enableAddLocationButton\">\n Add location\n </a>\n </div>\n\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[propertyNameFilter] }}\n </a>\n </li>\n </ul>\n</div>\n", styles: [".add-location-button{margin-top:10px;margin-bottom:0}.search-location__input-container{display:flex}.search-location .auto-complete-container{min-width:unset;width:calc(100% - 4px)}.search-location__input{flex:1 0 auto}.search-location .govuk-button--secondary{background-color:#ddd}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SearchLocationComponent, selector: "exui-search-location", inputs: ["form", "field", "disabled", "singleMode", "locationType", "serviceIds", "submitted", "bookingCheck", "selectedLocations", "propertyNameFilter", "delay", "reset"], outputs: ["locationSelected", "locationTermSearchInputChanged", "searchLocationChanged"] }] }); }
125
123
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindLocationComponent, decorators: [{
124
+ FindLocationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FindLocationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
125
+ FindLocationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FindLocationComponent, selector: "xuilib-find-location", inputs: { submitted: "submitted", enableAddLocationButton: "enableAddLocationButton", form: "form", field: "field", fields: "fields", locationTitle: "locationTitle", disableInputField: "disableInputField", formSubmissionEvent$: "formSubmissionEvent$", disabled: "disabled", services: "services" }, outputs: { locationFieldChanged: "locationFieldChanged" }, viewQueries: [{ propertyName: "searchLocationComponent", first: true, predicate: SearchLocationComponent, descendants: true, static: true }], ngImport: i0, 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 [form]=\"form\"\n [field]=\"field\"\n [selectedLocations]=\"selectedLocations\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [serviceIds]=\"serviceIds\"\n [propertyNameFilter]=\"propertyNameFilter\"\n (locationTermSearchInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\">\n </exui-search-location>\n </div>\n\n <div>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button add-location-button\" data-module=\"govuk-button\" *ngIf=\"enableAddLocationButton\">\n Add location\n </a>\n </div>\n\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[propertyNameFilter] }}\n </a>\n </li>\n </ul>\n</div>\n", styles: [".add-location-button{margin-top:10px;margin-bottom:0}.search-location__input-container{display:flex}.search-location .auto-complete-container{min-width:unset;width:calc(100% - 4px)}.search-location__input{flex:1 0 auto}.search-location .govuk-button--secondary{background-color:#ddd}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SearchLocationComponent, selector: "exui-search-location", inputs: ["form", "field", "disabled", "singleMode", "locationType", "serviceIds", "submitted", "bookingCheck", "selectedLocations", "propertyNameFilter", "delay", "reset"], outputs: ["locationSelected", "locationTermSearchInputChanged", "searchLocationChanged"] }] });
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FindLocationComponent, decorators: [{
127
127
  type: Component,
128
128
  args: [{ selector: 'xuilib-find-location', 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 [form]=\"form\"\n [field]=\"field\"\n [selectedLocations]=\"selectedLocations\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [serviceIds]=\"serviceIds\"\n [propertyNameFilter]=\"propertyNameFilter\"\n (locationTermSearchInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\">\n </exui-search-location>\n </div>\n\n <div>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button add-location-button\" data-module=\"govuk-button\" *ngIf=\"enableAddLocationButton\">\n Add location\n </a>\n </div>\n\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[propertyNameFilter] }}\n </a>\n </li>\n </ul>\n</div>\n", styles: [".add-location-button{margin-top:10px;margin-bottom:0}.search-location__input-container{display:flex}.search-location .auto-complete-container{min-width:unset;width:calc(100% - 4px)}.search-location__input{flex:1 0 auto}.search-location .govuk-button--secondary{background-color:#ddd}\n"] }]
129
129
  }], propDecorators: { locationFieldChanged: [{
@@ -152,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
152
152
  }], services: [{
153
153
  type: Input
154
154
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1sb2NhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtbG9jYXRpb24vZmluZC1sb2NhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtbG9jYXRpb24vZmluZC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFvQixrQkFBa0IsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7QUFPdkYsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1tQix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pELGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsNEJBQXVCLEdBQVksSUFBSSxDQUFDO1FBSXhDLGtCQUFhLEdBQUcsK0JBQStCLENBQUM7UUFDaEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRW5DLHlCQUFvQixHQUEwQixJQUFJLENBQUM7UUFDbkQsZUFBVSxHQUFXLFNBQVMsQ0FBQztRQUU5QixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxLQUFLLENBQUM7S0F5SHBDO0lBdEhDLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ1csUUFBUSxDQUFD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bEIsS0FBSztnQkFjSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlsdGVyRmllbGRDb25maWcsIExvY2F0aW9uQnlFUElNTVNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBnZXRWYWx1ZXMgfSBmcm9tICcuLi9nZW5lcmljLWZpbHRlci9nZW5lcmljLWZpbHRlci11dGlscyc7XG5pbXBvcnQgeyBTZWFyY2hMb2NhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1sb2NhdGlvbi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLWZpbmQtbG9jYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtbG9jYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaW5kTG9jYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25GaWVsZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQWRkTG9jYXRpb25CdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZpZWxkOiBGaWx0ZXJGaWVsZENvbmZpZztcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmlsdGVyRmllbGRDb25maWdbXTtcbiAgQElucHV0KCkgcHVibGljIGxvY2F0aW9uVGl0bGUgPSAnU2VhcmNoIGZvciBhIGxvY2F0aW9uIGJ5IG5hbWUnO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZUlucHV0RmllbGQgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGZvcm1TdWJtaXNzaW9uRXZlbnQkOiBTdWJqZWN0PHZvaWQ+O1xuICBwdWJsaWMgdGVtcFNlbGVjdGVkTG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCA9IG51bGw7XG4gIHB1YmxpYyBzZXJ2aWNlSWRzOiBzdHJpbmcgPSAnU1NDUyxJQSc7XG4gIEBWaWV3Q2hpbGQoU2VhcmNoTG9jYXRpb25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBzZWFyY2hMb2NhdGlvbkNvbXBvbmVudDogU2VhcmNoTG9jYXRpb25Db21wb25lbnQ7XG4gIHByaXZhdGUgcFNlcnZpY2VzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHBEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGZvcm1TdWJtaXNzaW9uRXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBEaXNhYmxlZDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoTG9jYXRpb25Db21wb25lbnQucmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkVmFsdWVzKCk7XG4gICAgfVxuICAgIHRoaXMucERpc2FibGVkID0gdGhpcy5kaXNhYmxlSW5wdXRGaWVsZCA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBzZXJ2aWNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMucFNlcnZpY2VzO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZXJ2aWNlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLnBTZXJ2aWNlcyA9IHZhbHVlO1xuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZHMuZmluZChmID0+IHtcbiAgICAgIGlmICh0aGlzLmZpZWxkKSB7XG4gICAgICAgIHJldHVybiBmLm5hbWUgPT09IHRoaXMuZmllbGQuZmluZExvY2F0aW9uRmllbGQ7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuc2VydmljZUlkcyA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlSWRzID0gZ2V0VmFsdWVzKGZpZWxkLm9wdGlvbnMsIHZhbHVlKS5maWx0ZXIoeCA9PiB4ICE9PSAnc2VydmljZXNfYWxsJykuam9pbignLCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRMb2NhdGlvbnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSk/LnZhbHVlIGFzIExvY2F0aW9uQnlFUElNTVNNb2RlbFtdKT8uZmlsdGVyKGxvY2F0aW9uID0+IGxvY2F0aW9uLmVwaW1tc19pZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByb3BlcnR5TmFtZUZpbHRlcigpOiBrZXlvZiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwge1xuICAgIGNvbnN0IERFRkFVTFRfUFJPUEVSVFlfTkFNRSA9ICdzaXRlX25hbWUnO1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BlcnR5TmFtZUZpbHRlciA/IHRoaXMuZmllbGQucHJvcGVydHlOYW1lRmlsdGVyIGFzIGtleW9mIExvY2F0aW9uQnlFUElNTVNNb2RlbFxuICAgICAgOiBERUZBVUxUX1BST1BFUlRZX05BTUU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybVN1Ym1pc3Npb25FdmVudCQpIHtcbiAgICAgIHRoaXMuZm9ybVN1Ym1pc3Npb25FdmVudFN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybVN1Ym1pc3Npb25FdmVudCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gU2hvdWxkbid0IHJlc2V0IHNlYXJjaCB0ZXJtIGlmIHNpbmdsZSBtb2RlIGFuZCBhbHJlYWR5IGhhcyBzZWxlY3RlZFxuICAgICAgICBjb25zdCBvbmVTZWxlY3RlZEFuZE1heFNlbGVjdGVkT25lID0gdGhpcy5zZWxlY3RlZExvY2F0aW9ucy5sZW5ndGggPT09IDEgJiYgdGhpcy5maWVsZC5tYXhTZWxlY3RlZCA9PT0gMTtcbiAgICAgICAgaWYgKCFvbmVTZWxlY3RlZEFuZE1heFNlbGVjdGVkT25lKSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hMb2NhdGlvbkNvbXBvbmVudC5yZXNldFNlYXJjaFRlcm0oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExvY2F0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uKSB7XG4gICAgICB0aGlzLmFkZFNlbGVjdGVkTG9jYXRpb25zVG9Gb3JtKFt0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uXSk7XG4gICAgICB0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uID0gbnVsbDtcbiAgICAgIHRoaXMuc2VhcmNoTG9jYXRpb25Db21wb25lbnQucmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUxvY2F0aW9uKGxvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAobG9jYXRpb24uZXBpbW1zX2lkKSB7XG4gICAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICAgIGNvbnN0IGluZGV4ID0gKGZvcm1BcnJheS52YWx1ZSBhcyBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSkuZmluZEluZGV4KHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQgPT09IGxvY2F0aW9uLmVwaW1tc19pZCk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0Q2hhbmdlZCh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBpZiB0aGUgZmlsdGVyIGlzIGluIHNpbmdsZSBtb2RlIGNsZWFyIHRoZSBzZWxlY3RlZCBsb2NhdGlvbnNcbiAgICBpZiAodHlwZW9mIHRlcm0gPT09ICdzdHJpbmcnICYmIHRoaXMuZmllbGQubWF4U2VsZWN0ZWQgPT09IDEpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFZhbHVlcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlYXJjaElucHV0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uRmllbGRDaGFuZ2VkLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkxvY2F0aW9uU2VsZWN0ZWQobG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxKSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICB0aGlzLmFkZFNlbGVjdGVkTG9jYXRpb25zVG9Gb3JtKFtsb2NhdGlvbl0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMuZmluZCh4ID0+IHguZXBpbW1zX2lkID09PSBsb2NhdGlvbi5lcGltbXNfaWQpKSB7XG4gICAgICAgIGlmIChsb2NhdGlvbi5lcGltbXNfaWQpIHtcbiAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uID0gbG9jYXRpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNlbGVjdGVkVmFsdWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZD8ubmFtZSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICBpZiAoZm9ybUFycmF5KSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1BcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRTZWxlY3RlZExvY2F0aW9uc1RvRm9ybShsb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLm5hbWUpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgZm9yIChjb25zdCBsb2NhdGlvbiBvZiBsb2NhdGlvbnMpIHtcbiAgICAgIGZvcm1BcnJheS5wdXNoKG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobG9jYXRpb24pKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3JtU3VibWlzc2lvbkV2ZW50U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibG9jYXRpb24tcGlja2VyLWN1c3RvbVwiPlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWxvY2F0aW9uXCI+XG4gICAgPGRpdj5cbiAgICAgIDxsYWJlbCBpZD1cImlucHV0LXNlbGVjdGVkLWxvY2F0aW9uLWxhYmVsXCIgKm5nSWY9XCJsb2NhdGlvblRpdGxlXCI+e3tsb2NhdGlvblRpdGxlfX08L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxleHVpLXNlYXJjaC1sb2NhdGlvbiBjbGFzcz1cInNlYXJjaC1sb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRMb2NhdGlvbnNdPVwic2VsZWN0ZWRMb2NhdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVsYXldPVwiMzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbmdsZU1vZGVdPVwiZmllbGQubWF4U2VsZWN0ZWQgPT09IDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9va2luZ0NoZWNrXT1cImZpZWxkLmJvb2tpbmdDaGVja1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VydmljZUlkc109XCJzZXJ2aWNlSWRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BlcnR5TmFtZUZpbHRlcl09XCJwcm9wZXJ0eU5hbWVGaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25UZXJtU2VhcmNoSW5wdXRDaGFuZ2VkKT1cIm9uSW5wdXRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25TZWxlY3RlZCk9XCJvbkxvY2F0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChzZWFyY2hMb2NhdGlvbkNoYW5nZWQpPVwib25TZWFyY2hJbnB1dENoYW5nZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhdGlvblR5cGVdPVwiJ2Nhc2UtbWFuYWdlbWVudCdcIj5cbiAgICA8L2V4dWktc2VhcmNoLWxvY2F0aW9uPlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiYWRkTG9jYXRpb24oKVwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGFkZC1sb2NhdGlvbi1idXR0b25cIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiICpuZ0lmPVwiZW5hYmxlQWRkTG9jYXRpb25CdXR0b25cIj5cbiAgICAgIEFkZCBsb2NhdGlvblxuICAgIDwvYT5cbiAgPC9kaXY+XG5cbiAgPHVsIGNsYXNzPVwiaG1jdHMtZmlsdGVyLXRhZ3Mgc2VsZWN0aW9uLWNvbnRhaW5lclwiICpuZ0lmPVwiZmllbGQubWF4U2VsZWN0ZWQgIT0gMVwiPlxuICAgIDxsaSBjbGFzcz1cImxvY2F0aW9uLXNlbGVjdGlvblwiICAqbmdGb3I9XCJsZXQgc2VsZWN0aW9uIG9mIHNlbGVjdGVkTG9jYXRpb25zXCI+XG4gICAgICA8YSBjbGFzcz1cImhtY3RzLWZpbHRlcl9fdGFnXCIgKGNsaWNrKT1cInJlbW92ZUxvY2F0aW9uKHNlbGVjdGlvbilcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+XG4gICAgICAgIHt7IHNlbGVjdGlvbltwcm9wZXJ0eU5hbWVGaWx0ZXJdIH19XG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuIl19
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1sb2NhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtbG9jYXRpb24vZmluZC1sb2NhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtbG9jYXRpb24vZmluZC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFvQixrQkFBa0IsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7QUFPdkYsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1tQix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pELGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsNEJBQXVCLEdBQVksSUFBSSxDQUFDO1FBSXhDLGtCQUFhLEdBQUcsK0JBQStCLENBQUM7UUFDaEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBRW5DLHlCQUFvQixHQUEwQixJQUFJLENBQUM7UUFDbkQsZUFBVSxHQUFXLFNBQVMsQ0FBQztRQUU5QixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxLQUFLLENBQUM7S0F5SHBDO0lBdEhDLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ1csUUFBUSxDQUFD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bEIsS0FBSztnQkFjSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQXJyYXksIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmlsdGVyRmllbGRDb25maWcsIExvY2F0aW9uQnlFUElNTVNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBnZXRWYWx1ZXMgfSBmcm9tICcuLi9nZW5lcmljLWZpbHRlci9nZW5lcmljLWZpbHRlci11dGlscyc7XG5pbXBvcnQgeyBTZWFyY2hMb2NhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1sb2NhdGlvbi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLWZpbmQtbG9jYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtbG9jYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaW5kTG9jYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25GaWVsZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQWRkTG9jYXRpb25CdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZpZWxkOiBGaWx0ZXJGaWVsZENvbmZpZztcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmlsdGVyRmllbGRDb25maWdbXTtcbiAgQElucHV0KCkgcHVibGljIGxvY2F0aW9uVGl0bGUgPSAnU2VhcmNoIGZvciBhIGxvY2F0aW9uIGJ5IG5hbWUnO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZUlucHV0RmllbGQgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGZvcm1TdWJtaXNzaW9uRXZlbnQkOiBTdWJqZWN0PHZvaWQ+O1xuICBwdWJsaWMgdGVtcFNlbGVjdGVkTG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCA9IG51bGw7XG4gIHB1YmxpYyBzZXJ2aWNlSWRzOiBzdHJpbmcgPSAnU1NDUyxJQSc7XG4gIEBWaWV3Q2hpbGQoU2VhcmNoTG9jYXRpb25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBzZWFyY2hMb2NhdGlvbkNvbXBvbmVudDogU2VhcmNoTG9jYXRpb25Db21wb25lbnQ7XG4gIHByaXZhdGUgcFNlcnZpY2VzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHBEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGZvcm1TdWJtaXNzaW9uRXZlbnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBEaXNhYmxlZDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoTG9jYXRpb25Db21wb25lbnQucmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkVmFsdWVzKCk7XG4gICAgfVxuICAgIHRoaXMucERpc2FibGVkID0gdGhpcy5kaXNhYmxlSW5wdXRGaWVsZCA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBzZXJ2aWNlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMucFNlcnZpY2VzO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZXJ2aWNlcyh2YWx1ZTogc3RyaW5nW10pIHtcbiAgICB0aGlzLnBTZXJ2aWNlcyA9IHZhbHVlO1xuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5maWVsZHMuZmluZChmID0+IHtcbiAgICAgIGlmICh0aGlzLmZpZWxkKSB7XG4gICAgICAgIHJldHVybiBmLm5hbWUgPT09IHRoaXMuZmllbGQuZmluZExvY2F0aW9uRmllbGQ7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuc2VydmljZUlkcyA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlSWRzID0gZ2V0VmFsdWVzKGZpZWxkLm9wdGlvbnMsIHZhbHVlKS5maWx0ZXIoeCA9PiB4ICE9PSAnc2VydmljZXNfYWxsJykuam9pbignLCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRMb2NhdGlvbnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSk/LnZhbHVlIGFzIExvY2F0aW9uQnlFUElNTVNNb2RlbFtdKT8uZmlsdGVyKGxvY2F0aW9uID0+IGxvY2F0aW9uLmVwaW1tc19pZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByb3BlcnR5TmFtZUZpbHRlcigpOiBrZXlvZiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwge1xuICAgIGNvbnN0IERFRkFVTFRfUFJPUEVSVFlfTkFNRSA9ICdzaXRlX25hbWUnO1xuICAgIHJldHVybiB0aGlzLmZpZWxkLnByb3BlcnR5TmFtZUZpbHRlciA/IHRoaXMuZmllbGQucHJvcGVydHlOYW1lRmlsdGVyIGFzIGtleW9mIExvY2F0aW9uQnlFUElNTVNNb2RlbFxuICAgICAgOiBERUZBVUxUX1BST1BFUlRZX05BTUU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybVN1Ym1pc3Npb25FdmVudCQpIHtcbiAgICAgIHRoaXMuZm9ybVN1Ym1pc3Npb25FdmVudFN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybVN1Ym1pc3Npb25FdmVudCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gU2hvdWxkbid0IHJlc2V0IHNlYXJjaCB0ZXJtIGlmIHNpbmdsZSBtb2RlIGFuZCBhbHJlYWR5IGhhcyBzZWxlY3RlZFxuICAgICAgICBjb25zdCBvbmVTZWxlY3RlZEFuZE1heFNlbGVjdGVkT25lID0gdGhpcy5zZWxlY3RlZExvY2F0aW9ucy5sZW5ndGggPT09IDEgJiYgdGhpcy5maWVsZC5tYXhTZWxlY3RlZCA9PT0gMTtcbiAgICAgICAgaWYgKCFvbmVTZWxlY3RlZEFuZE1heFNlbGVjdGVkT25lKSB7XG4gICAgICAgICAgdGhpcy5zZWFyY2hMb2NhdGlvbkNvbXBvbmVudC5yZXNldFNlYXJjaFRlcm0oKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExvY2F0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uKSB7XG4gICAgICB0aGlzLmFkZFNlbGVjdGVkTG9jYXRpb25zVG9Gb3JtKFt0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uXSk7XG4gICAgICB0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uID0gbnVsbDtcbiAgICAgIHRoaXMuc2VhcmNoTG9jYXRpb25Db21wb25lbnQucmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUxvY2F0aW9uKGxvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAobG9jYXRpb24uZXBpbW1zX2lkKSB7XG4gICAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICAgIGNvbnN0IGluZGV4ID0gKGZvcm1BcnJheS52YWx1ZSBhcyBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSkuZmluZEluZGV4KHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQgPT09IGxvY2F0aW9uLmVwaW1tc19pZCk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0Q2hhbmdlZCh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBpZiB0aGUgZmlsdGVyIGlzIGluIHNpbmdsZSBtb2RlIGNsZWFyIHRoZSBzZWxlY3RlZCBsb2NhdGlvbnNcbiAgICBpZiAodHlwZW9mIHRlcm0gPT09ICdzdHJpbmcnICYmIHRoaXMuZmllbGQubWF4U2VsZWN0ZWQgPT09IDEpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFZhbHVlcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlYXJjaElucHV0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uRmllbGRDaGFuZ2VkLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkxvY2F0aW9uU2VsZWN0ZWQobG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxKSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICB0aGlzLmFkZFNlbGVjdGVkTG9jYXRpb25zVG9Gb3JtKFtsb2NhdGlvbl0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMuZmluZCh4ID0+IHguZXBpbW1zX2lkID09PSBsb2NhdGlvbi5lcGltbXNfaWQpKSB7XG4gICAgICAgIGlmIChsb2NhdGlvbi5lcGltbXNfaWQpIHtcbiAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uID0gbG9jYXRpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNlbGVjdGVkVmFsdWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZD8ubmFtZSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICBpZiAoZm9ybUFycmF5KSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1BcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRTZWxlY3RlZExvY2F0aW9uc1RvRm9ybShsb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLm5hbWUpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgZm9yIChjb25zdCBsb2NhdGlvbiBvZiBsb2NhdGlvbnMpIHtcbiAgICAgIGZvcm1BcnJheS5wdXNoKG5ldyBVbnR5cGVkRm9ybUNvbnRyb2wobG9jYXRpb24pKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5mb3JtU3VibWlzc2lvbkV2ZW50U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibG9jYXRpb24tcGlja2VyLWN1c3RvbVwiPlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWxvY2F0aW9uXCI+XG4gICAgPGRpdj5cbiAgICAgIDxsYWJlbCBpZD1cImlucHV0LXNlbGVjdGVkLWxvY2F0aW9uLWxhYmVsXCIgKm5nSWY9XCJsb2NhdGlvblRpdGxlXCI+e3tsb2NhdGlvblRpdGxlfX08L2xhYmVsPlxuICAgIDwvZGl2PlxuICAgIDxleHVpLXNlYXJjaC1sb2NhdGlvbiBjbGFzcz1cInNlYXJjaC1sb2NhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRMb2NhdGlvbnNdPVwic2VsZWN0ZWRMb2NhdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVsYXldPVwiMzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpbmdsZU1vZGVdPVwiZmllbGQubWF4U2VsZWN0ZWQgPT09IDFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9va2luZ0NoZWNrXT1cImZpZWxkLmJvb2tpbmdDaGVja1R5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VydmljZUlkc109XCJzZXJ2aWNlSWRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BlcnR5TmFtZUZpbHRlcl09XCJwcm9wZXJ0eU5hbWVGaWx0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25UZXJtU2VhcmNoSW5wdXRDaGFuZ2VkKT1cIm9uSW5wdXRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25TZWxlY3RlZCk9XCJvbkxvY2F0aW9uU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChzZWFyY2hMb2NhdGlvbkNoYW5nZWQpPVwib25TZWFyY2hJbnB1dENoYW5nZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhdGlvblR5cGVdPVwiJ2Nhc2UtbWFuYWdlbWVudCdcIj5cbiAgICA8L2V4dWktc2VhcmNoLWxvY2F0aW9uPlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiYWRkTG9jYXRpb24oKVwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGFkZC1sb2NhdGlvbi1idXR0b25cIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiICpuZ0lmPVwiZW5hYmxlQWRkTG9jYXRpb25CdXR0b25cIj5cbiAgICAgIEFkZCBsb2NhdGlvblxuICAgIDwvYT5cbiAgPC9kaXY+XG5cbiAgPHVsIGNsYXNzPVwiaG1jdHMtZmlsdGVyLXRhZ3Mgc2VsZWN0aW9uLWNvbnRhaW5lclwiICpuZ0lmPVwiZmllbGQubWF4U2VsZWN0ZWQgIT0gMVwiPlxuICAgIDxsaSBjbGFzcz1cImxvY2F0aW9uLXNlbGVjdGlvblwiICAqbmdGb3I9XCJsZXQgc2VsZWN0aW9uIG9mIHNlbGVjdGVkTG9jYXRpb25zXCI+XG4gICAgICA8YSBjbGFzcz1cImhtY3RzLWZpbHRlcl9fdGFnXCIgKGNsaWNrKT1cInJlbW92ZUxvY2F0aW9uKHNlbGVjdGlvbilcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+XG4gICAgICAgIHt7IHNlbGVjdGlvbltwcm9wZXJ0eU5hbWVGaWx0ZXJdIH19XG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuIl19
@@ -89,10 +89,10 @@ export class FindPersonComponent {
89
89
  onInput() {
90
90
  this.personFieldChanged.emit();
91
91
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindPersonComponent, deps: [{ token: i1.FindAPersonService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FindPersonComponent, selector: "xuilib-find-person", inputs: { title: "title", boldTitle: "boldTitle", subTitle: "subTitle", domain: "domain", findPersonGroup: "findPersonGroup", selectedPerson: "selectedPerson", submitted: "submitted", userIncluded: "userIncluded", assignedUser: "assignedUser", placeholderContent: "placeholderContent", isNoResultsShown: "isNoResultsShown", showUpdatedColor: "showUpdatedColor", selectedPersons: "selectedPersons", errorMessage: "errorMessage", idValue: "idValue", services: "services", disabled: "disabled" }, outputs: { personSelected: "personSelected", personFieldChanged: "personFieldChanged" }, ngImport: i0, template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\"\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option)}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n", styles: [".mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}.hide-autocomplete{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }] }); }
94
92
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindPersonComponent, decorators: [{
93
+ FindPersonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FindPersonComponent, deps: [{ token: i1.FindAPersonService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
94
+ FindPersonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FindPersonComponent, selector: "xuilib-find-person", inputs: { title: "title", boldTitle: "boldTitle", subTitle: "subTitle", domain: "domain", findPersonGroup: "findPersonGroup", selectedPerson: "selectedPerson", submitted: "submitted", userIncluded: "userIncluded", assignedUser: "assignedUser", placeholderContent: "placeholderContent", isNoResultsShown: "isNoResultsShown", showUpdatedColor: "showUpdatedColor", selectedPersons: "selectedPersons", errorMessage: "errorMessage", idValue: "idValue", services: "services", disabled: "disabled" }, outputs: { personSelected: "personSelected", personFieldChanged: "personFieldChanged" }, ngImport: i0, template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\"\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option)}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n", styles: [".mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}.hide-autocomplete{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }] });
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FindPersonComponent, decorators: [{
96
96
  type: Component,
97
97
  args: [{ selector: 'xuilib-find-person', template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\"\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option)}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n", styles: [".mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}.hide-autocomplete{display:none}\n"] }]
98
98
  }], ctorParameters: function () { return [{ type: i1.FindAPersonService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { personSelected: [{
@@ -134,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
134
134
  }], disabled: [{
135
135
  type: Input
136
136
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9maW5kLXBlcnNvbi9maW5kLXBlcnNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQTRCLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVNsRCxNQUFNLE9BQU8sbUJBQW1CO0lBMEI5QixZQUE2QixpQkFBcUMsRUFBbUIsRUFBcUI7UUFBN0Usc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFvQjtRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXpCekYsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFL0MsY0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQzlCLGFBQVEsR0FBRyw4Q0FBOEMsQ0FB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QWxDLE1BQU07Z0JBQ1MsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29mJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGVyc29uLCBQZXJzb25Sb2xlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpbmRBUGVyc29uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZmluZC1wZXJzb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1wZXJzb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maW5kLXBlcnNvbi5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIEZpbmRQZXJzb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcGVyc29uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBlcnNvbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBwZXJzb25GaWVsZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgYm9sZFRpdGxlID0gJ0ZpbmQgdGhlIHBlcnNvbic7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJUaXRsZSA9ICdUeXBlIHRoZSBuYW1lIG9mIHRoZSBwZXJzb24gYW5kIHNlbGVjdCB0aGVtLic7XG4gIEBJbnB1dCgpIHB1YmxpYyBkb21haW4gPSBQZXJzb25Sb2xlLkFMTDtcbiAgQElucHV0KCkgcHVibGljIGZpbmRQZXJzb25Hcm91cDogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkUGVyc29uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgdXNlckluY2x1ZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgYXNzaWduZWRVc2VyPzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXJDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGlzTm9SZXN1bHRzU2hvd246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd1VwZGF0ZWRDb2xvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRQZXJzb25zOiBQZXJzb25bXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnWW91IG11c3Qgc2VsZWN0IGEgbmFtZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHNlcnZpY2VzOiBzdHJpbmcgPSAnSUEnO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBudWxsO1xuICBwdWJsaWMgc2hvd0F1dG9jb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgZmluZFBlcnNvbkNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHVibGljIGZpbHRlcmVkT3B0aW9uczogUGVyc29uW10gPSBbXTtcbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAyO1xuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmluZFBlcnNvblNlcnZpY2U6IEZpbmRBUGVyc29uU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5zdWIpIHtcbiAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZFBlcnNvbkNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuc2VsZWN0ZWRQZXJzb24pO1xuICAgIHRoaXMuZmluZFBlcnNvbkdyb3VwLmFkZENvbnRyb2woJ2ZpbmRQZXJzb25Db250cm9sJywgdGhpcy5maW5kUGVyc29uQ29udHJvbCk7XG4gICAgdGhpcy5zdWIgPSB0aGlzLmZpbmRQZXJzb25Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFtdKSxcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgdGFwKChzZWFyY2hUZXJtKSA9PiB0eXBlb2Ygc2VhcmNoVGVybSA9PT0gJ3N0cmluZycgPyB0aGlzLnBlcnNvblNlbGVjdGVkLmVtaXQobnVsbCkgOiB2b2lkIDApLFxuICAgICAgZmlsdGVyKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHNlYXJjaFRlcm0gJiYgc2VhcmNoVGVybS5sZW5ndGggPiB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpLFxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHRoaXMuZmlsdGVyKHNlYXJjaFRlcm0pLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLnNob3dBdXRvY29tcGxldGUgPSB0cnVlKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFtdKSxcbiAgICAgICkpXG4gICAgKS5zdWJzY3JpYmUoKHBlb3BsZTogUGVyc29uW10pID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gcGVvcGxlO1xuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHNlYXJjaFRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8UGVyc29uW10+IHtcbiAgICBjb25zdCBmaW5kSnVkaWNpYWxPckNUU0NQZW9wbGUgPSB0aGlzLmZpbmRQZXJzb25TZXJ2aWNlLmZpbmQoe3NlYXJjaFRlcm0sIHVzZXJSb2xlOiB0aGlzLmRvbWFpbiwgc2VydmljZXM6IFt0aGlzLnNlcnZpY2VzXSwgdXNlckluY2x1ZGVkOiB0aGlzLnVzZXJJbmNsdWRlZCwgYXNzaWduZWRVc2VyOiB0aGlzLmFzc2lnbmVkVXNlcn0pO1xuICAgIGNvbnN0IGZpbmRDYXNld29ya2Vyc09yQWRtaW5zT3JDdHNjID0gdGhpcy5maW5kUGVyc29uU2VydmljZS5maW5kQ2FzZXdvcmtlcnMoe3NlYXJjaFRlcm0sIHVzZXJSb2xlOiB0aGlzLmRvbWFpbiwgc2VydmljZXM6IFt0aGlzLnNlcnZpY2VzXSwgdXNlckluY2x1ZGVkOiB0aGlzLnVzZXJJbmNsdWRlZCwgYXNzaWduZWRVc2VyOiB0aGlzLmFzc2lnbmVkVXNlcn0pO1xuICAgIGlmIChzZWFyY2hUZXJtICYmIHNlYXJjaFRlcm0ubGVuZ3RoID4gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuZG9tYWluKSB7XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5KVURJQ0lBTDoge1xuICAgICAgICAgIHJldHVybiBmaW5kSnVkaWNpYWxPckNUU0NQZW9wbGUucGlwZShtYXAocGVyc29ucyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gdGhpcy5zZWxlY3RlZFBlcnNvbnMubWFwKCh7aWR9KSA9PiBpZCk7XG4gICAgICAgICAgICByZXR1cm4gcGVyc29ucy5maWx0ZXIoKHsgaWQgfSkgPT4gIWlkcy5pbmNsdWRlcyhpZCkpO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBlcnNvblJvbGUuQUxMOiB7XG4gICAgICAgICAgcmV0dXJuIHppcChmaW5kSnVkaWNpYWxPckNUU0NQZW9wbGUsIGZpbmRDYXNld29ya2Vyc09yQWRtaW5zT3JDdHNjKS5waXBlKG1hcChzZXBhcmF0ZVBlb3BsZSA9PiBzZXBhcmF0ZVBlb3BsZVswXS5jb25jYXQoc2VwYXJhdGVQZW9wbGVbMV0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBQZXJzb25Sb2xlLkNUU0M6XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5DQVNFV09SS0VSOlxuICAgICAgICBjYXNlIFBlcnNvblJvbGUuQURNSU46IHtcbiAgICAgICAgICByZXR1cm4gZmluZENhc2V3b3JrZXJzT3JBZG1pbnNPckN0c2M7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9mKFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZFBlcnNvbjogUGVyc29uKTogdm9pZCB7XG4gICAgdGhpcy5wZXJzb25TZWxlY3RlZC5lbWl0KHNlbGVjdGVkUGVyc29uKTtcbiAgICB0aGlzLmZpbmRQZXJzb25Db250cm9sLnNldFZhbHVlKHRoaXMuZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRQZXJzb24pLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREaXNwbGF5TmFtZShzZWxlY3RlZFBlcnNvbjogUGVyc29uKTogc3RyaW5nIHtcbiAgICBpZiAoIXNlbGVjdGVkUGVyc29uKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmIChzZWxlY3RlZFBlcnNvbi5kb21haW4gPT09IFBlcnNvblJvbGUuSlVESUNJQUwgJiYgc2VsZWN0ZWRQZXJzb24uZnVsbE5hbWUpIHtcbiAgICAgIHJldHVybiBgJHtzZWxlY3RlZFBlcnNvbi5mdWxsTmFtZX0gKCR7c2VsZWN0ZWRQZXJzb24uZW1haWx9KWA7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZFBlcnNvbi5lbWFpbCA/IGAke3NlbGVjdGVkUGVyc29uLm5hbWV9ICgke3NlbGVjdGVkUGVyc29uLmVtYWlsfSlgIDogc2VsZWN0ZWRQZXJzb24ubmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMucGVyc29uRmllbGRDaGFuZ2VkLmVtaXQoKTtcbiAgfVxufVxuIiwiPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCIgKm5nSWY9XCJ0aXRsZSAmJiB0aXRsZS5sZW5ndGhcIj5cbiAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1jYXB0aW9uLWxcIj57e3RpdGxlfX08L3NwYW4+XG4gIHt7Ym9sZFRpdGxlfX1cbjwvaDE+XG48ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtmb3JtR3JvdXBdPVwiZmluZFBlcnNvbkdyb3VwXCJcbiAgICAgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZmluZFBlcnNvbkdyb3VwLmdldCgnZmluZFBlcnNvbkNvbnRyb2wnKS5pbnZhbGlkICYmIHN1Ym1pdHRlZH1cIj5cbiAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwic3ViLXRpdGxlLWhpbnRcIj5cbiAgICA8ZGl2IGlkPVwic3ViLXRpdGxlLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIiAqbmdJZj1cInN1YlRpdGxlICYmIHN1YlRpdGxlLmxlbmd0aFwiPlxuICAgICAge3tzdWJUaXRsZX19XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gaWQ9XCJ2YWxpZGF0aW9uLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaW5kUGVyc29uR3JvdXAgJiYgZmluZFBlcnNvbkdyb3VwLmVycm9yc1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj57e2ZpbmRQZXJzb25Hcm91cC5lcnJvcnMuZXJyb3IgPyBmaW5kUGVyc29uR3JvdXAuZXJyb3JzLmVycm9yIDogZXJyb3JNZXNzYWdlfX1cbiAgICA8L3NwYW4+XG4gICAgPGlucHV0IGlkPVwiaW5wdXRTZWxlY3RQZXJzb257e2lkVmFsdWV9fVwiIHR5cGU9XCJ0ZXh0XCIgYXJpYS1sYWJlbD1cInNlbGVjdCBhIHBlcnNvblwiXG4gICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZpbmRQZXJzb25Db250cm9sXCJcbiAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLW9uZS10aGlyZFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlckNvbnRlbnRcIlxuICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0KClcIj5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSBhdXRvQWN0aXZlRmlyc3RPcHRpb24gI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50Lm9wdGlvbi52YWx1ZSlcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydoaWRlLWF1dG9jb21wbGV0ZSc6ICFzaG93QXV0b2NvbXBsZXRlLCAnc2VsZWN0LW9wdGlvbic6IHNob3dVcGRhdGVkQ29sb3J9XCI+XG4gICAgICAgIHt7Z2V0RGlzcGxheU5hbWUob3B0aW9uKX19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8bWF0LW9wdGlvbiBbbmdDbGFzc109XCJ7J3NlbGVjdC1vcHRpb24nOiBzaG93VXBkYXRlZENvbG9yfVwiICpuZ0lmPVwiaXNOb1Jlc3VsdHNTaG93biAmJiAhZmlsdGVyZWRPcHRpb25zLmxlbmd0aCAmJiBzaG93QXV0b2NvbXBsZXRlXCI+Tm8gcmVzdWx0cyBmb3VuZDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gIDwvZmllbGRzZXQ+XG48L2Rpdj5cbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9maW5kLXBlcnNvbi9maW5kLXBlcnNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQTRCLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVNsRCxNQUFNLE9BQU8sbUJBQW1CO0lBMEI5QixZQUE2QixpQkFBcUMsRUFBbUIsRUFBcUI7UUFBN0Usc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFvQjtRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXpCekYsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFL0MsY0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQzlCLGFBQVEsR0FBRyw4Q0FBOEMsQ0FB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QWxDLE1BQU07Z0JBQ1MsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29mJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGVyc29uLCBQZXJzb25Sb2xlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpbmRBUGVyc29uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZmluZC1wZXJzb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1wZXJzb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maW5kLXBlcnNvbi5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIEZpbmRQZXJzb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcGVyc29uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBlcnNvbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBwZXJzb25GaWVsZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgYm9sZFRpdGxlID0gJ0ZpbmQgdGhlIHBlcnNvbic7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJUaXRsZSA9ICdUeXBlIHRoZSBuYW1lIG9mIHRoZSBwZXJzb24gYW5kIHNlbGVjdCB0aGVtLic7XG4gIEBJbnB1dCgpIHB1YmxpYyBkb21haW4gPSBQZXJzb25Sb2xlLkFMTDtcbiAgQElucHV0KCkgcHVibGljIGZpbmRQZXJzb25Hcm91cDogVW50eXBlZEZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkUGVyc29uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgdXNlckluY2x1ZGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgYXNzaWduZWRVc2VyPzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXJDb250ZW50OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGlzTm9SZXN1bHRzU2hvd246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd1VwZGF0ZWRDb2xvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRQZXJzb25zOiBQZXJzb25bXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnWW91IG11c3Qgc2VsZWN0IGEgbmFtZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHNlcnZpY2VzOiBzdHJpbmcgPSAnSUEnO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBudWxsO1xuICBwdWJsaWMgc2hvd0F1dG9jb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgZmluZFBlcnNvbkNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHVibGljIGZpbHRlcmVkT3B0aW9uczogUGVyc29uW10gPSBbXTtcbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAyO1xuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmluZFBlcnNvblNlcnZpY2U6IEZpbmRBUGVyc29uU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5zdWIpIHtcbiAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZFBlcnNvbkNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuc2VsZWN0ZWRQZXJzb24pO1xuICAgIHRoaXMuZmluZFBlcnNvbkdyb3VwLmFkZENvbnRyb2woJ2ZpbmRQZXJzb25Db250cm9sJywgdGhpcy5maW5kUGVyc29uQ29udHJvbCk7XG4gICAgdGhpcy5zdWIgPSB0aGlzLmZpbmRQZXJzb25Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFtdKSxcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgdGFwKChzZWFyY2hUZXJtKSA9PiB0eXBlb2Ygc2VhcmNoVGVybSA9PT0gJ3N0cmluZycgPyB0aGlzLnBlcnNvblNlbGVjdGVkLmVtaXQobnVsbCkgOiB2b2lkIDApLFxuICAgICAgZmlsdGVyKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHNlYXJjaFRlcm0gJiYgc2VhcmNoVGVybS5sZW5ndGggPiB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpLFxuICAgICAgc3dpdGNoTWFwKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHRoaXMuZmlsdGVyKHNlYXJjaFRlcm0pLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLnNob3dBdXRvY29tcGxldGUgPSB0cnVlKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IFtdKSxcbiAgICAgICkpXG4gICAgKS5zdWJzY3JpYmUoKHBlb3BsZTogUGVyc29uW10pID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gcGVvcGxlO1xuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHNlYXJjaFRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8UGVyc29uW10+IHtcbiAgICBjb25zdCBmaW5kSnVkaWNpYWxPckNUU0NQZW9wbGUgPSB0aGlzLmZpbmRQZXJzb25TZXJ2aWNlLmZpbmQoe3NlYXJjaFRlcm0sIHVzZXJSb2xlOiB0aGlzLmRvbWFpbiwgc2VydmljZXM6IFt0aGlzLnNlcnZpY2VzXSwgdXNlckluY2x1ZGVkOiB0aGlzLnVzZXJJbmNsdWRlZCwgYXNzaWduZWRVc2VyOiB0aGlzLmFzc2lnbmVkVXNlcn0pO1xuICAgIGNvbnN0IGZpbmRDYXNld29ya2Vyc09yQWRtaW5zT3JDdHNjID0gdGhpcy5maW5kUGVyc29uU2VydmljZS5maW5kQ2FzZXdvcmtlcnMoe3NlYXJjaFRlcm0sIHVzZXJSb2xlOiB0aGlzLmRvbWFpbiwgc2VydmljZXM6IFt0aGlzLnNlcnZpY2VzXSwgdXNlckluY2x1ZGVkOiB0aGlzLnVzZXJJbmNsdWRlZCwgYXNzaWduZWRVc2VyOiB0aGlzLmFzc2lnbmVkVXNlcn0pO1xuICAgIGlmIChzZWFyY2hUZXJtICYmIHNlYXJjaFRlcm0ubGVuZ3RoID4gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuZG9tYWluKSB7XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5KVURJQ0lBTDoge1xuICAgICAgICAgIHJldHVybiBmaW5kSnVkaWNpYWxPckNUU0NQZW9wbGUucGlwZShtYXAocGVyc29ucyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gdGhpcy5zZWxlY3RlZFBlcnNvbnMubWFwKCh7aWR9KSA9PiBpZCk7XG4gICAgICAgICAgICByZXR1cm4gcGVyc29ucy5maWx0ZXIoKHsgaWQgfSkgPT4gIWlkcy5pbmNsdWRlcyhpZCkpO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBlcnNvblJvbGUuQUxMOiB7XG4gICAgICAgICAgcmV0dXJuIHppcChmaW5kSnVkaWNpYWxPckNUU0NQZW9wbGUsIGZpbmRDYXNld29ya2Vyc09yQWRtaW5zT3JDdHNjKS5waXBlKG1hcChzZXBhcmF0ZVBlb3BsZSA9PiBzZXBhcmF0ZVBlb3BsZVswXS5jb25jYXQoc2VwYXJhdGVQZW9wbGVbMV0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBQZXJzb25Sb2xlLkNUU0M6XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5DQVNFV09SS0VSOlxuICAgICAgICBjYXNlIFBlcnNvblJvbGUuQURNSU46IHtcbiAgICAgICAgICByZXR1cm4gZmluZENhc2V3b3JrZXJzT3JBZG1pbnNPckN0c2M7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9mKFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZFBlcnNvbjogUGVyc29uKTogdm9pZCB7XG4gICAgdGhpcy5wZXJzb25TZWxlY3RlZC5lbWl0KHNlbGVjdGVkUGVyc29uKTtcbiAgICB0aGlzLmZpbmRQZXJzb25Db250cm9sLnNldFZhbHVlKHRoaXMuZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRQZXJzb24pLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREaXNwbGF5TmFtZShzZWxlY3RlZFBlcnNvbjogUGVyc29uKTogc3RyaW5nIHtcbiAgICBpZiAoIXNlbGVjdGVkUGVyc29uKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmIChzZWxlY3RlZFBlcnNvbi5kb21haW4gPT09IFBlcnNvblJvbGUuSlVESUNJQUwgJiYgc2VsZWN0ZWRQZXJzb24uZnVsbE5hbWUpIHtcbiAgICAgIHJldHVybiBgJHtzZWxlY3RlZFBlcnNvbi5mdWxsTmFtZX0gKCR7c2VsZWN0ZWRQZXJzb24uZW1haWx9KWA7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZFBlcnNvbi5lbWFpbCA/IGAke3NlbGVjdGVkUGVyc29uLm5hbWV9ICgke3NlbGVjdGVkUGVyc29uLmVtYWlsfSlgIDogc2VsZWN0ZWRQZXJzb24ubmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMucGVyc29uRmllbGRDaGFuZ2VkLmVtaXQoKTtcbiAgfVxufVxuIiwiPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCIgKm5nSWY9XCJ0aXRsZSAmJiB0aXRsZS5sZW5ndGhcIj5cbiAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1jYXB0aW9uLWxcIj57e3RpdGxlfX08L3NwYW4+XG4gIHt7Ym9sZFRpdGxlfX1cbjwvaDE+XG48ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtmb3JtR3JvdXBdPVwiZmluZFBlcnNvbkdyb3VwXCJcbiAgICAgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZmluZFBlcnNvbkdyb3VwLmdldCgnZmluZFBlcnNvbkNvbnRyb2wnKS5pbnZhbGlkICYmIHN1Ym1pdHRlZH1cIj5cbiAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwic3ViLXRpdGxlLWhpbnRcIj5cbiAgICA8ZGl2IGlkPVwic3ViLXRpdGxlLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIiAqbmdJZj1cInN1YlRpdGxlICYmIHN1YlRpdGxlLmxlbmd0aFwiPlxuICAgICAge3tzdWJUaXRsZX19XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gaWQ9XCJ2YWxpZGF0aW9uLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaW5kUGVyc29uR3JvdXAgJiYgZmluZFBlcnNvbkdyb3VwLmVycm9yc1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj57e2ZpbmRQZXJzb25Hcm91cC5lcnJvcnMuZXJyb3IgPyBmaW5kUGVyc29uR3JvdXAuZXJyb3JzLmVycm9yIDogZXJyb3JNZXNzYWdlfX1cbiAgICA8L3NwYW4+XG4gICAgPGlucHV0IGlkPVwiaW5wdXRTZWxlY3RQZXJzb257e2lkVmFsdWV9fVwiIHR5cGU9XCJ0ZXh0XCIgYXJpYS1sYWJlbD1cInNlbGVjdCBhIHBlcnNvblwiXG4gICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImZpbmRQZXJzb25Db250cm9sXCJcbiAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLW9uZS10aGlyZFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlckNvbnRlbnRcIlxuICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0KClcIj5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSBhdXRvQWN0aXZlRmlyc3RPcHRpb24gI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50Lm9wdGlvbi52YWx1ZSlcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydoaWRlLWF1dG9jb21wbGV0ZSc6ICFzaG93QXV0b2NvbXBsZXRlLCAnc2VsZWN0LW9wdGlvbic6IHNob3dVcGRhdGVkQ29sb3J9XCI+XG4gICAgICAgIHt7Z2V0RGlzcGxheU5hbWUob3B0aW9uKX19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8bWF0LW9wdGlvbiBbbmdDbGFzc109XCJ7J3NlbGVjdC1vcHRpb24nOiBzaG93VXBkYXRlZENvbG9yfVwiICpuZ0lmPVwiaXNOb1Jlc3VsdHNTaG93biAmJiAhZmlsdGVyZWRPcHRpb25zLmxlbmd0aCAmJiBzaG93QXV0b2NvbXBsZXRlXCI+Tm8gcmVzdWx0cyBmb3VuZDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gIDwvZmllbGRzZXQ+XG48L2Rpdj5cbiJdfQ==
@@ -93,10 +93,10 @@ export class FindServiceComponent {
93
93
  ngOnDestroy() {
94
94
  this.formSubmissionEventSubscription?.unsubscribe();
95
95
  }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindServiceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FindServiceComponent, selector: "xuilib-find-service", inputs: { field: "field", serviceTitle: "serviceTitle", form: "form", disabled: "disabled", formSubmissionEvent$: "formSubmissionEvent$" }, outputs: { serviceFieldChanged: "serviceFieldChanged" }, viewQueries: [{ propertyName: "searchServiceComponent", first: true, predicate: SearchServiceComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle }}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addOption(tempSelectedService)\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n Add\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label }}\n </a>\n </li>\n </ul>\n</div>\n", styles: ["#add-service{background-color:#ddd}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SearchServiceComponent, selector: "exui-search-service", inputs: ["options", "selectedOptions", "disabled", "showAutocomplete"], outputs: ["optionChanged"] }] }); }
98
96
  }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindServiceComponent, decorators: [{
97
+ FindServiceComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FindServiceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
98
+ FindServiceComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FindServiceComponent, selector: "xuilib-find-service", inputs: { field: "field", serviceTitle: "serviceTitle", form: "form", disabled: "disabled", formSubmissionEvent$: "formSubmissionEvent$" }, outputs: { serviceFieldChanged: "serviceFieldChanged" }, viewQueries: [{ propertyName: "searchServiceComponent", first: true, predicate: SearchServiceComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle }}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addOption(tempSelectedService)\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n Add\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label }}\n </a>\n </li>\n </ul>\n</div>\n", styles: ["#add-service{background-color:#ddd}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SearchServiceComponent, selector: "exui-search-service", inputs: ["options", "selectedOptions", "disabled", "showAutocomplete"], outputs: ["optionChanged"] }] });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FindServiceComponent, decorators: [{
100
100
  type: Component,
101
101
  args: [{ selector: 'xuilib-find-service', template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle }}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [options]=\"field.options\"\n [selectedOptions]=\"selectedServices\"\n [disabled]=\"disabled\"\n (optionChanged)=\"onOptionSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addOption(tempSelectedService)\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"field?.enableAddButton\" id=\"add-service\">\n Add\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeOption(selection)\" href=\"javascript:void(0)\">\n {{ selection.label }}\n </a>\n </li>\n </ul>\n</div>\n", styles: ["#add-service{background-color:#ddd}\n"] }]
102
102
  }], propDecorators: { field: [{
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
115
115
  }], serviceFieldChanged: [{
116
116
  type: Output
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zZXJ2aWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZmluZC1zZXJ2aWNlL2ZpbmQtc2VydmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtc2VydmljZS9maW5kLXNlcnZpY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBb0Isa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFPcEYsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVNrQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBR3pCLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHdkIsd0JBQW1CLEdBQXVCLElBQUksQ0FBQztLQTBGdkQ7SUF6RkMsSUFBVyxnQkFBZ0I7UUFDekIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxL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Q0FBQztJQUN0RCxDQUFDOzhHQXBHVSxvQkFBb0I7a0dBQXBCLG9CQUFvQix3VEFNcEIsc0JBQXNCLDhEQ2pCbkMsMHNDQTZCQTs7MkZEbEJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS2YsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ3NELHNCQUFzQjtzQkFBakYsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2xDLG1CQUFtQjtzQkFBbkMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbHRlckNvbmZpZ09wdGlvbiwgRmlsdGVyRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZUNvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1zZXJ2aWNlL3NlYXJjaC1zZXJ2aWNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1maW5kLXNlcnZpY2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmluZC1zZXJ2aWNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmluZFNlcnZpY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZDogRmlsdGVyRmllbGRDb25maWc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlVGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybVN1Ym1pc3Npb25FdmVudCQ6IFN1YmplY3Q8dm9pZD47XG4gIEBWaWV3Q2hpbGQoU2VhcmNoU2VydmljZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHNlYXJjaFNlcnZpY2VDb21wb25lbnQ6IFNlYXJjaFNlcnZpY2VDb21wb25lbnQ7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VydmljZUZpZWxkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJpdmF0ZSBpc1NlbGVjdGVkQWxsID0gZmFsc2U7XG4gIHByaXZhdGUgZm9ybVN1Ym1pc3Npb25FdmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyB0ZW1wU2VsZWN0ZWRTZXJ2aWNlOiBGaWx0ZXJDb25maWdPcHRpb24gPSBudWxsO1xuICBwdWJsaWMgZ2V0IHNlbGVjdGVkU2VydmljZXMoKTogRmlsdGVyQ29uZmlnT3B0aW9uW10ge1xuICAgIGNvbnN0IHNlbGVjdEFsbFZhbHVlID0gdGhpcy5maWVsZC5vcHRpb25zLmZpbmQoaXRlbSA9PiBpdGVtLnNlbGVjdEFsbCk7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWxlY3RlZEFsbCA/IFtzZWxlY3RBbGxWYWx1ZV0gOiB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSk/LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc29ydE9wdGlvbnNBbHBoYWJldGljYWxseSgpO1xuXG4gICAgLy8gUGF0Y2ggRGVmYXVsdCBPcHRpb25cbiAgICBpZiAodGhpcy5maWVsZC5kZWZhdWx0T3B0aW9uKSB7XG4gICAgICB0aGlzLmFkZE9wdGlvbih0aGlzLmZpZWxkLmRlZmF1bHRPcHRpb24pO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb3JtU3VibWlzc2lvbkV2ZW50JCkge1xuICAgICAgdGhpcy5mb3JtU3VibWlzc2lvbkV2ZW50U3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtU3VibWlzc2lvbkV2ZW50JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBvbmVTZWxlY3RlZEFuZE1heFNlbGVjdGVkT25lID0gdGhpcy5zZWxlY3RlZFNlcnZpY2VzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxO1xuICAgICAgICBpZiAoIW9uZVNlbGVjdGVkQW5kTWF4U2VsZWN0ZWRPbmUpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2VDb21wb25lbnQucmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRPcHRpb24ob3B0aW9uOiBGaWx0ZXJDb25maWdPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAob3B0aW9uKSB7XG4gICAgICBpZiAob3B0aW9uLnNlbGVjdEFsbCkge1xuICAgICAgICB0aGlzLmlzU2VsZWN0ZWRBbGwgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlbW92ZUFsbFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICAgIHRoaXMuZmllbGQub3B0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGlmICghaXRlbS5zZWxlY3RBbGwpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkU2VsZWN0ZWRTZXJ2aWNlVG9Gb3JtKGl0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkQWxsKSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBbGxTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZEFsbCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkU2VsZWN0ZWRTZXJ2aWNlVG9Gb3JtKG9wdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkU2VydmljZSA9IG51bGw7XG4gICAgICB0aGlzLnNlcnZpY2VGaWVsZENoYW5nZWQuZW1pdCgpO1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlQ29tcG9uZW50LnJlc2V0U2VhcmNoVGVybSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVPcHRpb24oc2VydmljZTogRmlsdGVyQ29uZmlnT3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKHNlcnZpY2Uuc2VsZWN0QWxsKSB7XG4gICAgICB0aGlzLnJlbW92ZUFsbFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICB0aGlzLmlzU2VsZWN0ZWRBbGwgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHNlcnZpY2Uua2V5KSB7XG4gICAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICAgIGNvbnN0IGluZGV4ID0gKGZvcm1BcnJheS52YWx1ZSkuZmluZEluZGV4KChzZWxlY3RlZFNlcnZpY2U6IEZpbHRlckNvbmZpZ09wdGlvbikgPT4gc2VsZWN0ZWRTZXJ2aWNlLmtleS50b0xvd2VyQ2FzZSgpID09PSBzZXJ2aWNlLmtleS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIGZvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNlcnZpY2VGaWVsZENoYW5nZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk9wdGlvblNlbGVjdGVkKG9wdGlvbjogRmlsdGVyQ29uZmlnT3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpZWxkLmVuYWJsZUFkZEJ1dHRvbiAmJiB0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxKSB7XG4gICAgICB0aGlzLnJlbW92ZUFsbFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICB0aGlzLmFkZFNlbGVjdGVkU2VydmljZVRvRm9ybShvcHRpb24pO1xuICAgICAgdGhpcy5zZXJ2aWNlRmllbGRDaGFuZ2VkLmVtaXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRTZXJ2aWNlID0gb3B0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQWxsU2VsZWN0ZWRWYWx1ZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLm5hbWUpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgZm9ybUFycmF5LmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIGFkZFNlbGVjdGVkU2VydmljZVRvRm9ybShzZXJ2aWNlOiBGaWx0ZXJDb25maWdPcHRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICBmb3JtQXJyYXkucHVzaChuZXcgVW50eXBlZEZvcm1Db250cm9sKHNlcnZpY2UpKTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydE9wdGlvbnNBbHBoYWJldGljYWxseSgpOiBGaWx0ZXJDb25maWdPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQub3B0aW9ucy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICByZXR1cm4gYS5sYWJlbC50b0xvd2VyQ2FzZSgpID4gYi5sYWJlbC50b0xvd2VyQ2FzZSgpID8gMSA6IChiLmxhYmVsLnRvTG93ZXJDYXNlKCkgPiBhLmxhYmVsLnRvTG93ZXJDYXNlKCkgPyAtMSA6IDApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZm9ybVN1Ym1pc3Npb25FdmVudFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNlcnZpY2UtcGlja2VyLWN1c3RvbVwiPlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLXNlcnZpY2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstYm9keVwiPlxuICAgICAgPGxhYmVsIGlkPVwic2VsZWN0U2VydmljZVNlYXJjaC1sYWJlbFwiIGZvcj1cInNlcnZpY2VTZWFyY2hfX3NlbGVjdFwiICpuZ0lmPVwic2VydmljZVRpdGxlXCI+XG4gICAgICAgIHt7IHNlcnZpY2VUaXRsZSB9fVxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXNlcnZpY2VfX2lucHV0LWNvbnRhaW5lclwiPlxuICAgICAgPGV4dWktc2VhcmNoLXNlcnZpY2UgY2xhc3M9XCJzZWFyY2gtc2VydmljZV9faW5wdXRcIlxuICAgICAgICBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgICAgW3NlbGVjdGVkT3B0aW9uc109XCJzZWxlY3RlZFNlcnZpY2VzXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKG9wdGlvbkNoYW5nZWQpPVwib25PcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICA8L2V4dWktc2VhcmNoLXNlcnZpY2U+XG4gICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImFkZE9wdGlvbih0ZW1wU2VsZWN0ZWRTZXJ2aWNlKVwiXG4gICAgICAgIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAqbmdJZj1cImZpZWxkPy5lbmFibGVBZGRCdXR0b25cIiBpZD1cImFkZC1zZXJ2aWNlXCI+XG4gICAgICAgIEFkZFxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHVsIGNsYXNzPVwiaG1jdHMtZmlsdGVyLXRhZ3Mgc2VsZWN0aW9uLWNvbnRhaW5lclwiICpuZ0lmPVwiZmllbGQubWF4U2VsZWN0ZWQgIT0gMVwiPlxuICAgIDxsaSBjbGFzcz1cImxvY2F0aW9uLXNlbGVjdGlvblwiICpuZ0Zvcj1cImxldCBzZWxlY3Rpb24gb2Ygc2VsZWN0ZWRTZXJ2aWNlc1wiPlxuICAgICAgPGEgY2xhc3M9XCJobWN0cy1maWx0ZXJfX3RhZ1wiIChjbGljayk9XCJyZW1vdmVPcHRpb24oc2VsZWN0aW9uKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj5cbiAgICAgICAge3sgc2VsZWN0aW9uLmxhYmVsIH19XG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zZXJ2aWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZmluZC1zZXJ2aWNlL2ZpbmQtc2VydmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtc2VydmljZS9maW5kLXNlcnZpY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBb0Isa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFPcEYsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVNrQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBR3pCLHdCQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFHdkIsd0JBQW1CLEdBQXVCLElBQUksQ0FBQztLQTBGdkQ7SUF6RkMsSUFBVyxnQkFBZ0I7UUFDekIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxL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Q0FBQztJQUN0RCxDQUFDOztpSEFwR1Usb0JBQW9CO3FHQUFwQixvQkFBb0Isd1RBTXBCLHNCQUFzQiw4RENqQm5DLDBzQ0E2QkE7MkZEbEJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS2YsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ3NELHNCQUFzQjtzQkFBakYsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2xDLG1CQUFtQjtzQkFBbkMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpbHRlckNvbmZpZ09wdGlvbiwgRmlsdGVyRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZUNvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1zZXJ2aWNlL3NlYXJjaC1zZXJ2aWNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1maW5kLXNlcnZpY2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmluZC1zZXJ2aWNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmluZFNlcnZpY2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZDogRmlsdGVyRmllbGRDb25maWc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlVGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybVN1Ym1pc3Npb25FdmVudCQ6IFN1YmplY3Q8dm9pZD47XG4gIEBWaWV3Q2hpbGQoU2VhcmNoU2VydmljZUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIHNlYXJjaFNlcnZpY2VDb21wb25lbnQ6IFNlYXJjaFNlcnZpY2VDb21wb25lbnQ7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VydmljZUZpZWxkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJpdmF0ZSBpc1NlbGVjdGVkQWxsID0gZmFsc2U7XG4gIHByaXZhdGUgZm9ybVN1Ym1pc3Npb25FdmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyB0ZW1wU2VsZWN0ZWRTZXJ2aWNlOiBGaWx0ZXJDb25maWdPcHRpb24gPSBudWxsO1xuICBwdWJsaWMgZ2V0IHNlbGVjdGVkU2VydmljZXMoKTogRmlsdGVyQ29uZmlnT3B0aW9uW10ge1xuICAgIGNvbnN0IHNlbGVjdEFsbFZhbHVlID0gdGhpcy5maWVsZC5vcHRpb25zLmZpbmQoaXRlbSA9PiBpdGVtLnNlbGVjdEFsbCk7XG4gICAgcmV0dXJuIHRoaXMuaXNTZWxlY3RlZEFsbCA/IFtzZWxlY3RBbGxWYWx1ZV0gOiB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSk/LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc29ydE9wdGlvbnNBbHBoYWJldGljYWxseSgpO1xuXG4gICAgLy8gUGF0Y2ggRGVmYXVsdCBPcHRpb25cbiAgICBpZiAodGhpcy5maWVsZC5kZWZhdWx0T3B0aW9uKSB7XG4gICAgICB0aGlzLmFkZE9wdGlvbih0aGlzLmZpZWxkLmRlZmF1bHRPcHRpb24pO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb3JtU3VibWlzc2lvbkV2ZW50JCkge1xuICAgICAgdGhpcy5mb3JtU3VibWlzc2lvbkV2ZW50U3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtU3VibWlzc2lvbkV2ZW50JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBvbmVTZWxlY3RlZEFuZE1heFNlbGVjdGVkT25lID0gdGhpcy5zZWxlY3RlZFNlcnZpY2VzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxO1xuICAgICAgICBpZiAoIW9uZVNlbGVjdGVkQW5kTWF4U2VsZWN0ZWRPbmUpIHtcbiAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2VDb21wb25lbnQucmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRPcHRpb24ob3B0aW9uOiBGaWx0ZXJDb25maWdPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAob3B0aW9uKSB7XG4gICAgICBpZiAob3B0aW9uLnNlbGVjdEFsbCkge1xuICAgICAgICB0aGlzLmlzU2VsZWN0ZWRBbGwgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlbW92ZUFsbFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICAgIHRoaXMuZmllbGQub3B0aW9ucy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGlmICghaXRlbS5zZWxlY3RBbGwpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkU2VsZWN0ZWRTZXJ2aWNlVG9Gb3JtKGl0ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkQWxsKSB7XG4gICAgICAgICAgdGhpcy5yZW1vdmVBbGxTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZEFsbCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWRkU2VsZWN0ZWRTZXJ2aWNlVG9Gb3JtKG9wdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkU2VydmljZSA9IG51bGw7XG4gICAgICB0aGlzLnNlcnZpY2VGaWVsZENoYW5nZWQuZW1pdCgpO1xuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlQ29tcG9uZW50LnJlc2V0U2VhcmNoVGVybSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVPcHRpb24oc2VydmljZTogRmlsdGVyQ29uZmlnT3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKHNlcnZpY2Uuc2VsZWN0QWxsKSB7XG4gICAgICB0aGlzLnJlbW92ZUFsbFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICB0aGlzLmlzU2VsZWN0ZWRBbGwgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHNlcnZpY2Uua2V5KSB7XG4gICAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICAgIGNvbnN0IGluZGV4ID0gKGZvcm1BcnJheS52YWx1ZSkuZmluZEluZGV4KChzZWxlY3RlZFNlcnZpY2U6IEZpbHRlckNvbmZpZ09wdGlvbikgPT4gc2VsZWN0ZWRTZXJ2aWNlLmtleS50b0xvd2VyQ2FzZSgpID09PSBzZXJ2aWNlLmtleS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIGZvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNlcnZpY2VGaWVsZENoYW5nZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbk9wdGlvblNlbGVjdGVkKG9wdGlvbjogRmlsdGVyQ29uZmlnT3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZpZWxkLmVuYWJsZUFkZEJ1dHRvbiAmJiB0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxKSB7XG4gICAgICB0aGlzLnJlbW92ZUFsbFNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICB0aGlzLmFkZFNlbGVjdGVkU2VydmljZVRvRm9ybShvcHRpb24pO1xuICAgICAgdGhpcy5zZXJ2aWNlRmllbGRDaGFuZ2VkLmVtaXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRTZXJ2aWNlID0gb3B0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQWxsU2VsZWN0ZWRWYWx1ZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLm5hbWUpIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gICAgZm9ybUFycmF5LmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIGFkZFNlbGVjdGVkU2VydmljZVRvRm9ybShzZXJ2aWNlOiBGaWx0ZXJDb25maWdPcHRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgVW50eXBlZEZvcm1BcnJheTtcbiAgICBmb3JtQXJyYXkucHVzaChuZXcgVW50eXBlZEZvcm1Db250cm9sKHNlcnZpY2UpKTtcbiAgfVxuXG4gIHByaXZhdGUgc29ydE9wdGlvbnNBbHBoYWJldGljYWxseSgpOiBGaWx0ZXJDb25maWdPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQub3B0aW9ucy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICByZXR1cm4gYS5sYWJlbC50b0xvd2VyQ2FzZSgpID4gYi5sYWJlbC50b0xvd2VyQ2FzZSgpID8gMSA6IChiLmxhYmVsLnRvTG93ZXJDYXNlKCkgPiBhLmxhYmVsLnRvTG93ZXJDYXNlKCkgPyAtMSA6IDApO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZm9ybVN1Ym1pc3Npb25FdmVudFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNlcnZpY2UtcGlja2VyLWN1c3RvbVwiPlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLXNlcnZpY2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstYm9keVwiPlxuICAgICAgPGxhYmVsIGlkPVwic2VsZWN0U2VydmljZVNlYXJjaC1sYWJlbFwiIGZvcj1cInNlcnZpY2VTZWFyY2hfX3NlbGVjdFwiICpuZ0lmPVwic2VydmljZVRpdGxlXCI+XG4gICAgICAgIHt7IHNlcnZpY2VUaXRsZSB9fVxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXNlcnZpY2VfX2lucHV0LWNvbnRhaW5lclwiPlxuICAgICAgPGV4dWktc2VhcmNoLXNlcnZpY2UgY2xhc3M9XCJzZWFyY2gtc2VydmljZV9faW5wdXRcIlxuICAgICAgICBbb3B0aW9uc109XCJmaWVsZC5vcHRpb25zXCJcbiAgICAgICAgW3NlbGVjdGVkT3B0aW9uc109XCJzZWxlY3RlZFNlcnZpY2VzXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKG9wdGlvbkNoYW5nZWQpPVwib25PcHRpb25TZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICA8L2V4dWktc2VhcmNoLXNlcnZpY2U+XG4gICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImFkZE9wdGlvbih0ZW1wU2VsZWN0ZWRTZXJ2aWNlKVwiXG4gICAgICAgIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0wXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAqbmdJZj1cImZpZWxkPy5lbmFibGVBZGRCdXR0b25cIiBpZD1cImFkZC1zZXJ2aWNlXCI+XG4gICAgICAgIEFkZFxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPHVsIGNsYXNzPVwiaG1jdHMtZmlsdGVyLXRhZ3Mgc2VsZWN0aW9uLWNvbnRhaW5lclwiICpuZ0lmPVwiZmllbGQubWF4U2VsZWN0ZWQgIT0gMVwiPlxuICAgIDxsaSBjbGFzcz1cImxvY2F0aW9uLXNlbGVjdGlvblwiICpuZ0Zvcj1cImxldCBzZWxlY3Rpb24gb2Ygc2VsZWN0ZWRTZXJ2aWNlc1wiPlxuICAgICAgPGEgY2xhc3M9XCJobWN0cy1maWx0ZXJfX3RhZ1wiIChjbGljayk9XCJyZW1vdmVPcHRpb24oc2VsZWN0aW9uKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj5cbiAgICAgICAge3sgc2VsZWN0aW9uLmxhYmVsIH19XG4gICAgICA8L2E+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuIl19
@@ -67,10 +67,10 @@ export class FindTaskNameComponent {
67
67
  onInput() {
68
68
  this.taskNameFieldChanged.emit();
69
69
  }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindTaskNameComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TaskNameService }], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: FindTaskNameComponent, selector: "xuilib-find-task-name", inputs: { title: "title", boldTitle: "boldTitle", subTitle: "subTitle", domain: "domain", findTaskNameGroup: "findTaskNameGroup", selectedTaskName: "selectedTaskName", submitted: "submitted", assignedUser: "assignedUser", placeholderContent: "placeholderContent", isNoResultsShown: "isNoResultsShown", showUpdatedColor: "showUpdatedColor", selectedTaskNames: "selectedTaskNames", errorMessage: "errorMessage", idValue: "idValue", services: "services", disabled: "disabled" }, outputs: { taskNameSelected: "taskNameSelected", taskNameFieldChanged: "taskNameFieldChanged" }, ngImport: i0, template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findTaskNameGroup\"\n [ngClass]=\"{'form-group-error': findTaskNameGroup.get('findTaskNameControl')?.invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findTaskNameGroup && findTaskNameGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findTaskNameGroup.errors.error ? findTaskNameGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectTaskName{{idValue}}\" type=\"text\" aria-label=\"select a task name\"\n formControlName=\"findTaskNameControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{ getTaskTypeName(option) }}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }] }); }
72
70
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: FindTaskNameComponent, decorators: [{
71
+ FindTaskNameComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FindTaskNameComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TaskNameService }], target: i0.ɵɵFactoryTarget.Component });
72
+ FindTaskNameComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FindTaskNameComponent, selector: "xuilib-find-task-name", inputs: { title: "title", boldTitle: "boldTitle", subTitle: "subTitle", domain: "domain", findTaskNameGroup: "findTaskNameGroup", selectedTaskName: "selectedTaskName", submitted: "submitted", assignedUser: "assignedUser", placeholderContent: "placeholderContent", isNoResultsShown: "isNoResultsShown", showUpdatedColor: "showUpdatedColor", selectedTaskNames: "selectedTaskNames", errorMessage: "errorMessage", idValue: "idValue", services: "services", disabled: "disabled" }, outputs: { taskNameSelected: "taskNameSelected", taskNameFieldChanged: "taskNameFieldChanged" }, ngImport: i0, template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findTaskNameGroup\"\n [ngClass]=\"{'form-group-error': findTaskNameGroup.get('findTaskNameControl')?.invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findTaskNameGroup && findTaskNameGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findTaskNameGroup.errors.error ? findTaskNameGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectTaskName{{idValue}}\" type=\"text\" aria-label=\"select a task name\"\n formControlName=\"findTaskNameControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{ getTaskTypeName(option) }}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i4.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i5.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }] });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FindTaskNameComponent, decorators: [{
74
74
  type: Component,
75
75
  args: [{ selector: 'xuilib-find-task-name', template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findTaskNameGroup\"\n [ngClass]=\"{'form-group-error': findTaskNameGroup.get('findTaskNameControl')?.invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findTaskNameGroup && findTaskNameGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findTaskNameGroup.errors.error ? findTaskNameGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectTaskName{{idValue}}\" type=\"text\" aria-label=\"select a task name\"\n formControlName=\"findTaskNameControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{ getTaskTypeName(option) }}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n" }]
76
76
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.TaskNameService }]; }, propDecorators: { taskNameSelected: [{
@@ -110,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
110
110
  }], disabled: [{
111
111
  type: Input
112
112
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC10YXNrLW5hbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9maW5kLXRhc2stbmFtZS9maW5kLXRhc2stbmFtZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtdGFzay1uYW1lL2ZpbmQtdGFzay1uYW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVV4QyxNQUFNLE9BQU8scUJBQXFCO0lBMEJoQyxZQUE2QixFQUFxQixFQUFtQixXQUE0QjtRQUFwRSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFtQixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUF6QmhGLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVqRCxjQUFTLEdBQUcsb0JBQW9CLENBQUM7UUFDakMsYUFBUSxHQUFHLGlEQUFpRCxDQUFDO1FBQzdELFdBQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFxQixJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9E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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBtZXJnZU1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BlcnNvblJvbGV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBUYXNrTmFtZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Rhc2stbmFtZS5tb2RlbCc7XG5pbXBvcnQgeyBUYXNrTmFtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLW5hbWUvdGFzay1uYW1lLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZmluZC10YXNrLW5hbWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC10YXNrLW5hbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maW5kLXRhc2stbmFtZS5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIEZpbmRUYXNrTmFtZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpIHB1YmxpYyB0YXNrTmFtZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgdGFza05hbWVGaWVsZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgYm9sZFRpdGxlID0gJ0ZpbmQgdGhlIHRhc2sgbmFtZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJUaXRsZSA9ICdUeXBlIHRoZSBuYW1lIG9mIHRoZSB0YXNrIG5hbWUgYW5kIHNlbGVjdCB0aGVtLic7XG4gIEBJbnB1dCgpIHB1YmxpYyBkb21haW4gPSBQZXJzb25Sb2xlLkFMTDtcbiAgQElucHV0KCkgcHVibGljIGZpbmRUYXNrTmFtZUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRUYXNrTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc3VibWl0dGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGFzc2lnbmVkVXNlcj86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyQ29udGVudDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpc05vUmVzdWx0c1Nob3duOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIHNob3dVcGRhdGVkQ29sb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkVGFza05hbWVzOiBUYXNrTmFtZU1vZGVsW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ1lvdSBtdXN0IHNlbGVjdCBhIG5hbWUnO1xuICBASW5wdXQoKSBwdWJsaWMgaWRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlczogc3RyaW5nID0gJ0lBJztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcbiAgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGZpbmRUYXNrTmFtZUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHVibGljIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAxO1xuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVhZG9ubHkgdGFza1NlcnZpY2U6IFRhc2tOYW1lU2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3ViKSB7XG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmRUYXNrTmFtZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuc2VsZWN0ZWRUYXNrTmFtZSk7XG4gICAgdGhpcy5maW5kVGFza05hbWVHcm91cC5hZGRDb250cm9sKCdmaW5kVGFza05hbWVDb250cm9sJywgdGhpcy5maW5kVGFza05hbWVDb250cm9sKTtcbiAgICB0aGlzLnN1YiA9IHRoaXMuZmluZFRhc2tOYW1lQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbXSksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIHRhcCgoc2VhcmNoVGVybSkgPT4gdGhpcy5zZWFyY2hUZXJtID0gc2VhcmNoVGVybSksXG4gICAgICB0YXAoKHNlYXJjaFRlcm0pID0+IHR5cGVvZiBzZWFyY2hUZXJtID09PSAnc3RyaW5nJyA/IHRoaXMudGFza05hbWVTZWxlY3RlZC5lbWl0KCdudWxsJykgOiB2b2lkIDApLFxuICAgICAgZmlsdGVyKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHNlYXJjaFRlcm0gJiYgc2VhcmNoVGVybS5sZW5ndGggPj0gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0VGFza05hbWUoKSksXG4gICAgKS5zdWJzY3JpYmUoKHRhc2tOYW1lTW9kZWw6IFRhc2tOYW1lTW9kZWxbXSkgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0YXNrTmFtZU1vZGVsID8gdGFza05hbWVNb2RlbCA6IFtdO1xuICAgICAgaWYgKHRoaXMuc2VhcmNoVGVybSkge1xuICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuZmlsdGVyZWRPcHRpb25zLmZpbHRlcigodGFza1R5cGUpID0+IHRhc2tUeXBlLnRhc2tfdHlwZS50YXNrX3R5cGVfbmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGVybS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkubWFwKHRhc2tUeXBlPT4gdGFza1R5cGUpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGFza05hbWUoKTogT2JzZXJ2YWJsZTxUYXNrTmFtZU1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy50YXNrU2VydmljZS5nZXRUYXNrTmFtZSh0aGlzLnNlcnZpY2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZFRhc2tUeXBlTmFtZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHNlbGVjdGVkVGFza1R5cGVOYW1lKSB7XG4gICAgICB0aGlzLnRhc2tOYW1lU2VsZWN0ZWQuZW1pdChzZWxlY3RlZFRhc2tUeXBlTmFtZSk7XG4gICAgICB0aGlzLmZpbmRUYXNrTmFtZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5nZXRUYXNrVHlwZU5hbWUoc2VsZWN0ZWRUYXNrVHlwZU5hbWUpLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VGFza1R5cGVOYW1lKHNlbGVjdGVkVGFza1R5cGU6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCFzZWxlY3RlZFRhc2tUeXBlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZFRhc2tUeXBlLnRhc2tfdHlwZS50YXNrX3R5cGVfbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMudGFza05hbWVGaWVsZENoYW5nZWQuZW1pdCgpO1xuICB9XG59XG4iLCI8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIiAqbmdJZj1cInRpdGxlICYmIHRpdGxlLmxlbmd0aFwiPlxuICA8c3BhbiBjbGFzcz1cImdvdnVrLWNhcHRpb24tbFwiPnt7dGl0bGV9fTwvc3Bhbj5cbiAge3tib2xkVGl0bGV9fVxuPC9oMT5cbjxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW2Zvcm1Hcm91cF09XCJmaW5kVGFza05hbWVHcm91cFwiXG4gICAgIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGZpbmRUYXNrTmFtZUdyb3VwLmdldCgnZmluZFRhc2tOYW1lQ29udHJvbCcpPy5pbnZhbGlkICYmIHN1Ym1pdHRlZH1cIj5cbiAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwic3ViLXRpdGxlLWhpbnRcIj5cbiAgICA8ZGl2IGlkPVwic3ViLXRpdGxlLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIiAqbmdJZj1cInN1YlRpdGxlICYmIHN1YlRpdGxlLmxlbmd0aFwiPlxuICAgICAge3tzdWJUaXRsZX19XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gaWQ9XCJ2YWxpZGF0aW9uLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaW5kVGFza05hbWVHcm91cCAmJiBmaW5kVGFza05hbWVHcm91cC5lcnJvcnNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+e3tmaW5kVGFza05hbWVHcm91cC5lcnJvcnMuZXJyb3IgPyBmaW5kVGFza05hbWVHcm91cC5lcnJvcnMuZXJyb3IgOiBlcnJvck1lc3NhZ2V9fVxuICAgIDwvc3Bhbj5cbiAgICA8aW5wdXQgaWQ9XCJpbnB1dFNlbGVjdFRhc2tOYW1le3tpZFZhbHVlfX1cIiB0eXBlPVwidGV4dFwiIGFyaWEtbGFiZWw9XCJzZWxlY3QgYSB0YXNrIG5hbWVcIlxuICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJmaW5kVGFza05hbWVDb250cm9sXCJcbiAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLW9uZS10aGlyZFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlckNvbnRlbnRcIlxuICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0KClcIj5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSBhdXRvQWN0aXZlRmlyc3RPcHRpb24gI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50Lm9wdGlvbi52YWx1ZSlcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydoaWRlLWF1dG9jb21wbGV0ZSc6ICFzaG93QXV0b2NvbXBsZXRlLCAnc2VsZWN0LW9wdGlvbic6IHNob3dVcGRhdGVkQ29sb3J9XCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRUYXNrVHlwZU5hbWUob3B0aW9uKSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPG1hdC1vcHRpb24gW25nQ2xhc3NdPVwieydzZWxlY3Qtb3B0aW9uJzogc2hvd1VwZGF0ZWRDb2xvcn1cIiAqbmdJZj1cImlzTm9SZXN1bHRzU2hvd24gJiYgIWZpbHRlcmVkT3B0aW9ucy5sZW5ndGggJiYgc2hvd0F1dG9jb21wbGV0ZVwiPk5vIHJlc3VsdHMgZm91bmQ8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICA8L2ZpZWxkc2V0PlxuPC9kaXY+XG4iXX0=
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC10YXNrLW5hbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9maW5kLXRhc2stbmFtZS9maW5kLXRhc2stbmFtZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtdGFzay1uYW1lL2ZpbmQtdGFzay1uYW1lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVV4QyxNQUFNLE9BQU8scUJBQXFCO0lBMEJoQyxZQUE2QixFQUFxQixFQUFtQixXQUE0QjtRQUFwRSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFtQixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUF6QmhGLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDM0MseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVqRCxjQUFTLEdBQUcsb0JBQW9CLENBQUM7UUFDakMsYUFBUSxHQUFHLGlEQUFpRCxDQUFDO1FBQzdELFdBQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFxQixJQUFJLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9E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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBtZXJnZU1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BlcnNvblJvbGV9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBUYXNrTmFtZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Rhc2stbmFtZS5tb2RlbCc7XG5pbXBvcnQgeyBUYXNrTmFtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YXNrLW5hbWUvdGFzay1uYW1lLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZmluZC10YXNrLW5hbWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC10YXNrLW5hbWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maW5kLXRhc2stbmFtZS5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIEZpbmRUYXNrTmFtZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpIHB1YmxpYyB0YXNrTmFtZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgdGFza05hbWVGaWVsZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgYm9sZFRpdGxlID0gJ0ZpbmQgdGhlIHRhc2sgbmFtZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJUaXRsZSA9ICdUeXBlIHRoZSBuYW1lIG9mIHRoZSB0YXNrIG5hbWUgYW5kIHNlbGVjdCB0aGVtLic7XG4gIEBJbnB1dCgpIHB1YmxpYyBkb21haW4gPSBQZXJzb25Sb2xlLkFMTDtcbiAgQElucHV0KCkgcHVibGljIGZpbmRUYXNrTmFtZUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRUYXNrTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc3VibWl0dGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGFzc2lnbmVkVXNlcj86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyQ29udGVudDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpc05vUmVzdWx0c1Nob3duOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIHNob3dVcGRhdGVkQ29sb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkVGFza05hbWVzOiBUYXNrTmFtZU1vZGVsW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ1lvdSBtdXN0IHNlbGVjdCBhIG5hbWUnO1xuICBASW5wdXQoKSBwdWJsaWMgaWRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlczogc3RyaW5nID0gJ0lBJztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcbiAgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGZpbmRUYXNrTmFtZUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHVibGljIGZpbHRlcmVkT3B0aW9uczogYW55W10gPSBbXTtcbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAxO1xuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgc2VhcmNoVGVybTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVhZG9ubHkgdGFza1NlcnZpY2U6IFRhc2tOYW1lU2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3ViKSB7XG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmRUYXNrTmFtZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKHRoaXMuc2VsZWN0ZWRUYXNrTmFtZSk7XG4gICAgdGhpcy5maW5kVGFza05hbWVHcm91cC5hZGRDb250cm9sKCdmaW5kVGFza05hbWVDb250cm9sJywgdGhpcy5maW5kVGFza05hbWVDb250cm9sKTtcbiAgICB0aGlzLnN1YiA9IHRoaXMuZmluZFRhc2tOYW1lQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbXSksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIHRhcCgoc2VhcmNoVGVybSkgPT4gdGhpcy5zZWFyY2hUZXJtID0gc2VhcmNoVGVybSksXG4gICAgICB0YXAoKHNlYXJjaFRlcm0pID0+IHR5cGVvZiBzZWFyY2hUZXJtID09PSAnc3RyaW5nJyA/IHRoaXMudGFza05hbWVTZWxlY3RlZC5lbWl0KCdudWxsJykgOiB2b2lkIDApLFxuICAgICAgZmlsdGVyKChzZWFyY2hUZXJtOiBzdHJpbmcpID0+IHNlYXJjaFRlcm0gJiYgc2VhcmNoVGVybS5sZW5ndGggPj0gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSxcbiAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuZ2V0VGFza05hbWUoKSksXG4gICAgKS5zdWJzY3JpYmUoKHRhc2tOYW1lTW9kZWw6IFRhc2tOYW1lTW9kZWxbXSkgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0YXNrTmFtZU1vZGVsID8gdGFza05hbWVNb2RlbCA6IFtdO1xuICAgICAgaWYgKHRoaXMuc2VhcmNoVGVybSkge1xuICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMuZmlsdGVyZWRPcHRpb25zLmZpbHRlcigodGFza1R5cGUpID0+IHRhc2tUeXBlLnRhc2tfdHlwZS50YXNrX3R5cGVfbmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGVybS50b0xvY2FsZUxvd2VyQ2FzZSgpKSkubWFwKHRhc2tUeXBlPT4gdGFza1R5cGUpO1xuICAgICAgfVxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGFza05hbWUoKTogT2JzZXJ2YWJsZTxUYXNrTmFtZU1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy50YXNrU2VydmljZS5nZXRUYXNrTmFtZSh0aGlzLnNlcnZpY2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZFRhc2tUeXBlTmFtZTogYW55KTogdm9pZCB7XG4gICAgaWYgKHNlbGVjdGVkVGFza1R5cGVOYW1lKSB7XG4gICAgICB0aGlzLnRhc2tOYW1lU2VsZWN0ZWQuZW1pdChzZWxlY3RlZFRhc2tUeXBlTmFtZSk7XG4gICAgICB0aGlzLmZpbmRUYXNrTmFtZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5nZXRUYXNrVHlwZU5hbWUoc2VsZWN0ZWRUYXNrVHlwZU5hbWUpLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VGFza1R5cGVOYW1lKHNlbGVjdGVkVGFza1R5cGU6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCFzZWxlY3RlZFRhc2tUeXBlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZFRhc2tUeXBlLnRhc2tfdHlwZS50YXNrX3R5cGVfbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMudGFza05hbWVGaWVsZENoYW5nZWQuZW1pdCgpO1xuICB9XG59XG4iLCI8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIiAqbmdJZj1cInRpdGxlICYmIHRpdGxlLmxlbmd0aFwiPlxuICA8c3BhbiBjbGFzcz1cImdvdnVrLWNhcHRpb24tbFwiPnt7dGl0bGV9fTwvc3Bhbj5cbiAge3tib2xkVGl0bGV9fVxuPC9oMT5cbjxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW2Zvcm1Hcm91cF09XCJmaW5kVGFza05hbWVHcm91cFwiXG4gICAgIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGZpbmRUYXNrTmFtZUdyb3VwLmdldCgnZmluZFRhc2tOYW1lQ29udHJvbCcpPy5pbnZhbGlkICYmIHN1Ym1pdHRlZH1cIj5cbiAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwic3ViLXRpdGxlLWhpbnRcIj5cbiAgICA8ZGl2IGlkPVwic3ViLXRpdGxlLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIiAqbmdJZj1cInN1YlRpdGxlICYmIHN1YlRpdGxlLmxlbmd0aFwiPlxuICAgICAge3tzdWJUaXRsZX19XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gaWQ9XCJ2YWxpZGF0aW9uLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaW5kVGFza05hbWVHcm91cCAmJiBmaW5kVGFza05hbWVHcm91cC5lcnJvcnNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+e3tmaW5kVGFza05hbWVHcm91cC5lcnJvcnMuZXJyb3IgPyBmaW5kVGFza05hbWVHcm91cC5lcnJvcnMuZXJyb3IgOiBlcnJvck1lc3NhZ2V9fVxuICAgIDwvc3Bhbj5cbiAgICA8aW5wdXQgaWQ9XCJpbnB1dFNlbGVjdFRhc2tOYW1le3tpZFZhbHVlfX1cIiB0eXBlPVwidGV4dFwiIGFyaWEtbGFiZWw9XCJzZWxlY3QgYSB0YXNrIG5hbWVcIlxuICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJmaW5kVGFza05hbWVDb250cm9sXCJcbiAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLW9uZS10aGlyZFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlckNvbnRlbnRcIlxuICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0KClcIj5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSBhdXRvQWN0aXZlRmlyc3RPcHRpb24gI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3Rpb25DaGFuZ2UoJGV2ZW50Lm9wdGlvbi52YWx1ZSlcIj5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydoaWRlLWF1dG9jb21wbGV0ZSc6ICFzaG93QXV0b2NvbXBsZXRlLCAnc2VsZWN0LW9wdGlvbic6IHNob3dVcGRhdGVkQ29sb3J9XCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXRUYXNrVHlwZU5hbWUob3B0aW9uKSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPG1hdC1vcHRpb24gW25nQ2xhc3NdPVwieydzZWxlY3Qtb3B0aW9uJzogc2hvd1VwZGF0ZWRDb2xvcn1cIiAqbmdJZj1cImlzTm9SZXN1bHRzU2hvd24gJiYgIWZpbHRlcmVkT3B0aW9ucy5sZW5ndGggJiYgc2hvd0F1dG9jb21wbGV0ZVwiPk5vIHJlc3VsdHMgZm91bmQ8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICA8L2ZpZWxkc2V0PlxuPC9kaXY+XG4iXX0=