@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,8 +1,3 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/due-date/due-date.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  import { formatDate } from '@angular/common';
7
2
  import { Component, Input, ViewEncapsulation } from '@angular/core';
8
3
  import { DateBadgeColour, SECONDS_IN_A_DAY } from '../../models/due-date.model';
@@ -24,7 +19,6 @@ export class DueDateComponent {
24
19
  * ALSO NOTE: Anything overdue is automatically considered HIGH urgency.
25
20
  */
26
21
  this.highUrgencyCutoff = 0; // Default
27
- // Default
28
22
  /**
29
23
  * This should be considered MEDIUM urgency if there are fewer than this
30
24
  * many days until the due date.
@@ -40,42 +34,23 @@ export class DueDateComponent {
40
34
  */
41
35
  this.mediumUrgencyCutoff = 2;
42
36
  }
43
- /**
44
- * @return {?}
45
- */
46
37
  get badge() {
47
38
  return this.pBadge;
48
39
  }
49
- /**
50
- * @return {?}
51
- */
52
40
  get label() {
53
41
  return this.pLabel;
54
42
  }
55
- /**
56
- * @return {?}
57
- */
58
43
  get accessibleLabel() {
59
44
  return this.pAccessibleLabel;
60
45
  }
61
- /**
62
- * @return {?}
63
- */
64
46
  get daysDiff() {
65
47
  return this.pDaysDiff;
66
48
  }
67
49
  // Catch any changes to any of the Input() properties.
68
- /**
69
- * @return {?}
70
- */
71
50
  ngOnChanges() {
72
51
  this.handleInputChanges();
73
52
  }
74
53
  // Set up the label, urgency class, and accessibility fields.
75
- /**
76
- * @private
77
- * @return {?}
78
- */
79
54
  handleInputChanges() {
80
55
  // If we don't have a dueDate, skip out of here.
81
56
  if (!this.dueDate) {
@@ -89,7 +64,6 @@ export class DueDateComponent {
89
64
  // Is it overdue?
90
65
  if (this.daysDiff > 0) {
91
66
  this.pBadge = DateBadgeColour.RED;
92
- /** @type {?} */
93
67
  const daysLabel = this.daysDiff === 1 ? 'day' : 'days';
94
68
  this.pLabel = `+${this.daysDiff} ${daysLabel}`;
95
69
  this.pAccessibleLabel = `This task is ${this.daysDiff} ${daysLabel} past its due date`;
@@ -118,18 +92,9 @@ export class DueDateComponent {
118
92
  // This will return the difference between two dates.
119
93
  // If fromDate is BEFORE toDate, it will be a positive number.
120
94
  // If fromDate is AFTER toDate, it will be a negative number.
121
- /**
122
- * @private
123
- * @param {?} fromDate
124
- * @param {?} toDate
125
- * @return {?}
126
- */
127
95
  getDaysDifference(fromDate, toDate) {
128
- /** @type {?} */
129
96
  const fromEpoch = fromDate.getTime();
130
- /** @type {?} */
131
97
  const toEpoch = toDate.getTime();
132
- /** @type {?} */
133
98
  const diffSecs = Math.floor((toEpoch - fromEpoch) / 1000);
134
99
  return Math.floor(diffSecs / SECONDS_IN_A_DAY);
135
100
  }
@@ -140,71 +105,11 @@ DueDateComponent.decorators = [
140
105
  template: "<span *ngIf=\"dueDate\" class=\"due-date hmcts-badge\" [ngClass]=\"badge\"\n [title]=\"accessibleLabel\" [attr.aria-label]=\"accessibleLabel\">\n {{label}}\n</span>",
141
106
  encapsulation: ViewEncapsulation.None,
142
107
  styles: [".due-date{white-space:nowrap}.due-date.hmcts-badge--orange{color:#f47738;border-color:#f47738}"]
143
- }] }
108
+ },] }
144
109
  ];
145
110
  DueDateComponent.propDecorators = {
146
111
  dueDate: [{ type: Input }],
147
112
  highUrgencyCutoff: [{ type: Input }],
148
113
  mediumUrgencyCutoff: [{ type: Input }]
149
114
  };
