@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,10 +1,6 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/search-judicials/search-judicials.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 { FindAPersonService } from '../../services/find-person/find-person.service';
@@ -28,13 +24,7 @@ var SearchJudicialsComponent = /** @class */ (function () {
28
24
  selectedFormControl: [null]
29
25
  });
30
26
  }
31
- /**
32
- * @return {?}
33
- */
34
- SearchJudicialsComponent.prototype.ngOnInit = /**
35
- * @return {?}
36
- */
37
- function () {
27
+ SearchJudicialsComponent.prototype.ngOnInit = function () {
38
28
  var _this = this;
39
29
  this.displayedJudicials = [];
40
30
  if (this.control) {
@@ -43,94 +33,34 @@ var SearchJudicialsComponent = /** @class */ (function () {
43
33
  this.formGroup.controls.formControl.setValue(this.getControlValueDisplayText());
44
34
  }
45
35
  }
46
- this.keyUpSubject$.pipe(debounceTime(500)).subscribe((/**
47
- * @param {?} searchValue
48
- * @return {?}
49
- */
50
- function (searchValue) { return _this.search((/** @type {?} */ (searchValue))); }));
36
+ this.keyUpSubject$.pipe(debounceTime(500)).subscribe(function (searchValue) { return _this.search(searchValue); });
51
37
  };
52
- /**
53
- * @return {?}
54
- */
55
- SearchJudicialsComponent.prototype.onKeyDown = /**
56
- * @return {?}
57
- */
58
- function () {
38
+ SearchJudicialsComponent.prototype.onKeyDown = function () {
59
39
  this.judicialChanged.emit();
60
40
  };
61
- /**
62
- * @param {?} event
63
- * @return {?}
64
- */
65
- SearchJudicialsComponent.prototype.onKeyUp = /**
66
- * @param {?} event
67
- * @return {?}
68
- */
69
- function (event) {
41
+ SearchJudicialsComponent.prototype.onKeyUp = function (event) {
70
42
  this.showAutocomplete = false;
71
43
  this.keyUpSubject$.next(event.target.value);
72
44
  };
73
- /**
74
- * @return {?}
75
- */
76
- SearchJudicialsComponent.prototype.onFocus = /**
77
- * @return {?}
78
- */
79
- function () {
45
+ SearchJudicialsComponent.prototype.onFocus = function () {
80
46
  this.showAutocomplete = false;
81
47
  };
82
48
  Object.defineProperty(SearchJudicialsComponent.prototype, "displayedJudicialsDuplicationFiltered", {
83
- get: /**
84
- * @return {?}
85
- */
86
- function () {
49
+ get: function () {
87
50
  var _this = this;
88
- return this.displayedJudicials.filter((/**
89
- * @param {?} judicial
90
- * @return {?}
91
- */
92
- function (judicial) { return !_this.selectedJudicials.map((/**
93
- * @param {?} selectedJudicial
94
- * @return {?}
95
- */
96
- function (selectedJudicial) { return selectedJudicial.idamId; })).includes(judicial.idamId); }));
51
+ return this.displayedJudicials.filter(function (judicial) { return !_this.selectedJudicials.map(function (selectedJudicial) { return selectedJudicial.idamId; }).includes(judicial.idamId); });
97
52
  },
98
53
  enumerable: true,
99
54
  configurable: true
100
55
  });
101
- /**
102
- * @param {?} term
103
- * @return {?}
104
- */
105
- SearchJudicialsComponent.prototype.filter = /**
106
- * @param {?} term
107
- * @return {?}
108
- */
109
- function (term) {
56
+ SearchJudicialsComponent.prototype.filter = function (term) {
110
57
  var _this = this;
111
- this.searchJudicials(term, this.serviceId).pipe(mergeMap((/**
112
- * @param {?} apiData
113
- * @return {?}
114
- */
115
- function (apiData) {
116
- /** @type {?} */
117
- var apiFilter = apiData.filter((/**
118
- * @param {?} apiJudicial
119
- * @return {?}
120
- */
121
- function (apiJudicial) { return !_this.selectedJudicials.map((/**
122
- * @param {?} selectedJudicial
123
- * @return {?}
124
- */
125
- function (selectedJudicial) { return selectedJudicial.idamId; })).includes(apiJudicial.idamId); }));
58
+ this.searchJudicials(term, this.serviceId).pipe(mergeMap(function (apiData) {
59
+ var apiFilter = apiData.filter(function (apiJudicial) { return !_this.selectedJudicials.map(function (selectedJudicial) { return selectedJudicial.idamId; }).includes(apiJudicial.idamId); });
126
60
  _this.displayedJudicials = apiFilter;
127
61
  _this.searchInProgress = false;
128
62
  return apiFilter;
129
- }))).subscribe((/**
130
- * @param {?} judicial
131
- * @return {?}
132
- */
133
- function (judicial) {
63
+ })).subscribe(function (judicial) {
134
64
  if (term === judicial.knownAs) {
135
65
  _this.formGroup.controls.selectedFormControl.setValue(judicial);
136
66
  _this.displayedJudicials = [];
@@ -138,34 +68,18 @@ var SearchJudicialsComponent = /** @class */ (function () {
138
68
  _this.showAutocomplete = false;
139
69
  }
140
70
  _this.searchInProgress = false;
141
- }));
71
+ });
142
72
  };
143
- /**
144
- * @param {?=} selection
145
- * @return {?}
146
- */
147
- SearchJudicialsComponent.prototype.onSelectionChange = /**
148
- * @param {?=} selection
149
- * @return {?}
150
- */
151
- function (selection) {
73
+ SearchJudicialsComponent.prototype.onSelectionChange = function (selection) {
152
74
  if (this.formGroup.controls.formControl instanceof FormArray) {
153
- ((/** @type {?} */ (this.formGroup.controls.selectedFormControl))).push(new FormControl(selection.idamId));
75
+ this.formGroup.controls.selectedFormControl.push(new FormControl(selection.idamId));
154
76
  }
155
77
  else {
156
78
  this.formGroup.controls.selectedFormControl.setValue(selection);
157
79
  }
158
80
  this.judicialChanged.emit(selection);
159
81
  };
160
- /**
161
- * @param {?} currentValue
162
- * @return {?}
163
- */
164
- SearchJudicialsComponent.prototype.search = /**
165
- * @param {?} currentValue
166
- * @return {?}
167
- */
168
- function (currentValue) {
82
+ SearchJudicialsComponent.prototype.search = function (currentValue) {
169
83
  this.searchInProgress = true;
170
84
  this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);
171
85
  if (!!currentValue) {
@@ -181,111 +95,77 @@ var SearchJudicialsComponent = /** @class */ (function () {
181
95
  this.searchInProgress = false;
182
96
  }
183
97
  };
184
- /**
185
- * @param {?} selectedJudicial
186
- * @return {?}
187
- */
188
- SearchJudicialsComponent.prototype.getDisplayName = /**
189
- * @param {?} selectedJudicial
190
- * @return {?}
191
- */
192
- function (selectedJudicial) {
98
+ SearchJudicialsComponent.prototype.getDisplayName = function (selectedJudicial) {
193
99
  return selectedJudicial.knownAs + " (" + selectedJudicial.emailId + ")";
194
100
  };
195
- /**
196
- * @param {?} term
197
- * @param {?} serviceId
198
- * @return {?}
199
- */
200
- SearchJudicialsComponent.prototype.searchJudicials = /**
201
- * @param {?} term
202
- * @param {?} serviceId
203
- * @return {?}
204
- */
205
- function (term, serviceId) {
101
+ SearchJudicialsComponent.prototype.searchJudicials = function (term, serviceId) {
206
102
  return this.judicialService.searchJudicial(term, serviceId);
207
103
  };
208
- /**
209
- * @return {?}
210
- */
211
- SearchJudicialsComponent.prototype.getControlValueDisplayText = /**
212
- * @return {?}
213
- */
214
- function () {
104
+ SearchJudicialsComponent.prototype.getControlValueDisplayText = function () {
215
105
  return this.formGroup && this.formGroup.controls && this.formGroup.controls.selectedFormControl.value ?
216
- this.getDisplayName((/** @type {?} */ (this.formGroup.controls.selectedFormControl.value))) : '';
106
+ this.getDisplayName(this.formGroup.controls.selectedFormControl.value) : '';
217
107
  };
218
- SearchJudicialsComponent.decorators = [
219
- { type: Component, args: [{
220
- selector: 'xuilib-search-judicials',
221
- template: "<div class=\"govuk-form-group\">\n <input id=\"inputSelectPerson{{idValue}}\" [placeholder]=\"placeholderContent\" [formControl]=\"formGroup.controls.formControl\"\n [matAutocomplete]=\"autoComplete\" (keydown)=\"onKeyDown()\" (keyup)=\"onKeyUp($event)\" (focus)=\"onFocus()\"\n class=\"govuk-input\" [attr.disabled]=\"!disabled ? null: disabled\" [value]=\"getControlValueDisplayText()\"\n #inputSelection>\n <mat-autocomplete autoActiveFirstOption #autoComplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let judicial of displayedJudicialsDuplicationFiltered\" class=\"select-option\"\n [value]=\"getDisplayName(judicial)\" (onSelectionChange)=\"onSelectionChange(judicial)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(judicial) }}\n </mat-option>\n <mat-option class=\"select-option\"\n *ngIf=\"!displayedJudicialsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">\n {{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n</div>\n",
222
- styles: [".hide-autocomplete{display:none}.mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}"]
223
- }] }
224
- ];
225
- /** @nocollapse */
226
108
  SearchJudicialsComponent.ctorParameters = function () { return [
227
109
  { type: FindAPersonService },
228
110
  { type: FormBuilder }
229
111
  ]; };
230
- SearchJudicialsComponent.propDecorators = {
231
- control: [{ type: Input }],
232
- disabled: [{ type: Input }],
233
- selectedJudicials: [{ type: Input }],
234
- submitted: [{ type: Input }],
235
- placeholderContent: [{ type: Input }],
236
- showAutocomplete: [{ type: Input }],
237
- displayedJudicials: [{ type: Input }],
238
- judicialChanged: [{ type: Output }],
239
- idValue: [{ type: Input }],
240
- errorMessage: [{ type: Input }],
241
- serviceId: [{ type: Input }],
242
- autoCompleteInputBox: [{ type: ViewChild, args: ['inputSelection', { read: ElementRef },] }]
243
- };
112
+ __decorate([
113
+ Input(),
114
+ __metadata("design:type", AbstractControl)
115
+ ], SearchJudicialsComponent.prototype, "control", void 0);
116
+ __decorate([
117
+ Input(),
118
+ __metadata("design:type", Boolean)
119
+ ], SearchJudicialsComponent.prototype, "disabled", void 0);
120
+ __decorate([
121
+ Input(),
122
+ __metadata("design:type", Array)
123
+ ], SearchJudicialsComponent.prototype, "selectedJudicials", void 0);
124
+ __decorate([
125
+ Input(),
126
+ __metadata("design:type", Boolean)
127
+ ], SearchJudicialsComponent.prototype, "submitted", void 0);
128
+ __decorate([
129
+ Input(),
130
+ __metadata("design:type", String)
131
+ ], SearchJudicialsComponent.prototype, "placeholderContent", void 0);
132
+ __decorate([
133
+ Input(),
134
+ __metadata("design:type", Boolean)
135
+ ], SearchJudicialsComponent.prototype, "showAutocomplete", void 0);
136
+ __decorate([
137
+ Input(),
138
+ __metadata("design:type", Array)
139
+ ], SearchJudicialsComponent.prototype, "displayedJudicials", void 0);
140
+ __decorate([
141
+ Output(),
142
+ __metadata("design:type", Object)
143
+ ], SearchJudicialsComponent.prototype, "judicialChanged", void 0);
144
+ __decorate([
145
+ Input(),
146
+ __metadata("design:type", String)
147
+ ], SearchJudicialsComponent.prototype, "idValue", void 0);
148
+ __decorate([
149
+ Input(),
150
+ __metadata("design:type", String)
151
+ ], SearchJudicialsComponent.prototype, "errorMessage", void 0);
152
+ __decorate([
153
+ Input(),
154
+ __metadata("design:type", String)
155
+ ], SearchJudicialsComponent.prototype, "serviceId", void 0);
156
+ __decorate([
157
+ ViewChild('inputSelection', { read: ElementRef }),
158
+ __metadata("design:type", ElementRef)
159
+ ], SearchJudicialsComponent.prototype, "autoCompleteInputBox", void 0);
160
+ SearchJudicialsComponent = __decorate([
161
+ Component({
162
+ selector: 'xuilib-search-judicials',
163
+ template: "<div class=\"govuk-form-group\">\n <input id=\"inputSelectPerson{{idValue}}\" [placeholder]=\"placeholderContent\" [formControl]=\"formGroup.controls.formControl\"\n [matAutocomplete]=\"autoComplete\" (keydown)=\"onKeyDown()\" (keyup)=\"onKeyUp($event)\" (focus)=\"onFocus()\"\n class=\"govuk-input\" [attr.disabled]=\"!disabled ? null: disabled\" [value]=\"getControlValueDisplayText()\"\n #inputSelection>\n <mat-autocomplete autoActiveFirstOption #autoComplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let judicial of displayedJudicialsDuplicationFiltered\" class=\"select-option\"\n [value]=\"getDisplayName(judicial)\" (onSelectionChange)=\"onSelectionChange(judicial)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(judicial) }}\n </mat-option>\n <mat-option class=\"select-option\"\n *ngIf=\"!displayedJudicialsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">\n {{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n</div>\n",
164
+ styles: [".hide-autocomplete{display:none}.mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}"]
165
+ }),
166
+ __metadata("design:paramtypes", [FindAPersonService, FormBuilder])
167
+ ], SearchJudicialsComponent);
244
168
  return SearchJudicialsComponent;
245
169
  }());
246
170
  export { SearchJudicialsComponent };
247
- if (false) {
248
- /** @type {?} */
249
- SearchJudicialsComponent.prototype.formGroup;
250
- /** @type {?} */
251
- SearchJudicialsComponent.prototype.control;
252
- /** @type {?} */
253
- SearchJudicialsComponent.prototype.disabled;
254
- /** @type {?} */
255
- SearchJudicialsComponent.prototype.selectedJudicials;
256
- /** @type {?} */
257
- SearchJudicialsComponent.prototype.submitted;
258
- /** @type {?} */
259
- SearchJudicialsComponent.prototype.placeholderContent;
260
- /** @type {?} */
261
- SearchJudicialsComponent.prototype.showAutocomplete;
262
- /** @type {?} */
263
- SearchJudicialsComponent.prototype.displayedJudicials;
264
- /** @type {?} */
265
- SearchJudicialsComponent.prototype.judicialChanged;
266
- /** @type {?} */
267
- SearchJudicialsComponent.prototype.idValue;
268
- /** @type {?} */
269
- SearchJudicialsComponent.prototype.errorMessage;
270
- /** @type {?} */
271
- SearchJudicialsComponent.prototype.serviceId;
272
- /** @type {?} */
273
- SearchJudicialsComponent.prototype.autoCompleteInputBox;
274
- /** @type {?} */
275
- SearchJudicialsComponent.prototype.selectedJudicial;
276
- /**
277
- * @type {?}
278
- * @private
279
- */
280
- SearchJudicialsComponent.prototype.minSearchCharacters;
281
- /** @type {?} */
282
- SearchJudicialsComponent.prototype.keyUpSubject$;
283
- /** @type {?} */
284
- SearchJudicialsComponent.prototype.searchInProgress;
285
- /**
286
- * @type {?}
287
- * @private
288
- */
289
- SearchJudicialsComponent.prototype.judicialService;
290
- }
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWp1ZGljaWFscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VhcmNoLWp1ZGljaWFscy9zZWFyY2gtanVkaWNpYWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXBGO0lBd0JFLGtDQUE2QixlQUFtQyxFQUFFLEVBQWU7UUFBcEQsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBaEJoRCxhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFDNUMsY0FBUyxHQUFhLElBQUksQ0FBQztRQUMzQix1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDekQsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixpQkFBWSxHQUFXLHdCQUF3QixDQUFDO1FBQ2hELGNBQVMsR0FBVyxFQUFFLENBQUM7UUFHdEIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFDL0MscUJB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OzRCQUNMLEtBQUs7dUNBQ0wsU0FBUyxTQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTs7SUFvR25ELCtCQUFDO0NBQUEsQUF0SEQsSUFzSEM7U0FqSFksd0JBQXdCOzs7SUFDbkMsNkNBQTRCOztJQUM1QiwyQ0FBeUM7O0lBQ3pDLDRDQUF5Qzs7SUFDekMscURBQTREOztJQUM1RCw2Q0FBMkM7O0lBQzNDLHNEQUFnRDs7SUFDaEQsb0RBQWtEOztJQUNsRCxzREFBd0Q7O0lBQ3hELG1EQUF5RTs7SUFDekUsMkNBQXFDOztJQUNyQyxnREFBZ0U7O0lBQ2hFLDZDQUF1Qzs7SUFDdkMsd0RBQTZHOztJQUM3RyxvREFBMkM7Ozs7O0lBQzNDLHVEQUF5Qzs7SUFDekMsaURBQXNEOztJQUN0RCxvREFBeUM7Ozs7O0lBRTdCLG1EQUFvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEp1ZGljaWFsVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpbmRBUGVyc29uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItc2VhcmNoLWp1ZGljaWFscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtanVkaWNpYWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWp1ZGljaWFscy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEp1ZGljaWFsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkSnVkaWNpYWxzOiBKdWRpY2lhbFVzZXJNb2RlbFtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyQ29udGVudDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5ZWRKdWRpY2lhbHM6IEp1ZGljaWFsVXNlck1vZGVsW107XG4gIEBPdXRwdXQoKSBwdWJsaWMganVkaWNpYWxDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxKdWRpY2lhbFVzZXJNb2RlbD4oKTtcbiAgQElucHV0KCkgcHVibGljIGlkVmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnWW91IG11c3Qgc2VsZWN0IGEgbmFtZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlSWQ6IHN0cmluZyA9ICcnO1xuICBAVmlld0NoaWxkKCdpbnB1dFNlbGVjdGlvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBwdWJsaWMgYXV0b0NvbXBsZXRlSW5wdXRCb3g6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIHB1YmxpYyBzZWxlY3RlZEp1ZGljaWFsOiBKdWRpY2lhbFVzZXJNb2RlbDtcbiAgcHJpdmF0ZSByZWFkb25seSBtaW5TZWFyY2hDaGFyYWN0ZXJzID0gMztcbiAgcHVibGljIGtleVVwU3ViamVjdCQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyBzZWFyY2hJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBqdWRpY2lhbFNlcnZpY2U6IEZpbmRBUGVyc29uU2VydmljZSwgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSBmYi5ncm91cCh7XG4gICAgICBmb3JtQ29udHJvbDogW251bGxdLFxuICAgICAgc2VsZWN0ZWRGb3JtQ29udHJvbDogW251bGxdXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5ZWRKdWRpY2lhbHMgPSBbXTtcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XG4gICAgICBpZiAodGhpcy5mb3JtR3JvdXAgJiYgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbCA9IHRoaXMuY29udHJvbDtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5nZXRDb250cm9sVmFsdWVEaXNwbGF5VGV4dCgpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5rZXlVcFN1YmplY3QkLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZShzZWFyY2hWYWx1ZSA9PiB0aGlzLnNlYXJjaChzZWFyY2hWYWx1ZSBhcyBzdHJpbmcpKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleURvd24oKTogdm9pZCB7XG4gICAgdGhpcy5qdWRpY2lhbENoYW5nZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5VXAoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICAgIHRoaXMua2V5VXBTdWJqZWN0JC5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpIHtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheWVkSnVkaWNpYWxzRHVwbGljYXRpb25GaWx0ZXJlZCgpOiBKdWRpY2lhbFVzZXJNb2RlbFtdIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWRKdWRpY2lhbHMuZmlsdGVyKFxuICAgICAganVkaWNpYWwgPT4gIXRoaXMuc2VsZWN0ZWRKdWRpY2lhbHMubWFwKHNlbGVjdGVkSnVkaWNpYWwgPT4gc2VsZWN0ZWRKdWRpY2lhbC5pZGFtSWQpLmluY2x1ZGVzKGp1ZGljaWFsLmlkYW1JZClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcih0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEp1ZGljaWFscyh0ZXJtLCB0aGlzLnNlcnZpY2VJZCkucGlwZShcbiAgICAgIG1lcmdlTWFwKChhcGlEYXRhOiBKdWRpY2lhbFVzZXJNb2RlbFtdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFwaUZpbHRlciA9IGFwaURhdGEuZmlsdGVyKFxuICAgICAgICAgIGFwaUp1ZGljaWFsID0+ICF0aGlzLnNlbGVjdGVkSnVkaWNpYWxzLm1hcChzZWxlY3RlZEp1ZGljaWFsID0+IHNlbGVjdGVkSnVkaWNpYWwuaWRhbUlkKS5pbmNsdWRlcyhhcGlKdWRpY2lhbC5pZGFtSWQpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkSnVkaWNpYWxzID0gYXBpRmlsdGVyO1xuICAgICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGFwaUZpbHRlcjtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoanVkaWNpYWwgPT4ge1xuICAgICAgaWYgKHRlcm0gPT09IGp1ZGljaWFsLmtub3duQXMpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbC5zZXRWYWx1ZShqdWRpY2lhbCk7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkSnVkaWNpYWxzID0gW107XG4gICAgICAgIHRoaXMuanVkaWNpYWxDaGFuZ2VkLmVtaXQoanVkaWNpYWwpO1xuICAgICAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbj86IEp1ZGljaWFsVXNlck1vZGVsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbCBhcyBGb3JtQXJyYXkpLnB1c2gobmV3IEZvcm1Db250cm9sKHNlbGVjdGlvbi5pZGFtSWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLmp1ZGljaWFsQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKGN1cnJlbnRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSAhIWN1cnJlbnRWYWx1ZSAmJiAoY3VycmVudFZhbHVlLmxlbmd0aCA+PSB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpO1xuICAgIGlmICghIWN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zZWxlY3RlZEZvcm1Db250cm9sLnJlc2V0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dBdXRvY29tcGxldGUpIHtcbiAgICAgIHRoaXMuZmlsdGVyKGN1cnJlbnRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXREaXNwbGF5TmFtZShzZWxlY3RlZEp1ZGljaWFsOiBKdWRpY2lhbFVzZXJNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3NlbGVjdGVkSnVkaWNpYWwua25vd25Bc30gKCR7c2VsZWN0ZWRKdWRpY2lhbC5lbWFpbElkfSlgO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEp1ZGljaWFscyh0ZXJtOiBzdHJpbmcsIHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxKdWRpY2lhbFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuanVkaWNpYWxTZXJ2aWNlLnNlYXJjaEp1ZGljaWFsKHRlcm0sIHNlcnZpY2VJZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbFZhbHVlRGlzcGxheVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAgJiYgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMgJiYgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbC52YWx1ZSA/XG4gICAgICB0aGlzLmdldERpc3BsYXlOYW1lKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wudmFsdWUgYXMgSnVkaWNpYWxVc2VyTW9kZWwpIDogJyc7XG4gIH1cbn1cbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWp1ZGljaWFscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvc2VhcmNoLWp1ZGljaWFscy9zZWFyY2gtanVkaWNpYWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakcsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBT3BGO0lBbUJFLGtDQUE2QixlQUFtQyxFQUFFLEVBQWU7UUFBcEQsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBaEJoRCxhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLHNCQUFpQixHQUF3QixFQUFFLENBQUM7UUFDNUMsY0FBUyxHQUFhLElBQUksQ0FBQztRQUMzQix1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWpDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDekQsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixpQkFBWSxHQUFXLHdCQUF3QixDQUFDO1FBQ2hELGNBQVMsR0FBVyxFQUFFLENBQUM7UUFHdEIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFD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RTs7a0VBQXdEO0lBQ3ZEO1FBQVIsS0FBSyxFQUFFOzsrREFBK0I7SUFDWTtRQUFsRCxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7a0NBQThCLFVBQVU7MEVBQW1CO0lBYmxHLHdCQUF3QjtRQUxwQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUseUJBQXlCO1lBQ25DLDhoQ0FBZ0Q7O1NBRWpELENBQUM7eUNBb0I4QyxrQkFBa0IsRUFBTSxXQUFXO09BbkJ0RSx3QkFBd0IsQ0FpSHBDO0lBQUQsK0JBQUM7Q0FBQSxBQWpIRCxJQWlIQztTQWpIWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBKdWRpY2lhbFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBGaW5kQVBlcnNvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maW5kLXBlcnNvbi9maW5kLXBlcnNvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLXNlYXJjaC1qdWRpY2lhbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWp1ZGljaWFscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1qdWRpY2lhbHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hKdWRpY2lhbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IG51bGw7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZEp1ZGljaWFsczogSnVkaWNpYWxVc2VyTW9kZWxbXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgc3VibWl0dGVkPzogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlckNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0F1dG9jb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzcGxheWVkSnVkaWNpYWxzOiBKdWRpY2lhbFVzZXJNb2RlbFtdO1xuICBAT3V0cHV0KCkgcHVibGljIGp1ZGljaWFsQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SnVkaWNpYWxVc2VyTW9kZWw+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZFZhbHVlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ1lvdSBtdXN0IHNlbGVjdCBhIG5hbWUnO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZUlkOiBzdHJpbmcgPSAnJztcbiAgQFZpZXdDaGlsZCgnaW5wdXRTZWxlY3Rpb24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgcHVibGljIGF1dG9Db21wbGV0ZUlucHV0Qm94OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBwdWJsaWMgc2VsZWN0ZWRKdWRpY2lhbDogSnVkaWNpYWxVc2VyTW9kZWw7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWluU2VhcmNoQ2hhcmFjdGVycyA9IDM7XG4gIHB1YmxpYyBrZXlVcFN1YmplY3QkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgc2VhcmNoSW5Qcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkganVkaWNpYWxTZXJ2aWNlOiBGaW5kQVBlcnNvblNlcnZpY2UsIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuZm9ybUdyb3VwID0gZmIuZ3JvdXAoe1xuICAgICAgZm9ybUNvbnRyb2w6IFtudWxsXSxcbiAgICAgIHNlbGVjdGVkRm9ybUNvbnRyb2w6IFtudWxsXVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkSnVkaWNpYWxzID0gW107XG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wgPSB0aGlzLmNvbnRyb2w7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZ2V0Q29udHJvbFZhbHVlRGlzcGxheVRleHQoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMua2V5VXBTdWJqZWN0JC5waXBlKGRlYm91bmNlVGltZSg1MDApKS5zdWJzY3JpYmUoc2VhcmNoVmFsdWUgPT4gdGhpcy5zZWFyY2goc2VhcmNoVmFsdWUgYXMgc3RyaW5nKSk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlEb3duKCk6IHZvaWQge1xuICAgIHRoaXMuanVkaWNpYWxDaGFuZ2VkLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleVVwKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZTtcbiAgICB0aGlzLmtleVVwU3ViamVjdCQubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG9uRm9jdXMoKSB7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc3BsYXllZEp1ZGljaWFsc0R1cGxpY2F0aW9uRmlsdGVyZWQoKTogSnVkaWNpYWxVc2VyTW9kZWxbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheWVkSnVkaWNpYWxzLmZpbHRlcihcbiAgICAgIGp1ZGljaWFsID0+ICF0aGlzLnNlbGVjdGVkSnVkaWNpYWxzLm1hcChzZWxlY3RlZEp1ZGljaWFsID0+IHNlbGVjdGVkSnVkaWNpYWwuaWRhbUlkKS5pbmNsdWRlcyhqdWRpY2lhbC5pZGFtSWQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXIodGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hKdWRpY2lhbHModGVybSwgdGhpcy5zZXJ2aWNlSWQpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoYXBpRGF0YTogSnVkaWNpYWxVc2VyTW9kZWxbXSkgPT4ge1xuICAgICAgICBjb25zdCBhcGlGaWx0ZXIgPSBhcGlEYXRhLmZpbHRlcihcbiAgICAgICAgICBhcGlKdWRpY2lhbCA9PiAhdGhpcy5zZWxlY3RlZEp1ZGljaWFscy5tYXAoc2VsZWN0ZWRKdWRpY2lhbCA9PiBzZWxlY3RlZEp1ZGljaWFsLmlkYW1JZCkuaW5jbHVkZXMoYXBpSnVkaWNpYWwuaWRhbUlkKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmRpc3BsYXllZEp1ZGljaWFscyA9IGFwaUZpbHRlcjtcbiAgICAgICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBhcGlGaWx0ZXI7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKGp1ZGljaWFsID0+IHtcbiAgICAgIGlmICh0ZXJtID09PSBqdWRpY2lhbC5rbm93bkFzKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUoanVkaWNpYWwpO1xuICAgICAgICB0aGlzLmRpc3BsYXllZEp1ZGljaWFscyA9IFtdO1xuICAgICAgICB0aGlzLmp1ZGljaWFsQ2hhbmdlZC5lbWl0KGp1ZGljaWFsKTtcbiAgICAgICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3Rpb24/OiBKdWRpY2lhbFVzZXJNb2RlbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wgYXMgRm9ybUFycmF5KS5wdXNoKG5ldyBGb3JtQ29udHJvbChzZWxlY3Rpb24uaWRhbUlkKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUoc2VsZWN0aW9uKTtcbiAgICB9XG4gICAgdGhpcy5qdWRpY2lhbENoYW5nZWQuZW1pdChzZWxlY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaChjdXJyZW50VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gISFjdXJyZW50VmFsdWUgJiYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPj0gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKTtcbiAgICBpZiAoISFjdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbC5yZXNldCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG93QXV0b2NvbXBsZXRlKSB7XG4gICAgICB0aGlzLmZpbHRlcihjdXJyZW50VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRKdWRpY2lhbDogSnVkaWNpYWxVc2VyTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzZWxlY3RlZEp1ZGljaWFsLmtub3duQXN9ICgke3NlbGVjdGVkSnVkaWNpYWwuZW1haWxJZH0pYDtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hKdWRpY2lhbHModGVybTogc3RyaW5nLCBzZXJ2aWNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SnVkaWNpYWxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmp1ZGljaWFsU2VydmljZS5zZWFyY2hKdWRpY2lhbCh0ZXJtLCBzZXJ2aWNlSWQpO1xuICB9XG5cbiAgcHVibGljIGdldENvbnRyb2xWYWx1ZURpc3BsYXlUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzICYmIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wudmFsdWUgP1xuICAgICAgdGhpcy5nZXREaXNwbGF5TmFtZSh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlIGFzIEp1ZGljaWFsVXNlck1vZGVsKSA6ICcnO1xuICB9XG59XG4iXX0=