@hmcts/rpx-xui-common-lib 2.1.6-angular-upgrade-11-welsh → 2.1.6-javascript-void

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 (361) hide show
  1. package/README.md +1 -1
  2. package/esm2022/hmcts-rpx-xui-common-lib.mjs +5 -0
  3. package/esm2022/lib/components/accessibility/accessibility.component.mjs +833 -0
  4. package/esm2022/lib/components/checkbox-list/checkbox-list.component.mjs +232 -0
  5. package/esm2022/lib/components/contact-details/contact-details.component.mjs +123 -0
  6. package/esm2022/lib/components/cookie-banner/cookie-banner.component.mjs +151 -0
  7. package/esm2022/lib/components/due-date/due-date.component.mjs +141 -0
  8. package/esm2022/lib/components/exui-main-wrapper/exui-page-wrapper.component.mjs +80 -0
  9. package/esm2022/lib/components/find-location/find-location.component.mjs +220 -0
  10. package/esm2022/lib/components/find-person/find-person.component.mjs +234 -0
  11. package/esm2022/lib/components/find-service/find-service.component.mjs +193 -0
  12. package/esm2022/lib/components/find-task-name/find-task-name.component.mjs +200 -0
  13. package/esm2022/lib/components/generic-filter/generic-filter-utils.mjs +21 -0
  14. package/esm2022/lib/components/generic-filter/generic-filter.component.mjs +1224 -0
  15. package/esm2022/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.mjs +56 -0
  16. package/esm2022/lib/components/invite-user-form/invite-user-form.component.mjs +51 -0
  17. package/esm2022/lib/components/invite-user-permissions/invite-user-permission.component.mjs +54 -0
  18. package/esm2022/lib/components/loading-spinner/loading-spinner.component.mjs +33 -0
  19. package/esm2022/lib/components/pagination/pagination.component.mjs +92 -0
  20. package/esm2022/lib/components/public_api.mjs +39 -0
  21. package/esm2022/lib/components/search-judicials/search-judicials.component.mjs +185 -0
  22. package/esm2022/lib/components/search-location/search-location.component.mjs +240 -0
  23. package/esm2022/lib/components/search-service/search-service.component.mjs +94 -0
  24. package/esm2022/lib/components/search-venue/search-venue.component.mjs +188 -0
  25. package/esm2022/lib/components/selected-case/selected-case.component.mjs +381 -0
  26. package/esm2022/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +135 -0
  27. package/esm2022/lib/components/selected-case-list/selected-case-list.component.mjs +98 -0
  28. package/esm2022/lib/components/service-message/service-message.component.mjs +62 -0
  29. package/esm2022/lib/components/service-messages/service-messages.component.mjs +163 -0
  30. package/esm2022/lib/components/share-case/share-case.component.mjs +427 -0
  31. package/esm2022/lib/components/share-case-confirm/share-case-confirm.component.mjs +85 -0
  32. package/esm2022/lib/components/tab/tab.component.mjs +40 -0
  33. package/esm2022/lib/components/tc-confirm/tc-confirm.component.mjs +66 -0
  34. package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.mjs +17 -0
  35. package/esm2022/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.mjs +17 -0
  36. package/esm2022/lib/components/terms-and-conditions/terms-and-conditions.component.mjs +58 -0
  37. package/esm2022/lib/components/user-details/user-details.component.mjs +276 -0
  38. package/esm2022/lib/components/user-list/user-list.component.mjs +100 -0
  39. package/esm2022/lib/components/user-select/user-select.component.mjs +94 -0
  40. package/esm2022/lib/components/write-address/write-address.component.mjs +342 -0
  41. package/esm2022/lib/components/write-address-inputs/write-address-inputs.component.mjs +165 -0
  42. package/esm2022/lib/directives/feature-toggle/feature-toggle.directive.mjs +41 -0
  43. package/esm2022/lib/directives/let/let.directive.mjs +29 -0
  44. package/esm2022/lib/exui-common-lib.module.mjs +313 -0
  45. package/esm2022/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.mjs +55 -0
  46. package/esm2022/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.mjs +137 -0
  47. package/esm2022/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.mjs +127 -0
  48. package/esm2022/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.mjs +46 -0
  49. package/esm2022/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.mjs +79 -0
  50. package/esm2022/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.mjs +79 -0
  51. package/esm2022/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.mjs +45 -0
  52. package/esm2022/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.mjs +71 -0
  53. package/esm2022/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.mjs +84 -0
  54. package/esm2022/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.mjs +48 -0
  55. package/esm2022/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.mjs +42 -0
  56. package/esm2022/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.mjs +80 -0
  57. package/esm2022/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.mjs +185 -0
  58. package/esm2022/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.mjs +57 -0
  59. package/esm2022/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.mjs +2 -0
  60. package/esm2022/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.mjs +111 -0
  61. package/esm2022/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.mjs +140 -0
  62. package/esm2022/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +34 -0
  63. package/esm2022/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.mjs +129 -0
  64. package/esm2022/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.mjs +204 -0
  65. package/esm2022/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.mjs +60 -0
  66. package/esm2022/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.mjs +58 -0
  67. package/esm2022/lib/gov-ui/directives/remove-host.directive.mjs +30 -0
  68. package/esm2022/lib/gov-ui/gov-ui.service.mjs +14 -0
  69. package/esm2022/lib/gov-ui/models/checkboxes-model.mjs +2 -0
  70. package/{esm2015/lib/gov-ui/models/gov-ui-config-model.js → esm2022/lib/gov-ui/models/gov-ui-config-model.mjs} +1 -1
  71. package/{esm2015/lib/gov-ui/models/public_api.js → esm2022/lib/gov-ui/models/public_api.mjs} +1 -2
  72. package/esm2022/lib/gov-ui/models/radio-buttons.model.mjs +2 -0
  73. package/esm2022/lib/gov-ui/util/helpers/html-templates.helper.mjs +22 -0
  74. package/{esm2015/lib/gov-ui/validators/checkboxes-be-checked.validator.js → esm2022/lib/gov-ui/validators/checkboxes-be-checked.validator.mjs} +1 -1
  75. package/{esm2015/lib/gov-ui/validators/date.validator.js → esm2022/lib/gov-ui/validators/date.validator.mjs} +1 -1
  76. package/esm2022/lib/gov-ui/validators/radio-group.validator.mjs +15 -0
  77. package/esm2022/lib/models/address-message.enum.mjs +11 -0
  78. package/esm2022/lib/models/address-option.model.mjs +21 -0
  79. package/esm2022/lib/models/address.model.mjs +4 -0
  80. package/{esm2015/lib/models/contact-details.model.js → esm2022/lib/models/contact-details.model.mjs} +1 -1
  81. package/esm2022/lib/models/feature-user.mjs +5 -0
  82. package/esm2022/lib/models/filter.model.mjs +3 -0
  83. package/esm2022/lib/models/index.mjs +19 -0
  84. package/esm2022/lib/models/location.model.mjs +7 -0
  85. package/esm2022/lib/models/person.model.mjs +21 -0
  86. package/{esm2015/lib/models/public_api.js → esm2022/lib/models/public_api.mjs} +2 -1
  87. package/{esm2015/lib/models/search-options.model.js → esm2022/lib/models/search-options.model.mjs} +1 -1
  88. package/esm2022/lib/models/service-message.model.mjs +2 -0
  89. package/esm2022/lib/models/task-name.model.mjs +2 -0
  90. package/esm2022/lib/models/user-access-type.model.mjs +2 -0
  91. package/esm2022/lib/models/user-details.model.mjs +2 -0
  92. package/esm2022/lib/pipes/capitalize/capitalize.pipe.mjs +15 -0
  93. package/esm2022/lib/pipes/index.mjs +2 -0
  94. package/esm2022/lib/services/address/address-parser.mjs +76 -0
  95. package/esm2022/lib/services/address/address-type.enum.mjs +7 -0
  96. package/esm2022/lib/services/address/address.service.mjs +55 -0
  97. package/esm2022/lib/services/case-sharing-state/case-sharing-state.service.mjs +170 -0
  98. package/esm2022/lib/services/cookie/cookie.service.mjs +48 -0
  99. package/esm2022/lib/services/feature-toggle/feature-toggle.guard.mjs +37 -0
  100. package/esm2022/lib/services/feature-toggle/feature-toggle.service.mjs +33 -0
  101. package/esm2022/lib/services/feature-toggle/launch-darkly.service.mjs +65 -0
  102. package/esm2022/lib/services/filter/filter.service.mjs +95 -0
  103. package/esm2022/lib/services/find-person/find-person.service.mjs +92 -0
  104. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +73 -0
  105. package/esm2022/lib/services/google-tag-manager/google-tag-manager.service.mjs +85 -0
  106. package/{esm2015/lib/services/loading/loading.service.js → esm2022/lib/services/loading/loading.service.mjs} +8 -6
  107. package/esm2022/lib/services/locations/location.service.mjs +38 -0
  108. package/{esm2015/lib/services/manage-session/manage-session.services.js → esm2022/lib/services/manage-session/manage-session.services.mjs} +8 -10
  109. package/esm2022/lib/services/public-api.mjs +18 -0
  110. package/esm2022/lib/services/ref-data/index.mjs +4 -0
  111. package/esm2022/lib/services/ref-data/models/ref-data-htmcs-service.model.mjs +2 -0
  112. package/esm2022/lib/services/ref-data/models/ref-data-region.model.mjs +2 -0
  113. package/esm2022/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.mjs +2 -0
  114. package/esm2022/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.mjs +33 -0
  115. package/esm2022/lib/services/ref-data/ref-data.service.mjs +34 -0
  116. package/esm2022/lib/services/role-guard/role.guard.mjs +43 -0
  117. package/esm2022/lib/services/role-guard/role.service.mjs +22 -0
  118. package/esm2022/lib/services/storage/session-storage/session-storage.service.mjs +43 -0
  119. package/esm2022/lib/services/task-name/task-name.service.mjs +35 -0
  120. package/esm2022/lib/services/timeout-notifications/timeout-notifications.service.mjs +103 -0
  121. package/{esm2015/public-api.js → esm2022/public-api.mjs} +2 -1
  122. package/fesm2022/hmcts-rpx-xui-common-lib.mjs +10377 -0
  123. package/fesm2022/hmcts-rpx-xui-common-lib.mjs.map +1 -0
  124. package/index.d.ts +5 -0
  125. package/lib/components/accessibility/accessibility.component.d.ts +7 -1
  126. package/lib/components/checkbox-list/checkbox-list.component.d.ts +8 -2
  127. package/lib/components/contact-details/contact-details.component.d.ts +3 -0
  128. package/lib/components/cookie-banner/cookie-banner.component.d.ts +5 -1
  129. package/lib/components/due-date/due-date.component.d.ts +8 -2
  130. package/lib/components/exui-main-wrapper/exui-page-wrapper.component.d.ts +3 -0
  131. package/lib/components/find-location/find-location.component.d.ts +12 -6
  132. package/lib/components/find-person/find-person.component.d.ts +5 -2
  133. package/lib/components/find-service/find-service.component.d.ts +24 -9
  134. package/lib/components/find-task-name/find-task-name.component.d.ts +44 -0
  135. package/lib/components/generic-filter/generic-filter-utils.d.ts +2 -5
  136. package/lib/components/generic-filter/generic-filter.component.d.ts +25 -6
  137. package/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.d.ts +3 -0
  138. package/lib/components/invite-user-form/invite-user-form.component.d.ts +3 -0
  139. package/lib/components/invite-user-permissions/invite-user-permission.component.d.ts +3 -0
  140. package/lib/components/loading-spinner/loading-spinner.component.d.ts +8 -1
  141. package/lib/components/pagination/pagination.component.d.ts +3 -0
  142. package/lib/components/public_api.d.ts +6 -0
  143. package/lib/components/search-judicials/search-judicials.component.d.ts +3 -0
  144. package/lib/components/search-location/search-location.component.d.ts +25 -20
  145. package/lib/components/search-service/search-service.component.d.ts +16 -9
  146. package/lib/components/search-venue/search-venue.component.d.ts +3 -1
  147. package/lib/components/selected-case/selected-case.component.d.ts +3 -0
  148. package/lib/components/selected-case-confirm/selected-case-confirm.component.d.ts +3 -0
  149. package/lib/components/selected-case-list/selected-case-list.component.d.ts +3 -0
  150. package/lib/components/service-message/service-message.component.d.ts +9 -4
  151. package/lib/components/service-messages/service-messages.component.d.ts +15 -5
  152. package/lib/components/share-case/share-case.component.d.ts +4 -0
  153. package/lib/components/share-case-confirm/share-case-confirm.component.d.ts +3 -0
  154. package/lib/components/tab/tab.component.d.ts +3 -0
  155. package/lib/components/tc-confirm/tc-confirm.component.d.ts +3 -0
  156. package/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.d.ts +3 -0
  157. package/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.d.ts +3 -0
  158. package/lib/components/terms-and-conditions/terms-and-conditions.component.d.ts +3 -0
  159. package/lib/components/user-details/user-details.component.d.ts +4 -0
  160. package/lib/components/user-list/user-list.component.d.ts +3 -0
  161. package/lib/components/user-select/user-select.component.d.ts +5 -3
  162. package/lib/components/write-address/write-address.component.d.ts +45 -0
  163. package/lib/components/write-address-inputs/write-address-inputs.component.d.ts +16 -0
  164. package/lib/directives/feature-toggle/feature-toggle.directive.d.ts +3 -0
  165. package/lib/directives/let/let.directive.d.ts +3 -0
  166. package/lib/exui-common-lib.module.d.ts +83 -4
  167. package/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.d.ts +3 -0
  168. package/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.d.ts +17 -5
  169. package/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.d.ts +3 -0
  170. package/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.d.ts +3 -0
  171. package/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.d.ts +3 -0
  172. package/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.d.ts +3 -0
  173. package/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.d.ts +3 -0
  174. package/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.d.ts +4 -2
  175. package/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.d.ts +4 -0
  176. package/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.d.ts +3 -0
  177. package/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.d.ts +5 -2
  178. package/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.d.ts +3 -0
  179. package/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.d.ts +3 -0
  180. package/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.d.ts +3 -0
  181. package/lib/gov-ui/components/hmcts-banner/hmcts-banner-info.interface.d.ts +7 -0
  182. package/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.d.ts +7 -2
  183. package/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.d.ts +3 -0
  184. package/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.d.ts +3 -0
  185. package/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.d.ts +6 -3
  186. package/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.d.ts +3 -0
  187. package/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.d.ts +3 -0
  188. package/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.d.ts +3 -0
  189. package/lib/gov-ui/directives/remove-host.directive.d.ts +3 -0
  190. package/lib/gov-ui/gov-ui.service.d.ts +3 -0
  191. package/lib/gov-ui/models/checkboxes-model.d.ts +4 -7
  192. package/lib/gov-ui/models/gov-ui-config-model.d.ts +2 -0
  193. package/lib/gov-ui/models/public_api.d.ts +0 -1
  194. package/lib/gov-ui/models/radio-buttons.model.d.ts +9 -0
  195. package/lib/models/address-message.enum.d.ts +9 -0
  196. package/lib/models/address-option.model.d.ts +9 -0
  197. package/lib/models/address.model.d.ts +9 -0
  198. package/lib/models/contact-details.model.d.ts +4 -0
  199. package/lib/models/feature-user.d.ts +4 -6
  200. package/lib/models/filter.model.d.ts +42 -9
  201. package/lib/models/index.d.ts +4 -0
  202. package/lib/models/location.model.d.ts +12 -12
  203. package/lib/models/person.model.d.ts +5 -3
  204. package/lib/models/public_api.d.ts +1 -0
  205. package/lib/models/search-options.model.d.ts +1 -1
  206. package/lib/models/service-message.model.d.ts +8 -0
  207. package/lib/models/task-name.model.d.ts +4 -0
  208. package/lib/models/user-access-type.model.d.ts +6 -0
  209. package/lib/models/user-details.model.d.ts +2 -0
  210. package/lib/pipes/capitalize/capitalize.pipe.d.ts +7 -0
  211. package/lib/pipes/index.d.ts +1 -0
  212. package/lib/services/address/address-parser.d.ts +17 -0
  213. package/lib/services/address/address-type.enum.d.ts +5 -0
  214. package/lib/services/address/address.service.d.ts +15 -0
  215. package/lib/services/case-sharing-state/case-sharing-state.service.d.ts +3 -0
  216. package/lib/services/cookie/cookie.service.d.ts +3 -0
  217. package/lib/services/feature-toggle/feature-toggle.guard.d.ts +8 -2
  218. package/lib/services/feature-toggle/feature-toggle.service.d.ts +4 -0
  219. package/lib/services/feature-toggle/launch-darkly.service.d.ts +14 -10
  220. package/lib/services/filter/filter.service.d.ts +6 -0
  221. package/lib/services/find-person/find-person.service.d.ts +5 -2
  222. package/lib/services/google-analytics/google-analytics.service.d.ts +4 -1
  223. package/lib/services/google-tag-manager/google-tag-manager.service.d.ts +5 -1
  224. package/lib/services/loading/loading.service.d.ts +3 -0
  225. package/lib/services/locations/location.service.d.ts +4 -1
  226. package/lib/services/manage-session/manage-session.services.d.ts +3 -0
  227. package/lib/services/public-api.d.ts +2 -0
  228. package/lib/services/ref-data/index.d.ts +3 -0
  229. package/lib/services/ref-data/models/ref-data-htmcs-service.model.d.ts +13 -0
  230. package/lib/services/ref-data/models/ref-data-region.model.d.ts +4 -0
  231. package/lib/services/ref-data/ref-data-data-access/models/ref-data-locations-by-service-code-response.model.d.ts +8 -0
  232. package/lib/services/ref-data/ref-data-data-access/ref-data-data-access.service.d.ts +18 -0
  233. package/lib/services/ref-data/ref-data.service.d.ts +17 -0
  234. package/lib/services/role-guard/role.guard.d.ts +7 -3
  235. package/lib/services/role-guard/role.service.d.ts +8 -4
  236. package/lib/services/{session-storage → storage/session-storage}/session-storage.service.d.ts +3 -0
  237. package/lib/services/task-name/task-name.service.d.ts +17 -0
  238. package/lib/services/timeout-notifications/timeout-notifications.service.d.ts +8 -2
  239. package/package.json +21 -11
  240. package/public-api.d.ts +1 -0
  241. package/bundles/hmcts-rpx-xui-common-lib.umd.js +0 -5139
  242. package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +0 -1
  243. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +0 -2
  244. package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +0 -1
  245. package/esm2015/hmcts-rpx-xui-common-lib.js +0 -70
  246. package/esm2015/lib/components/accessibility/accessibility.component.js +0 -14
  247. package/esm2015/lib/components/checkbox-list/checkbox-list.component.js +0 -177
  248. package/esm2015/lib/components/contact-details/contact-details.component.js +0 -17
  249. package/esm2015/lib/components/cookie-banner/cookie-banner.component.js +0 -68
  250. package/esm2015/lib/components/due-date/due-date.component.js +0 -115
  251. package/esm2015/lib/components/exui-main-wrapper/exui-page-wrapper.component.js +0 -28
  252. package/esm2015/lib/components/find-location/find-location.component.js +0 -124
  253. package/esm2015/lib/components/find-person/find-person.component.js +0 -118
  254. package/esm2015/lib/components/find-service/find-service.component.js +0 -31
  255. package/esm2015/lib/components/generic-filter/generic-filter-utils.js +0 -21
  256. package/esm2015/lib/components/generic-filter/generic-filter.component.js +0 -387
  257. package/esm2015/lib/components/hmcts-session-dialog/hmcts-session-dialog.component.js +0 -27
  258. package/esm2015/lib/components/invite-user-form/invite-user-form.component.js +0 -25
  259. package/esm2015/lib/components/invite-user-permissions/invite-user-permission.component.js +0 -25
  260. package/esm2015/lib/components/loading-spinner/loading-spinner.component.js +0 -18
  261. package/esm2015/lib/components/pagination/pagination.component.js +0 -28
  262. package/esm2015/lib/components/public_api.js +0 -33
  263. package/esm2015/lib/components/search-judicials/search-judicials.component.js +0 -126
  264. package/esm2015/lib/components/search-location/search-location.component.js +0 -133
  265. package/esm2015/lib/components/search-service/search-service.component.js +0 -31
  266. package/esm2015/lib/components/search-venue/search-venue.component.js +0 -123
  267. package/esm2015/lib/components/selected-case/selected-case.component.js +0 -158
  268. package/esm2015/lib/components/selected-case-confirm/selected-case-confirm.component.js +0 -36
  269. package/esm2015/lib/components/selected-case-list/selected-case-list.component.js +0 -49
  270. package/esm2015/lib/components/service-message/service-message.component.js +0 -22
  271. package/esm2015/lib/components/service-messages/service-messages.component.js +0 -48
  272. package/esm2015/lib/components/share-case/share-case.component.js +0 -205
  273. package/esm2015/lib/components/share-case-confirm/share-case-confirm.component.js +0 -34
  274. package/esm2015/lib/components/tab/tab.component.js +0 -21
  275. package/esm2015/lib/components/tc-confirm/tc-confirm.component.js +0 -22
  276. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-html/tc-display-html.component.js +0 -13
  277. package/esm2015/lib/components/terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component.js +0 -13
  278. package/esm2015/lib/components/terms-and-conditions/terms-and-conditions.component.js +0 -16
  279. package/esm2015/lib/components/user-details/user-details.component.js +0 -41
  280. package/esm2015/lib/components/user-list/user-list.component.js +0 -33
  281. package/esm2015/lib/components/user-select/user-select.component.js +0 -58
  282. package/esm2015/lib/directives/feature-toggle/feature-toggle.directive.js +0 -42
  283. package/esm2015/lib/directives/let/let.directive.js +0 -30
  284. package/esm2015/lib/exui-common-lib.module.js +0 -160
  285. package/esm2015/lib/gov-ui/components/gov-uk-checkbox/gov-uk-checkbox.component.js +0 -31
  286. package/esm2015/lib/gov-ui/components/gov-uk-checkboxes/gov-uk-checkboxes.component.js +0 -21
  287. package/esm2015/lib/gov-ui/components/gov-uk-date/gov-uk-date.component.js +0 -64
  288. package/esm2015/lib/gov-ui/components/gov-uk-error-message/gov-uk-error-message.component.js +0 -22
  289. package/esm2015/lib/gov-ui/components/gov-uk-fieldset/gov-uk-fieldset.component.js +0 -28
  290. package/esm2015/lib/gov-ui/components/gov-uk-file-upload/gov-uk-file-upload.component.js +0 -35
  291. package/esm2015/lib/gov-ui/components/gov-uk-form-group-wrapper/gov-uk-form-group-wrapper.component.js +0 -23
  292. package/esm2015/lib/gov-ui/components/gov-uk-input/gov-uk-input.component.js +0 -34
  293. package/esm2015/lib/gov-ui/components/gov-uk-label/gov-uk-label.component.js +0 -21
  294. package/esm2015/lib/gov-ui/components/gov-uk-radio/gov-uk-radio.component.js +0 -33
  295. package/esm2015/lib/gov-ui/components/gov-uk-radios/gov-uk-radios.component.js +0 -21
  296. package/esm2015/lib/gov-ui/components/gov-uk-select/gov-uk-select.component.js +0 -27
  297. package/esm2015/lib/gov-ui/components/gov-uk-table/gov-uk-table.component.js +0 -39
  298. package/esm2015/lib/gov-ui/components/gov-uk-textarea/gov-uk-textarea.component.js +0 -27
  299. package/esm2015/lib/gov-ui/components/hmcts-banner/hmcts-banner.component.js +0 -23
  300. package/esm2015/lib/gov-ui/components/hmcts-error-summary/hmcts-error-summary.component.js +0 -48
  301. package/esm2015/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.js +0 -19
  302. package/esm2015/lib/gov-ui/components/hmcts-main-wrapper/hmcts-main-wrapper.component.js +0 -41
  303. package/esm2015/lib/gov-ui/components/hmcts-pagination/hmcts-pagination.component.js +0 -28
  304. package/esm2015/lib/gov-ui/components/hmcts-primary-navigation/hmcts-primary-navigation.component.js +0 -23
  305. package/esm2015/lib/gov-ui/components/hmcts-sub-navigation/hmcts-sub-navigation.component.js +0 -15
  306. package/esm2015/lib/gov-ui/directives/remove-host.directive.js +0 -29
  307. package/esm2015/lib/gov-ui/gov-ui.service.js +0 -13
  308. package/esm2015/lib/gov-ui/models/banner-data-model.js +0 -2
  309. package/esm2015/lib/gov-ui/models/checkboxes-model.js +0 -2
  310. package/esm2015/lib/gov-ui/models/isession-storage.interface.js +0 -2
  311. package/esm2015/lib/gov-ui/util/helpers/html-templates.helper.js +0 -22
  312. package/esm2015/lib/gov-ui/util/session-storage/session-storage-utils.js +0 -22
  313. package/esm2015/lib/gov-ui/validators/radio-group.validator.js +0 -15
  314. package/esm2015/lib/models/feature-user.js +0 -5
  315. package/esm2015/lib/models/filter.model.js +0 -3
  316. package/esm2015/lib/models/index.js +0 -15
  317. package/esm2015/lib/models/location.model.js +0 -7
  318. package/esm2015/lib/models/person.model.js +0 -19
  319. package/esm2015/lib/models/user-details.model.js +0 -2
  320. package/esm2015/lib/services/case-sharing-state/case-sharing-state.service.js +0 -157
  321. package/esm2015/lib/services/cookie/cookie.service.js +0 -47
  322. package/esm2015/lib/services/feature-toggle/feature-toggle.guard.js +0 -35
  323. package/esm2015/lib/services/feature-toggle/feature-toggle.service.js +0 -27
  324. package/esm2015/lib/services/feature-toggle/launch-darkly.service.js +0 -59
  325. package/esm2015/lib/services/filter/filter.service.js +0 -64
  326. package/esm2015/lib/services/find-person/find-person.service.js +0 -106
  327. package/esm2015/lib/services/google-analytics/google-analytics.service.js +0 -68
  328. package/esm2015/lib/services/google-tag-manager/google-tag-manager.service.js +0 -71
  329. package/esm2015/lib/services/locations/location.service.js +0 -39
  330. package/esm2015/lib/services/public-api.js +0 -16
  331. package/esm2015/lib/services/role-guard/role.guard.js +0 -37
  332. package/esm2015/lib/services/role-guard/role.service.js +0 -20
  333. package/esm2015/lib/services/session-storage/session-storage.service.js +0 -41
  334. package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +0 -92
  335. package/fesm2015/hmcts-rpx-xui-common-lib.js +0 -4172
  336. package/fesm2015/hmcts-rpx-xui-common-lib.js.map +0 -1
  337. package/hmcts-rpx-xui-common-lib.d.ts +0 -69
  338. package/hmcts-rpx-xui-common-lib.metadata.json +0 -1
  339. package/lib/gov-ui/models/banner-data-model.d.ts +0 -4
  340. package/lib/gov-ui/models/isession-storage.interface.d.ts +0 -4
  341. package/lib/gov-ui/util/session-storage/session-storage-utils.d.ts +0 -6
  342. /package/{esm2015/lib/components/index.js → esm2022/lib/components/index.mjs} +0 -0
  343. /package/{esm2015/lib/directives/index.js → esm2022/lib/directives/index.mjs} +0 -0
  344. /package/{esm2015/lib/directives/public-api.js → esm2022/lib/directives/public-api.mjs} +0 -0
  345. /package/{esm2015/lib/gov-ui/components/index.js → esm2022/lib/gov-ui/components/index.mjs} +0 -0
  346. /package/{esm2015/lib/gov-ui/components/public_api.js → esm2022/lib/gov-ui/components/public_api.mjs} +0 -0
  347. /package/{esm2015/lib/gov-ui/index.js → esm2022/lib/gov-ui/index.mjs} +0 -0
  348. /package/{esm2015/lib/gov-ui/models/error-messages-model.js → esm2022/lib/gov-ui/models/error-messages-model.mjs} +0 -0
  349. /package/{esm2015/lib/gov-ui/models/index.js → esm2022/lib/gov-ui/models/index.mjs} +0 -0
  350. /package/{esm2015/lib/gov-ui/public_api.js → esm2022/lib/gov-ui/public_api.mjs} +0 -0
  351. /package/{esm2015/lib/gov-ui/validators/index.js → esm2022/lib/gov-ui/validators/index.mjs} +0 -0
  352. /package/{esm2015/lib/gov-ui/validators/public_api.js → esm2022/lib/gov-ui/validators/public_api.mjs} +0 -0
  353. /package/{esm2015/lib/models/case-share.model.js → esm2022/lib/models/case-share.model.mjs} +0 -0
  354. /package/{esm2015/lib/models/due-date.model.js → esm2022/lib/models/due-date.model.mjs} +0 -0
  355. /package/{esm2015/lib/models/idle-config.model.js → esm2022/lib/models/idle-config.model.mjs} +0 -0
  356. /package/{esm2015/lib/models/pagination.model.js → esm2022/lib/models/pagination.model.mjs} +0 -0
  357. /package/{esm2015/lib/models/tcDocument.model.js → esm2022/lib/models/tcDocument.model.mjs} +0 -0
  358. /package/{esm2015/lib/models/timeout-notification.model.js → esm2022/lib/models/timeout-notification.model.mjs} +0 -0
  359. /package/{esm2015/lib/models/user.model.js → esm2022/lib/models/user.model.mjs} +0 -0
  360. /package/{esm2015/lib/services/index.js → esm2022/lib/services/index.mjs} +0 -0
  361. /package/{esm2015/lib/window.js → esm2022/lib/window.mjs} +0 -0
