@hmcts/rpx-xui-common-lib 1.8.7-fix-wrong-services → 1.8.7-generic-filter-clear-errors-on-destroy

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 (325) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +4626 -7107
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +33 -35
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +2 -8
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +14 -112
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +2 -12
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +4 -65
  10. package/esm2015/lib/components/due-date/due-date.component.js +2 -97
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +7 -21
  12. package/esm2015/lib/components/find-location/find-location.component.js +46 -140
  13. package/esm2015/lib/components/find-person/find-person.component.js +14 -154
  14. package/esm2015/lib/components/find-service/find-service.component.js +97 -43
  15. package/esm2015/lib/components/find-task-name/find-task-name.component.js +97 -0
  16. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +11 -55
  17. package/esm2015/lib/components/generic-filter/generic-filter.component.js +286 -294
  18. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +3 -18
  19. package/esm2015/lib/components/index.js +2 -7
  20. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +2 -22
  21. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +2 -21
  22. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +3 -12
  23. package/esm2015/lib/components/pagination/pagination.component.js +2 -24
  24. package/esm2015/lib/components/public_api.js +37 -33
  25. package/esm2015/lib/components/search-judicials/search-judicials.component.js +11 -134
  26. package/esm2015/lib/components/search-location/search-location.component.js +64 -223
  27. package/esm2015/lib/components/search-service/search-service.component.js +28 -46
  28. package/esm2015/lib/components/search-venue/search-venue.component.js +11 -134
  29. package/esm2015/lib/components/selected-case/selected-case.component.js +20 -175
  30. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +3 -41
  31. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +4 -55
  32. package/esm2015/lib/components/service-message/service-message.component.js +2 -20
  33. package/esm2015/lib/components/service-messages/service-messages.component.js +7 -65
  34. package/esm2015/lib/components/share-case/share-case.component.js +23 -169
  35. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +4 -37
  36. package/esm2015/lib/components/tab/tab.component.js +2 -26
  37. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +2 -17
  38. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +2 -8
  39. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +2 -8
  40. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +2 -12
  41. package/esm2015/lib/components/user-details/user-details.component.js +2 -39
  42. package/esm2015/lib/components/user-list/user-list.component.js +2 -32
  43. package/esm2015/lib/components/user-select/user-select.component.js +5 -52
  44. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +3 -56
  45. package/esm2015/lib/directives/index.js +2 -7
  46. package/esm2015/lib/directives/let/let.directive.js +1 -39
  47. package/esm2015/lib/directives/public-api.js +3 -8
  48. package/esm2015/lib/exui-common-lib.module.js +11 -10
  49. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +2 -22
  50. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +44 -16
  51. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +4 -54
  52. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +2 -14
  53. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +2 -17
  54. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +2 -24
  55. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +2 -16
  56. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +4 -24
  57. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +4 -13
  58. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +6 -24
  59. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +2 -13
  60. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +3 -22
  61. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +2 -32
  62. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +2 -18
  63. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +2 -0
  64. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +13 -25
  65. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +2 -44
  66. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +2 -16
  67. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +3 -37
  68. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +2 -23
  69. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +2 -22
  70. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +3 -30
  71. package/esm2015/lib/gov-ui/components/index.js +2 -7
  72. package/esm2015/lib/gov-ui/components/public_api.js +22 -7
  73. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +1 -22
  74. package/esm2015/lib/gov-ui/gov-ui.service.js +2 -8
  75. package/esm2015/lib/gov-ui/index.js +2 -7
  76. package/esm2015/lib/gov-ui/models/checkboxes-model.js +2 -22
  77. package/esm2015/lib/gov-ui/models/error-messages-model.js +2 -16
  78. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +2 -36
  79. package/esm2015/lib/gov-ui/models/index.js +2 -7
  80. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +2 -24
  81. package/esm2015/lib/gov-ui/models/public_api.js +4 -10
  82. package/esm2015/lib/gov-ui/models/radio-buttons.model.js +2 -0
  83. package/esm2015/lib/gov-ui/public_api.js +5 -9
  84. package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +4 -14
  85. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +12 -48
  86. package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +5 -24
  87. package/esm2015/lib/gov-ui/validators/date.validator.js +3 -20
  88. package/esm2015/lib/gov-ui/validators/index.js +2 -7
  89. package/esm2015/lib/gov-ui/validators/public_api.js +4 -9
  90. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +3 -15
  91. package/esm2015/lib/models/case-share.model.js +7 -33
  92. package/esm2015/lib/models/contact-details.model.js +7 -31
  93. package/esm2015/lib/models/due-date.model.js +7 -14
  94. package/esm2015/lib/models/feature-user.js +1 -16
  95. package/esm2015/lib/models/filter.model.js +1 -124
  96. package/esm2015/lib/models/idle-config.model.js +2 -20
  97. package/esm2015/lib/models/index.js +16 -20
  98. package/esm2015/lib/models/location.model.js +7 -129
  99. package/esm2015/lib/models/pagination.model.js +2 -18
  100. package/esm2015/lib/models/person.model.js +19 -96
  101. package/esm2015/lib/models/public_api.js +6 -11
  102. package/esm2015/lib/models/search-options.model.js +2 -22
  103. package/esm2015/lib/models/task-name.model.js +2 -0
  104. package/esm2015/lib/models/tcDocument.model.js +2 -18
  105. package/esm2015/lib/models/timeout-notification.model.js +2 -18
  106. package/esm2015/lib/models/user-details.model.js +2 -22
  107. package/esm2015/lib/models/user.model.js +2 -25
  108. package/esm2015/lib/pipes/capitalize/capitalize.pipe.js +11 -0
  109. package/esm2015/lib/pipes/index.js +2 -0
  110. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +11 -96
  111. package/esm2015/lib/services/cookie/cookie.service.js +8 -71
  112. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +4 -43
  113. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +2 -28
  114. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +12 -94
  115. package/esm2015/lib/services/filter/filter.service.js +14 -69
  116. package/esm2015/lib/services/find-person/find-person.service.js +17 -125
  117. package/esm2015/lib/services/google-analytics/google-analytics.service.js +8 -63
  118. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +10 -64
  119. package/esm2015/lib/services/index.js +2 -7
  120. package/esm2015/lib/services/loading/loading.service.js +2 -41
  121. package/esm2015/lib/services/locations/location.service.js +14 -32
  122. package/esm2015/lib/services/manage-session/manage-session.services.js +10 -63
  123. package/esm2015/lib/services/public-api.js +14 -18
  124. package/esm2015/lib/services/ref-data/index.js +4 -0
  125. package/esm2015/lib/services/ref-data/models/ref-data-htmcs-service.model.js +2 -0
  126. package/esm2015/lib/services/ref-data/models/ref-data-region.model.js +2 -0
  127. package/esm2015/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.js +2 -0
  128. package/esm2015/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.js +34 -0
  129. package/esm2015/lib/services/ref-data/ref-data.service.js +35 -0
  130. package/esm2015/lib/services/role-guard/role.guard.js +17 -55
  131. package/esm2015/lib/services/role-guard/role.service.js +7 -26
  132. package/esm2015/lib/services/storage/session-storage/session-storage.service.js +41 -0
  133. package/esm2015/lib/services/task-name/task-name.service.js +37 -0
  134. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +16 -78
  135. package/esm2015/lib/window.js +1 -10
  136. package/esm2015/public-api.js +9 -13
  137. package/fesm2015/hmcts-rpx-xui-common-lib.js +3941 -5799
  138. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  139. package/hmcts-rpx-xui-common-lib.d.ts +31 -28
  140. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  141. package/lib/components/checkbox-list/checkbox-list.component.d.ts +6 -5
  142. package/lib/components/due-date/due-date.component.d.ts +4 -4
  143. package/lib/components/find-location/find-location.component.d.ts +13 -8
  144. package/lib/components/find-person/find-person.component.d.ts +1 -1
  145. package/lib/components/find-service/find-service.component.d.ts +21 -9
  146. package/lib/components/find-task-name/find-task-name.component.d.ts +41 -0
  147. package/lib/components/generic-filter/generic-filter-utils.d.ts +2 -5
  148. package/lib/components/generic-filter/generic-filter.component.d.ts +20 -6
  149. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
  150. package/lib/components/invite-user-form/invite-user-form.component.d.ts +2 -2
  151. package/lib/components/public_api.d.ts +9 -0
  152. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  153. package/lib/components/search-location/search-location.component.d.ts +20 -20
  154. package/lib/components/search-service/search-service.component.d.ts +11 -9
  155. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  156. package/lib/components/user-list/user-list.component.d.ts +1 -1
  157. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  158. package/lib/directives/let/let.directive.d.ts +1 -1
  159. package/lib/exui-common-lib.module.d.ts +4 -3
  160. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +14 -5
  161. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +1 -2
  162. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +1 -0
  163. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +2 -2
  164. package/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.d.ts +7 -0
  165. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +4 -2
  166. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  167. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  168. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +3 -3
  169. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  170. package/lib/gov-ui/components/public_api.d.ts +20 -0
  171. package/lib/gov-ui/models/checkboxes-model.d.ts +4 -7
  172. package/lib/gov-ui/models/gov-ui-config-model.d.ts +2 -0
  173. package/lib/gov-ui/models/public_api.d.ts +0 -1
  174. package/lib/gov-ui/models/radio-buttons.model.d.ts +9 -0
  175. package/lib/gov-ui/public_api.d.ts +1 -0
  176. package/lib/models/filter.model.d.ts +38 -8
  177. package/lib/models/index.d.ts +1 -0
  178. package/lib/models/location.model.d.ts +8 -8
  179. package/lib/models/task-name.model.d.ts +4 -0
  180. package/lib/pipes/capitalize/capitalize.pipe.d.ts +4 -0
  181. package/lib/pipes/index.d.ts +1 -0
  182. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  183. package/lib/services/filter/filter.service.d.ts +1 -0
  184. package/lib/services/find-person/find-person.service.d.ts +1 -1
  185. package/lib/services/loading/loading.service.d.ts +2 -2
  186. package/lib/services/locations/location.service.d.ts +1 -1
  187. package/lib/services/public-api.d.ts +1 -0
  188. package/lib/services/ref-data/index.d.ts +3 -0
  189. package/lib/services/ref-data/models/ref-data-htmcs-service.model.d.ts +13 -0
  190. package/lib/services/ref-data/models/ref-data-region.model.d.ts +4 -0
  191. package/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.d.ts +8 -0
  192. package/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.d.ts +15 -0
  193. package/lib/services/ref-data/ref-data.service.d.ts +14 -0
  194. package/lib/services/role-guard/role.guard.d.ts +2 -1
  195. package/lib/services/role-guard/role.service.d.ts +4 -2
  196. package/lib/services/task-name/task-name.service.d.ts +14 -0
  197. package/lib/window.d.ts +2 -2
  198. package/package.json +6 -16
  199. package/public-api.d.ts +1 -0
  200. package/esm2015/lib/gov-ui/models/banner-data-model.js +0 -16
  201. package/esm2015/lib/services/session-storage/session-storage.service.js +0 -55
  202. package/esm5/hmcts-rpx-xui-common-lib.js +0 -75
  203. package/esm5/lib/components/accessibility/accessibility.component.js +0 -22
  204. package/esm5/lib/components/checkbox-list/checkbox-list.component.js +0 -391
  205. package/esm5/lib/components/contact-details/contact-details.component.js +0 -29
  206. package/esm5/lib/components/cookie-banner/cookie-banner.component.js +0 -154
  207. package/esm5/lib/components/due-date/due-date.component.js +0 -254
  208. package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +0 -45
  209. package/esm5/lib/components/find-location/find-location.component.js +0 -293
  210. package/esm5/lib/components/find-person/find-person.component.js +0 -287
  211. package/esm5/lib/components/find-service/find-service.component.js +0 -64
  212. package/esm5/lib/components/generic-filter/generic-filter-utils.js +0 -66
  213. package/esm5/lib/components/generic-filter/generic-filter.component.js +0 -840
  214. package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +0 -47
  215. package/esm5/lib/components/index.js +0 -7
  216. package/esm5/lib/components/invite-user-form/invite-user-form.component.js +0 -54
  217. package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +0 -46
  218. package/esm5/lib/components/loading-spinner/loading-spinner.component.js +0 -29
  219. package/esm5/lib/components/pagination/pagination.component.js +0 -58
  220. package/esm5/lib/components/public_api.js +0 -33
  221. package/esm5/lib/components/search-judicials/search-judicials.component.js +0 -291
  222. package/esm5/lib/components/search-location/search-location.component.js +0 -329
  223. package/esm5/lib/components/search-service/search-service.component.js +0 -68
  224. package/esm5/lib/components/search-venue/search-venue.component.js +0 -290
  225. package/esm5/lib/components/selected-case/selected-case.component.js +0 -424
  226. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +0 -84
  227. package/esm5/lib/components/selected-case-list/selected-case-list.component.js +0 -115
  228. package/esm5/lib/components/service-message/service-message.component.js +0 -46
  229. package/esm5/lib/components/service-messages/service-messages.component.js +0 -122
  230. package/esm5/lib/components/share-case/share-case.component.js +0 -435
  231. package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +0 -70
  232. package/esm5/lib/components/tab/tab.component.js +0 -51
  233. package/esm5/lib/components/tc-confirm/tc-confirm.component.js +0 -42
  234. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +0 -22
  235. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +0 -22
  236. package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +0 -29
  237. package/esm5/lib/components/user-details/user-details.component.js +0 -92
  238. package/esm5/lib/components/user-list/user-list.component.js +0 -76
  239. package/esm5/lib/components/user-select/user-select.component.js +0 -131
  240. package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +0 -104
  241. package/esm5/lib/directives/index.js +0 -7
  242. package/esm5/lib/directives/let/let.directive.js +0 -78
  243. package/esm5/lib/directives/public-api.js +0 -8
  244. package/esm5/lib/exui-common-lib.module.js +0 -167
  245. package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +0 -56
  246. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +0 -36
  247. package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +0 -135
  248. package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +0 -37
  249. package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -49
  250. package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +0 -65
  251. package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +0 -40
  252. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +0 -66
  253. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +0 -34
  254. package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +0 -67
  255. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +0 -36
  256. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +0 -52
  257. package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +0 -77
  258. package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +0 -50
  259. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +0 -38
  260. package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +0 -108
  261. package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +0 -40
  262. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +0 -87
  263. package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +0 -51
  264. package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +0 -49
  265. package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +0 -46
  266. package/esm5/lib/gov-ui/components/index.js +0 -7
  267. package/esm5/lib/gov-ui/components/public_api.js +0 -7
  268. package/esm5/lib/gov-ui/directives/remove-host.directive.js +0 -52
  269. package/esm5/lib/gov-ui/gov-ui.service.js +0 -22
  270. package/esm5/lib/gov-ui/index.js +0 -7
  271. package/esm5/lib/gov-ui/models/banner-data-model.js +0 -16
  272. package/esm5/lib/gov-ui/models/checkboxes-model.js +0 -22
  273. package/esm5/lib/gov-ui/models/error-messages-model.js +0 -16
  274. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +0 -36
  275. package/esm5/lib/gov-ui/models/index.js +0 -7
  276. package/esm5/lib/gov-ui/models/isession-storage.interface.js +0 -24
  277. package/esm5/lib/gov-ui/models/public_api.js +0 -13
  278. package/esm5/lib/gov-ui/public_api.js +0 -12
  279. package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +0 -57
  280. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +0 -58
  281. package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +0 -38
  282. package/esm5/lib/gov-ui/validators/date.validator.js +0 -32
  283. package/esm5/lib/gov-ui/validators/index.js +0 -7
  284. package/esm5/lib/gov-ui/validators/public_api.js +0 -12
  285. package/esm5/lib/gov-ui/validators/radio-group.validator.js +0 -27
  286. package/esm5/lib/models/case-share.model.js +0 -33
  287. package/esm5/lib/models/contact-details.model.js +0 -31
  288. package/esm5/lib/models/due-date.model.js +0 -15
  289. package/esm5/lib/models/feature-user.js +0 -28
  290. package/esm5/lib/models/filter.model.js +0 -130
  291. package/esm5/lib/models/idle-config.model.js +0 -20
  292. package/esm5/lib/models/index.js +0 -20
  293. package/esm5/lib/models/location.model.js +0 -129
  294. package/esm5/lib/models/pagination.model.js +0 -18
  295. package/esm5/lib/models/person.model.js +0 -96
  296. package/esm5/lib/models/public_api.js +0 -11
  297. package/esm5/lib/models/search-options.model.js +0 -22
  298. package/esm5/lib/models/tcDocument.model.js +0 -18
  299. package/esm5/lib/models/timeout-notification.model.js +0 -18
  300. package/esm5/lib/models/user-details.model.js +0 -22
  301. package/esm5/lib/models/user.model.js +0 -25
  302. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +0 -313
  303. package/esm5/lib/services/cookie/cookie.service.js +0 -136
  304. package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +0 -89
  305. package/esm5/lib/services/feature-toggle/feature-toggle.service.js +0 -90
  306. package/esm5/lib/services/feature-toggle/launch-darkly.service.js +0 -187
  307. package/esm5/lib/services/filter/filter.service.js +0 -190
  308. package/esm5/lib/services/find-person/find-person.service.js +0 -246
  309. package/esm5/lib/services/google-analytics/google-analytics.service.js +0 -128
  310. package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +0 -135
  311. package/esm5/lib/services/index.js +0 -7
  312. package/esm5/lib/services/loading/loading.service.js +0 -109
  313. package/esm5/lib/services/locations/location.service.js +0 -86
  314. package/esm5/lib/services/manage-session/manage-session.services.js +0 -111
  315. package/esm5/lib/services/public-api.js +0 -21
  316. package/esm5/lib/services/role-guard/role.guard.js +0 -81
  317. package/esm5/lib/services/role-guard/role.service.js +0 -45
  318. package/esm5/lib/services/session-storage/session-storage.service.js +0 -96
  319. package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +0 -190
  320. package/esm5/lib/window.js +0 -13
  321. package/esm5/public-api.js +0 -16
  322. package/fesm5/hmcts-rpx-xui-common-lib.js +0 -8157
  323. package/fesm5/hmcts-rpx-xui-common-lib.js.map +0 -1
  324. package/lib/gov-ui/models/banner-data-model.d.ts +0 -4
  325. /package/lib/services/{session-storage → storage/session-storage}/session-storage.service.d.ts +0 -0
