@hmcts/rpx-xui-common-lib 1.7.0 → 1.8.0-angular-upgrade-9

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 (271) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +4078 -6583
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +15 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +2 -7
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +13 -17
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +45 -127
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +16 -23
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +31 -78
  10. package/esm2015/lib/components/due-date/due-date.component.js +24 -110
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +29 -34
  12. package/esm2015/lib/components/find-location/find-location.component.js +61 -131
  13. package/esm2015/lib/components/find-person/find-person.component.js +93 -174
  14. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +11 -55
  15. package/esm2015/lib/components/generic-filter/generic-filter.component.js +54 -289
  16. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +20 -29
  17. package/esm2015/lib/components/index.js +2 -7
  18. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +23 -33
  19. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +34 -35
  20. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +16 -22
  21. package/esm2015/lib/components/pagination/pagination.component.js +28 -38
  22. package/esm2015/lib/components/public_api.js +33 -33
  23. package/esm2015/lib/components/search-judicials/search-judicials.component.js +70 -156
  24. package/esm2015/lib/components/search-location/search-location.component.js +76 -177
  25. package/esm2015/lib/components/search-venue/search-venue.component.js +62 -154
  26. package/esm2015/lib/components/selected-case/selected-case.component.js +54 -191
  27. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +22 -53
  28. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +38 -68
  29. package/esm2015/lib/components/service-message/service-message.component.js +23 -32
  30. package/esm2015/lib/components/service-messages/service-messages.component.js +29 -77
  31. package/esm2015/lib/components/share-case/share-case.component.js +45 -104
  32. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +27 -50
  33. package/esm2015/lib/components/tab/tab.component.js +19 -37
  34. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +20 -29
  35. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +13 -17
  36. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +13 -17
  37. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +16 -23
  38. package/esm2015/lib/components/user-details/user-details.component.js +47 -57
  39. package/esm2015/lib/components/user-list/user-list.component.js +19 -28
  40. package/esm2015/lib/components/user-select/user-select.component.js +23 -64
  41. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +21 -67
  42. package/esm2015/lib/directives/index.js +2 -7
  43. package/esm2015/lib/directives/let/let.directive.js +16 -49
  44. package/esm2015/lib/directives/public-api.js +3 -8
  45. package/esm2015/lib/exui-common-lib.module.js +31 -35
  46. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +23 -34
  47. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +18 -23
  48. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +30 -68
  49. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +19 -25
  50. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +19 -28
  51. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +23 -36
  52. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +23 -28
  53. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +24 -35
  54. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +15 -22
  55. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +23 -35
  56. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +18 -23
  57. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +27 -34
  58. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +32 -47
  59. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +22 -29
  60. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +20 -26
  61. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +26 -56
  62. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +17 -27
  63. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +40 -52
  64. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +29 -36
  65. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +18 -35
  66. package/esm2015/lib/gov-ui/components/index.js +2 -7
  67. package/esm2015/lib/gov-ui/components/public_api.js +21 -7
  68. package/esm2015/lib/gov-ui/directives/index.js +2 -0
  69. package/esm2015/lib/gov-ui/directives/public_api.js +2 -0
  70. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +12 -30
  71. package/esm2015/lib/gov-ui/gov-ui.service.js +12 -16
  72. package/esm2015/lib/gov-ui/index.js +2 -7
  73. package/esm2015/lib/gov-ui/models/banner-data-model.js +1 -16
  74. package/esm2015/lib/gov-ui/models/checkboxes-model.js +1 -22
  75. package/esm2015/lib/gov-ui/models/error-messages-model.js +1 -16
  76. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +1 -36
  77. package/esm2015/lib/gov-ui/models/index.js +1 -7
  78. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +1 -24
  79. package/esm2015/lib/gov-ui/models/public_api.js +1 -10
  80. package/esm2015/lib/gov-ui/public_api.js +5 -9
  81. package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +4 -14
  82. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +12 -48
  83. package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +5 -24
  84. package/esm2015/lib/gov-ui/validators/date.validator.js +3 -20
  85. package/esm2015/lib/gov-ui/validators/index.js +2 -7
  86. package/esm2015/lib/gov-ui/validators/public_api.js +4 -9
  87. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +3 -15
  88. package/esm2015/lib/models/case-share.model.js +1 -26
  89. package/esm2015/lib/models/contact-details.model.js +7 -31
  90. package/esm2015/lib/models/due-date.model.js +7 -14
  91. package/esm2015/lib/models/feature-user.js +1 -16
  92. package/esm2015/lib/models/filter.model.js +1 -112
  93. package/esm2015/lib/models/idle-config.model.js +1 -20
  94. package/esm2015/lib/models/index.js +6 -18
  95. package/esm2015/lib/models/location.model.js +1 -108
  96. package/esm2015/lib/models/person.model.js +17 -92
  97. package/esm2015/lib/models/public_api.js +4 -11
  98. package/esm2015/lib/models/search-options.model.js +1 -22
  99. package/esm2015/lib/models/tcDocument.model.js +1 -18
  100. package/esm2015/lib/models/timeout-notification.model.js +1 -18
  101. package/esm2015/lib/models/user-details.model.js +1 -22
  102. package/esm2015/lib/models/user.model.js +1 -25
  103. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +19 -92
  104. package/esm2015/lib/services/cookie/cookie.service.js +19 -78
  105. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +16 -51
  106. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +11 -35
  107. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +21 -101
  108. package/esm2015/lib/services/filter/filter.service.js +11 -63
  109. package/esm2015/lib/services/find-person/find-person.service.js +25 -130
  110. package/esm2015/lib/services/google-analytics/google-analytics.service.js +21 -70
  111. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +23 -71
  112. package/esm2015/lib/services/index.js +2 -7
  113. package/esm2015/lib/services/loading/loading.service.js +11 -48
  114. package/esm2015/lib/services/locations/location.service.js +22 -35
  115. package/esm2015/lib/services/manage-session/manage-session.services.js +21 -70
  116. package/esm2015/lib/services/public-api.js +13 -18
  117. package/esm2015/lib/services/role-guard/role.guard.js +24 -61
  118. package/esm2015/lib/services/role-guard/role.service.js +11 -28
  119. package/esm2015/lib/services/session-storage/session-storage.service.js +12 -24
  120. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +20 -82
  121. package/esm2015/lib/window.js +1 -10
  122. package/esm2015/public-api.js +8 -13
  123. package/esm5/hmcts-rpx-xui-common-lib.js +2 -7
  124. package/esm5/lib/components/accessibility/accessibility.component.js +10 -15
  125. package/esm5/lib/components/checkbox-list/checkbox-list.component.js +57 -232
  126. package/esm5/lib/components/contact-details/contact-details.component.js +14 -22
  127. package/esm5/lib/components/cookie-banner/cookie-banner.component.js +36 -106
  128. package/esm5/lib/components/due-date/due-date.component.js +29 -142
  129. package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +27 -33
  130. package/esm5/lib/components/find-location/find-location.component.js +71 -167
  131. package/esm5/lib/components/find-person/find-person.component.js +97 -193
  132. package/esm5/lib/components/generic-filter/generic-filter-utils.js +13 -57
  133. package/esm5/lib/components/generic-filter/generic-filter.component.js +83 -408
  134. package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +19 -32
  135. package/esm5/lib/components/index.js +2 -7
  136. package/esm5/lib/components/invite-user-form/invite-user-form.component.js +23 -37
  137. package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +32 -34
  138. package/esm5/lib/components/loading-spinner/loading-spinner.component.js +14 -21
  139. package/esm5/lib/components/pagination/pagination.component.js +28 -45
  140. package/esm5/lib/components/public_api.js +33 -33
  141. package/esm5/lib/components/search-judicials/search-judicials.component.js +78 -198
  142. package/esm5/lib/components/search-location/search-location.component.js +84 -207
  143. package/esm5/lib/components/search-venue/search-venue.component.js +71 -199
  144. package/esm5/lib/components/selected-case/selected-case.component.js +72 -279
  145. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +22 -61
  146. package/esm5/lib/components/selected-case-list/selected-case-list.component.js +39 -82
  147. package/esm5/lib/components/service-message/service-message.component.js +22 -36
  148. package/esm5/lib/components/service-messages/service-messages.component.js +30 -91
  149. package/esm5/lib/components/share-case/share-case.component.js +52 -138
  150. package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +25 -49
  151. package/esm5/lib/components/tab/tab.component.js +18 -41
  152. package/esm5/lib/components/tc-confirm/tc-confirm.component.js +19 -32
  153. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +10 -15
  154. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +10 -15
  155. package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +14 -22
  156. package/esm5/lib/components/user-details/user-details.component.js +48 -71
  157. package/esm5/lib/components/user-list/user-list.component.js +18 -32
  158. package/esm5/lib/components/user-select/user-select.component.js +27 -92
  159. package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +21 -70
  160. package/esm5/lib/directives/index.js +2 -7
  161. package/esm5/lib/directives/let/let.directive.js +15 -51
  162. package/esm5/lib/directives/public-api.js +3 -8
  163. package/esm5/lib/exui-common-lib.module.js +22 -28
  164. package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +22 -37
  165. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +16 -22
  166. package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +32 -89
  167. package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +17 -24
  168. package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +18 -31
  169. package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +23 -43
  170. package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +21 -27
  171. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +24 -45
  172. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +13 -21
  173. package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +18 -44
  174. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +16 -22
  175. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +26 -37
  176. package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +31 -51
  177. package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +21 -32
  178. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +18 -25
  179. package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +28 -71
  180. package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +16 -27
  181. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +41 -60
  182. package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +28 -36
  183. package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +16 -34
  184. package/esm5/lib/gov-ui/components/index.js +2 -7
  185. package/esm5/lib/gov-ui/components/public_api.js +21 -7
  186. package/esm5/lib/gov-ui/directives/index.js +2 -0
  187. package/esm5/lib/gov-ui/directives/public_api.js +2 -0
  188. package/esm5/lib/gov-ui/directives/remove-host.directive.js +10 -29
  189. package/esm5/lib/gov-ui/gov-ui.service.js +9 -14
  190. package/esm5/lib/gov-ui/index.js +2 -7
  191. package/esm5/lib/gov-ui/models/banner-data-model.js +1 -16
  192. package/esm5/lib/gov-ui/models/checkboxes-model.js +1 -22
  193. package/esm5/lib/gov-ui/models/error-messages-model.js +1 -16
  194. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +1 -36
  195. package/esm5/lib/gov-ui/models/index.js +1 -7
  196. package/esm5/lib/gov-ui/models/isession-storage.interface.js +1 -24
  197. package/esm5/lib/gov-ui/models/public_api.js +1 -10
  198. package/esm5/lib/gov-ui/public_api.js +5 -9
  199. package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +3 -34
  200. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +12 -48
  201. package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +5 -24
  202. package/esm5/lib/gov-ui/validators/date.validator.js +3 -20
  203. package/esm5/lib/gov-ui/validators/index.js +2 -7
  204. package/esm5/lib/gov-ui/validators/public_api.js +4 -9
  205. package/esm5/lib/gov-ui/validators/radio-group.validator.js +3 -15
  206. package/esm5/lib/models/case-share.model.js +1 -26
  207. package/esm5/lib/models/contact-details.model.js +7 -31
  208. package/esm5/lib/models/due-date.model.js +7 -14
  209. package/esm5/lib/models/feature-user.js +1 -16
  210. package/esm5/lib/models/filter.model.js +1 -112
  211. package/esm5/lib/models/idle-config.model.js +1 -20
  212. package/esm5/lib/models/index.js +6 -18
  213. package/esm5/lib/models/location.model.js +1 -108
  214. package/esm5/lib/models/person.model.js +17 -92
  215. package/esm5/lib/models/public_api.js +4 -11
  216. package/esm5/lib/models/search-options.model.js +1 -22
  217. package/esm5/lib/models/tcDocument.model.js +1 -18
  218. package/esm5/lib/models/timeout-notification.model.js +1 -18
  219. package/esm5/lib/models/user-details.model.js +1 -22
  220. package/esm5/lib/models/user.model.js +1 -25
  221. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +27 -132
  222. package/esm5/lib/services/cookie/cookie.service.js +21 -104
  223. package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +13 -61
  224. package/esm5/lib/services/feature-toggle/feature-toggle.service.js +12 -70
  225. package/esm5/lib/services/feature-toggle/launch-darkly.service.js +21 -142
  226. package/esm5/lib/services/filter/filter.service.js +15 -101
  227. package/esm5/lib/services/find-person/find-person.service.js +27 -152
  228. package/esm5/lib/services/google-analytics/google-analytics.service.js +21 -78
  229. package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +23 -79
  230. package/esm5/lib/services/index.js +2 -7
  231. package/esm5/lib/services/loading/loading.service.js +14 -69
  232. package/esm5/lib/services/locations/location.service.js +11 -50
  233. package/esm5/lib/services/manage-session/manage-session.services.js +20 -73
  234. package/esm5/lib/services/public-api.js +13 -18
  235. package/esm5/lib/services/role-guard/role.guard.js +22 -60
  236. package/esm5/lib/services/role-guard/role.service.js +10 -28
  237. package/esm5/lib/services/session-storage/session-storage.service.js +12 -61
  238. package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +19 -111
  239. package/esm5/lib/window.js +1 -10
  240. package/esm5/public-api.js +8 -13
  241. package/fesm2015/hmcts-rpx-xui-common-lib.js +3152 -4924
  242. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  243. package/fesm5/hmcts-rpx-xui-common-lib.js +3458 -6178
  244. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  245. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  246. package/lib/components/checkbox-list/checkbox-list.component.d.ts +6 -5
  247. package/lib/components/due-date/due-date.component.d.ts +4 -4
  248. package/lib/components/find-location/find-location.component.d.ts +4 -2
  249. package/lib/components/generic-filter/generic-filter.component.d.ts +4 -2
  250. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
  251. package/lib/components/invite-user-form/invite-user-form.component.d.ts +2 -2
  252. package/lib/components/public_api.d.ts +9 -4
  253. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  254. package/lib/components/search-location/search-location.component.d.ts +4 -2
  255. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  256. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  257. package/lib/directives/let/let.directive.d.ts +1 -1
  258. package/lib/exui-common-lib.module.d.ts +1 -1
  259. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  260. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  261. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +1 -1
  262. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  263. package/lib/gov-ui/components/public_api.d.ts +19 -0
  264. package/lib/gov-ui/directives/index.d.ts +1 -0
  265. package/lib/gov-ui/directives/public_api.d.ts +1 -0
  266. package/lib/gov-ui/public_api.d.ts +2 -1
  267. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  268. package/lib/services/loading/loading.service.d.ts +2 -2
  269. package/lib/services/role-guard/role.service.d.ts +2 -1
  270. package/lib/window.d.ts +2 -2
  271. package/package.json +2 -6