150
- if (false) {
151
- /**
152
- * The due date to use as the basis for rendering this component. It is
153
- * compared to the current date and displayed accordingly.
154
- * @type {?}
155
- */
156
- DueDateComponent.prototype.dueDate;
157
- /**
158
- * This should be considered HIGH urgency if there are fewer than this
159
- * many days until the due date.
160
- * * Set to 0 if you want it to show HIGH if it was due yesterday.
161
- * * Set to 1 if you want it to show HIGH if it's due today.
162
- * * Set to 2 if you want it to show HIGH if it's due tomorrow.
163
- *
164
- * Defaults to 0 (ZERO), which means it won't show as HIGH urgency until the
165
- * due date is in the past.
166
- *
167
- * NOTE: If this is higher than the mediumUrgencyCutoff value, MEDIUM urgency
168
- * will never be shown.
169
- *
170
- * ALSO NOTE: Anything overdue is automatically considered HIGH urgency.
171
- * @type {?}
172
- */
173
- DueDateComponent.prototype.highUrgencyCutoff;
174
- /**
175
- * This should be considered MEDIUM urgency if there are fewer than this
176
- * many days until the due date.
177
- * * Set to 1 if you want it to show MEDIUM if it's due today.
178
- * * Set to 2 if you want it to show MEDIUM if it's due tomorrow.
179
- * * Set to 3 if you want it to show MEDIUM if it's due the day after tomorrow.
180
- *
181
- * Defaults to 2, which means it won't show as MEDIUM urgency unless the
182
- * due date is today or tomorrow.
183
- *
184
- * NOTE: If this is lower than the highUrgencyCutoff value, MEDIUM urgency
185
- * will never be shown.
186
- * @type {?}
187
- */
188
- DueDateComponent.prototype.mediumUrgencyCutoff;
189
- /**
190
- * @type {?}
191
- * @private
192
- */
193
- DueDateComponent.prototype.pBadge;
194
- /**
195
- * @type {?}
196
- * @private
197
- */
198
- DueDateComponent.prototype.pLabel;
199
- /**
200
- * @type {?}
201
- * @private
202
- */
203
- DueDateComponent.prototype.pAccessibleLabel;
204
- /**
205
- * @type {?}
206
- * @private
207
- */
208
- DueDateComponent.prototype.pDaysDiff;
209
- }
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2R1ZS1kYXRlL2R1ZS1kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFRaEYsTUFBTSxPQUFPLGdCQUFnQjtJQU43Qjs7Ozs7Ozs7Ozs7Ozs7OztRQTZCa0Isc0JBQWlCLEdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVTs7Ozs7Ozs7Ozs7Ozs7O1FBZXpDLHdCQUFtQixHQUFXLENBQUMsQ0FBQztJQThFbEQsQ0FBQzs7OztJQTFFQyxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQzs7OztJQUlELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDOzs7O0lBSUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7Ozs7SUFJRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Ozs7O0lBR00sV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDOzs7Ozs7SUFHTyxrQkFBa0I7UUFDeEIsZ0RBQWdEO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUVELDRDQUE0QztRQUM1Qyx1Q0FBdUM7UUFDdkMsNEJBQTRCO1FBQzVCLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVsRSxpQkFBaUI7UUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7O2tCQUM1QixTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTTtZQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxvQkFBb0IsQ0FBQztTQUN4RjthQUFNO1lBQ0wsNkJBQTZCO1lBQzdCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO2dCQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsd0NBQXdDLENBQUM7YUFDbEU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsdUNBQXVDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDO2FBQ2hIO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQzthQUNuQztpQkFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQzthQUNyQztTQUNGO0lBQ0gsQ0FBQzs7Ozs7Ozs7OztJQUtPLGlCQUFpQixDQUFDLFFBQWMsRUFBRSxNQUFZOztjQUM5QyxTQUFTLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRTs7Y0FDOUIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUU7O2NBQzFCLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLENBQUM7SUFDakQsQ0FBQzs7O1lBekhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixzTEFBc0M7Z0JBRXRDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O3NCQU9FLEtBQUs7Z0NBaUJMLEtBQUs7a0NBZUwsS0FBSzs7Ozs7Ozs7SUFoQ04sbUNBQThCOzs7Ozs7Ozs7Ozs7Ozs7OztJQWlCOUIsNkNBQThDOzs7Ozs7Ozs7Ozs7Ozs7SUFlOUMsK0NBQWdEOzs7OztJQUdoRCxrQ0FBdUI7Ozs7O0lBTXZCLGtDQUF1Qjs7Ozs7SUFNdkIsNENBQWlDOzs7OztJQU1qQyxxQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0ZUJhZGdlQ29sb3VyLCBTRUNPTkRTX0lOX0FfREFZIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R1ZS1kYXRlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLWR1ZS1kYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICdkdWUtZGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydkdWUtZGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIER1ZURhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIC8qKlxuICAgKiBUaGUgZHVlIGRhdGUgdG8gdXNlIGFzIHRoZSBiYXNpcyBmb3IgcmVuZGVyaW5nIHRoaXMgY29tcG9uZW50LiBJdCBpc1xuICAgKiBjb21wYXJlZCB0byB0aGUgY3VycmVudCBkYXRlIGFuZCBkaXNwbGF5ZWQgYWNjb3JkaW5nbHkuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZHVlRGF0ZTogRGF0ZTtcblxuICAvKipcbiAgICogVGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBISUdIIHVyZ2VuY3kgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gdGhpc1xuICAgKiBtYW55IGRheXMgdW50aWwgdGhlIGR1ZSBkYXRlLlxuICAgKiAgICAqIFNldCB0byAwIGlmIHlvdSB3YW50IGl0IHRvIHNob3cgSElHSCBpZiBpdCB3YXMgZHVlIHllc3RlcmRheS5cbiAgICogICAgKiBTZXQgdG8gMSBpZiB5b3Ugd2FudCBpdCB0byBzaG93IEhJR0ggaWYgaXQncyBkdWUgdG9kYXkuXG4gICAqICAgICogU2V0IHRvIDIgaWYgeW91IHdhbnQgaXQgdG8gc2hvdyBISUdIIGlmIGl0J3MgZHVlIHRvbW9ycm93LlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byAwIChaRVJPKSwgd2hpY2ggbWVhbnMgaXQgd29uJ3Qgc2hvdyBhcyBISUdIIHVyZ2VuY3kgdW50aWwgdGhlXG4gICAqIGR1ZSBkYXRlIGlzIGluIHRoZSBwYXN0LlxuICAgKlxuICAgKiBOT1RFOiBJZiB0aGlzIGlzIGhpZ2hlciB0aGFuIHRoZSBtZWRpdW1VcmdlbmN5Q3V0b2ZmIHZhbHVlLCBNRURJVU0gdXJnZW5jeVxuICAgKiB3aWxsIG5ldmVyIGJlIHNob3duLlxuICAgKlxuICAgKiBBTFNPIE5PVEU6IEFueXRoaW5nIG92ZXJkdWUgaXMgYXV0b21hdGljYWxseSBjb25zaWRlcmVkIEhJR0ggdXJnZW5jeS5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWdoVXJnZW5jeUN1dG9mZjogbnVtYmVyID0gMDsgLy8gRGVmYXVsdFxuXG4gIC8qKlxuICAgKiBUaGlzIHNob3VsZCBiZSBjb25zaWRlcmVkIE1FRElVTSB1cmdlbmN5IGlmIHRoZXJlIGFyZSBmZXdlciB0aGFuIHRoaXNcbiAgICogbWFueSBkYXlzIHVudGlsIHRoZSBkdWUgZGF0ZS5cbiAgICogICAgKiBTZXQgdG8gMSBpZiB5b3Ugd2FudCBpdCB0byBzaG93IE1FRElVTSBpZiBpdCdzIGR1ZSB0b2RheS5cbiAgICogICAgKiBTZXQgdG8gMiBpZiB5b3Ugd2FudCBpdCB0byBzaG93IE1FRElVTSBpZiBpdCdzIGR1ZSB0b21vcnJvdy5cbiAgICogICAgKiBTZXQgdG8gMyBpZiB5b3Ugd2FudCBpdCB0byBzaG93IE1FRElVTSBpZiBpdCdzIGR1ZSB0aGUgZGF5IGFmdGVyIHRvbW9ycm93LlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byAyLCB3aGljaCBtZWFucyBpdCB3b24ndCBzaG93IGFzIE1FRElVTSB1cmdlbmN5IHVubGVzcyB0aGVcbiAgICogZHVlIGRhdGUgaXMgdG9kYXkgb3IgdG9tb3Jyb3cuXG4gICAqXG4gICAqIE5PVEU6IElmIHRoaXMgaXMgbG93ZXIgdGhhbiB0aGUgaGlnaFVyZ2VuY3lDdXRvZmYgdmFsdWUsIE1FRElVTSB1cmdlbmN5XG4gICAqIHdpbGwgbmV2ZXIgYmUgc2hvd24uXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWVkaXVtVXJnZW5jeUN1dG9mZjogbnVtYmVyID0gMjtcblxuICAvLyBUaGUgSE1DVFMgYmFkZ2UgY2xhc3MsIHVzZWQgZm9yIGNvbG91cmF0aW9uLlxuICBwcml2YXRlIHBCYWRnZTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGJhZGdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucEJhZGdlO1xuICB9XG5cbiAgLy8gVGhlIHRleHR1YWwgbGFiZWwgdG8gZGlzcGxheSBpbiB0aGUgY29tcG9uZW50LlxuICBwcml2YXRlIHBMYWJlbDogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucExhYmVsO1xuICB9XG5cbiAgLy8gVGhlIGFjY2Vzc2libGUgbGFiZWwsIHdoaWNoIGlzIGFsc28gdXNlZCBmb3IgdGhlIHRvb2x0aXAuXG4gIHByaXZhdGUgcEFjY2Vzc2libGVMYWJlbDogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGFjY2Vzc2libGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBBY2Nlc3NpYmxlTGFiZWw7XG4gIH1cblxuICAvLyBIb3cgbWFueSBkYXlzIHRoZSBkdWVEYXRlIHZhcmllcyBmcm9tIHRvZGF5LlxuICBwcml2YXRlIHBEYXlzRGlmZjogbnVtYmVyO1xuICBwdWJsaWMgZ2V0IGRheXNEaWZmKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucERheXNEaWZmO1xuICB9XG5cbiAgLy8gQ2F0Y2ggYW55IGNoYW5nZXMgdG8gYW55IG9mIHRoZSBJbnB1dCgpIHByb3BlcnRpZXMuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gU2V0IHVwIHRoZSBsYWJlbCwgdXJnZW5jeSBjbGFzcywgYW5kIGFjY2Vzc2liaWxpdHkgZmllbGRzLlxuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlcygpIHtcbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgZHVlRGF0ZSwgc2tpcCBvdXQgb2YgaGVyZS5cbiAgICBpZiAoIXRoaXMuZHVlRGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEhvdyBtYW55IGRheXMgZnJvbSB0b2RheSBpcyB0aGUgZHVlIGRhdGU/XG4gICAgLy8gQWxyZWFkeSBoYXBwZW5lZCBtZWFucyBkYXlzRGlmZiA+IDA7XG4gICAgLy8gVG9kYXkgbWVhbnMgZGF5c0RpZmYgPSAwO1xuICAgIC8vIFlldCB0byBjb21lIG1lYW5zIGRheXNEaWZmIDwgMDtcbiAgICB0aGlzLnBEYXlzRGlmZiA9IHRoaXMuZ2V0RGF5c0RpZmZlcmVuY2UodGhpcy5kdWVEYXRlLCBuZXcgRGF0ZSgpKTtcblxuICAgIC8vIElzIGl0IG92ZXJkdWU/XG4gICAgaWYgKHRoaXMuZGF5c0RpZmYgPiAwKSB7XG4gICAgICB0aGlzLnBCYWRnZSA9IERhdGVCYWRnZUNvbG91ci5SRUQ7XG4gICAgICBjb25zdCBkYXlzTGFiZWwgPSB0aGlzLmRheXNEaWZmID09PSAxID8gJ2RheScgOiAnZGF5cyc7XG4gICAgICB0aGlzLnBMYWJlbCA9IGArJHt0aGlzLmRheXNEaWZmfSAke2RheXNMYWJlbH1gO1xuICAgICAgdGhpcy5wQWNjZXNzaWJsZUxhYmVsID0gYFRoaXMgdGFzayBpcyAke3RoaXMuZGF5c0RpZmZ9ICR7ZGF5c0xhYmVsfSBwYXN0IGl0cyBkdWUgZGF0ZWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNwZWNpYWwgbGFiZWwgZm9yIFwiVG9kYXlcIi5cbiAgICAgIGlmICh0aGlzLmRheXNEaWZmID09PSAwKSB7XG4gICAgICAgIHRoaXMucExhYmVsID0gJ1RPREFZJztcbiAgICAgICAgdGhpcy5wQWNjZXNzaWJsZUxhYmVsID0gJ1RoaXMgdGFzayBpcyBkdWUgdG8gYmUgY29tcGxldGVkIHRvZGF5JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucExhYmVsID0gYCR7Zm9ybWF0RGF0ZSh0aGlzLmR1ZURhdGUsICdkIE1NTScsICdlbi1HQicpfWA7XG4gICAgICAgIHRoaXMucEFjY2Vzc2libGVMYWJlbCA9IGBUaGlzIHRhc2sgaXMgZHVlIHRvIGJlIGNvbXBsZXRlZCBieSAke2Zvcm1hdERhdGUodGhpcy5kdWVEYXRlLCAnZCBNTU1NIHknLCAnZW4tR0InKX1gO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZGF5c0RpZmYgKyB0aGlzLmhpZ2hVcmdlbmN5Q3V0b2ZmID4gMCkge1xuICAgICAgICB0aGlzLnBCYWRnZSA9IERhdGVCYWRnZUNvbG91ci5SRUQ7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGF5c0RpZmYgKyB0aGlzLm1lZGl1bVVyZ2VuY3lDdXRvZmYgPiAwKSB7XG4gICAgICAgIHRoaXMucEJhZGdlID0gRGF0ZUJhZGdlQ29sb3VyLk9SQU5HRTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucEJhZGdlID0gRGF0ZUJhZGdlQ29sb3VyLkdSRUVOO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gZGF0ZXMuXG4gIC8vIElmIGZyb21EYXRlIGlzIEJFRk9SRSB0b0RhdGUsIGl0IHdpbGwgYmUgYSBwb3NpdGl2ZSBudW1iZXIuXG4gIC8vIElmIGZyb21EYXRlIGlzIEFGVEVSIHRvRGF0ZSwgaXQgd2lsbCBiZSBhIG5lZ2F0aXZlIG51bWJlci5cbiAgcHJpdmF0ZSBnZXREYXlzRGlmZmVyZW5jZShmcm9tRGF0ZTogRGF0ZSwgdG9EYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICBjb25zdCBmcm9tRXBvY2ggPSBmcm9tRGF0ZS5nZXRUaW1lKCk7XG4gICAgY29uc3QgdG9FcG9jaCA9IHRvRGF0ZS5nZXRUaW1lKCk7XG4gICAgY29uc3QgZGlmZlNlY3MgPSBNYXRoLmZsb29yKCh0b0Vwb2NoIC0gZnJvbUVwb2NoKSAvIDEwMDApO1xuICAgIHJldHVybiBNYXRoLmZsb29yKGRpZmZTZWNzIC8gU0VDT05EU19JTl9BX0RBWSk7XG4gIH1cbn1cbiJdfQ==
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9kdWUtZGF0ZS9kdWUtZGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVFoRixNQUFNLE9BQU8sZ0JBQWdCO0lBTjdCO1FBY0U7Ozs7Ozs7Ozs7Ozs7O1dBY0c7UUFDYSxzQkFBaUIsR0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVO1FBRXpEOzs7Ozs7Ozs7Ozs7V0FZRztRQUNhLHdCQUFtQixHQUFXLENBQUMsQ0FBQztJQThFbEQsQ0FBQztJQTFFQyxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUlELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBSUQsSUFBVyxlQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFJRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxzREFBc0Q7SUFDL0MsV0FBVztRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsNkRBQTZEO0lBQ3JELGtCQUFrQjtRQUN4QixnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBRUQsNENBQTRDO1FBQzVDLHVDQUF1QztRQUN2Qyw0QkFBNEI7UUFDNUIsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLGlCQUFpQjtRQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQztZQUNsQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDdkQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsb0JBQW9CLENBQUM7U0FDeEY7YUFBTTtZQUNMLDZCQUE2QjtZQUM3QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHdDQUF3QyxDQUFDO2FBQ2xFO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHVDQUF1QyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQzthQUNoSDtZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxFQUFFO2dCQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUM7YUFDbkM7aUJBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQzthQUN0QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7YUFDckM7U0FDRjtJQUNILENBQUM7SUFFRCxxREFBcUQ7SUFDckQsOERBQThEO0lBQzlELDZEQUE2RDtJQUNyRCxpQkFBaUIsQ0FBQyxRQUFjLEVBQUUsTUFBWTtRQUNwRCxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pELENBQUM7OztZQXpIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0Isc0xBQXNDO2dCQUV0QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7OztzQkFPRSxLQUFLO2dDQWlCTCxLQUFLO2tDQWVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGF0ZUJhZGdlQ29sb3VyLCBTRUNPTkRTX0lOX0FfREFZIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R1ZS1kYXRlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLWR1ZS1kYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICdkdWUtZGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydkdWUtZGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIER1ZURhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIC8qKlxuICAgKiBUaGUgZHVlIGRhdGUgdG8gdXNlIGFzIHRoZSBiYXNpcyBmb3IgcmVuZGVyaW5nIHRoaXMgY29tcG9uZW50LiBJdCBpc1xuICAgKiBjb21wYXJlZCB0byB0aGUgY3VycmVudCBkYXRlIGFuZCBkaXNwbGF5ZWQgYWNjb3JkaW5nbHkuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgZHVlRGF0ZTogRGF0ZTtcblxuICAvKipcbiAgICogVGhpcyBzaG91bGQgYmUgY29uc2lkZXJlZCBISUdIIHVyZ2VuY3kgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gdGhpc1xuICAgKiBtYW55IGRheXMgdW50aWwgdGhlIGR1ZSBkYXRlLlxuICAgKiAgICAqIFNldCB0byAwIGlmIHlvdSB3YW50IGl0IHRvIHNob3cgSElHSCBpZiBpdCB3YXMgZHVlIHllc3RlcmRheS5cbiAgICogICAgKiBTZXQgdG8gMSBpZiB5b3Ugd2FudCBpdCB0byBzaG93IEhJR0ggaWYgaXQncyBkdWUgdG9kYXkuXG4gICAqICAgICogU2V0IHRvIDIgaWYgeW91IHdhbnQgaXQgdG8gc2hvdyBISUdIIGlmIGl0J3MgZHVlIHRvbW9ycm93LlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byAwIChaRVJPKSwgd2hpY2ggbWVhbnMgaXQgd29uJ3Qgc2hvdyBhcyBISUdIIHVyZ2VuY3kgdW50aWwgdGhlXG4gICAqIGR1ZSBkYXRlIGlzIGluIHRoZSBwYXN0LlxuICAgKlxuICAgKiBOT1RFOiBJZiB0aGlzIGlzIGhpZ2hlciB0aGFuIHRoZSBtZWRpdW1VcmdlbmN5Q3V0b2ZmIHZhbHVlLCBNRURJVU0gdXJnZW5jeVxuICAgKiB3aWxsIG5ldmVyIGJlIHNob3duLlxuICAgKlxuICAgKiBBTFNPIE5PVEU6IEFueXRoaW5nIG92ZXJkdWUgaXMgYXV0b21hdGljYWxseSBjb25zaWRlcmVkIEhJR0ggdXJnZW5jeS5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWdoVXJnZW5jeUN1dG9mZjogbnVtYmVyID0gMDsgLy8gRGVmYXVsdFxuXG4gIC8qKlxuICAgKiBUaGlzIHNob3VsZCBiZSBjb25zaWRlcmVkIE1FRElVTSB1cmdlbmN5IGlmIHRoZXJlIGFyZSBmZXdlciB0aGFuIHRoaXNcbiAgICogbWFueSBkYXlzIHVudGlsIHRoZSBkdWUgZGF0ZS5cbiAgICogICAgKiBTZXQgdG8gMSBpZiB5b3Ugd2FudCBpdCB0byBzaG93IE1FRElVTSBpZiBpdCdzIGR1ZSB0b2RheS5cbiAgICogICAgKiBTZXQgdG8gMiBpZiB5b3Ugd2FudCBpdCB0byBzaG93IE1FRElVTSBpZiBpdCdzIGR1ZSB0b21vcnJvdy5cbiAgICogICAgKiBTZXQgdG8gMyBpZiB5b3Ugd2FudCBpdCB0byBzaG93IE1FRElVTSBpZiBpdCdzIGR1ZSB0aGUgZGF5IGFmdGVyIHRvbW9ycm93LlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byAyLCB3aGljaCBtZWFucyBpdCB3b24ndCBzaG93IGFzIE1FRElVTSB1cmdlbmN5IHVubGVzcyB0aGVcbiAgICogZHVlIGRhdGUgaXMgdG9kYXkgb3IgdG9tb3Jyb3cuXG4gICAqXG4gICAqIE5PVEU6IElmIHRoaXMgaXMgbG93ZXIgdGhhbiB0aGUgaGlnaFVyZ2VuY3lDdXRvZmYgdmFsdWUsIE1FRElVTSB1cmdlbmN5XG4gICAqIHdpbGwgbmV2ZXIgYmUgc2hvd24uXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbWVkaXVtVXJnZW5jeUN1dG9mZjogbnVtYmVyID0gMjtcblxuICAvLyBUaGUgSE1DVFMgYmFkZ2UgY2xhc3MsIHVzZWQgZm9yIGNvbG91cmF0aW9uLlxuICBwcml2YXRlIHBCYWRnZTogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGJhZGdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucEJhZGdlO1xuICB9XG5cbiAgLy8gVGhlIHRleHR1YWwgbGFiZWwgdG8gZGlzcGxheSBpbiB0aGUgY29tcG9uZW50LlxuICBwcml2YXRlIHBMYWJlbDogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucExhYmVsO1xuICB9XG5cbiAgLy8gVGhlIGFjY2Vzc2libGUgbGFiZWwsIHdoaWNoIGlzIGFsc28gdXNlZCBmb3IgdGhlIHRvb2x0aXAuXG4gIHByaXZhdGUgcEFjY2Vzc2libGVMYWJlbDogc3RyaW5nO1xuICBwdWJsaWMgZ2V0IGFjY2Vzc2libGVMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBBY2Nlc3NpYmxlTGFiZWw7XG4gIH1cblxuICAvLyBIb3cgbWFueSBkYXlzIHRoZSBkdWVEYXRlIHZhcmllcyBmcm9tIHRvZGF5LlxuICBwcml2YXRlIHBEYXlzRGlmZjogbnVtYmVyO1xuICBwdWJsaWMgZ2V0IGRheXNEaWZmKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucERheXNEaWZmO1xuICB9XG5cbiAgLy8gQ2F0Y2ggYW55IGNoYW5nZXMgdG8gYW55IG9mIHRoZSBJbnB1dCgpIHByb3BlcnRpZXMuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gU2V0IHVwIHRoZSBsYWJlbCwgdXJnZW5jeSBjbGFzcywgYW5kIGFjY2Vzc2liaWxpdHkgZmllbGRzLlxuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlcygpIHtcbiAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgZHVlRGF0ZSwgc2tpcCBvdXQgb2YgaGVyZS5cbiAgICBpZiAoIXRoaXMuZHVlRGF0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEhvdyBtYW55IGRheXMgZnJvbSB0b2RheSBpcyB0aGUgZHVlIGRhdGU/XG4gICAgLy8gQWxyZWFkeSBoYXBwZW5lZCBtZWFucyBkYXlzRGlmZiA+IDA7XG4gICAgLy8gVG9kYXkgbWVhbnMgZGF5c0RpZmYgPSAwO1xuICAgIC8vIFlldCB0byBjb21lIG1lYW5zIGRheXNEaWZmIDwgMDtcbiAgICB0aGlzLnBEYXlzRGlmZiA9IHRoaXMuZ2V0RGF5c0RpZmZlcmVuY2UodGhpcy5kdWVEYXRlLCBuZXcgRGF0ZSgpKTtcblxuICAgIC8vIElzIGl0IG92ZXJkdWU/XG4gICAgaWYgKHRoaXMuZGF5c0RpZmYgPiAwKSB7XG4gICAgICB0aGlzLnBCYWRnZSA9IERhdGVCYWRnZUNvbG91ci5SRUQ7XG4gICAgICBjb25zdCBkYXlzTGFiZWwgPSB0aGlzLmRheXNEaWZmID09PSAxID8gJ2RheScgOiAnZGF5cyc7XG4gICAgICB0aGlzLnBMYWJlbCA9IGArJHt0aGlzLmRheXNEaWZmfSAke2RheXNMYWJlbH1gO1xuICAgICAgdGhpcy5wQWNjZXNzaWJsZUxhYmVsID0gYFRoaXMgdGFzayBpcyAke3RoaXMuZGF5c0RpZmZ9ICR7ZGF5c0xhYmVsfSBwYXN0IGl0cyBkdWUgZGF0ZWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNwZWNpYWwgbGFiZWwgZm9yIFwiVG9kYXlcIi5cbiAgICAgIGlmICh0aGlzLmRheXNEaWZmID09PSAwKSB7XG4gICAgICAgIHRoaXMucExhYmVsID0gJ1RPREFZJztcbiAgICAgICAgdGhpcy5wQWNjZXNzaWJsZUxhYmVsID0gJ1RoaXMgdGFzayBpcyBkdWUgdG8gYmUgY29tcGxldGVkIHRvZGF5JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucExhYmVsID0gYCR7Zm9ybWF0RGF0ZSh0aGlzLmR1ZURhdGUsICdkIE1NTScsICdlbi1HQicpfWA7XG4gICAgICAgIHRoaXMucEFjY2Vzc2libGVMYWJlbCA9IGBUaGlzIHRhc2sgaXMgZHVlIHRvIGJlIGNvbXBsZXRlZCBieSAke2Zvcm1hdERhdGUodGhpcy5kdWVEYXRlLCAnZCBNTU1NIHknLCAnZW4tR0InKX1gO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZGF5c0RpZmYgKyB0aGlzLmhpZ2hVcmdlbmN5Q3V0b2ZmID4gMCkge1xuICAgICAgICB0aGlzLnBCYWRnZSA9IERhdGVCYWRnZUNvbG91ci5SRUQ7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGF5c0RpZmYgKyB0aGlzLm1lZGl1bVVyZ2VuY3lDdXRvZmYgPiAwKSB7XG4gICAgICAgIHRoaXMucEJhZGdlID0gRGF0ZUJhZGdlQ29sb3VyLk9SQU5HRTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucEJhZGdlID0gRGF0ZUJhZGdlQ29sb3VyLkdSRUVOO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFRoaXMgd2lsbCByZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gZGF0ZXMuXG4gIC8vIElmIGZyb21EYXRlIGlzIEJFRk9SRSB0b0RhdGUsIGl0IHdpbGwgYmUgYSBwb3NpdGl2ZSBudW1iZXIuXG4gIC8vIElmIGZyb21EYXRlIGlzIEFGVEVSIHRvRGF0ZSwgaXQgd2lsbCBiZSBhIG5lZ2F0aXZlIG51bWJlci5cbiAgcHJpdmF0ZSBnZXREYXlzRGlmZmVyZW5jZShmcm9tRGF0ZTogRGF0ZSwgdG9EYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICBjb25zdCBmcm9tRXBvY2ggPSBmcm9tRGF0ZS5nZXRUaW1lKCk7XG4gICAgY29uc3QgdG9FcG9jaCA9IHRvRGF0ZS5nZXRUaW1lKCk7XG4gICAgY29uc3QgZGlmZlNlY3MgPSBNYXRoLmZsb29yKCh0b0Vwb2NoIC0gZnJvbUVwb2NoKSAvIDEwMDApO1xuICAgIHJldHVybiBNYXRoLmZsb29yKGRpZmZTZWNzIC8gU0VDT05EU19JTl9BX0RBWSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,18 +1,13 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/exui-main-wrapper/exui-page-wrapper.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  import { Component, Input } from '@angular/core';
7
2
  /**
8
3
  * Main Page Wrapper
9
4
  * Responsible for:
10
5
  * Wrapping content within the gov-uk html elements bellow
11
- * \@prop showBackLink - switch for back link
12
- * \@prop appHeaderTitle = appHeaderTitle
13
- * \@prop appFunctionalTitle = appFunctionalTitle
14
- * \@prop summaryErrors list of errors
15
- * \@prop back link, appHeaderTitle (appHeaderTitle), summaryErrors (array of errors)
6
+ * @prop showBackLink - switch for back link
7
+ * @prop appHeaderTitle = appHeaderTitle
8
+ * @prop appFunctionalTitle = appFunctionalTitle
9
+ * @prop summaryErrors list of errors
10
+ * @prop back link, appHeaderTitle (appHeaderTitle), summaryErrors (array of errors)
16
11
  */