@@ -0,0 +1,232 @@
1
+ import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "rpx-xui-translation";
5
+ function CheckboxListComponent_div_0_div_7_Template(rf, ctx) { if (rf & 1) {
6
+ const _r3 = i0.ɵɵgetCurrentView();
7
+ i0.ɵɵelementStart(0, "div", 7)(1, "input", 8);
8
+ i0.ɵɵlistener("change", function CheckboxListComponent_div_0_div_7_Template_input_change_1_listener() { const item_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.toggleItemSelection(item_r4)); });
9
+ i0.ɵɵelementEnd();
10
+ i0.ɵɵelementStart(2, "label", 9);
11
+ i0.ɵɵtext(3);
12
+ i0.ɵɵpipe(4, "rpxTranslate");
13
+ i0.ɵɵelementEnd()();
14
+ } if (rf & 2) {
15
+ const item_r4 = ctx.$implicit;
16
+ const i_r5 = ctx.index;
17
+ const ctx_r1 = i0.ɵɵnextContext(2);
18
+ i0.ɵɵadvance();
19
+ i0.ɵɵproperty("id", "select_" + i_r5)("checked", ctx_r1.isSelected(item_r4));
20
+ i0.ɵɵadvance();
21
+ i0.ɵɵproperty("for", "select_" + i_r5);
22
+ i0.ɵɵadvance();
23
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 4, ctx_r1.labelFunction(item_r4)));
24
+ } }
25
+ function CheckboxListComponent_div_0_Template(rf, ctx) { if (rf & 1) {
26
+ const _r1 = i0.ɵɵgetCurrentView();
27
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "input", 3);
28
+ i0.ɵɵlistener("change", function CheckboxListComponent_div_0_Template_input_change_2_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggleSelectAll()); });
29
+ i0.ɵɵelementEnd();
30
+ i0.ɵɵelementStart(3, "label", 4);
31
+ i0.ɵɵtext(4);
32
+ i0.ɵɵpipe(5, "rpxTranslate");
33
+ i0.ɵɵelementEnd()();
34
+ i0.ɵɵelementStart(6, "div", 5);
35
+ i0.ɵɵtemplate(7, CheckboxListComponent_div_0_div_7_Template, 5, 6, "div", 6);
36
+ i0.ɵɵelementEnd()();
37
+ } if (rf & 2) {
38
+ const ctx_r1 = i0.ɵɵnextContext();
39
+ i0.ɵɵadvance(2);
40
+ i0.ɵɵproperty("checked", ctx_r1.allSelected);
41
+ i0.ɵɵadvance(2);
42
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 3, "Select all / Deselect all"));
43
+ i0.ɵɵadvance(3);
44
+ i0.ɵɵproperty("ngForOf", ctx_r1.options);
45
+ } }
46
+ export class CheckboxListComponent {
47
+ constructor(ref) {
48
+ this.ref = ref;
49
+ /**
50
+ * The options to show checkboxes for. Note that the type
51
+ * within the array corresponds to the one for the component.
52
+ */
53
+ this.options = [];
54
+ /**
55
+ * Whenever the selection changes, this event fires. What is dispatched
56
+ * is the current selection, also retrievable from .selection.
57
+ */
58
+ this.selectionChange = new EventEmitter();
59
+ }
60
+ /**
61
+ * The currently selected values.
62
+ * Note: This array is immutable, which means pushing and popping will
63
+ * have no effect on which checkboxes are selected.
64
+ */
65
+ get selection() {
66
+ return this.pSelection ? [...this.pSelection] : [];
67
+ }
68
+ set selection(value) {
69
+ this.pSelection = this.getSelection(value);
70
+ }
71
+ /**
72
+ * Indicates whether or not all of the items are selected.
73
+ */
74
+ get allSelected() {
75
+ return this.selection.length === this.options.length;
76
+ }
77
+ // Catch any changes to any of the Input() properties.
78
+ ngOnChanges() {
79
+ // Set up the pre-selected values.
80
+ this.setupPreselection();
81
+ // Now check the current selection to make sure it's valid.
82
+ this.checkSelection();
83
+ }
84
+ // checks the data projected into the component
85
+ ngAfterContentChecked() {
86
+ this.ref.detectChanges();
87
+ }
88
+ /**
89
+ * Indicates whether or not there are any options to render.
90
+ */
91
+ get hasOptions() {
92
+ return this.options && this.options.length > 0;
93
+ }
94
+ get isFunctional() {
95
+ return this.labelFunction && this.hasOptions;
96
+ }
97
+ /**
98
+ * Indicates whether or not an item is part of the current selection.
99
+ * @param item The item in question.
100
+ */
101
+ isSelected(item) {
102
+ return this.selection.includes(item);
103
+ }
104
+ /**
105
+ * If an item is already selected, it will be removed from the selection.
106
+ * Otherwise, it will be added to the selection..
107
+ */
108
+ toggleItemSelection(item) {
109
+ if (this.pSelection === undefined) {
110
+ // If we don't have any selection at all yet, make it just this item.
111
+ this.pSelection = [item];
112
+ }
113
+ else if (this.isSelected(item)) {
114
+ // If this item is already selected, remove it.
115
+ this.pSelection.splice(this.pSelection.indexOf(item), 1);
116
+ }
117
+ else {
118
+ // If it's not selected, add it.
119
+ this.pSelection.push(item);
120
+ }
121
+ // Indicate that the user has now made an active selection.
122
+ this.pSelectionMade = true;
123
+ // Now emit an event so any containers know about the change to selection.
124
+ this.selectionChange.emit(this.selection);
125
+ }
126
+ /**
127
+ * If all of the items are selected, deselect them all.
128
+ * Otherwise, select them all.
129
+ */
130
+ toggleSelectAll() {
131
+ // Do we already have them all selected?
132
+ if (this.allSelected) {
133
+ // If so, clear out the selection.
134
+ this.pSelection = [];
135
+ }
136
+ else {
137
+ // If not, select all of them.
138
+ this.pSelection = [...this.options];
139
+ }
140
+ // Indicate that the user has now made an active selection.
141
+ this.pSelectionMade = true;
142
+ // Now emit an event so any containers know about the change to selection.
143
+ this.selectionChange.emit(this.pSelection);
144
+ }
145
+ /**
146
+ * Use the labelFunction to determine whether the options include the item.
147
+ * This is to handle partial objects being set in the pre-selection where
148
+ * they may not be available by the same mechanism as the options.
149
+ *
150
+ * @param items The array of items in which to look for the item.
151
+ * @param item The item to check in the options.
152
+ */
153
+ containsItem(items, item) {
154
+ if (this.isFunctional) {
155
+ const itemLabel = this.labelFunction(item);
156
+ return items.some(opt => {
157
+ return this.labelFunction(opt) === itemLabel;
158
+ });
159
+ }
160
+ return false;
161
+ }
162
+ // Simple utility function to indicate whether there is an active preselection.
163
+ get hasPreselection() {
164
+ return this.preselection && this.preselection.length > 0;
165
+ }
166
+ // Set up the initially selected values.
167
+ // NOTE: If the preselection changes and the user has NOT made an active selection,
168
+ // the current selection will also be changed. As soon as the user has made an
169
+ // active selection, however, the preselection is no longer relevant.
170
+ setupPreselection() {
171
+ if (this.isFunctional && !this.pSelectionMade && this.hasPreselection) {
172
+ let changed = true; // Assume this is a change.
173
+ if (this.pSelection) {
174
+ // If there is no difference between the arrays, this is not a change.
175
+ changed = this.pSelection.filter((item) => {
176
+ return !this.containsItem(this.preselection, item);
177
+ }).length > 0;
178
+ }
179
+ // If this is a change, update the selection and then emit an
180
+ // event so any containers know about the change to selection.
181
+ if (changed) {
182
+ this.pSelection = this.getSelection(this.preselection);
183
+ this.selectionChange.emit(this.selection);
184
+ }
185
+ }
186
+ }
187
+ getSelection(items) {
188
+ return [
189
+ ...this.options.filter(opt => {
190
+ return this.containsItem(items, opt);
191
+ })
192
+ ];
193
+ }
194
+ // The options have changed. Let's make sure the selection
195
+ // doesn't contain anything that's not currently an option.
196
+ checkSelection() {
197
+ if (this.isFunctional) {
198
+ // Check which of the currently selected items are actually options.
199
+ const allowedSelection = this.selection.filter((item) => {
200
+ return this.containsItem(this.options, item);
201
+ });
202
+ // If any have dropped out, change the selection.
203
+ if (allowedSelection.length !== this.selection.length) {
204
+ this.pSelection = [...allowedSelection];
205
+ // And emit an event so any containers know about the change to selection.
206
+ this.selectionChange.emit(this.selection);
207
+ }
208
+ }
209
+ }
210
+ static { this.ɵfac = function CheckboxListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckboxListComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
211
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CheckboxListComponent, selectors: [["xuilib-checkbox-list"]], inputs: { options: "options", preselection: "preselection", labelFunction: "labelFunction", selection: "selection" }, outputs: { selectionChange: "selectionChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["class", "xui-checkbox-list govuk-checkboxes govuk-checkboxes--small", 4, "ngIf"], [1, "xui-checkbox-list", "govuk-checkboxes", "govuk-checkboxes--small"], [1, "select-all", "govuk-checkboxes__item"], ["type", "checkbox", "id", "select_all", 1, "govuk-checkboxes__input", 3, "change", "checked"], ["for", "select_all", 1, "govuk-label", "govuk-checkboxes__label"], [1, "checkbox-items"], ["class", "govuk-checkboxes__item", 4, "ngFor", "ngForOf"], [1, "govuk-checkboxes__item"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "id", "checked"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"]], template: function CheckboxListComponent_Template(rf, ctx) { if (rf & 1) {
212
+ i0.ɵɵtemplate(0, CheckboxListComponent_div_0_Template, 8, 5, "div", 0);
213
+ } if (rf & 2) {
214
+ i0.ɵɵproperty("ngIf", ctx.isFunctional);
215
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i2.RpxTranslatePipe], styles: [".xui-checkbox-list .select-all{margin-bottom:10px}.xui-checkbox-list .checkbox-items{display:flex;flex-direction:column;flex-wrap:wrap;height:100%;max-height:100%;align-items:flex-start;align-content:flex-start;width:100%;max-width:100%;overflow-x:scroll}\n"], encapsulation: 2 }); }
216
+ }
217
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckboxListComponent, [{
218
+ type: Component,
219
+ args: [{ selector: 'xuilib-checkbox-list', encapsulation: ViewEncapsulation.None, template: "<div class=\"xui-checkbox-list govuk-checkboxes govuk-checkboxes--small\" *ngIf=\"isFunctional\">\n <div class=\"select-all govuk-checkboxes__item\">\n <input type=\"checkbox\" id=\"select_all\" class=\"govuk-checkboxes__input\" [checked]=\"allSelected\"\n (change)=\"toggleSelectAll()\" />\n <label for=\"select_all\" class=\"govuk-label govuk-checkboxes__label\">{{'Select all / Deselect all' | rpxTranslate}}</label>\n </div>\n <div class=\"checkbox-items\">\n <div *ngFor=\"let item of options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" [id]=\"'select_' + i\" class=\"govuk-checkboxes__input\" [checked]=\"isSelected(item)\"\n (change)=\"toggleItemSelection(item)\" />\n <label [for]=\"'select_' + i\" class=\"govuk-label govuk-checkboxes__label\">{{labelFunction(item) | rpxTranslate}}</label>\n </div>\n </div>\n</div>\n", styles: [".xui-checkbox-list .select-all{margin-bottom:10px}.xui-checkbox-list .checkbox-items{display:flex;flex-direction:column;flex-wrap:wrap;height:100%;max-height:100%;align-items:flex-start;align-content:flex-start;width:100%;max-width:100%;overflow-x:scroll}\n"] }]
220
+ }], () => [{ type: i0.ChangeDetectorRef }], { options: [{
221
+ type: Input
222
+ }], preselection: [{
223
+ type: Input
224
+ }], labelFunction: [{
225
+ type: Input
226
+ }], selectionChange: [{
227
+ type: Output
228
+ }], selection: [{
229
+ type: Input
230
+ }] }); })();
231
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CheckboxListComponent, { className: "CheckboxListComponent", filePath: "lib/components/checkbox-list/checkbox-list.component.ts", lineNumber: 9 }); })();
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrYm94LWxpc3QvY2hlY2tib3gtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0lDUXZJLEFBREYsOEJBQWdGLGVBRWhDO0lBQXZDLG1OQUFVLG1DQUF5QixLQUFDO0lBRDNDLGlCQUM4QztJQUM5QyxnQ0FBeUU7SUFBQSxZQUFzQzs7SUFDakgsQUFEaUgsaUJBQVEsRUFDbkg7Ozs7O0lBSG1CLGNBQW9CO0lBQWlDLEFBQXJELHFDQUFvQix1Q0FBNkQ7SUFFakcsY0FBcUI7SUFBckIsc0NBQXFCO0lBQTZDLGNBQXNDO0lBQXRDLHlFQUFzQzs7OztJQVJqSCxBQURGLEFBREYsOEJBQTZGLGFBQzVDLGVBRVA7SUFBL0Isa0xBQVUsd0JBQWlCLEtBQUM7SUFEbkMsaUJBQ3NDO0lBQ3RDLGdDQUFvRTtJQUFBLFlBQThDOztJQUNwSCxBQURvSCxpQkFBUSxFQUN0SDtJQUNOLDhCQUE0QjtJQUMxQiw0RUFBZ0Y7SUFNcEYsQUFERSxpQkFBTSxFQUNGOzs7SUFYcUUsZUFBdUI7SUFBdkIsNENBQXVCO0lBRTFCLGVBQThDO0lBQTlDLHVFQUE4QztJQUc1RixlQUFZO0lBQVosd0NBQVk7O0FEQ3RDLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBNkIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFHbkQ7OztXQUdHO1FBQ2EsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQWNsQzs7O1dBR0c7UUFDYyxvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBeEI5RSxDQUFDO0lBMEJEOzs7O09BSUc7SUFDSCxJQUNXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUNELElBQVcsU0FBUyxDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFJRDs7T0FFRztJQUNILElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxzREFBc0Q7SUFDL0MsV0FBVztRQUNoQixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsK0NBQStDO0lBQ3hDLHFCQUFxQjtRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxJQUFPO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLG1CQUFtQixDQUFDLElBQU87UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLHFFQUFxRTtZQUNyRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUUsSUFBSSxDQUFFLENBQUM7UUFDN0IsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pDLCtDQUErQztZQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNOLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRTNCLDBFQUEwRTtRQUMxRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWU7UUFDcEIsd0NBQXdDO1FBQ3hDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLGtDQUFrQztZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLDhCQUE4QjtZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFFLENBQUM7UUFDeEMsQ0FBQztRQUVELDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUUzQiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUFDLEtBQVUsRUFBRSxJQUFPO1FBQ3JDLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxJQUFZLGVBQWU7UUFDekIsT0FBTyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLG1GQUFtRjtJQUNuRiw4RUFBOEU7SUFDOUUscUVBQXFFO0lBQzdELGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN0RSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQywyQkFBMkI7WUFDL0MsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3BCLHNFQUFzRTtnQkFDdEUsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBTyxFQUFFLEVBQUU7b0JBQzNDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3JELENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsQ0FBQztZQUVELDZEQUE2RDtZQUM3RCw4REFBOEQ7WUFDOUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQVU7UUFDN0IsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDO1NBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsMkRBQTJEO0lBQ25ELGNBQWM7UUFDcEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEIsb0VBQW9FO1lBQ3BFLE1BQU0sZ0JBQWdCLEdBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFPLEVBQUUsRUFBRTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLENBQUM7WUFFSCxpREFBaUQ7WUFDakQsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFFLEdBQUcsZ0JBQWdCLENBQUUsQ0FBQztnQkFFMUMsMEVBQTBFO2dCQUMxRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3NIQXRNVSxxQkFBcUI7b0VBQXJCLHFCQUFxQjtZQ1JsQyxzRUFBNkY7O1lBQXBCLHVDQUFrQjs7O2lGRFE5RSxxQkFBcUI7Y0FOakMsU0FBUzsyQkFDRSxzQkFBc0IsaUJBR2pCLGlCQUFpQixDQUFDLElBQUk7a0RBV3JCLE9BQU87a0JBQXRCLEtBQUs7WUFNVSxZQUFZO2tCQUEzQixLQUFLO1lBTVUsYUFBYTtrQkFBNUIsS0FBSztZQU1XLGVBQWU7a0JBQS9CLE1BQU07WUFRSSxTQUFTO2tCQURuQixLQUFLOztrRkFsQ0sscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1jaGVja2JveC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICdjaGVja2JveC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2NoZWNrYm94LWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveExpc3RDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudENoZWNrZWQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25zIHRvIHNob3cgY2hlY2tib3hlcyBmb3IuIE5vdGUgdGhhdCB0aGUgdHlwZVxuICAgKiB3aXRoaW4gdGhlIGFycmF5IGNvcnJlc3BvbmRzIHRvIHRoZSBvbmUgZm9yIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogVFtdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSBpbml0aWFsbHktc2VsZWN0ZWQgdmFsdWVzIHRvIHVzZS4gV2hlbiB0aGUgY29tcG9uZW50IHJlbmRlcnMsXG4gICAqIHRoZSBjaGVja2JveGVzIHRoYXQgY29ycmVzcG9uZCB0byB0aGVzZSB2YWx1ZXMgd2lsbCBiZSBjaGVja2VkLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHByZXNlbGVjdGlvbjogVFtdO1xuXG4gIC8qKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGludm9rZWQgZm9yIGVhY2ggaXRlbSB0byBkaXNwbGF5IHRoZSBhcHByb3ByaWF0ZVxuICAgKiBsYWJlbCBiZXNpZGUgdGhlIGNoZWNrYm94LlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGxhYmVsRnVuY3Rpb246IChpdGVtOiBUKSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZW5ldmVyIHRoZSBzZWxlY3Rpb24gY2hhbmdlcywgdGhpcyBldmVudCBmaXJlcy4gV2hhdCBpcyBkaXNwYXRjaGVkXG4gICAqIGlzIHRoZSBjdXJyZW50IHNlbGVjdGlvbiwgYWxzbyByZXRyaWV2YWJsZSBmcm9tIC5zZWxlY3Rpb24uXG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFRbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4oKTtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCB2YWx1ZXMuXG4gICAqIE5vdGU6IFRoaXMgYXJyYXkgaXMgaW1tdXRhYmxlLCB3aGljaCBtZWFucyBwdXNoaW5nIGFuZCBwb3BwaW5nIHdpbGxcbiAgICogaGF2ZSBubyBlZmZlY3Qgb24gd2hpY2ggY2hlY2tib3hlcyBhcmUgc2VsZWN0ZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHNlbGVjdGlvbigpOiBUW10ge1xuICAgIHJldHVybiB0aGlzLnBTZWxlY3Rpb24gPyBbIC4uLnRoaXMucFNlbGVjdGlvbiBdIDogW107XG4gIH1cbiAgcHVibGljIHNldCBzZWxlY3Rpb24odmFsdWU6IFRbXSkge1xuICAgIHRoaXMucFNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIHBTZWxlY3Rpb246IFRbXTtcbiAgcHJpdmF0ZSBwU2VsZWN0aW9uTWFkZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IGFsbCBvZiB0aGUgaXRlbXMgYXJlIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGdldCBhbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoID09PSB0aGlzLm9wdGlvbnMubGVuZ3RoO1xuICB9XG5cbiAgLy8gQ2F0Y2ggYW55IGNoYW5nZXMgdG8gYW55IG9mIHRoZSBJbnB1dCgpIHByb3BlcnRpZXMuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAvLyBTZXQgdXAgdGhlIHByZS1zZWxlY3RlZCB2YWx1ZXMuXG4gICAgdGhpcy5zZXR1cFByZXNlbGVjdGlvbigpO1xuICAgIC8vIE5vdyBjaGVjayB0aGUgY3VycmVudCBzZWxlY3Rpb24gdG8gbWFrZSBzdXJlIGl0J3MgdmFsaWQuXG4gICAgdGhpcy5jaGVja1NlbGVjdGlvbigpO1xuICB9XG5cbiAgLy8gY2hlY2tzIHRoZSBkYXRhIHByb2plY3RlZCBpbnRvIHRoZSBjb21wb25lbnRcbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBhbnkgb3B0aW9ucyB0byByZW5kZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhhc09wdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNGdW5jdGlvbmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxhYmVsRnVuY3Rpb24gJiYgdGhpcy5oYXNPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhbiBpdGVtIGlzIHBhcnQgb2YgdGhlIGN1cnJlbnQgc2VsZWN0aW9uLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSBpbiBxdWVzdGlvbi5cbiAgICovXG4gIHB1YmxpYyBpc1NlbGVjdGVkKGl0ZW06IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb24uaW5jbHVkZXMoaXRlbSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgYW4gaXRlbSBpcyBhbHJlYWR5IHNlbGVjdGVkLCBpdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgc2VsZWN0aW9uLlxuICAgKiBPdGhlcndpc2UsIGl0IHdpbGwgYmUgYWRkZWQgdG8gdGhlIHNlbGVjdGlvbi4uXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlSXRlbVNlbGVjdGlvbihpdGVtOiBUKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucFNlbGVjdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGFueSBzZWxlY3Rpb24gYXQgYWxsIHlldCwgbWFrZSBpdCBqdXN0IHRoaXMgaXRlbS5cbiAgICAgIHRoaXMucFNlbGVjdGlvbiA9IFsgaXRlbSBdO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc1NlbGVjdGVkKGl0ZW0pKSB7XG4gICAgICAvLyBJZiB0aGlzIGl0ZW0gaXMgYWxyZWFkeSBzZWxlY3RlZCwgcmVtb3ZlIGl0LlxuICAgICAgdGhpcy5wU2VsZWN0aW9uLnNwbGljZSh0aGlzLnBTZWxlY3Rpb24uaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIGl0J3Mgbm90IHNlbGVjdGVkLCBhZGQgaXQuXG4gICAgICB0aGlzLnBTZWxlY3Rpb24ucHVzaChpdGVtKTtcbiAgICB9XG5cbiAgICAvLyBJbmRpY2F0ZSB0aGF0IHRoZSB1c2VyIGhhcyBub3cgbWFkZSBhbiBhY3RpdmUgc2VsZWN0aW9uLlxuICAgIHRoaXMucFNlbGVjdGlvbk1hZGUgPSB0cnVlO1xuXG4gICAgLy8gTm93IGVtaXQgYW4gZXZlbnQgc28gYW55IGNvbnRhaW5lcnMga25vdyBhYm91dCB0aGUgY2hhbmdlIHRvIHNlbGVjdGlvbi5cbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBhbGwgb2YgdGhlIGl0ZW1zIGFyZSBzZWxlY3RlZCwgZGVzZWxlY3QgdGhlbSBhbGwuXG4gICAqIE90aGVyd2lzZSwgc2VsZWN0IHRoZW0gYWxsLlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICAvLyBEbyB3ZSBhbHJlYWR5IGhhdmUgdGhlbSBhbGwgc2VsZWN0ZWQ/XG4gICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQpIHtcbiAgICAgIC8vIElmIHNvLCBjbGVhciBvdXQgdGhlIHNlbGVjdGlvbi5cbiAgICAgIHRoaXMucFNlbGVjdGlvbiA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBub3QsIHNlbGVjdCBhbGwgb2YgdGhlbS5cbiAgICAgIHRoaXMucFNlbGVjdGlvbiA9IFsgLi4udGhpcy5vcHRpb25zIF07XG4gICAgfVxuXG4gICAgLy8gSW5kaWNhdGUgdGhhdCB0aGUgdXNlciBoYXMgbm93IG1hZGUgYW4gYWN0aXZlIHNlbGVjdGlvbi5cbiAgICB0aGlzLnBTZWxlY3Rpb25NYWRlID0gdHJ1ZTtcblxuICAgIC8vIE5vdyBlbWl0IGFuIGV2ZW50IHNvIGFueSBjb250YWluZXJzIGtub3cgYWJvdXQgdGhlIGNoYW5nZSB0byBzZWxlY3Rpb24uXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnBTZWxlY3Rpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSB0aGUgbGFiZWxGdW5jdGlvbiB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgb3B0aW9ucyBpbmNsdWRlIHRoZSBpdGVtLlxuICAgKiBUaGlzIGlzIHRvIGhhbmRsZSBwYXJ0aWFsIG9iamVjdHMgYmVpbmcgc2V0IGluIHRoZSBwcmUtc2VsZWN0aW9uIHdoZXJlXG4gICAqIHRoZXkgbWF5IG5vdCBiZSBhdmFpbGFibGUgYnkgdGhlIHNhbWUgbWVjaGFuaXNtIGFzIHRoZSBvcHRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbXMgVGhlIGFycmF5IG9mIGl0ZW1zIGluIHdoaWNoIHRvIGxvb2sgZm9yIHRoZSBpdGVtLlxuICAgKiBAcGFyYW0gaXRlbSBUaGUgaXRlbSB0byBjaGVjayBpbiB0aGUgb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBjb250YWluc0l0ZW0oaXRlbXM6IFRbXSwgaXRlbTogVCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzRnVuY3Rpb25hbCkge1xuICAgICAgY29uc3QgaXRlbUxhYmVsOiBzdHJpbmcgPSB0aGlzLmxhYmVsRnVuY3Rpb24oaXRlbSk7XG4gICAgICByZXR1cm4gaXRlbXMuc29tZShvcHQgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYWJlbEZ1bmN0aW9uKG9wdCkgPT09IGl0ZW1MYWJlbDtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBTaW1wbGUgdXRpbGl0eSBmdW5jdGlvbiB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZXJlIGlzIGFuIGFjdGl2ZSBwcmVzZWxlY3Rpb24uXG4gIHByaXZhdGUgZ2V0IGhhc1ByZXNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcmVzZWxlY3Rpb24gJiYgdGhpcy5wcmVzZWxlY3Rpb24ubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8vIFNldCB1cCB0aGUgaW5pdGlhbGx5IHNlbGVjdGVkIHZhbHVlcy5cbiAgLy8gTk9URTogSWYgdGhlIHByZXNlbGVjdGlvbiBjaGFuZ2VzIGFuZCB0aGUgdXNlciBoYXMgTk9UIG1hZGUgYW4gYWN0aXZlIHNlbGVjdGlvbixcbiAgLy8gdGhlIGN1cnJlbnQgc2VsZWN0aW9uIHdpbGwgYWxzbyBiZSBjaGFuZ2VkLiBBcyBzb29uIGFzIHRoZSB1c2VyIGhhcyBtYWRlIGFuXG4gIC8vIGFjdGl2ZSBzZWxlY3Rpb24sIGhvd2V2ZXIsIHRoZSBwcmVzZWxlY3Rpb24gaXMgbm8gbG9uZ2VyIHJlbGV2YW50LlxuICBwcml2YXRlIHNldHVwUHJlc2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRnVuY3Rpb25hbCAmJiAhdGhpcy5wU2VsZWN0aW9uTWFkZSAmJiB0aGlzLmhhc1ByZXNlbGVjdGlvbikge1xuICAgICAgbGV0IGNoYW5nZWQgPSB0cnVlOyAvLyBBc3N1bWUgdGhpcyBpcyBhIGNoYW5nZS5cbiAgICAgIGlmICh0aGlzLnBTZWxlY3Rpb24pIHtcbiAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBhcnJheXMsIHRoaXMgaXMgbm90IGEgY2hhbmdlLlxuICAgICAgICBjaGFuZ2VkID0gdGhpcy5wU2VsZWN0aW9uLmZpbHRlcigoaXRlbTogVCkgPT4ge1xuICAgICAgICAgIHJldHVybiAhdGhpcy5jb250YWluc0l0ZW0odGhpcy5wcmVzZWxlY3Rpb24sIGl0ZW0pO1xuICAgICAgICB9KS5sZW5ndGggPiAwO1xuICAgICAgfVxuXG4gICAgICAvLyBJZiB0aGlzIGlzIGEgY2hhbmdlLCB1cGRhdGUgdGhlIHNlbGVjdGlvbiBhbmQgdGhlbiBlbWl0IGFuXG4gICAgICAvLyBldmVudCBzbyBhbnkgY29udGFpbmVycyBrbm93IGFib3V0IHRoZSBjaGFuZ2UgdG8gc2VsZWN0aW9uLlxuICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgdGhpcy5wU2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24odGhpcy5wcmVzZWxlY3Rpb24pO1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdGlvbihpdGVtczogVFtdKTogVFtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5vcHRpb25zLmZpbHRlcihvcHQgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluc0l0ZW0oaXRlbXMsIG9wdCk7XG4gICAgICB9KVxuICAgIF07XG4gIH1cblxuICAvLyBUaGUgb3B0aW9ucyBoYXZlIGNoYW5nZWQuIExldCdzIG1ha2Ugc3VyZSB0aGUgc2VsZWN0aW9uXG4gIC8vIGRvZXNuJ3QgY29udGFpbiBhbnl0aGluZyB0aGF0J3Mgbm90IGN1cnJlbnRseSBhbiBvcHRpb24uXG4gIHByaXZhdGUgY2hlY2tTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNGdW5jdGlvbmFsKSB7XG4gICAgICAvLyBDaGVjayB3aGljaCBvZiB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGl0ZW1zIGFyZSBhY3R1YWxseSBvcHRpb25zLlxuICAgICAgY29uc3QgYWxsb3dlZFNlbGVjdGlvbjogVFtdID0gdGhpcy5zZWxlY3Rpb24uZmlsdGVyKChpdGVtOiBUKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5zSXRlbSh0aGlzLm9wdGlvbnMsIGl0ZW0pO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIElmIGFueSBoYXZlIGRyb3BwZWQgb3V0LCBjaGFuZ2UgdGhlIHNlbGVjdGlvbi5cbiAgICAgIGlmIChhbGxvd2VkU2VsZWN0aW9uLmxlbmd0aCAhPT0gdGhpcy5zZWxlY3Rpb24ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMucFNlbGVjdGlvbiA9IFsgLi4uYWxsb3dlZFNlbGVjdGlvbiBdO1xuXG4gICAgICAgIC8vIEFuZCBlbWl0IGFuIGV2ZW50IHNvIGFueSBjb250YWluZXJzIGtub3cgYWJvdXQgdGhlIGNoYW5nZSB0byBzZWxlY3Rpb24uXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInh1aS1jaGVja2JveC1saXN0IGdvdnVrLWNoZWNrYm94ZXMgZ292dWstY2hlY2tib3hlcy0tc21hbGxcIiAqbmdJZj1cImlzRnVuY3Rpb25hbFwiPlxuICA8ZGl2IGNsYXNzPVwic2VsZWN0LWFsbCBnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwic2VsZWN0X2FsbFwiIGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBbY2hlY2tlZF09XCJhbGxTZWxlY3RlZFwiXG4gICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlU2VsZWN0QWxsKClcIiAvPlxuICAgIDxsYWJlbCBmb3I9XCJzZWxlY3RfYWxsXCIgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiPnt7J1NlbGVjdCBhbGwgLyBEZXNlbGVjdCBhbGwnIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWl0ZW1zXCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2lkXT1cIidzZWxlY3RfJyArIGlcIiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVJdGVtU2VsZWN0aW9uKGl0ZW0pXCIgLz5cbiAgICAgIDxsYWJlbCBbZm9yXT1cIidzZWxlY3RfJyArIGlcIiBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCI+e3tsYWJlbEZ1bmN0aW9uKGl0ZW0pIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,123 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "rpx-xui-translation";
5
+ function ContactDetailsComponent_div_0_h3_1_Template(rf, ctx) { if (rf & 1) {
6
+ i0.ɵɵelementStart(0, "h3", 8);
7
+ i0.ɵɵtext(1);
8
+ i0.ɵɵelementEnd();
9
+ } if (rf & 2) {
10
+ const ctx_r0 = i0.ɵɵnextContext(2);
11
+ i0.ɵɵadvance();
12
+ i0.ɵɵtextInterpolate(ctx_r0.data.title);
13
+ } }
14
+ function ContactDetailsComponent_div_0_p_2_Template(rf, ctx) { if (rf & 1) {
15
+ i0.ɵɵelementStart(0, "p")(1, "span", 9);
16
+ i0.ɵɵtext(2);
17
+ i0.ɵɵelementEnd()();
18
+ } if (rf & 2) {
19
+ const ctx_r0 = i0.ɵɵnextContext(2);
20
+ i0.ɵɵadvance();
21
+ i0.ɵɵproperty("className", "hmcts-badge " + ctx_r0.data.badgeColour);
22
+ i0.ɵɵadvance();
23
+ i0.ɵɵtextInterpolate(ctx_r0.data.badgeText);
24
+ } }
25
+ function ContactDetailsComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "div", 10)(1, "span", 11);
27
+ i0.ɵɵtext(2);
28
+ i0.ɵɵpipe(3, "rpxTranslate");
29
+ i0.ɵɵelementEnd();
30
+ i0.ɵɵelementStart(4, "a", 12);
31
+ i0.ɵɵtext(5);
32
+ i0.ɵɵelementEnd()();
33
+ } if (rf & 2) {
34
+ const ctx_r0 = i0.ɵɵnextContext(2);
35
+ i0.ɵɵadvance(2);
36
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 4, "Email:"), " ");
37
+ i0.ɵɵadvance(2);
38
+ i0.ɵɵpropertyInterpolate1("href", "mailto:", ctx_r0.data.email, "", i0.ɵɵsanitizeUrl);
39
+ i0.ɵɵadvance();
40
+ i0.ɵɵtextInterpolate(ctx_r0.data.email);
41
+ } }
42
+ function ContactDetailsComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
43
+ i0.ɵɵelementStart(0, "div", 13)(1, "span", 11);
44
+ i0.ɵɵtext(2);
45
+ i0.ɵɵpipe(3, "rpxTranslate");
46
+ i0.ɵɵelementEnd();
47
+ i0.ɵɵelementStart(4, "a", 14);
48
+ i0.ɵɵtext(5);
49
+ i0.ɵɵelementEnd()();
50
+ } if (rf & 2) {
51
+ const ctx_r0 = i0.ɵɵnextContext(2);
52
+ i0.ɵɵadvance(2);
53
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 3, "Contact:"), " ");
54
+ i0.ɵɵadvance(2);
55
+ i0.ɵɵpropertyInterpolate("href", ctx_r0.data.contactDetails.contactLink, i0.ɵɵsanitizeUrl);
56
+ i0.ɵɵadvance();
57
+ i0.ɵɵtextInterpolate(ctx_r0.data.contactDetails.name);
58
+ } }
59
+ function ContactDetailsComponent_div_0_div_5_Template(rf, ctx) { if (rf & 1) {
60
+ i0.ɵɵelementStart(0, "div", 15)(1, "span", 11);
61
+ i0.ɵɵtext(2);
62
+ i0.ɵɵpipe(3, "rpxTranslate");
63
+ i0.ɵɵelementEnd();
64
+ i0.ɵɵtext(4);
65
+ i0.ɵɵelementEnd();
66
+ } if (rf & 2) {
67
+ const ctx_r0 = i0.ɵɵnextContext(2);
68
+ i0.ɵɵadvance(2);
69
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 2, "Phone:"), " ");
70
+ i0.ɵɵadvance(2);
71
+ i0.ɵɵtextInterpolate(ctx_r0.data.phone);
72
+ } }
73
+ function ContactDetailsComponent_div_0_div_6_Template(rf, ctx) { if (rf & 1) {
74
+ i0.ɵɵelementStart(0, "div", 16)(1, "span", 11);
75
+ i0.ɵɵtext(2);
76
+ i0.ɵɵpipe(3, "rpxTranslate");
77
+ i0.ɵɵelementEnd();
78
+ i0.ɵɵtext(4);
79
+ i0.ɵɵelementEnd();
80
+ } if (rf & 2) {
81
+ const ctx_r0 = i0.ɵɵnextContext(2);
82
+ i0.ɵɵadvance(2);
83
+ i0.ɵɵtextInterpolate1("", i0.ɵɵpipeBind1(3, 2, "Opening times:"), " ");
84
+ i0.ɵɵadvance(2);
85
+ i0.ɵɵtextInterpolate(ctx_r0.data.openingTimes);
86
+ } }
87
+ function ContactDetailsComponent_div_0_Template(rf, ctx) { if (rf & 1) {
88
+ i0.ɵɵelementStart(0, "div", 1);
89
+ i0.ɵɵtemplate(1, ContactDetailsComponent_div_0_h3_1_Template, 2, 1, "h3", 2)(2, ContactDetailsComponent_div_0_p_2_Template, 3, 2, "p", 3)(3, ContactDetailsComponent_div_0_div_3_Template, 6, 6, "div", 4)(4, ContactDetailsComponent_div_0_div_4_Template, 6, 5, "div", 5)(5, ContactDetailsComponent_div_0_div_5_Template, 5, 4, "div", 6)(6, ContactDetailsComponent_div_0_div_6_Template, 5, 4, "div", 7);
90
+ i0.ɵɵelementEnd();
91
+ } if (rf & 2) {
92
+ const ctx_r0 = i0.ɵɵnextContext();
93
+ i0.ɵɵadvance();
94
+ i0.ɵɵproperty("ngIf", ctx_r0.data.title);
95
+ i0.ɵɵadvance();
96
+ i0.ɵɵproperty("ngIf", ctx_r0.data.badgeText);
97
+ i0.ɵɵadvance();
98
+ i0.ɵɵproperty("ngIf", ctx_r0.data.email);
99
+ i0.ɵɵadvance();
100
+ i0.ɵɵproperty("ngIf", ctx_r0.data.contactDetails);
101
+ i0.ɵɵadvance();
102
+ i0.ɵɵproperty("ngIf", ctx_r0.data.phone);
103
+ i0.ɵɵadvance();
104
+ i0.ɵɵproperty("ngIf", ctx_r0.data.openingTimes);
105
+ } }
106
+ export class ContactDetailsComponent {
107
+ constructor() {
108
+ }
109
+ static { this.ɵfac = function ContactDetailsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ContactDetailsComponent)(); }; }
110
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContactDetailsComponent, selectors: [["xuilib-contact-details"]], inputs: { data: "data" }, decls: 1, vars: 1, consts: [["class", "contact-details", 4, "ngIf"], [1, "contact-details"], ["class", "govuk-heading-m", 4, "ngIf"], [4, "ngIf"], ["class", "email", 4, "ngIf"], ["class", "contactDetails", 4, "ngIf"], ["class", "phone", 4, "ngIf"], ["class", "opening-times", 4, "ngIf"], [1, "govuk-heading-m"], [3, "className"], [1, "email"], [1, "govuk-!-font-weight-bold"], [3, "href"], [1, "contactDetails"], ["rel", "external", 3, "href"], [1, "phone"], [1, "opening-times"]], template: function ContactDetailsComponent_Template(rf, ctx) { if (rf & 1) {
111
+ i0.ɵɵtemplate(0, ContactDetailsComponent_div_0_Template, 7, 6, "div", 0);
112
+ } if (rf & 2) {
113
+ i0.ɵɵproperty("ngIf", ctx.data);
114
+ } }, dependencies: [i1.NgIf, i2.RpxTranslatePipe], styles: [".contact-details[_ngcontent-%COMP%]{margin-top:30px}.contact-details[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .contact-details[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin-bottom:10px}"] }); }
115
+ }
116
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContactDetailsComponent, [{
117
+ type: Component,
118
+ args: [{ selector: 'xuilib-contact-details', template: "<div class=\"contact-details\" *ngIf=\"data\">\n <h3 class=\"govuk-heading-m\" *ngIf=\"data.title\">{{ data.title }}</h3>\n <p *ngIf=\"data.badgeText\"><span [className]=\"'hmcts-badge ' + data.badgeColour\">{{ data.badgeText }}</span></p>\n <div class=\"email\" *ngIf=\"data.email\"><span class=\"govuk-!-font-weight-bold\">{{'Email:' | rpxTranslate}} </span> <a href=\"mailto:{{ data.email }}\">{{ data.email }}</a></div>\n <div class=\"contactDetails\" *ngIf=\"data.contactDetails\"><span class=\"govuk-!-font-weight-bold\">{{'Contact:' | rpxTranslate}} </span> <a rel=\"external\" href=\"{{ data.contactDetails.contactLink }}\">{{ data.contactDetails.name }}</a></div>\n <div class=\"phone\" *ngIf=\"data.phone\"><span class=\"govuk-!-font-weight-bold\">{{'Phone:' | rpxTranslate}} </span>{{ data.phone }}</div>\n <div class=\"opening-times\" *ngIf=\"data.openingTimes\"><span class=\"govuk-!-font-weight-bold\">{{'Opening times:' | rpxTranslate }} </span>{{ data.openingTimes}}</div>\n</div>", styles: [".contact-details{margin-top:30px}.contact-details h3,.contact-details p{margin-bottom:10px}\n"] }]
119
+ }], () => [], { data: [{
120
+ type: Input
121
+ }] }); })();
122
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ContactDetailsComponent, { className: "ContactDetailsComponent", filePath: "lib/components/contact-details/contact-details.component.ts", lineNumber: 9 }); })();
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvbnRhY3QtZGV0YWlscy9jb250YWN0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0lDQy9DLDZCQUErQztJQUFBLFlBQWdCO0lBQUEsaUJBQUs7OztJQUFyQixjQUFnQjtJQUFoQix1Q0FBZ0I7OztJQUNyQyxBQUExQix5QkFBMEIsY0FBc0Q7SUFBQSxZQUFvQjtJQUFPLEFBQVAsaUJBQU8sRUFBSTs7O0lBQS9FLGNBQStDO0lBQS9DLG9FQUErQztJQUFDLGNBQW9CO0lBQXBCLDJDQUFvQjs7O0lBQzlELEFBQXRDLCtCQUFzQyxlQUF1QztJQUFBLFlBQTRCOztJQUFBLGlCQUFPO0lBQUMsNkJBQWtDO0lBQUEsWUFBZ0I7SUFBSSxBQUFKLGlCQUFJLEVBQU07OztJQUFoRyxlQUE0QjtJQUE1Qiw4REFBNEI7SUFBVyxlQUE4QjtJQUE5QixxRkFBOEI7SUFBQyxjQUFnQjtJQUFoQix1Q0FBZ0I7OztJQUMzRyxBQUF4RCwrQkFBd0QsZUFBdUM7SUFBQSxZQUE4Qjs7SUFBQSxpQkFBTztJQUFDLDZCQUErRDtJQUFBLFlBQThCO0lBQUksQUFBSixpQkFBSSxFQUFNOzs7SUFBN0ksZUFBOEI7SUFBOUIsZ0VBQThCO0lBQTBCLGVBQTRDO0lBQTVDLDBGQUE0QztJQUFDLGNBQThCO0lBQTlCLHFEQUE4Qjs7O0lBQzVMLEFBQXRDLCtCQUFzQyxlQUF1QztJQUFBLFlBQTRCOztJQUFBLGlCQUFPO0lBQUEsWUFBZ0I7SUFBQSxpQkFBTTs7O0lBQXpELGVBQTRCO0lBQTVCLDhEQUE0QjtJQUFPLGVBQWdCO0lBQWhCLHVDQUFnQjs7O0lBQzNFLEFBQXJELCtCQUFxRCxlQUF1QztJQUFBLFlBQXFDOztJQUFBLGlCQUFPO0lBQUEsWUFBc0I7SUFBQSxpQkFBTTs7O0lBQXhFLGVBQXFDO0lBQXJDLHNFQUFxQztJQUFPLGVBQXNCO0lBQXRCLDhDQUFzQjs7O0lBTmhLLDhCQUEwQztJQU14QyxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsNEVBQStDLDZEQUNyQixpRUFDWSxpRUFDa0IsaUVBQ2xCLGlFQUNlO0lBQ3ZELGlCQUFNOzs7SUFOeUIsY0FBZ0I7SUFBaEIsd0NBQWdCO0lBQ3pDLGNBQW9CO0lBQXBCLDRDQUFvQjtJQUNKLGNBQWdCO0lBQWhCLHdDQUFnQjtJQUNQLGNBQXlCO0lBQXpCLGlEQUF5QjtJQUNsQyxjQUFnQjtJQUFoQix3Q0FBZ0I7SUFDUixjQUF1QjtJQUF2QiwrQ0FBdUI7O0FERXJELE1BQU0sT0FBTyx1QkFBdUI7SUFJaEM7SUFDQSxDQUFDO3dIQUxRLHVCQUF1QjtvRUFBdkIsdUJBQXVCO1lDUnBDLHdFQUEwQzs7WUFBWiwrQkFBVTs7O2lGRFEzQix1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDSSx3QkFBd0I7b0JBTWxCLElBQUk7a0JBQW5CLEtBQUs7O2tGQUZHLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRhY3REZXRhaWxzRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd4dWlsaWItY29udGFjdC1kZXRhaWxzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnY29udGFjdC1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29udGFjdERldGFpbHNDb21wb25lbnQge1xuXG4gICAgQElucHV0KCkgcHVibGljIGRhdGE6IENvbnRhY3REZXRhaWxzRGF0YU1vZGVsO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhY3QtZGV0YWlsc1wiICpuZ0lmPVwiZGF0YVwiPlxuICA8aDMgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLW1cIiAqbmdJZj1cImRhdGEudGl0bGVcIj57eyBkYXRhLnRpdGxlIH19PC9oMz5cbiAgPHAgKm5nSWY9XCJkYXRhLmJhZGdlVGV4dFwiPjxzcGFuIFtjbGFzc05hbWVdPVwiJ2htY3RzLWJhZGdlICcgKyBkYXRhLmJhZGdlQ29sb3VyXCI+e3sgZGF0YS5iYWRnZVRleHQgfX08L3NwYW4+PC9wPlxuICA8ZGl2IGNsYXNzPVwiZW1haWxcIiAqbmdJZj1cImRhdGEuZW1haWxcIj48c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7J0VtYWlsOicgfCBycHhUcmFuc2xhdGV9fSA8L3NwYW4+IDxhIGhyZWY9XCJtYWlsdG86e3sgZGF0YS5lbWFpbCB9fVwiPnt7IGRhdGEuZW1haWwgfX08L2E+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb250YWN0RGV0YWlsc1wiICpuZ0lmPVwiZGF0YS5jb250YWN0RGV0YWlsc1wiPjxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3snQ29udGFjdDonIHwgcnB4VHJhbnNsYXRlfX0gPC9zcGFuPiA8YSByZWw9XCJleHRlcm5hbFwiIGhyZWY9XCJ7eyBkYXRhLmNvbnRhY3REZXRhaWxzLmNvbnRhY3RMaW5rIH19XCI+e3sgZGF0YS5jb250YWN0RGV0YWlscy5uYW1lIH19PC9hPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicGhvbmVcIiAqbmdJZj1cImRhdGEucGhvbmVcIj48c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7J1Bob25lOicgfCBycHhUcmFuc2xhdGV9fSA8L3NwYW4+e3sgZGF0YS5waG9uZSB9fTwvZGl2PlxuICA8ZGl2IGNsYXNzPVwib3BlbmluZy10aW1lc1wiICpuZ0lmPVwiZGF0YS5vcGVuaW5nVGltZXNcIj48c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7J09wZW5pbmcgdGltZXM6JyB8IHJweFRyYW5zbGF0ZSB9fSA8L3NwYW4+e3sgZGF0YS5vcGVuaW5nVGltZXN9fTwvZGl2PlxuPC9kaXY+Il19
@@ -0,0 +1,151 @@
1
+ import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
2
+ import { CookieService } from '../../services/cookie/cookie.service';
3
+ import { windowToken } from '../../window';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../services/cookie/cookie.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/router";
8
+ import * as i4 from "rpx-xui-translation";
9
+ function CookieBannerComponent_div_0_Template(rf, ctx) { if (rf & 1) {
10
+ const _r1 = i0.ɵɵgetCurrentView();
11
+ i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3)(3, "div", 4)(4, "h2", 5);
12
+ i0.ɵɵtext(5);
13
+ i0.ɵɵpipe(6, "rpxTranslate");
14
+ i0.ɵɵpipe(7, "rpxTranslate");
15
+ i0.ɵɵelementEnd();
16
+ i0.ɵɵelementStart(8, "div", 6)(9, "p");
17
+ i0.ɵɵtext(10);
18
+ i0.ɵɵpipe(11, "rpxTranslate");
19
+ i0.ɵɵelementEnd();
20
+ i0.ɵɵelementStart(12, "p");
21
+ i0.ɵɵtext(13);
22
+ i0.ɵɵpipe(14, "rpxTranslate");
23
+ i0.ɵɵelementEnd()()()();
24
+ i0.ɵɵelementStart(15, "div", 7)(16, "button", 8);
25
+ i0.ɵɵlistener("click", function CookieBannerComponent_div_0_Template_button_click_16_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.acceptCookie()); });
26
+ i0.ɵɵtext(17);
27
+ i0.ɵɵpipe(18, "rpxTranslate");
28
+ i0.ɵɵelementEnd();
29
+ i0.ɵɵelementStart(19, "button", 9);
30
+ i0.ɵɵlistener("click", function CookieBannerComponent_div_0_Template_button_click_19_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.rejectCookie()); });
31
+ i0.ɵɵtext(20);
32
+ i0.ɵɵpipe(21, "rpxTranslate");
33
+ i0.ɵɵelementEnd();
34
+ i0.ɵɵelementStart(22, "a", 10);
35
+ i0.ɵɵtext(23);
36
+ i0.ɵɵpipe(24, "rpxTranslate");
37
+ i0.ɵɵelementEnd()()()();
38
+ } if (rf & 2) {
39
+ const ctx_r1 = i0.ɵɵnextContext();
40
+ i0.ɵɵattributeInterpolate1("aria-label", "'Cookies on ", ctx_r1.appName, "'");
41
+ i0.ɵɵadvance(5);
42
+ i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(6, 9, "Cookies on"), " ", i0.ɵɵpipeBind1(7, 11, ctx_r1.appName), "");
43
+ i0.ɵɵadvance(5);
44
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(11, 13, "We use some essential cookies to make this service work."));
45
+ i0.ɵɵadvance(3);
46
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(14, 15, "We'd also like to use analytics cookies so we can understand how you use the service and make improvements."));
47
+ i0.ɵɵadvance(4);
48
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 17, "Accept analytics cookies"), " ");
49
+ i0.ɵɵadvance(3);
50
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(21, 19, "Reject analytics cookies"), " ");
51
+ i0.ɵɵadvance(3);
52
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(24, 21, "View cookies"));
53
+ } }
54
+ export class CookieBannerComponent {
55
+ constructor(cookieService, window) {
56
+ this.cookieService = cookieService;
57
+ this.enableDynatrace = false;
58
+ this.rejectionNotifier = new EventEmitter();
59
+ this.acceptanceNotifier = new EventEmitter();
60
+ this.isCookieBannerVisible = false;
61
+ this.window = window;
62
+ }
63
+ ngOnInit() {
64
+ this.setState();
65
+ }
66
+ acceptCookie() {
67
+ this.cookieService.setCookie(this.identifier, 'true', this.getExpiryDate());
68
+ this.setState(true);
69
+ }
70
+ rejectCookie() {
71
+ this.cookieService.setCookie(this.identifier, 'false', this.getExpiryDate());
72
+ this.setState(true);
73
+ }
74
+ setState(reload = false) {
75
+ this.isCookieBannerVisible = !this.cookieService.checkCookie(this.identifier);
76
+ if (this.areCookiesAccepted()) {
77
+ this.notifyAcceptance();
78
+ }
79
+ else {
80
+ this.notifyRejection();
81
+ }
82
+ if (reload) { // reload if any of the buttons are pressed
83
+ this.window.location.reload();
84
+ }
85
+ }
86
+ areCookiesAccepted() {
87
+ return this.cookieService.checkCookie(this.identifier) && this.cookieService.getCookie(this.identifier) === 'true';
88
+ }
89
+ notifyRejection() {
90
+ this.rejectionNotifier.emit();
91
+ }
92
+ notifyAcceptance() {
93
+ if (this.enableDynatrace) {
94
+ if (this.window.hasOwnProperty('dtrum')) {
95
+ // @ts-ignore
96
+ const dtrum = this.window['dtrum'];
97
+ if (dtrum) {
98
+ try {
99
+ dtrum.enable();
100
+ dtrum.enableSessionReplay(true);
101
+ }
102
+ catch (e) {
103
+ console.error('Error enabling DynaTrace', e);
104
+ }
105
+ }
106
+ else {
107
+ console.info("DynaTrace not enabled on the server");
108
+ }
109
+ }
110
+ else {
111
+ console.info("DynaTrace not enabled on the server");
112
+ }
113
+ }
114
+ else {
115
+ console.info("Dyntrace RUM not enabled via component parameter");
116
+ }
117
+ this.acceptanceNotifier.emit();
118
+ }
119
+ getExpiryDate() {
120
+ const now = new Date();
121
+ const time = now.getTime();
122
+ const expireTime = time + 31536000000; // in 365 days = 3600 * 1000 * 24 * 365
123
+ now.setTime(expireTime);
124
+ return now.toUTCString();
125
+ }
126
+ static { this.ɵfac = function CookieBannerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CookieBannerComponent)(i0.ɵɵdirectiveInject(i1.CookieService), i0.ɵɵdirectiveInject(windowToken)); }; }
127
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CookieBannerComponent, selectors: [["xuilib-cookie-banner"]], inputs: { identifier: "identifier", appName: "appName", enableDynatrace: "enableDynatrace" }, outputs: { rejectionNotifier: "rejectionNotifier", acceptanceNotifier: "acceptanceNotifier" }, decls: 1, vars: 1, consts: [["class", "govuk-cookie-banner ", "role", "region", 4, "ngIf"], ["role", "region", 1, "govuk-cookie-banner"], [1, "govuk-cookie-banner__message", "govuk-width-container"], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds"], [1, "govuk-cookie-banner__heading", "govuk-heading-m"], [1, "govuk-cookie-banner__content"], [1, "govuk-button-group"], ["value", "accept", "type", "button", "name", "cookies", "data-module", "govuk-button", 1, "govuk-button", 3, "click"], ["value", "reject", "type", "button", "name", "cookies", "data-module", "govuk-button", 1, "govuk-button", 3, "click"], ["routerLink", "/cookies", 1, "govuk-link"]], template: function CookieBannerComponent_Template(rf, ctx) { if (rf & 1) {
128
+ i0.ɵɵtemplate(0, CookieBannerComponent_div_0_Template, 25, 23, "div", 0);
129
+ } if (rf & 2) {
130
+ i0.ɵɵproperty("ngIf", ctx.isCookieBannerVisible);
131
+ } }, dependencies: [i2.NgIf, i3.RouterLink, i4.RpxTranslatePipe], encapsulation: 2 }); }
132
+ }
133
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CookieBannerComponent, [{
134
+ type: Component,
135
+ args: [{ selector: 'xuilib-cookie-banner', template: "<div class=\"govuk-cookie-banner \" role=\"region\" attr.aria-label=\"'Cookies on {{appName}}'\" *ngIf=\"isCookieBannerVisible\">\n <div class=\"govuk-cookie-banner__message govuk-width-container\">\n\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <h2 class=\"govuk-cookie-banner__heading govuk-heading-m\">{{'Cookies on' | rpxTranslate}} {{appName | rpxTranslate}}</h2>\n\n <div class=\"govuk-cookie-banner__content\">\n <p>{{'We use some essential cookies to make this service work.' | rpxTranslate}}</p>\n <p>{{'We\\'d also like to use analytics cookies so we can understand how you use the service and make improvements.' | rpxTranslate}}</p>\n </div>\n </div>\n </div>\n\n <div class=\"govuk-button-group\">\n <button value=\"accept\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"acceptCookie()\">\n {{'Accept analytics cookies' | rpxTranslate}}\n </button>\n <button value=\"reject\" type=\"button\" name=\"cookies\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"rejectCookie()\">\n {{'Reject analytics cookies' | rpxTranslate}}\n </button>\n <a class=\"govuk-link\" routerLink=\"/cookies\">{{'View cookies' | rpxTranslate}}</a>\n </div>\n </div>\n</div>\n" }]
136
+ }], () => [{ type: i1.CookieService }, { type: undefined, decorators: [{
137
+ type: Inject,
138
+ args: [windowToken]
139
+ }] }], { identifier: [{
140
+ type: Input
141
+ }], appName: [{
142
+ type: Input
143
+ }], enableDynatrace: [{
144
+ type: Input
145
+ }], rejectionNotifier: [{
146
+ type: Output
147
+ }], acceptanceNotifier: [{
148
+ type: Output
149
+ }] }); })();
150
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CookieBannerComponent, { className: "CookieBannerComponent", filePath: "lib/components/cookie-banner/cookie-banner.component.ts", lineNumber: 10 }); })();
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLWJhbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Nvb2tpZS1iYW5uZXIvY29va2llLWJhbm5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL2Nvb2tpZS1iYW5uZXIvY29va2llLWJhbm5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7SUNHbkMsQUFERixBQURGLEFBRkYsQUFERiw4QkFBeUgsYUFDdkQsYUFFbEMsYUFDZ0IsWUFDaUI7SUFBQSxZQUEwRDs7O0lBQUEsaUJBQUs7SUFHdEgsQUFERiw4QkFBMEMsUUFDckM7SUFBQSxhQUE2RTs7SUFBQSxpQkFBSTtJQUNwRiwwQkFBRztJQUFBLGFBQWlJOztJQUcxSSxBQURFLEFBREUsQUFEc0ksaUJBQUksRUFDcEksRUFDRixFQUNGO0lBR0osQUFERiwrQkFBZ0MsaUJBQytGO0lBQXpCLGtMQUFTLHFCQUFjLEtBQUM7SUFDMUgsYUFDRjs7SUFBQSxpQkFBUztJQUNULGtDQUE2SDtJQUF6QixrTEFBUyxxQkFBYyxLQUFDO0lBQzFILGFBQ0Y7O0lBQUEsaUJBQVM7SUFDVCw4QkFBNEM7SUFBQSxhQUFpQzs7SUFHbkYsQUFERSxBQURFLEFBRCtFLGlCQUFJLEVBQzdFLEVBQ0YsRUFDRjs7O0lBeEIwQyw2RUFBMEM7SUFLekIsZUFB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QkFDdEQsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7WUFDdEQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLFdBQVcsQ0FBQyxDQUFFLHdDQUF3QztRQUNoRixHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7c0hBbkZVLHFCQUFxQiwrREFZdEIsV0FBVztvRUFaVixxQkFBcUI7WUNUbEMsd0VBQXlIOztZQUE3QixnREFBMkI7OztpRkRTMUcscUJBQXFCO2NBTGpDLFNBQVM7MkJBQ0ksc0JBQXNCOztzQkFnQi9CLE1BQU07dUJBQUMsV0FBVztxQkFYTCxVQUFVO2tCQUF6QixLQUFLO1lBQ1UsT0FBTztrQkFBdEIsS0FBSztZQUNVLGVBQWU7a0JBQTlCLEtBQUs7WUFDVyxpQkFBaUI7a0JBQWpDLE1BQU07WUFDVSxrQkFBa0I7a0JBQWxDLE1BQU07O2tGQUxJLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nvb2tpZS9jb29raWUuc2VydmljZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uL3dpbmRvdyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAneHVpbGliLWNvb2tpZS1iYW5uZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb29raWUtYmFubmVyLmNvbXBvbmVudC5odG1sJ1xufSlcblxuZXhwb3J0IGNsYXNzIENvb2tpZUJhbm5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZGVudGlmaWVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhcHBOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVEeW5hdHJhY2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHB1YmxpYyByZWplY3Rpb25Ob3RpZmllciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcHVibGljIGFjY2VwdGFuY2VOb3RpZmllciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHB1YmxpYyBpc0Nvb2tpZUJhbm5lclZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHdpbmRvdzogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogQ29va2llU2VydmljZSxcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSB3aW5kb3c6IGFueSxcbiAgKSB7XG4gICAgdGhpcy53aW5kb3cgPSB3aW5kb3c7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTdGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIGFjY2VwdENvb2tpZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0Q29va2llKHRoaXMuaWRlbnRpZmllciwgJ3RydWUnLCB0aGlzLmdldEV4cGlyeURhdGUoKSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyByZWplY3RDb29raWUoKTogdm9pZCB7XG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldENvb2tpZSh0aGlzLmlkZW50aWZpZXIsICdmYWxzZScsIHRoaXMuZ2V0RXhwaXJ5RGF0ZSgpKTtcbiAgICB0aGlzLnNldFN0YXRlKHRydWUpO1xuICB9XG5cbiAgcHVibGljIHNldFN0YXRlKHJlbG9hZDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgdGhpcy5pc0Nvb2tpZUJhbm5lclZpc2libGUgPSAhdGhpcy5jb29raWVTZXJ2aWNlLmNoZWNrQ29va2llKHRoaXMuaWRlbnRpZmllcik7XG5cbiAgICBpZiAodGhpcy5hcmVDb29raWVzQWNjZXB0ZWQoKSkge1xuICAgICAgdGhpcy5ub3RpZnlBY2NlcHRhbmNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm90aWZ5UmVqZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKHJlbG9hZCkgeyAvLyByZWxvYWQgaWYgYW55IG9mIHRoZSBidXR0b25zIGFyZSBwcmVzc2VkXG4gICAgICB0aGlzLndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXJlQ29va2llc0FjY2VwdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvb2tpZVNlcnZpY2UuY2hlY2tDb29raWUodGhpcy5pZGVudGlmaWVyKSAmJiB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0Q29va2llKHRoaXMuaWRlbnRpZmllcikgPT09ICd0cnVlJztcbiAgfVxuXG4gIHB1YmxpYyBub3RpZnlSZWplY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5yZWplY3Rpb25Ob3RpZmllci5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgbm90aWZ5QWNjZXB0YW5jZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmFibGVEeW5hdHJhY2UpIHtcbiAgICAgIGlmICh0aGlzLndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgnZHRydW0nKSkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIGNvbnN0IGR0cnVtID0gdGhpcy53aW5kb3dbJ2R0cnVtJ107XG4gICAgICAgIGlmIChkdHJ1bSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkdHJ1bS5lbmFibGUoKTtcbiAgICAgICAgICAgIGR0cnVtLmVuYWJsZVNlc3Npb25SZXBsYXkodHJ1ZSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZW5hYmxpbmcgRHluYVRyYWNlJywgZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuaW5mbyhcIkR5bmFUcmFjZSBub3QgZW5hYmxlZCBvbiB0aGUgc2VydmVyXCIpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmluZm8oXCJEeW5hVHJhY2Ugbm90IGVuYWJsZWQgb24gdGhlIHNlcnZlclwiKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5pbmZvKFwiRHludHJhY2UgUlVNIG5vdCBlbmFibGVkIHZpYSBjb21wb25lbnQgcGFyYW1ldGVyXCIpO1xuICAgIH1cbiAgICB0aGlzLmFjY2VwdGFuY2VOb3RpZmllci5lbWl0KCk7XG4gIH1cblxuICBwcml2YXRlIGdldEV4cGlyeURhdGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHRpbWUgPSBub3cuZ2V0VGltZSgpO1xuICAgIGNvbnN0IGV4cGlyZVRpbWUgPSB0aW1lICsgMzE1MzYwMDAwMDA7ICAvLyAgaW4gMzY1IGRheXMgPSAzNjAwICogMTAwMCAqIDI0ICogMzY1XG4gICAgbm93LnNldFRpbWUoZXhwaXJlVGltZSk7XG4gICAgcmV0dXJuIG5vdy50b1VUQ1N0cmluZygpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJnb3Z1ay1jb29raWUtYmFubmVyIFwiIHJvbGU9XCJyZWdpb25cIiBhdHRyLmFyaWEtbGFiZWw9XCInQ29va2llcyBvbiB7e2FwcE5hbWV9fSdcIiAqbmdJZj1cImlzQ29va2llQmFubmVyVmlzaWJsZVwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstY29va2llLWJhbm5lcl9fbWVzc2FnZSBnb3Z1ay13aWR0aC1jb250YWluZXJcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLXR3by10aGlyZHNcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZ292dWstY29va2llLWJhbm5lcl9faGVhZGluZyBnb3Z1ay1oZWFkaW5nLW1cIj57eydDb29raWVzIG9uJyB8IHJweFRyYW5zbGF0ZX19IHt7YXBwTmFtZSB8IHJweFRyYW5zbGF0ZX19PC9oMj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY29va2llLWJhbm5lcl9fY29udGVudFwiPlxuICAgICAgICAgIDxwPnt7J1dlIHVzZSBzb21lIGVzc2VudGlhbCBjb29raWVzIHRvIG1ha2UgdGhpcyBzZXJ2aWNlIHdvcmsuJyB8IHJweFRyYW5zbGF0ZX19PC9wPlxuICAgICAgICAgIDxwPnt7J1dlXFwnZCBhbHNvIGxpa2UgdG8gdXNlIGFuYWx5dGljcyBjb29raWVzIHNvIHdlIGNhbiB1bmRlcnN0YW5kIGhvdyB5b3UgdXNlIHRoZSBzZXJ2aWNlIGFuZCBtYWtlIGltcHJvdmVtZW50cy4nIHwgcnB4VHJhbnNsYXRlfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uIHZhbHVlPVwiYWNjZXB0XCIgdHlwZT1cImJ1dHRvblwiIG5hbWU9XCJjb29raWVzXCIgY2xhc3M9XCJnb3Z1ay1idXR0b25cIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiIChjbGljayk9XCJhY2NlcHRDb29raWUoKVwiPlxuICAgICAgICB7eydBY2NlcHQgYW5hbHl0aWNzIGNvb2tpZXMnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB2YWx1ZT1cInJlamVjdFwiIHR5cGU9XCJidXR0b25cIiBuYW1lPVwiY29va2llc1wiIGNsYXNzPVwiZ292dWstYnV0dG9uXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIiAoY2xpY2spPVwicmVqZWN0Q29va2llKClcIj5cbiAgICAgICAge3snUmVqZWN0IGFuYWx5dGljcyBjb29raWVzJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxhIGNsYXNzPVwiZ292dWstbGlua1wiIHJvdXRlckxpbms9XCIvY29va2llc1wiPnt7J1ZpZXcgY29va2llcycgfCBycHhUcmFuc2xhdGV9fTwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==