@hmcts/rpx-xui-common-lib 1.8.9-eui-6408-callback-copy-user → 1.8.10-generic-filter-readonly-changes

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 (289) hide show
  1. package/bundles/hmcts-rpx-xui-common-lib.umd.js +4122 -7579
  2. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
  3. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
  4. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-rpx-xui-common-lib.js +2 -7
  6. package/esm2015/lib/components/accessibility/accessibility.component.js +2 -8
  7. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +14 -112
  8. package/esm2015/lib/components/contact-details/contact-details.component.js +2 -12
  9. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +4 -65
  10. package/esm2015/lib/components/due-date/due-date.component.js +2 -97
  11. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +7 -21
  12. package/esm2015/lib/components/find-location/find-location.component.js +14 -130
  13. package/esm2015/lib/components/find-person/find-person.component.js +14 -154
  14. package/esm2015/lib/components/find-service/find-service.component.js +54 -104
  15. package/esm2015/lib/components/find-task-name/find-task-name.component.js +8 -136
  16. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +11 -55
  17. package/esm2015/lib/components/generic-filter/generic-filter.component.js +101 -503
  18. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +3 -18
  19. package/esm2015/lib/components/index.js +2 -7
  20. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +2 -22
  21. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +2 -21
  22. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +3 -12
  23. package/esm2015/lib/components/pagination/pagination.component.js +2 -24
  24. package/esm2015/lib/components/public_api.js +33 -33
  25. package/esm2015/lib/components/search-judicials/search-judicials.component.js +11 -134
  26. package/esm2015/lib/components/search-location/search-location.component.js +31 -169
  27. package/esm2015/lib/components/search-service/search-service.component.js +15 -46
  28. package/esm2015/lib/components/search-venue/search-venue.component.js +11 -134
  29. package/esm2015/lib/components/selected-case/selected-case.component.js +20 -175
  30. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +3 -41
  31. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +4 -55
  32. package/esm2015/lib/components/service-message/service-message.component.js +2 -20
  33. package/esm2015/lib/components/service-messages/service-messages.component.js +7 -65
  34. package/esm2015/lib/components/share-case/share-case.component.js +23 -169
  35. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +4 -37
  36. package/esm2015/lib/components/tab/tab.component.js +2 -26
  37. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +2 -17
  38. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +2 -8
  39. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +2 -8
  40. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +2 -12
  41. package/esm2015/lib/components/user-details/user-details.component.js +2 -39
  42. package/esm2015/lib/components/user-list/user-list.component.js +2 -32
  43. package/esm2015/lib/components/user-select/user-select.component.js +5 -52
  44. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +3 -56
  45. package/esm2015/lib/directives/index.js +2 -7
  46. package/esm2015/lib/directives/let/let.directive.js +1 -39
  47. package/esm2015/lib/directives/public-api.js +3 -8
  48. package/esm2015/lib/exui-common-lib.module.js +1 -9
  49. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +2 -22
  50. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +3 -49
  51. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +4 -54
  52. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +2 -14
  53. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +2 -17
  54. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +2 -24
  55. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +2 -16
  56. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +2 -22
  57. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +2 -12
  58. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +6 -24
  59. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +2 -13
  60. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +2 -21
  61. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +2 -32
  62. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +2 -18
  63. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +2 -22
  64. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +2 -19
  65. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +2 -44
  66. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +2 -16
  67. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +2 -36
  68. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +2 -23
  69. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +2 -22
  70. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +3 -30
  71. package/esm2015/lib/gov-ui/components/index.js +2 -7
  72. package/esm2015/lib/gov-ui/components/public_api.js +22 -8
  73. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +1 -22
  74. package/esm2015/lib/gov-ui/gov-ui.service.js +2 -8
  75. package/esm2015/lib/gov-ui/index.js +2 -7
  76. package/esm2015/lib/gov-ui/models/checkboxes-model.js +2 -20
  77. package/esm2015/lib/gov-ui/models/error-messages-model.js +2 -16
  78. package/esm2015/lib/gov-ui/models/gov-ui-config-model.js +2 -40
  79. package/esm2015/lib/gov-ui/models/index.js +2 -7
  80. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +2 -24
  81. package/esm2015/lib/gov-ui/models/public_api.js +4 -9
  82. package/esm2015/lib/gov-ui/models/radio-buttons.model.js +2 -22
  83. package/esm2015/lib/gov-ui/public_api.js +5 -9
  84. package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +4 -14
  85. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +12 -48
  86. package/esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js +5 -24
  87. package/esm2015/lib/gov-ui/validators/date.validator.js +3 -20
  88. package/esm2015/lib/gov-ui/validators/index.js +2 -7
  89. package/esm2015/lib/gov-ui/validators/public_api.js +4 -9
  90. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +3 -15
  91. package/esm2015/lib/models/case-share.model.js +7 -33
  92. package/esm2015/lib/models/contact-details.model.js +7 -31
  93. package/esm2015/lib/models/due-date.model.js +7 -14
  94. package/esm2015/lib/models/feature-user.js +1 -16
  95. package/esm2015/lib/models/filter.model.js +1 -193
  96. package/esm2015/lib/models/idle-config.model.js +2 -20
  97. package/esm2015/lib/models/index.js +16 -21
  98. package/esm2015/lib/models/location.model.js +7 -129
  99. package/esm2015/lib/models/pagination.model.js +2 -18
  100. package/esm2015/lib/models/person.model.js +19 -96
  101. package/esm2015/lib/models/public_api.js +6 -11
  102. package/esm2015/lib/models/search-options.model.js +2 -22
  103. package/esm2015/lib/models/task-name.model.js +2 -16
  104. package/esm2015/lib/models/tcDocument.model.js +2 -18
  105. package/esm2015/lib/models/timeout-notification.model.js +2 -18
  106. package/esm2015/lib/models/user-details.model.js +2 -22
  107. package/esm2015/lib/models/user.model.js +2 -25
  108. package/esm2015/lib/pipes/capitalize.pipe.js +1 -11
  109. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +11 -96
  110. package/esm2015/lib/services/cookie/cookie.service.js +8 -71
  111. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +4 -43
  112. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +2 -28
  113. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +12 -94
  114. package/esm2015/lib/services/filter/filter.service.js +2 -71
  115. package/esm2015/lib/services/find-person/find-person.service.js +15 -123
  116. package/esm2015/lib/services/google-analytics/google-analytics.service.js +8 -63
  117. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +10 -64
  118. package/esm2015/lib/services/index.js +2 -7
  119. package/esm2015/lib/services/loading/loading.service.js +2 -41
  120. package/esm2015/lib/services/locations/location.service.js +12 -30
  121. package/esm2015/lib/services/manage-session/manage-session.services.js +10 -63
  122. package/esm2015/lib/services/public-api.js +13 -18
  123. package/esm2015/lib/services/role-guard/role.guard.js +14 -59
  124. package/esm2015/lib/services/role-guard/role.service.js +3 -22
  125. package/esm2015/lib/services/storage/session-storage/session-storage.service.js +3 -17
  126. package/esm2015/lib/services/task-name/task-name.service.js +5 -34
  127. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +16 -78
  128. package/esm2015/lib/window.js +1 -10
  129. package/esm2015/public-api.js +8 -13
  130. package/fesm2015/hmcts-rpx-xui-common-lib.js +966 -3691
  131. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
  132. package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
  133. package/lib/components/checkbox-list/checkbox-list.component.d.ts +6 -5
  134. package/lib/components/due-date/due-date.component.d.ts +4 -4
  135. package/lib/components/find-location/find-location.component.d.ts +4 -2
  136. package/lib/components/find-person/find-person.component.d.ts +1 -1
  137. package/lib/components/find-service/find-service.component.d.ts +4 -1
  138. package/lib/components/generic-filter/generic-filter.component.d.ts +7 -2
  139. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +1 -1
  140. package/lib/components/invite-user-form/invite-user-form.component.d.ts +2 -2
  141. package/lib/components/public_api.d.ts +5 -0
  142. package/lib/components/search-judicials/search-judicials.component.d.ts +1 -1
  143. package/lib/components/search-location/search-location.component.d.ts +4 -2
  144. package/lib/components/search-service/search-service.component.d.ts +4 -2
  145. package/lib/components/search-venue/search-venue.component.d.ts +1 -1
  146. package/lib/components/user-list/user-list.component.d.ts +1 -1
  147. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +1 -1
  148. package/lib/directives/let/let.directive.d.ts +1 -1
  149. package/lib/exui-common-lib.module.d.ts +2 -1
  150. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +1 -1
  151. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +1 -1
  152. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +1 -1
  153. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +1 -1
  154. package/lib/gov-ui/components/public_api.d.ts +19 -0
  155. package/lib/gov-ui/public_api.d.ts +1 -0
  156. package/lib/models/filter.model.d.ts +3 -0
  157. package/lib/models/person.model.d.ts +1 -1
  158. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +1 -1
  159. package/lib/services/loading/loading.service.d.ts +2 -2
  160. package/lib/services/role-guard/role.service.d.ts +3 -3
  161. package/lib/window.d.ts +2 -2
  162. package/package.json +6 -16
  163. package/esm5/hmcts-rpx-xui-common-lib.js +0 -78
  164. package/esm5/lib/components/accessibility/accessibility.component.js +0 -22
  165. package/esm5/lib/components/checkbox-list/checkbox-list.component.js +0 -391
  166. package/esm5/lib/components/contact-details/contact-details.component.js +0 -29
  167. package/esm5/lib/components/cookie-banner/cookie-banner.component.js +0 -154
  168. package/esm5/lib/components/due-date/due-date.component.js +0 -254
  169. package/esm5/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +0 -45
  170. package/esm5/lib/components/find-location/find-location.component.js +0 -297
  171. package/esm5/lib/components/find-person/find-person.component.js +0 -287
  172. package/esm5/lib/components/find-service/find-service.component.js +0 -218
  173. package/esm5/lib/components/find-task-name/find-task-name.component.js +0 -243
  174. package/esm5/lib/components/generic-filter/generic-filter-utils.js +0 -66
  175. package/esm5/lib/components/generic-filter/generic-filter.component.js +0 -1229
  176. package/esm5/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +0 -47
  177. package/esm5/lib/components/index.js +0 -7
  178. package/esm5/lib/components/invite-user-form/invite-user-form.component.js +0 -54
  179. package/esm5/lib/components/invite-user-permissions/invite-user-permission.component.js +0 -46
  180. package/esm5/lib/components/loading-spinner/loading-spinner.component.js +0 -29
  181. package/esm5/lib/components/pagination/pagination.component.js +0 -58
  182. package/esm5/lib/components/public_api.js +0 -33
  183. package/esm5/lib/components/search-judicials/search-judicials.component.js +0 -291
  184. package/esm5/lib/components/search-location/search-location.component.js +0 -329
  185. package/esm5/lib/components/search-service/search-service.component.js +0 -81
  186. package/esm5/lib/components/search-venue/search-venue.component.js +0 -290
  187. package/esm5/lib/components/selected-case/selected-case.component.js +0 -424
  188. package/esm5/lib/components/selected-case-confirm/selected-case-confirm.component.js +0 -84
  189. package/esm5/lib/components/selected-case-list/selected-case-list.component.js +0 -115
  190. package/esm5/lib/components/service-message/service-message.component.js +0 -46
  191. package/esm5/lib/components/service-messages/service-messages.component.js +0 -122
  192. package/esm5/lib/components/share-case/share-case.component.js +0 -435
  193. package/esm5/lib/components/share-case-confirm/share-case-confirm.component.js +0 -70
  194. package/esm5/lib/components/tab/tab.component.js +0 -51
  195. package/esm5/lib/components/tc-confirm/tc-confirm.component.js +0 -42
  196. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +0 -22
  197. package/esm5/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +0 -22
  198. package/esm5/lib/components/terms-and-conditions/terms-and-conditions.component.js +0 -29
  199. package/esm5/lib/components/user-details/user-details.component.js +0 -92
  200. package/esm5/lib/components/user-list/user-list.component.js +0 -76
  201. package/esm5/lib/components/user-select/user-select.component.js +0 -131
  202. package/esm5/lib/directives/feature-toggle/feature-toggle.directive.js +0 -104
  203. package/esm5/lib/directives/index.js +0 -7
  204. package/esm5/lib/directives/let/let.directive.js +0 -78
  205. package/esm5/lib/directives/public-api.js +0 -8
  206. package/esm5/lib/exui-common-lib.module.js +0 -174
  207. package/esm5/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +0 -56
  208. package/esm5/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +0 -130
  209. package/esm5/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +0 -135
  210. package/esm5/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +0 -37
  211. package/esm5/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -49
  212. package/esm5/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +0 -65
  213. package/esm5/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +0 -40
  214. package/esm5/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +0 -66
  215. package/esm5/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +0 -35
  216. package/esm5/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +0 -67
  217. package/esm5/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +0 -36
  218. package/esm5/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +0 -52
  219. package/esm5/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +0 -77
  220. package/esm5/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +0 -50
  221. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.js +0 -22
  222. package/esm5/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +0 -42
  223. package/esm5/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +0 -108
  224. package/esm5/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +0 -40
  225. package/esm5/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +0 -87
  226. package/esm5/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +0 -51
  227. package/esm5/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +0 -49
  228. package/esm5/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +0 -46
  229. package/esm5/lib/gov-ui/components/index.js +0 -7
  230. package/esm5/lib/gov-ui/components/public_api.js +0 -8
  231. package/esm5/lib/gov-ui/directives/remove-host.directive.js +0 -52
  232. package/esm5/lib/gov-ui/gov-ui.service.js +0 -22
  233. package/esm5/lib/gov-ui/index.js +0 -7
  234. package/esm5/lib/gov-ui/models/checkboxes-model.js +0 -20
  235. package/esm5/lib/gov-ui/models/error-messages-model.js +0 -16
  236. package/esm5/lib/gov-ui/models/gov-ui-config-model.js +0 -40
  237. package/esm5/lib/gov-ui/models/index.js +0 -7
  238. package/esm5/lib/gov-ui/models/isession-storage.interface.js +0 -24
  239. package/esm5/lib/gov-ui/models/public_api.js +0 -12
  240. package/esm5/lib/gov-ui/models/radio-buttons.model.js +0 -22
  241. package/esm5/lib/gov-ui/public_api.js +0 -12
  242. package/esm5/lib/gov-ui/util/helpers/html-templates.helper.js +0 -57
  243. package/esm5/lib/gov-ui/util/session-storage/session-storage-utils.js +0 -58
  244. package/esm5/lib/gov-ui/validators/checkboxes-be-checked.validator.js +0 -38
  245. package/esm5/lib/gov-ui/validators/date.validator.js +0 -32
  246. package/esm5/lib/gov-ui/validators/index.js +0 -7
  247. package/esm5/lib/gov-ui/validators/public_api.js +0 -12
  248. package/esm5/lib/gov-ui/validators/radio-group.validator.js +0 -27
  249. package/esm5/lib/models/case-share.model.js +0 -33
  250. package/esm5/lib/models/contact-details.model.js +0 -31
  251. package/esm5/lib/models/due-date.model.js +0 -15
  252. package/esm5/lib/models/feature-user.js +0 -28
  253. package/esm5/lib/models/filter.model.js +0 -199
  254. package/esm5/lib/models/idle-config.model.js +0 -20
  255. package/esm5/lib/models/index.js +0 -21
  256. package/esm5/lib/models/location.model.js +0 -129
  257. package/esm5/lib/models/pagination.model.js +0 -18
  258. package/esm5/lib/models/person.model.js +0 -96
  259. package/esm5/lib/models/public_api.js +0 -11
  260. package/esm5/lib/models/search-options.model.js +0 -22
  261. package/esm5/lib/models/task-name.model.js +0 -16
  262. package/esm5/lib/models/tcDocument.model.js +0 -18
  263. package/esm5/lib/models/timeout-notification.model.js +0 -18
  264. package/esm5/lib/models/user-details.model.js +0 -22
  265. package/esm5/lib/models/user.model.js +0 -25
  266. package/esm5/lib/pipes/capitalize.pipe.js +0 -29
  267. package/esm5/lib/services/case-sharing-state/case-sharing-state.service.js +0 -313
  268. package/esm5/lib/services/cookie/cookie.service.js +0 -136
  269. package/esm5/lib/services/feature-toggle/feature-toggle.guard.js +0 -89
  270. package/esm5/lib/services/feature-toggle/feature-toggle.service.js +0 -90
  271. package/esm5/lib/services/feature-toggle/launch-darkly.service.js +0 -187
  272. package/esm5/lib/services/filter/filter.service.js +0 -208
  273. package/esm5/lib/services/find-person/find-person.service.js +0 -246
  274. package/esm5/lib/services/google-analytics/google-analytics.service.js +0 -128
  275. package/esm5/lib/services/google-tag-manager/google-tag-manager.service.js +0 -135
  276. package/esm5/lib/services/index.js +0 -7
  277. package/esm5/lib/services/loading/loading.service.js +0 -109
  278. package/esm5/lib/services/locations/location.service.js +0 -86
  279. package/esm5/lib/services/manage-session/manage-session.services.js +0 -111
  280. package/esm5/lib/services/public-api.js +0 -21
  281. package/esm5/lib/services/role-guard/role.guard.js +0 -88
  282. package/esm5/lib/services/role-guard/role.service.js +0 -45
  283. package/esm5/lib/services/storage/session-storage/session-storage.service.js +0 -96
  284. package/esm5/lib/services/task-name/task-name.service.js +0 -70
  285. package/esm5/lib/services/timeout-notifications/timeout-notifications.service.js +0 -190
  286. package/esm5/lib/window.js +0 -13
  287. package/esm5/public-api.js +0 -16
  288. package/fesm5/hmcts-rpx-xui-common-lib.js +0 -9064
  289. package/fesm5/hmcts-rpx-xui-common-lib.js.map +0 -1
