@hmcts/rpx-xui-common-lib 1.8.0-angular-upgrade-9-rc.10 → 2.0.0-angular-upgrade-8

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 (280) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +7405 -3198
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +2 -2
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +10 -5
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +17 -13
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +127 -45
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +23 -16
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +78 -31
  10. package/esm2015/lib/components/due-date/due-date.component.js +110 -24
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +34 -29
  12. package/esm2015/lib/components/find-location/find-location.component.js +140 -69
  13. package/esm2015/lib/components/find-person/find-person.component.js +180 -97
  14. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +55 -11
  15. package/esm2015/lib/components/generic-filter/generic-filter.component.js +293 -54
  16. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +29 -20
  17. package/esm2015/lib/components/index.js +7 -2
  18. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +33 -23
  19. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +35 -34
  20. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +22 -16
  21. package/esm2015/lib/components/pagination/pagination.component.js +38 -28
  22. package/esm2015/lib/components/public_api.js +33 -33
  23. package/esm2015/lib/components/search-judicials/search-judicials.component.js +156 -70
  24. package/esm2015/lib/components/search-location/search-location.component.js +183 -80
  25. package/esm2015/lib/components/search-venue/search-venue.component.js +154 -62
  26. package/esm2015/lib/components/selected-case/selected-case.component.js +191 -54
  27. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +53 -22
  28. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +68 -38
  29. package/esm2015/lib/components/service-message/service-message.component.js +32 -23
  30. package/esm2015/lib/components/service-messages/service-messages.component.js +77 -29
  31. package/esm2015/lib/components/share-case/share-case.component.js +104 -45
  32. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +50 -27
  33. package/esm2015/lib/components/tab/tab.component.js +37 -19
  34. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +29 -20
  35. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +17 -13
  36. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +17 -13
  37. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +23 -16
  38. package/esm2015/lib/components/user-details/user-details.component.js +57 -47
  39. package/esm2015/lib/components/user-list/user-list.component.js +54 -19
  40. package/esm2015/lib/components/user-select/user-select.component.js +64 -23
  41. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +67 -21
  42. package/esm2015/lib/directives/index.js +7 -2
  43. package/esm2015/lib/directives/let/let.directive.js +49 -16
  44. package/esm2015/lib/directives/public-api.js +8 -3
  45. package/esm2015/lib/exui-common-lib.module.js +39 -34
  46. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +34 -23
  47. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +23 -18
  48. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +68 -30
  49. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +25 -19
  50. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +28 -19
  51. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +36 -23
  52. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +28 -23
  53. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +35 -24
  54. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +22 -15
  55. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +35 -23
  56. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +23 -18
  57. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +34 -27
  58. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +47 -32
  59. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +29 -22
  60. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +26 -20
  61. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +56 -26
  62. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +27 -17
  63. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +52 -40
  64. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +39 -43
  65. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +36 -29
  66. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +40 -18
  67. package/esm2015/lib/gov-ui/components/index.js +7 -2
  68. package/esm2015/lib/gov-ui/components/public_api.js +7 -22
  69. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +30 -12
  70. package/esm2015/lib/gov-ui/gov-ui.service.js +16 -12
  71. package/esm2015/lib/gov-ui/index.js +7 -2
  72. package/esm2015/lib/gov-ui/models/banner-data-model.js +16 -1
  73. package/esm2015/lib/gov-ui/models/checkboxes-model.js +22 -1
  74. package/esm2015/lib/gov-ui/models/error-messages-model.js +16 -1
  75. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +36 -1
  76. package/esm2015/lib/gov-ui/models/index.js +7 -1
  77. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +24 -1
  78. package/esm2015/lib/gov-ui/models/public_api.js +10 -1
  79. package/esm2015/lib/gov-ui/public_api.js +9 -5
  80. package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +14 -4
  81. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +48 -12
  82. package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +24 -5
  83. package/esm2015/lib/gov-ui/validators/date.validator.js +20 -3
  84. package/esm2015/lib/gov-ui/validators/index.js +7 -2
  85. package/esm2015/lib/gov-ui/validators/public_api.js +9 -4
  86. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +15 -3
  87. package/esm2015/lib/models/case-share.model.js +26 -1
  88. package/esm2015/lib/models/contact-details.model.js +31 -7
  89. package/esm2015/lib/models/due-date.model.js +14 -7
  90. package/esm2015/lib/models/feature-user.js +16 -1
  91. package/esm2015/lib/models/filter.model.js +116 -1
  92. package/esm2015/lib/models/idle-config.model.js +20 -1
  93. package/esm2015/lib/models/index.js +19 -6
  94. package/esm2015/lib/models/location.model.js +108 -1
  95. package/esm2015/lib/models/pagination.model.js +18 -0
  96. package/esm2015/lib/models/person.model.js +92 -17
  97. package/esm2015/lib/models/public_api.js +11 -4
  98. package/esm2015/lib/models/search-options.model.js +22 -1
  99. package/esm2015/lib/models/tcDocument.model.js +18 -1
  100. package/esm2015/lib/models/timeout-notification.model.js +18 -1
  101. package/esm2015/lib/models/user-details.model.js +22 -1
  102. package/esm2015/lib/models/user.model.js +25 -1
  103. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +92 -19
  104. package/esm2015/lib/services/cookie/cookie.service.js +78 -19
  105. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +51 -16
  106. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +35 -11
  107. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +101 -21
  108. package/esm2015/lib/services/filter/filter.service.js +63 -11
  109. package/esm2015/lib/services/find-person/find-person.service.js +130 -25
  110. package/esm2015/lib/services/google-analytics/google-analytics.service.js +70 -21
  111. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +71 -23
  112. package/esm2015/lib/services/index.js +7 -2
  113. package/esm2015/lib/services/loading/loading.service.js +48 -11
  114. package/esm2015/lib/services/locations/location.service.js +35 -22
  115. package/esm2015/lib/services/manage-session/manage-session.services.js +70 -21
  116. package/esm2015/lib/services/public-api.js +18 -13
  117. package/esm2015/lib/services/role-guard/role.guard.js +61 -24
  118. package/esm2015/lib/services/role-guard/role.service.js +28 -11
  119. package/esm2015/lib/services/session-storage/session-storage.service.js +24 -12
  120. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +82 -20
  121. package/esm2015/lib/window.js +10 -1
  122. package/esm2015/public-api.js +13 -8
  123. package/esm5/hmcts-rpx-xui-common-lib.js +10 -5
  124. package/esm5/lib/components/accessibility/accessibility.component.js +15 -10
  125. package/esm5/lib/components/checkbox-list/checkbox-list.component.js +232 -57
  126. package/esm5/lib/components/contact-details/contact-details.component.js +22 -14
  127. package/esm5/lib/components/cookie-banner/cookie-banner.component.js +106 -36
  128. package/esm5/lib/components/due-date/due-date.component.js +142 -29
  129. package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +33 -27
  130. package/esm5/lib/components/find-location/find-location.component.js +180 -80
  131. package/esm5/lib/components/find-person/find-person.component.js +203 -102
  132. package/esm5/lib/components/generic-filter/generic-filter-utils.js +57 -13
  133. package/esm5/lib/components/generic-filter/generic-filter.component.js +421 -85
  134. package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +32 -19
  135. package/esm5/lib/components/index.js +7 -2
  136. package/esm5/lib/components/invite-user-form/invite-user-form.component.js +37 -23
  137. package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +34 -32
  138. package/esm5/lib/components/loading-spinner/loading-spinner.component.js +21 -14
  139. package/esm5/lib/components/pagination/pagination.component.js +45 -28
  140. package/esm5/lib/components/public_api.js +33 -33
  141. package/esm5/lib/components/search-judicials/search-judicials.component.js +198 -78
  142. package/esm5/lib/components/search-location/search-location.component.js +217 -89
  143. package/esm5/lib/components/search-venue/search-venue.component.js +199 -71
  144. package/esm5/lib/components/selected-case/selected-case.component.js +279 -72
  145. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +61 -22
  146. package/esm5/lib/components/selected-case-list/selected-case-list.component.js +82 -39
  147. package/esm5/lib/components/service-message/service-message.component.js +36 -22
  148. package/esm5/lib/components/service-messages/service-messages.component.js +91 -30
  149. package/esm5/lib/components/share-case/share-case.component.js +138 -52
  150. package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +49 -25
  151. package/esm5/lib/components/tab/tab.component.js +41 -18
  152. package/esm5/lib/components/tc-confirm/tc-confirm.component.js +32 -19
  153. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +15 -10
  154. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +15 -10
  155. package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +22 -14
  156. package/esm5/lib/components/user-details/user-details.component.js +71 -48
  157. package/esm5/lib/components/user-list/user-list.component.js +65 -18
  158. package/esm5/lib/components/user-select/user-select.component.js +92 -27
  159. package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +70 -21
  160. package/esm5/lib/directives/index.js +7 -2
  161. package/esm5/lib/directives/let/let.directive.js +51 -15
  162. package/esm5/lib/directives/public-api.js +8 -3
  163. package/esm5/lib/exui-common-lib.module.js +33 -25
  164. package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +37 -22
  165. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +22 -16
  166. package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +89 -32
  167. package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +24 -17
  168. package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +31 -18
  169. package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +43 -23
  170. package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +27 -21
  171. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +45 -24
  172. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +21 -13
  173. package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +44 -18
  174. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +22 -16
  175. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +37 -26
  176. package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +51 -31
  177. package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +32 -21
  178. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +25 -18
  179. package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +71 -28
  180. package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +27 -16
  181. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +60 -41
  182. package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +37 -40
  183. package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +36 -28
  184. package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +39 -16
  185. package/esm5/lib/gov-ui/components/index.js +7 -2
  186. package/esm5/lib/gov-ui/components/public_api.js +7 -22
  187. package/esm5/lib/gov-ui/directives/remove-host.directive.js +29 -10
  188. package/esm5/lib/gov-ui/gov-ui.service.js +14 -9
  189. package/esm5/lib/gov-ui/index.js +7 -2
  190. package/esm5/lib/gov-ui/models/banner-data-model.js +16 -1
  191. package/esm5/lib/gov-ui/models/checkboxes-model.js +22 -1
  192. package/esm5/lib/gov-ui/models/error-messages-model.js +16 -1
  193. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +36 -1
  194. package/esm5/lib/gov-ui/models/index.js +7 -1
  195. package/esm5/lib/gov-ui/models/isession-storage.interface.js +24 -1
  196. package/esm5/lib/gov-ui/models/public_api.js +10 -1
  197. package/esm5/lib/gov-ui/public_api.js +9 -5
  198. package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +34 -3
  199. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +48 -12
  200. package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +24 -5
  201. package/esm5/lib/gov-ui/validators/date.validator.js +20 -3
  202. package/esm5/lib/gov-ui/validators/index.js +7 -2
  203. package/esm5/lib/gov-ui/validators/public_api.js +9 -4
  204. package/esm5/lib/gov-ui/validators/radio-group.validator.js +15 -3
  205. package/esm5/lib/models/case-share.model.js +26 -1
  206. package/esm5/lib/models/contact-details.model.js +31 -7
  207. package/esm5/lib/models/due-date.model.js +14 -7
  208. package/esm5/lib/models/feature-user.js +16 -1
  209. package/esm5/lib/models/filter.model.js +116 -1
  210. package/esm5/lib/models/idle-config.model.js +20 -1
  211. package/esm5/lib/models/index.js +19 -6
  212. package/esm5/lib/models/location.model.js +108 -1
  213. package/esm5/lib/models/pagination.model.js +18 -0
  214. package/esm5/lib/models/person.model.js +92 -17
  215. package/esm5/lib/models/public_api.js +11 -4
  216. package/esm5/lib/models/search-options.model.js +22 -1
  217. package/esm5/lib/models/tcDocument.model.js +18 -1
  218. package/esm5/lib/models/timeout-notification.model.js +18 -1
  219. package/esm5/lib/models/user-details.model.js +22 -1
  220. package/esm5/lib/models/user.model.js +25 -1
  221. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +132 -27
  222. package/esm5/lib/services/cookie/cookie.service.js +104 -21
  223. package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +61 -13
  224. package/esm5/lib/services/feature-toggle/feature-toggle.service.js +70 -12
  225. package/esm5/lib/services/feature-toggle/launch-darkly.service.js +142 -21
  226. package/esm5/lib/services/filter/filter.service.js +101 -15
  227. package/esm5/lib/services/find-person/find-person.service.js +152 -27
  228. package/esm5/lib/services/google-analytics/google-analytics.service.js +78 -21
  229. package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +79 -23
  230. package/esm5/lib/services/index.js +7 -2
  231. package/esm5/lib/services/loading/loading.service.js +69 -14
  232. package/esm5/lib/services/locations/location.service.js +50 -11
  233. package/esm5/lib/services/manage-session/manage-session.services.js +73 -20
  234. package/esm5/lib/services/public-api.js +18 -13
  235. package/esm5/lib/services/role-guard/role.guard.js +60 -22
  236. package/esm5/lib/services/role-guard/role.service.js +28 -10
  237. package/esm5/lib/services/session-storage/session-storage.service.js +61 -12
  238. package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +111 -19
  239. package/esm5/lib/window.js +10 -1
  240. package/esm5/public-api.js +13 -8
  241. package/fesm2015/hmcts-rpx-xui-common-lib.js +6519 -3251
  242. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  243. package/fesm5/hmcts-rpx-xui-common-lib.js +7443 -3202
  244. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  245. package/hmcts-rpx-xui-common-lib.d.ts +3 -3
  246. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  247. package/lib/components/checkbox-list/checkbox-list.component.d.ts +5 -6
  248. package/lib/components/due-date/due-date.component.d.ts +4 -4
  249. package/lib/components/find-location/find-location.component.d.ts +2 -4
  250. package/lib/components/generic-filter/generic-filter.component.d.ts +2 -4
  251. package/lib/components/invite-user-form/invite-user-form.component.d.ts +1 -1
  252. package/lib/components/public_api.d.ts +4 -9
  253. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  254. package/lib/components/search-location/search-location.component.d.ts +2 -4
  255. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  256. package/lib/components/user-list/user-list.component.d.ts +9 -2
  257. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  258. package/lib/directives/let/let.directive.d.ts +1 -1
  259. package/lib/exui-common-lib.module.d.ts +3 -2
  260. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  261. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  262. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +1 -1
  263. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +2 -3
  264. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  265. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +2 -0
  266. package/lib/gov-ui/components/public_api.d.ts +0 -20
  267. package/lib/gov-ui/public_api.d.ts +1 -2
  268. package/lib/models/index.d.ts +1 -0
  269. package/lib/models/pagination.model.d.ts +5 -0
  270. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  271. package/lib/services/loading/loading.service.d.ts +2 -2
  272. package/lib/services/role-guard/role.service.d.ts +1 -2
  273. package/lib/window.d.ts +1 -1
  274. package/package.json +10 -6
  275. package/esm2015/lib/gov-ui/directives/index.js +0 -2
  276. package/esm2015/lib/gov-ui/directives/public_api.js +0 -2
  277. package/esm5/lib/gov-ui/directives/index.js +0 -2
  278. package/esm5/lib/gov-ui/directives/public_api.js +0 -2
  279. package/lib/gov-ui/directives/index.d.ts +0 -1
  280. package/lib/gov-ui/directives/public_api.d.ts +0 -1
