@hmcts/rpx-xui-common-lib 1.8.0-angular-upgrade-9-rc.6 → 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 +7435 -3173
  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 +28 -22
  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 +40 -31
  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 +49 -0
  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 -21
  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 +28 -22
  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 +34 -22
  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 +51 -0
  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 -21
  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 +6513 -3192
  242. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  243. package/fesm5/hmcts-rpx-xui-common-lib.js +7455 -3160
  244. package/fesm5/hmcts-rpx-xui-common-lib.js.map +1 -1
  245. package/hmcts-rpx-xui-common-lib.d.ts +21 -20
  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 +4 -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 +10 -0
  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 -19
  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,6 +1,10 @@
1
- import { __decorate, __metadata } from "tslib";
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
+ */
2
6
  import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
- import { AbstractControl, FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';
7
+ import { AbstractControl, FormArray, FormBuilder, FormControl } from '@angular/forms';
4
8
  import { Subject } from 'rxjs';
5
9
  import { debounceTime, mergeMap } from 'rxjs/operators';
6
10
  import { LocationService } from '../../services/locations/location.service';
@@ -23,10 +27,22 @@ var SearchVenueComponent = /** @class */ (function () {
23
27
  });
24
28
  this.selectedLocations = [];
25
29
  }
26
- SearchVenueComponent.prototype.ngAfterContentInit = function () {
30
+ /**
31
+ * @return {?}
32
+ */
33
+ SearchVenueComponent.prototype.ngAfterContentInit = /**
34
+ * @return {?}
35
+ */
36
+ function () {
27
37
  this.readyAfterContent = true;
28
38
  };
29
- SearchVenueComponent.prototype.ngOnInit = function () {
39
+ /**
40
+ * @return {?}
41
+ */
42
+ SearchVenueComponent.prototype.ngOnInit = /**
43
+ * @return {?}
44
+ */
45
+ function () {
30
46
  var _this = this;
31
47
  this.displayedLocations = [];
32
48
  if (this.control) {
@@ -34,34 +50,94 @@ var SearchVenueComponent = /** @class */ (function () {
34
50
  this.findLocationFormGroup.controls.locationSelectedFormControl = this.control;
35
51
  }
36
52
  }
37
- this.keyUpSubject$.pipe(debounceTime(500)).subscribe(function (searchValue) { return _this.search(searchValue); });
53
+ this.keyUpSubject$.pipe(debounceTime(500)).subscribe((/**
54
+ * @param {?} searchValue
55
+ * @return {?}
56
+ */
57
+ function (searchValue) { return _this.search((/** @type {?} */ (searchValue))); }));
38
58
  };
39
- SearchVenueComponent.prototype.onKeyDown = function () {
59
+ /**
60
+ * @return {?}
61
+ */
62
+ SearchVenueComponent.prototype.onKeyDown = /**
63
+ * @return {?}
64
+ */
65
+ function () {
40
66
  this.locationChanged.emit();
41
67
  };
42
- SearchVenueComponent.prototype.onKeyUp = function (event) {
68
+ /**
69
+ * @param {?} event
70
+ * @return {?}
71
+ */
72
+ SearchVenueComponent.prototype.onKeyUp = /**
73
+ * @param {?} event
74
+ * @return {?}
75
+ */
76
+ function (event) {
43
77
  this.showAutocomplete = false;
44
78
  this.keyUpSubject$.next(event.target.value);
45
79
  };
46
- SearchVenueComponent.prototype.onFocus = function () {
80
+ /**
81
+ * @return {?}
82
+ */
83
+ SearchVenueComponent.prototype.onFocus = /**
84
+ * @return {?}
85
+ */
86
+ function () {
47
87
  this.showAutocomplete = false;
48
88
  };
49
89
  Object.defineProperty(SearchVenueComponent.prototype, "displayedLocationsDuplicationFiltered", {
50
- get: function () {
90
+ get: /**
91
+ * @return {?}
92
+ */
93
+ function () {
51
94
  var _this = this;
52
- return this.displayedLocations.filter(function (location) { return !_this.selectedLocations.map(function (selectedLocation) { return selectedLocation.epimms_id; }).includes(location.epimms_id) && location.court_name; });
95
+ return this.displayedLocations.filter((/**
96
+ * @param {?} location
97
+ * @return {?}
98
+ */
99
+ function (location) { return !_this.selectedLocations.map((/**
100
+ * @param {?} selectedLocation
101
+ * @return {?}
102
+ */
103
+ function (selectedLocation) { return selectedLocation.epimms_id; })).includes(location.epimms_id) && location.court_name; }));
53
104
  },
54
105
  enumerable: true,
55
106
  configurable: true
56
107
  });
57
- SearchVenueComponent.prototype.filter = function (term) {
108
+ /**
109
+ * @param {?} term
110
+ * @return {?}
111
+ */
112
+ SearchVenueComponent.prototype.filter = /**
113
+ * @param {?} term
114
+ * @return {?}
115
+ */
116
+ function (term) {
58
117
  var _this = this;
59
- this.searchLocations(term).pipe(mergeMap(function (apiData) {
60
- var apiFilter = apiData.filter(function (apiLocation) { return !_this.selectedLocations.map(function (selectedLocation) { return selectedLocation.epimms_id; }).includes(apiLocation.epimms_id); });
118
+ this.searchLocations(term).pipe(mergeMap((/**
119
+ * @param {?} apiData
120
+ * @return {?}
121
+ */
122
+ function (apiData) {
123
+ /** @type {?} */
124
+ var apiFilter = apiData.filter((/**
125
+ * @param {?} apiLocation
126
+ * @return {?}
127
+ */
128
+ function (apiLocation) { return !_this.selectedLocations.map((/**
129
+ * @param {?} selectedLocation
130
+ * @return {?}
131
+ */
132
+ function (selectedLocation) { return selectedLocation.epimms_id; })).includes(apiLocation.epimms_id); }));
61
133
  _this.displayedLocations = apiFilter;
62
134
  _this.searchInProgress = false;
63
135
  return apiFilter;
64
- })).subscribe(function (location) {
136
+ }))).subscribe((/**
137
+ * @param {?} location
138
+ * @return {?}
139
+ */
140
+ function (location) {
65
141
  if (term === location.court_name) {
66
142
  _this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(location);
67
143
  _this.displayedLocations = [];
@@ -69,18 +145,34 @@ var SearchVenueComponent = /** @class */ (function () {
69
145
  _this.showAutocomplete = false;
70
146
  }
71
147
  _this.searchInProgress = false;
72
- });
148
+ }));
73
149
  };
74
- SearchVenueComponent.prototype.onSelectionChange = function (selection) {
150
+ /**
151
+ * @param {?=} selection
152
+ * @return {?}
153
+ */
154
+ SearchVenueComponent.prototype.onSelectionChange = /**
155
+ * @param {?=} selection
156
+ * @return {?}
157
+ */
158
+ function (selection) {
75
159
  if (this.findLocationFormGroup.controls.findLocationFormControl instanceof FormArray) {
76
- this.findLocationFormGroup.controls.locationSelectedFormControl.push(new FormControl(selection.epimms_id));
160
+ ((/** @type {?} */ (this.findLocationFormGroup.controls.locationSelectedFormControl))).push(new FormControl(selection.epimms_id));
77
161
  }
78
162
  else {
79
163
  this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(selection);
80
164
  }
81
165
  this.locationChanged.emit(selection);
82
166
  };
83
- SearchVenueComponent.prototype.search = function (currentValue) {
167
+ /**
168
+ * @param {?} currentValue
169
+ * @return {?}
170
+ */
171
+ SearchVenueComponent.prototype.search = /**
172
+ * @param {?} currentValue
173
+ * @return {?}
174
+ */
175
+ function (currentValue) {
84
176
  this.searchInProgress = true;
85
177
  this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);
86
178
  if (!currentValue || !currentValue.length) {
@@ -94,69 +186,105 @@ var SearchVenueComponent = /** @class */ (function () {
94
186
  this.searchInProgress = false;
95
187
  }
96
188
  };
97
- SearchVenueComponent.prototype.getDisplayName = function (selectedLocation) {
189
+ /**
190
+ * @param {?} selectedLocation
191
+ * @return {?}
192
+ */
193
+ SearchVenueComponent.prototype.getDisplayName = /**
194
+ * @param {?} selectedLocation
195
+ * @return {?}
196
+ */
197
+ function (selectedLocation) {
98
198
  return selectedLocation.court_name;
99
199
  };
100
- SearchVenueComponent.prototype.searchLocations = function (term) {
200
+ /**
201
+ * @param {?} term
202
+ * @return {?}
203
+ */
204
+ SearchVenueComponent.prototype.searchLocations = /**
205
+ * @param {?} term
206
+ * @return {?}
207
+ */
208
+ function (term) {
101
209
  return this.locationService.searchLocations(this.serviceIds, this.locationType, term);
102
210
  };
103
- SearchVenueComponent.prototype.getControlCourtNameValue = function () {
211
+ /**
212
+ * @return {?}
213
+ */
214
+ SearchVenueComponent.prototype.getControlCourtNameValue = /**
215
+ * @return {?}
216
+ */
217
+ function () {
104
218
  return this.findLocationFormGroup && this.findLocationFormGroup.controls && this.findLocationFormGroup.controls.locationSelectedFormControl.value ?
105
- this.findLocationFormGroup.controls.locationSelectedFormControl.value.court_name : '';
219
+ ((/** @type {?} */ (this.findLocationFormGroup.controls.locationSelectedFormControl.value))).court_name : '';
106
220
  };
221
+ SearchVenueComponent.decorators = [
222
+ { type: Component, args: [{
223
+ selector: 'xuilib-search-venue',
224
+ 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",
225
+ 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}"]
226
+ }] }
227
+ ];
228
+ /** @nocollapse */
107
229
  SearchVenueComponent.ctorParameters = function () { return [
108
230
  { type: LocationService },
109
231
  { type: FormBuilder }
110
232
  ]; };
111
- __decorate([
112
- Input(),
113
- __metadata("design:type", AbstractControl)
114
- ], SearchVenueComponent.prototype, "control", void 0);
115
- __decorate([
116
- Input(),
117
- __metadata("design:type", Boolean)
118
- ], SearchVenueComponent.prototype, "disabled", void 0);
119
- __decorate([
120
- Input(),
121
- __metadata("design:type", String)
122
- ], SearchVenueComponent.prototype, "locationType", void 0);
123
- __decorate([
124
- Input(),
125
- __metadata("design:type", Array)
126
- ], SearchVenueComponent.prototype, "selectedLocations", void 0);
127
- __decorate([
128
- Input(),
129
- __metadata("design:type", String)
130
- ], SearchVenueComponent.prototype, "serviceIds", void 0);
131
- __decorate([
132
- Input(),
133
- __metadata("design:type", Boolean)
134
- ], SearchVenueComponent.prototype, "submitted", void 0);
135
- __decorate([
136
- ViewChild('inputSelectedLocation', { read: ElementRef, static: true }),
137
- __metadata("design:type", ElementRef)
138
- ], SearchVenueComponent.prototype, "autoCompleteInputBox", void 0);
139
- __decorate([
140
- Input(),
141
- __metadata("design:type", Boolean)
142
- ], SearchVenueComponent.prototype, "showAutocomplete", void 0);
143
- __decorate([
144
- Input(),
145
- __metadata("design:type", Array)
146
- ], SearchVenueComponent.prototype, "displayedLocations", void 0);
147
- __decorate([
148
- Output(),
149
- __metadata("design:type", Object)
150
- ], SearchVenueComponent.prototype, "locationChanged", void 0);
151
- SearchVenueComponent = __decorate([
152
- Component({
153
- selector: 'xuilib-search-venue',
154
- 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",
155
- 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}"]
156
- }),
157
- __metadata("design:paramtypes", [LocationService, FormBuilder])
158
- ], SearchVenueComponent);
233
+ SearchVenueComponent.propDecorators = {
234
+ control: [{ type: Input }],
235
+ disabled: [{ type: Input }],
236
+ locationType: [{ type: Input }],
237
+ selectedLocations: [{ type: Input }],
238
+ serviceIds: [{ type: Input }],
239
+ submitted: [{ type: Input }],
240
+ autoCompleteInputBox: [{ type: ViewChild, args: ['inputSelectedLocation', { read: ElementRef, static: false },] }],
241
+ showAutocomplete: [{ type: Input }],
242
+ displayedLocations: [{ type: Input }],
243
+ locationChanged: [{ type: Output }]
244
+ };
159
245
  return SearchVenueComponent;
160
246
  }());
161
247
  export { SearchVenueComponent };
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXZlbnVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWFyY2gtdmVudWUvc2VhcmNoLXZlbnVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQy9GLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFPMUU7SUFrQkUsOEJBQTZCLGVBQWdDLEVBQUUsRUFBZTtRQUFqRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQjdDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBRzNCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRTVELHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9DLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyxLQUFLLENB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QUFLLEVBQUU7O29FQUFvRDtJQUNsRDtRQUFULE1BQU0sRUFBRTs7aUVBQW9FO0lBWGxFLG9CQUFvQjtRQUxoQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLHN0Q0FBNEM7O1NBRTdDLENBQUM7eUNBbUI4QyxlQUFlLEVBQU0sV0FBVztPQWxCbkUsb0JBQW9CLENBbUhoQztJQUFELDJCQUFDO0NBQUEsQUFuSEQsSUFtSEM7U0FuSFksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9jYXRpb25CeUVQSU1NU01vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHtMb2NhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2F0aW9ucy9sb2NhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNlYXJjaC12ZW51ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtdmVudWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hWZW51ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhdGlvblR5cGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZUlkczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQFZpZXdDaGlsZCgnaW5wdXRTZWxlY3RlZExvY2F0aW9uJywge3JlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgYXV0b0NvbXBsZXRlSW5wdXRCb3g6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHB1YmxpYyBmaW5kTG9jYXRpb25Gb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXllZExvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW107XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxMb2NhdGlvbkJ5RVBJTU1TTW9kZWw+KCk7XG4gIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWluU2VhcmNoQ2hhcmFjdGVycyA9IDM7XG4gIHB1YmxpYyBrZXlVcFN1YmplY3QkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgcmVhZHlBZnRlckNvbnRlbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaEluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uU2VydmljZTogTG9jYXRpb25TZXJ2aWNlLCBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cCA9IGZiLmdyb3VwKHtcbiAgICAgIGZpbmRMb2NhdGlvbkZvcm1Db250cm9sOiBbbnVsbF0sXG4gICAgICBsb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2w6IFtudWxsXVxuICAgIH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWFkeUFmdGVyQ29udGVudCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sID0gdGhpcy5jb250cm9sO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmtleVVwU3ViamVjdCQucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKHNlYXJjaFZhbHVlID0+IHRoaXMuc2VhcmNoKHNlYXJjaFZhbHVlIGFzIHN0cmluZykpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgdGhpcy5rZXlVcFN1YmplY3QkLm5leHQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCkge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5ZWRMb2NhdGlvbnNEdXBsaWNhdGlvbkZpbHRlcmVkKCk6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMuZmlsdGVyKFxuICAgICAgbG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGxvY2F0aW9uLmVwaW1tc19pZCkgJiYgbG9jYXRpb24uY291cnRfbmFtZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoTG9jYXRpb25zKHRlcm0pLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoYXBpRGF0YTogTG9jYXRpb25CeUVQSU1NU01vZGVsW10pID0+IHtcbiAgICAgICAgY29uc3QgYXBpRmlsdGVyID0gYXBpRGF0YS5maWx0ZXIoXG4gICAgICAgICAgYXBpTG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGFwaUxvY2F0aW9uLmVwaW1tc19pZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBhcGlGaWx0ZXI7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gYXBpRmlsdGVyO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZShsb2NhdGlvbiA9PiB7XG4gICAgICBpZiAodGVybSA9PT0gbG9jYXRpb24uY291cnRfbmFtZSkge1xuICAgICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUobG9jYXRpb24pO1xuICAgICAgICB0aGlzLmRpc3BsYXllZExvY2F0aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24/OiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMuZmluZExvY2F0aW9uRm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wgYXMgRm9ybUFycmF5KS5wdXNoKG5ldyBGb3JtQ29udHJvbChzZWxlY3Rpb24uZXBpbW1zX2lkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLmxvY2F0aW9uQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKGN1cnJlbnRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSAhIWN1cnJlbnRWYWx1ZSAmJiAoY3VycmVudFZhbHVlLmxlbmd0aCA+PSB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpO1xuICAgIGlmICghY3VycmVudFZhbHVlIHx8ICFjdXJyZW50VmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93QXV0b2NvbXBsZXRlKSB7XG4gICAgICB0aGlzLmZpbHRlcihjdXJyZW50VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRMb2NhdGlvbjogTG9jYXRpb25CeUVQSU1NU01vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRMb2NhdGlvbi5jb3VydF9uYW1lO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaExvY2F0aW9ucyh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPExvY2F0aW9uQnlFUElNTVNNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb25TZXJ2aWNlLnNlYXJjaExvY2F0aW9ucyh0aGlzLnNlcnZpY2VJZHMsIHRoaXMubG9jYXRpb25UeXBlLCB0ZXJtKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb250cm9sQ291cnROYW1lVmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMgJiYgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlID9cbiAgICAgICh0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wudmFsdWUgYXMgTG9jYXRpb25CeUVQSU1NU01vZGVsKS5jb3VydF9uYW1lIDogJyc7XG4gIH1cbn1cbiJdfQ==
248
+ if (false) {
249
+ /** @type {?} */
250
+ SearchVenueComponent.prototype.control;
251
+ /** @type {?} */
252
+ SearchVenueComponent.prototype.disabled;
253
+ /** @type {?} */
254
+ SearchVenueComponent.prototype.locationType;
255
+ /** @type {?} */
256
+ SearchVenueComponent.prototype.selectedLocations;
257
+ /** @type {?} */
258
+ SearchVenueComponent.prototype.serviceIds;
259
+ /** @type {?} */
260
+ SearchVenueComponent.prototype.submitted;
261
+ /** @type {?} */
262
+ SearchVenueComponent.prototype.autoCompleteInputBox;
263
+ /** @type {?} */
264
+ SearchVenueComponent.prototype.findLocationFormGroup;
265
+ /** @type {?} */
266
+ SearchVenueComponent.prototype.showAutocomplete;
267
+ /** @type {?} */
268
+ SearchVenueComponent.prototype.displayedLocations;
269
+ /** @type {?} */
270
+ SearchVenueComponent.prototype.locationChanged;
271
+ /** @type {?} */
272
+ SearchVenueComponent.prototype.selectedLocation;
273
+ /**
274
+ * @type {?}
275
+ * @private
276
+ */
277
+ SearchVenueComponent.prototype.minSearchCharacters;
278
+ /** @type {?} */
279
+ SearchVenueComponent.prototype.keyUpSubject$;
280
+ /** @type {?} */
281
+ SearchVenueComponent.prototype.readyAfterContent;
282
+ /** @type {?} */
283
+ SearchVenueComponent.prototype.searchInProgress;
284
+ /**
285
+ * @type {?}
286
+ * @private
287
+ */
288
+ SearchVenueComponent.prototype.locationService;
289
+ }
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXZlbnVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9zZWFyY2gtdmVudWUvc2VhcmNoLXZlbnVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBQy9GLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFMUU7SUF1QkUsOEJBQTZCLGVBQWdDLEVBQUUsRUFBZTtRQUFqRCxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFoQjdDLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFFMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixjQUFTLEdBQWEsSUFBSSxDQUFDO1FBRzNCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO1FBRTVELHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9DLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFD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RUFBRTttQ0FFdEUsS0FBSztxQ0FDTCxLQUFLO2tDQUNMLE1BQU07O0lBd0dULDJCQUFDO0NBQUEsQUF4SEQsSUF3SEM7U0FuSFksb0JBQW9COzs7SUFDL0IsdUNBQXlDOztJQUN6Qyx3Q0FBeUM7O0lBQ3pDLDRDQUEwQzs7SUFDMUMsaURBQTJEOztJQUMzRCwwQ0FBd0M7O0lBQ3hDLHlDQUEyQzs7SUFDM0Msb0RBQW1JOztJQUNuSSxxREFBd0M7O0lBQ3hDLGdEQUFrRDs7SUFDbEQsa0RBQTREOztJQUM1RCwrQ0FBNkU7O0lBQzdFLGdEQUErQzs7Ozs7SUFDL0MsbURBQXlDOztJQUN6Qyw2Q0FBc0Q7O0lBQ3RELGlEQUEwQzs7SUFDMUMsZ0RBQXlDOzs7OztJQUU3QiwrQ0FBaUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBtZXJnZU1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2NhdGlvbkJ5RVBJTU1TTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy9sb2NhdGlvbi5tb2RlbCc7XG5pbXBvcnQge0xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYXRpb25zL2xvY2F0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItc2VhcmNoLXZlbnVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC12ZW51ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC12ZW51ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFZlbnVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIGxvY2F0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlSWRzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHN1Ym1pdHRlZD86IGJvb2xlYW4gPSB0cnVlO1xuICBAVmlld0NoaWxkKCdpbnB1dFNlbGVjdGVkTG9jYXRpb24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgcHVibGljIGF1dG9Db21wbGV0ZUlucHV0Qm94OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBwdWJsaWMgZmluZExvY2F0aW9uRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdO1xuICBAT3V0cHV0KCkgcHVibGljIGxvY2F0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TG9jYXRpb25CeUVQSU1NU01vZGVsPigpO1xuICBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbjogTG9jYXRpb25CeUVQSU1NU01vZGVsO1xuICBwcml2YXRlIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAzO1xuICBwdWJsaWMga2V5VXBTdWJqZWN0JDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHJlYWR5QWZ0ZXJDb250ZW50OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzZWFyY2hJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSwgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgPSBmYi5ncm91cCh7XG4gICAgICBmaW5kTG9jYXRpb25Gb3JtQ29udHJvbDogW251bGxdLFxuICAgICAgbG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sOiBbbnVsbF1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25zID0gW107XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVhZHlBZnRlckNvbnRlbnQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkTG9jYXRpb25zID0gW107XG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgaWYgKHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwICYmIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbCA9IHRoaXMuY29udHJvbDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5rZXlVcFN1YmplY3QkLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZShzZWFyY2hWYWx1ZSA9PiB0aGlzLnNlYXJjaChzZWFyY2hWYWx1ZSBhcyBzdHJpbmcpKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleURvd24oKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhdGlvbkNoYW5nZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5VXAoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICAgIHRoaXMua2V5VXBTdWJqZWN0JC5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpIHtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheWVkTG9jYXRpb25zRHVwbGljYXRpb25GaWx0ZXJlZCgpOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheWVkTG9jYXRpb25zLmZpbHRlcihcbiAgICAgIGxvY2F0aW9uID0+ICF0aGlzLnNlbGVjdGVkTG9jYXRpb25zLm1hcChzZWxlY3RlZExvY2F0aW9uID0+IHNlbGVjdGVkTG9jYXRpb24uZXBpbW1zX2lkKS5pbmNsdWRlcyhsb2NhdGlvbi5lcGltbXNfaWQpICYmIGxvY2F0aW9uLmNvdXJ0X25hbWVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcih0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaExvY2F0aW9ucyh0ZXJtKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGFwaURhdGE6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFwaUZpbHRlciA9IGFwaURhdGEuZmlsdGVyKFxuICAgICAgICAgIGFwaUxvY2F0aW9uID0+ICF0aGlzLnNlbGVjdGVkTG9jYXRpb25zLm1hcChzZWxlY3RlZExvY2F0aW9uID0+IHNlbGVjdGVkTG9jYXRpb24uZXBpbW1zX2lkKS5pbmNsdWRlcyhhcGlMb2NhdGlvbi5lcGltbXNfaWQpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkTG9jYXRpb25zID0gYXBpRmlsdGVyO1xuICAgICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGFwaUZpbHRlcjtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUobG9jYXRpb24gPT4ge1xuICAgICAgaWYgKHRlcm0gPT09IGxvY2F0aW9uLmNvdXJ0X25hbWUpIHtcbiAgICAgICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLnNldFZhbHVlKGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5sb2NhdGlvbkNoYW5nZWQuZW1pdChsb2NhdGlvbik7XG4gICAgICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uPzogTG9jYXRpb25CeUVQSU1NU01vZGVsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmZpbmRMb2NhdGlvbkZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sIGFzIEZvcm1BcnJheSkucHVzaChuZXcgRm9ybUNvbnRyb2woc2VsZWN0aW9uLmVwaW1tc19pZCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUoc2VsZWN0aW9uKTtcbiAgICB9XG4gICAgdGhpcy5sb2NhdGlvbkNoYW5nZWQuZW1pdChzZWxlY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaChjdXJyZW50VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gISFjdXJyZW50VmFsdWUgJiYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPj0gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKTtcbiAgICBpZiAoIWN1cnJlbnRWYWx1ZSB8fCAhY3VycmVudFZhbHVlLmxlbmd0aCkge1xuICAgICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd0F1dG9jb21wbGV0ZSkge1xuICAgICAgdGhpcy5maWx0ZXIoY3VycmVudFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldERpc3BsYXlOYW1lKHNlbGVjdGVkTG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlbGVjdGVkTG9jYXRpb24uY291cnRfbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hMb2NhdGlvbnModGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uU2VydmljZS5zZWFyY2hMb2NhdGlvbnModGhpcy5zZXJ2aWNlSWRzLCB0aGlzLmxvY2F0aW9uVHlwZSwgdGVybSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbENvdXJ0TmFtZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwICYmIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzICYmIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC52YWx1ZSA/XG4gICAgICAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlIGFzIExvY2F0aW9uQnlFUElNTVNNb2RlbCkuY291cnRfbmFtZSA6ICcnO1xuICB9XG59XG4iXX0=