@@ -1,19 +1,11 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/find-person/find-person.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
7
2
  import { FormControl, FormGroup } from '@angular/forms';
8
- import { of, zip } from 'rxjs';
3
+ import { zip } from 'rxjs';
4
+ import { of } from 'rxjs/internal/observable/of';
9
5
  import { catchError, debounceTime, filter, map, switchMap, tap } from 'rxjs/operators';
10
6
  import { PersonRole } from '../../models';
11
7
  import { FindAPersonService } from '../../services/find-person/find-person.service';
12
8
  export class FindPersonComponent {
13
- /**
14
- * @param {?} findPersonService
15
- * @param {?} cd
16
- */
17
9
  constructor(findPersonService, cd) {
18
10
  this.findPersonService = findPersonService;
19
11
  this.cd = cd;
@@ -31,95 +23,38 @@ export class FindPersonComponent {
31
23
  this.selectedPersons = [];
32
24
  this.errorMessage = 'You must select a name';
33
25
  this.idValue = '';
34
- this.services = ['IA'];
26
+ this.services = 'IA';
35
27
  this.disabled = null;
36
28
  this.showAutocomplete = false;
37
29
  this.filteredOptions = [];
38
30
  this.minSearchCharacters = 2;
39
31
  }
40
- /**
41
- * @return {?}
42
- */
43
32
  ngOnDestroy() {
44
33
  if (this.sub) {
45
34
  this.sub.unsubscribe();
46
35
  }
47
36
  }
48
- /**
49
- * @return {?}
50
- */
51
37
  ngOnInit() {
52
38
  this.findPersonControl = new FormControl(this.selectedPerson);
53
39
  this.findPersonGroup.addControl('findPersonControl', this.findPersonControl);
54
- this.sub = this.findPersonControl.valueChanges.pipe(tap((/**
55
- * @return {?}
56
- */
57
- () => this.showAutocomplete = false)), tap((/**
58
- * @return {?}
59
- */
60
- () => this.filteredOptions = [])), debounceTime(300), tap((/**
61
- * @param {?} searchTerm
62
- * @return {?}
63
- */
64
- (searchTerm) => typeof searchTerm === 'string' ? this.personSelected.emit(null) : void 0)), filter((/**
65
- * @param {?} searchTerm
66
- * @return {?}
67
- */
68
- (searchTerm) => searchTerm && searchTerm.length > this.minSearchCharacters)), switchMap((/**
69
- * @param {?} searchTerm
70
- * @return {?}
71
- */
72
- (searchTerm) => this.filter(searchTerm).pipe(tap((/**
73
- * @return {?}
74
- */
75
- () => this.showAutocomplete = true)), catchError((/**
76
- * @return {?}
77
- */
78
- () => this.filteredOptions = [])))))).subscribe((/**
79
- * @param {?} people
80
- * @return {?}
81
- */
82
- (people) => {
40
+ this.sub = this.findPersonControl.valueChanges.pipe(tap(() => this.showAutocomplete = false), tap(() => this.filteredOptions = []), debounceTime(300), tap((searchTerm) => typeof searchTerm === 'string' ? this.personSelected.emit(null) : void 0), filter((searchTerm) => searchTerm && searchTerm.length > this.minSearchCharacters), switchMap((searchTerm) => this.filter(searchTerm).pipe(tap(() => this.showAutocomplete = true), catchError(() => this.filteredOptions = [])))).subscribe((people) => {
83
41
  this.filteredOptions = people;
84
42
  this.cd.detectChanges();
85
- }));
43
+ });
86
44
  }
87
- /**
88
- * @param {?} searchTerm
89
- * @return {?}
90
- */
91
45
  filter(searchTerm) {
92
- /** @type {?} */
93
- const findJudicialOrCTSCPeople = this.findPersonService.find({ searchTerm, userRole: this.domain, services: this.services, userIncluded: this.userIncluded, assignedUser: this.assignedUser });
94
- /** @type {?} */
95
- const findCaseworkersOrAdminsOrCtsc = this.findPersonService.findCaseworkers({ searchTerm, userRole: this.domain, services: this.services, userIncluded: this.userIncluded, assignedUser: this.assignedUser });
46
+ const findJudicialOrCTSCPeople = this.findPersonService.find({ searchTerm, userRole: this.domain, services: [this.services], userIncluded: this.userIncluded, assignedUser: this.assignedUser });
47
+ const findCaseworkersOrAdminsOrCtsc = this.findPersonService.findCaseworkers({ searchTerm, userRole: this.domain, services: [this.services], userIncluded: this.userIncluded, assignedUser: this.assignedUser });
96
48
  if (searchTerm && searchTerm.length > this.minSearchCharacters) {
97
49
  switch (this.domain) {
98
50
  case PersonRole.JUDICIAL: {
99
- return findJudicialOrCTSCPeople.pipe(map((/**
100
- * @param {?} persons
101
- * @return {?}
102
- */
103
- persons => {
104
- /** @type {?} */
105
- const ids = this.selectedPersons.map((/**
106
- * @param {?} __0
107
- * @return {?}
108
- */
109
- ({ id }) => id));
110
- return persons.filter((/**
111
- * @param {?} __0
112
- * @return {?}
113
- */
114
- ({ id }) => !ids.includes(id)));
115
- })));
51
+ return findJudicialOrCTSCPeople.pipe(map(persons => {
52
+ const ids = this.selectedPersons.map(({ id }) => id);
53
+ return persons.filter(({ id }) => !ids.includes(id));
54
+ }));
116
55
  }
117
56
  case PersonRole.ALL: {
118
- return zip(findJudicialOrCTSCPeople, findCaseworkersOrAdminsOrCtsc).pipe(map((/**
119
- * @param {?} separatePeople
120
- * @return {?}
121
- */
122
- separatePeople => separatePeople[0].concat(separatePeople[1]))));
57
+ return zip(findJudicialOrCTSCPeople, findCaseworkersOrAdminsOrCtsc).pipe(map(separatePeople => separatePeople[0].concat(separatePeople[1])));
123
58
  }
124
59
  case PersonRole.CTSC:
125
60
  case PersonRole.CASEWORKER:
@@ -133,18 +68,10 @@ export class FindPersonComponent {
133
68
  }
134
69
  return of([]);
135
70
  }
136
- /**
137
- * @param {?} selectedPerson
138
- * @return {?}
139
- */
140
71
  onSelectionChange(selectedPerson) {
141
72
  this.personSelected.emit(selectedPerson);
142
73
  this.findPersonControl.setValue(this.getDisplayName(selectedPerson), { emitEvent: false, onlySelf: true });
143
74
  }
144
- /**
145
- * @param {?} selectedPerson
146
- * @return {?}
147
- */
148
75
  getDisplayName(selectedPerson) {
149
76
  if (!selectedPerson) {
150
77
  return '';
@@ -154,9 +81,6 @@ export class FindPersonComponent {
154
81
  }
155
82
  return selectedPerson.email ? `${selectedPerson.name} (${selectedPerson.email})` : selectedPerson.name;
156
83
  }
157
- /**
158
- * @return {?}
159
- */
160
84
  onInput() {
161
85
  this.personFieldChanged.emit();
162
86
  }
@@ -166,9 +90,8 @@ FindPersonComponent.decorators = [
166
90
  selector: 'xuilib-find-person',
167
91
  template: "<h1 class=\"govuk-heading-l\" *ngIf=\"title && title.length\">\n <span class=\"govuk-caption-l\">{{title}}</span>\n {{boldTitle}}\n</h1>\n<div class=\"govuk-form-group\" [formGroup]=\"findPersonGroup\"\n [ngClass]=\"{'form-group-error': findPersonGroup.get('findPersonControl').invalid && submitted}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"sub-title-hint\">\n <div id=\"sub-title-hint\" class=\"govuk-hint\" *ngIf=\"subTitle && subTitle.length\">\n {{subTitle}}\n </div>\n <span id=\"validation-error\" class=\"govuk-error-message\" *ngIf=\"findPersonGroup && findPersonGroup.errors\">\n <span class=\"govuk-visually-hidden\">Error:</span>{{findPersonGroup.errors.error ? findPersonGroup.errors.error : errorMessage}}\n </span>\n <input id=\"inputSelectPerson{{idValue}}\" type=\"text\" aria-label=\"select a person\"\n formControlName=\"findPersonControl\"\n [matAutocomplete]=\"auto\"\n class=\"govuk-input govuk-!-width-one-third\"\n [placeholder]=\"placeholderContent\"\n [attr.disabled]=\"disabled\"\n (input)=\"onInput()\">\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\" (optionSelected)=\"onSelectionChange($event.option.value)\">\n <mat-option *ngFor=\"let option of filteredOptions\"\n [value]=\"option\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete, 'select-option': showUpdatedColor}\">\n {{getDisplayName(option)}}\n </mat-option>\n <mat-option [ngClass]=\"{'select-option': showUpdatedColor}\" *ngIf=\"isNoResultsShown && !filteredOptions.length && showAutocomplete\">No results found</mat-option>\n </mat-autocomplete>\n </fieldset>\n</div>\n",
168
92
  styles: [".mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}.hide-autocomplete{display:none}"]
169
- }] }
93
+ },] }
170
94
  ];