@@ -1,5 +1,9 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
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';
3
7
  import { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';
4
8
  import { debounceTime, filter, map, mergeMap, tap } from 'rxjs/operators';
5
9
  import { LocationService } from '../../services/locations/location.service';
@@ -28,10 +32,17 @@ var SearchLocationComponent = /** @class */ (function () {
28
32
  });
29
33
  }
30
34
  Object.defineProperty(SearchLocationComponent.prototype, "reset", {
31
- get: function () {
35
+ get: /**
36
+ * @return {?}
37
+ */
38
+ function () {
32
39
  return this.pReset;
33
40
  },
34
- set: function (value) {
41
+ set: /**
42
+ * @param {?} value
43
+ * @return {?}
44
+ */
45
+ function (value) {
35
46
  this.pReset = value;
36
47
  this.resetSearchTerm();
37
48
  },
@@ -39,34 +50,101 @@ var SearchLocationComponent = /** @class */ (function () {
39
50
  configurable: true
40
51
  });
41
52
  Object.defineProperty(SearchLocationComponent.prototype, "selectedLocations", {
42
- get: function () {
53
+ get: /**
54
+ * @return {?}
55
+ */
56
+ function () {
43
57
  return this.pSelectedLocations;
44
58
  },
45
- set: function (value) {
59
+ set: /**
60
+ * @param {?} value
61
+ * @return {?}
62
+ */
63
+ function (value) {
46
64
  this.pSelectedLocations = value;
47
65
  },
48
66
  enumerable: true,
49
67
  configurable: true
50
68
  });
51
- SearchLocationComponent.prototype.ngOnInit = function () {
69
+ /**
70
+ * @return {?}
71
+ */
72
+ SearchLocationComponent.prototype.ngOnInit = /**
73
+ * @return {?}
74
+ */
75
+ function () {
52
76
  if (this.singleMode && this.selectedLocations.length > 0) {
77
+ /** @type {?} */
53
78
  var location_1 = this.selectedLocations[0];
54
79
  this.form.controls.searchTerm.patchValue(location_1.site_name, { emitEvent: false, onlySelf: true });
55
80
  }
56
81
  this.search();
57
82
  };
58
- SearchLocationComponent.prototype.filter = function (term) {
83
+ /**
84
+ * @param {?} term
85
+ * @return {?}
86
+ */
87
+ SearchLocationComponent.prototype.filter = /**
88
+ * @param {?} term
89
+ * @return {?}
90
+ */
91
+ function (term) {
59
92
  var _this = this;
60
- this.getLocations(term).pipe(map(function (locations) { return _this.removeSelectedLocations(locations); }));
93
+ this.getLocations(term).pipe(map((/**
94
+ * @param {?} locations
95
+ * @return {?}
96
+ */
97
+ function (locations) { return _this.removeSelectedLocations(locations); })));
61
98
  };
62
- SearchLocationComponent.prototype.onSelectionChange = function (location) {
99
+ /**
100
+ * @param {?} location
101
+ * @return {?}
102
+ */
103
+ SearchLocationComponent.prototype.onSelectionChange = /**
104
+ * @param {?} location
105
+ * @return {?}
106
+ */
107
+ function (location) {
63
108
  this.form.controls.searchTerm.patchValue(location.site_name, { emitEvent: false, onlySelf: true });
64
109
  this.locationSelected.emit(location);
65
110
  };
66
- SearchLocationComponent.prototype.search = function () {
111
+ /**
112
+ * @return {?}
113
+ */
114
+ SearchLocationComponent.prototype.search = /**
115
+ * @return {?}
116
+ */
117
+ function () {
67
118
  var _this = this;
68
119
  this.form.controls.searchTerm.valueChanges
69
- .pipe(tap(function (term) { return _this.locationInputChanged.next(term); }), tap(function () { return _this.locations = []; }), tap(function (term) { return _this.term = term; }), filter(function (term) { return !!term && term.length >= _this.minSearchCharacters; }), debounceTime(this.delay), mergeMap(function (value) { return _this.getLocations(value); }), map(function (locations) { return _this.removeSelectedLocations(locations); })).subscribe(function (locations) {
120
+ .pipe(tap((/**
121
+ * @param {?} term
122
+ * @return {?}
123
+ */
124
+ function (term) { return _this.locationInputChanged.next(term); })), tap((/**
125
+ * @return {?}
126
+ */
127
+ function () { return _this.locations = []; })), tap((/**
128
+ * @param {?} term
129
+ * @return {?}
130
+ */
131
+ function (term) { return _this.term = term; })), filter((/**
132
+ * @param {?} term
133
+ * @return {?}
134
+ */
135
+ function (term) { return !!term && term.length >= _this.minSearchCharacters; })), debounceTime(this.delay), mergeMap((/**
136
+ * @param {?} value
137
+ * @return {?}
138
+ */
139
+ function (value) { return _this.getLocations(value); })), map((/**
140
+ * @param {?} locations
141
+ * @return {?}
142
+ */
143
+ function (locations) { return _this.removeSelectedLocations(locations); }))).subscribe((/**
144
+ * @param {?} locations
145
+ * @return {?}
146
+ */
147
+ function (locations) {
70
148
  _this.locations = locations;
71
149
  _this.cd.markForCheck();
72
150
  if (locations.length === 1 && _this.term === locations[0].site_name && !_this.singleMode) {
@@ -75,100 +153,150 @@ var SearchLocationComponent = /** @class */ (function () {
75
153
  return;
76
154
  }
77
155
  _this.showAutocomplete = true;
78
- });
156
+ }));
79
157
  };
80
- SearchLocationComponent.prototype.onInput = function () {
158
+ /**
159
+ * @return {?}
160
+ */
161
+ SearchLocationComponent.prototype.onInput = /**
162
+ * @return {?}
163
+ */
164
+ function () {
81
165
  this.searchLocationChanged.emit();
82
166
  };
83
- SearchLocationComponent.prototype.getLocations = function (term) {
167
+ /**
168
+ * @param {?} term
169
+ * @return {?}
170
+ */
171
+ SearchLocationComponent.prototype.getLocations = /**
172
+ * @param {?} term
173
+ * @return {?}
174
+ */
175
+ function (term) {
84
176
  return this.locationService.getAllLocations(this.serviceIds, this.locationType, term);
85
177
  };
86
- SearchLocationComponent.prototype.resetSearchTerm = function () {
178
+ /**
179
+ * @return {?}
180
+ */
181
+ SearchLocationComponent.prototype.resetSearchTerm = /**
182
+ * @return {?}
183
+ */
184
+ function () {
87
185
  this.form.controls.searchTerm.patchValue('', { emitEvent: false, onlySelf: true });
88
186
  };
89
- SearchLocationComponent.prototype.removeSelectedLocations = function (locations) {
187
+ /**
188
+ * @private
189
+ * @param {?} locations
190
+ * @return {?}
191
+ */
192
+ SearchLocationComponent.prototype.removeSelectedLocations = /**
193
+ * @private
194
+ * @param {?} locations
195
+ * @return {?}
196
+ */
197
+ function (locations) {
90
198
  var _this = this;
91
199
  if (this.singleMode) {
92
200
  return locations;
93
201
  }
94
- return locations.filter(function (location) { return !_this.selectedLocations.map(function (selectedLocation) { return selectedLocation.epimms_id; }).includes(location.epimms_id) && location.site_name; });
202
+ return locations.filter((/**
203
+ * @param {?} location
204
+ * @return {?}
205
+ */
206
+ function (location) { return !_this.selectedLocations.map((/**
207
+ * @param {?} selectedLocation
208
+ * @return {?}
209
+ */
210
+ function (selectedLocation) { return selectedLocation.epimms_id; })).includes(location.epimms_id) && location.site_name; }));
95
211
  };
212
+ SearchLocationComponent.decorators = [
213
+ { type: Component, args: [{
214
+ selector: 'exui-search-location',
215
+ 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",
216
+ 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}"]
217
+ }] }
218
+ ];
219
+ /** @nocollapse */
96
220
  SearchLocationComponent.ctorParameters = function () { return [
97
221
  { type: LocationService },
98
222
  { type: FormBuilder },
99
223
  { type: ChangeDetectorRef }
100
224
  ]; };
101
- __decorate([
102
- Input(),
103
- __metadata("design:type", AbstractControl)
104
- ], SearchLocationComponent.prototype, "control", void 0);
105
- __decorate([
106
- Input(),
107
- __metadata("design:type", Boolean)
108
- ], SearchLocationComponent.prototype, "disabled", void 0);
109
- __decorate([
110
- Input(),
111
- __metadata("design:type", Boolean)
112
- ], SearchLocationComponent.prototype, "singleMode", void 0);
113
- __decorate([
114
- Input(),
115
- __metadata("design:type", String)
116
- ], SearchLocationComponent.prototype, "locationType", void 0);
117
- __decorate([
118
- Input(),
119
- __metadata("design:type", String)
120
- ], SearchLocationComponent.prototype, "serviceIds", void 0);
121
- __decorate([
122
- Input(),
123
- __metadata("design:type", Boolean)
124
- ], SearchLocationComponent.prototype, "submitted", void 0);
125
- __decorate([
126
- Input(),
127
- __metadata("design:type", Number)
128
- ], SearchLocationComponent.prototype, "delay", void 0);
129
- __decorate([
130
- Input(),
131
- __metadata("design:type", FormGroup)
132
- ], SearchLocationComponent.prototype, "form", void 0);
133
- __decorate([
134
- Input(),
135
- __metadata("design:type", Boolean)
136
- ], SearchLocationComponent.prototype, "showAutocomplete", void 0);
137
- __decorate([
138
- Input(),
139
- __metadata("design:type", Array)
140
- ], SearchLocationComponent.prototype, "locations", void 0);
141
- __decorate([
142
- Output(),
143
- __metadata("design:type", Object)
144
- ], SearchLocationComponent.prototype, "locationSelected", void 0);
145
- __decorate([
146
- Output(),
147
- __metadata("design:type", EventEmitter)
148
- ], SearchLocationComponent.prototype, "locationInputChanged", void 0);
149
- __decorate([
150
- Output(),
151
- __metadata("design:type", EventEmitter)
152
- ], SearchLocationComponent.prototype, "searchLocationChanged", void 0);
153
- __decorate([
154
- Input(),
155
- __metadata("design:type", Boolean),
156
- __metadata("design:paramtypes", [Boolean])
157
- ], SearchLocationComponent.prototype, "reset", null);
158
- __decorate([
159
- Input(),
160
- __metadata("design:type", Array),
161
- __metadata("design:paramtypes", [Array])
162
- ], SearchLocationComponent.prototype, "selectedLocations", null);
163
- SearchLocationComponent = __decorate([
164
- Component({
165
- selector: 'exui-search-location',
166
- 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",
167
- 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}"]
168
- }),
169
- __metadata("design:paramtypes", [LocationService, FormBuilder, ChangeDetectorRef])
170
- ], SearchLocationComponent);
225
+ SearchLocationComponent.propDecorators = {
226
+ control: [{ type: Input }],
227
+ disabled: [{ type: Input }],
228
+ singleMode: [{ type: Input }],
229
+ locationType: [{ type: Input }],
230
+ serviceIds: [{ type: Input }],
231
+ submitted: [{ type: Input }],
232
+ delay: [{ type: Input }],
233
+ form: [{ type: Input }],
234
+ showAutocomplete: [{ type: Input }],
235
+ locations: [{ type: Input }],
236
+ locationSelected: [{ type: Output }],
237
+ locationInputChanged: [{ type: Output }],
238
+ searchLocationChanged: [{ type: Output }],
239
+ reset: [{ type: Input }],
240
+ selectedLocations: [{ type: Input }]
241
+ };
171
242
  return SearchLocationComponent;
172
243
  }());
173
244
  export { SearchLocationComponent };
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWFyY2gtbG9jYXRpb24vc2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFPMUU7SUFtQkUsaUNBQTZCLGVBQWdDLEVBQW1CLEVBQWUsRUFBbUIsRUFBcUI7UUFBMUcsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBbUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFqQnZILGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBYSxJQUFJLENBQUM7UUFDM0IsVUFBSyxHQUFZLEdBQUcsQ0FBQztRQUVyQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsY0FBUyxHQUE0QixFQUFFLENBQUM7UUFDdkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFDN0QseUJBQW9CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFD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UUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxrdkJBQStDOztTQUVoRCxDQUFDO3lDQW9COEMsZUFBZSxFQUF1QixXQUFXLEVBQXVCLGlCQUFpQjtPQW5CNUgsdUJBQXVCLENBMkduQztJQUFELDhCQUFDO0NBQUEsQUEzR0QsSUEyR0M7U0EzR1ksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2NhdGlvbkJ5RVBJTU1TTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy9sb2NhdGlvbi5tb2RlbCc7XG5pbXBvcnQge0xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYXRpb25zL2xvY2F0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdleHVpLXNlYXJjaC1sb2NhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hMb2NhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaW5nbGVNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZUlkczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGRlbGF5PzogbnVtYmVyID0gNTAwO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0F1dG9jb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbG9jYXRpb25zOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSA9IFtdO1xuICBAT3V0cHV0KCkgcHVibGljIGxvY2F0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPExvY2F0aW9uQnlFUElNTVNNb2RlbD4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBsb2NhdGlvbklucHV0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzZWFyY2hMb2NhdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAzO1xuICBwdWJsaWMgdGVybTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgcFNlbGVjdGVkTG9jYXRpb25zOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIHBSZXNldDogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWFyY2hUZXJtOiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlc2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBSZXNldDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVzZXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnBSZXNldCA9IHZhbHVlO1xuICAgIHRoaXMucmVzZXRTZWFyY2hUZXJtKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkTG9jYXRpb25zKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5wU2VsZWN0ZWRMb2NhdGlvbnM7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkTG9jYXRpb25zKHZhbHVlOiBhbnlbXSkge1xuICAgIHRoaXMucFNlbGVjdGVkTG9jYXRpb25zID0gdmFsdWU7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaW5nbGVNb2RlICYmIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLnNlbGVjdGVkTG9jYXRpb25zWzBdO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnNlYXJjaFRlcm0ucGF0Y2hWYWx1ZShsb2NhdGlvbi5zaXRlX25hbWUsIHtlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZX0pO1xuICAgIH1cbiAgICB0aGlzLnNlYXJjaCgpO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcih0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdldExvY2F0aW9ucyh0ZXJtKS5waXBlKFxuICAgICAgbWFwKChsb2NhdGlvbnMpID0+IHRoaXMucmVtb3ZlU2VsZWN0ZWRMb2NhdGlvbnMobG9jYXRpb25zKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2UobG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5jb250cm9scy5zZWFyY2hUZXJtLnBhdGNoVmFsdWUobG9jYXRpb24uc2l0ZV9uYW1lLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgICB0aGlzLmxvY2F0aW9uU2VsZWN0ZWQuZW1pdChsb2NhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5jb250cm9scy5zZWFyY2hUZXJtLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgodGVybSkgPT4gdGhpcy5sb2NhdGlvbklucHV0Q2hhbmdlZC5uZXh0KHRlcm0pKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMubG9jYXRpb25zID0gW10pLFxuICAgICAgICB0YXAoKHRlcm0pID0+IHRoaXMudGVybSA9IHRlcm0pLFxuICAgICAgICBmaWx0ZXIodGVybSA9PiAhIXRlcm0gJiYgdGVybS5sZW5ndGggPj0gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVsYXkpLFxuICAgICAgICBtZXJnZU1hcCh2YWx1ZSA9PiB0aGlzLmdldExvY2F0aW9ucyh2YWx1ZSkpLFxuICAgICAgICBtYXAoKGxvY2F0aW9ucykgPT4gdGhpcy5yZW1vdmVTZWxlY3RlZExvY2F0aW9ucyhsb2NhdGlvbnMpKVxuICAgICAgKS5zdWJzY3JpYmUobG9jYXRpb25zID0+IHtcbiAgICAgIHRoaXMubG9jYXRpb25zID0gbG9jYXRpb25zO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIGlmIChsb2NhdGlvbnMubGVuZ3RoID09PSAxICYmIHRoaXMudGVybSA9PT0gbG9jYXRpb25zWzBdLnNpdGVfbmFtZSAmJiAhdGhpcy5zaW5nbGVNb2RlKSB7XG4gICAgICAgIHRoaXMubG9jYXRpb25TZWxlY3RlZC5lbWl0KGxvY2F0aW9uc1swXSk7XG4gICAgICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hMb2NhdGlvbkNoYW5nZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGdldExvY2F0aW9ucyh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvY2F0aW9uQnlFUElNTVNNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25TZXJ2aWNlLmdldEFsbExvY2F0aW9ucyh0aGlzLnNlcnZpY2VJZHMsIHRoaXMubG9jYXRpb25UeXBlLCB0ZXJtKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFNlYXJjaFRlcm0oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnNlYXJjaFRlcm0ucGF0Y2hWYWx1ZSgnJywge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNlbGVjdGVkTG9jYXRpb25zKGxvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW10pOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSB7XG4gICAgaWYgKHRoaXMuc2luZ2xlTW9kZSkge1xuICAgICAgcmV0dXJuIGxvY2F0aW9ucztcbiAgICB9XG4gICAgcmV0dXJuIGxvY2F0aW9ucy5maWx0ZXIoXG4gICAgICBsb2NhdGlvbiA9PiAhdGhpcy5zZWxlY3RlZExvY2F0aW9ucy5tYXAoc2VsZWN0ZWRMb2NhdGlvbiA9PiBzZWxlY3RlZExvY2F0aW9uLmVwaW1tc19pZCkuaW5jbHVkZXMobG9jYXRpb24uZXBpbW1zX2lkKSAmJiBsb2NhdGlvbi5zaXRlX25hbWVcbiAgICApO1xuICB9XG59XG4iXX0=
245
+ if (false) {
246
+ /** @type {?} */
247
+ SearchLocationComponent.prototype.control;
248
+ /** @type {?} */
249
+ SearchLocationComponent.prototype.disabled;
250
+ /** @type {?} */
251
+ SearchLocationComponent.prototype.singleMode;
252
+ /** @type {?} */
253
+ SearchLocationComponent.prototype.locationType;
254
+ /** @type {?} */
255
+ SearchLocationComponent.prototype.serviceIds;
256
+ /** @type {?} */
257
+ SearchLocationComponent.prototype.submitted;
258
+ /** @type {?} */
259
+ SearchLocationComponent.prototype.delay;
260
+ /** @type {?} */
261
+ SearchLocationComponent.prototype.form;
262
+ /** @type {?} */
263
+ SearchLocationComponent.prototype.showAutocomplete;
264
+ /** @type {?} */
265
+ SearchLocationComponent.prototype.locations;
266
+ /** @type {?} */
267
+ SearchLocationComponent.prototype.locationSelected;
268
+ /** @type {?} */
269
+ SearchLocationComponent.prototype.locationInputChanged;
270
+ /** @type {?} */
271
+ SearchLocationComponent.prototype.searchLocationChanged;
272
+ /** @type {?} */
273
+ SearchLocationComponent.prototype.minSearchCharacters;
274
+ /** @type {?} */
275
+ SearchLocationComponent.prototype.term;
276
+ /**
277
+ * @type {?}
278
+ * @private
279
+ */
280
+ SearchLocationComponent.prototype.pSelectedLocations;
281
+ /**
282
+ * @type {?}
283
+ * @private
284
+ */
285
+ SearchLocationComponent.prototype.pReset;
286
+ /**
287
+ * @type {?}
288
+ * @private
289
+ */
290
+ SearchLocationComponent.prototype.locationService;
291
+ /**
292
+ * @type {?}
293
+ * @private
294
+ */
295
+ SearchLocationComponent.prototype.fb;
296
+ /**
297
+ * @type {?}
298
+ * @private
299
+ */
300
+ SearchLocationComponent.prototype.cd;
301
+ }
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWFyY2gtbG9jYXRpb24vc2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFMUU7SUF3QkUsaUNBQTZCLGVBQWdDLEVBQW1CLEVBQWUsRUFBbUIsRUFBcUI7UUFBMUcsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBbUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFqQnZILGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBYSxJQUFJLENBQUM7UUFDM0IsVUFBSyxHQUFZLEdBQUcsQ0FBQztRQUVyQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsY0FBUyxHQUE0QixFQUFFLENBQUM7UUFDdkMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7UUFDN0QseUJBQW9CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDeEUsMEJB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QzlFLHVEQUF5Rjs7SUFDekYsd0RBQXNGOztJQUN0RixzREFBd0M7O0lBQ3hDLHVDQUF5Qjs7Ozs7SUFDekIscURBQXVDOzs7OztJQUN2Qyx5Q0FBK0I7Ozs7O0lBRW5CLGtEQUFpRDs7Ozs7SUFBRSxxQ0FBZ0M7Ozs7O0lBQUUscUNBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2NhdGlvbkJ5RVBJTU1TTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy9sb2NhdGlvbi5tb2RlbCc7XG5pbXBvcnQge0xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYXRpb25zL2xvY2F0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdleHVpLXNlYXJjaC1sb2NhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hMb2NhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaW5nbGVNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZUlkczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGRlbGF5PzogbnVtYmVyID0gNTAwO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0F1dG9jb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgbG9jYXRpb25zOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSA9IFtdO1xuICBAT3V0cHV0KCkgcHVibGljIGxvY2F0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPExvY2F0aW9uQnlFUElNTVNNb2RlbD4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBsb2NhdGlvbklucHV0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzZWFyY2hMb2NhdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAzO1xuICBwdWJsaWMgdGVybTogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgcFNlbGVjdGVkTG9jYXRpb25zOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIHBSZXNldDogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgcmVhZG9ubHkgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBzZWFyY2hUZXJtOiBbJyddXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlc2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBSZXNldDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVzZXQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnBSZXNldCA9IHZhbHVlO1xuICAgIHRoaXMucmVzZXRTZWFyY2hUZXJtKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkTG9jYXRpb25zKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5wU2VsZWN0ZWRMb2NhdGlvbnM7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkTG9jYXRpb25zKHZhbHVlOiBhbnlbXSkge1xuICAgIHRoaXMucFNlbGVjdGVkTG9jYXRpb25zID0gdmFsdWU7XG5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaW5nbGVNb2RlICYmIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLnNlbGVjdGVkTG9jYXRpb25zWzBdO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLnNlYXJjaFRlcm0ucGF0Y2hWYWx1ZShsb2NhdGlvbi5zaXRlX25hbWUsIHtlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZX0pO1xuICAgIH1cbiAgICB0aGlzLnNlYXJjaCgpO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcih0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdldExvY2F0aW9ucyh0ZXJtKS5waXBlKFxuICAgICAgbWFwKChsb2NhdGlvbnMpID0+IHRoaXMucmVtb3ZlU2VsZWN0ZWRMb2NhdGlvbnMobG9jYXRpb25zKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2UobG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5jb250cm9scy5zZWFyY2hUZXJtLnBhdGNoVmFsdWUobG9jYXRpb24uc2l0ZV9uYW1lLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgICB0aGlzLmxvY2F0aW9uU2VsZWN0ZWQuZW1pdChsb2NhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5jb250cm9scy5zZWFyY2hUZXJtLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgodGVybSkgPT4gdGhpcy5sb2NhdGlvbklucHV0Q2hhbmdlZC5uZXh0KHRlcm0pKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMubG9jYXRpb25zID0gW10pLFxuICAgICAgICB0YXAoKHRlcm0pID0+IHRoaXMudGVybSA9IHRlcm0pLFxuICAgICAgICBmaWx0ZXIodGVybSA9PiAhIXRlcm0gJiYgdGVybS5sZW5ndGggPj0gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVsYXkpLFxuICAgICAgICBtZXJnZU1hcCh2YWx1ZSA9PiB0aGlzLmdldExvY2F0aW9ucyh2YWx1ZSkpLFxuICAgICAgICBtYXAoKGxvY2F0aW9ucykgPT4gdGhpcy5yZW1vdmVTZWxlY3RlZExvY2F0aW9ucyhsb2NhdGlvbnMpKVxuICAgICAgKS5zdWJzY3JpYmUobG9jYXRpb25zID0+IHtcbiAgICAgIHRoaXMubG9jYXRpb25zID0gbG9jYXRpb25zO1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIGlmIChsb2NhdGlvbnMubGVuZ3RoID09PSAxICYmIHRoaXMudGVybSA9PT0gbG9jYXRpb25zWzBdLnNpdGVfbmFtZSAmJiAhdGhpcy5zaW5nbGVNb2RlKSB7XG4gICAgICAgIHRoaXMubG9jYXRpb25TZWxlY3RlZC5lbWl0KGxvY2F0aW9uc1swXSk7XG4gICAgICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hMb2NhdGlvbkNoYW5nZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGdldExvY2F0aW9ucyh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvY2F0aW9uQnlFUElNTVNNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25TZXJ2aWNlLmdldEFsbExvY2F0aW9ucyh0aGlzLnNlcnZpY2VJZHMsIHRoaXMubG9jYXRpb25UeXBlLCB0ZXJtKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFNlYXJjaFRlcm0oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnNlYXJjaFRlcm0ucGF0Y2hWYWx1ZSgnJywge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNlbGVjdGVkTG9jYXRpb25zKGxvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW10pOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSB7XG4gICAgaWYgKHRoaXMuc2luZ2xlTW9kZSkge1xuICAgICAgcmV0dXJuIGxvY2F0aW9ucztcbiAgICB9XG4gICAgcmV0dXJuIGxvY2F0aW9ucy5maWx0ZXIoXG4gICAgICBsb2NhdGlvbiA9PiAhdGhpcy5zZWxlY3RlZExvY2F0aW9ucy5tYXAoc2VsZWN0ZWRMb2NhdGlvbiA9PiBzZWxlY3RlZExvY2F0aW9uLmVwaW1tc19pZCkuaW5jbHVkZXMobG9jYXRpb24uZXBpbW1zX2lkKSAmJiBsb2NhdGlvbi5zaXRlX25hbWVcbiAgICApO1xuICB9XG59XG4iXX0=