@@ -1,293 +1,134 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/search-location/search-location.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
7
- import { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';
8
- import { debounceTime, filter, map, mergeMap, tap } from 'rxjs/operators';
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormControl, FormGroup } from '@angular/forms';
3
+ import { iif, of } from 'rxjs';
4
+ import { debounceTime, map, switchMap, tap } from 'rxjs/operators';
9
5
  import { BookingCheckType } from '../../models';
6
+ import { RefDataService } from '../../services';
10
7
  import { LocationService } from '../../services/locations/location.service';
11
- import { SessionStorageService } from '../../services/session-storage/session-storage.service';
8
+ import { SessionStorageService } from '../../services/storage/session-storage/session-storage.service';
12
9
  export class SearchLocationComponent {
13
- /**
14
- * @param {?} locationService
15
- * @param {?} sessionStorageService
16
- * @param {?} fb
17
- * @param {?} cd
18
- */
19
- constructor(locationService, sessionStorageService, fb, cd) {
10
+ constructor(locationService, sessionStorageService, refDataService) {
20
11
  this.locationService = locationService;
21
12
  this.sessionStorageService = sessionStorageService;
22
- this.fb = fb;
23
- this.cd = cd;
13
+ this.refDataService = refDataService;
24
14
  this.disabled = null;
25
15
  this.singleMode = false;
26
16
  this.locationType = '';
27
17
  this.serviceIds = '';
28
18
  this.submitted = true;
19
+ this.selectedLocations = [];
20
+ this.propertyNameFilter = 'site_name';
29
21
  this.delay = 500;
30
- this.showAutocomplete = false;
31
- this.locations = [];
32
22
  this.locationSelected = new EventEmitter();
33
- this.locationInputChanged = new EventEmitter();
23
+ this.locationTermSearchInputChanged = new EventEmitter();
34
24
  this.searchLocationChanged = new EventEmitter();
25
+ this.searchTermFormControl = new FormControl('');
35
26
  this.minSearchCharacters = 3;
36
27
  this.term = '';
37
- this.pSelectedLocations = [];
38
28
  this.pReset = true;
39
- this.form = this.fb.group({
40
- searchTerm: ['']
41
- });
29
+ this.debounceTimeInput = 300;
42
30
  }
43
- /**
44
- * @return {?}
45
- */
46
31
  get reset() {
47
32
  return this.pReset;
48
33
  }
49
- /**
50
- * @param {?} value
51
- * @return {?}
52
- */
53
34
  set reset(value) {
54
35
  this.pReset = value;
55
36
  this.resetSearchTerm();
56
37
  }
57
- /**
58
- * @return {?}
59
- */
60
- get selectedLocations() {
61
- return this.pSelectedLocations;
62
- }
63
- /**
64
- * @param {?} value
65
- * @return {?}
66
- */
67
- set selectedLocations(value) {
68
- this.pSelectedLocations = value;
69
- }
70
- /**
71
- * @return {?}
72
- */
73
38
  ngOnInit() {
39
+ const searchInputChanges$ = this.searchTermFormControl.valueChanges
40
+ .pipe(tap((term) => this.locationTermSearchInputChanged.emit(term)));
41
+ // if servicesField exists, then we should filter locations by the service codes
42
+ if (this.field && this.field.servicesField) {
43
+ this.filteredList$ = searchInputChanges$.pipe(switchMap((term) => {
44
+ var _a;
45
+ return iif(
46
+ // Seems more responsive to do length 0 if locationsByServiceCodes are cached
47
+ () => (!!term && term.length >= 0), this.refDataService.getLocationsByServiceCodes(((_a = this.form.get(this.field.servicesField)) === null || _a === void 0 ? void 0 : _a.value).map((service) => service.key)).pipe(
48
+ // Filter locations by the search input term and the chosen property name
49
+ map((locations) => locations
50
+ .filter((location) => location[this.propertyNameFilter].toLowerCase().includes(term.toLowerCase()))),
51
+ // Filter out locations that are already selected
52
+ map((locations) => this.filterUnselectedLocations(locations, this.selectedLocations, this.singleMode)),
53
+ // Filter out duplicate locations (by propertyNameFilter)
54
+ map((locations) => locations.filter((location, index, array) => index === array.findIndex((item) => item[this.propertyNameFilter] === location[this.propertyNameFilter])))),
55
+ // Returns false if the search term is empty to not show the autocomplete field i.e. ngIf should be false
56
+ of(false));
57
+ }));
58
+ }
59
+ else {
60
+ this.filteredList$ = searchInputChanges$.pipe(
61
+ // Debounce needed to prevent multiple API calls being made
62
+ debounceTime(this.debounceTimeInput), switchMap((term) => iif(() => (!!term && term.length >= this.minSearchCharacters), this.getLocations(term).pipe(map((locations) => this.filterUnselectedLocations(locations, this.selectedLocations, this.singleMode))), of(false))));
63
+ }
74
64
  if (this.singleMode && this.selectedLocations.length > 0) {
75
- /** @type {?} */
76
65
  const location = this.selectedLocations[0];
77
- this.form.controls.searchTerm.patchValue(location.site_name, { emitEvent: false, onlySelf: true });
66
+ this.searchTermFormControl.patchValue(location[this.propertyNameFilter], { emitEvent: false, onlySelf: true });
78
67
  }
79
- this.search();
80
- }
81
- /**
82
- * @param {?} term
83
- * @return {?}
84
- */
85
- filter(term) {
86
- this.getLocations(term).pipe(map((/**
87
- * @param {?} locations
88
- * @return {?}
89
- */
90
- (locations) => this.removeSelectedLocations(locations))));
91
68
  }
92
- /**
93
- * @param {?} location
94
- * @return {?}
95
- */
96
- onSelectionChange(location) {
97
- this.form.controls.searchTerm.patchValue(location.site_name, { emitEvent: false, onlySelf: true });
69
+ onSelectedLocation(location) {
70
+ this.searchTermFormControl.patchValue(location[this.propertyNameFilter], { emitEvent: false, onlySelf: true });
98
71
  this.locationSelected.emit(location);
99
72
  }
100
- /**
101
- * @return {?}
102
- */
103
- search() {
104
- this.form.controls.searchTerm.valueChanges
105
- .pipe(tap((/**
106
- * @param {?} term
107
- * @return {?}
108
- */
109
- (term) => this.locationInputChanged.next(term))), tap((/**
110
- * @return {?}
111
- */
112
- () => this.locations = [])), tap((/**
113
- * @param {?} term
114
- * @return {?}
115
- */
116
- (term) => this.term = term)), filter((/**
117
- * @param {?} term
118
- * @return {?}
119
- */
120
- term => !!term && term.length >= this.minSearchCharacters)), debounceTime(this.delay), mergeMap((/**
121
- * @param {?} value
122
- * @return {?}
123
- */
124
- value => this.getLocations(value))), map((/**
125
- * @param {?} locations
126
- * @return {?}
127
- */
128
- (locations) => this.removeSelectedLocations(locations)))).subscribe((/**
129
- * @param {?} locations
130
- * @return {?}
131
- */
132
- locations => {
133
- this.locations = locations;
134
- this.cd.markForCheck();
135
- if (locations.length === 1 && this.term === locations[0].site_name && !this.singleMode) {
136
- this.locationSelected.emit(locations[0]);
137
- this.showAutocomplete = false;
138
- return;
139
- }
140
- this.showAutocomplete = true;
141
- }));
142
- }
143
- /**
144
- * @return {?}
145
- */
146
73
  onInput() {
147
74
  this.searchLocationChanged.emit();
148
75
  }
149
- /**
150
- * @param {?} term
151
- * @return {?}
152
- */
153
76
  getLocations(term) {
154
- /** @type {?} */
155
77
  let userLocations;
156
- /** @type {?} */
157
- let bookingLocations;
158
78
  // Booking type info - can create more
159
79
  // NO_CHECK - All work - Do not filter out locations - Default assumption
160
- // ONLY_BOOKINGS - My work - Try to only show base locations/booking locations
80
+ // BOOKINGS_AND_BASE - My work - Try to only show base locations/regions
161
81
  // POSSIBLE_BOOKINGS - Create booking screen - Show only potential bookings
162
82
  if (this.bookingCheck === BookingCheckType.BOOKINGS_AND_BASE) {
163
83
  userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations'));
164
- bookingLocations = JSON.parse(this.sessionStorageService.getItem('bookingLocations'));
165
84
  }
166
85
  else if (this.bookingCheck === BookingCheckType.POSSIBLE_BOOKINGS) {
167
86
  this.serviceIds = this.serviceIds && this.serviceIds.length ? this.serviceIds : JSON.parse(this.sessionStorageService.getItem('bookableServices'));
87
+ userLocations = JSON.parse(this.sessionStorageService.getItem('bookableUserLocations'));
168
88
  }
169
- return this.locationService.getAllLocations(this.serviceIds, this.locationType, term, userLocations, bookingLocations);
89
+ // get all locations will resolve filter setting using objects above
90
+ // if no userLocations, NO_CHECK
91
+ // if just getting all substantive user locations, BOOKINGS_AND_BASE
92
+ // fee paid user locations are used for POSSIBLE_BOOKINGS
93
+ return this.locationService.getAllLocations(this.serviceIds, this.locationType, term, userLocations);
170
94
  }
171
- /**
172
- * @return {?}
173
- */
174
95
  resetSearchTerm() {
175
- this.form.controls.searchTerm.patchValue('', { emitEvent: false, onlySelf: true });
96
+ this.searchTermFormControl.setValue('');
176
97
  }
177
- /**
178
- * @private
179
- * @param {?} locations
180
- * @return {?}
181
- */
182
- removeSelectedLocations(locations) {
183
- if (this.singleMode) {
98
+ filterUnselectedLocations(locations, selectedLocations, singleMode) {
99
+ if (singleMode) {
184
100
  return locations;
185
101
  }
186
- return locations.filter((/**
187
- * @param {?} location
188
- * @return {?}
189
- */
190
- location => !this.selectedLocations.map((/**
191
- * @param {?} selectedLocation
192
- * @return {?}
193
- */
194
- selectedLocation => selectedLocation.epimms_id)).includes(location.epimms_id) && location.site_name));
102
+ return locations.filter(location => !selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(location.epimms_id) && location[this.propertyNameFilter]);
195
103
  }
196
104
  }
197
105
  SearchLocationComponent.decorators = [
198
106
  { type: Component, args: [{
199
107
  selector: 'exui-search-location',
200
- template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputLocationSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchLocation\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of locations\"\n (onSelectionChange)=\"onSelectionChange(location)\">\n {{ location.site_name }}\n </mat-option>\n <mat-option *ngIf=\"!locations.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
201
- styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
202
- }] }
108
+ template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputLocationSearch\"\n (input)=\"onInput()\"\n [formControl]=\"searchTermFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <ng-container *ngIf=\"filteredList$ | async as filteredList\">\n <ng-container *ngIf=\"filteredList && filteredList.length >= 0\">\n <mat-option *ngFor=\"let location of filteredList\" (onSelectionChange)=\"onSelectedLocation(location)\">\n {{ location[propertyNameFilter] }}\n </mat-option>\n <mat-option *ngIf=\"filteredList.length === 0\">No results found</mat-option>\n </ng-container>\n </ng-container>\n </mat-autocomplete>\n</div>\n",
109
+ styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{display:inline-block;margin-right:4px;width:calc(100% - 4px)}.autocomplete__input{line-height:24px;font-size:19px}"]
110
+ },] }
203
111
  ];
204
- /** @nocollapse */
205
112
  SearchLocationComponent.ctorParameters = () => [
206
113
  { type: LocationService },
207
114
  { type: SessionStorageService },
208
- { type: FormBuilder },
209
- { type: ChangeDetectorRef }
115
+ { type: RefDataService }
210
116
  ];
211
117
  SearchLocationComponent.propDecorators = {
212
- control: [{ type: Input }],
118
+ form: [{ type: Input }],
119
+ field: [{ type: Input }],
213
120
  disabled: [{ type: Input }],
214
121
  singleMode: [{ type: Input }],
215
122
  locationType: [{ type: Input }],
216
123
  serviceIds: [{ type: Input }],
217
124
  submitted: [{ type: Input }],
218
- delay: [{ type: Input }],
219
- form: [{ type: Input }],
220
- showAutocomplete: [{ type: Input }],
221
- locations: [{ type: Input }],
222
125
  bookingCheck: [{ type: Input }],
126
+ selectedLocations: [{ type: Input }],
127
+ propertyNameFilter: [{ type: Input }],
128
+ delay: [{ type: Input }],
223
129
  locationSelected: [{ type: Output }],
224
- locationInputChanged: [{ type: Output }],
130
+ locationTermSearchInputChanged: [{ type: Output }],
225
131
  searchLocationChanged: [{ type: Output }],
226
- reset: [{ type: Input }],
227
- selectedLocations: [{ type: Input }]
132
+ reset: [{ type: Input }]
228
133
  };
229
- if (false) {
230
- /** @type {?} */
231
- SearchLocationComponent.prototype.control;
232
- /** @type {?} */
233
- SearchLocationComponent.prototype.disabled;
234
- /** @type {?} */
235
- SearchLocationComponent.prototype.singleMode;
236
- /** @type {?} */
237
- SearchLocationComponent.prototype.locationType;
238
- /** @type {?} */
239
- SearchLocationComponent.prototype.serviceIds;
240
- /** @type {?} */
241
- SearchLocationComponent.prototype.submitted;
242
- /** @type {?} */
243
- SearchLocationComponent.prototype.delay;
244
- /** @type {?} */
245
- SearchLocationComponent.prototype.form;
246
- /** @type {?} */
247
- SearchLocationComponent.prototype.showAutocomplete;
248
- /** @type {?} */
249
- SearchLocationComponent.prototype.locations;
250
- /** @type {?} */
251
- SearchLocationComponent.prototype.bookingCheck;
252
- /** @type {?} */
253
- SearchLocationComponent.prototype.locationSelected;
254
- /** @type {?} */
255
- SearchLocationComponent.prototype.locationInputChanged;
256
- /** @type {?} */
257
- SearchLocationComponent.prototype.searchLocationChanged;
258
- /** @type {?} */
259
- SearchLocationComponent.prototype.minSearchCharacters;
260
- /** @type {?} */
261
- SearchLocationComponent.prototype.term;
262
- /**
263
- * @type {?}
264
- * @private
265
- */
266
- SearchLocationComponent.prototype.pSelectedLocations;
267
- /**
268
- * @type {?}
269
- * @private
270
- */
271
- SearchLocationComponent.prototype.pReset;
272
- /**
273
- * @type {?}
274
- * @private
275
- */
276
- SearchLocationComponent.prototype.locationService;
277
- /**
278
- * @type {?}
279
- * @private
280
- */
281
- SearchLocationComponent.prototype.sessionStorageService;
282
- /**
283
- * @type {?}
284
- * @private
285
- */
286
- SearchLocationComponent.prototype.fb;
287
- /**
288
- * @type {?}
289
- * @private
290
- */
291
- SearchLocationComponent.prototype.cd;
292
- }
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWFyY2gtbG9jYXRpb24vc2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQXdCLE1BQU0sY0FBYyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQU8vRixNQUFNLE9BQU8sdUJBQXVCOzs7Ozs7O0lBb0JsQyxZQUE2QixlQUFnQyxFQUFtQixxQkFBNEMsRUFBbUIsRUFBZSxFQUFtQixFQUFxQjtRQUF6SyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBbUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBbEJ0TCxhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBQzNCLFVBQUss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QUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQzNJLENBQUM7SUFDSixDQUFDOzs7WUE1SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLGt2QkFBK0M7O2FBRWhEOzs7O1lBUE8sZUFBZTtZQUNkLHFCQUFxQjtZQU5MLFdBQVc7WUFENUIsaUJBQWlCOzs7c0JBZXRCLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7eUJBQ0wsS0FBSzt3QkFDTCxLQUFLO29CQUNMLEtBQUs7bUJBQ0wsS0FBSzsrQkFDTCxLQUFLO3dCQUNMLEtBQUs7MkJBQ0wsS0FBSzsrQkFDTCxNQUFNO21DQUNOLE1BQU07b0NBQ04sTUFBTTtvQkFnQk4sS0FBSztnQ0FVTCxLQUFLOzs7O0lBdkNOLDBDQUF5Qzs7SUFDekMsMkNBQXlDOztJQUN6Qyw2Q0FBNEM7O0lBQzVDLCtDQUEwQzs7SUFDMUMsNkNBQXdDOztJQUN4Qyw0Q0FBMkM7O0lBQzNDLHdDQUFxQzs7SUFDckMsdUNBQWdDOztJQUNoQyxtREFBa0Q7O0lBQ2xELDRDQUF3RDs7SUFDeEQsK0NBQStDOztJQUMvQyxtREFBOEU7O0lBQzlFLHVEQUF5Rjs7SUFDekYsd0RBQXNGOztJQUN0RixzREFBd0M7O0lBQ3hDLHVDQUF5Qjs7Ozs7SUFDekIscURBQXVDOzs7OztJQUN2Qyx5Q0FBK0I7Ozs7O0lBRW5CLGtEQUFpRDs7Ozs7SUFBRSx3REFBNkQ7Ozs7O0lBQUUscUNBQWdDOzs7OztJQUFFLHFDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIG1lcmdlTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtCb29raW5nQ2hlY2tUeXBlLCBMb2NhdGlvbkJ5RVBJTU1TTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYXRpb25zL2xvY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXh1aS1zZWFyY2gtbG9jYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoTG9jYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwdWJsaWMgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgc2luZ2xlTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbG9jYXRpb25UeXBlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHNlcnZpY2VJZHM6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc3VibWl0dGVkPzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBkZWxheT86IG51bWJlciA9IDUwMDtcbiAgQElucHV0KCkgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGxvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGJvb2tpbmdDaGVjazogQm9va2luZ0NoZWNrVHlwZTtcbiAgQE91dHB1dCgpIHB1YmxpYyBsb2NhdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxMb2NhdGlvbkJ5RVBJTU1TTW9kZWw+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25JbnB1dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VhcmNoTG9jYXRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSBtaW5TZWFyY2hDaGFyYWN0ZXJzID0gMztcbiAgcHVibGljIHRlcm06IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIHBTZWxlY3RlZExvY2F0aW9uczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBwUmVzZXQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb25TZXJ2aWNlOiBMb2NhdGlvblNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgc2VhcmNoVGVybTogWycnXVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCByZXNldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wUmVzZXQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlc2V0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5wUmVzZXQgPSB2YWx1ZTtcbiAgICB0aGlzLnJlc2V0U2VhcmNoVGVybSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZExvY2F0aW9ucygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMucFNlbGVjdGVkTG9jYXRpb25zO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZExvY2F0aW9ucyh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLnBTZWxlY3RlZExvY2F0aW9ucyA9IHZhbHVlO1xuXG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2luZ2xlTW9kZSAmJiB0aGlzLnNlbGVjdGVkTG9jYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5zZWxlY3RlZExvY2F0aW9uc1swXTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9scy5zZWFyY2hUZXJtLnBhdGNoVmFsdWUobG9jYXRpb24uc2l0ZV9uYW1lLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2goKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXIodGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5nZXRMb2NhdGlvbnModGVybSkucGlwZShcbiAgICAgIG1hcCgobG9jYXRpb25zKSA9PiB0aGlzLnJlbW92ZVNlbGVjdGVkTG9jYXRpb25zKGxvY2F0aW9ucylcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlKGxvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0uY29udHJvbHMuc2VhcmNoVGVybS5wYXRjaFZhbHVlKGxvY2F0aW9uLnNpdGVfbmFtZSwge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlfSk7XG4gICAgdGhpcy5sb2NhdGlvblNlbGVjdGVkLmVtaXQobG9jYXRpb24pO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0uY29udHJvbHMuc2VhcmNoVGVybS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHRlcm0pID0+IHRoaXMubG9jYXRpb25JbnB1dENoYW5nZWQubmV4dCh0ZXJtKSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmxvY2F0aW9ucyA9IFtdKSxcbiAgICAgICAgdGFwKCh0ZXJtKSA9PiB0aGlzLnRlcm0gPSB0ZXJtKSxcbiAgICAgICAgZmlsdGVyKHRlcm0gPT4gISF0ZXJtICYmIHRlcm0ubGVuZ3RoID49IHRoaXMubWluU2VhcmNoQ2hhcmFjdGVycyksXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlbGF5KSxcbiAgICAgICAgbWVyZ2VNYXAodmFsdWUgPT4gdGhpcy5nZXRMb2NhdGlvbnModmFsdWUpKSxcbiAgICAgICAgbWFwKChsb2NhdGlvbnMpID0+IHRoaXMucmVtb3ZlU2VsZWN0ZWRMb2NhdGlvbnMobG9jYXRpb25zKSlcbiAgICAgICkuc3Vic2NyaWJlKGxvY2F0aW9ucyA9PiB7XG4gICAgICB0aGlzLmxvY2F0aW9ucyA9IGxvY2F0aW9ucztcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICBpZiAobG9jYXRpb25zLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnRlcm0gPT09IGxvY2F0aW9uc1swXS5zaXRlX25hbWUgJiYgIXRoaXMuc2luZ2xlTW9kZSkge1xuICAgICAgICB0aGlzLmxvY2F0aW9uU2VsZWN0ZWQuZW1pdChsb2NhdGlvbnNbMF0pO1xuICAgICAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoTG9jYXRpb25DaGFuZ2VkLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMb2NhdGlvbnModGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXT4ge1xuICAgIGxldCB1c2VyTG9jYXRpb25zO1xuICAgIGxldCBib29raW5nTG9jYXRpb25zO1xuICAgIC8vIEJvb2tpbmcgdHlwZSBpbmZvIC0gY2FuIGNyZWF0ZSBtb3JlXG4gICAgLy8gTk9fQ0hFQ0sgLSBBbGwgd29yayAtIERvIG5vdCBmaWx0ZXIgb3V0IGxvY2F0aW9ucyAtIERlZmF1bHQgYXNzdW1wdGlvblxuICAgIC8vIE9OTFlfQk9PS0lOR1MgLSBNeSB3b3JrIC0gVHJ5IHRvIG9ubHkgc2hvdyBiYXNlIGxvY2F0aW9ucy9ib29raW5nIGxvY2F0aW9uc1xuICAgIC8vIFBPU1NJQkxFX0JPT0tJTkdTIC0gQ3JlYXRlIGJvb2tpbmcgc2NyZWVuIC0gU2hvdyBvbmx5IHBvdGVudGlhbCBib29raW5nc1xuICAgIGlmICh0aGlzLmJvb2tpbmdDaGVjayA9PT0gQm9va2luZ0NoZWNrVHlwZS5CT09LSU5HU19BTkRfQkFTRSkge1xuICAgICAgdXNlckxvY2F0aW9ucyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckxvY2F0aW9ucycpKTtcbiAgICAgIGJvb2tpbmdMb2NhdGlvbnMgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Jvb2tpbmdMb2NhdGlvbnMnKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJvb2tpbmdDaGVjayA9PT0gQm9va2luZ0NoZWNrVHlwZS5QT1NTSUJMRV9CT09LSU5HUykge1xuICAgICAgdGhpcy5zZXJ2aWNlSWRzID0gdGhpcy5zZXJ2aWNlSWRzICYmIHRoaXMuc2VydmljZUlkcy5sZW5ndGggPyB0aGlzLnNlcnZpY2VJZHMgOiBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Jvb2thYmxlU2VydmljZXMnKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uU2VydmljZS5nZXRBbGxMb2NhdGlvbnModGhpcy5zZXJ2aWNlSWRzLCB0aGlzLmxvY2F0aW9uVHlwZSwgdGVybSwgdXNlckxvY2F0aW9ucywgYm9va2luZ0xvY2F0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRTZWFyY2hUZXJtKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5jb250cm9scy5zZWFyY2hUZXJtLnBhdGNoVmFsdWUoJycsIHtlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZX0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTZWxlY3RlZExvY2F0aW9ucyhsb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdKTogTG9jYXRpb25CeUVQSU1NU01vZGVsW10ge1xuICAgIGlmICh0aGlzLnNpbmdsZU1vZGUpIHtcbiAgICAgIHJldHVybiBsb2NhdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiBsb2NhdGlvbnMuZmlsdGVyKFxuICAgICAgbG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGxvY2F0aW9uLmVwaW1tc19pZCkgJiYgbG9jYXRpb24uc2l0ZV9uYW1lXG4gICAgKTtcbiAgfVxufVxuIl19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWxvY2F0aW9uL3NlYXJjaC1sb2NhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBSWpCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFPdkcsTUFBTSxPQUFPLHVCQUF1QjtJQWdDbEMsWUFBNkIsZUFBZ0MsRUFDaEMscUJBQTRDLEVBQzVDLGNBQThCO1FBRjlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQS9CM0MsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIs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QUM7SUFDdkcsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8seUJBQXlCLENBQy9CLFNBQWtDLEVBQ2xDLGlCQUEwQyxFQUMxQyxVQUFtQjtRQUVuQixJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUNyQixRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FDckosQ0FBQztJQUNKLENBQUM7OztZQXJJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsczNCQUErQzs7YUFFaEQ7OztZQVBRLGVBQWU7WUFDZixxQkFBcUI7WUFGckIsY0FBYzs7O21CQVVwQixLQUFLO29CQUNMLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQUNMLEtBQUs7eUJBQ0wsS0FBSzt3QkFDTCxLQUFLOzJCQUNMLEtBQUs7Z0NBQ0wsS0FBSztpQ0FDTCxLQUFLO29CQUNMLEtBQUs7K0JBQ0wsTUFBTTs2Q0FDTixNQUFNO29DQUNOLE1BQU07b0JBWU4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpaWYsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBCb29raW5nQ2hlY2tUeXBlLCBGaWx0ZXJDb25maWdPcHRpb24sXG4gIEZpbHRlckZpZWxkQ29uZmlnLFxuICBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwsXG4gIExvY2F0aW9uc0J5U2VydmljZVxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVmRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBMb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2NhdGlvbnMvbG9jYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V4dWktc2VhcmNoLWxvY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1sb2NhdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaExvY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZpZWxkOiBGaWx0ZXJGaWVsZENvbmZpZztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIHNpbmdsZU1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGxvY2F0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlSWRzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHN1Ym1pdHRlZD86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgYm9va2luZ0NoZWNrOiBCb29raW5nQ2hlY2tUeXBlO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBwcm9wZXJ0eU5hbWVGaWx0ZXI6IGtleW9mIExvY2F0aW9uQnlFUElNTVNNb2RlbCA9ICdzaXRlX25hbWUnO1xuICBASW5wdXQoKSBwdWJsaWMgZGVsYXk/OiBudW1iZXIgPSA1MDA7XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TG9jYXRpb25CeUVQSU1NU01vZGVsPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGxvY2F0aW9uVGVybVNlYXJjaElucHV0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzZWFyY2hMb2NhdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgcHVibGljIHNlYXJjaFRlcm1Gb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gIHB1YmxpYyByZWFkb25seSBtaW5TZWFyY2hDaGFyYWN0ZXJzID0gMztcbiAgcHVibGljIHRlcm06IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIHBSZXNldDogYm9vbGVhbiA9IHRydWU7XG4gIHB1YmxpYyBmaWx0ZXJlZExpc3QkOiBPYnNlcnZhYmxlPExvY2F0aW9uQnlFUElNTVNNb2RlbFtdIHwgYm9vbGVhbj47XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVib3VuY2VUaW1lSW5wdXQgPSAzMDA7XG5cbiAgcHVibGljIGdldCByZXNldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wUmVzZXQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlc2V0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5wUmVzZXQgPSB2YWx1ZTtcbiAgICB0aGlzLnJlc2V0U2VhcmNoVGVybSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSByZWZEYXRhU2VydmljZTogUmVmRGF0YVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hJbnB1dENoYW5nZXMkID0gdGhpcy5zZWFyY2hUZXJtRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh0ZXJtKSA9PiB0aGlzLmxvY2F0aW9uVGVybVNlYXJjaElucHV0Q2hhbmdlZC5lbWl0KHRlcm0pKVxuICAgICAgKTtcblxuICAgIC8vIGlmIHNlcnZpY2VzRmllbGQgZXhpc3RzLCB0aGVuIHdlIHNob3VsZCBmaWx0ZXIgbG9jYXRpb25zIGJ5IHRoZSBzZXJ2aWNlIGNvZGVzXG4gICAgaWYgKHRoaXMuZmllbGQgJiYgdGhpcy5maWVsZC5zZXJ2aWNlc0ZpZWxkKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkTGlzdCQgPSBzZWFyY2hJbnB1dENoYW5nZXMkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgodGVybTogc3RyaW5nKSA9PiBpaWYoXG4gICAgICAgICAgLy8gU2VlbXMgbW9yZSByZXNwb25zaXZlIHRvIGRvIGxlbmd0aCAwIGlmIGxvY2F0aW9uc0J5U2VydmljZUNvZGVzIGFyZSBjYWNoZWRcbiAgICAgICAgICAoKSA9PiAoISF0ZXJtICYmIHRlcm0ubGVuZ3RoID49IDApLFxuICAgICAgICAgICAgdGhpcy5yZWZEYXRhU2VydmljZS5nZXRMb2NhdGlvbnNCeVNlcnZpY2VDb2RlcyhcbiAgICAgICAgICAgICAgKHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5zZXJ2aWNlc0ZpZWxkKT8udmFsdWUgYXMgRmlsdGVyQ29uZmlnT3B0aW9uW10pLm1hcCgoc2VydmljZSkgPT4gc2VydmljZS5rZXkpXG4gICAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICAgIC8vIEZpbHRlciBsb2NhdGlvbnMgYnkgdGhlIHNlYXJjaCBpbnB1dCB0ZXJtIGFuZCB0aGUgY2hvc2VuIHByb3BlcnR5IG5hbWVcbiAgICAgICAgICAgICAgbWFwKChsb2NhdGlvbnMpID0+IGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGxvY2F0aW9uKSA9PiBsb2NhdGlvblt0aGlzLnByb3BlcnR5TmFtZUZpbHRlcl0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtLnRvTG93ZXJDYXNlKCkpKSksXG4gICAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgbG9jYXRpb25zIHRoYXQgYXJlIGFscmVhZHkgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgbWFwKChsb2NhdGlvbnMpID0+IHRoaXMuZmlsdGVyVW5zZWxlY3RlZExvY2F0aW9ucyhsb2NhdGlvbnMsIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMsIHRoaXMuc2luZ2xlTW9kZSkpLFxuICAgICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IGR1cGxpY2F0ZSBsb2NhdGlvbnMgKGJ5IHByb3BlcnR5TmFtZUZpbHRlcilcbiAgICAgICAgICAgICAgbWFwKChsb2NhdGlvbnMpID0+IGxvY2F0aW9ucy5maWx0ZXIoKGxvY2F0aW9uLCBpbmRleCwgYXJyYXkpID0+XG4gICAgICAgICAgICAgICAgaW5kZXggPT09IGFycmF5LmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbVt0aGlzLnByb3BlcnR5TmFtZUZpbHRlcl0gPT09IGxvY2F0aW9uW3RoaXMucHJvcGVydHlOYW1lRmlsdGVyXSlcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgLy8gUmV0dXJucyBmYWxzZSBpZiB0aGUgc2VhcmNoIHRlcm0gaXMgZW1wdHkgdG8gbm90IHNob3cgdGhlIGF1dG9jb21wbGV0ZSBmaWVsZCBpLmUuIG5nSWYgc2hvdWxkIGJlIGZhbHNlXG4gICAgICAgICAgICBvZihmYWxzZSlcbiAgICAgICAgKSksXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkTGlzdCQgPSBzZWFyY2hJbnB1dENoYW5nZXMkLnBpcGUoXG4gICAgICAgIC8vIERlYm91bmNlIG5lZWRlZCB0byBwcmV2ZW50IG11bHRpcGxlIEFQSSBjYWxscyBiZWluZyBtYWRlXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZUlucHV0KSxcbiAgICAgICAgc3dpdGNoTWFwKCh0ZXJtOiBzdHJpbmcpID0+IGlpZihcbiAgICAgICAgICAoKSA9PiAoISF0ZXJtICYmIHRlcm0ubGVuZ3RoID49IHRoaXMubWluU2VhcmNoQ2hhcmFjdGVycyksXG4gICAgICAgICAgdGhpcy5nZXRMb2NhdGlvbnModGVybSkucGlwZShcbiAgICAgICAgICAgIG1hcCgobG9jYXRpb25zKSA9PiB0aGlzLmZpbHRlclVuc2VsZWN0ZWRMb2NhdGlvbnMobG9jYXRpb25zLCB0aGlzLnNlbGVjdGVkTG9jYXRpb25zLCB0aGlzLnNpbmdsZU1vZGUpKSxcbiAgICAgICAgICApLFxuICAgICAgICAgIG9mKGZhbHNlKVxuICAgICAgICApKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2luZ2xlTW9kZSAmJiB0aGlzLnNlbGVjdGVkTG9jYXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gdGhpcy5zZWxlY3RlZExvY2F0aW9uc1swXTtcbiAgICAgIHRoaXMuc2VhcmNoVGVybUZvcm1Db250cm9sLnBhdGNoVmFsdWUobG9jYXRpb25bdGhpcy5wcm9wZXJ0eU5hbWVGaWx0ZXJdLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RlZExvY2F0aW9uKGxvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFRlcm1Gb3JtQ29udHJvbC5wYXRjaFZhbHVlKGxvY2F0aW9uW3RoaXMucHJvcGVydHlOYW1lRmlsdGVyXSwge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlfSk7XG4gICAgdGhpcy5sb2NhdGlvblNlbGVjdGVkLmVtaXQobG9jYXRpb24pO1xuICB9XG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoTG9jYXRpb25DaGFuZ2VkLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMb2NhdGlvbnModGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXT4ge1xuICAgIGxldCB1c2VyTG9jYXRpb25zO1xuICAgIC8vIEJvb2tpbmcgdHlwZSBpbmZvIC0gY2FuIGNyZWF0ZSBtb3JlXG4gICAgLy8gTk9fQ0hFQ0sgLSBBbGwgd29yayAtIERvIG5vdCBmaWx0ZXIgb3V0IGxvY2F0aW9ucyAtIERlZmF1bHQgYXNzdW1wdGlvblxuICAgIC8vIEJPT0tJTkdTX0FORF9CQVNFIC0gTXkgd29yayAtIFRyeSB0byBvbmx5IHNob3cgYmFzZSBsb2NhdGlvbnMvcmVnaW9uc1xuICAgIC8vIFBPU1NJQkxFX0JPT0tJTkdTIC0gQ3JlYXRlIGJvb2tpbmcgc2NyZWVuIC0gU2hvdyBvbmx5IHBvdGVudGlhbCBib29raW5nc1xuICAgIGlmICh0aGlzLmJvb2tpbmdDaGVjayA9PT0gQm9va2luZ0NoZWNrVHlwZS5CT09LSU5HU19BTkRfQkFTRSkge1xuICAgICAgdXNlckxvY2F0aW9ucyA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckxvY2F0aW9ucycpKSBhcyBMb2NhdGlvbnNCeVNlcnZpY2VbXTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYm9va2luZ0NoZWNrID09PSBCb29raW5nQ2hlY2tUeXBlLlBPU1NJQkxFX0JPT0tJTkdTKSB7XG4gICAgICB0aGlzLnNlcnZpY2VJZHMgPSB0aGlzLnNlcnZpY2VJZHMgJiYgdGhpcy5zZXJ2aWNlSWRzLmxlbmd0aCA/IHRoaXMuc2VydmljZUlkcyA6IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnYm9va2FibGVTZXJ2aWNlcycpKTtcbiAgICAgIHVzZXJMb2NhdGlvbnMgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Jvb2thYmxlVXNlckxvY2F0aW9ucycpKSBhcyBMb2NhdGlvbnNCeVNlcnZpY2VbXTtcbiAgICB9XG4gICAgLy8gZ2V0IGFsbCBsb2NhdGlvbnMgd2lsbCByZXNvbHZlIGZpbHRlciBzZXR0aW5nIHVzaW5nIG9iamVjdHMgYWJvdmVcbiAgICAvLyBpZiBubyB1c2VyTG9jYXRpb25zLCBOT19DSEVDS1xuICAgIC8vIGlmIGp1c3QgZ2V0dGluZyBhbGwgc3Vic3RhbnRpdmUgdXNlciBsb2NhdGlvbnMsIEJPT0tJTkdTX0FORF9CQVNFXG4gICAgLy8gZmVlIHBhaWQgdXNlciBsb2NhdGlvbnMgYXJlIHVzZWQgZm9yIFBPU1NJQkxFX0JPT0tJTkdTXG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25TZXJ2aWNlLmdldEFsbExvY2F0aW9ucyh0aGlzLnNlcnZpY2VJZHMsIHRoaXMubG9jYXRpb25UeXBlLCB0ZXJtLCB1c2VyTG9jYXRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFNlYXJjaFRlcm0oKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXJtRm9ybUNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJVbnNlbGVjdGVkTG9jYXRpb25zKFxuICAgIGxvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW10sXG4gICAgc2VsZWN0ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdLFxuICAgIHNpbmdsZU1vZGU6IGJvb2xlYW5cbiAgKTogTG9jYXRpb25CeUVQSU1NU01vZGVsW10ge1xuICAgIGlmIChzaW5nbGVNb2RlKSB7XG4gICAgICByZXR1cm4gbG9jYXRpb25zO1xuICAgIH1cbiAgICByZXR1cm4gbG9jYXRpb25zLmZpbHRlcihcbiAgICAgIGxvY2F0aW9uID0+ICFzZWxlY3RlZExvY2F0aW9ucy5tYXAoc2VsZWN0ZWRMb2NhdGlvbiA9PiBzZWxlY3RlZExvY2F0aW9uLmVwaW1tc19pZCkuaW5jbHVkZXMobG9jYXRpb24uZXBpbW1zX2lkKSAmJiBsb2NhdGlvblt0aGlzLnByb3BlcnR5TmFtZUZpbHRlcl1cbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,60 +1,42 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/search-service/search-service.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component, Input } from '@angular/core';
7
- import { FormGroup } from '@angular/forms';
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
8
2
  export class SearchServiceComponent {
9
3
  constructor() {
10
4
  this.showAutocomplete = false;
11
- this.minSearchCharacters = 3;
12
- this.term = '';
5
+ this.optionChanged = new EventEmitter();
6
+ this.searchTerm = '';
7
+ this.MIN_SEARCH_CHARACTERS = 3;
13
8
  }
14
- /**
15
- * @return {?}
16
- */
17
- onInput() {
18
- // Todo
9
+ get filteredOptions() {
10
+ var _a;
11
+ const remainingServices = this.options.filter(s => !this.selectedOptions.find(ss => ss.key === s.key));
12
+ return ((_a = this.searchTerm) === null || _a === void 0 ? void 0 : _a.length) >= this.MIN_SEARCH_CHARACTERS ?
13
+ remainingServices.filter(s => s.label.toLowerCase().includes(this.searchTerm.toLowerCase()))
14
+ : remainingServices;
19
15
  }
20
- /**
21
- * @return {?}
22
- */
23
- onSelectionChange() {
24
- // Todo
16
+ resetSearchTerm() {
17
+ this.searchTerm = '';
18
+ }
19
+ onSelectionChanged($event) {
20
+ var _a;
21
+ const label = (_a = $event.source) === null || _a === void 0 ? void 0 : _a.value;
22
+ if (label && $event.source.selected) {
23
+ const selectedService = this.options.find(s => s.label === label);
24
+ this.optionChanged.emit(selectedService);
25
+ }
25
26
  }
26
27
  }
27
28
  SearchServiceComponent.decorators = [
28
29
  { type: Component, args: [{
29
30
  selector: 'exui-search-service',
30
- template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputServiceSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form?.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchService\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n <mat-option *ngFor=\"let service of services\" (onSelectionChange)=\"onSelectionChange()\">\n {{ service.name }}\n </mat-option>\n <mat-option *ngIf=\"!services?.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
31
- styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:rgba(0,0,0,.256863) 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:250px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
32
- }] }
31
+ template: "<div class=\"auto-complete-container\">\n <input id=\"inputServiceSearch\"\n class=\"govuk-input\"\n [(ngModel)]=\"searchTerm\"\n [matAutocomplete]=\"autoSearchService\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n <mat-option *ngFor=\"let service of filteredOptions\" (onSelectionChange)=\"onSelectionChanged($event)\" [value]=\"service.label\">\n {{ service.label }}\n </mat-option>\n <mat-option *ngIf=\"!filteredOptions?.length && showAutocomplete\">\n No results found\n </mat-option>\n </mat-autocomplete>\n</div>\n",
32
+ styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:250px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
33
+ },] }
33
34
  ];
