@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
@@ -1,28 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- export class PaginationComponent {
3
- constructor() {
4
- this.previousPage = new EventEmitter();
5
- this.nextPage = new EventEmitter();
6
- }
7
- onPrevious() {
8
- this.previousPage.emit(null);
9
- }
10
- onNext() {
11
- this.nextPage.emit(null);
12
- }
13
- }
14
- PaginationComponent.decorators = [
15
- { type: Component, args: [{
16
- selector: 'xuilib-pagination',
17
- template: "<nav class=\"hmcts-pagination\" id=\"pagination-label\">\n\n <p class=\"govuk-visually-hidden\" aria-labelledby=\"pagination-label\">Pagination navigation</p>\n\n <ul class=\"hmcts-pagination__list\">\n <li class=\"hmcts-pagination__item hmcts-pagination__item--prev\">\n <a *ngIf=\"firstRecord > 1; else noPrevious\" class=\"hmcts-pagination__link\" (click)=\"onPrevious()\" href=\"javascript:void(0)\">\n Previous page\n </a>\n <ng-template #noPrevious>\n <span class=\"hmcts-pagination__link\">Previous page</span>\n </ng-template>\n </li>\n\n <li class=\"hmcts-pagination__item hmcts-pagination__item--next\">\n <a *ngIf=\"moreItems; else noNext\" class=\"hmcts-pagination__link\" (click)=\"onNext()\" href=\"javascript:void(0)\">Next page</a>\n <ng-template #noNext>\n <span class=\"hmcts-pagination__link\">Next page</span>\n </ng-template>\n </li>\n </ul>\n</nav>\n",
18
- styles: ["span.hmcts-pagination__link:hover{color:revert}"]
19
- },] }
20
- ];
21
- PaginationComponent.ctorParameters = () => [];
22
- PaginationComponent.propDecorators = {
23
- moreItems: [{ type: Input }],
24
- firstRecord: [{ type: Input }],
25
- previousPage: [{ type: Output }],
26
- nextPage: [{ type: Output }]
27
- };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU92RSxNQUFNLE9BQU8sbUJBQW1CO0lBTzlCO1FBSGlCLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWxELENBQUM7SUFFVixVQUFVO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOzs7WUFwQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLDY3QkFBMEM7O2FBRTNDOzs7O3dCQUdFLEtBQUs7MEJBQ0wsS0FBSzsyQkFDTCxNQUFNO3VCQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItcGFnaW5hdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBtb3JlSXRlbXM6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBmaXJzdFJlY29yZDogbnVtYmVyO1xuICBAT3V0cHV0KCkgcHVibGljIHByZXZpb3VzUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgbmV4dFBhZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIG9uUHJldmlvdXMoKTogdm9pZCB7XG4gICAgdGhpcy5wcmV2aW91c1BhZ2UuZW1pdChudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgdGhpcy5uZXh0UGFnZS5lbWl0KG51bGwpO1xuICB9XG59XG4iXX0=
@@ -1,33 +0,0 @@
1
- export * from './accessibility/accessibility.component';
2
- export * from './checkbox-list/checkbox-list.component';
3
- export * from './contact-details/contact-details.component';
4
- export * from './due-date/due-date.component';
5
- export * from './generic-filter/generic-filter.component';
6
- export * from './hmcts-session-dialog/hmcts-session-dialog.component';
7
- export * from './invite-user-form/invite-user-form.component';
8
- export * from './invite-user-permissions/invite-user-permission.component';
9
- export * from './loading-spinner/loading-spinner.component';
10
- export * from './selected-case-confirm/selected-case-confirm.component';
11
- export * from './selected-case-list/selected-case-list.component';
12
- export * from './selected-case/selected-case.component';
13
- export * from './service-message/service-message.component';
14
- export * from './service-messages/service-messages.component';
15
- export * from './share-case-confirm/share-case-confirm.component';
16
- export * from './share-case/share-case.component';
17
- export * from './tab/tab.component';
18
- export * from './tc-confirm/tc-confirm.component';
19
- export * from './terms-and-conditions/tc-display/tc-display-html/tc-display-html.component';
20
- export * from './terms-and-conditions/tc-display/tc-display-plain/tc-display-plain.component';
21
- export * from './terms-and-conditions/terms-and-conditions.component';
22
- export * from './user-details/user-details.component';
23
- export * from './user-list/user-list.component';
24
- export * from './cookie-banner/cookie-banner.component';
25
- export * from './find-location/find-location.component';
26
- export * from './search-location/search-location.component';
27
- export * from './pagination/pagination.component';
28
- export * from './search-venue/search-venue.component';
29
- export * from './search-judicials/search-judicials.component';
30
- export * from './find-person/find-person.component';
31
- export * from './user-select/user-select.component';
32
- export * from './exui-main-wrapper/exui-page-wrapper.component';
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsK0VBQStFLENBQUM7QUFDOUYsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsaURBQWlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC1saXN0L2NoZWNrYm94LWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGFjdC1kZXRhaWxzL2NvbnRhY3QtZGV0YWlscy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kdWUtZGF0ZS9kdWUtZGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmljLWZpbHRlci9nZW5lcmljLWZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9obWN0cy1zZXNzaW9uLWRpYWxvZy9obWN0cy1zZXNzaW9uLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnZpdGUtdXNlci1mb3JtL2ludml0ZS11c2VyLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW52aXRlLXVzZXItcGVybWlzc2lvbnMvaW52aXRlLXVzZXItcGVybWlzc2lvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nLXNwaW5uZXIvbG9hZGluZy1zcGlubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGVkLWNhc2UtY29uZmlybS9zZWxlY3RlZC1jYXNlLWNvbmZpcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0ZWQtY2FzZS1saXN0L3NlbGVjdGVkLWNhc2UtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3RlZC1jYXNlL3NlbGVjdGVkLWNhc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1tZXNzYWdlL3NlcnZpY2UtbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlLW1lc3NhZ2VzL3NlcnZpY2UtbWVzc2FnZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2hhcmUtY2FzZS1jb25maXJtL3NoYXJlLWNhc2UtY29uZmlybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFyZS1jYXNlL3NoYXJlLWNhc2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGFiL3RhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi90Yy1jb25maXJtL3RjLWNvbmZpcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdGVybXMtYW5kLWNvbmRpdGlvbnMvdGMtZGlzcGxheS90Yy1kaXNwbGF5LWh0bWwvdGMtZGlzcGxheS1odG1sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Rlcm1zLWFuZC1jb25kaXRpb25zL3RjLWRpc3BsYXkvdGMtZGlzcGxheS1wbGFpbi90Yy1kaXNwbGF5LXBsYWluLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Rlcm1zLWFuZC1jb25kaXRpb25zL3Rlcm1zLWFuZC1jb25kaXRpb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItZGV0YWlscy91c2VyLWRldGFpbHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1saXN0L3VzZXItbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb29raWUtYmFubmVyL2Nvb2tpZS1iYW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmluZC1sb2NhdGlvbi9maW5kLWxvY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1sb2NhdGlvbi9zZWFyY2gtbG9jYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC12ZW51ZS9zZWFyY2gtdmVudWUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLWp1ZGljaWFscy9zZWFyY2gtanVkaWNpYWxzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3VzZXItc2VsZWN0L3VzZXItc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2V4dWktbWFpbi13cmFwcGVyL2V4dWktcGFnZS13cmFwcGVyLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,126 +0,0 @@
1
- import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { AbstractControl, FormArray, FormBuilder, FormControl } from '@angular/forms';
3
- import { Subject } from 'rxjs';
4
- import { debounceTime, mergeMap } from 'rxjs/operators';
5
- import { FindAPersonService } from '../../services/find-person/find-person.service';
6
- export class SearchJudicialsComponent {
7
- constructor(judicialService, fb) {
8
- this.judicialService = judicialService;
9
- this.disabled = null;
10
- this.selectedJudicials = [];
11
- this.submitted = true;
12
- this.placeholderContent = '';
13
- this.showAutocomplete = false;
14
- this.judicialChanged = new EventEmitter();
15
- this.idValue = '';
16
- this.errorMessage = 'You must select a name';
17
- this.serviceId = '';
18
- this.minSearchCharacters = 3;
19
- this.keyUpSubject$ = new Subject();
20
- this.searchInProgress = false;
21
- this.formGroup = fb.group({
22
- formControl: [null],
23
- selectedFormControl: [null]
24
- });
25
- }
26
- ngOnInit() {
27
- this.displayedJudicials = [];
28
- if (this.control) {
29
- if (this.formGroup && this.formGroup.controls) {
30
- this.formGroup.controls.selectedFormControl = this.control;
31
- this.formGroup.controls.formControl.setValue(this.getControlValueDisplayText());
32
- }
33
- }
34
- this.keyUpSubject$.pipe(debounceTime(500)).subscribe(searchValue => this.search(searchValue));
35
- }
36
- onKeyDown() {
37
- this.judicialChanged.emit();
38
- }
39
- onKeyUp(event) {
40
- this.showAutocomplete = false;
41
- this.keyUpSubject$.next(event.target.value);
42
- }
43
- onFocus() {
44
- this.showAutocomplete = false;
45
- }
46
- get displayedJudicialsDuplicationFiltered() {
47
- return this.displayedJudicials.filter(judicial => !this.selectedJudicials.map(selectedJudicial => selectedJudicial.idamId).includes(judicial.idamId));
48
- }
49
- filter(term) {
50
- this.searchJudicials(term, this.serviceId).pipe(mergeMap((apiData) => {
51
- const apiFilter = apiData.filter(apiJudicial => !this.selectedJudicials.map(selectedJudicial => selectedJudicial.idamId).includes(apiJudicial.idamId));
52
- this.displayedJudicials = apiFilter;
53
- this.searchInProgress = false;
54
- return apiFilter;
55
- })).subscribe(judicial => {
56
- if (term === judicial.fullName) {
57
- this.formGroup.controls.selectedFormControl.setValue(judicial);
58
- this.displayedJudicials = [];
59
- this.judicialChanged.emit(judicial);
60
- this.showAutocomplete = false;
61
- }
62
- this.searchInProgress = false;
63
- });
64
- }
65
- onSelectionChange(selection) {
66
- if (this.formGroup.controls.formControl instanceof FormArray) {
67
- this.formGroup.controls.selectedFormControl.push(new FormControl(selection.idamId));
68
- }
69
- else {
70
- this.formGroup.controls.selectedFormControl.setValue(selection);
71
- }
72
- this.judicialChanged.emit(selection);
73
- }
74
- search(currentValue) {
75
- this.searchInProgress = true;
76
- this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);
77
- if (!!currentValue) {
78
- this.formGroup.controls.selectedFormControl.markAsDirty();
79
- }
80
- else {
81
- this.formGroup.controls.selectedFormControl.reset();
82
- }
83
- if (this.showAutocomplete) {
84
- this.filter(currentValue);
85
- }
86
- else {
87
- this.searchInProgress = false;
88
- }
89
- }
90
- getDisplayName(selectedJudicial) {
91
- return `${selectedJudicial.fullName} (${selectedJudicial.emailId})`;
92
- }
93
- searchJudicials(term, serviceId) {
94
- return this.judicialService.searchJudicial(term, serviceId);
95
- }
96
- getControlValueDisplayText() {
97
- return this.formGroup && this.formGroup.controls && this.formGroup.controls.selectedFormControl.value ?
98
- this.getDisplayName(this.formGroup.controls.selectedFormControl.value) : '';
99
- }
100
- }
101
- SearchJudicialsComponent.decorators = [
102
- { type: Component, args: [{
103
- selector: 'xuilib-search-judicials',
104
- template: "<div class=\"govuk-form-group\">\n <input id=\"inputSelectPerson{{idValue}}\" [placeholder]=\"placeholderContent\" [formControl]=\"formGroup.controls.formControl\"\n [matAutocomplete]=\"autoComplete\" (keydown)=\"onKeyDown()\" (keyup)=\"onKeyUp($event)\" (focus)=\"onFocus()\"\n class=\"govuk-input\" [attr.disabled]=\"!disabled ? null: disabled\" [value]=\"getControlValueDisplayText()\"\n #inputSelection>\n <mat-autocomplete autoActiveFirstOption #autoComplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let judicial of displayedJudicialsDuplicationFiltered\" class=\"select-option\"\n [value]=\"getDisplayName(judicial)\" (onSelectionChange)=\"onSelectionChange(judicial)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(judicial) }}\n </mat-option>\n <mat-option class=\"select-option\"\n *ngIf=\"!displayedJudicialsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">\n {{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n</div>\n",
105
- styles: [".hide-autocomplete{display:none}.mat-option:hover{background:#2596be}.mat-option.select-option:hover{background:#1d70b8;color:#fff}"]
106
- },] }
107
- ];
108
- SearchJudicialsComponent.ctorParameters = () => [
109
- { type: FindAPersonService },
110
- { type: FormBuilder }
111
- ];
112
- SearchJudicialsComponent.propDecorators = {
113
- control: [{ type: Input }],
114
- disabled: [{ type: Input }],
115
- selectedJudicials: [{ type: Input }],
116
- submitted: [{ type: Input }],
117
- placeholderContent: [{ type: Input }],
118
- showAutocomplete: [{ type: Input }],
119
- displayedJudicials: [{ type: Input }],
120
- judicialChanged: [{ type: Output }],
121
- idValue: [{ type: Input }],
122
- errorMessage: [{ type: Input }],
123
- serviceId: [{ type: Input }],
124
- autoCompleteInputBox: [{ type: ViewChild, args: ['inputSelection', { read: ElementRef, static: true },] }]
125
- };
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWp1ZGljaWFscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC1qdWRpY2lhbHMvc2VhcmNoLWp1ZGljaWFscy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFPcEYsTUFBTSxPQUFPLHdCQUF3QjtJQW1CbkMsWUFBNkIsZUFBbUMsRUFBRSxFQUFlO1FBQXBELG9CQUFlLEdBQWYsZUFBZSxDQUFvQjtRQWhCaEQsYUFBUSxHQUFZLElBQUksQ0FBQztRQUN6QixzQkFBaUIsR0FBd0IsRUFBRSxDQUFDO1FBQzVDLGNBQVMsR0FBYSxJQUFJLENBQUM7UUFDM0IsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUVqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ3pELFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsaUJBQVksR0FBVyx3QkFBd0IsQ0FBQztRQUNoRCxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBR3RCLHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFvQixJ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QUVNLGNBQWMsQ0FBQyxnQkFBbUM7UUFDdkQsT0FBTyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsQ0FBQztJQUN0RSxDQUFDO0lBRU0sZUFBZSxDQUFDLElBQVksRUFBRSxTQUFpQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU0sMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEtBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3JHLENBQUM7OztZQXJIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsOGhDQUFnRDs7YUFFakQ7OztZQU5RLGtCQUFrQjtZQUpVLFdBQVc7OztzQkFhN0MsS0FBSzt1QkFDTCxLQUFLO2dDQUNMLEtBQUs7d0JBQ0wsS0FBSztpQ0FDTCxLQUFLOytCQUNMLEtBQUs7aUNBQ0wsS0FBSzs4QkFDTCxNQUFNO3NCQUNOLEtBQUs7MkJBQ0wsS0FBSzt3QkFDTCxLQUFLO21DQUNMLFNBQVMsU0FBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEp1ZGljaWFsVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpbmRBUGVyc29uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItc2VhcmNoLWp1ZGljaWFscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtanVkaWNpYWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWp1ZGljaWFscy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEp1ZGljaWFsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGVkSnVkaWNpYWxzOiBKdWRpY2lhbFVzZXJNb2RlbFtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzdWJtaXR0ZWQ/OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyQ29udGVudDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5ZWRKdWRpY2lhbHM6IEp1ZGljaWFsVXNlck1vZGVsW107XG4gIEBPdXRwdXQoKSBwdWJsaWMganVkaWNpYWxDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxKdWRpY2lhbFVzZXJNb2RlbD4oKTtcbiAgQElucHV0KCkgcHVibGljIGlkVmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnWW91IG11c3Qgc2VsZWN0IGEgbmFtZSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlSWQ6IHN0cmluZyA9ICcnO1xuICBAVmlld0NoaWxkKCdpbnB1dFNlbGVjdGlvbicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBhdXRvQ29tcGxldGVJbnB1dEJveDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgcHVibGljIHNlbGVjdGVkSnVkaWNpYWw6IEp1ZGljaWFsVXNlck1vZGVsO1xuICBwcml2YXRlIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAzO1xuICBwdWJsaWMga2V5VXBTdWJqZWN0JDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHNlYXJjaEluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGp1ZGljaWFsU2VydmljZTogRmluZEFQZXJzb25TZXJ2aWNlLCBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IGZiLmdyb3VwKHtcbiAgICAgIGZvcm1Db250cm9sOiBbbnVsbF0sXG4gICAgICBzZWxlY3RlZEZvcm1Db250cm9sOiBbbnVsbF1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BsYXllZEp1ZGljaWFscyA9IFtdO1xuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGlmICh0aGlzLmZvcm1Hcm91cCAmJiB0aGlzLmZvcm1Hcm91cC5jb250cm9scykge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zZWxlY3RlZEZvcm1Db250cm9sID0gdGhpcy5jb250cm9sO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmdldENvbnRyb2xWYWx1ZURpc3BsYXlUZXh0KCkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmtleVVwU3ViamVjdCQucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKHNlYXJjaFZhbHVlID0+IHRoaXMuc2VhcmNoKHNlYXJjaFZhbHVlIGFzIHN0cmluZykpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmp1ZGljaWFsQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcChldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgdGhpcy5rZXlVcFN1YmplY3QkLm5leHQoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKCkge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5ZWRKdWRpY2lhbHNEdXBsaWNhdGlvbkZpbHRlcmVkKCk6IEp1ZGljaWFsVXNlck1vZGVsW10ge1xuICAgIHJldHVybiB0aGlzLmRpc3BsYXllZEp1ZGljaWFscy5maWx0ZXIoXG4gICAgICBqdWRpY2lhbCA9PiAhdGhpcy5zZWxlY3RlZEp1ZGljaWFscy5tYXAoc2VsZWN0ZWRKdWRpY2lhbCA9PiBzZWxlY3RlZEp1ZGljaWFsLmlkYW1JZCkuaW5jbHVkZXMoanVkaWNpYWwuaWRhbUlkKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoSnVkaWNpYWxzKHRlcm0sIHRoaXMuc2VydmljZUlkKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGFwaURhdGE6IEp1ZGljaWFsVXNlck1vZGVsW10pID0+IHtcbiAgICAgICAgY29uc3QgYXBpRmlsdGVyID0gYXBpRGF0YS5maWx0ZXIoXG4gICAgICAgICAgYXBpSnVkaWNpYWwgPT4gIXRoaXMuc2VsZWN0ZWRKdWRpY2lhbHMubWFwKHNlbGVjdGVkSnVkaWNpYWwgPT4gc2VsZWN0ZWRKdWRpY2lhbC5pZGFtSWQpLmluY2x1ZGVzKGFwaUp1ZGljaWFsLmlkYW1JZClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRKdWRpY2lhbHMgPSBhcGlGaWx0ZXI7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gYXBpRmlsdGVyO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZShqdWRpY2lhbCA9PiB7XG4gICAgICBpZiAodGVybSA9PT0ganVkaWNpYWwuZnVsbE5hbWUpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbC5zZXRWYWx1ZShqdWRpY2lhbCk7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkSnVkaWNpYWxzID0gW107XG4gICAgICAgIHRoaXMuanVkaWNpYWxDaGFuZ2VkLmVtaXQoanVkaWNpYWwpO1xuICAgICAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbj86IEp1ZGljaWFsVXNlck1vZGVsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbCBhcyBGb3JtQXJyYXkpLnB1c2gobmV3IEZvcm1Db250cm9sKHNlbGVjdGlvbi5pZGFtSWQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbC5zZXRWYWx1ZShzZWxlY3Rpb24pO1xuICAgIH1cbiAgICB0aGlzLmp1ZGljaWFsQ2hhbmdlZC5lbWl0KHNlbGVjdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKGN1cnJlbnRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSAhIWN1cnJlbnRWYWx1ZSAmJiAoY3VycmVudFZhbHVlLmxlbmd0aCA+PSB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpO1xuICAgIGlmICghIWN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc2VsZWN0ZWRGb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zZWxlY3RlZEZvcm1Db250cm9sLnJlc2V0KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3dBdXRvY29tcGxldGUpIHtcbiAgICAgIHRoaXMuZmlsdGVyKGN1cnJlbnRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXREaXNwbGF5TmFtZShzZWxlY3RlZEp1ZGljaWFsOiBKdWRpY2lhbFVzZXJNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3NlbGVjdGVkSnVkaWNpYWwuZnVsbE5hbWV9ICgke3NlbGVjdGVkSnVkaWNpYWwuZW1haWxJZH0pYDtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hKdWRpY2lhbHModGVybTogc3RyaW5nLCBzZXJ2aWNlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SnVkaWNpYWxVc2VyTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmp1ZGljaWFsU2VydmljZS5zZWFyY2hKdWRpY2lhbCh0ZXJtLCBzZXJ2aWNlSWQpO1xuICB9XG5cbiAgcHVibGljIGdldENvbnRyb2xWYWx1ZURpc3BsYXlUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzICYmIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnNlbGVjdGVkRm9ybUNvbnRyb2wudmFsdWUgP1xuICAgICAgdGhpcy5nZXREaXNwbGF5TmFtZSh0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlIGFzIEp1ZGljaWFsVXNlck1vZGVsKSA6ICcnO1xuICB9XG59XG4iXX0=
@@ -1,133 +0,0 @@
1
- import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { AbstractControl, FormBuilder, FormGroup } from '@angular/forms';
3
- import { debounceTime, filter, map, mergeMap, tap } from 'rxjs/operators';
4
- import { BookingCheckType } from '../../models';
5
- import { LocationService } from '../../services/locations/location.service';
6
- import { SessionStorageService } from '../../services/session-storage/session-storage.service';
7
- export class SearchLocationComponent {
8
- constructor(locationService, sessionStorageService, fb, cd) {
9
- this.locationService = locationService;
10
- this.sessionStorageService = sessionStorageService;
11
- this.fb = fb;
12
- this.cd = cd;
13
- this.disabled = null;
14
- this.singleMode = false;
15
- this.locationType = '';
16
- this.serviceIds = '';
17
- this.submitted = true;
18
- this.delay = 500;
19
- this.showAutocomplete = false;
20
- this.locations = [];
21
- this.locationSelected = new EventEmitter();
22
- this.locationInputChanged = new EventEmitter();
23
- this.searchLocationChanged = new EventEmitter();
24
- this.minSearchCharacters = 3;
25
- this.term = '';
26
- this.pSelectedLocations = [];
27
- this.pReset = true;
28
- this.form = this.fb.group({
29
- searchTerm: ['']
30
- });
31
- }
32
- get reset() {
33
- return this.pReset;
34
- }
35
- set reset(value) {
36
- this.pReset = value;
37
- this.resetSearchTerm();
38
- }
39
- get selectedLocations() {
40
- return this.pSelectedLocations;
41
- }
42
- set selectedLocations(value) {
43
- this.pSelectedLocations = value;
44
- }
45
- ngOnInit() {
46
- if (this.singleMode && this.selectedLocations.length > 0) {
47
- const location = this.selectedLocations[0];
48
- this.form.controls.searchTerm.patchValue(location.site_name, { emitEvent: false, onlySelf: true });
49
- }
50
- this.search();
51
- }
52
- filter(term) {
53
- this.getLocations(term).pipe(map((locations) => this.removeSelectedLocations(locations)));
54
- }
55
- onSelectionChange(location) {
56
- this.form.controls.searchTerm.patchValue(location.site_name, { emitEvent: false, onlySelf: true });
57
- this.locationSelected.emit(location);
58
- }
59
- search() {
60
- this.form.controls.searchTerm.valueChanges
61
- .pipe(tap((term) => this.locationInputChanged.next(term)), tap(() => this.locations = []), tap((term) => this.term = term), filter(term => !!term && term.length >= this.minSearchCharacters), debounceTime(this.delay), mergeMap(value => this.getLocations(value)), map((locations) => this.removeSelectedLocations(locations))).subscribe(locations => {
62
- this.locations = locations;
63
- this.cd.markForCheck();
64
- if (locations.length === 1 && this.term === locations[0].site_name && !this.singleMode) {
65
- this.locationSelected.emit(locations[0]);
66
- this.showAutocomplete = false;
67
- return;
68
- }
69
- this.showAutocomplete = true;
70
- });
71
- }
72
- onInput() {
73
- this.searchLocationChanged.emit();
74
- }
75
- getLocations(term) {
76
- let userLocations;
77
- let bookingLocations;
78
- // Booking type info - can create more
79
- // NO_CHECK - All work - Do not filter out locations - Default assumption
80
- // ONLY_BOOKINGS - My work - Try to only show base locations/booking locations
81
- // POSSIBLE_BOOKINGS - Create booking screen - Show only potential bookings
82
- if (this.bookingCheck === BookingCheckType.BOOKINGS_AND_BASE) {
83
- userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations'));
84
- bookingLocations = JSON.parse(this.sessionStorageService.getItem('bookingLocations'));
85
- }
86
- else if (this.bookingCheck === BookingCheckType.POSSIBLE_BOOKINGS) {
87
- userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations'));
88
- this.serviceIds = JSON.parse(this.sessionStorageService.getItem('bookableServices'));
89
- }
90
- return this.locationService.getAllLocations(this.serviceIds, this.locationType, term, userLocations, bookingLocations);
91
- }
92
- resetSearchTerm() {
93
- this.form.controls.searchTerm.patchValue('', { emitEvent: false, onlySelf: true });
94
- }
95
- removeSelectedLocations(locations) {
96
- if (this.singleMode) {
97
- return locations;
98
- }
99
- return locations.filter(location => !this.selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(location.epimms_id) && location.site_name);
100
- }
101
- }
102
- SearchLocationComponent.decorators = [
103
- { type: Component, args: [{
104
- selector: 'exui-search-location',
105
- template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputLocationSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchLocation\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of locations\"\n (onSelectionChange)=\"onSelectionChange(location)\">\n {{ location.site_name }}\n </mat-option>\n <mat-option *ngIf=\"!locations.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
106
- styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
107
- },] }
108
- ];
109
- SearchLocationComponent.ctorParameters = () => [
110
- { type: LocationService },
111
- { type: SessionStorageService },
112
- { type: FormBuilder },
113
- { type: ChangeDetectorRef }
114
- ];
115
- SearchLocationComponent.propDecorators = {
116
- control: [{ type: Input }],
117
- disabled: [{ type: Input }],
118
- singleMode: [{ type: Input }],
119
- locationType: [{ type: Input }],
120
- serviceIds: [{ type: Input }],
121
- submitted: [{ type: Input }],
122
- delay: [{ type: Input }],
123
- form: [{ type: Input }],
124
- showAutocomplete: [{ type: Input }],
125
- locations: [{ type: Input }],
126
- bookingCheck: [{ type: Input }],
127
- locationSelected: [{ type: Output }],
128
- locationInputChanged: [{ type: Output }],
129
- searchLocationChanged: [{ type: Output }],
130
- reset: [{ type: Input }],
131
- selectedLocations: [{ type: Input }]
132
- };
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWxvY2F0aW9uL3NlYXJjaC1sb2NhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBd0IsTUFBTSxjQUFjLENBQUM7QUFDckUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBTy9GLE1BQU0sT0FBTyx1QkFBdUI7SUFvQmxDLFlBQTZCLGVBQWdDLEVBQW1CLHFCQUE0QyxFQUFtQixFQUFlLEVBQW1CLEVBQXFCO1FBQXpLLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFtQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQW1CLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBbUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFsQnRMLGFBQVEsR0FBWSxJQUFJLENBQUM7UUFDekIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBYSxJQUFJLENBQUM7UUFDM0Is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LFFBQVEsQ0FBQyxTQUFTLENBQzNJLENBQUM7SUFDSixDQUFDOzs7WUE3SEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLGt2QkFBK0M7O2FBRWhEOzs7WUFQTyxlQUFlO1lBQ2QscUJBQXFCO1lBTkwsV0FBVztZQUQ1QixpQkFBaUI7OztzQkFldEIsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7MkJBQ0wsS0FBSzt5QkFDTCxLQUFLO3dCQUNMLEtBQUs7b0JBQ0wsS0FBSzttQkFDTCxLQUFLOytCQUNMLEtBQUs7d0JBQ0wsS0FBSzsyQkFDTCxLQUFLOytCQUNMLE1BQU07bUNBQ04sTUFBTTtvQ0FDTixNQUFNO29CQWdCTixLQUFLO2dDQVVMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7Qm9va2luZ0NoZWNrVHlwZSwgTG9jYXRpb25CeUVQSU1NU01vZGVsfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtMb2NhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvY2F0aW9ucy9sb2NhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Nlc3Npb24tc3RvcmFnZS9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V4dWktc2VhcmNoLWxvY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1sb2NhdGlvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaExvY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIHNpbmdsZU1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGxvY2F0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlSWRzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHN1Ym1pdHRlZD86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgZGVsYXk/OiBudW1iZXIgPSA1MDA7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBsb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBib29raW5nQ2hlY2s6IEJvb2tpbmdDaGVja1R5cGU7XG4gIEBPdXRwdXQoKSBwdWJsaWMgbG9jYXRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TG9jYXRpb25CeUVQSU1NU01vZGVsPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGxvY2F0aW9uSW5wdXRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgcHVibGljIHNlYXJjaExvY2F0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgbWluU2VhcmNoQ2hhcmFjdGVycyA9IDM7XG4gIHB1YmxpYyB0ZXJtOiBzdHJpbmcgPSAnJztcbiAgcHJpdmF0ZSBwU2VsZWN0ZWRMb2NhdGlvbnM6IGFueVtdID0gW107XG4gIHByaXZhdGUgcFJlc2V0OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGxvY2F0aW9uU2VydmljZTogTG9jYXRpb25TZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLCBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHNlYXJjaFRlcm06IFsnJ11cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVzZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucFJlc2V0O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXNldCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMucFJlc2V0ID0gdmFsdWU7XG4gICAgdGhpcy5yZXNldFNlYXJjaFRlcm0oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRMb2NhdGlvbnMoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLnBTZWxlY3RlZExvY2F0aW9ucztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRMb2NhdGlvbnModmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5wU2VsZWN0ZWRMb2NhdGlvbnMgPSB2YWx1ZTtcblxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNpbmdsZU1vZGUgJiYgdGhpcy5zZWxlY3RlZExvY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbnNbMF07XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHMuc2VhcmNoVGVybS5wYXRjaFZhbHVlKGxvY2F0aW9uLnNpdGVfbmFtZSwge2VtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlfSk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoKCk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZ2V0TG9jYXRpb25zKHRlcm0pLnBpcGUoXG4gICAgICBtYXAoKGxvY2F0aW9ucykgPT4gdGhpcy5yZW1vdmVTZWxlY3RlZExvY2F0aW9ucyhsb2NhdGlvbnMpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZShsb2NhdGlvbjogTG9jYXRpb25CeUVQSU1NU01vZGVsKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnNlYXJjaFRlcm0ucGF0Y2hWYWx1ZShsb2NhdGlvbi5zaXRlX25hbWUsIHtlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZX0pO1xuICAgIHRoaXMubG9jYXRpb25TZWxlY3RlZC5lbWl0KGxvY2F0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnNlYXJjaFRlcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCh0ZXJtKSA9PiB0aGlzLmxvY2F0aW9uSW5wdXRDaGFuZ2VkLm5leHQodGVybSkpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5sb2NhdGlvbnMgPSBbXSksXG4gICAgICAgIHRhcCgodGVybSkgPT4gdGhpcy50ZXJtID0gdGVybSksXG4gICAgICAgIGZpbHRlcih0ZXJtID0+ICEhdGVybSAmJiB0ZXJtLmxlbmd0aCA+PSB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpLFxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWxheSksXG4gICAgICAgIG1lcmdlTWFwKHZhbHVlID0+IHRoaXMuZ2V0TG9jYXRpb25zKHZhbHVlKSksXG4gICAgICAgIG1hcCgobG9jYXRpb25zKSA9PiB0aGlzLnJlbW92ZVNlbGVjdGVkTG9jYXRpb25zKGxvY2F0aW9ucykpXG4gICAgICApLnN1YnNjcmliZShsb2NhdGlvbnMgPT4ge1xuICAgICAgdGhpcy5sb2NhdGlvbnMgPSBsb2NhdGlvbnM7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgaWYgKGxvY2F0aW9ucy5sZW5ndGggPT09IDEgJiYgdGhpcy50ZXJtID09PSBsb2NhdGlvbnNbMF0uc2l0ZV9uYW1lICYmICF0aGlzLnNpbmdsZU1vZGUpIHtcbiAgICAgICAgdGhpcy5sb2NhdGlvblNlbGVjdGVkLmVtaXQobG9jYXRpb25zWzBdKTtcbiAgICAgICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gZmFsc2U7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25JbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaExvY2F0aW9uQ2hhbmdlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TG9jYXRpb25zKHRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8TG9jYXRpb25CeUVQSU1NU01vZGVsW10+IHtcbiAgICBsZXQgdXNlckxvY2F0aW9ucztcbiAgICBsZXQgYm9va2luZ0xvY2F0aW9ucztcbiAgICAvLyBCb29raW5nIHR5cGUgaW5mbyAtIGNhbiBjcmVhdGUgbW9yZVxuICAgIC8vIE5PX0NIRUNLIC0gQWxsIHdvcmsgLSBEbyBub3QgZmlsdGVyIG91dCBsb2NhdGlvbnMgLSBEZWZhdWx0IGFzc3VtcHRpb25cbiAgICAvLyBPTkxZX0JPT0tJTkdTIC0gTXkgd29yayAtIFRyeSB0byBvbmx5IHNob3cgYmFzZSBsb2NhdGlvbnMvYm9va2luZyBsb2NhdGlvbnNcbiAgICAvLyBQT1NTSUJMRV9CT09LSU5HUyAtIENyZWF0ZSBib29raW5nIHNjcmVlbiAtIFNob3cgb25seSBwb3RlbnRpYWwgYm9va2luZ3NcbiAgICBpZiAodGhpcy5ib29raW5nQ2hlY2sgPT09IEJvb2tpbmdDaGVja1R5cGUuQk9PS0lOR1NfQU5EX0JBU0UpIHtcbiAgICAgIHVzZXJMb2NhdGlvbnMgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJMb2NhdGlvbnMnKSk7XG4gICAgICBib29raW5nTG9jYXRpb25zID0gSlNPTi5wYXJzZSh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCdib29raW5nTG9jYXRpb25zJykpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ib29raW5nQ2hlY2sgPT09IEJvb2tpbmdDaGVja1R5cGUuUE9TU0lCTEVfQk9PS0lOR1MpIHtcbiAgICAgIHVzZXJMb2NhdGlvbnMgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJMb2NhdGlvbnMnKSk7XG4gICAgICB0aGlzLnNlcnZpY2VJZHMgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Jvb2thYmxlU2VydmljZXMnKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uU2VydmljZS5nZXRBbGxMb2NhdGlvbnModGhpcy5zZXJ2aWNlSWRzLCB0aGlzLmxvY2F0aW9uVHlwZSwgdGVybSwgdXNlckxvY2F0aW9ucywgYm9va2luZ0xvY2F0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRTZWFyY2hUZXJtKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5jb250cm9scy5zZWFyY2hUZXJtLnBhdGNoVmFsdWUoJycsIHtlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZX0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVTZWxlY3RlZExvY2F0aW9ucyhsb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdKTogTG9jYXRpb25CeUVQSU1NU01vZGVsW10ge1xuICAgIGlmICh0aGlzLnNpbmdsZU1vZGUpIHtcbiAgICAgIHJldHVybiBsb2NhdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiBsb2NhdGlvbnMuZmlsdGVyKFxuICAgICAgbG9jYXRpb24gPT4gIXRoaXMuc2VsZWN0ZWRMb2NhdGlvbnMubWFwKHNlbGVjdGVkTG9jYXRpb24gPT4gc2VsZWN0ZWRMb2NhdGlvbi5lcGltbXNfaWQpLmluY2x1ZGVzKGxvY2F0aW9uLmVwaW1tc19pZCkgJiYgbG9jYXRpb24uc2l0ZV9uYW1lXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,31 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { FormGroup } from '@angular/forms';
3
- export class SearchServiceComponent {
4
- constructor() {
5
- this.showAutocomplete = false;
6
- this.minSearchCharacters = 3;
7
- this.term = '';
8
- }
9
- onInput() {
10
- // Todo
11
- }
12
- onSelectionChange() {
13
- // Todo
14
- }
15
- }
16
- SearchServiceComponent.decorators = [
17
- { type: Component, args: [{
18
- selector: 'exui-search-service',
19
- template: "<div class=\"auto-complete-container\">\n <input\n id=\"inputServiceSearch\"\n (input)=\"onInput()\"\n [formControl]=\"form?.controls.searchTerm\"\n [matAutocomplete]=\"autoSearchService\"\n class=\"govuk-input\"\n [attr.disabled]=\"disabled\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchService=\"matAutocomplete\">\n <mat-option *ngFor=\"let service of services\" (onSelectionChange)=\"onSelectionChange()\">\n {{ service.name }}\n </mat-option>\n <mat-option *ngIf=\"!services?.length && showAutocomplete && term && term.length >= this.minSearchCharacters\">No results found</mat-option>\n </mat-autocomplete>\n</div>\n",
20
- styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:250px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}"]
21
- },] }
22
- ];
23
- SearchServiceComponent.propDecorators = {
24
- services: [{ type: Input }],
25
- selectedServices: [{ type: Input }],
26
- disabled: [{ type: Input }],
27
- delay: [{ type: Input }],
28
- form: [{ type: Input }],
29
- showAutocomplete: [{ type: Input }]
30
- };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNlcnZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtc2VydmljZS9zZWFyY2gtc2VydmljZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzNDLE1BQU0sT0FBTyxzQkFBc0I7SUFMbkM7UUFXa0IscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBQ2xDLHdCQUFtQixHQUFHLENBQUMsQ0FBQztRQUNqQyxTQUFJLEdBQVcsRUFBRSxDQUFDO0lBUzNCLENBQUM7SUFQUSxPQUFPO1FBQ1osT0FBTztJQUNULENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTztJQUNULENBQUM7OztZQXJCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsK3NCQUE4Qzs7YUFFL0M7Ozt1QkFFRSxLQUFLOytCQUNMLEtBQUs7dUJBQ0wsS0FBSztvQkFDTCxLQUFLO21CQUNMLEtBQUs7K0JBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXh1aS1zZWFyY2gtc2VydmljZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtc2VydmljZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1zZXJ2aWNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlczogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRTZXJ2aWNlczogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGFueTtcbiAgQElucHV0KCkgcHVibGljIGRlbGF5OiBhbnk7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBtaW5TZWFyY2hDaGFyYWN0ZXJzID0gMztcbiAgcHVibGljIHRlcm06IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBvbklucHV0KCk6IHZvaWQge1xuICAgIC8vIFRvZG9cbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICAvLyBUb2RvXG4gIH1cbn1cbiJdfQ==
@@ -1,123 +0,0 @@
1
- import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { AbstractControl, FormArray, FormBuilder, FormControl } from '@angular/forms';
3
- import { Subject } from 'rxjs';
4
- import { debounceTime, mergeMap } from 'rxjs/operators';
5
- import { LocationService } from '../../services/locations/location.service';
6
- export class SearchVenueComponent {
7
- constructor(locationService, fb) {
8
- this.locationService = locationService;
9
- this.disabled = null;
10
- this.locationType = '';
11
- this.serviceIds = '';
12
- this.submitted = true;
13
- this.showAutocomplete = false;
14
- this.locationChanged = new EventEmitter();
15
- this.minSearchCharacters = 3;
16
- this.keyUpSubject$ = new Subject();
17
- this.readyAfterContent = false;
18
- this.searchInProgress = false;
19
- this.findLocationFormGroup = fb.group({
20
- findLocationFormControl: [null],
21
- locationSelectedFormControl: [null]
22
- });
23
- this.selectedLocations = [];
24
- }
25
- ngAfterContentInit() {
26
- this.readyAfterContent = true;
27
- }
28
- ngOnInit() {
29
- this.displayedLocations = [];
30
- if (this.control) {
31
- if (this.findLocationFormGroup && this.findLocationFormGroup.controls) {
32
- this.findLocationFormGroup.controls.locationSelectedFormControl = this.control;
33
- }
34
- }
35
- this.keyUpSubject$.pipe(debounceTime(500)).subscribe(searchValue => this.search(searchValue));
36
- }
37
- onKeyDown() {
38
- this.locationChanged.emit();
39
- }
40
- onKeyUp(event) {
41
- this.showAutocomplete = false;
42
- this.keyUpSubject$.next(event.target.value);
43
- }
44
- onFocus() {
45
- this.showAutocomplete = false;
46
- }
47
- get displayedLocationsDuplicationFiltered() {
48
- return this.displayedLocations.filter(location => !this.selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(location.epimms_id) && location.court_name);
49
- }
50
- filter(term) {
51
- this.searchLocations(term).pipe(mergeMap((apiData) => {
52
- const apiFilter = apiData.filter(apiLocation => !this.selectedLocations.map(selectedLocation => selectedLocation.epimms_id).includes(apiLocation.epimms_id));
53
- this.displayedLocations = apiFilter;
54
- this.searchInProgress = false;
55
- return apiFilter;
56
- })).subscribe(location => {
57
- if (term === location.court_name) {
58
- this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(location);
59
- this.displayedLocations = [];
60
- this.locationChanged.emit(location);
61
- this.showAutocomplete = false;
62
- }
63
- this.searchInProgress = false;
64
- });
65
- }
66
- onSelectionChange(selection) {
67
- if (this.findLocationFormGroup.controls.findLocationFormControl instanceof FormArray) {
68
- this.findLocationFormGroup.controls.locationSelectedFormControl.push(new FormControl(selection.epimms_id));
69
- }
70
- else {
71
- this.findLocationFormGroup.controls.locationSelectedFormControl.setValue(selection);
72
- }
73
- this.locationChanged.emit(selection);
74
- }
75
- search(currentValue) {
76
- this.searchInProgress = true;
77
- this.showAutocomplete = !!currentValue && (currentValue.length >= this.minSearchCharacters);
78
- if (!currentValue || !currentValue.length) {
79
- this.findLocationFormGroup.controls.locationSelectedFormControl.markAsPristine();
80
- this.findLocationFormGroup.controls.locationSelectedFormControl.reset();
81
- }
82
- if (this.showAutocomplete) {
83
- this.filter(currentValue);
84
- }
85
- else {
86
- this.searchInProgress = false;
87
- }
88
- }
89
- getDisplayName(selectedLocation) {
90
- return selectedLocation.court_name;
91
- }
92
- searchLocations(term) {
93
- return this.locationService.searchLocations(this.serviceIds, this.locationType, term);
94
- }
95
- getControlCourtNameValue() {
96
- return this.findLocationFormGroup && this.findLocationFormGroup.controls && this.findLocationFormGroup.controls.locationSelectedFormControl.value ?
97
- this.findLocationFormGroup.controls.locationSelectedFormControl.value.court_name : '';
98
- }
99
- }
100
- SearchVenueComponent.decorators = [
101
- { type: Component, args: [{
102
- selector: 'xuilib-search-venue',
103
- template: "<div class=\"auto-complete-container\">\n <div *ngIf=\"readyAfterContent\" class=\"autocomplete__wrapper\">\n <input\n [formControl]=\"findLocationFormGroup.controls.findLocationFormControl\"\n [matAutocomplete]=\"autoSearchLocation\"\n (keydown)=\"onKeyDown()\"\n (keyup)=\"onKeyUp($event)\"\n (focus)=\"onFocus()\"\n class=\"autocomplete__input autocomplete__input--default search-box\"\n [attr.disabled]=\"!disabled ? null: disabled\"\n [value]=\"getControlCourtNameValue()\"\n #inputSelectedLocation>\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLocation=\"matAutocomplete\">\n <mat-option *ngFor=\"let location of displayedLocationsDuplicationFiltered\"\n [value]=\"getDisplayName(location)\"\n (onSelectionChange)=\"onSelectionChange(location)\"\n [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\">\n {{ getDisplayName(location) }}\n </mat-option>\n <mat-option *ngIf=\"!displayedLocationsDuplicationFiltered?.length && showAutocomplete && !searchInProgress\">{{ 'No results found' }}</mat-option>\n </mat-autocomplete>\n </div>\n</div>\n",
104
- styles: [".autocomplete__input{-webkit-appearance:none;border:2px solid #0b0c0c;border-radius:0;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;margin-bottom:0;width:100%;line-height:24px;font-size:19px;background-color:transparent;position:relative}.autocomplete__hint{color:#b1b4b6;position:absolute}.autocomplete__input--default{padding:5px}.autocomplete__input--focused{outline:3px solid #fd0;outline-offset:0;box-shadow:inset 0 0 0 2px}.autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width:641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:550px;display:inline-block;margin-right:4px}"]
105
- },] }
106
- ];
107
- SearchVenueComponent.ctorParameters = () => [
108
- { type: LocationService },
109
- { type: FormBuilder }
110
- ];
111
- SearchVenueComponent.propDecorators = {
112
- control: [{ type: Input }],
113
- disabled: [{ type: Input }],
114
- locationType: [{ type: Input }],
115
- selectedLocations: [{ type: Input }],
116
- serviceIds: [{ type: Input }],
117
- submitted: [{ type: Input }],
118
- autoCompleteInputBox: [{ type: ViewChild, args: ['inputSelectedLocation', { read: ElementRef },] }],
119
- showAutocomplete: [{ type: Input }],
120
- displayedLocations: [{ type: Input }],
121
- locationChanged: [{ type: Output }]
122
- };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXZlbnVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLXZlbnVlL3NlYXJjaC12ZW51ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0YsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUMsWUFBWSxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXRELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQU8xRSxNQUFNLE9BQU8sb0JBQW9CO0lBa0IvQixZQUE2QixlQUFnQyxFQUFFLEVBQWU7UUFBakQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBaEI3QyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRTFCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsY0FBUyxHQUFhLElBQUksQ0FBQztRQUczQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFFakMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztRQUU1RCx3QkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDbEMsa0JBQWEsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvQyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBR3ZDLElBQUksQ0FBQyxxQkFBcUIs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LE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxlQUFlLENBQUMsSUFBWTtRQUNqQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRU0sd0JBQXdCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoSixJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDLEtBQStCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDckgsQ0FBQzs7O1lBdkhGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixzdENBQTRDOzthQUU3Qzs7O1lBTk8sZUFBZTtZQUphLFdBQVc7OztzQkFZNUMsS0FBSzt1QkFDTCxLQUFLOzJCQUNMLEtBQUs7Z0NBQ0wsS0FBSzt5QkFDTCxLQUFLO3dCQUNMLEtBQUs7bUNBQ0wsU0FBUyxTQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTsrQkFFdkQsS0FBSztpQ0FDTCxLQUFLOzhCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBtZXJnZU1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2NhdGlvbkJ5RVBJTU1TTW9kZWx9IGZyb20gJy4uLy4uL21vZGVscy9sb2NhdGlvbi5tb2RlbCc7XG5pbXBvcnQge0xvY2F0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9jYXRpb25zL2xvY2F0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItc2VhcmNoLXZlbnVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC12ZW51ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC12ZW51ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFZlbnVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuID0gbnVsbDtcbiAgQElucHV0KCkgcHVibGljIGxvY2F0aW9uVHlwZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uczogTG9jYXRpb25CeUVQSU1NU01vZGVsW107XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXJ2aWNlSWRzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIHN1Ym1pdHRlZD86IGJvb2xlYW4gPSB0cnVlO1xuICBAVmlld0NoaWxkKCdpbnB1dFNlbGVjdGVkTG9jYXRpb24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgcHVibGljIGF1dG9Db21wbGV0ZUlucHV0Qm94OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBwdWJsaWMgZmluZExvY2F0aW9uRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93QXV0b2NvbXBsZXRlOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5ZWRMb2NhdGlvbnM6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdO1xuICBAT3V0cHV0KCkgcHVibGljIGxvY2F0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TG9jYXRpb25CeUVQSU1NU01vZGVsPigpO1xuICBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbjogTG9jYXRpb25CeUVQSU1NU01vZGVsO1xuICBwcml2YXRlIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAzO1xuICBwdWJsaWMga2V5VXBTdWJqZWN0JDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHJlYWR5QWZ0ZXJDb250ZW50OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzZWFyY2hJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSwgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAgPSBmYi5ncm91cCh7XG4gICAgICBmaW5kTG9jYXRpb25Gb3JtQ29udHJvbDogW251bGxdLFxuICAgICAgbG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sOiBbbnVsbF1cbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25zID0gW107XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVhZHlBZnRlckNvbnRlbnQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkTG9jYXRpb25zID0gW107XG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgaWYgKHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwICYmIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzKSB7XG4gICAgICAgIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbCA9IHRoaXMuY29udHJvbDtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5rZXlVcFN1YmplY3QkLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZShzZWFyY2hWYWx1ZSA9PiB0aGlzLnNlYXJjaChzZWFyY2hWYWx1ZSBhcyBzdHJpbmcpKTtcbiAgfVxuXG4gIHB1YmxpYyBvbktleURvd24oKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhdGlvbkNoYW5nZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uS2V5VXAoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICAgIHRoaXMua2V5VXBTdWJqZWN0JC5uZXh0KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25Gb2N1cygpIHtcbiAgICB0aGlzLnNob3dBdXRvY29tcGxldGUgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheWVkTG9jYXRpb25zRHVwbGljYXRpb25GaWx0ZXJlZCgpOiBMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheWVkTG9jYXRpb25zLmZpbHRlcihcbiAgICAgIGxvY2F0aW9uID0+ICF0aGlzLnNlbGVjdGVkTG9jYXRpb25zLm1hcChzZWxlY3RlZExvY2F0aW9uID0+IHNlbGVjdGVkTG9jYXRpb24uZXBpbW1zX2lkKS5pbmNsdWRlcyhsb2NhdGlvbi5lcGltbXNfaWQpICYmIGxvY2F0aW9uLmNvdXJ0X25hbWVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcih0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaExvY2F0aW9ucyh0ZXJtKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGFwaURhdGE6IExvY2F0aW9uQnlFUElNTVNNb2RlbFtdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFwaUZpbHRlciA9IGFwaURhdGEuZmlsdGVyKFxuICAgICAgICAgIGFwaUxvY2F0aW9uID0+ICF0aGlzLnNlbGVjdGVkTG9jYXRpb25zLm1hcChzZWxlY3RlZExvY2F0aW9uID0+IHNlbGVjdGVkTG9jYXRpb24uZXBpbW1zX2lkKS5pbmNsdWRlcyhhcGlMb2NhdGlvbi5lcGltbXNfaWQpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkTG9jYXRpb25zID0gYXBpRmlsdGVyO1xuICAgICAgICB0aGlzLnNlYXJjaEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgcmV0dXJuIGFwaUZpbHRlcjtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUobG9jYXRpb24gPT4ge1xuICAgICAgaWYgKHRlcm0gPT09IGxvY2F0aW9uLmNvdXJ0X25hbWUpIHtcbiAgICAgICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLnNldFZhbHVlKGxvY2F0aW9uKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRMb2NhdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5sb2NhdGlvbkNoYW5nZWQuZW1pdChsb2NhdGlvbik7XG4gICAgICAgIHRoaXMuc2hvd0F1dG9jb21wbGV0ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uPzogTG9jYXRpb25CeUVQSU1NU01vZGVsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmZpbmRMb2NhdGlvbkZvcm1Db250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sIGFzIEZvcm1BcnJheSkucHVzaChuZXcgRm9ybUNvbnRyb2woc2VsZWN0aW9uLmVwaW1tc19pZCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wuc2V0VmFsdWUoc2VsZWN0aW9uKTtcbiAgICB9XG4gICAgdGhpcy5sb2NhdGlvbkNoYW5nZWQuZW1pdChzZWxlY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaChjdXJyZW50VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgdGhpcy5zaG93QXV0b2NvbXBsZXRlID0gISFjdXJyZW50VmFsdWUgJiYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPj0gdGhpcy5taW5TZWFyY2hDaGFyYWN0ZXJzKTtcbiAgICBpZiAoIWN1cnJlbnRWYWx1ZSB8fCAhY3VycmVudFZhbHVlLmxlbmd0aCkge1xuICAgICAgdGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICB0aGlzLmZpbmRMb2NhdGlvbkZvcm1Hcm91cC5jb250cm9scy5sb2NhdGlvblNlbGVjdGVkRm9ybUNvbnRyb2wucmVzZXQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvd0F1dG9jb21wbGV0ZSkge1xuICAgICAgdGhpcy5maWx0ZXIoY3VycmVudFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWFyY2hJblByb2dyZXNzID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldERpc3BsYXlOYW1lKHNlbGVjdGVkTG9jYXRpb246IExvY2F0aW9uQnlFUElNTVNNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNlbGVjdGVkTG9jYXRpb24uY291cnRfbmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hMb2NhdGlvbnModGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2NhdGlvbkJ5RVBJTU1TTW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2F0aW9uU2VydmljZS5zZWFyY2hMb2NhdGlvbnModGhpcy5zZXJ2aWNlSWRzLCB0aGlzLmxvY2F0aW9uVHlwZSwgdGVybSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbENvdXJ0TmFtZVZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwICYmIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzICYmIHRoaXMuZmluZExvY2F0aW9uRm9ybUdyb3VwLmNvbnRyb2xzLmxvY2F0aW9uU2VsZWN0ZWRGb3JtQ29udHJvbC52YWx1ZSA/XG4gICAgICAodGhpcy5maW5kTG9jYXRpb25Gb3JtR3JvdXAuY29udHJvbHMubG9jYXRpb25TZWxlY3RlZEZvcm1Db250cm9sLnZhbHVlIGFzIExvY2F0aW9uQnlFUElNTVNNb2RlbCkuY291cnRfbmFtZSA6ICcnO1xuICB9XG59XG4iXX0=