171
- /** @nocollapse */
172
95
  FindPersonComponent.ctorParameters = () => [
173
96
  { type: FindAPersonService },
174
97
  { type: ChangeDetectorRef }
@@ -194,67 +117,4 @@ FindPersonComponent.propDecorators = {
194
117
  services: [{ type: Input }],
195
118
  disabled: [{ type: Input }]
196
119
  };
197
- if (false) {
198
- /** @type {?} */
199
- FindPersonComponent.prototype.personSelected;
200
- /** @type {?} */
201
- FindPersonComponent.prototype.personFieldChanged;
202
- /** @type {?} */
203
- FindPersonComponent.prototype.title;
204
- /** @type {?} */
205
- FindPersonComponent.prototype.boldTitle;
206
- /** @type {?} */
207
- FindPersonComponent.prototype.subTitle;
208
- /** @type {?} */
209
- FindPersonComponent.prototype.domain;
210
- /** @type {?} */
211
- FindPersonComponent.prototype.findPersonGroup;
212
- /** @type {?} */
213
- FindPersonComponent.prototype.selectedPerson;
214
- /** @type {?} */
215
- FindPersonComponent.prototype.submitted;
216
- /** @type {?} */
217
- FindPersonComponent.prototype.userIncluded;
218
- /** @type {?} */
219
- FindPersonComponent.prototype.assignedUser;
220
- /** @type {?} */
221
- FindPersonComponent.prototype.placeholderContent;
222
- /** @type {?} */
223
- FindPersonComponent.prototype.isNoResultsShown;
224
- /** @type {?} */
225
- FindPersonComponent.prototype.showUpdatedColor;
226
- /** @type {?} */
227
- FindPersonComponent.prototype.selectedPersons;
228
- /** @type {?} */
229
- FindPersonComponent.prototype.errorMessage;
230
- /** @type {?} */
231
- FindPersonComponent.prototype.idValue;
232
- /** @type {?} */
233
- FindPersonComponent.prototype.services;
234
- /** @type {?} */
235
- FindPersonComponent.prototype.disabled;
236
- /** @type {?} */
237
- FindPersonComponent.prototype.showAutocomplete;
238
- /** @type {?} */
239
- FindPersonComponent.prototype.findPersonControl;
240
- /** @type {?} */
241
- FindPersonComponent.prototype.filteredOptions;
242
- /** @type {?} */
243
- FindPersonComponent.prototype.minSearchCharacters;
244
- /**
245
- * @type {?}
246
- * @private
247
- */
248
- FindPersonComponent.prototype.sub;
249
- /**
250
- * @type {?}
251
- * @private
252
- */
253
- FindPersonComponent.prototype.findPersonService;
254
- /**
255
- * @type {?}
256
- * @private
257
- */
258
- FindPersonComponent.prototype.cd;
259
- }
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBQyxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFhLEVBQUUsRUFBZ0IsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBUyxVQUFVLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFRbEYsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7SUEwQjlCLFlBQTZCLGlCQUFxQyxFQUFtQixFQUFxQjtRQUE3RSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW9CO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBekJ6RixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDNUMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUvQyxjQUFTLEdBQUcsaUJBQWlCLENBQUM7UUFDOUIsYUFBUSxHQUFHLDhDQUE4QyxDQUFDO1FBQzFELFdBQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ3hCLG9CQUFlLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFL0MsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixpQkFBWSxHQUFhLEtBQUssQ0FBQztRQUUvQix1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBQ2pDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxvQkFBZSxHQUFhLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUFXLHdCQUF3QixDQUFDO1FBQ2hELFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsYUFBUSxHQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsYUFBUSxHQUFZLElBQUksQ0FBQztRQUNsQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFFbEMsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFDdEIsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBSXhDLENBQUM7Ozs7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDOzs7O0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDakQsR0FBRzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssRUFBQyxFQUN4QyxHQUFHOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsRUFBQyxFQUNwQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLEdBQUc7Ozs7UUFBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsT0FBTyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUMsRUFDN0YsTUFBTTs7OztRQUFDLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFDLEVBQzFGLFNBQVM7Ozs7UUFBQyxDQUFDLFVBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxFQUFDLEVBQ3ZDLFVBQVU7OztRQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxFQUFDLENBQzVDLEVBQUMsQ0FDSCxDQUFDLFNBQVM7Ozs7UUFBQyxDQUFDLE1BQWdCLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztZQUM5QixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7SUFFTSxNQUFNLENBQUMsVUFBa0I7O2NBQ3hCLHdCQUF3QixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUMsQ0FBQzs7Y0FDdEwsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDO1FBQzVNLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzlELFFBQVEsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDbkIsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3hCLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLEdBQUc7Ozs7b0JBQUMsT0FBTyxDQUFDLEVBQUU7OzhCQUMzQyxHQUFHLEdBQWEsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHOzs7O3dCQUFDLENBQUMsRUFBQyxFQUFFLEVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFDO3dCQUM1RCxPQUFPLE9BQU8sQ0FBQyxNQUFNOzs7O3dCQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUM7b0JBQ3ZELENBQUMsRUFBQyxDQUFDLENBQUM7aUJBQ0w7Z0JBQ0QsS0FBSyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLE9BQU8sR0FBRyxDQUFDLHdCQUF3QixFQUFFLDZCQUE2QixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUc7Ozs7b0JBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQztpQkFDOUk7Z0JBQ0QsS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNyQixLQUFLLFVBQVUsQ0FBQyxVQUFVLENBQUM7Z0JBQzNCLEtBQUssVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNyQixPQUFPLDZCQUE2QixDQUFDO2lCQUN0QztnQkFDRCxPQUFPLENBQUMsQ0FBQztvQkFDUCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDZjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQixDQUFDOzs7OztJQUVNLGlCQUFpQixDQUFDLGNBQXNCO1FBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDM0csQ0FBQzs7Ozs7SUFFTSxjQUFjLENBQUMsY0FBc0I7UUFDMUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxRQUFRLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRTtZQUM1RSxPQUFPLEdBQUcsY0FBYyxDQUFDLFFBQVEsS0FBSyxjQUFjLENBQUMsS0FBSyxHQUFHLENBQUM7U0FDL0Q7UUFDRCxPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDekcsQ0FBQzs7OztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7O1lBeEdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5Qiw4dURBQTJDOzthQUU1Qzs7OztZQU5PLGtCQUFrQjtZQUxsQixpQkFBaUI7Ozs2QkFjdEIsTUFBTTtpQ0FDTixNQUFNO29CQUNOLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3FCQUNMLEtBQUs7OEJBQ0wsS0FBSzs2QkFDTCxLQUFLO3dCQUNMLEtBQUs7MkJBQ0wsS0FBSzsyQkFDTCxLQUFLO2lDQUNMLEtBQUs7K0JBQ0wsS0FBSzsrQkFDTCxLQUFLOzhCQUNMLEtBQUs7MkJBQ0wsS0FBSztzQkFDTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSzs7OztJQWxCTiw2Q0FBNkQ7O0lBQzdELGlEQUErRDs7SUFDL0Qsb0NBQThCOztJQUM5Qix3Q0FBOEM7O0lBQzlDLHVDQUEwRTs7SUFDMUUscUNBQXdDOztJQUN4Qyw4Q0FBK0Q7O0lBQy9ELDZDQUF1Qzs7SUFDdkMsd0NBQTBDOztJQUMxQywyQ0FBK0M7O0lBQy9DLDJDQUFzQzs7SUFDdEMsaURBQWdEOztJQUNoRCwrQ0FBaUQ7O0lBQ2pELCtDQUFrRDs7SUFDbEQsOENBQStDOztJQUMvQywyQ0FBZ0U7O0lBQ2hFLHNDQUFxQzs7SUFDckMsdUNBQTRDOztJQUM1Qyx1Q0FBeUM7O0lBQ3pDLCtDQUF5Qzs7SUFDekMsZ0RBQXNDOztJQUN0Qyw4Q0FBc0M7O0lBQ3RDLGtEQUF3Qzs7Ozs7SUFDeEMsa0NBQTBCOzs7OztJQUVkLGdEQUFzRDs7Ozs7SUFBRSxpQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24sIHppcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1BlcnNvbiwgUGVyc29uUm9sZX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7RmluZEFQZXJzb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maW5kLXBlcnNvbi9maW5kLXBlcnNvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLWZpbmQtcGVyc29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbmQtcGVyc29uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmluZC1wZXJzb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5cbmV4cG9ydCBjbGFzcyBGaW5kUGVyc29uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAT3V0cHV0KCkgcHVibGljIHBlcnNvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxQZXJzb24+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcGVyc29uRmllbGRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGJvbGRUaXRsZSA9ICdGaW5kIHRoZSBwZXJzb24nO1xuICBASW5wdXQoKSBwdWJsaWMgc3ViVGl0bGUgPSAnVHlwZSB0aGUgbmFtZSBvZiB0aGUgcGVyc29uIGFuZCBzZWxlY3QgdGhlbS4nO1xuICBASW5wdXQoKSBwdWJsaWMgZG9tYWluID0gUGVyc29uUm9sZS5BTEw7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaW5kUGVyc29uR3JvdXA6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRQZXJzb246IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHN1Ym1pdHRlZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VySW5jbHVkZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBhc3NpZ25lZFVzZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlckNvbnRlbnQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgaXNOb1Jlc3VsdHNTaG93bjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93VXBkYXRlZENvbG9yOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFBlcnNvbnM6IFBlcnNvbltdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICdZb3UgbXVzdCBzZWxlY3QgYSBuYW1lJztcbiAgQElucHV0KCkgcHVibGljIGlkVmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZXM6IHN0cmluZ1tdID0gWydJQSddO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBudWxsO1xuICBwdWJsaWMgc2hvd0F1dG9jb21wbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgZmluZFBlcnNvbkNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgZmlsdGVyZWRPcHRpb25zOiBQZXJzb25bXSA9IFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgbWluU2VhcmNoQ2hhcmFjdGVycyA9IDI7XG4gIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaW5kUGVyc29uU2VydmljZTogRmluZEFQZXJzb25TZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLnN1Yikge1xuICAgICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kUGVyc29uQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0aGlzLnNlbGVjdGVkUGVyc29uKTtcbiAgICB0aGlzLmZpbmRQZXJzb25Hcm91cC5hZGRDb250cm9sKCdmaW5kUGVyc29uQ29udHJvbCcsIHRoaXMuZmluZFBlcnNvbkNvbnRyb2wpO1xuICAgIHRoaXMuc3ViID0gdGhpcy5maW5kUGVyc29uQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZSksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbXSksXG4gICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgIHRhcCgoc2VhcmNoVGVybSkgPT4gdHlwZW9mIHNlYXJjaFRlcm0gPT09ICdzdHJpbmcnID8gdGhpcy5wZXJzb25TZWxlY3RlZC5lbWl0KG51bGwpIDogdm9pZCAwKSxcbiAgICAgIGZpbHRlcigoc2VhcmNoVGVybTogc3RyaW5nKSA9PiBzZWFyY2hUZXJtICYmIHNlYXJjaFRlcm0ubGVuZ3RoID4gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VhcmNoVGVybTogc3RyaW5nKSA9PiB0aGlzLmZpbHRlcihzZWFyY2hUZXJtKS5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gdHJ1ZSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBbXSksXG4gICAgICApKVxuICAgICkuc3Vic2NyaWJlKChwZW9wbGU6IFBlcnNvbltdKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHBlb3BsZTtcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcihzZWFyY2hUZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgZmluZEp1ZGljaWFsT3JDVFNDUGVvcGxlID0gdGhpcy5maW5kUGVyc29uU2VydmljZS5maW5kKHtzZWFyY2hUZXJtLCB1c2VyUm9sZTogdGhpcy5kb21haW4sIHNlcnZpY2VzOiB0aGlzLnNlcnZpY2VzLCB1c2VySW5jbHVkZWQ6IHRoaXMudXNlckluY2x1ZGVkLCBhc3NpZ25lZFVzZXI6IHRoaXMuYXNzaWduZWRVc2VyfSk7XG4gICAgY29uc3QgZmluZENhc2V3b3JrZXJzT3JBZG1pbnNPckN0c2MgPSB0aGlzLmZpbmRQZXJzb25TZXJ2aWNlLmZpbmRDYXNld29ya2Vycyh7c2VhcmNoVGVybSwgdXNlclJvbGU6IHRoaXMuZG9tYWluLCBzZXJ2aWNlczogdGhpcy5zZXJ2aWNlcywgdXNlckluY2x1ZGVkOiB0aGlzLnVzZXJJbmNsdWRlZCwgYXNzaWduZWRVc2VyOiB0aGlzLmFzc2lnbmVkVXNlcn0pO1xuICAgIGlmIChzZWFyY2hUZXJtICYmIHNlYXJjaFRlcm0ubGVuZ3RoID4gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuZG9tYWluKSB7XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5KVURJQ0lBTDoge1xuICAgICAgICAgIHJldHVybiBmaW5kSnVkaWNpYWxPckNUU0NQZW9wbGUucGlwZShtYXAocGVyc29ucyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gdGhpcy5zZWxlY3RlZFBlcnNvbnMubWFwKCh7aWR9KSA9PiBpZCk7XG4gICAgICAgICAgICByZXR1cm4gcGVyc29ucy5maWx0ZXIoKHsgaWQgfSkgPT4gIWlkcy5pbmNsdWRlcyhpZCkpO1xuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBlcnNvblJvbGUuQUxMOiB7XG4gICAgICAgICAgcmV0dXJuIHppcChmaW5kSnVkaWNpYWxPckNUU0NQZW9wbGUsIGZpbmRDYXNld29ya2Vyc09yQWRtaW5zT3JDdHNjKS5waXBlKG1hcChzZXBhcmF0ZVBlb3BsZSA9PiBzZXBhcmF0ZVBlb3BsZVswXS5jb25jYXQoc2VwYXJhdGVQZW9wbGVbMV0pKSk7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBQZXJzb25Sb2xlLkNUU0M6XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5DQVNFV09SS0VSOlxuICAgICAgICBjYXNlIFBlcnNvblJvbGUuQURNSU46IHtcbiAgICAgICAgICByZXR1cm4gZmluZENhc2V3b3JrZXJzT3JBZG1pbnNPckN0c2M7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9mKFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShzZWxlY3RlZFBlcnNvbjogUGVyc29uKTogdm9pZCB7XG4gICAgdGhpcy5wZXJzb25TZWxlY3RlZC5lbWl0KHNlbGVjdGVkUGVyc29uKTtcbiAgICB0aGlzLmZpbmRQZXJzb25Db250cm9sLnNldFZhbHVlKHRoaXMuZ2V0RGlzcGxheU5hbWUoc2VsZWN0ZWRQZXJzb24pLCB7ZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWV9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXREaXNwbGF5TmFtZShzZWxlY3RlZFBlcnNvbjogUGVyc29uKTogc3RyaW5nIHtcbiAgICBpZiAoIXNlbGVjdGVkUGVyc29uKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmIChzZWxlY3RlZFBlcnNvbi5kb21haW4gPT09IFBlcnNvblJvbGUuSlVESUNJQUwgJiYgc2VsZWN0ZWRQZXJzb24uZnVsbE5hbWUpIHtcbiAgICAgIHJldHVybiBgJHtzZWxlY3RlZFBlcnNvbi5mdWxsTmFtZX0gKCR7c2VsZWN0ZWRQZXJzb24uZW1haWx9KWA7XG4gICAgfVxuICAgIHJldHVybiBzZWxlY3RlZFBlcnNvbi5lbWFpbCA/IGAke3NlbGVjdGVkUGVyc29uLm5hbWV9ICgke3NlbGVjdGVkUGVyc29uLmVtYWlsfSlgIDogc2VsZWN0ZWRQZXJzb24ubmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMucGVyc29uRmllbGRDaGFuZ2VkLmVtaXQoKTtcbiAgfVxufVxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9maW5kLXBlcnNvbi9maW5kLXBlcnNvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQTRCLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkYsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQVFwRixNQUFNLE9BQU8sbUJBQW1CO0lBMEI5QixZQUE2QixpQkFBcUMsRUFBbUIsRUFBcUI7UUFBN0Usc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFvQjtRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQXpCekYsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzVDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFL0MsY0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQzlCLGFBQVEsR0FBRyw4Q0FBOEMsQ0FBQztRQUMxRCxXQUFNLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUN4QixvQkFBZSxHQUFjLElB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TCxLQUFLOzJCQUNMLEtBQUs7MkJBQ0wsS0FBSztpQ0FDTCxLQUFLOytCQUNMLEtBQUs7K0JBQ0wsS0FBSzs4QkFDTCxLQUFLOzJCQUNMLEtBQUs7c0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29mJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUGVyc29uLCBQZXJzb25Sb2xlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpbmRBUGVyc29uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZmluZC1wZXJzb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1wZXJzb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maW5kLXBlcnNvbi5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIEZpbmRQZXJzb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBPdXRwdXQoKSBwdWJsaWMgcGVyc29uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBlcnNvbj4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBwZXJzb25GaWVsZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgYm9sZFRpdGxlID0gJ0ZpbmQgdGhlIHBlcnNvbic7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJUaXRsZSA9ICdUeXBlIHRoZSBuYW1lIG9mIHRoZSBwZXJzb24gYW5kIHNlbGVjdCB0aGVtLic7XG4gIEBJbnB1dCgpIHB1YmxpYyBkb21haW4gPSBQZXJzb25Sb2xlLkFMTDtcbiAgQElucHV0KCkgcHVibGljIGZpbmRQZXJzb25Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFBlcnNvbjogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc3VibWl0dGVkOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIHVzZXJJbmNsdWRlZD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGFzc2lnbmVkVXNlcj86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyQ29udGVudDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpc05vUmVzdWx0c1Nob3duOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIHNob3dVcGRhdGVkQ29sb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkUGVyc29uczogUGVyc29uW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ1lvdSBtdXN0IHNlbGVjdCBhIG5hbWUnO1xuICBASW5wdXQoKSBwdWJsaWMgaWRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlczogc3RyaW5nID0gJ0lBJztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcbiAgcHVibGljIHNob3dBdXRvY29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGZpbmRQZXJzb25Db250cm9sOiBGb3JtQ29udHJvbDtcbiAgcHVibGljIGZpbHRlcmVkT3B0aW9uczogUGVyc29uW10gPSBbXTtcbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAyO1xuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmluZFBlcnNvblNlcnZpY2U6IEZpbmRBUGVyc29uU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5zdWIpIHtcbiAgICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmluZFBlcnNvbkNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodGhpcy5zZWxlY3RlZFBlcnNvbik7XG4gICAgdGhpcy5maW5kUGVyc29uR3JvdXAuYWRkQ29udHJvbCgnZmluZFBlcnNvbkNvbnRyb2wnLCB0aGlzLmZpbmRQZXJzb25Db250cm9sKTtcbiAgICB0aGlzLnN1YiA9IHRoaXMuZmluZFBlcnNvbkNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2UpLFxuICAgICAgdGFwKCgpID0+IHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW10pLFxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICB0YXAoKHNlYXJjaFRlcm0pID0+IHR5cGVvZiBzZWFyY2hUZXJtID09PSAnc3RyaW5nJyA/IHRoaXMucGVyc29uU2VsZWN0ZWQuZW1pdChudWxsKSA6IHZvaWQgMCksXG4gICAgICBmaWx0ZXIoKHNlYXJjaFRlcm06IHN0cmluZykgPT4gc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+IHRoaXMubWluU2VhcmNoQ2hhcmFjdGVycyksXG4gICAgICBzd2l0Y2hNYXAoKHNlYXJjaFRlcm06IHN0cmluZykgPT4gdGhpcy5maWx0ZXIoc2VhcmNoVGVybSkucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IHRydWUpLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW10pLFxuICAgICAgKSlcbiAgICApLnN1YnNjcmliZSgocGVvcGxlOiBQZXJzb25bXSkgPT4ge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBwZW9wbGU7XG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXIoc2VhcmNoVGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQZXJzb25bXT4ge1xuICAgIGNvbnN0IGZpbmRKdWRpY2lhbE9yQ1RTQ1Blb3BsZSA9IHRoaXMuZmluZFBlcnNvblNlcnZpY2UuZmluZCh7c2VhcmNoVGVybSwgdXNlclJvbGU6IHRoaXMuZG9tYWluLCBzZXJ2aWNlczogW3RoaXMuc2VydmljZXNdLCB1c2VySW5jbHVkZWQ6IHRoaXMudXNlckluY2x1ZGVkLCBhc3NpZ25lZFVzZXI6IHRoaXMuYXNzaWduZWRVc2VyfSk7XG4gICAgY29uc3QgZmluZENhc2V3b3JrZXJzT3JBZG1pbnNPckN0c2MgPSB0aGlzLmZpbmRQZXJzb25TZXJ2aWNlLmZpbmRDYXNld29ya2Vycyh7c2VhcmNoVGVybSwgdXNlclJvbGU6IHRoaXMuZG9tYWluLCBzZXJ2aWNlczogW3RoaXMuc2VydmljZXNdLCB1c2VySW5jbHVkZWQ6IHRoaXMudXNlckluY2x1ZGVkLCBhc3NpZ25lZFVzZXI6IHRoaXMuYXNzaWduZWRVc2VyfSk7XG4gICAgaWYgKHNlYXJjaFRlcm0gJiYgc2VhcmNoVGVybS5sZW5ndGggPiB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5kb21haW4pIHtcbiAgICAgICAgY2FzZSBQZXJzb25Sb2xlLkpVRElDSUFMOiB7XG4gICAgICAgICAgcmV0dXJuIGZpbmRKdWRpY2lhbE9yQ1RTQ1Blb3BsZS5waXBlKG1hcChwZXJzb25zID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlkczogc3RyaW5nW10gPSB0aGlzLnNlbGVjdGVkUGVyc29ucy5tYXAoKHtpZH0pID0+IGlkKTtcbiAgICAgICAgICAgIHJldHVybiBwZXJzb25zLmZpbHRlcigoeyBpZCB9KSA9PiAhaWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5BTEw6IHtcbiAgICAgICAgICByZXR1cm4gemlwKGZpbmRKdWRpY2lhbE9yQ1RTQ1Blb3BsZSwgZmluZENhc2V3b3JrZXJzT3JBZG1pbnNPckN0c2MpLnBpcGUobWFwKHNlcGFyYXRlUGVvcGxlID0+IHNlcGFyYXRlUGVvcGxlWzBdLmNvbmNhdChzZXBhcmF0ZVBlb3BsZVsxXSkpKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBlcnNvblJvbGUuQ1RTQzpcbiAgICAgICAgY2FzZSBQZXJzb25Sb2xlLkNBU0VXT1JLRVI6XG4gICAgICAgIGNhc2UgUGVyc29uUm9sZS5BRE1JTjoge1xuICAgICAgICAgIHJldHVybiBmaW5kQ2FzZXdvcmtlcnNPckFkbWluc09yQ3RzYztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2YoW10pO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGVkUGVyc29uOiBQZXJzb24pOiB2b2lkIHtcbiAgICB0aGlzLnBlcnNvblNlbGVjdGVkLmVtaXQoc2VsZWN0ZWRQZXJzb24pO1xuICAgIHRoaXMuZmluZFBlcnNvbkNvbnRyb2wuc2V0VmFsdWUodGhpcy5nZXREaXNwbGF5TmFtZShzZWxlY3RlZFBlcnNvbiksIHtlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZX0pO1xuICB9XG5cbiAgcHVibGljIGdldERpc3BsYXlOYW1lKHNlbGVjdGVkUGVyc29uOiBQZXJzb24pOiBzdHJpbmcge1xuICAgIGlmICghc2VsZWN0ZWRQZXJzb24pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHNlbGVjdGVkUGVyc29uLmRvbWFpbiA9PT0gUGVyc29uUm9sZS5KVURJQ0lBTCAmJiBzZWxlY3RlZFBlcnNvbi5mdWxsTmFtZSkge1xuICAgICAgcmV0dXJuIGAke3NlbGVjdGVkUGVyc29uLmZ1bGxOYW1lfSAoJHtzZWxlY3RlZFBlcnNvbi5lbWFpbH0pYDtcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGVkUGVyc29uLmVtYWlsID8gYCR7c2VsZWN0ZWRQZXJzb24ubmFtZX0gKCR7c2VsZWN0ZWRQZXJzb24uZW1haWx9KWAgOiBzZWxlY3RlZFBlcnNvbi5uYW1lO1xuICB9XG5cbiAgcHVibGljIG9uSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5wZXJzb25GaWVsZENoYW5nZWQuZW1pdCgpO1xuICB9XG59XG4iXX0=
@@ -1,8 +1,3 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/find-service/find-service.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
7
2
  import { FormControl, FormGroup } from '@angular/forms';
8
3
  export class FindServiceComponent {
@@ -11,71 +6,70 @@ export class FindServiceComponent {
11
6
  this.selectedServices = [];
12
7
  this.enableAddServiceButton = true;
13
8
  this.disabled = false;
9
+ this.disableInputField = false;
14
10
  this.serviceFieldChanged = new EventEmitter();
15
11
  this.tempSelectedService = null;
12
+ this.allServiceOption = {
13
+ key: 'all',
14
+ label: 'All'
15
+ };
16
+ this.allServices = [];
16
17
  }
17
- /**
18
- * @return {?}
19
- */
20
18
  ngOnInit() {
21
- this.selectedServices = this.selectedServices !== null ? this.selectedServices.filter((/**
22
- * @param {?} service
23
- * @return {?}
24
- */
25
- (service) => service.key)) : [];
19
+ this.allServices = this.services;
20
+ this.selectedServices = this.selectedServices !== null ? this.selectedServices.filter((service) => service.key) : [];
26
21
  this.SortAnOptions();
27
22
  }
28
- /**
29
- * @return {?}
30
- */
31
23
  addService() {
24
+ if (this.selectedServices.find(s => s.key === this.allServiceOption.key)) {
25
+ if (this.tempSelectedService === null) {
26
+ return;
27
+ }
28
+ if (this.tempSelectedService.key !== this.allServiceOption.key) {
29
+ this.removeService(this.allServiceOption);
30
+ }
31
+ }
32
32
  if (this.tempSelectedService === null) {
33
- return;
33
+ this.tempSelectedService = this.allServiceOption;
34
+ }
35
+ if (!this.selectedServices.find(s => s.key === this.tempSelectedService.key)) {
36
+ if (this.tempSelectedService.key) {
37
+ if (this.tempSelectedService.key === this.allServiceOption.key) {
38
+ this.selectedServices = [];
39
+ const formArray = this.form.get(this.field.name);
40
+ while (formArray.length > 0) {
41
+ formArray.removeAt(0);
42
+ }
43
+ this.services = this.allServices;
44
+ }
45
+ this.selectedServices = [...this.selectedServices, this.tempSelectedService];
46
+ this.addSelectedServicesToForm([this.tempSelectedService]);
47
+ this.services = this.services.filter(s => s.key !== this.tempSelectedService.key);
48
+ }
34
49
  }
35
- this.selectedServices = [...this.selectedServices, this.tempSelectedService];
36
- this.addSelectedServicesToForm([this.tempSelectedService]);
37
- this.services = this.services.filter((/**
38
- * @param {?} s
39
- * @return {?}
40
- */
41
- s => s.key !== this.tempSelectedService.key));
42
50
  this.tempSelectedService = null;
43
- this.serviceFieldChanged.emit();
51
+ this.serviceFieldChanged.emit(this.tempSelectedService);
44
52
  }
45
- /**
46
- * @param {?} service
47
- * @return {?}
48
- */
49
53
  removeService(service) {
50
54
  if (service.key) {
51
- this.selectedServices = this.selectedServices !== null ? this.selectedServices.filter((/**
52
- * @param {?} selectedService
53
- * @return {?}
54
- */
55
- (selectedService) => selectedService.key !== service.key)) : [];
56
- /** @type {?} */
57
- const formArray = (/** @type {?} */ (this.form.get(this.field.name)));
58
- /** @type {?} */
59
- const index = (formArray.value).findIndex((/**
60
- * @param {?} selectedService
61
- * @return {?}
62
- */
63
- (selectedService) => selectedService.key === service.key));
55
+ this.selectedServices = this.selectedServices !== null ? this.selectedServices.filter((selectedService) => selectedService.key !== service.key) : [];
56
+ const formArray = this.form.get(this.field.name);
57
+ const index = (formArray.value).findIndex((selectedService) => selectedService.key === service.key);
64
58
  if (index > -1) {
65
59
  formArray.removeAt(index);
66
- this.services.splice(index, 0, service);
67
- this.SortAnOptions();
60
+ if (service.key !== this.allServiceOption.key) {
61
+ this.services.splice(index, 0, service);
62
+ this.SortAnOptions();
63
+ }
68
64
  }
69
- this.serviceFieldChanged.emit();
65
+ this.serviceFieldChanged.emit(service);
70
66
  }
71
67
  }
72
- /**
73
- * @param {?} service
74
- * @return {?}
75
- */
76
68
  onServiceSelected(service) {
77
69
  if (!service) {
78
- this.tempSelectedService = null;
70
+ this.tempSelectedService = this.allServiceOption;
71
+ service = this.allServiceOption;
72
+ this.serviceFieldChanged.emit(service);
79
73
  return;
80
74
  }
81
75
  if (this.field.maxSelected === 1) {
@@ -83,62 +77,39 @@ export class FindServiceComponent {
83
77
  this.addSelectedServicesToForm([service]);
84
78
  }
85
79
  else {
86
- if (!this.selectedServices.find((/**
87
- * @param {?} s
88
- * @return {?}
89
- */
90
- s => s.key === service.key))) {
80
+ if (!this.selectedServices.find(s => s.key === service.key)) {
91
81
  if (service.key) {
92
82
  this.tempSelectedService = service;
93
83
  }
94
84
  }
95
85
  }
86
+ this.serviceFieldChanged.emit(service);
96
87
  }
97
- /**
98
- * @private
99
- * @return {?}
100
- */
101
88
  removeSelectedValues() {
102
- /** @type {?} */
103
- const formArray = (/** @type {?} */ (this.form.get(this.field.name)));
89
+ const formArray = this.form.get(this.field.name);
104
90
  for (let i = 0; i < formArray.length; i++) {
105
91
  formArray.removeAt(i);
106
92
  }
107
93
  this.selectedServices = [];
108
94
  }
109
- /**
110
- * @private
111
- * @param {?} services
112
- * @return {?}
113
- */
114
95
  addSelectedServicesToForm(services) {
115
- /** @type {?} */
116
- const formArray = (/** @type {?} */ (this.form.get(this.field.name)));
96
+ const formArray = this.form.get(this.field.name);
117
97
  for (const service of services) {
118
98
  formArray.push(new FormControl(service));
119
99
  }
120
100
  }
121
- /**
122
- * @private
123
- * @return {?}
124
- */
125
101
  SortAnOptions() {
126
- return this.services.sort((/**
127
- * @param {?} a
128
- * @param {?} b
129
- * @return {?}
130
- */
131
- (a, b) => {
102
+ return this.services.sort((a, b) => {
132
103
  return a.label.toLowerCase() > b.label.toLowerCase() ? 1 : (b.label.toLowerCase() > a.label.toLowerCase() ? -1 : 0);
133
- }));
104
+ });
134
105
  }
135
106
  }
136
107
  FindServiceComponent.decorators = [
137
108
  { type: Component, args: [{
138
109
  selector: 'xuilib-find-service',
139
- template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div>\n <label id=\"input-selected-service-label\" *ngIf=\"serviceTitle\">{{serviceTitle}}</label>\n </div>\n <exui-search-service class=\"search-service\"\n [services]=\"services\"\n [selectedServices]=\"selectedServices\"\n [delay]=\"300\"\n [disabled]=\"disabled\"></exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addService()\" class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\" *ngIf=\"enableAddServiceButton\" id=\"add-service\">\n Add\n </a>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"service-selection\" *ngFor=\"let selection of selectedServices\">\n <a class=\"hmcts-filter__tag\" href=\"javascript:void(0)\">\n {{ selection.name }}\n </a>\n </li>\n </ul>\n </div>\n",
110
+ template: "<div class=\"service-picker-custom\">\n <div class=\"search-service\">\n <div class=\"govuk-body\">\n <label id=\"selectServiceSearch-label\" for=\"serviceSearch__select\" *ngIf=\"serviceTitle\">\n {{ serviceTitle}}\n </label>\n </div>\n <div class=\"search-service__input-container\">\n <exui-search-service class=\"search-service__input\"\n [services]=\"services\"\n [selectedServices]=\"selectedServices\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n (serviceChanged)=\"onServiceSelected($event)\">\n </exui-search-service>\n <a href=\"javascript:void(0)\" (click)=\"addService()\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"enableAddServiceButton\" id=\"add-service\">\n Add\n </a>\n </div>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedServices\">\n <a *ngIf=\"selection.key!=='All'\" class=\"hmcts-filter__tag\" (click)=\"removeService(selection)\" href=\"javascript:void(0)\">\n {{ selection.label }}\n </a>\n </li>\n </ul>\n</div>\n",
140
111
  styles: ["#add-service{background-color:#ddd}"]
141
- }] }
112
+ },] }
142
113
  ];