17
12
  export class ExuiPageWrapperComponent {
18
13
  constructor() { }
@@ -22,21 +17,12 @@ ExuiPageWrapperComponent.decorators = [
22
17
  selector: 'exui-page-wrapper',
23
18
  template: "<div class=\"page\">\n <a *ngIf=\"backLink\" [routerLink]=\"backLink\" class=\"govuk-back-link\">Back</a>\n <div class=\"govuk-width-container\">\n <main id=\"content\" role=\"main\" class=\"govuk-main-wrapper\">\n <div class=\"govuk-grid-row\">\n <h1 *ngIf=\"title\" class=\"govuk-heading-xl\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle}}</span>\n {{title}}\n </h1>\n <ng-content>\n\n </ng-content>\n </div>\n </main>\n </div>\n</div>\n",
24
19
  styles: [".page{width:100%}"]
25
- }] }
20
+ },] }
26
21
  ];
27
- /** @nocollapse */
28
22
  ExuiPageWrapperComponent.ctorParameters = () => [];
29
23
  ExuiPageWrapperComponent.propDecorators = {
30
24
  backLink: [{ type: Input }],
31
25
  title: [{ type: Input }],
32
26
  fnTitle: [{ type: Input }]
33
27
  };
34
- if (false) {
35
- /** @type {?} */
36
- ExuiPageWrapperComponent.prototype.backLink;
37
- /** @type {?} */
38
- ExuiPageWrapperComponent.prototype.title;
39
- /** @type {?} */
40
- ExuiPageWrapperComponent.prototype.fnTitle;
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh1aS1wYWdlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2V4dWktbWFpbi13cmFwcGVyL2V4dWktcGFnZS13cmFwcGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQWdCL0MsTUFBTSxPQUFPLHdCQUF3QjtJQU1uQyxnQkFBZ0IsQ0FBQzs7O1lBWGxCLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3Qix1aEJBQStDOzthQUVoRDs7Ozs7dUJBR0UsS0FBSztvQkFDTCxLQUFLO3NCQUNMLEtBQUs7Ozs7SUFGTiw0Q0FBaUM7O0lBQ2pDLHlDQUE4Qjs7SUFDOUIsMkNBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8qKlxuICogTWFpbiBQYWdlIFdyYXBwZXJcbiAqIFJlc3BvbnNpYmxlIGZvcjpcbiAqIFdyYXBwaW5nIGNvbnRlbnQgd2l0aGluIHRoZSBnb3YtdWsgaHRtbCBlbGVtZW50cyBiZWxsb3dcbiAqIEBwcm9wIHNob3dCYWNrTGluayAtIHN3aXRjaCBmb3IgYmFjayBsaW5rXG4gKiBAcHJvcCBhcHBIZWFkZXJUaXRsZSA9IGFwcEhlYWRlclRpdGxlXG4gKiBAcHJvcCBhcHBGdW5jdGlvbmFsVGl0bGUgPSBhcHBGdW5jdGlvbmFsVGl0bGVcbiAqIEBwcm9wIHN1bW1hcnlFcnJvcnMgbGlzdCBvZiBlcnJvcnNcbiAqIEBwcm9wIGJhY2sgbGluaywgYXBwSGVhZGVyVGl0bGUgKGFwcEhlYWRlclRpdGxlKSwgc3VtbWFyeUVycm9ycyAoYXJyYXkgb2YgZXJyb3JzKVxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdleHVpLXBhZ2Utd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnZXh1aS1wYWdlLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZXh1aS1wYWdlLXdyYXBwZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFeHVpUGFnZVdyYXBwZXJDb21wb25lbnQgIHtcblxuICBASW5wdXQoKSBwdWJsaWMgYmFja0xpbms6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBmblRpdGxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh1aS1wYWdlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9leHVpLW1haW4td3JhcHBlci9leHVpLXBhZ2Utd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0M7Ozs7Ozs7OztHQVNHO0FBTUgsTUFBTSxPQUFPLHdCQUF3QjtJQU1uQyxnQkFBZ0IsQ0FBQzs7O1lBWGxCLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3Qix1aEJBQStDOzthQUVoRDs7Ozt1QkFHRSxLQUFLO29CQUNMLEtBQUs7c0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vKipcbiAqIE1haW4gUGFnZSBXcmFwcGVyXG4gKiBSZXNwb25zaWJsZSBmb3I6XG4gKiBXcmFwcGluZyBjb250ZW50IHdpdGhpbiB0aGUgZ292LXVrIGh0bWwgZWxlbWVudHMgYmVsbG93XG4gKiBAcHJvcCBzaG93QmFja0xpbmsgLSBzd2l0Y2ggZm9yIGJhY2sgbGlua1xuICogQHByb3AgYXBwSGVhZGVyVGl0bGUgPSBhcHBIZWFkZXJUaXRsZVxuICogQHByb3AgYXBwRnVuY3Rpb25hbFRpdGxlID0gYXBwRnVuY3Rpb25hbFRpdGxlXG4gKiBAcHJvcCBzdW1tYXJ5RXJyb3JzIGxpc3Qgb2YgZXJyb3JzXG4gKiBAcHJvcCBiYWNrIGxpbmssIGFwcEhlYWRlclRpdGxlIChhcHBIZWFkZXJUaXRsZSksIHN1bW1hcnlFcnJvcnMgKGFycmF5IG9mIGVycm9ycylcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXh1aS1wYWdlLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJ2V4dWktcGFnZS13cmFwcGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2V4dWktcGFnZS13cmFwcGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRXh1aVBhZ2VXcmFwcGVyQ29tcG9uZW50ICB7XG5cbiAgQElucHV0KCkgcHVibGljIGJhY2tMaW5rOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZm5UaXRsZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbn1cbiJdfQ==
@@ -1,8 +1,3 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/components/find-location/find-location.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
7
2
  import { FormControl, FormGroup } from '@angular/forms';
8
3
  import { getValues } from '../generic-filter/generic-filter-utils';
@@ -21,16 +16,9 @@ export class FindLocationComponent {
21
16
  this.pServices = [];
22
17
  this.pDisabled = false;
23
18
  }
24
- /**
25
- * @return {?}
26
- */
27
19
  get disabled() {
28
20
  return this.pDisabled;
29
21
  }
30
- /**
31
- * @param {?} value
32
- * @return {?}
33
- */
34
22
  set disabled(value) {
35
23
  if (value) {
36
24
  this.searchLocationComponent.resetSearchTerm();
@@ -38,55 +26,29 @@ export class FindLocationComponent {
38
26
  }
39
27
  this.pDisabled = this.disableInputField === true ? true : null;
40
28
  }
41
- /**
42
- * @return {?}
43
- */
44
29
  get services() {
45
30
  return this.pServices;
46
31
  }
47
- /**
48
- * @param {?} value
49
- * @return {?}
50
- */
51
32
  set services(value) {
52
33
  this.pServices = value;
53
- /** @type {?} */
54
- const field = this.fields.find((/**
55
- * @param {?} f
56
- * @return {?}
57
- */
58
- f => {
34
+ const field = this.fields.find(f => {
59
35
  if (this.field) {
60
36
  return f.name === this.field.findLocationField;
61
37
  }
62
- }));
38
+ });
63
39
  if (field) {
64
40
  if (typeof value === 'string') {
65
41
  this.serviceIds = value;
66
42
  }
67
43
  else {
68
- this.serviceIds = getValues(field.options, value).filter((/**
69
- * @param {?} x
70
- * @return {?}
71
- */
72
- x => x !== 'services_all')).join(',');
44
+ this.serviceIds = getValues(field.options, value).filter(x => x !== 'services_all').join(',');
73
45
  }
74
46
  }
75
47
  }
76
- /**
77
- * @return {?}
78
- */
79
48
  ngOnInit() {
80
49
  // implemented to get rid of undefined values
81
- this.selectedLocations = this.selectedLocations.filter((/**
82
- * @param {?} location
83
- * @return {?}
84
- */
85
- location => location.epimms_id));
50
+ this.selectedLocations = this.selectedLocations.filter(location => location.epimms_id);
86
51
  }
87
- /**
88
- * @return {?}
89
- */
90
52
  addLocation() {
91
53
  if (this.tempSelectedLocation) {
92
54
  this.selectedLocations = [...this.selectedLocations, this.tempSelectedLocation];
@@ -96,87 +58,47 @@ export class FindLocationComponent {
96
58
  this.searchLocationComponent.resetSearchTerm();
97
59
  }
98
60
  }
99
- /**
100
- * @param {?} location
101
- * @return {?}
102
- */
103
61
  removeLocation(location) {
104
62
  if (location.epimms_id) {
105
- this.selectedLocations = this.selectedLocations.filter((/**
106
- * @param {?} selectedLocation
107
- * @return {?}
108
- */
109
- selectedLocation => selectedLocation.epimms_id !== location.epimms_id));
110
- /** @type {?} */
111
- const formArray = (/** @type {?} */ (this.form.get(this.field.name)));
112
- /** @type {?} */
113
- const index = ((/** @type {?} */ (formArray.value))).findIndex((/**
114
- * @param {?} selectedLocation
115
- * @return {?}
116
- */
117
- selectedLocation => selectedLocation.epimms_id === location.epimms_id));
63
+ this.selectedLocations = this.selectedLocations.filter(selectedLocation => selectedLocation.epimms_id !== location.epimms_id);
64
+ const formArray = this.form.get(this.field.name);
65
+ const index = formArray.value.findIndex(selectedLocation => selectedLocation.epimms_id === location.epimms_id);
118
66
  if (index > -1) {
119
67
  formArray.removeAt(index);
120
68
  }
121
69
  }
122
70
  }
123
- /**
124
- * @param {?} term
125
- * @return {?}
126
- */
127
71
  onInputChanged(term) {
128
72
  // if the filter is in single mode clear the selected locations
129
73
  if (typeof term === 'string' && this.field.maxSelected === 1) {
130
74
  this.removeSelectedValues();
131
75
  }
132
76
  }
133
- /**
134
- * @return {?}
135
- */
136
77
  onSearchInputChanged() {
137
78
  this.locationFieldChanged.emit();
138
79
  }
139
- /**
140
- * @param {?} location
141
- * @return {?}
142
- */
143
80
  onLocationSelected(location) {
144
81
  if (this.field.maxSelected === 1) {
145
82
  this.removeSelectedValues();
146
83
  this.addSelectedLocationsToForm([location]);
147
84
  }
148
85
  else {
149
- if (!this.selectedLocations.find((/**
150
- * @param {?} x
151
- * @return {?}
152
- */
153
- x => x.epimms_id === location.epimms_id))) {
86
+ if (!this.selectedLocations.find(x => x.epimms_id === location.epimms_id)) {
154
87
  if (location.epimms_id) {
155
88
  this.tempSelectedLocation = location;
156
89
  }
157
90
  }
158
91
  }
159
92
  }
160
- /**
161
- * @private
162
- * @return {?}
163
- */
164
93
  removeSelectedValues() {
165
- /** @type {?} */
166
- const formArray = (/** @type {?} */ (this.form.get(this.field.name)));
94
+ const formArray = this.form.get(this.field.name);
167
95
  for (let i = 0; i < formArray.length; i++) {
168
96
  formArray.removeAt(i);
169
97
  }
170
98
  this.selectedLocations = [];
171
99
  }
172
- /**
173
- * @private
174
- * @param {?} locations
175
- * @return {?}
176
- */
177
100
  addSelectedLocationsToForm(locations) {
178
- /** @type {?} */
179
- const formArray = (/** @type {?} */ (this.form.get(this.field.name)));
101
+ const formArray = this.form.get(this.field.name);
180
102
  for (const location of locations) {
181
103
  formArray.push(new FormControl(location));
182
104
  }
@@ -185,9 +107,9 @@ export class FindLocationComponent {
185
107
  FindLocationComponent.decorators = [
186
108
  { type: Component, args: [{
187
109
  selector: 'xuilib-find-location',
188
- template: "<div class=\"location-picker-custom\">\n <div class=\"search-location\">\n <div>\n <label id=\"input-selected-location-label\" *ngIf=\"locationTitle\">{{locationTitle}}</label>\n </div>\n\n <div class=\"search-location__input-container\">\n <exui-search-location class=\"search-location__input\"\n [locations]=\"locations\"\n [selectedLocations]=\"selectedLocations\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [serviceIds]=\"serviceIds\"\n (locationInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\"></exui-search-location>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\" data-module=\"govuk-button\"\n *ngIf=\"enableAddLocationButton\">\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 selectedLocations\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection)\" href=\"javascript:void(0)\">\n {{ selection.site_name }}\n </a>\n </li>\n </ul>\n</div>\n",
110
+ template: "<div class=\"location-picker-custom\">\n <div class=\"search-location\">\n <div>\n <label id=\"input-selected-location-label\" *ngIf=\"locationTitle\">{{locationTitle}}</label>\n </div>\n <exui-search-location class=\"search-location\"\n [locations]=\"locations\"\n [selectedLocations]=\"selectedLocations\"\n [singleMode]=\"field.maxSelected === 1\"\n [bookingCheck]=\"field.bookingCheckType\"\n [delay]=\"300\"\n [disabled]=\"disabled\"\n [serviceIds]=\"serviceIds\"\n (locationInputChanged)=\"onInputChanged($event)\"\n (locationSelected)=\"onLocationSelected($event)\"\n (searchLocationChanged)=\"onSearchInputChanged()\"\n [locationType]=\"'case-management'\"></exui-search-location>\n <a href=\"javascript:void(0)\" (click)=\"addLocation()\" class=\"govuk-button\" data-module=\"govuk-button\" *ngIf=\"enableAddLocationButton\">\n Add location\n </a>\n </div>\n <ul class=\"hmcts-filter-tags selection-container\" *ngIf=\"field.maxSelected != 1\">\n <li class=\"location-selection\" *ngFor=\"let selection of selectedLocations\">\n <a class=\"hmcts-filter__tag\" (click)=\"removeLocation(selection)\" href=\"javascript:void(0)\">\n {{ selection.site_name }}\n </a>\n </li>\n </ul>\n</div>\n",
189
111
  styles: [".search-location__input-container{display:flex}.search-location .auto-complete-container{min-width:unset;width:calc(100% - 4px)}.search-location__input{flex:1 0 auto}.search-location .govuk-button--secondary{background-color:#ddd}"]
190
- }] }
112
+ },] }
191
113
  ];
192
114
  FindLocationComponent.propDecorators = {
193
115
  locationFieldChanged: [{ type: Output }],
@@ -199,46 +121,8 @@ FindLocationComponent.propDecorators = {
199
121
  fields: [{ type: Input }],
200
122
  locationTitle: [{ type: Input }],
201
123
  disableInputField: [{ type: Input }],
202
- searchLocationComponent: [{ type: ViewChild, args: [SearchLocationComponent,] }],
124
+ searchLocationComponent: [{ type: ViewChild, args: [SearchLocationComponent, { static: true },] }],
203
125
  disabled: [{ type: Input }],
204
126
  services: [{ type: Input }]
205
127
  };
206
- if (false) {
207
- /** @type {?} */
208
- FindLocationComponent.prototype.locationFieldChanged;
209
- /** @type {?} */
210
- FindLocationComponent.prototype.selectedLocations;
211
- /** @type {?} */
212
- FindLocationComponent.prototype.submitted;
213
- /** @type {?} */
214
- FindLocationComponent.prototype.enableAddLocationButton;
215
- /** @type {?} */
216
- FindLocationComponent.prototype.form;
217
- /** @type {?} */
218
- FindLocationComponent.prototype.field;
219
- /** @type {?} */
220
- FindLocationComponent.prototype.fields;
221
- /** @type {?} */
222
- FindLocationComponent.prototype.locationTitle;
223
- /** @type {?} */
224
- FindLocationComponent.prototype.disableInputField;
225
- /** @type {?} */
226
- FindLocationComponent.prototype.locations;
227
- /** @type {?} */
228
- FindLocationComponent.prototype.tempSelectedLocation;
229
- /** @type {?} */
230
- FindLocationComponent.prototype.serviceIds;
231
- /** @type {?} */
232
- FindLocationComponent.prototype.searchLocationComponent;
233
- /**
234
- * @type {?}
235
- * @private
236
- */
237
- FindLocationComponent.prototype.pServices;
238
- /**
239
- * @type {?}
240
- * @private
241
- */
242
- FindLocationComponent.prototype.pDisabled;
243
- }
244
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1sb2NhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvcnB4LXh1aS1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZmluZC1sb2NhdGlvbi9maW5kLWxvY2F0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBWSxXQUFXLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBT3JGLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFNbUIseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNqRCxzQkFBaUIsR0FBNEIsRUFBRSxDQUFDO1FBQ2hELGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsNEJBQXVCLEdBQVksSUFBSSxDQUFDO1FBSXhDLGtCQUFhLEdBQUcsK0JBQStCLENBQUM7UUFDaEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLGNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBQ3hDLHlCQUFvQixHQUEwQixJQUFJLENBQUM7UUFDbkQsZUFBVSxHQUFXLFNBQVMsQ0FBQztRQUU5QixjQUFTLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFvR3JDLENBQUM7Ozs7SUFsR0MsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOzs7OztJQUVELElBQ1csUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsdUJBQXVC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SUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFhO1FBQzdELEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1lBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7OztZQXZIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsb3FEQUE2Qzs7YUFFOUM7OzttQ0FFRSxNQUFNO2dDQUNOLEtBQUs7d0JBQ0wsS0FBSztzQ0FDTCxLQUFLO21CQUNMLEtBQUs7b0JBQ0wsS0FBSztxQkFDTCxLQUFLOzRCQUNMLEtBQUs7Z0NBQ0wsS0FBSztzQ0FJTCxTQUFTLFNBQUMsdUJBQXVCO3VCQVFqQyxLQUFLO3VCQWFMLEtBQUs7Ozs7SUFqQ04scURBQWlFOztJQUNqRSxrREFBZ0U7O0lBQ2hFLDBDQUEwQzs7SUFDMUMsd0RBQXdEOztJQUN4RCxxQ0FBZ0M7O0lBQ2hDLHNDQUF5Qzs7SUFDekMsdUNBQTRDOztJQUM1Qyw4Q0FBZ0U7O0lBQ2hFLGtEQUEwQzs7SUFDMUMsMENBQStDOztJQUMvQyxxREFBMEQ7O0lBQzFELDJDQUFzQzs7SUFDdEMsd0RBQTRGOzs7OztJQUM1RiwwQ0FBaUM7Ozs7O0lBQ2pDLDBDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0ZpbHRlckZpZWxkQ29uZmlnfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtMb2NhdGlvbkJ5RVBJTU1TTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy9sb2NhdGlvbi5tb2RlbCc7XG5pbXBvcnQge2dldFZhbHVlc30gZnJvbSAnLi4vZ2VuZXJpYy1maWx0ZXIvZ2VuZXJpYy1maWx0ZXItdXRpbHMnO1xuaW1wb3J0IHtTZWFyY2hMb2NhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vc2VhcmNoLWxvY2F0aW9uL3NlYXJjaC1sb2NhdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItZmluZC1sb2NhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maW5kLWxvY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmluZC1sb2NhdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbmRMb2NhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25GaWVsZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIHN1Ym1pdHRlZDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVBZGRMb2NhdGlvbkJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZDogRmlsdGVyRmllbGRDb25maWc7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZHM6IEZpbHRlckZpZWxkQ29uZmlnW107XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhdGlvblRpdGxlID0gJ1NlYXJjaCBmb3IgYSBsb2NhdGlvbiBieSBuYW1lJztcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVJbnB1dEZpZWxkID0gZmFsc2U7XG4gIHB1YmxpYyBsb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdID0gW107XG4gIHB1YmxpYyB0ZW1wU2VsZWN0ZWRMb2NhdGlvbjogTG9jYXRpb25CeUVQSU1NU01vZGVsID0gbnVsbDtcbiAgcHVibGljIHNlcnZpY2VJZHM6IHN0cmluZyA9ICdTU0NTLElBJztcbiAgQFZpZXdDaGlsZChTZWFyY2hMb2NhdGlvbkNvbXBvbmVudCkgcHVibGljIHNlYXJjaExvY2F0aW9uQ29tcG9uZW50OiBTZWFyY2hMb2NhdGlvbkNvbXBvbmVudDtcbiAgcHJpdmF0ZSBwU2VydmljZXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcERpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wRGlzYWJsZWQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaExvY2F0aW9uQ29tcG9uZW50LnJlc2V0U2VhcmNoVGVybSgpO1xuICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFZhbHVlcygpO1xuICAgIH1cbiAgICB0aGlzLnBEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZUlucHV0RmllbGQgPT09IHRydWUgPyB0cnVlIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VydmljZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnBTZXJ2aWNlcztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VydmljZXModmFsdWU6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5wU2VydmljZXMgPSB2YWx1ZTtcbiAgICBjb25zdCBmaWVsZCA9IHRoaXMuZmllbGRzLmZpbmQoZiA9PiB7XG4gICAgICBpZiAodGhpcy5maWVsZCkge1xuICAgICAgICByZXR1cm4gZi5uYW1lID09PSB0aGlzLmZpZWxkLmZpbmRMb2NhdGlvbkZpZWxkO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChmaWVsZCkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlSWRzID0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlcnZpY2VJZHMgPSBnZXRWYWx1ZXMoZmllbGQub3B0aW9ucywgdmFsdWUpLmZpbHRlcih4ID0+IHggIT09ICdzZXJ2aWNlc19hbGwnKS5qb2luKCcsJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIGltcGxlbWVudGVkIHRvIGdldCByaWQgb2YgdW5kZWZpbmVkIHZhbHVlc1xuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMgPSB0aGlzLnNlbGVjdGVkTG9jYXRpb25zLmZpbHRlcihsb2NhdGlvbiA9PiBsb2NhdGlvbi5lcGltbXNfaWQpO1xuICB9XG5cbiAgcHVibGljIGFkZExvY2F0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25zID0gWy4uLnRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMsIHRoaXMudGVtcFNlbGVjdGVkTG9jYXRpb25dO1xuICAgICAgdGhpcy5hZGRTZWxlY3RlZExvY2F0aW9uc1RvRm9ybShbdGhpcy50ZW1wU2VsZWN0ZWRMb2NhdGlvbl0pO1xuICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRMb2NhdGlvbiA9IG51bGw7XG4gICAgICB0aGlzLmxvY2F0aW9ucyA9IFtdO1xuICAgICAgdGhpcy5zZWFyY2hMb2NhdGlvbkNvbXBvbmVudC5yZXNldFNlYXJjaFRlcm0oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlTG9jYXRpb24obG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCk6IHZvaWQge1xuICAgIGlmIChsb2NhdGlvbi5lcGltbXNfaWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMgPSB0aGlzLnNlbGVjdGVkTG9jYXRpb25zLmZpbHRlcihzZWxlY3RlZExvY2F0aW9uID0+IHNlbGVjdGVkTG9jYXRpb24uZXBpbW1zX2lkICE9PSBsb2NhdGlvbi5lcGltbXNfaWQpO1xuICAgICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLm5hbWUpIGFzIEZvcm1BcnJheTtcbiAgICAgIGNvbnN0IGluZGV4ID0gKGZvcm1BcnJheS52YWx1ZSBhcyBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSkuZmluZEluZGV4KHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQgPT09IGxvY2F0aW9uLmVwaW1tc19pZCk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0Q2hhbmdlZCh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBpZiB0aGUgZmlsdGVyIGlzIGluIHNpbmdsZSBtb2RlIGNsZWFyIHRoZSBzZWxlY3RlZCBsb2NhdGlvbnNcbiAgICBpZiAodHlwZW9mIHRlcm0gPT09ICdzdHJpbmcnICYmIHRoaXMuZmllbGQubWF4U2VsZWN0ZWQgPT09IDEpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFZhbHVlcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlYXJjaElucHV0Q2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2F0aW9uRmllbGRDaGFuZ2VkLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkxvY2F0aW9uU2VsZWN0ZWQobG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxKSB7XG4gICAgICB0aGlzLnJlbW92ZVNlbGVjdGVkVmFsdWVzKCk7XG4gICAgICB0aGlzLmFkZFNlbGVjdGVkTG9jYXRpb25zVG9Gb3JtKFtsb2NhdGlvbl0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMuZmluZCh4ID0+IHguZXBpbW1zX2lkID09PSBsb2NhdGlvbi5lcGltbXNfaWQpKSB7XG4gICAgICAgIGlmIChsb2NhdGlvbi5lcGltbXNfaWQpIHtcbiAgICAgICAgICB0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uID0gbG9jYXRpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVNlbGVjdGVkVmFsdWVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5uYW1lKSBhcyBGb3JtQXJyYXk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZvcm1BcnJheS5yZW1vdmVBdChpKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZExvY2F0aW9ucyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRTZWxlY3RlZExvY2F0aW9uc1RvRm9ybShsb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLm5hbWUpIGFzIEZvcm1BcnJheTtcbiAgICBmb3IgKGNvbnN0IGxvY2F0aW9uIG9mIGxvY2F0aW9ucykge1xuICAgICAgZm9ybUFycmF5LnB1c2gobmV3IEZvcm1Db250cm9sKGxvY2F0aW9uKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1sb2NhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbmQtbG9jYXRpb24vZmluZC1sb2NhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFZLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdqRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDakUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFPckYsTUFBTSxPQUFPLHFCQUFxQjtJQUxsQztRQU1tQix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pELHNCQUFpQixHQUE0QixFQUFFLENBQUM7UUFDaEQsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQiw0QkFBdUIsR0FBWSxJQUFJLENBQUM7UUFJeEMsa0JBQWEsR0FBRywrQkFBK0IsQ0FBQztRQUNoRCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsY0FBUyxHQUE0QixFQUFFLENBQUM7UUFDeEMseUJBQW9CLEdBQTBCLElBQUksQ0FBQztRQUNuRCxlQUFVLEdBQVcsU0FBUyxDQUFDO1FBRTlCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIsY0FBUyxHQUFZLEtBQUssQ0FBQztJQW9HckMsQ0FBQztJQWxHQyxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUNXLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLHVC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QUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFO1lBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7OztZQXZIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsZ2dEQUE2Qzs7YUFFOUM7OzttQ0FFRSxNQUFNO2dDQUNOLEtBQUs7d0JBQ0wsS0FBSztzQ0FDTCxLQUFLO21CQUNMLEtBQUs7b0JBQ0wsS0FBSztxQkFDTCxLQUFLOzRCQUNMLEtBQUs7Z0NBQ0wsS0FBSztzQ0FJTCxTQUFTLFNBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO3VCQVFuRCxLQUFLO3VCQWFMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtGaWx0ZXJGaWVsZENvbmZpZ30gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TG9jYXRpb25CeUVQSU1NU01vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMvbG9jYXRpb24ubW9kZWwnO1xuaW1wb3J0IHtnZXRWYWx1ZXN9IGZyb20gJy4uL2dlbmVyaWMtZmlsdGVyL2dlbmVyaWMtZmlsdGVyLXV0aWxzJztcbmltcG9ydCB7U2VhcmNoTG9jYXRpb25Db21wb25lbnR9IGZyb20gJy4uL3NlYXJjaC1sb2NhdGlvbi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneHVpbGliLWZpbmQtbG9jYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZmluZC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbmQtbG9jYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaW5kTG9jYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAT3V0cHV0KCkgcHVibGljIGxvY2F0aW9uRmllbGRDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlQWRkTG9jYXRpb25CdXR0b246IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgZmllbGQ6IEZpbHRlckZpZWxkQ29uZmlnO1xuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWx0ZXJGaWVsZENvbmZpZ1tdO1xuICBASW5wdXQoKSBwdWJsaWMgbG9jYXRpb25UaXRsZSA9ICdTZWFyY2ggZm9yIGEgbG9jYXRpb24gYnkgbmFtZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlSW5wdXRGaWVsZCA9IGZhbHNlO1xuICBwdWJsaWMgbG9jYXRpb25zOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSA9IFtdO1xuICBwdWJsaWMgdGVtcFNlbGVjdGVkTG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCA9IG51bGw7XG4gIHB1YmxpYyBzZXJ2aWNlSWRzOiBzdHJpbmcgPSAnU1NDUyxJQSc7XG4gIEBWaWV3Q2hpbGQoU2VhcmNoTG9jYXRpb25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBzZWFyY2hMb2NhdGlvbkNvbXBvbmVudDogU2VhcmNoTG9jYXRpb25Db21wb25lbnQ7XG4gIHByaXZhdGUgcFNlcnZpY2VzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHBEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucERpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZWFyY2hMb2NhdGlvbkNvbXBvbmVudC5yZXNldFNlYXJjaFRlcm0oKTtcbiAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG4gICAgdGhpcy5wRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVJbnB1dEZpZWxkID09PSB0cnVlID8gdHJ1ZSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlcnZpY2VzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5wU2VydmljZXM7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlcnZpY2VzKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMucFNlcnZpY2VzID0gdmFsdWU7XG4gICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkcy5maW5kKGYgPT4ge1xuICAgICAgaWYgKHRoaXMuZmllbGQpIHtcbiAgICAgICAgcmV0dXJuIGYubmFtZSA9PT0gdGhpcy5maWVsZC5maW5kTG9jYXRpb25GaWVsZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuc2VydmljZUlkcyA9IHZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlSWRzID0gZ2V0VmFsdWVzKGZpZWxkLm9wdGlvbnMsIHZhbHVlKS5maWx0ZXIoeCA9PiB4ICE9PSAnc2VydmljZXNfYWxsJykuam9pbignLCcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBpbXBsZW1lbnRlZCB0byBnZXQgcmlkIG9mIHVuZGVmaW5lZCB2YWx1ZXNcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25zID0gdGhpcy5zZWxlY3RlZExvY2F0aW9ucy5maWx0ZXIobG9jYXRpb24gPT4gbG9jYXRpb24uZXBpbW1zX2lkKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRMb2NhdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50ZW1wU2VsZWN0ZWRMb2NhdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZExvY2F0aW9ucyA9IFsuLi50aGlzLnNlbGVjdGVkTG9jYXRpb25zLCB0aGlzLnRlbXBTZWxlY3RlZExvY2F0aW9uXTtcbiAgICAgIHRoaXMuYWRkU2VsZWN0ZWRMb2NhdGlvbnNUb0Zvcm0oW3RoaXMudGVtcFNlbGVjdGVkTG9jYXRpb25dKTtcbiAgICAgIHRoaXMudGVtcFNlbGVjdGVkTG9jYXRpb24gPSBudWxsO1xuICAgICAgdGhpcy5sb2NhdGlvbnMgPSBbXTtcbiAgICAgIHRoaXMuc2VhcmNoTG9jYXRpb25Db21wb25lbnQucmVzZXRTZWFyY2hUZXJtKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUxvY2F0aW9uKGxvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAobG9jYXRpb24uZXBpbW1zX2lkKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25zID0gdGhpcy5zZWxlY3RlZExvY2F0aW9ucy5maWx0ZXIoc2VsZWN0ZWRMb2NhdGlvbiA9PiBzZWxlY3RlZExvY2F0aW9uLmVwaW1tc19pZCAhPT0gbG9jYXRpb24uZXBpbW1zX2lkKTtcbiAgICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5uYW1lKSBhcyBGb3JtQXJyYXk7XG4gICAgICBjb25zdCBpbmRleCA9IChmb3JtQXJyYXkudmFsdWUgYXMgTG9jYXRpb25CeUVQSU1NU01vZGVsW10pLmZpbmRJbmRleChzZWxlY3RlZExvY2F0aW9uID0+IHNlbGVjdGVkTG9jYXRpb24uZXBpbW1zX2lkID09PSBsb2NhdGlvbi5lcGltbXNfaWQpO1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JbnB1dENoYW5nZWQodGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gaWYgdGhlIGZpbHRlciBpcyBpbiBzaW5nbGUgbW9kZSBjbGVhciB0aGUgc2VsZWN0ZWQgbG9jYXRpb25zXG4gICAgaWYgKHR5cGVvZiB0ZXJtID09PSAnc3RyaW5nJyAmJiB0aGlzLmZpZWxkLm1heFNlbGVjdGVkID09PSAxKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TZWFyY2hJbnB1dENoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhdGlvbkZpZWxkQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25Mb2NhdGlvblNlbGVjdGVkKGxvY2F0aW9uOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWVsZC5tYXhTZWxlY3RlZCA9PT0gMSkge1xuICAgICAgdGhpcy5yZW1vdmVTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgdGhpcy5hZGRTZWxlY3RlZExvY2F0aW9uc1RvRm9ybShbbG9jYXRpb25dKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLnNlbGVjdGVkTG9jYXRpb25zLmZpbmQoeCA9PiB4LmVwaW1tc19pZCA9PT0gbG9jYXRpb24uZXBpbW1zX2lkKSkge1xuICAgICAgICBpZiAobG9jYXRpb24uZXBpbW1zX2lkKSB7XG4gICAgICAgICAgdGhpcy50ZW1wU2VsZWN0ZWRMb2NhdGlvbiA9IGxvY2F0aW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTZWxlY3RlZFZhbHVlcygpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQXJyYXkgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQubmFtZSkgYXMgRm9ybUFycmF5O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybUFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBmb3JtQXJyYXkucmVtb3ZlQXQoaSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkU2VsZWN0ZWRMb2NhdGlvbnNUb0Zvcm0obG9jYXRpb25zOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5uYW1lKSBhcyBGb3JtQXJyYXk7XG4gICAgZm9yIChjb25zdCBsb2NhdGlvbiBvZiBsb2NhdGlvbnMpIHtcbiAgICAgIGZvcm1BcnJheS5wdXNoKG5ldyBGb3JtQ29udHJvbChsb2NhdGlvbikpO1xuICAgIH1cbiAgfVxufVxuIl19