34
35
  SearchServiceComponent.propDecorators = {
35
- services: [{ type: Input }],
36
- selectedServices: [{ type: Input }],
36
+ options: [{ type: Input }],
37
+ selectedOptions: [{ type: Input }],
37
38
  disabled: [{ type: Input }],
38
- delay: [{ type: Input }],
39
- form: [{ type: Input }],
40
- showAutocomplete: [{ type: Input }]
39
+ showAutocomplete: [{ type: Input }],
40
+ optionChanged: [{ type: Output }]
41
41
  };
42
- if (false) {
43
- /** @type {?} */
44
- SearchServiceComponent.prototype.services;
45
- /** @type {?} */
46
- SearchServiceComponent.prototype.selectedServices;
47
- /** @type {?} */
48
- SearchServiceComponent.prototype.disabled;
49
- /** @type {?} */
50
- SearchServiceComponent.prototype.delay;
51
- /** @type {?} */
52
- SearchServiceComponent.prototype.form;
53
- /** @type {?} */
54
- SearchServiceComponent.prototype.showAutocomplete;
55
- /** @type {?} */
56
- SearchServiceComponent.prototype.minSearchCharacters;
57
- /** @type {?} */
58
- SearchServiceComponent.prototype.term;
59
- }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3NlYXJjaC1zZXJ2aWNlL3NlYXJjaC1zZXJ2aWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU8zQyxNQUFNLE9BQU8sc0JBQXNCO0lBTG5DO1FBV2tCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyx3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDakMsU0FBSSxHQUFXLEVBQUUsQ0FBQztJQVMzQixDQUFDOzs7O0lBUFEsT0FBTztRQUNaLE9BQU87SUFDVCxDQUFDOzs7O0lBRU0saUJBQWlCO1FBQ3RCLE9BQU87SUFDVCxDQUFDOzs7WUFyQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLCtzQkFBOEM7O2FBRS9DOzs7dUJBRUUsS0FBSzsrQkFDTCxLQUFLO3VCQUNMLEtBQUs7b0JBQ0wsS0FBSzttQkFDTCxLQUFLOytCQUNMLEtBQUs7Ozs7SUFMTiwwQ0FBOEI7O0lBQzlCLGtEQUFzQzs7SUFDdEMsMENBQThCOztJQUM5Qix1Q0FBMkI7O0lBQzNCLHNDQUFnQzs7SUFDaEMsa0RBQWtEOztJQUNsRCxxREFBd0M7O0lBQ3hDLHNDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXh1aS1zZWFyY2gtc2VydmljZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtc2VydmljZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1zZXJ2aWNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlczogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRTZXJ2aWNlczogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGFueTtcbiAgQElucHV0KCkgcHVibGljIGRlbGF5OiBhbnk7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBtaW5TZWFyY2hDaGFyYWN0ZXJzID0gMztcbiAgcHVibGljIHRlcm06IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIC8vIFRvZG9cbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICAvLyBUb2RvXG4gIH1cbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtc2VydmljZS9zZWFyY2gtc2VydmljZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVN2RSxNQUFNLE9BQU8sc0JBQXNCO0lBTG5DO1FBU2tCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNqQyxrQkFBYSxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNuRyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ1AsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO0lBcUI1QyxDQUFDO0lBbkJDLElBQVcsZUFBZTs7UUFDeEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXZHLE9BQU8sT0FBQSxJQUFJLENBQUMsVUFBVSwwQ0FBRSxNQUFNLEtBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDNUQsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QixDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sa0JBQWtCLENBQUMsTUFBZ0M7O1FBQ3hELE1BQU0sS0FBSyxTQUFHLE1BQU0sQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQztRQUNuQyxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNuQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDOzs7WUFoQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLDZyQkFBOEM7O2FBRS9DOzs7c0JBRUUsS0FBSzs4QkFDTCxLQUFLO3VCQUNMLEtBQUs7K0JBQ0wsS0FBSzs0QkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdE9wdGlvblNlbGVjdGlvbkNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUvb3B0aW9uL29wdGlvbic7XG5pbXBvcnQgeyBGaWx0ZXJDb25maWdPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdleHVpLXNlYXJjaC1zZXJ2aWNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1zZXJ2aWNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXNlcnZpY2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hTZXJ2aWNlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IEZpbHRlckNvbmZpZ09wdGlvbltdO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRPcHRpb25zOiBGaWx0ZXJDb25maWdPcHRpb25bXTtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBhbnk7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBwdWJsaWMgb3B0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEZpbHRlckNvbmZpZ09wdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNvbmZpZ09wdGlvbj4oKTtcbiAgcHVibGljIHNlYXJjaFRlcm0gPSAnJztcbiAgcHVibGljIHJlYWRvbmx5IE1JTl9TRUFSQ0hfQ0hBUkFDVEVSUyA9IDM7XG5cbiAgcHVibGljIGdldCBmaWx0ZXJlZE9wdGlvbnMoKTogRmlsdGVyQ29uZmlnT3B0aW9uW10ge1xuICAgIGNvbnN0IHJlbWFpbmluZ1NlcnZpY2VzID0gdGhpcy5vcHRpb25zLmZpbHRlcihzID0+ICF0aGlzLnNlbGVjdGVkT3B0aW9ucy5maW5kKHNzID0+IHNzLmtleSA9PT0gcy5rZXkpKTtcblxuICAgIHJldHVybiB0aGlzLnNlYXJjaFRlcm0/Lmxlbmd0aCA+PSB0aGlzLk1JTl9TRUFSQ0hfQ0hBUkFDVEVSUyA/XG4gICAgICByZW1haW5pbmdTZXJ2aWNlcy5maWx0ZXIocyA9PiBzLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpKVxuICAgICAgOiByZW1haW5pbmdTZXJ2aWNlcztcbiAgfVxuXG4gIHB1YmxpYyByZXNldFNlYXJjaFRlcm0oKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXJtID0gJyc7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudDogTWF0T3B0aW9uU2VsZWN0aW9uQ2hhbmdlKTogdm9pZCB7XG4gICAgY29uc3QgbGFiZWwgPSAkZXZlbnQuc291cmNlPy52YWx1ZTtcbiAgICBpZiAobGFiZWwgJiYgJGV2ZW50LnNvdXJjZS5zZWxlY3RlZCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRTZXJ2aWNlID0gdGhpcy5vcHRpb25zLmZpbmQocyA9PiBzLmxhYmVsID09PSBsYWJlbCk7XG4gICAgICB0aGlzLm9wdGlvbkNoYW5nZWQuZW1pdChzZWxlY3RlZFNlcnZpY2UpO1xuICAgIH1cbiAgfVxufVxuIl19