143
114
  FindServiceComponent.propDecorators = {
144
115
  field: [{ type: Input }],
@@ -149,28 +120,7 @@ FindServiceComponent.propDecorators = {
149
120
  selectedServices: [{ type: Input }],
150
121
  enableAddServiceButton: [{ type: Input }],
151
122
  disabled: [{ type: Input }],
123
+ disableInputField: [{ type: Input }],
152
124
  serviceFieldChanged: [{ type: Output }]
153
125
  };
154
- if (false) {
155
- /** @type {?} */
156
- FindServiceComponent.prototype.field;
157
- /** @type {?} */
158
- FindServiceComponent.prototype.fields;
159
- /** @type {?} */
160
- FindServiceComponent.prototype.serviceTitle;
161
- /** @type {?} */
162
- FindServiceComponent.prototype.form;
163
- /** @type {?} */
164
- FindServiceComponent.prototype.services;
165
- /** @type {?} */
166
- FindServiceComponent.prototype.selectedServices;
167
- /** @type {?} */
168
- FindServiceComponent.prototype.enableAddServiceButton;
169
- /** @type {?} */
170
- FindServiceComponent.prototype.disabled;
171
- /** @type {?} */
172
- FindServiceComponent.prototype.serviceFieldChanged;
173
- /** @type {?} */
174
- FindServiceComponent.prototype.tempSelectedService;
175
- }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zZXJ2aWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9maW5kLXNlcnZpY2UvZmluZC1zZXJ2aWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFhLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFuRSxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBVWtCLGFBQVEsR0FBeUIsRUFBRSxDQUFDO1FBQ3BDLHFCQUFnQixHQUF5QixFQUFFLENBQUM7UUFDNUMsMkJBQXNCLEdBQVksSUFBSSxDQUFDO1FBQ3ZDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFekIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RCx3QkFBbUIsR0FBdUIsSUFBSSxDQUFDO0lBc0V4RCxDQUFDOzs7O0lBcEVRLFFBQVE7UUFDYixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU07Ozs7UUFBQyxDQUFDLE9BQTJCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7O0lBRU0sVUFBVTtRQUNmLElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLElBQUksRUFBRTtZQUNyQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENB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RXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbHRlckNvbmZpZ09wdGlvbiwgRmlsdGVyRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZmluZC1zZXJ2aWNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbmQtc2VydmljZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtc2VydmljZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbmRTZXJ2aWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGZpZWxkOiBGaWx0ZXJGaWVsZENvbmZpZztcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmlsdGVyRmllbGRDb25maWdbXTtcbiAgQElucHV0KCkgcHVibGljIHNlcnZpY2VUaXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZXM6IEZpbHRlckNvbmZpZ09wdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFNlcnZpY2VzOiBGaWx0ZXJDb25maWdPcHRpb25bXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQWRkU2VydmljZUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgc2VydmljZUZpZWxkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBwdWJsaWMgdGVtcFNlbGVjdGVkU2VydmljZTogRmlsdGVyQ29uZmlnT3B0aW9uID0gbnVsbDtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFNlcnZpY2VzID0gdGhpcy5zZWxlY3RlZFNlcnZpY2VzICE9PSBudWxsID8gdGhpcy5zZWxlY3RlZFNlcnZpY2VzLmZpbHRlcigoc2VydmljZTogRmlsdGVyQ29uZmlnT3B0aW9uKSA9PiBzZXJ2aWNlLmtleSkgOiBbXTtcbiAgICB0aGlzLlNvcnRBbk9wdGlvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTZXJ2aWNlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRlbXBTZWxlY3RlZFNlcnZpY2UgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFNlcnZpY2VzID0gWy4uLnRoaXMuc2VsZWN0ZWRTZXJ2aWNlcywgdGhpcy50ZW1wU2VsZWN0ZWRTZXJ2aWNlXTtcbiAgICB0aGlzLmFkZFNlbGVjdGVkU2VydmljZXNUb0Zvcm0oW3RoaXMudGVtcFNlbGVjdGVkU2VydmljZV0pO1xuICAgIHRoaXMuc2VydmljZXMgPSB0aGlzLnNlcnZpY2VzLmZpbHRlcihzID0+IHMua2V5ICE9PSB0aGlzLnRlbXBTZWxlY3RlZFNlcnZpY2Uua2V5KTtcbiAgICB0aGlzLnRlbXBTZWxlY3RlZFNlcnZpY2UgPSBudWxsO1xuICAgIHRoaXMuc2VydmljZUZpZWxkQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlU2VydmljZShzZXJ2aWNlOiBGaWx0ZXJDb25maWdPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAoc2VydmljZS5rZXkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRTZXJ2aWNlcyA9IHRoaXMuc2VsZWN0ZWRTZXJ2aWNlcyAhPT0gbnVsbCA/IHRoaXMuc2VsZWN0ZWRTZXJ2aWNlcy5maWx0ZXIoKHNlbGVjdGVkU2VydmljZTogRmlsdGVyQ29uZmlnT3B0aW9uKSA9PiBzZWxlY3RlZFNlcnZpY2Uua2V5ICE9PSBzZXJ2aWNlLmtleSkgOiBbXTtcbiAgICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5uYW1lKSBhcyBGb3JtQXJyYXk7XG4gICAgICBjb25zdCBpbmRleCA9IChmb3JtQXJyYXkudmFsdWUpLmZpbmRJbmRleCgoc2VsZWN0ZWRTZXJ2aWNlOiBGaWx0ZXJDb25maWdPcHRpb24pID0+IHNlbGVjdGVkU2VydmljZS5rZXkgPT09IHNlcnZpY2Uua2V5KTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIGZvcm1BcnJheS5yZW1vdmVBdChpbmRleCk7XG4gICAgICAgIHRoaXMuc2VydmljZXMuc3BsaWNlKGluZGV4LCAwLCBzZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5Tb3J0QW5PcHRpb25zKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNlcnZpY2VGaWVsZENoYW5nZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlcnZpY2VTZWxlY3RlZChzZXJ2aWNlOiBGaWx0ZXJDb25maWdPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAoIXNlcnZpY2UpIHtcbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkU2VydmljZSA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxKSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICB0aGlzLmFkZFNlbGVjdGVkU2VydmljZXNUb0Zvcm0oW3NlcnZpY2VdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkU2VydmljZXMuZmluZChzID0+IHMua2V5ID09PSBzZXJ2aWNlLmtleSkpIHtcbiAgICAgICAgaWYgKHNlcnZpY2Uua2V5KSB7XG4gICAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRTZXJ2aWNlID0gc2VydmljZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2VsZWN0ZWRWYWx1ZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLm5hbWUpIGFzIEZvcm1BcnJheTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1BcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgZm9ybUFycmF5LnJlbW92ZUF0KGkpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkU2VydmljZXMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkU2VsZWN0ZWRTZXJ2aWNlc1RvRm9ybShzZXJ2aWNlczogRmlsdGVyQ29uZmlnT3B0aW9uW10pOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgRm9ybUFycmF5O1xuICAgIGZvciAoY29uc3Qgc2VydmljZSBvZiBzZXJ2aWNlcykge1xuICAgICAgZm9ybUFycmF5LnB1c2gobmV3IEZvcm1Db250cm9sKHNlcnZpY2UpKTtcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgU29ydEFuT3B0aW9ucygpOiBGaWx0ZXJDb25maWdPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgcmV0dXJuIGEubGFiZWwudG9Mb3dlckNhc2UoKSA+IGIubGFiZWwudG9Mb3dlckNhc2UoKSA/IDEgOiAoYi5sYWJlbC50b0xvd2VyQ2FzZSgpID4gYS5sYWJlbC50b0xvd2VyQ2FzZSgpID8gLTEgOiAwKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1zZXJ2aWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZmluZC1zZXJ2aWNlL2ZpbmQtc2VydmljZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUW5FLE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFVa0IsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFDcEMscUJBQWdCLEdBQXlCLEVBQUUsQ0FBQztRQUM1QywyQkFBc0IsR0FBWSxJQUFJLENBQUM7UUFDdkMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFFekIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFdkUsd0JBQW1CLEdBQXVCLElBQUksQ0FBQztRQUVyQyxxQkFBZ0IsR0FBRztZQUNsQyxHQUFHLEVBQUUsS0FBSztZQUNWLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUNNLGdCQUFXLEdBQXlCLEVBQUUsQ0FBQztJQWtHakQsQ0FBQztJQWhHUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBMkIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFD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QUM7UUFDdEgsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUF6SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLDB2Q0FBNEM7O2FBRTdDOzs7b0JBRUUsS0FBSztxQkFDTCxLQUFLOzJCQUNMLEtBQUs7bUJBQ0wsS0FBSzt1QkFDTCxLQUFLOytCQUNMLEtBQUs7cUNBQ0wsS0FBSzt1QkFDTCxLQUFLO2dDQUNMLEtBQUs7a0NBRUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpbHRlckNvbmZpZ09wdGlvbiwgRmlsdGVyRmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZmluZC1zZXJ2aWNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbmQtc2VydmljZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtc2VydmljZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbmRTZXJ2aWNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGZpZWxkOiBGaWx0ZXJGaWVsZENvbmZpZztcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmlsdGVyRmllbGRDb25maWdbXTtcbiAgQElucHV0KCkgcHVibGljIHNlcnZpY2VUaXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgc2VydmljZXM6IEZpbHRlckNvbmZpZ09wdGlvbltdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZFNlcnZpY2VzOiBGaWx0ZXJDb25maWdPcHRpb25bXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQWRkU2VydmljZUJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZUlucHV0RmllbGQgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcHVibGljIHNlcnZpY2VGaWVsZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNvbmZpZ09wdGlvbj4oKTtcblxuICBwdWJsaWMgdGVtcFNlbGVjdGVkU2VydmljZTogRmlsdGVyQ29uZmlnT3B0aW9uID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFsbFNlcnZpY2VPcHRpb24gPSB7XG4gICAga2V5OiAnYWxsJyxcbiAgICBsYWJlbDogJ0FsbCdcbiAgfTtcbiAgcHJpdmF0ZSBhbGxTZXJ2aWNlczogRmlsdGVyQ29uZmlnT3B0aW9uW10gPSBbXTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hbGxTZXJ2aWNlcyA9IHRoaXMuc2VydmljZXM7XG4gICAgdGhpcy5zZWxlY3RlZFNlcnZpY2VzID0gdGhpcy5zZWxlY3RlZFNlcnZpY2VzICE9PSBudWxsID8gdGhpcy5zZWxlY3RlZFNlcnZpY2VzLmZpbHRlcigoc2VydmljZTogRmlsdGVyQ29uZmlnT3B0aW9uKSA9PiBzZXJ2aWNlLmtleSkgOiBbXTtcbiAgICB0aGlzLlNvcnRBbk9wdGlvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTZXJ2aWNlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkU2VydmljZXMuZmluZChzID0+IHMua2V5ID09PSB0aGlzLmFsbFNlcnZpY2VPcHRpb24ua2V5KSkge1xuICAgICAgaWYgKHRoaXMudGVtcFNlbGVjdGVkU2VydmljZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodGhpcy50ZW1wU2VsZWN0ZWRTZXJ2aWNlLmtleSAhPT0gdGhpcy5hbGxTZXJ2aWNlT3B0aW9uLmtleSkge1xuICAgICAgICB0aGlzLnJlbW92ZVNlcnZpY2UodGhpcy5hbGxTZXJ2aWNlT3B0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50ZW1wU2VsZWN0ZWRTZXJ2aWNlID09PSBudWxsKSB7XG4gICAgICB0aGlzLnRlbXBTZWxlY3RlZFNlcnZpY2UgPSB0aGlzLmFsbFNlcnZpY2VPcHRpb247XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkU2VydmljZXMuZmluZChzID0+IHMua2V5ID09PSB0aGlzLnRlbXBTZWxlY3RlZFNlcnZpY2Uua2V5KSkge1xuICAgICAgaWYgKHRoaXMudGVtcFNlbGVjdGVkU2VydmljZS5rZXkpIHtcbiAgICAgICAgaWYgKHRoaXMudGVtcFNlbGVjdGVkU2VydmljZS5rZXkgPT09IHRoaXMuYWxsU2VydmljZU9wdGlvbi5rZXkpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkU2VydmljZXMgPSBbXTtcbiAgICAgICAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgRm9ybUFycmF5O1xuICAgICAgICAgIHdoaWxlIChmb3JtQXJyYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9ybUFycmF5LnJlbW92ZUF0KDApO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNlcnZpY2VzID0gdGhpcy5hbGxTZXJ2aWNlcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkU2VydmljZXMgPSBbLi4udGhpcy5zZWxlY3RlZFNlcnZpY2VzLCB0aGlzLnRlbXBTZWxlY3RlZFNlcnZpY2VdO1xuICAgICAgICB0aGlzLmFkZFNlbGVjdGVkU2VydmljZXNUb0Zvcm0oW3RoaXMudGVtcFNlbGVjdGVkU2VydmljZV0pO1xuICAgICAgICB0aGlzLnNlcnZpY2VzID0gdGhpcy5zZXJ2aWNlcy5maWx0ZXIocyA9PiBzLmtleSAhPT0gdGhpcy50ZW1wU2VsZWN0ZWRTZXJ2aWNlLmtleSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50ZW1wU2VsZWN0ZWRTZXJ2aWNlID0gbnVsbDtcbiAgICB0aGlzLnNlcnZpY2VGaWVsZENoYW5nZWQuZW1pdCh0aGlzLnRlbXBTZWxlY3RlZFNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVNlcnZpY2Uoc2VydmljZTogRmlsdGVyQ29uZmlnT3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKHNlcnZpY2Uua2V5KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkU2VydmljZXMgPSB0aGlzLnNlbGVjdGVkU2VydmljZXMgIT09IG51bGwgPyB0aGlzLnNlbGVjdGVkU2VydmljZXMuZmlsdGVyKChzZWxlY3RlZFNlcnZpY2U6IEZpbHRlckNvbmZpZ09wdGlvbikgPT4gc2VsZWN0ZWRTZXJ2aWNlLmtleSAhPT0gc2VydmljZS5rZXkpIDogW107XG4gICAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgRm9ybUFycmF5O1xuICAgICAgY29uc3QgaW5kZXggPSAoZm9ybUFycmF5LnZhbHVlKS5maW5kSW5kZXgoKHNlbGVjdGVkU2VydmljZTogRmlsdGVyQ29uZmlnT3B0aW9uKSA9PiBzZWxlY3RlZFNlcnZpY2Uua2V5ID09PSBzZXJ2aWNlLmtleSk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgICBpZiAoc2VydmljZS5rZXkgIT09IHRoaXMuYWxsU2VydmljZU9wdGlvbi5rZXkpIHtcbiAgICAgICAgICB0aGlzLnNlcnZpY2VzLnNwbGljZShpbmRleCwgMCwgc2VydmljZSk7XG4gICAgICAgICAgdGhpcy5Tb3J0QW5PcHRpb25zKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuc2VydmljZUZpZWxkQ2hhbmdlZC5lbWl0KHNlcnZpY2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlcnZpY2VTZWxlY3RlZChzZXJ2aWNlOiBGaWx0ZXJDb25maWdPcHRpb24pOiB2b2lkIHtcbiAgICBpZiAoIXNlcnZpY2UpIHtcbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkU2VydmljZSA9IHRoaXMuYWxsU2VydmljZU9wdGlvbjtcbiAgICAgIHNlcnZpY2UgPSB0aGlzLmFsbFNlcnZpY2VPcHRpb247XG4gICAgICB0aGlzLnNlcnZpY2VGaWVsZENoYW5nZWQuZW1pdChzZXJ2aWNlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuZmllbGQubWF4U2VsZWN0ZWQgPT09IDEpIHtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICAgIHRoaXMuYWRkU2VsZWN0ZWRTZXJ2aWNlc1RvRm9ybShbc2VydmljZV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRTZXJ2aWNlcy5maW5kKHMgPT4gcy5rZXkgPT09IHNlcnZpY2Uua2V5KSkge1xuICAgICAgICBpZiAoc2VydmljZS5rZXkpIHtcbiAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZFNlcnZpY2UgPSBzZXJ2aWNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VydmljZUZpZWxkQ2hhbmdlZC5lbWl0KHNlcnZpY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTZWxlY3RlZFZhbHVlcygpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgRm9ybUFycmF5O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybUFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRTZXJ2aWNlcyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRTZWxlY3RlZFNlcnZpY2VzVG9Gb3JtKHNlcnZpY2VzOiBGaWx0ZXJDb25maWdPcHRpb25bXSk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5uYW1lKSBhcyBGb3JtQXJyYXk7XG4gICAgZm9yIChjb25zdCBzZXJ2aWNlIG9mIHNlcnZpY2VzKSB7XG4gICAgICBmb3JtQXJyYXkucHVzaChuZXcgRm9ybUNvbnRyb2woc2VydmljZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgU29ydEFuT3B0aW9ucygpOiBGaWx0ZXJDb25maWdPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZXMuc29ydCgoYSwgYikgPT4ge1xuICAgICAgcmV0dXJuIGEubGFiZWwudG9Mb3dlckNhc2UoKSA+IGIubGFiZWwudG9Mb3dlckNhc2UoKSA/IDEgOiAoYi5sYWJlbC50b0xvd2VyQ2FzZSgpID4gYS5sYWJlbC50b0xvd2VyQ2FzZSgpID8gLTEgOiAwKTtcbiAgICB9KTtcbiAgfVxufVxuIl19