@@ -1,18 +1,10 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/search-venue/search-venue.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
1
+ import { __decorate, __metadata } from "tslib";
6
2
  import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
7
- import { AbstractControl, FormArray, FormBuilder, FormControl } from '@angular/forms';
3
+ import { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';
8
4
  import { Subject } from 'rxjs';
9
5
  import { debounceTime, mergeMap } from 'rxjs/operators';
10
6
  import { LocationService } from '../../services/locations/location.service';
11
- export class SearchVenueComponent {
12
- /**
13
- * @param {?} locationService
14
- * @param {?} fb
15
- */
7
+ let SearchVenueComponent = class SearchVenueComponent {
16
8
  constructor(locationService, fb) {
17
9
  this.locationService = locationService;
18
10
  this.disabled = null;
@@ -31,15 +23,9 @@ export class SearchVenueComponent {
31
23
  });
32
24
  this.selectedLocations = [];
33
25
  }
34
- /**
35
- * @return {?}
36
- */
37
26
  ngAfterContentInit() {
38
27
  this.readyAfterContent = true;
39
28
  }
40
- /**
41
- * @return {?}
42
- */
43
29
  ngOnInit() {
44
30
  this.displayedLocations = [];
45
31
  if (this.control) {
@@ -47,74 +33,28 @@ export class SearchVenueComponent {
47
33
  this.findLocationFormGroup.controls.locationSelectedFormControl = this.control;
48
34
  }
49
35
  }
50
- this.keyUpSubject$.pipe(debounceTime(500)).subscribe((/**
51
- * @param {?} searchValue
52
- * @return {?}
53
- */
54
- searchValue => this.search((/** @type {?} */ (searchValue)))));
36
+ this.keyUpSubject$.pipe(debounceTime(500)).subscribe(searchValue => this.search(searchValue));
55
37
  }
56
- /**
57
- * @return {?}
58
- */
59
38
  onKeyDown() {
60
39
  this.locationChanged.emit();
61
40
  }
62
- /**
63
- * @param {?} event
64
- * @return {?}
65
- */
66
41
  onKeyUp(event) {
67
42
  this.showAutocomplete = false;
68
43
  this.keyUpSubject$.next(event.target.value);
69
44
  }
70
- /**
71
- * @return {?}
72
- */
73
45
  onFocus() {
74
46
  this.showAutocomplete = false;
75
47
  }
76
- /**
77
- * @return {?}
78
- */
79
48
  get displayedLocationsDuplicationFiltered() {
80
- return this.displayedLocations.filter((/**
81
- * @param {?} location
82
- * @return {?}
83
- */
84
- location => !this.selectedLocations.map((/**
85
- * @param {?} selectedLocation
86
- * @return {?}
87
- */
88
- selectedLocation => selectedLocation.epimms_id)).includes(location.epimms_id) && location.court_name));
49
+ return this.displayedLocations.filter(location => !this.selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(location.epimms_id) && location.court_name);
89
50
  }
90
- /**
91
- * @param {?} term
92
- * @return {?}
93
- */
94
51
  filter(term) {
95
- this.searchLocations(term).pipe(mergeMap((/**
96
- * @param {?} apiData
97
- * @return {?}
98
- */
99
- (apiData) => {
100
- /** @type {?} */
101
- const apiFilter = apiData.filter((/**
102
- * @param {?} apiLocation
103
- * @return {?}
104
- */
105
- apiLocation => !this.selectedLocations.map((/**
106
- * @param {?} selectedLocation
107
- * @return {?}
108
- */
109
- selectedLocation => selectedLocation.epimms_id)).includes(apiLocation.epimms_id)));
52
+ this.searchLocations(term).pipe(mergeMap((apiData) => {
53
+ const apiFilter = apiData.filter(apiLocation => !this.selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(apiLocation.epimms_id));
110
54
  this.displayedLocations = apiFilter;
111
55
  this.searchInProgress = false;
112
56
  return apiFilter;
113
- }))).subscribe((/**
114
- * @param {?} location
115
- * @return {?}
116
- */
117
- location => {
57
+ })).subscribe(location => {
118
58
  if (term === location.court_name) {
119
59
  this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(location);
120
60
  this.displayedLocations = [];
@@ -122,25 +62,17 @@ export class SearchVenueComponent {
122
62
  this.showAutocomplete = false;
123
63
  }
124
64
  this.searchInProgress = false;
125
- }));
65
+ });
126
66
  }
127
- /**
128
- * @param {?=} selection
129
- * @return {?}
130
- */
131
67
  onSelectionChange(selection) {
132
68
  if (this.findLocationFormGroup.controls.findLocationFormControl instanceof FormArray) {
133
- ((/** @type {?} */ (this.findLocationFormGroup.controls.locationSelectedFormControl))).push(new FormControl(selection.epimms_id));
69
+ this.findLocationFormGroup.controls.locationSelectedFormControl.push(new FormControl(selection.epimms_id));
134
70
  }
135
71
  else {
136
72
  this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(selection);
137
73
  }
138
74
  this.locationChanged.emit(selection);
139
75
  }
140
- /**
141
- * @param {?} currentValue
142
- * @return {?}
143
- */
144
76
  search(currentValue) {
145
77
  this.searchInProgress = true;
146
78
  this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);
@@ -155,92 +87,68 @@ export class SearchVenueComponent {
155
87
  this.searchInProgress = false;
156
88
  }
157
89
  }
158
- /**
159
- * @param {?} selectedLocation
160
- * @return {?}
161
- */
162
90
  getDisplayName(selectedLocation) {
163
91
  return selectedLocation.court_name;
164
92
  }
165
- /**
166
- * @param {?} term
167
- * @return {?}
168
- */
169
93
  searchLocations(term) {
170
94
  return this.locationService.searchLocations(this.serviceIds, this.locationType, term);
171
95
  }
172
- /**
173
- * @return {?}
174
- */
175
96
  getControlCourtNameValue() {
176
97
  return this.findLocationFormGroup && this.findLocationFormGroup.controls && this.findLocationFormGroup.controls.locationSelectedFormControl.value ?
177
- ((/** @type {?} */ (this.findLocationFormGroup.controls.locationSelectedFormControl.value))).court_name : '';
98
+ this.findLocationFormGroup.controls.locationSelectedFormControl.value.court_name : '';
178
99
  }
179
- }
180
- SearchVenueComponent.decorators = [
181
- { type: Component, args: [{
182
- selector: 'xuilib-search-venue',
183
- template: "<div class=\"auto-complete-container\">\n <div *ngIf=\"readyAfterContent\" class=\"autocomplete__wrapper\">\n <input\n [formControl]=\"findLocationFormGroup.controls.findLocationFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n (keydown)=\"onKeyDown()\"\n (keyup)=\"onKeyUp($event)\"\n (focus)=\"onFocus()\"\n class=\"autocomplete__input autocomplete__input--default search-box\"\n [attr.disabled]=\"!disabled ? null: disabled\"\n [value]=\"getControlCourtNameValue()\"\n #inputSelectedLocation>\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of displayedLocationsDuplicationFiltered\"\n [value]=\"getDisplayName(location)\"\n (onSelectionChange)=\"onSelectionChange(location)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(location) }}\n </mat-option>\n <mat-option *ngIf=\"!displayedLocationsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">{{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n </div>\n</div>\n",
184
- styles: [".autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%;background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:#fd0 solid 3px;outline-offset:0;box-shadow:inset 0 0 0 2px}.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}"]
185
- }] }
186
- ];
187
- /** @nocollapse */
100
+ };
188
101
  SearchVenueComponent.ctorParameters = () => [
189
102
  { type: LocationService },
190
103
  { type: FormBuilder }
191
104
  ];
192
- SearchVenueComponent.propDecorators = {
193
- control: [{ type: Input }],
194
- disabled: [{ type: Input }],
195
- locationType: [{ type: Input }],
196
- selectedLocations: [{ type: Input }],
197
- serviceIds: [{ type: Input }],
198
- submitted: [{ type: Input }],
199
- autoCompleteInputBox: [{ type: ViewChild, args: ['inputSelectedLocation', { read: ElementRef },] }],
200
- showAutocomplete: [{ type: Input }],
201
- displayedLocations: [{ type: Input }],
202
- locationChanged: [{ type: Output }]
203
- };
204
- if (false) {
205
- /** @type {?} */
206
- SearchVenueComponent.prototype.control;
207
- /** @type {?} */
208
- SearchVenueComponent.prototype.disabled;
209
- /** @type {?} */
210
- SearchVenueComponent.prototype.locationType;
211
- /** @type {?} */
212
- SearchVenueComponent.prototype.selectedLocations;
213
- /** @type {?} */
214
- SearchVenueComponent.prototype.serviceIds;
215
- /** @type {?} */
216
- SearchVenueComponent.prototype.submitted;
217
- /** @type {?} */
218
- SearchVenueComponent.prototype.autoCompleteInputBox;
219
- /** @type {?} */
220
- SearchVenueComponent.prototype.findLocationFormGroup;
221
- /** @type {?} */
222
- SearchVenueComponent.prototype.showAutocomplete;
223
- /** @type {?} */
224
- SearchVenueComponent.prototype.displayedLocations;
225
- /** @type {?} */
226
- SearchVenueComponent.prototype.locationChanged;
227
- /** @type {?} */
228
- SearchVenueComponent.prototype.selectedLocation;
229
- /**
230
- * @type {?}
231
- * @private
232
- */
233
- SearchVenueComponent.prototype.minSearchCharacters;
234
- /** @type {?} */
235
- SearchVenueComponent.prototype.keyUpSubject$;
236
- /** @type {?} */
237
- SearchVenueComponent.prototype.readyAfterContent;
238
- /** @type {?} */
239
- SearchVenueComponent.prototype.searchInProgress;
240
- /**
241
- * @type {?}
242
- * @private
243
- */
244
- SearchVenueComponent.prototype.locationService;
245
- }
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXZlbnVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWFyY2gtdmVudWUvc2VhcmNoLXZlbnVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQy9GLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFPMUUsTUFBTSxPQUFPLG9CQUFvQjs7Ozs7SUFrQi9CLFlBQTZCLGVBQWdDLEVBQUUsRUFBZTtRQUFqRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQjdDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBRzNCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRTVELHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9DLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVB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OztJQUM3RSxnREFBK0M7Ozs7O0lBQy9DLG1EQUF5Qzs7SUFDekMsNkNBQXNEOztJQUN0RCxpREFBMEM7O0lBQzFDLGdEQUF5Qzs7Ozs7SUFFN0IsK0NBQWlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9jYXRpb25CeUVQSU1NU01vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHtMb2NhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2F0aW9ucy9sb2NhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNlYXJjaC12ZW51ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hWZW51ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZUlkczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXRTZWxlY3RlZExvY2F0aW9uJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSBwdWJsaWMgYXV0b0NvbXBsZXRlSW5wdXRCb3g6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHB1YmxpYyBmaW5kTG9jYXRpb25Gb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXllZExvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW107XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxMb2NhdGlvbkJ5RVBJTU1TTW9kZWw+KCk7XG4gIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWluU2VhcmNoQ2hhcmFjdGVycyA9IDM7XG4gIHB1YmxpYyBrZXlVcFN1YmplY3QkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgcmVhZHlBZnRlckNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaEluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uU2VydmljZTogTG9jYXRpb25TZXJ2aWNlLCBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cCA9IGZiLmdyb3VwKHtcbiAgICAgIGZpbmRMb2NhdGlvbkZvcm1Db250cm9sOiBbbnVsbF0sXG4gICAgICBsb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2w6IFtudWxsXVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWFkeUFmdGVyQ29udGVudCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sID0gdGhpcy5jb250cm9sO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmtleVVwU3ViamVjdCQucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKHNlYXJjaFZhbHVlID0+IHRoaXMuc2VhcmNoKHNlYXJjaFZhbHVlIGFzIHN0cmluZykpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgdGhpcy5rZXlVcFN1YmplY3QkLm5leHQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCkge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5ZWRMb2NhdGlvbnNEdXBsaWNhdGlvbkZpbHRlcmVkKCk6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMuZmlsdGVyKFxuICAgICAgbG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGxvY2F0aW9uLmVwaW1tc19pZCkgJiYgbG9jYXRpb24uY291cnRfbmFtZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoTG9jYXRpb25zKHRlcm0pLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoYXBpRGF0YTogTG9jYXRpb25CeUVQSU1NU01vZGVsW10pID0+IHtcbiAgICAgICAgY29uc3QgYXBpRmlsdGVyID0gYXBpRGF0YS5maWx0ZXIoXG4gICAgICAgICAgYXBpTG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGFwaUxvY2F0aW9uLmVwaW1tc19pZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBhcGlGaWx0ZXI7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gYXBpRmlsdGVyO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZShsb2NhdGlvbiA9PiB7XG4gICAgICBpZiAodGVybSA9PT0gbG9jYXRpb24uY291cnRfbmFtZSkge1xuICAgICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUobG9jYXRpb24pO1xuICAgICAgICB0aGlzLmRpc3BsYXllZExvY2F0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24/OiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMuZmluZExvY2F0aW9uRm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wgYXMgRm9ybUFycmF5KS5wdXNoKG5ldyBGb3JtQ29udHJvbChzZWxlY3Rpb24uZXBpbW1zX2lkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKGN1cnJlbnRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSAhIWN1cnJlbnRWYWx1ZSAmJiAoY3VycmVudFZhbHVlLmxlbmd0aCA+PSB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpO1xuICAgIGlmICghY3VycmVudFZhbHVlIHx8ICFjdXJyZW50VmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93QXV0b2NvbXBsZXRlKSB7XG4gICAgICB0aGlzLmZpbHRlcihjdXJyZW50VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRMb2NhdGlvbjogTG9jYXRpb25CeUVQSU1NU01vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRMb2NhdGlvbi5jb3VydF9uYW1lO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaExvY2F0aW9ucyh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvY2F0aW9uQnlFUElNTVNNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25TZXJ2aWNlLnNlYXJjaExvY2F0aW9ucyh0aGlzLnNlcnZpY2VJZHMsIHRoaXMubG9jYXRpb25UeXBlLCB0ZXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250cm9sQ291cnROYW1lVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlID9cbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wudmFsdWUgYXMgTG9jYXRpb25CeUVQSU1NU01vZGVsKS5jb3VydF9uYW1lIDogJyc7XG4gIH1cbn1cbiJdfQ==
105
+ __decorate([
106
+ Input(),
107
+ __metadata("design:type", AbstractControl)
108
+ ], SearchVenueComponent.prototype, "control", void 0);
109
+ __decorate([
110
+ Input(),
111
+ __metadata("design:type", Boolean)
112
+ ], SearchVenueComponent.prototype, "disabled", void 0);
113
+ __decorate([
114
+ Input(),
115
+ __metadata("design:type", String)
116
+ ], SearchVenueComponent.prototype, "locationType", void 0);
117
+ __decorate([
118
+ Input(),
119
+ __metadata("design:type", Array)
120
+ ], SearchVenueComponent.prototype, "selectedLocations", void 0);
121
+ __decorate([
122
+ Input(),
123
+ __metadata("design:type", String)
124
+ ], SearchVenueComponent.prototype, "serviceIds", void 0);
125
+ __decorate([
126
+ Input(),
127
+ __metadata("design:type", Boolean)
128
+ ], SearchVenueComponent.prototype, "submitted", void 0);
129
+ __decorate([
130
+ ViewChild('inputSelectedLocation', { read: ElementRef }),
131
+ __metadata("design:type", ElementRef)
132
+ ], SearchVenueComponent.prototype, "autoCompleteInputBox", void 0);
133
+ __decorate([
134
+ Input(),
135
+ __metadata("design:type", Boolean)
136
+ ], SearchVenueComponent.prototype, "showAutocomplete", void 0);
137
+ __decorate([
138
+ Input(),
139
+ __metadata("design:type", Array)
140
+ ], SearchVenueComponent.prototype, "displayedLocations", void 0);
141
+ __decorate([
142
+ Output(),
143
+ __metadata("design:type", Object)
144
+ ], SearchVenueComponent.prototype, "locationChanged", void 0);
145
+ SearchVenueComponent = __decorate([
146
+ Component({
147
+ selector: 'xuilib-search-venue',
148
+ template: "<div class=\"auto-complete-container\">\n <div *ngIf=\"readyAfterContent\" class=\"autocomplete__wrapper\">\n <input\n [formControl]=\"findLocationFormGroup.controls.findLocationFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n (keydown)=\"onKeyDown()\"\n (keyup)=\"onKeyUp($event)\"\n (focus)=\"onFocus()\"\n class=\"autocomplete__input autocomplete__input--default search-box\"\n [attr.disabled]=\"!disabled ? null: disabled\"\n [value]=\"getControlCourtNameValue()\"\n #inputSelectedLocation>\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of displayedLocationsDuplicationFiltered\"\n [value]=\"getDisplayName(location)\"\n (onSelectionChange)=\"onSelectionChange(location)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(location) }}\n </mat-option>\n <mat-option *ngIf=\"!displayedLocationsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">{{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n </div>\n</div>\n",
149
+ styles: [".autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%;background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:#fd0 solid 3px;outline-offset:0;box-shadow:inset 0 0 0 2px}.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}"]
150
+ }),
151
+ __metadata("design:paramtypes", [LocationService, FormBuilder])
152
+ ], SearchVenueComponent);
153
+ export { SearchVenueComponent };
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXZlbnVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWFyY2gtdmVudWUvc2VhcmNoLXZlbnVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9GLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFPMUUsSUFBYSxvQkFBb0IsR0FBakMsTUFBYSxvQkFBb0I7SUFrQi9CLFlBQTZCLGVBQWdDLEVBQUUsRUFBZTtRQUFqRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQjdDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBRzNCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRTVELHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9DLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsSUFBSSxDQUFD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R0FsQm5FLG9CQUFvQixDQW1IaEM7U0FuSFksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9jYXRpb25CeUVQSU1NU01vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHtMb2NhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2F0aW9ucy9sb2NhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNlYXJjaC12ZW51ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hWZW51ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZUlkczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXRTZWxlY3RlZExvY2F0aW9uJywge3JlYWQ6IEVsZW1lbnRSZWZ9KSBwdWJsaWMgYXV0b0NvbXBsZXRlSW5wdXRCb3g6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHB1YmxpYyBmaW5kTG9jYXRpb25Gb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXllZExvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW107XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxMb2NhdGlvbkJ5RVBJTU1TTW9kZWw+KCk7XG4gIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWluU2VhcmNoQ2hhcmFjdGVycyA9IDM7XG4gIHB1YmxpYyBrZXlVcFN1YmplY3QkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgcmVhZHlBZnRlckNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaEluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uU2VydmljZTogTG9jYXRpb25TZXJ2aWNlLCBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cCA9IGZiLmdyb3VwKHtcbiAgICAgIGZpbmRMb2NhdGlvbkZvcm1Db250cm9sOiBbbnVsbF0sXG4gICAgICBsb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2w6IFtudWxsXVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWFkeUFmdGVyQ29udGVudCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sID0gdGhpcy5jb250cm9sO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmtleVVwU3ViamVjdCQucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKHNlYXJjaFZhbHVlID0+IHRoaXMuc2VhcmNoKHNlYXJjaFZhbHVlIGFzIHN0cmluZykpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgdGhpcy5rZXlVcFN1YmplY3QkLm5leHQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCkge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5ZWRMb2NhdGlvbnNEdXBsaWNhdGlvbkZpbHRlcmVkKCk6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMuZmlsdGVyKFxuICAgICAgbG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGxvY2F0aW9uLmVwaW1tc19pZCkgJiYgbG9jYXRpb24uY291cnRfbmFtZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoTG9jYXRpb25zKHRlcm0pLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoYXBpRGF0YTogTG9jYXRpb25CeUVQSU1NU01vZGVsW10pID0+IHtcbiAgICAgICAgY29uc3QgYXBpRmlsdGVyID0gYXBpRGF0YS5maWx0ZXIoXG4gICAgICAgICAgYXBpTG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGFwaUxvY2F0aW9uLmVwaW1tc19pZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBhcGlGaWx0ZXI7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gYXBpRmlsdGVyO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZShsb2NhdGlvbiA9PiB7XG4gICAgICBpZiAodGVybSA9PT0gbG9jYXRpb24uY291cnRfbmFtZSkge1xuICAgICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUobG9jYXRpb24pO1xuICAgICAgICB0aGlzLmRpc3BsYXllZExvY2F0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24/OiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMuZmluZExvY2F0aW9uRm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wgYXMgRm9ybUFycmF5KS5wdXNoKG5ldyBGb3JtQ29udHJvbChzZWxlY3Rpb24uZXBpbW1zX2lkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKGN1cnJlbnRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSAhIWN1cnJlbnRWYWx1ZSAmJiAoY3VycmVudFZhbHVlLmxlbmd0aCA+PSB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpO1xuICAgIGlmICghY3VycmVudFZhbHVlIHx8ICFjdXJyZW50VmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93QXV0b2NvbXBsZXRlKSB7XG4gICAgICB0aGlzLmZpbHRlcihjdXJyZW50VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRMb2NhdGlvbjogTG9jYXRpb25CeUVQSU1NU01vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRMb2NhdGlvbi5jb3VydF9uYW1lO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaExvY2F0aW9ucyh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvY2F0aW9uQnlFUElNTVNNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25TZXJ2aWNlLnNlYXJjaExvY2F0aW9ucyh0aGlzLnNlcnZpY2VJZHMsIHRoaXMubG9jYXRpb25UeXBlLCB0ZXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250cm9sQ291cnROYW1lVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlID9cbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wudmFsdWUgYXMgTG9jYXRpb25CeUVQSU1NU01vZGVsKS5jb3VydF9uYW1lIDogJyc7XG4gIH1cbn1cbiJdfQ==