@hmcts/ccd-case-ui-toolkit 5.0.6-angular11-upgrade → 5.0.9-angular11-upgrade

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 (509) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +25692 -5025
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -16
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/shared/components/activity/activity-banner/activity-banner.component.js +42 -0
  6. package/esm2015/lib/shared/components/activity/activity-banner/index.js +2 -0
  7. package/esm2015/lib/shared/components/activity/activity-icon/activity-icon.component.js +35 -0
  8. package/esm2015/lib/shared/components/activity/activity-icon/index.js +2 -0
  9. package/esm2015/lib/shared/components/activity/activity.component.js +150 -0
  10. package/esm2015/lib/shared/components/activity/activity.module.js +53 -0
  11. package/esm2015/lib/shared/components/activity/index.js +5 -0
  12. package/esm2015/lib/shared/components/case-editor/case-create/case-create.component.js +94 -0
  13. package/esm2015/lib/shared/components/case-editor/case-create/index.js +2 -0
  14. package/esm2015/lib/shared/components/case-editor/case-edit/case-edit.component.js +113 -0
  15. package/esm2015/lib/shared/components/case-editor/case-edit/index.js +2 -0
  16. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +131 -0
  17. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/index.js +2 -0
  18. package/esm2015/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.js +146 -0
  19. package/esm2015/lib/shared/components/case-editor/case-edit-form/index.js +2 -0
  20. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page-text.enum.js +11 -0
  21. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +654 -0
  22. package/esm2015/lib/shared/components/case-editor/case-edit-page/index.js +2 -0
  23. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +759 -0
  24. package/esm2015/lib/shared/components/case-editor/case-edit-submit/index.js +2 -0
  25. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +185 -0
  26. package/esm2015/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.js +89 -0
  27. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +72 -0
  28. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +157 -0
  29. package/esm2015/lib/shared/components/case-editor/case-event-completion/index.js +4 -0
  30. package/esm2015/lib/shared/components/case-editor/case-progress/case-progress.component.js +85 -0
  31. package/esm2015/lib/shared/components/case-editor/case-progress/index.js +2 -0
  32. package/esm2015/lib/shared/components/case-editor/domain/event-completion-params.model.js +2 -0
  33. package/esm2015/lib/shared/components/case-editor/domain/event-completion-portal-types.model.js +6 -0
  34. package/esm2015/lib/shared/components/case-editor/editor.routing.js +31 -0
  35. package/esm2015/lib/shared/components/case-editor/index.js +13 -0
  36. package/esm2015/lib/shared/components/case-editor/services/case-edit-wizard.guard.js +92 -0
  37. package/esm2015/lib/shared/components/case-editor/services/case-worker.service.js +32 -0
  38. package/esm2015/lib/shared/components/case-editor/services/convert-href-to-router.service.js +41 -0
  39. package/esm2015/lib/shared/components/case-editor/services/event-completion-state-machine.service.js +162 -0
  40. package/esm2015/lib/shared/components/case-editor/services/event-trigger.service.js +20 -0
  41. package/esm2015/lib/shared/components/case-editor/services/index.js +12 -0
  42. package/esm2015/lib/shared/components/case-editor/services/judicial-worker.service.js +32 -0
  43. package/esm2015/lib/shared/components/case-editor/services/page-validation.service.js +50 -0
  44. package/esm2015/lib/shared/components/case-editor/services/wizard-factory.service.js +7 -0
  45. package/esm2015/lib/shared/components/case-header/case-header.component.js +65 -0
  46. package/esm2015/lib/shared/components/case-header/case-header.module.js +35 -0
  47. package/esm2015/lib/shared/components/case-header/index.js +3 -0
  48. package/esm2015/lib/shared/components/case-history/case-history.component.js +264 -0
  49. package/esm2015/lib/shared/components/case-history/case-history.module.js +52 -0
  50. package/esm2015/lib/shared/components/case-history/domain/case-history.model.js +28 -0
  51. package/esm2015/lib/shared/components/case-history/index.js +3 -0
  52. package/esm2015/lib/shared/components/case-history/services/case-history.service.js +40 -0
  53. package/esm2015/lib/shared/components/case-list/case-list.component.js +370 -0
  54. package/esm2015/lib/shared/components/case-list/case-list.module.js +45 -0
  55. package/esm2015/lib/shared/components/case-list/index.js +3 -0
  56. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.component.js +57 -0
  57. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +59 -0
  58. package/esm2015/lib/shared/components/case-list-filters/index.js +3 -0
  59. package/esm2015/lib/shared/components/case-timeline/case-timeline.component.js +118 -0
  60. package/esm2015/lib/shared/components/case-timeline/case-timeline.module.js +46 -0
  61. package/esm2015/lib/shared/components/case-timeline/index.js +3 -0
  62. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +195 -0
  63. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/index.js +2 -0
  64. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +307 -0
  65. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/index.js +2 -0
  66. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/models/case-challenged-access-request.enum.js +20 -0
  67. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/models/index.js +2 -0
  68. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.js +64 -0
  69. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/index.js +2 -0
  70. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +120 -0
  71. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/index.js +2 -0
  72. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +545 -0
  73. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/index.js +2 -0
  74. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.js +63 -0
  75. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-reject/index.js +2 -0
  76. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +258 -0
  77. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/index.js +2 -0
  78. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/models/case-review-specific-access-request.enum.js +18 -0
  79. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/models/index.js +2 -0
  80. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +195 -0
  81. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/index.js +2 -0
  82. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.js +11 -0
  83. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/models/index.js +2 -0
  84. package/esm2015/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.js +60 -0
  85. package/esm2015/lib/shared/components/case-viewer/case-specific-access-success/index.js +2 -0
  86. package/esm2015/lib/shared/components/case-viewer/case-view/case-view.component.js +100 -0
  87. package/esm2015/lib/shared/components/case-viewer/case-view/index.js +2 -0
  88. package/esm2015/lib/shared/components/case-viewer/case-viewer.component.js +129 -0
  89. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +155 -0
  90. package/esm2015/lib/shared/components/case-viewer/index.js +14 -0
  91. package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +111 -0
  92. package/esm2015/lib/shared/components/case-viewer/printer/index.js +4 -0
  93. package/esm2015/lib/shared/components/case-viewer/printer/pipes/index.js +2 -0
  94. package/esm2015/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.js +60 -0
  95. package/esm2015/lib/shared/components/case-viewer/services/case.resolver.js +110 -0
  96. package/esm2015/lib/shared/components/case-viewer/services/event-trigger.resolver.js +64 -0
  97. package/esm2015/lib/shared/components/case-viewer/services/index.js +3 -0
  98. package/esm2015/lib/shared/components/case-viewer/viewer.routing.js +127 -0
  99. package/esm2015/lib/shared/components/create-case-filters/create-case-filters-selection.model.js +8 -0
  100. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.component.js +257 -0
  101. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.module.js +42 -0
  102. package/esm2015/lib/shared/components/create-case-filters/index.js +4 -0
  103. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.js +57 -0
  104. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/index.js +2 -0
  105. package/esm2015/lib/shared/components/dialogs/dialogs.module.js +49 -0
  106. package/esm2015/lib/shared/components/dialogs/document-dialog/index.js +2 -0
  107. package/esm2015/lib/shared/components/dialogs/index.js +6 -0
  108. package/esm2015/lib/shared/components/dialogs/remove-dialog/index.js +2 -0
  109. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/index.js +2 -0
  110. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.js +61 -0
  111. package/esm2015/lib/shared/components/error/callback-errors.component.js +145 -0
  112. package/esm2015/lib/shared/components/error/domain/error-context.js +3 -0
  113. package/esm2015/lib/shared/components/error/domain/index.js +2 -0
  114. package/esm2015/lib/shared/components/error/errors.module.js +31 -0
  115. package/esm2015/lib/shared/components/error/index.js +4 -0
  116. package/esm2015/lib/shared/components/error-message/error-message.component.js +51 -0
  117. package/esm2015/lib/shared/components/error-message/error-message.module.js +39 -0
  118. package/esm2015/lib/shared/components/error-message/index.js +3 -0
  119. package/esm2015/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.js +55 -0
  120. package/esm2015/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.js +52 -0
  121. package/esm2015/lib/shared/components/event-start/components/task-assigned/task-assigned.component.js +104 -0
  122. package/esm2015/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.js +60 -0
  123. package/esm2015/lib/shared/components/event-start/components/task-conflict/task-conflict.component.js +54 -0
  124. package/esm2015/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.js +52 -0
  125. package/esm2015/lib/shared/components/event-start/event-guard/event-start.guard.js +103 -0
  126. package/esm2015/lib/shared/components/event-start/event-start.component.js +52 -0
  127. package/esm2015/lib/shared/components/event-start/event-start.module.js +69 -0
  128. package/esm2015/lib/shared/components/event-start/index.js +10 -0
  129. package/esm2015/lib/shared/components/event-start/models/event-start-state-machine-context.model.js +2 -0
  130. package/esm2015/lib/shared/components/event-start/models/event-start-states-enum.model.js +16 -0
  131. package/esm2015/lib/shared/components/event-start/models/index.js +3 -0
  132. package/esm2015/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.js +29 -0
  133. package/esm2015/lib/shared/components/event-start/services/event-start-state-machine.service.js +168 -0
  134. package/esm2015/lib/shared/components/event-start/services/index.js +2 -0
  135. package/esm2015/lib/shared/components/event-trigger/event-trigger.component.js +108 -0
  136. package/esm2015/lib/shared/components/event-trigger/event-trigger.module.js +35 -0
  137. package/esm2015/lib/shared/components/event-trigger/index.js +3 -0
  138. package/esm2015/lib/shared/components/index.js +20 -0
  139. package/esm2015/lib/shared/components/loading-spinner/index.js +2 -0
  140. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.component.js +33 -0
  141. package/esm2015/lib/shared/components/pagination/index.js +3 -0
  142. package/esm2015/lib/shared/components/pagination/pagination.component.js +255 -0
  143. package/esm2015/lib/shared/components/pagination/pagination.module.js +33 -0
  144. package/esm2015/lib/shared/components/palette/address/index.js +3 -0
  145. package/esm2015/lib/shared/components/palette/case-link/index.js +3 -0
  146. package/esm2015/lib/shared/components/palette/complex/index.js +1 -7
  147. package/esm2015/lib/shared/components/palette/complex/write-complex-field.component.js +2 -2
  148. package/esm2015/lib/shared/components/palette/index.js +32 -0
  149. package/esm2015/lib/shared/components/palette/palette.module.js +16 -27
  150. package/esm2015/lib/shared/components/search-result/index.js +3 -0
  151. package/esm2015/lib/shared/components/search-result/search-result.component.js +845 -0
  152. package/esm2015/lib/shared/components/search-result/search-result.module.js +67 -0
  153. package/esm2015/lib/shared/components/workbasket-filters/index.js +3 -0
  154. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +448 -0
  155. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.module.js +60 -0
  156. package/esm2015/lib/shared/domain/case-view/role-request.model.js +1 -1
  157. package/esm2015/lib/shared/domain/work-allocation/case-worker.model.js +2 -0
  158. package/esm2015/lib/shared/domain/work-allocation/judicial-worker.model.js +2 -0
  159. package/esm2015/lib/shared/index.js +2 -1
  160. package/esm2015/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.js +29 -0
  161. package/esm2015/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.js +29 -0
  162. package/esm2015/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.js +154 -0
  163. package/esm2015/lib/shared/pipes/complex/ccd-tab-fields.pipe.js +31 -0
  164. package/esm2015/lib/shared/pipes/complex/cdd-page-fields.pipe.js +39 -0
  165. package/esm2015/lib/shared/pipes/complex/fields-filter.pipe.js +103 -0
  166. package/esm2015/lib/shared/pipes/complex/index.js +7 -0
  167. package/esm2015/lib/shared/pipes/index.js +3 -2
  168. package/esm2015/lib/shared/pipes/pipes.module.js +26 -9
  169. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +22295 -4295
  170. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  171. package/lib/shared/components/activity/activity-banner/activity-banner.component.d.ts +12 -0
  172. package/lib/shared/components/activity/activity-banner/activity-banner.component.d.ts.map +1 -0
  173. package/lib/shared/components/activity/activity-banner/index.d.ts +2 -0
  174. package/lib/shared/components/activity/activity-banner/index.d.ts.map +1 -0
  175. package/lib/shared/components/activity/activity-icon/activity-icon.component.d.ts +11 -0
  176. package/lib/shared/components/activity/activity-icon/activity-icon.component.d.ts.map +1 -0
  177. package/lib/shared/components/activity/activity-icon/index.d.ts +2 -0
  178. package/lib/shared/components/activity/activity-icon/index.d.ts.map +1 -0
  179. package/lib/shared/components/activity/activity.component.d.ts +32 -0
  180. package/lib/shared/components/activity/activity.component.d.ts.map +1 -0
  181. package/lib/shared/components/activity/activity.module.d.ts +12 -0
  182. package/lib/shared/components/activity/activity.module.d.ts.map +1 -0
  183. package/lib/shared/components/activity/index.d.ts +5 -0
  184. package/lib/shared/components/activity/index.d.ts.map +1 -0
  185. package/lib/shared/components/case-editor/case-create/case-create.component.d.ts +33 -0
  186. package/lib/shared/components/case-editor/case-create/case-create.component.d.ts.map +1 -0
  187. package/lib/shared/components/case-editor/case-create/index.d.ts +2 -0
  188. package/lib/shared/components/case-editor/case-create/index.d.ts.map +1 -0
  189. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +50 -0
  190. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -0
  191. package/lib/shared/components/case-editor/case-edit/index.d.ts +2 -0
  192. package/lib/shared/components/case-editor/case-edit/index.d.ts.map +1 -0
  193. package/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.d.ts +26 -0
  194. package/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.d.ts.map +1 -0
  195. package/lib/shared/components/case-editor/case-edit-confirm/index.d.ts +2 -0
  196. package/lib/shared/components/case-editor/case-edit-confirm/index.d.ts.map +1 -0
  197. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts +26 -0
  198. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts.map +1 -0
  199. package/lib/shared/components/case-editor/case-edit-form/index.d.ts +2 -0
  200. package/lib/shared/components/case-editor/case-edit-form/index.d.ts.map +1 -0
  201. package/lib/shared/components/case-editor/case-edit-page/case-edit-page-text.enum.d.ts +10 -0
  202. package/lib/shared/components/case-editor/case-edit-page/case-edit-page-text.enum.d.ts.map +1 -0
  203. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +100 -0
  204. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -0
  205. package/lib/shared/components/case-editor/case-edit-page/index.d.ts +2 -0
  206. package/lib/shared/components/case-editor/case-edit-page/index.d.ts.map +1 -0
  207. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +123 -0
  208. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -0
  209. package/lib/shared/components/case-editor/case-edit-submit/index.d.ts +2 -0
  210. package/lib/shared/components/case-editor/case-edit-submit/index.d.ts.map +1 -0
  211. package/lib/shared/components/case-editor/case-editor.module.d.ts +27 -0
  212. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -0
  213. package/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.d.ts +31 -0
  214. package/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.d.ts.map +1 -0
  215. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts +11 -0
  216. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -0
  217. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts +32 -0
  218. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -0
  219. package/lib/shared/components/case-editor/case-event-completion/index.d.ts +4 -0
  220. package/lib/shared/components/case-editor/case-event-completion/index.d.ts.map +1 -0
  221. package/lib/shared/components/case-editor/case-progress/case-progress.component.d.ts +30 -0
  222. package/lib/shared/components/case-editor/case-progress/case-progress.component.d.ts.map +1 -0
  223. package/lib/shared/components/case-editor/case-progress/index.d.ts +2 -0
  224. package/lib/shared/components/case-editor/case-progress/index.d.ts.map +1 -0
  225. package/lib/shared/components/case-editor/domain/event-completion-params.model.d.ts +7 -0
  226. package/lib/shared/components/case-editor/domain/event-completion-params.model.d.ts.map +1 -0
  227. package/lib/shared/components/case-editor/domain/event-completion-portal-types.model.d.ts +5 -0
  228. package/lib/shared/components/case-editor/domain/event-completion-portal-types.model.d.ts.map +1 -0
  229. package/lib/shared/components/case-editor/editor.routing.d.ts +3 -0
  230. package/lib/shared/components/case-editor/editor.routing.d.ts.map +1 -0
  231. package/lib/shared/components/case-editor/index.d.ts +13 -0
  232. package/lib/shared/components/case-editor/index.d.ts.map +1 -0
  233. package/lib/shared/components/case-editor/services/case-edit-wizard.guard.d.ts +23 -0
  234. package/lib/shared/components/case-editor/services/case-edit-wizard.guard.d.ts.map +1 -0
  235. package/lib/shared/components/case-editor/services/case-worker.service.d.ts +16 -0
  236. package/lib/shared/components/case-editor/services/case-worker.service.d.ts.map +1 -0
  237. package/lib/shared/components/case-editor/services/convert-href-to-router.service.d.ts +14 -0
  238. package/lib/shared/components/case-editor/services/convert-href-to-router.service.d.ts.map +1 -0
  239. package/lib/shared/components/case-editor/services/event-completion-state-machine.service.d.ts +33 -0
  240. package/lib/shared/components/case-editor/services/event-completion-state-machine.service.d.ts.map +1 -0
  241. package/lib/shared/components/case-editor/services/event-trigger.service.d.ts +10 -0
  242. package/lib/shared/components/case-editor/services/event-trigger.service.d.ts.map +1 -0
  243. package/lib/shared/components/case-editor/services/index.d.ts +12 -0
  244. package/lib/shared/components/case-editor/services/index.d.ts.map +1 -0
  245. package/lib/shared/components/case-editor/services/judicial-worker.service.d.ts +16 -0
  246. package/lib/shared/components/case-editor/services/judicial-worker.service.d.ts.map +1 -0
  247. package/lib/shared/components/case-editor/services/page-validation.service.d.ts +17 -0
  248. package/lib/shared/components/case-editor/services/page-validation.service.d.ts.map +1 -0
  249. package/lib/shared/components/case-editor/services/wizard-factory.service.d.ts +6 -0
  250. package/lib/shared/components/case-editor/services/wizard-factory.service.d.ts.map +1 -0
  251. package/lib/shared/components/case-header/case-header.component.d.ts +15 -0
  252. package/lib/shared/components/case-header/case-header.component.d.ts.map +1 -0
  253. package/lib/shared/components/case-header/case-header.module.d.ts +11 -0
  254. package/lib/shared/components/case-header/case-header.module.d.ts.map +1 -0
  255. package/lib/shared/components/case-header/index.d.ts +3 -0
  256. package/lib/shared/components/case-header/index.d.ts.map +1 -0
  257. package/lib/shared/components/case-history/case-history.component.d.ts +33 -0
  258. package/lib/shared/components/case-history/case-history.component.d.ts.map +1 -0
  259. package/lib/shared/components/case-history/case-history.module.d.ts +14 -0
  260. package/lib/shared/components/case-history/case-history.module.d.ts.map +1 -0
  261. package/lib/shared/components/case-history/domain/case-history.model.d.ts +16 -0
  262. package/lib/shared/components/case-history/domain/case-history.model.d.ts.map +1 -0
  263. package/lib/shared/components/case-history/index.d.ts +3 -0
  264. package/lib/shared/components/case-history/index.d.ts.map +1 -0
  265. package/lib/shared/components/case-history/services/case-history.service.d.ts +17 -0
  266. package/lib/shared/components/case-history/services/case-history.service.d.ts.map +1 -0
  267. package/lib/shared/components/case-list/case-list.component.d.ts +47 -0
  268. package/lib/shared/components/case-list/case-list.component.d.ts.map +1 -0
  269. package/lib/shared/components/case-list/case-list.module.d.ts +13 -0
  270. package/lib/shared/components/case-list/case-list.module.d.ts.map +1 -0
  271. package/lib/shared/components/case-list/index.d.ts +3 -0
  272. package/lib/shared/components/case-list/index.d.ts.map +1 -0
  273. package/lib/shared/components/case-list-filters/case-list-filters.component.d.ts +19 -0
  274. package/lib/shared/components/case-list-filters/case-list-filters.component.d.ts.map +1 -0
  275. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts +13 -0
  276. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts.map +1 -0
  277. package/lib/shared/components/case-list-filters/index.d.ts +3 -0
  278. package/lib/shared/components/case-list-filters/index.d.ts.map +1 -0
  279. package/lib/shared/components/case-timeline/case-timeline.component.d.ts +27 -0
  280. package/lib/shared/components/case-timeline/case-timeline.component.d.ts.map +1 -0
  281. package/lib/shared/components/case-timeline/case-timeline.module.d.ts +13 -0
  282. package/lib/shared/components/case-timeline/case-timeline.module.d.ts.map +1 -0
  283. package/lib/shared/components/case-timeline/index.d.ts +3 -0
  284. package/lib/shared/components/case-timeline/index.d.ts.map +1 -0
  285. package/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts +19 -0
  286. package/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts.map +1 -0
  287. package/lib/shared/components/case-viewer/case-basic-access-view/index.d.ts +2 -0
  288. package/lib/shared/components/case-viewer/case-basic-access-view/index.d.ts.map +1 -0
  289. package/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.d.ts +40 -0
  290. package/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.d.ts.map +1 -0
  291. package/lib/shared/components/case-viewer/case-challenged-access-request/index.d.ts +2 -0
  292. package/lib/shared/components/case-viewer/case-challenged-access-request/index.d.ts.map +1 -0
  293. package/lib/shared/components/case-viewer/case-challenged-access-request/models/case-challenged-access-request.enum.d.ts +17 -0
  294. package/lib/shared/components/case-viewer/case-challenged-access-request/models/case-challenged-access-request.enum.d.ts.map +1 -0
  295. package/lib/shared/components/case-viewer/case-challenged-access-request/models/index.d.ts +2 -0
  296. package/lib/shared/components/case-viewer/case-challenged-access-request/models/index.d.ts.map +1 -0
  297. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts +12 -0
  298. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts.map +1 -0
  299. package/lib/shared/components/case-viewer/case-challenged-access-success/index.d.ts +2 -0
  300. package/lib/shared/components/case-viewer/case-challenged-access-success/index.d.ts.map +1 -0
  301. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +41 -0
  302. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -0
  303. package/lib/shared/components/case-viewer/case-event-trigger/index.d.ts +2 -0
  304. package/lib/shared/components/case-viewer/case-event-trigger/index.d.ts.map +1 -0
  305. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +90 -0
  306. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -0
  307. package/lib/shared/components/case-viewer/case-full-access-view/index.d.ts +2 -0
  308. package/lib/shared/components/case-viewer/case-full-access-view/index.d.ts.map +1 -0
  309. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts +14 -0
  310. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts.map +1 -0
  311. package/lib/shared/components/case-viewer/case-review-specific-access-reject/index.d.ts +2 -0
  312. package/lib/shared/components/case-viewer/case-review-specific-access-reject/index.d.ts.map +1 -0
  313. package/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.d.ts +49 -0
  314. package/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.d.ts.map +1 -0
  315. package/lib/shared/components/case-viewer/case-review-specific-access-request/index.d.ts +2 -0
  316. package/lib/shared/components/case-viewer/case-review-specific-access-request/index.d.ts.map +1 -0
  317. package/lib/shared/components/case-viewer/case-review-specific-access-request/models/case-review-specific-access-request.enum.d.ts +15 -0
  318. package/lib/shared/components/case-viewer/case-review-specific-access-request/models/case-review-specific-access-request.enum.d.ts.map +1 -0
  319. package/lib/shared/components/case-viewer/case-review-specific-access-request/models/index.d.ts +2 -0
  320. package/lib/shared/components/case-viewer/case-review-specific-access-request/models/index.d.ts.map +1 -0
  321. package/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.d.ts +33 -0
  322. package/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.d.ts.map +1 -0
  323. package/lib/shared/components/case-viewer/case-specific-access-request/index.d.ts +2 -0
  324. package/lib/shared/components/case-viewer/case-specific-access-request/index.d.ts.map +1 -0
  325. package/lib/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.d.ts +9 -0
  326. package/lib/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.d.ts.map +1 -0
  327. package/lib/shared/components/case-viewer/case-specific-access-request/models/index.d.ts +2 -0
  328. package/lib/shared/components/case-viewer/case-specific-access-request/models/index.d.ts.map +1 -0
  329. package/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.d.ts +12 -0
  330. package/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.d.ts.map +1 -0
  331. package/lib/shared/components/case-viewer/case-specific-access-success/index.d.ts +2 -0
  332. package/lib/shared/components/case-viewer/case-specific-access-success/index.d.ts.map +1 -0
  333. package/lib/shared/components/case-viewer/case-view/case-view.component.d.ts +32 -0
  334. package/lib/shared/components/case-viewer/case-view/case-view.component.d.ts.map +1 -0
  335. package/lib/shared/components/case-viewer/case-view/index.d.ts +2 -0
  336. package/lib/shared/components/case-viewer/case-view/index.d.ts.map +1 -0
  337. package/lib/shared/components/case-viewer/case-viewer.component.d.ts +32 -0
  338. package/lib/shared/components/case-viewer/case-viewer.component.d.ts.map +1 -0
  339. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +36 -0
  340. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -0
  341. package/lib/shared/components/case-viewer/index.d.ts +14 -0
  342. package/lib/shared/components/case-viewer/index.d.ts.map +1 -0
  343. package/lib/shared/components/case-viewer/printer/case-printer.component.d.ts +24 -0
  344. package/lib/shared/components/case-viewer/printer/case-printer.component.d.ts.map +1 -0
  345. package/lib/shared/components/case-viewer/printer/index.d.ts +4 -0
  346. package/lib/shared/components/case-viewer/printer/index.d.ts.map +1 -0
  347. package/lib/shared/components/case-viewer/printer/pipes/index.d.ts +2 -0
  348. package/lib/shared/components/case-viewer/printer/pipes/index.d.ts.map +1 -0
  349. package/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.d.ts +24 -0
  350. package/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.d.ts.map +1 -0
  351. package/lib/shared/components/case-viewer/services/case.resolver.d.ts +29 -0
  352. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -0
  353. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts +26 -0
  354. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts.map +1 -0
  355. package/lib/shared/components/case-viewer/services/index.d.ts +3 -0
  356. package/lib/shared/components/case-viewer/services/index.d.ts.map +1 -0
  357. package/lib/shared/components/case-viewer/viewer.routing.d.ts +3 -0
  358. package/lib/shared/components/case-viewer/viewer.routing.d.ts.map +1 -0
  359. package/lib/shared/components/create-case-filters/create-case-filters-selection.model.d.ts +7 -0
  360. package/lib/shared/components/create-case-filters/create-case-filters-selection.model.d.ts.map +1 -0
  361. package/lib/shared/components/create-case-filters/create-case-filters.component.d.ts +57 -0
  362. package/lib/shared/components/create-case-filters/create-case-filters.component.d.ts.map +1 -0
  363. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts +12 -0
  364. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts.map +1 -0
  365. package/lib/shared/components/create-case-filters/index.d.ts +4 -0
  366. package/lib/shared/components/create-case-filters/index.d.ts.map +1 -0
  367. package/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.d.ts +12 -0
  368. package/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.d.ts.map +1 -0
  369. package/lib/shared/components/dialogs/delete-or-cancel-dialog/index.d.ts +2 -0
  370. package/lib/shared/components/dialogs/delete-or-cancel-dialog/index.d.ts.map +1 -0
  371. package/lib/shared/components/dialogs/dialogs.module.d.ts +13 -0
  372. package/lib/shared/components/dialogs/dialogs.module.d.ts.map +1 -0
  373. package/lib/shared/components/dialogs/document-dialog/index.d.ts +2 -0
  374. package/lib/shared/components/dialogs/document-dialog/index.d.ts.map +1 -0
  375. package/lib/shared/components/dialogs/index.d.ts +6 -0
  376. package/lib/shared/components/dialogs/index.d.ts.map +1 -0
  377. package/lib/shared/components/dialogs/remove-dialog/index.d.ts +2 -0
  378. package/lib/shared/components/dialogs/remove-dialog/index.d.ts.map +1 -0
  379. package/lib/shared/components/dialogs/save-or-discard-dialog/index.d.ts +2 -0
  380. package/lib/shared/components/dialogs/save-or-discard-dialog/index.d.ts.map +1 -0
  381. package/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.d.ts +13 -0
  382. package/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.d.ts.map +1 -0
  383. package/lib/shared/components/error/callback-errors.component.d.ts +25 -0
  384. package/lib/shared/components/error/callback-errors.component.d.ts.map +1 -0
  385. package/lib/shared/components/error/domain/error-context.d.ts +5 -0
  386. package/lib/shared/components/error/domain/error-context.d.ts.map +1 -0
  387. package/lib/shared/components/error/domain/index.d.ts +2 -0
  388. package/lib/shared/components/error/domain/index.d.ts.map +1 -0
  389. package/lib/shared/components/error/errors.module.d.ts +10 -0
  390. package/lib/shared/components/error/errors.module.d.ts.map +1 -0
  391. package/lib/shared/components/error/index.d.ts +4 -0
  392. package/lib/shared/components/error/index.d.ts.map +1 -0
  393. package/lib/shared/components/error-message/error-message.component.d.ts +8 -0
  394. package/lib/shared/components/error-message/error-message.component.d.ts.map +1 -0
  395. package/lib/shared/components/error-message/error-message.module.d.ts +12 -0
  396. package/lib/shared/components/error-message/error-message.module.d.ts.map +1 -0
  397. package/lib/shared/components/error-message/index.d.ts +3 -0
  398. package/lib/shared/components/error-message/index.d.ts.map +1 -0
  399. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts +10 -0
  400. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts.map +1 -0
  401. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts +10 -0
  402. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts.map +1 -0
  403. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts +23 -0
  404. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts.map +1 -0
  405. package/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.d.ts +7 -0
  406. package/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.d.ts.map +1 -0
  407. package/lib/shared/components/event-start/components/task-conflict/task-conflict.component.d.ts +9 -0
  408. package/lib/shared/components/event-start/components/task-conflict/task-conflict.component.d.ts.map +1 -0
  409. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts +10 -0
  410. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts.map +1 -0
  411. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +20 -0
  412. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -0
  413. package/lib/shared/components/event-start/event-start.component.d.ts +20 -0
  414. package/lib/shared/components/event-start/event-start.component.d.ts.map +1 -0
  415. package/lib/shared/components/event-start/event-start.module.d.ts +17 -0
  416. package/lib/shared/components/event-start/event-start.module.d.ts.map +1 -0
  417. package/lib/shared/components/event-start/index.d.ts +10 -0
  418. package/lib/shared/components/event-start/index.d.ts.map +1 -0
  419. package/lib/shared/components/event-start/models/event-start-state-machine-context.model.d.ts +13 -0
  420. package/lib/shared/components/event-start/models/event-start-state-machine-context.model.d.ts.map +1 -0
  421. package/lib/shared/components/event-start/models/event-start-states-enum.model.d.ts +15 -0
  422. package/lib/shared/components/event-start/models/event-start-states-enum.model.d.ts.map +1 -0
  423. package/lib/shared/components/event-start/models/index.d.ts +3 -0
  424. package/lib/shared/components/event-start/models/index.d.ts.map +1 -0
  425. package/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.d.ts +15 -0
  426. package/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.d.ts.map +1 -0
  427. package/lib/shared/components/event-start/services/event-start-state-machine.service.d.ts +40 -0
  428. package/lib/shared/components/event-start/services/event-start-state-machine.service.d.ts.map +1 -0
  429. package/lib/shared/components/event-start/services/index.d.ts +2 -0
  430. package/lib/shared/components/event-start/services/index.d.ts.map +1 -0
  431. package/lib/shared/components/event-trigger/event-trigger.component.d.ts +24 -0
  432. package/lib/shared/components/event-trigger/event-trigger.component.d.ts.map +1 -0
  433. package/lib/shared/components/event-trigger/event-trigger.module.d.ts +11 -0
  434. package/lib/shared/components/event-trigger/event-trigger.module.d.ts.map +1 -0
  435. package/lib/shared/components/event-trigger/index.d.ts +3 -0
  436. package/lib/shared/components/event-trigger/index.d.ts.map +1 -0
  437. package/lib/shared/components/index.d.ts +20 -0
  438. package/lib/shared/components/index.d.ts.map +1 -0
  439. package/lib/shared/components/loading-spinner/index.d.ts +2 -0
  440. package/lib/shared/components/loading-spinner/index.d.ts.map +1 -0
  441. package/lib/shared/components/loading-spinner/loading-spinner.component.d.ts +7 -0
  442. package/lib/shared/components/loading-spinner/loading-spinner.component.d.ts.map +1 -0
  443. package/lib/shared/components/pagination/index.d.ts +3 -0
  444. package/lib/shared/components/pagination/index.d.ts.map +1 -0
  445. package/lib/shared/components/pagination/pagination.component.d.ts +26 -0
  446. package/lib/shared/components/pagination/pagination.component.d.ts.map +1 -0
  447. package/lib/shared/components/pagination/pagination.module.d.ts +10 -0
  448. package/lib/shared/components/pagination/pagination.module.d.ts.map +1 -0
  449. package/lib/shared/components/palette/address/index.d.ts +3 -0
  450. package/lib/shared/components/palette/address/index.d.ts.map +1 -0
  451. package/lib/shared/components/palette/case-link/index.d.ts +3 -0
  452. package/lib/shared/components/palette/case-link/index.d.ts.map +1 -0
  453. package/lib/shared/components/palette/complex/index.d.ts +0 -6
  454. package/lib/shared/components/palette/complex/index.d.ts.map +1 -1
  455. package/lib/shared/components/palette/complex/write-complex-field.component.d.ts.map +1 -1
  456. package/lib/shared/components/palette/index.d.ts +32 -0
  457. package/lib/shared/components/palette/index.d.ts.map +1 -0
  458. package/lib/shared/components/palette/palette.module.d.ts +87 -93
  459. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  460. package/lib/shared/components/search-result/index.d.ts +3 -0
  461. package/lib/shared/components/search-result/index.d.ts.map +1 -0
  462. package/lib/shared/components/search-result/search-result.component.d.ts +111 -0
  463. package/lib/shared/components/search-result/search-result.component.d.ts.map +1 -0
  464. package/lib/shared/components/search-result/search-result.module.d.ts +16 -0
  465. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -0
  466. package/lib/shared/components/workbasket-filters/index.d.ts +3 -0
  467. package/lib/shared/components/workbasket-filters/index.d.ts.map +1 -0
  468. package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts +85 -0
  469. package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts.map +1 -0
  470. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts +12 -0
  471. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts.map +1 -0
  472. package/lib/shared/domain/case-view/role-request.model.d.ts.map +1 -1
  473. package/lib/shared/domain/work-allocation/case-worker.model.d.ts +14 -0
  474. package/lib/shared/domain/work-allocation/case-worker.model.d.ts.map +1 -0
  475. package/lib/shared/domain/work-allocation/judicial-worker.model.d.ts +8 -0
  476. package/lib/shared/domain/work-allocation/judicial-worker.model.d.ts.map +1 -0
  477. package/lib/shared/index.d.ts +1 -0
  478. package/lib/shared/index.d.ts.map +1 -1
  479. package/lib/shared/{components/palette → pipes}/complex/ccd-collection-table-value-case-fields.pipe.d.ts +1 -1
  480. package/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.d.ts.map +1 -0
  481. package/lib/shared/{components/palette → pipes}/complex/ccd-cyapage-label-filter.pipe.d.ts +1 -1
  482. package/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.d.ts.map +1 -0
  483. package/lib/shared/{components/palette → pipes}/complex/ccd-read-fields-filter.pipe.d.ts +1 -1
  484. package/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.d.ts.map +1 -0
  485. package/lib/shared/{components/palette → pipes}/complex/ccd-tab-fields.pipe.d.ts +2 -2
  486. package/lib/shared/pipes/complex/ccd-tab-fields.pipe.d.ts.map +1 -0
  487. package/lib/shared/{components/palette → pipes}/complex/cdd-page-fields.pipe.d.ts +2 -2
  488. package/lib/shared/pipes/complex/cdd-page-fields.pipe.d.ts.map +1 -0
  489. package/lib/shared/{components/palette → pipes}/complex/fields-filter.pipe.d.ts +1 -1
  490. package/lib/shared/pipes/complex/fields-filter.pipe.d.ts.map +1 -0
  491. package/lib/shared/pipes/complex/index.d.ts +7 -0
  492. package/lib/shared/pipes/complex/index.d.ts.map +1 -0
  493. package/lib/shared/pipes/index.d.ts +2 -1
  494. package/lib/shared/pipes/index.d.ts.map +1 -1
  495. package/lib/shared/pipes/pipes.module.d.ts +7 -2
  496. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  497. package/package.json +1 -1
  498. package/esm2015/lib/shared/components/palette/complex/ccd-collection-table-value-case-fields.pipe.js +0 -29
  499. package/esm2015/lib/shared/components/palette/complex/ccd-cyapage-label-filter.pipe.js +0 -29
  500. package/esm2015/lib/shared/components/palette/complex/ccd-read-fields-filter.pipe.js +0 -154
  501. package/esm2015/lib/shared/components/palette/complex/ccd-tab-fields.pipe.js +0 -31
  502. package/esm2015/lib/shared/components/palette/complex/cdd-page-fields.pipe.js +0 -39
  503. package/esm2015/lib/shared/components/palette/complex/fields-filter.pipe.js +0 -103
  504. package/lib/shared/components/palette/complex/ccd-collection-table-value-case-fields.pipe.d.ts.map +0 -1
  505. package/lib/shared/components/palette/complex/ccd-cyapage-label-filter.pipe.d.ts.map +0 -1
  506. package/lib/shared/components/palette/complex/ccd-read-fields-filter.pipe.d.ts.map +0 -1
  507. package/lib/shared/components/palette/complex/ccd-tab-fields.pipe.d.ts.map +0 -1
  508. package/lib/shared/components/palette/complex/cdd-page-fields.pipe.d.ts.map +0 -1
  509. package/lib/shared/components/palette/complex/fields-filter.pipe.d.ts.map +0 -1
@@ -0,0 +1,67 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { RouterModule } from '@angular/router';
5
+ import { NgxPaginationModule } from 'ngx-pagination';
6
+ import { LabelSubstitutorModule } from '../../directives/substitutor/label-substitutor.module';
7
+ import { PipesModule } from '../../pipes/pipes.module';
8
+ import { BrowserService } from '../../services/browser/browser.service';
9
+ import { SearchResultViewItemComparatorFactory } from '../../services/search-result/sorting/search-result-view-item-comparator-factory';
10
+ import { ActivityModule } from '../activity/activity.module';
11
+ import { PaginationModule } from '../pagination/pagination.module';
12
+ import { SearchResultComponent } from './search-result.component';
13
+ import * as i0 from "@angular/core";
14
+ export class SearchResultModule {
15
+ }
16
+ SearchResultModule.ɵfac = function SearchResultModule_Factory(t) { return new (t || SearchResultModule)(); };
17
+ SearchResultModule.ɵmod = i0.ɵɵdefineNgModule({ type: SearchResultModule });
18
+ SearchResultModule.ɵinj = i0.ɵɵdefineInjector({ providers: [
19
+ SearchResultViewItemComparatorFactory,
20
+ BrowserService
21
+ ], imports: [[
22
+ CommonModule,
23
+ NgxPaginationModule,
24
+ RouterModule,
25
+ FormsModule,
26
+ ReactiveFormsModule,
27
+ LabelSubstitutorModule,
28
+ PipesModule,
29
+ ActivityModule,
30
+ PaginationModule
31
+ ]] });
32
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(SearchResultModule, { declarations: [SearchResultComponent], imports: [CommonModule,
33
+ NgxPaginationModule,
34
+ RouterModule,
35
+ FormsModule,
36
+ ReactiveFormsModule,
37
+ LabelSubstitutorModule,
38
+ PipesModule,
39
+ ActivityModule,
40
+ PaginationModule], exports: [SearchResultComponent] }); })();
41
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultModule, [{
42
+ type: NgModule,
43
+ args: [{
44
+ imports: [
45
+ CommonModule,
46
+ NgxPaginationModule,
47
+ RouterModule,
48
+ FormsModule,
49
+ ReactiveFormsModule,
50
+ LabelSubstitutorModule,
51
+ PipesModule,
52
+ ActivityModule,
53
+ PaginationModule
54
+ ],
55
+ declarations: [
56
+ SearchResultComponent
57
+ ],
58
+ exports: [
59
+ SearchResultComponent,
60
+ ],
61
+ providers: [
62
+ SearchResultViewItemComparatorFactory,
63
+ BrowserService
64
+ ]
65
+ }]
66
+ }], null, null); })();
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRS9GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0saUZBQWlGLENBQUM7QUFDeEksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQXlCbEUsTUFBTSxPQUFPLGtCQUFrQjs7b0ZBQWxCLGtCQUFrQjtzREFBbEIsa0JBQWtCOzJEQUxsQjtRQUNULHFDQUFxQztRQUNyQyxjQUFjO0tBQ2YsWUFwQlE7WUFDUCxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0QixXQUFXO1lBQ1gsY0FBYztZQUNkLGdCQUFnQjtTQUNqQjt3RkFZVSxrQkFBa0IsbUJBVjNCLHFCQUFxQixhQVhyQixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLHNCQUFzQjtRQUN0QixXQUFXO1FBQ1gsY0FBYztRQUNkLGdCQUFnQixhQU1oQixxQkFBcUI7dUZBT1osa0JBQWtCO2NBdkI5QixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixzQkFBc0I7b0JBQ3RCLFdBQVc7b0JBQ1gsY0FBYztvQkFDZCxnQkFBZ0I7aUJBQ2pCO2dCQUNELFlBQVksRUFBRTtvQkFDWixxQkFBcUI7aUJBQ3RCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxxQkFBcUI7aUJBQ3RCO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxxQ0FBcUM7b0JBQ3JDLGNBQWM7aUJBQ2Y7YUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmd4UGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcbmltcG9ydCB7IExhYmVsU3Vic3RpdHV0b3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3N1YnN0aXR1dG9yL2xhYmVsLXN1YnN0aXR1dG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMYWJlbFN1YnN0aXR1dG9yTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zdWJzdGl0dXRvci9sYWJlbC1zdWJzdGl0dXRvci5tb2R1bGUnO1xuaW1wb3J0IHsgQ2FzZVJlZmVyZW5jZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9jYXNlLXJlZmVyZW5jZS9jYXNlLXJlZmVyZW5jZS5waXBlJztcbmltcG9ydCB7IFBpcGVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vcGlwZXMvcGlwZXMubW9kdWxlJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYnJvd3Nlci9icm93c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC1yZXN1bHQvc29ydGluZy9zZWFyY2gtcmVzdWx0LXZpZXctaXRlbS1jb21wYXJhdG9yLWZhY3RvcnknO1xuaW1wb3J0IHsgQWN0aXZpdHlNb2R1bGUgfSBmcm9tICcuLi9hY3Rpdml0eS9hY3Rpdml0eS5tb2R1bGUnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJy4uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUnO1xuaW1wb3J0IHsgUGFsZXR0ZU1vZHVsZSB9IGZyb20gJy4uL3BhbGV0dGUvcGFsZXR0ZS5tb2R1bGUnO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0Q29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTmd4UGFnaW5hdGlvbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBMYWJlbFN1YnN0aXR1dG9yTW9kdWxlLFxuICAgIFBpcGVzTW9kdWxlLFxuICAgIEFjdGl2aXR5TW9kdWxlLFxuICAgIFBhZ2luYXRpb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2VhcmNoUmVzdWx0Q29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTZWFyY2hSZXN1bHRDb21wb25lbnQsXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnksXG4gICAgQnJvd3NlclNlcnZpY2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hSZXN1bHRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './workbasket-filters.module';
2
+ export * from './workbasket-filters.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvd29ya2Jhc2tldC1maWx0ZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd29ya2Jhc2tldC1maWx0ZXJzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3dvcmtiYXNrZXQtZmlsdGVycy5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,448 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { take } from 'rxjs/operators';
5
+ import { AlertService } from '../../services/alert/alert.service';
6
+ import { FieldsUtils } from '../../services/fields/fields.utils';
7
+ import { JurisdictionService } from '../../services/jurisdiction/jurisdiction.service';
8
+ import { OrderService } from '../../services/order/order.service';
9
+ import { WindowService } from '../../services/window/window.service';
10
+ import { WorkbasketInputFilterService } from '../../services/workbasket/workbasket-input-filter.service';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/router";
13
+ import * as i2 from "../../services/workbasket/workbasket-input-filter.service";
14
+ import * as i3 from "../../services/order/order.service";
15
+ import * as i4 from "../../services/jurisdiction/jurisdiction.service";
16
+ import * as i5 from "../../services/alert/alert.service";
17
+ import * as i6 from "../../services/window/window.service";
18
+ import * as i7 from "@angular/forms";
19
+ import * as i8 from "@angular/common";
20
+ import * as i9 from "../../directives/conditional-show/conditional-show-form.directive";
21
+ import * as i10 from "../palette/base-field/field-write.component";
22
+ function WorkbasketFiltersComponent_option_7_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵelementStart(0, "option", 11);
24
+ i0.ɵɵtext(1, "Select a value");
25
+ i0.ɵɵelementEnd();
26
+ } if (rf & 2) {
27
+ i0.ɵɵproperty("ngValue", null);
28
+ } }
29
+ function WorkbasketFiltersComponent_option_8_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "option", 11);
31
+ i0.ɵɵtext(1);
32
+ i0.ɵɵelementEnd();
33
+ } if (rf & 2) {
34
+ const j_r6 = ctx.$implicit;
35
+ i0.ɵɵproperty("ngValue", j_r6);
36
+ i0.ɵɵadvance(1);
37
+ i0.ɵɵtextInterpolate(j_r6.name);
38
+ } }
39
+ function WorkbasketFiltersComponent_option_13_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵelementStart(0, "option", 11);
41
+ i0.ɵɵtext(1, "Select a value");
42
+ i0.ɵɵelementEnd();
43
+ } if (rf & 2) {
44
+ i0.ɵɵproperty("ngValue", null);
45
+ } }
46
+ function WorkbasketFiltersComponent_option_14_Template(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵelementStart(0, "option", 11);
48
+ i0.ɵɵtext(1);
49
+ i0.ɵɵelementEnd();
50
+ } if (rf & 2) {
51
+ const ct_r7 = ctx.$implicit;
52
+ i0.ɵɵproperty("ngValue", ct_r7);
53
+ i0.ɵɵadvance(1);
54
+ i0.ɵɵtextInterpolate(ct_r7.name);
55
+ } }
56
+ function WorkbasketFiltersComponent_option_21_Template(rf, ctx) { if (rf & 1) {
57
+ i0.ɵɵelementStart(0, "option", 11);
58
+ i0.ɵɵtext(1);
59
+ i0.ɵɵelementEnd();
60
+ } if (rf & 2) {
61
+ const cs_r8 = ctx.$implicit;
62
+ i0.ɵɵproperty("ngValue", cs_r8);
63
+ i0.ɵɵadvance(1);
64
+ i0.ɵɵtextInterpolate(cs_r8.name);
65
+ } }
66
+ function WorkbasketFiltersComponent_ng_container_22_div_2_Template(rf, ctx) { if (rf & 1) {
67
+ const _r12 = i0.ɵɵgetCurrentView();
68
+ i0.ɵɵelementStart(0, "div", 2);
69
+ i0.ɵɵelementStart(1, "ccd-field-write", 18);
70
+ i0.ɵɵlistener("keyup.enter", function WorkbasketFiltersComponent_ng_container_22_div_2_Template_ccd_field_write_keyup_enter_1_listener() { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(2); return ctx_r11.apply(null); });
71
+ i0.ɵɵelementEnd();
72
+ i0.ɵɵelementEnd();
73
+ } if (rf & 2) {
74
+ const workbasketInput_r10 = ctx.$implicit;
75
+ const ctx_r9 = i0.ɵɵnextContext(2);
76
+ i0.ɵɵadvance(1);
77
+ i0.ɵɵproperty("caseField", workbasketInput_r10.field)("formGroup", ctx_r9.formGroup)("isExpanded", true)("isInSearchBlock", true);
78
+ } }
79
+ function WorkbasketFiltersComponent_ng_container_22_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelementContainerStart(0, 15);
81
+ i0.ɵɵelementStart(1, "div", 16);
82
+ i0.ɵɵtemplate(2, WorkbasketFiltersComponent_ng_container_22_div_2_Template, 2, 4, "div", 17);
83
+ i0.ɵɵelementEnd();
84
+ i0.ɵɵelementContainerEnd();
85
+ } if (rf & 2) {
86
+ const ctx_r5 = i0.ɵɵnextContext();
87
+ i0.ɵɵproperty("formGroup", ctx_r5.formGroup)("contextFields", ctx_r5.caseFields);
88
+ i0.ɵɵadvance(2);
89
+ i0.ɵɵproperty("ngForOf", ctx_r5.workbasketInputs);
90
+ } }
91
+ const FORM_GROUP_VAL_LOC_STORAGE = 'workbasket-filter-form-group-value';
92
+ const SAVED_QUERY_PARAM_LOC_STORAGE = 'savedQueryParams';
93
+ const REGION_LIST_AND_FRC_FILTER = 'regionList';
94
+ export class WorkbasketFiltersComponent {
95
+ constructor(route, workbasketInputFilterService, orderService, jurisdictionService, alertService, windowService) {
96
+ this.route = route;
97
+ this.workbasketInputFilterService = workbasketInputFilterService;
98
+ this.orderService = orderService;
99
+ this.jurisdictionService = jurisdictionService;
100
+ this.alertService = alertService;
101
+ this.windowService = windowService;
102
+ this.onApply = new EventEmitter();
103
+ this.onReset = new EventEmitter();
104
+ this.formGroup = new FormGroup({});
105
+ this.initialised = false;
106
+ }
107
+ ngOnInit() {
108
+ this.selected = {};
109
+ this.route.queryParams.subscribe(params => {
110
+ if (!this.initialised || !params || !Object.keys(params).length) {
111
+ this.initFilters(false);
112
+ this.initialised = true;
113
+ }
114
+ });
115
+ }
116
+ apply(init) {
117
+ // Save filters as query parameters for current route
118
+ const queryParams = {};
119
+ if (this.selected.jurisdiction) {
120
+ queryParams[WorkbasketFiltersComponent.PARAM_JURISDICTION] = this.selected.jurisdiction.id;
121
+ }
122
+ if (this.selected.caseType) {
123
+ queryParams[WorkbasketFiltersComponent.PARAM_CASE_TYPE] = this.selected.caseType.id;
124
+ }
125
+ if (this.selected.caseState) {
126
+ queryParams[WorkbasketFiltersComponent.PARAM_CASE_STATE] = this.selected.caseState.id;
127
+ }
128
+ // without explicitly preserving alerts any message on the page
129
+ // would be cleared out because of this initial navigation.
130
+ // The above is only true if no alerts were set prior to loading case list page.
131
+ if (!this.alertService.isPreserveAlerts()) {
132
+ this.alertService.setPreserveAlerts(!this.initialised);
133
+ }
134
+ if (Object.keys(this.formGroup.controls).length === 0) {
135
+ this.selected.formGroup = JSON.parse(localStorage.getItem(FORM_GROUP_VAL_LOC_STORAGE));
136
+ }
137
+ else {
138
+ // Update form group filters
139
+ this.updateFormGroupFilters();
140
+ this.selected.formGroup = this.formGroup;
141
+ }
142
+ this.selected.init = init;
143
+ this.selected.page = 1;
144
+ this.selected.metadataFields = this.getMetadataFields();
145
+ if (init) {
146
+ this.windowService.setLocalStorage(SAVED_QUERY_PARAM_LOC_STORAGE, JSON.stringify(queryParams));
147
+ if (Object.keys(this.formGroup.controls).length > 0) {
148
+ this.windowService.setLocalStorage(FORM_GROUP_VAL_LOC_STORAGE, JSON.stringify(this.formGroup.value));
149
+ }
150
+ }
151
+ // Apply filters
152
+ this.onApply.emit({ selected: this.selected, queryParams });
153
+ this.setFocusToTop();
154
+ }
155
+ reset() {
156
+ this.windowService.removeLocalStorage(FORM_GROUP_VAL_LOC_STORAGE);
157
+ this.windowService.removeLocalStorage(SAVED_QUERY_PARAM_LOC_STORAGE);
158
+ setTimeout(() => {
159
+ this.resetFieldsWhenNoDefaults();
160
+ this.onReset.emit(true);
161
+ }, 500);
162
+ }
163
+ getMetadataFields() {
164
+ if (this.workbasketInputs) {
165
+ return this.workbasketInputs
166
+ .filter(workbasketInput => workbasketInput.field.metadata === true)
167
+ .map(workbasketInput => workbasketInput.field.id);
168
+ }
169
+ }
170
+ onJurisdictionIdChange() {
171
+ if (this.selected.jurisdiction) {
172
+ this.jurisdictionService.announceSelectedJurisdiction(this.selected.jurisdiction);
173
+ this.selectedJurisdictionCaseTypes = this.selected.jurisdiction.caseTypes.length > 0 ? this.selected.jurisdiction.caseTypes : null;
174
+ // Line was too long for linting so refactored it.
175
+ if (this.workbasketDefaults && this.selectedJurisdictionCaseTypes) {
176
+ this.selected.caseType = this.selectedJurisdictionCaseTypes[0];
177
+ }
178
+ else {
179
+ this.selected.caseType = null;
180
+ }
181
+ this.selected.caseState = null;
182
+ this.clearWorkbasketInputs();
183
+ if (!this.isApplyButtonDisabled()) {
184
+ this.onCaseTypeIdChange();
185
+ }
186
+ }
187
+ else {
188
+ this.resetCaseType();
189
+ this.resetCaseState();
190
+ }
191
+ }
192
+ onCaseTypeIdChange() {
193
+ if (this.selected.caseType) {
194
+ this.selectedCaseTypeStates = this.sortStates(this.selected.caseType.states);
195
+ this.selected.caseState = null;
196
+ this.formGroup = new FormGroup({});
197
+ this.clearWorkbasketInputs();
198
+ if (!this.isApplyButtonDisabled()) {
199
+ this.workbasketInputFilterService.getWorkbasketInputs(this.selected.jurisdiction.id, this.selected.caseType.id).pipe(take(1)).subscribe(workbasketInputs => {
200
+ this.workbasketInputsReady = true;
201
+ this.workbasketInputs = workbasketInputs
202
+ .sort(this.orderService.sortAsc);
203
+ const formValue = this.windowService.getLocalStorage(FORM_GROUP_VAL_LOC_STORAGE);
204
+ workbasketInputs.forEach(item => {
205
+ if (item.field.elementPath) {
206
+ item.field.id = item.field.id + '.' + item.field.elementPath;
207
+ }
208
+ item.field.label = item.label;
209
+ if (formValue) {
210
+ const searchFormValueObject = JSON.parse(formValue);
211
+ item.field.value = searchFormValueObject[item.field.id];
212
+ }
213
+ });
214
+ this.getCaseFields();
215
+ }, error => {
216
+ console.log('Workbasket input fields request will be discarded reason: ', error.message);
217
+ });
218
+ }
219
+ }
220
+ else {
221
+ this.resetCaseState();
222
+ }
223
+ }
224
+ isCaseTypesDropdownDisabled() {
225
+ return !this.selectedJurisdictionCaseTypes;
226
+ }
227
+ isCaseStatesDropdownDisabled() {
228
+ return !this.selected.caseType || !(this.selected.caseType.states && this.selected.caseType.states.length > 0);
229
+ }
230
+ isApplyButtonDisabled() {
231
+ return !(this.selected.jurisdiction && this.selected.caseType);
232
+ }
233
+ isSearchableAndWorkbasketInputsReady() {
234
+ return this.selected.jurisdiction && this.selected.caseType && this.workbasketInputsReady;
235
+ }
236
+ /**
237
+ * This method is used to clear the previously used
238
+ * form group control filter values to make sure only the
239
+ * currently selected form group control filter values are present.
240
+ *
241
+ * Has been implemented for 'Region and FRC filters' and can be extended
242
+ * in future to incorporate other dynamic filters.
243
+ */
244
+ updateFormGroupFilters() {
245
+ // Read the form group local storage
246
+ const formGroupLS = JSON.parse(this.windowService.getLocalStorage(FORM_GROUP_VAL_LOC_STORAGE));
247
+ // Form group local storage is available and contains regionList property
248
+ if (!!formGroupLS && formGroupLS.hasOwnProperty(REGION_LIST_AND_FRC_FILTER)) {
249
+ if (this.formGroup.get(REGION_LIST_AND_FRC_FILTER)) {
250
+ // If regionList value does not match between local storage and form group
251
+ // then the filter value has been changed and we need to clear the old filter values
252
+ if (formGroupLS[REGION_LIST_AND_FRC_FILTER] !== this.formGroup.get(REGION_LIST_AND_FRC_FILTER).value) {
253
+ for (const key in formGroupLS) {
254
+ if (formGroupLS.hasOwnProperty(key)) {
255
+ const value = formGroupLS[key];
256
+ // Clear the filter form group control values if it has a value in local storage
257
+ // The regionList form group control value should be ignored as it always contain the latest value
258
+ if (key !== REGION_LIST_AND_FRC_FILTER && value != null) {
259
+ this.formGroup.get(key).setValue(null);
260
+ }
261
+ }
262
+ }
263
+ }
264
+ }
265
+ }
266
+ }
267
+ sortStates(states) {
268
+ return states.sort(this.orderService.sortAsc);
269
+ }
270
+ /**
271
+ * Try to initialise filters based on query parameters or workbasket defaults.
272
+ * Query parameters, when available, take precedence over workbasket defaults.
273
+ */
274
+ initFilters(init) {
275
+ const savedQueryParams = this.windowService.getLocalStorage(SAVED_QUERY_PARAM_LOC_STORAGE);
276
+ const routeSnapshot = this.route.snapshot;
277
+ if (savedQueryParams) {
278
+ routeSnapshot.queryParams = JSON.parse(savedQueryParams);
279
+ }
280
+ const selectedJurisdictionId = routeSnapshot.queryParams[WorkbasketFiltersComponent.PARAM_JURISDICTION] ||
281
+ (this.defaults && this.defaults.jurisdiction_id);
282
+ if (selectedJurisdictionId) {
283
+ this.selected.jurisdiction = this.jurisdictions.find(j => selectedJurisdictionId === j.id);
284
+ if (this.selected.jurisdiction && this.selected.jurisdiction.caseTypes.length > 0) {
285
+ this.selectedJurisdictionCaseTypes = this.selected.jurisdiction.caseTypes;
286
+ this.selected.caseType = this.selectCaseType(this.selected, this.selectedJurisdictionCaseTypes, routeSnapshot);
287
+ if (this.selected.caseType) {
288
+ this.onCaseTypeIdChange();
289
+ this.selected.caseState = this.selectCaseState(this.selected.caseType, routeSnapshot);
290
+ }
291
+ this.workbasketDefaults = true;
292
+ }
293
+ }
294
+ else {
295
+ this.selected.jurisdiction = null;
296
+ }
297
+ this.apply(init);
298
+ }
299
+ selectCaseState(caseType, routeSnapshot) {
300
+ let caseState;
301
+ if (caseType) {
302
+ const selectedCaseStateId = this.selectCaseStateIdFromQueryOrDefaults(routeSnapshot, (this.defaults && this.defaults.state_id));
303
+ caseState = caseType.states.find(ct => selectedCaseStateId === ct.id);
304
+ }
305
+ return caseState ? caseState : null;
306
+ }
307
+ selectCaseStateIdFromQueryOrDefaults(routeSnapshot, defaultCaseStateId) {
308
+ return routeSnapshot.queryParams[WorkbasketFiltersComponent.PARAM_CASE_STATE] || defaultCaseStateId;
309
+ }
310
+ selectCaseType(selected, caseTypes, routeSnapshot) {
311
+ let caseType;
312
+ if (selected.jurisdiction) {
313
+ const selectedCaseTypeId = this.selectCaseTypeIdFromQueryOrDefaults(routeSnapshot, (this.defaults && this.defaults.case_type_id));
314
+ caseType = caseTypes.find(ct => selectedCaseTypeId === ct.id);
315
+ }
316
+ return caseType ? caseType : caseTypes[0];
317
+ }
318
+ selectCaseTypeIdFromQueryOrDefaults(routeSnapshot, defaultCaseTypeId) {
319
+ return routeSnapshot.queryParams[WorkbasketFiltersComponent.PARAM_CASE_TYPE] || defaultCaseTypeId;
320
+ }
321
+ resetFieldsWhenNoDefaults() {
322
+ this.resetCaseState();
323
+ this.resetCaseType();
324
+ this.clearWorkbasketInputs();
325
+ this.workbasketDefaults = false;
326
+ this.selected.jurisdiction = null;
327
+ this.initialised = false;
328
+ this.initFilters(true);
329
+ }
330
+ clearWorkbasketInputs() {
331
+ this.workbasketInputsReady = false;
332
+ this.workbasketInputs = [];
333
+ }
334
+ resetCaseState() {
335
+ this.defaults.state_id = null;
336
+ this.selected.caseState = null;
337
+ this.selectedCaseTypeStates = null;
338
+ }
339
+ resetCaseType() {
340
+ this.selected.caseType = undefined; // option should be blank rather than "Select a value" in case of reset.
341
+ this.selectedJurisdictionCaseTypes = null;
342
+ }
343
+ setFocusToTop() {
344
+ window.scrollTo(0, 0);
345
+ const topContainer = document.getElementById('search-result-heading__text');
346
+ if (topContainer) {
347
+ topContainer.focus();
348
+ }
349
+ }
350
+ getCaseFields() {
351
+ if (this.workbasketInputs) {
352
+ this.caseFields = this.workbasketInputs.map(item => FieldsUtils.convertToCaseField(item.field));
353
+ }
354
+ }
355
+ }
356
+ WorkbasketFiltersComponent.PARAM_JURISDICTION = 'jurisdiction';
357
+ WorkbasketFiltersComponent.PARAM_CASE_TYPE = 'case-type';
358
+ WorkbasketFiltersComponent.PARAM_CASE_STATE = 'case-state';
359
+ WorkbasketFiltersComponent.ɵfac = function WorkbasketFiltersComponent_Factory(t) { return new (t || WorkbasketFiltersComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.WorkbasketInputFilterService), i0.ɵɵdirectiveInject(i3.OrderService), i0.ɵɵdirectiveInject(i4.JurisdictionService), i0.ɵɵdirectiveInject(i5.AlertService), i0.ɵɵdirectiveInject(i6.WindowService)); };
360
+ WorkbasketFiltersComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WorkbasketFiltersComponent, selectors: [["ccd-workbasket-filters"]], inputs: { jurisdictions: "jurisdictions", defaults: "defaults" }, outputs: { onApply: "onApply", onReset: "onReset" }, decls: 28, vars: 13, consts: [["aria-label", "Filters", 1, "heading-h2"], [1, "global-display"], [1, "form-group"], ["for", "wb-jurisdiction", 1, "form-label"], ["id", "wb-jurisdiction", "name", "jurisdiction", "aria-controls", "search-result", 1, "form-control", "form-control-3-4", "ccd-dropdown", 3, "ngModel", "ngModelChange", "change"], [3, "ngValue", 4, "ngIf"], [3, "ngValue", 4, "ngFor", "ngForOf"], ["for", "wb-case-type", 1, "form-label"], ["id", "wb-case-type", "name", "case-type", "aria-controls", "search-result", 1, "form-control", "form-control-3-4", "ccd-dropdown", 3, "ngModel", "disabled", "ngModelChange", "change"], ["for", "wb-case-state", 1, "form-label"], ["id", "wb-case-state", "name", "state", "aria-controls", "search-result", 1, "form-control", "form-control-3-4", "ccd-dropdown", 3, "ngModel", "disabled", "ngModelChange"], [3, "ngValue"], ["ccdConditionalShowForm", "", 3, "formGroup", "contextFields", 4, "ngIf"], ["type", "button", "title", "Apply filter", "aria-label", "Apply filter", 1, "button", "workbasket-filters-apply", 3, "disabled", "click"], ["type", "button", "title", "Reset filter", "aria-label", "Reset filter", 1, "button", "button-secondary", 3, "click"], ["ccdConditionalShowForm", "", 3, "formGroup", "contextFields"], ["id", "dynamicFilters"], ["class", "form-group", 4, "ngFor", "ngForOf"], [3, "caseField", "formGroup", "isExpanded", "isInSearchBlock", "keyup.enter"]], template: function WorkbasketFiltersComponent_Template(rf, ctx) { if (rf & 1) {
361
+ i0.ɵɵelementStart(0, "h2", 0);
362
+ i0.ɵɵtext(1, "Filters");
363
+ i0.ɵɵelementEnd();
364
+ i0.ɵɵelementStart(2, "form", 1);
365
+ i0.ɵɵelementStart(3, "div", 2);
366
+ i0.ɵɵelementStart(4, "label", 3);
367
+ i0.ɵɵtext(5, "Jurisdiction");
368
+ i0.ɵɵelementEnd();
369
+ i0.ɵɵelementStart(6, "select", 4);
370
+ i0.ɵɵlistener("ngModelChange", function WorkbasketFiltersComponent_Template_select_ngModelChange_6_listener($event) { return ctx.selected.jurisdiction = $event; })("change", function WorkbasketFiltersComponent_Template_select_change_6_listener() { return ctx.onJurisdictionIdChange(); });
371
+ i0.ɵɵtemplate(7, WorkbasketFiltersComponent_option_7_Template, 2, 1, "option", 5);
372
+ i0.ɵɵtemplate(8, WorkbasketFiltersComponent_option_8_Template, 2, 2, "option", 6);
373
+ i0.ɵɵelementEnd();
374
+ i0.ɵɵelementEnd();
375
+ i0.ɵɵelementStart(9, "div", 2);
376
+ i0.ɵɵelementStart(10, "label", 7);
377
+ i0.ɵɵtext(11, "Case type");
378
+ i0.ɵɵelementEnd();
379
+ i0.ɵɵelementStart(12, "select", 8);
380
+ i0.ɵɵlistener("ngModelChange", function WorkbasketFiltersComponent_Template_select_ngModelChange_12_listener($event) { return ctx.selected.caseType = $event; })("change", function WorkbasketFiltersComponent_Template_select_change_12_listener() { return ctx.onCaseTypeIdChange(); });
381
+ i0.ɵɵtemplate(13, WorkbasketFiltersComponent_option_13_Template, 2, 1, "option", 5);
382
+ i0.ɵɵtemplate(14, WorkbasketFiltersComponent_option_14_Template, 2, 2, "option", 6);
383
+ i0.ɵɵelementEnd();
384
+ i0.ɵɵelementEnd();
385
+ i0.ɵɵelementStart(15, "div", 2);
386
+ i0.ɵɵelementStart(16, "label", 9);
387
+ i0.ɵɵtext(17, "State");
388
+ i0.ɵɵelementEnd();
389
+ i0.ɵɵelementStart(18, "select", 10);
390
+ i0.ɵɵlistener("ngModelChange", function WorkbasketFiltersComponent_Template_select_ngModelChange_18_listener($event) { return ctx.selected.caseState = $event; });
391
+ i0.ɵɵelementStart(19, "option", 11);
392
+ i0.ɵɵtext(20, "Any");
393
+ i0.ɵɵelementEnd();
394
+ i0.ɵɵtemplate(21, WorkbasketFiltersComponent_option_21_Template, 2, 2, "option", 6);
395
+ i0.ɵɵelementEnd();
396
+ i0.ɵɵelementEnd();
397
+ i0.ɵɵtemplate(22, WorkbasketFiltersComponent_ng_container_22_Template, 3, 3, "ng-container", 12);
398
+ i0.ɵɵelementStart(23, "button", 13);
399
+ i0.ɵɵlistener("click", function WorkbasketFiltersComponent_Template_button_click_23_listener() { return ctx.apply(true); });
400
+ i0.ɵɵtext(24, "Apply");
401
+ i0.ɵɵelementEnd();
402
+ i0.ɵɵtext(25, " \u00A0\u00A0\u00A0 ");
403
+ i0.ɵɵelementStart(26, "button", 14);
404
+ i0.ɵɵlistener("click", function WorkbasketFiltersComponent_Template_button_click_26_listener() { return ctx.reset(); });
405
+ i0.ɵɵtext(27, "Reset");
406
+ i0.ɵɵelementEnd();
407
+ i0.ɵɵelementEnd();
408
+ } if (rf & 2) {
409
+ i0.ɵɵadvance(6);
410
+ i0.ɵɵproperty("ngModel", ctx.selected.jurisdiction);
411
+ i0.ɵɵadvance(1);
412
+ i0.ɵɵproperty("ngIf", !ctx.workbasketDefaults);
413
+ i0.ɵɵadvance(1);
414
+ i0.ɵɵproperty("ngForOf", ctx.jurisdictions);
415
+ i0.ɵɵadvance(4);
416
+ i0.ɵɵproperty("ngModel", ctx.selected.caseType)("disabled", ctx.isCaseTypesDropdownDisabled());
417
+ i0.ɵɵadvance(1);
418
+ i0.ɵɵproperty("ngIf", !ctx.workbasketDefaults);
419
+ i0.ɵɵadvance(1);
420
+ i0.ɵɵproperty("ngForOf", ctx.selectedJurisdictionCaseTypes);
421
+ i0.ɵɵadvance(4);
422
+ i0.ɵɵproperty("ngModel", ctx.selected.caseState)("disabled", ctx.isCaseStatesDropdownDisabled());
423
+ i0.ɵɵadvance(1);
424
+ i0.ɵɵproperty("ngValue", null);
425
+ i0.ɵɵadvance(2);
426
+ i0.ɵɵproperty("ngForOf", ctx.selectedCaseTypeStates);
427
+ i0.ɵɵadvance(1);
428
+ i0.ɵɵproperty("ngIf", ctx.isSearchableAndWorkbasketInputsReady());
429
+ i0.ɵɵadvance(1);
430
+ i0.ɵɵproperty("disabled", ctx.isApplyButtonDisabled());
431
+ } }, directives: [i7.ɵangular_packages_forms_forms_ba, i7.NgControlStatusGroup, i7.NgForm, i7.SelectControlValueAccessor, i7.NgControlStatus, i7.NgModel, i8.NgIf, i8.NgForOf, i7.NgSelectOption, i7.ɵangular_packages_forms_forms_z, i9.ConditionalShowFormDirective, i7.FormGroupDirective, i10.FieldWriteComponent], styles: ["div[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{font-family:nta,Arial,sans-serif;font-weight:400;text-transform:none;font-size:11pt;line-height:1.2727272727}@media (min-width:641px){div[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{font-size:12pt;line-height:1.3333333333}}.form-group[_ngcontent-%COMP%]{margin-bottom:7px}.ccd-dropdown[_ngcontent-%COMP%]{width:100%}span.heading-medium[_ngcontent-%COMP%]{margin-top:0}"] });
432
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkbasketFiltersComponent, [{
433
+ type: Component,
434
+ args: [{
435
+ selector: 'ccd-workbasket-filters',
436
+ templateUrl: './workbasket-filters.component.html',
437
+ styleUrls: ['./workbasket-filters.component.scss']
438
+ }]
439
+ }], function () { return [{ type: i1.ActivatedRoute }, { type: i2.WorkbasketInputFilterService }, { type: i3.OrderService }, { type: i4.JurisdictionService }, { type: i5.AlertService }, { type: i6.WindowService }]; }, { jurisdictions: [{
440
+ type: Input
441
+ }], defaults: [{
442
+ type: Input
443
+ }], onApply: [{
444
+ type: Output
445
+ }], onReset: [{
446
+ type: Output
447
+ }] }); })();
448
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Jhc2tldC1maWx0ZXJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy93b3JrYmFza2V0LWZpbHRlcnMvd29ya2Jhc2tldC1maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy93b3JrYmFza2V0LWZpbHRlcnMvd29ya2Jhc2tldC1maWx0ZXJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQTBCLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXRDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ05uRyxrQ0FBcUQ7SUFBQSw4QkFBYztJQUFBLGlCQUFTOztJQUF4Qyw4QkFBZ0I7OztJQUNwRCxrQ0FB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ZixlQUErQjtRQUEvQiwrQ0FBK0IsK0NBQUE7UUFFN0MsZUFBeUI7UUFBekIsOENBQXlCO1FBQ1gsZUFBZ0M7UUFBaEMsMkRBQWdDO1FBT3BDLGVBQWdDO1FBQWhDLGdEQUFnQyxnREFBQTtRQUUzQyxlQUFnQjtRQUFoQiw4QkFBZ0I7UUFDRCxlQUF5QjtRQUF6QixvREFBeUI7UUFJZCxlQUE0QztRQUE1QyxpRUFBNEM7UUFRRSxlQUFvQztRQUFwQyxzREFBb0M7O3VGRGhCN0csMEJBQTBCO2NBTHRDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUscUNBQXFDO2dCQUNsRCxTQUFTLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQzthQUNuRDtnT0FTUSxhQUFhO2tCQURuQixLQUFLO1lBSUMsUUFBUTtrQkFEZCxLQUFLO1lBSUMsT0FBTztrQkFEYixNQUFNO1lBSUEsT0FBTztrQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVN0YXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1zdGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlVHlwZUxpdGUgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLXR5cGUtbGl0ZS5tb2RlbCc7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb24gfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9qdXJpc2RpY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgV29ya2Jhc2tldElucHV0TW9kZWwgfSBmcm9tICcuLi8uLi9kb21haW4vd29ya2Jhc2tldC93b3JrYmFza2V0LWlucHV0Lm1vZGVsJztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IEp1cmlzZGljdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9qdXJpc2RpY3Rpb24vanVyaXNkaWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3JkZXIvb3JkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93L3dpbmRvdy5zZXJ2aWNlJztcbmltcG9ydCB7IFdvcmtiYXNrZXRJbnB1dEZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy93b3JrYmFza2V0L3dvcmtiYXNrZXQtaW5wdXQtZmlsdGVyLnNlcnZpY2UnO1xuXG5jb25zdCBGT1JNX0dST1VQX1ZBTF9MT0NfU1RPUkFHRSA9ICd3b3JrYmFza2V0LWZpbHRlci1mb3JtLWdyb3VwLXZhbHVlJztcbmNvbnN0IFNBVkVEX1FVRVJZX1BBUkFNX0xPQ19TVE9SQUdFID0gJ3NhdmVkUXVlcnlQYXJhbXMnO1xuY29uc3QgUkVHSU9OX0xJU1RfQU5EX0ZSQ19GSUxURVIgPSAncmVnaW9uTGlzdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13b3JrYmFza2V0LWZpbHRlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Jhc2tldC1maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Jhc2tldC1maWx0ZXJzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV29ya2Jhc2tldEZpbHRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSQU1fSlVSSVNESUNUSU9OID0gJ2p1cmlzZGljdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSQU1fQ0FTRV9UWVBFID0gJ2Nhc2UtdHlwZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUEFSQU1fQ0FTRV9TVEFURSA9ICdjYXNlLXN0YXRlJztcbiAgcHVibGljIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBqdXJpc2RpY3Rpb25zOiBKdXJpc2RpY3Rpb25bXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGVmYXVsdHM7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvbkFwcGx5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG9uUmVzZXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyB3b3JrYmFza2V0SW5wdXRzOiBXb3JrYmFza2V0SW5wdXRNb2RlbFtdO1xuICBwdWJsaWMgd29ya2Jhc2tldElucHV0c1JlYWR5OiBib29sZWFuO1xuXG4gIHB1YmxpYyB3b3JrYmFza2V0RGVmYXVsdHM6IGJvb2xlYW47XG5cbiAgcHVibGljIHNlbGVjdGVkOiB7XG4gICAgaW5pdD86IGJvb2xlYW4sXG4gICAganVyaXNkaWN0aW9uPzogSnVyaXNkaWN0aW9uLFxuICAgIGNhc2VUeXBlPzogQ2FzZVR5cGVMaXRlLFxuICAgIGNhc2VTdGF0ZT86IENhc2VTdGF0ZSxcbiAgICBmb3JtR3JvdXA/OiBGb3JtR3JvdXAsXG4gICAgcGFnZT86IG51bWJlcixcbiAgICBtZXRhZGF0YUZpZWxkcz86IHN0cmluZ1tdXG4gIH07XG5cbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgcHVibGljIHNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzPzogQ2FzZVR5cGVMaXRlW107XG4gIHB1YmxpYyBzZWxlY3RlZENhc2VUeXBlU3RhdGVzPzogQ2FzZVN0YXRlW107XG5cbiAgcHVibGljIGluaXRpYWxpc2VkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrYmFza2V0SW5wdXRGaWx0ZXJTZXJ2aWNlOiBXb3JrYmFza2V0SW5wdXRGaWx0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3JkZXJTZXJ2aWNlOiBPcmRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBqdXJpc2RpY3Rpb25TZXJ2aWNlOiBKdXJpc2RpY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHt9O1xuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICBpZiAoIXRoaXMuaW5pdGlhbGlzZWQgfHwgIXBhcmFtcyB8fCAhT2JqZWN0LmtleXMocGFyYW1zKS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5pbml0RmlsdGVycyhmYWxzZSk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGlzZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFwcGx5KGluaXQpOiB2b2lkIHtcbiAgICAvLyBTYXZlIGZpbHRlcnMgYXMgcXVlcnkgcGFyYW1ldGVycyBmb3IgY3VycmVudCByb3V0ZVxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uKSB7XG4gICAgICBxdWVyeVBhcmFtc1tXb3JrYmFza2V0RmlsdGVyc0NvbXBvbmVudC5QQVJBTV9KVVJJU0RJQ1RJT05dID0gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uaWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLnNlbGVjdGVkLmNhc2VUeXBlKSB7XG4gICAgICBxdWVyeVBhcmFtc1tXb3JrYmFza2V0RmlsdGVyc0NvbXBvbmVudC5QQVJBTV9DQVNFX1RZUEVdID0gdGhpcy5zZWxlY3RlZC5jYXNlVHlwZS5pZDtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlKSB7XG4gICAgICBxdWVyeVBhcmFtc1tXb3JrYmFza2V0RmlsdGVyc0NvbXBvbmVudC5QQVJBTV9DQVNFX1NUQVRFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlLmlkO1xuICAgIH1cbiAgICAvLyB3aXRob3V0IGV4cGxpY2l0bHkgcHJlc2VydmluZyBhbGVydHMgYW55IG1lc3NhZ2Ugb24gdGhlIHBhZ2VcbiAgICAvLyB3b3VsZCBiZSBjbGVhcmVkIG91dCBiZWNhdXNlIG9mIHRoaXMgaW5pdGlhbCBuYXZpZ2F0aW9uLlxuICAgIC8vIFRoZSBhYm92ZSBpcyBvbmx5IHRydWUgaWYgbm8gYWxlcnRzIHdlcmUgc2V0IHByaW9yIHRvIGxvYWRpbmcgY2FzZSBsaXN0IHBhZ2UuXG4gICAgaWYgKCF0aGlzLmFsZXJ0U2VydmljZS5pc1ByZXNlcnZlQWxlcnRzKCkpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNldFByZXNlcnZlQWxlcnRzKCF0aGlzLmluaXRpYWxpc2VkKTtcbiAgICB9XG4gICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZm9ybUdyb3VwID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShGT1JNX0dST1VQX1ZBTF9MT0NfU1RPUkFHRSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBVcGRhdGUgZm9ybSBncm91cCBmaWx0ZXJzXG4gICAgICB0aGlzLnVwZGF0ZUZvcm1Hcm91cEZpbHRlcnMoKTtcblxuICAgICAgdGhpcy5zZWxlY3RlZC5mb3JtR3JvdXAgPSB0aGlzLmZvcm1Hcm91cDtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZC5pbml0ID0gaW5pdDtcbiAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAxO1xuICAgIHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMgPSB0aGlzLmdldE1ldGFkYXRhRmllbGRzKCk7XG4gICAgaWYgKGluaXQpIHtcbiAgICAgIHRoaXMud2luZG93U2VydmljZS5zZXRMb2NhbFN0b3JhZ2UoU0FWRURfUVVFUllfUEFSQU1fTE9DX1NUT1JBR0UsIEpTT04uc3RyaW5naWZ5KHF1ZXJ5UGFyYW1zKSk7XG4gICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShGT1JNX0dST1VQX1ZBTF9MT0NfU1RPUkFHRSwgSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtR3JvdXAudmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQXBwbHkgZmlsdGVyc1xuICAgIHRoaXMub25BcHBseS5lbWl0KHtzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCwgcXVlcnlQYXJhbXN9KTtcbiAgICB0aGlzLnNldEZvY3VzVG9Ub3AoKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKEZPUk1fR1JPVVBfVkFMX0xPQ19TVE9SQUdFKTtcbiAgICB0aGlzLndpbmRvd1NlcnZpY2UucmVtb3ZlTG9jYWxTdG9yYWdlKFNBVkVEX1FVRVJZX1BBUkFNX0xPQ19TVE9SQUdFKTtcbiAgICBzZXRUaW1lb3V0ICgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0RmllbGRzV2hlbk5vRGVmYXVsdHMoKTtcbiAgICAgIHRoaXMub25SZXNldC5lbWl0KHRydWUpO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWV0YWRhdGFGaWVsZHMoKTogc3RyaW5nW10ge1xuICAgIGlmICh0aGlzLndvcmtiYXNrZXRJbnB1dHMpIHtcbiAgICAgIHJldHVybiB0aGlzLndvcmtiYXNrZXRJbnB1dHNcbiAgICAgICAgLmZpbHRlcih3b3JrYmFza2V0SW5wdXQgPT4gd29ya2Jhc2tldElucHV0LmZpZWxkLm1ldGFkYXRhID09PSB0cnVlKVxuICAgICAgICAubWFwKHdvcmtiYXNrZXRJbnB1dCA9PiB3b3JrYmFza2V0SW5wdXQuZmllbGQuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkp1cmlzZGljdGlvbklkQ2hhbmdlKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbikge1xuICAgICAgdGhpcy5qdXJpc2RpY3Rpb25TZXJ2aWNlLmFubm91bmNlU2VsZWN0ZWRKdXJpc2RpY3Rpb24odGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24pO1xuICAgICAgdGhpcy5zZWxlY3RlZEp1cmlzZGljdGlvbkNhc2VUeXBlcyA9IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmNhc2VUeXBlcy5sZW5ndGggPiAwID8gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY2FzZVR5cGVzIDogbnVsbDtcbiAgICAgIC8vIExpbmUgd2FzIHRvbyBsb25nIGZvciBsaW50aW5nIHNvIHJlZmFjdG9yZWQgaXQuXG4gICAgICBpZiAodGhpcy53b3JrYmFza2V0RGVmYXVsdHMgJiYgdGhpcy5zZWxlY3RlZEp1cmlzZGljdGlvbkNhc2VUeXBlcykge1xuICAgICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gdGhpcy5zZWxlY3RlZEp1cmlzZGljdGlvbkNhc2VUeXBlc1swXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA9IG51bGw7XG4gICAgICB0aGlzLmNsZWFyV29ya2Jhc2tldElucHV0cygpO1xuXG4gICAgICBpZiAoIXRoaXMuaXNBcHBseUJ1dHRvbkRpc2FibGVkKCkpIHtcbiAgICAgICAgdGhpcy5vbkNhc2VUeXBlSWRDaGFuZ2UoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNldENhc2VUeXBlKCk7XG4gICAgICB0aGlzLnJlc2V0Q2FzZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2FzZVR5cGVJZENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZC5jYXNlVHlwZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhc2VUeXBlU3RhdGVzID0gdGhpcy5zb3J0U3RhdGVzKHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUuc3RhdGVzKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlID0gbnVsbDtcbiAgICAgIHRoaXMuZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICB0aGlzLmNsZWFyV29ya2Jhc2tldElucHV0cygpO1xuICAgICAgaWYgKCF0aGlzLmlzQXBwbHlCdXR0b25EaXNhYmxlZCgpKSB7XG4gICAgICAgIHRoaXMud29ya2Jhc2tldElucHV0RmlsdGVyU2VydmljZS5nZXRXb3JrYmFza2V0SW5wdXRzKHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmlkLCB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLmlkKS5waXBlKFxuICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKS5zdWJzY3JpYmUod29ya2Jhc2tldElucHV0cyA9PiB7XG4gICAgICAgICAgICB0aGlzLndvcmtiYXNrZXRJbnB1dHNSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLndvcmtiYXNrZXRJbnB1dHMgPSB3b3JrYmFza2V0SW5wdXRzXG4gICAgICAgICAgICAgIC5zb3J0KHRoaXMub3JkZXJTZXJ2aWNlLnNvcnRBc2MpO1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy53aW5kb3dTZXJ2aWNlLmdldExvY2FsU3RvcmFnZShGT1JNX0dST1VQX1ZBTF9MT0NfU1RPUkFHRSk7XG5cbiAgICAgICAgICAgIHdvcmtiYXNrZXRJbnB1dHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICAgICAgaWYgKGl0ZW0uZmllbGQuZWxlbWVudFBhdGgpIHtcbiAgICAgICAgICAgICAgICBpdGVtLmZpZWxkLmlkID0gaXRlbS5maWVsZC5pZCArICcuJyArIGl0ZW0uZmllbGQuZWxlbWVudFBhdGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaXRlbS5maWVsZC5sYWJlbCA9IGl0ZW0ubGFiZWw7XG4gICAgICAgICAgICAgIGlmIChmb3JtVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWFyY2hGb3JtVmFsdWVPYmplY3QgPSBKU09OLnBhcnNlKGZvcm1WYWx1ZSk7XG4gICAgICAgICAgICAgICAgaXRlbS5maWVsZC52YWx1ZSA9IHNlYXJjaEZvcm1WYWx1ZU9iamVjdFtpdGVtLmZpZWxkLmlkXTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmdldENhc2VGaWVsZHMoKTtcbiAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnV29ya2Jhc2tldCBpbnB1dCBmaWVsZHMgcmVxdWVzdCB3aWxsIGJlIGRpc2NhcmRlZCByZWFzb246ICcsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc2V0Q2FzZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzQ2FzZVR5cGVzRHJvcGRvd25EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXM7XG4gIH1cblxuICBwdWJsaWMgaXNDYXNlU3RhdGVzRHJvcGRvd25EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgfHwgISh0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLnN0YXRlcyAmJiB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLnN0YXRlcy5sZW5ndGggPiAwKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0FwcGx5QnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEodGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gJiYgdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWFyY2hhYmxlQW5kV29ya2Jhc2tldElucHV0c1JlYWR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiAmJiB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlICYmIHRoaXMud29ya2Jhc2tldElucHV0c1JlYWR5O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gY2xlYXIgdGhlIHByZXZpb3VzbHkgdXNlZFxuICAgKiBmb3JtIGdyb3VwIGNvbnRyb2wgZmlsdGVyIHZhbHVlcyB0byBtYWtlIHN1cmUgb25seSB0aGVcbiAgICogY3VycmVudGx5IHNlbGVjdGVkIGZvcm0gZ3JvdXAgY29udHJvbCBmaWx0ZXIgdmFsdWVzIGFyZSBwcmVzZW50LlxuICAgKlxuICAgKiBIYXMgYmVlbiBpbXBsZW1lbnRlZCBmb3IgJ1JlZ2lvbiBhbmQgRlJDIGZpbHRlcnMnIGFuZCBjYW4gYmUgZXh0ZW5kZWRcbiAgICogaW4gZnV0dXJlIHRvIGluY29ycG9yYXRlIG90aGVyIGR5bmFtaWMgZmlsdGVycy5cbiAgICovXG4gICBwdWJsaWMgdXBkYXRlRm9ybUdyb3VwRmlsdGVycygpOiB2b2lkIHtcbiAgICAvLyBSZWFkIHRoZSBmb3JtIGdyb3VwIGxvY2FsIHN0b3JhZ2VcbiAgICBjb25zdCBmb3JtR3JvdXBMUyA9IEpTT04ucGFyc2UodGhpcy53aW5kb3dTZXJ2aWNlLmdldExvY2FsU3RvcmFnZShGT1JNX0dST1VQX1ZBTF9MT0NfU1RPUkFHRSkpO1xuXG4gICAgLy8gRm9ybSBncm91cCBsb2NhbCBzdG9yYWdlIGlzIGF2YWlsYWJsZSBhbmQgY29udGFpbnMgcmVnaW9uTGlzdCBwcm9wZXJ0eVxuICAgIGlmICghIWZvcm1Hcm91cExTICYmIGZvcm1Hcm91cExTLmhhc093blByb3BlcnR5KFJFR0lPTl9MSVNUX0FORF9GUkNfRklMVEVSKSkge1xuICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChSRUdJT05fTElTVF9BTkRfRlJDX0ZJTFRFUikpIHtcbiAgICAgICAgLy8gSWYgcmVnaW9uTGlzdCB2YWx1ZSBkb2VzIG5vdCBtYXRjaCBiZXR3ZWVuIGxvY2FsIHN0b3JhZ2UgYW5kIGZvcm0gZ3JvdXBcbiAgICAgICAgLy8gdGhlbiB0aGUgZmlsdGVyIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYW5kIHdlIG5lZWQgdG8gY2xlYXIgdGhlIG9sZCBmaWx0ZXIgdmFsdWVzXG4gICAgICAgIGlmIChmb3JtR3JvdXBMU1tSRUdJT05fTElTVF9BTkRfRlJDX0ZJTFRFUl0gIT09IHRoaXMuZm9ybUdyb3VwLmdldChSRUdJT05fTElTVF9BTkRfRlJDX0ZJTFRFUikudmFsdWUpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBmb3JtR3JvdXBMUykge1xuICAgICAgICAgICAgaWYgKGZvcm1Hcm91cExTLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmb3JtR3JvdXBMU1trZXldO1xuICAgICAgICAgICAgICAvLyBDbGVhciB0aGUgZmlsdGVyIGZvcm0gZ3JvdXAgY29udHJvbCB2YWx1ZXMgaWYgaXQgaGFzIGEgdmFsdWUgaW4gbG9jYWwgc3RvcmFnZVxuICAgICAgICAgICAgICAvLyBUaGUgcmVnaW9uTGlzdCBmb3JtIGdyb3VwIGNvbnRyb2wgdmFsdWUgc2hvdWxkIGJlIGlnbm9yZWQgYXMgaXQgYWx3YXlzIGNvbnRhaW4gdGhlIGxhdGVzdCB2YWx1ZVxuICAgICAgICAgICAgICBpZiAoa2V5ICE9PSBSRUdJT05fTElTVF9BTkRfRlJDX0ZJTFRFUiAmJiB2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGtleSkuc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNvcnRTdGF0ZXMoc3RhdGVzOiBDYXNlU3RhdGVbXSkge1xuICAgIHJldHVybiBzdGF0ZXMuc29ydCh0aGlzLm9yZGVyU2VydmljZS5zb3J0QXNjKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gaW5pdGlhbGlzZSBmaWx0ZXJzIGJhc2VkIG9uIHF1ZXJ5IHBhcmFtZXRlcnMgb3Igd29ya2Jhc2tldCBkZWZhdWx0cy5cbiAgICogUXVlcnkgcGFyYW1ldGVycywgd2hlbiBhdmFpbGFibGUsIHRha2UgcHJlY2VkZW5jZSBvdmVyIHdvcmtiYXNrZXQgZGVmYXVsdHMuXG4gICAqL1xuICBwcml2YXRlIGluaXRGaWx0ZXJzKGluaXQ6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBzYXZlZFF1ZXJ5UGFyYW1zID0gdGhpcy53aW5kb3dTZXJ2aWNlLmdldExvY2FsU3RvcmFnZShTQVZFRF9RVUVSWV9QQVJBTV9MT0NfU1RPUkFHRSk7XG4gICAgY29uc3Qgcm91dGVTbmFwc2hvdDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCA9IHRoaXMucm91dGUuc25hcHNob3Q7XG4gICAgaWYgKHNhdmVkUXVlcnlQYXJhbXMpIHtcbiAgICAgIHJvdXRlU25hcHNob3QucXVlcnlQYXJhbXMgPSBKU09OLnBhcnNlKHNhdmVkUXVlcnlQYXJhbXMpO1xuICAgIH1cbiAgICBjb25zdCBzZWxlY3RlZEp1cmlzZGljdGlvbklkID0gcm91dGVTbmFwc2hvdC5xdWVyeVBhcmFtc1tXb3JrYmFza2V0RmlsdGVyc0NvbXBvbmVudC5QQVJBTV9KVVJJU0RJQ1RJT05dIHx8XG4gICAgICAodGhpcy5kZWZhdWx0cyAmJiB0aGlzLmRlZmF1bHRzLmp1cmlzZGljdGlvbl9pZCk7XG4gICAgaWYgKHNlbGVjdGVkSnVyaXNkaWN0aW9uSWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID0gdGhpcy5qdXJpc2RpY3Rpb25zLmZpbmQoaiA9PiBzZWxlY3RlZEp1cmlzZGljdGlvbklkID09PSBqLmlkKTtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiAmJiB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbi5jYXNlVHlwZXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzID0gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uY2FzZVR5cGVzO1xuICAgICAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gdGhpcy5zZWxlY3RDYXNlVHlwZSh0aGlzLnNlbGVjdGVkLCB0aGlzLnNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzLCByb3V0ZVNuYXBzaG90KTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUpIHtcbiAgICAgICAgICB0aGlzLm9uQ2FzZVR5cGVJZENoYW5nZSgpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlID0gdGhpcy5zZWxlY3RDYXNlU3RhdGUodGhpcy5zZWxlY3RlZC5jYXNlVHlwZSwgcm91dGVTbmFwc2hvdCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53b3JrYmFza2V0RGVmYXVsdHMgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMuYXBwbHkoaW5pdCk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdENhc2VTdGF0ZShjYXNlVHlwZTogQ2FzZVR5cGVMaXRlLCByb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogQ2FzZVN0YXRlIHtcbiAgICBsZXQgY2FzZVN0YXRlO1xuICAgIGlmIChjYXNlVHlwZSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRDYXNlU3RhdGVJZCA9IHRoaXMuc2VsZWN0Q2FzZVN0YXRlSWRGcm9tUXVlcnlPckRlZmF1bHRzKHJvdXRlU25hcHNob3QsICh0aGlzLmRlZmF1bHRzICYmIHRoaXMuZGVmYXVsdHMuc3RhdGVfaWQpKTtcbiAgICAgIGNhc2VTdGF0ZSA9IGNhc2VUeXBlLnN0YXRlcy5maW5kKGN0ID0+IHNlbGVjdGVkQ2FzZVN0YXRlSWQgPT09IGN0LmlkKTtcbiAgICB9XG4gICAgcmV0dXJuIGNhc2VTdGF0ZSA/IGNhc2VTdGF0ZSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdENhc2VTdGF0ZUlkRnJvbVF1ZXJ5T3JEZWZhdWx0cyhyb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBkZWZhdWx0Q2FzZVN0YXRlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJvdXRlU25hcHNob3QucXVlcnlQYXJhbXNbV29ya2Jhc2tldEZpbHRlcnNDb21wb25lbnQuUEFSQU1fQ0FTRV9TVEFURV0gfHwgZGVmYXVsdENhc2VTdGF0ZUlkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RDYXNlVHlwZShzZWxlY3RlZDogYW55LCBjYXNlVHlwZXM6IENhc2VUeXBlTGl0ZVtdLCByb3V0ZVNuYXBzaG90OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogQ2FzZVR5cGVMaXRlIHtcbiAgICBsZXQgY2FzZVR5cGU7XG4gICAgaWYgKHNlbGVjdGVkLmp1cmlzZGljdGlvbikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRDYXNlVHlwZUlkID0gdGhpcy5zZWxlY3RDYXNlVHlwZUlkRnJvbVF1ZXJ5T3JEZWZhdWx0cyhyb3V0ZVNuYXBzaG90LCAodGhpcy5kZWZhdWx0cyAmJiB0aGlzLmRlZmF1bHRzLmNhc2VfdHlwZV9pZCkpO1xuICAgICAgY2FzZVR5cGUgPSBjYXNlVHlwZXMuZmluZChjdCA9PiBzZWxlY3RlZENhc2VUeXBlSWQgPT09IGN0LmlkKTtcbiAgICB9XG4gICAgcmV0dXJuIGNhc2VUeXBlID8gY2FzZVR5cGUgOiBjYXNlVHlwZXNbMF07XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdENhc2VUeXBlSWRGcm9tUXVlcnlPckRlZmF1bHRzKHJvdXRlU25hcHNob3Q6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIGRlZmF1bHRDYXNlVHlwZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiByb3V0ZVNuYXBzaG90LnF1ZXJ5UGFyYW1zW1dvcmtiYXNrZXRGaWx0ZXJzQ29tcG9uZW50LlBBUkFNX0NBU0VfVFlQRV0gfHwgZGVmYXVsdENhc2VUeXBlSWQ7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0RmllbGRzV2hlbk5vRGVmYXVsdHMoKSB7XG4gICAgdGhpcy5yZXNldENhc2VTdGF0ZSgpO1xuICAgIHRoaXMucmVzZXRDYXNlVHlwZSgpO1xuICAgIHRoaXMuY2xlYXJXb3JrYmFza2V0SW5wdXRzKCk7XG4gICAgdGhpcy53b3JrYmFza2V0RGVmYXVsdHMgPSBmYWxzZTtcbiAgICB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA9IG51bGw7XG4gICAgdGhpcy5pbml0aWFsaXNlZCA9IGZhbHNlO1xuICAgIHRoaXMuaW5pdEZpbHRlcnModHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyV29ya2Jhc2tldElucHV0cygpIHtcbiAgICB0aGlzLndvcmtiYXNrZXRJbnB1dHNSZWFkeSA9IGZhbHNlO1xuICAgIHRoaXMud29ya2Jhc2tldElucHV0cyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldENhc2VTdGF0ZSgpIHtcbiAgICB0aGlzLmRlZmF1bHRzLnN0YXRlX2lkID0gbnVsbDtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA9IG51bGw7XG4gICAgdGhpcy5zZWxlY3RlZENhc2VUeXBlU3RhdGVzID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRDYXNlVHlwZSgpIHtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gdW5kZWZpbmVkOyAvLyBvcHRpb24gc2hvdWxkIGJlIGJsYW5rIHJhdGhlciB0aGFuIFwiU2VsZWN0IGEgdmFsdWVcIiBpbiBjYXNlIG9mIHJlc2V0LlxuICAgIHRoaXMuc2VsZWN0ZWRKdXJpc2RpY3Rpb25DYXNlVHlwZXMgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb2N1c1RvVG9wKCkge1xuICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcblxuICAgIGNvbnN0IHRvcENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWFyY2gtcmVzdWx0LWhlYWRpbmdfX3RleHQnKTtcbiAgICBpZiAodG9wQ29udGFpbmVyKSB7XG4gICAgICB0b3BDb250YWluZXIuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldENhc2VGaWVsZHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMud29ya2Jhc2tldElucHV0cykge1xuICAgICAgdGhpcy5jYXNlRmllbGRzID0gdGhpcy53b3JrYmFza2V0SW5wdXRzLm1hcChpdGVtID0+IEZpZWxkc1V0aWxzLmNvbnZlcnRUb0Nhc2VGaWVsZChpdGVtLmZpZWxkKSk7XG4gICAgfVxuICB9XG59XG4iLCJcbjxoMiBjbGFzcz1cImhlYWRpbmctaDJcIiBhcmlhLWxhYmVsPVwiRmlsdGVyc1wiPkZpbHRlcnM8L2gyPlxuPGZvcm0gY2xhc3M9XCJnbG9iYWwtZGlzcGxheVwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ3Yi1qdXJpc2RpY3Rpb25cIj5KdXJpc2RpY3Rpb248L2xhYmVsPlxuICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLTMtNCBjY2QtZHJvcGRvd25cIiBpZD1cIndiLWp1cmlzZGljdGlvblwiXG4gICAgICAgICAgICBuYW1lPVwianVyaXNkaWN0aW9uXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZC5qdXJpc2RpY3Rpb25cIiBhcmlhLWNvbnRyb2xzPVwic2VhcmNoLXJlc3VsdFwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uSnVyaXNkaWN0aW9uSWRDaGFuZ2UoKVwiPlxuICAgICAgPG9wdGlvbiAqbmdJZj1cIiF3b3JrYmFza2V0RGVmYXVsdHNcIiBbbmdWYWx1ZV09XCJudWxsXCI+U2VsZWN0IGEgdmFsdWU8L29wdGlvbj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGogb2YganVyaXNkaWN0aW9uc1wiIFtuZ1ZhbHVlXT1cImpcIj57e2oubmFtZX19PC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIndiLWNhc2UtdHlwZVwiPkNhc2UgdHlwZTwvbGFiZWw+XG4gICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtMy00IGNjZC1kcm9wZG93blwiIGlkPVwid2ItY2FzZS10eXBlXCJcbiAgICAgICAgICAgIG5hbWU9XCJjYXNlLXR5cGVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkLmNhc2VUeXBlXCIgW2Rpc2FibGVkXT1cImlzQ2FzZVR5cGVzRHJvcGRvd25EaXNhYmxlZCgpXCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25DYXNlVHlwZUlkQ2hhbmdlKClcIiBhcmlhLWNvbnRyb2xzPVwic2VhcmNoLXJlc3VsdFwiPlxuICAgICAgPG9wdGlvbiAqbmdJZj1cIiF3b3JrYmFza2V0RGVmYXVsdHNcIiBbbmdWYWx1ZV09XCJudWxsXCI+U2VsZWN0IGEgdmFsdWU8L29wdGlvbj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGN0IG9mIHNlbGVjdGVkSnVyaXNkaWN0aW9uQ2FzZVR5cGVzXCIgW25nVmFsdWVdPVwiY3RcIj57e2N0Lm5hbWV9fTwvb3B0aW9uPlxuICAgIDwvc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ3Yi1jYXNlLXN0YXRlXCI+U3RhdGU8L2xhYmVsPlxuICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZm9ybS1jb250cm9sLTMtNCBjY2QtZHJvcGRvd25cIiBpZD1cIndiLWNhc2Utc3RhdGVcIlxuICAgICAgICAgICAgbmFtZT1cInN0YXRlXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZC5jYXNlU3RhdGVcIiBbZGlzYWJsZWRdPVwiaXNDYXNlU3RhdGVzRHJvcGRvd25EaXNhYmxlZCgpXCJcbiAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJzZWFyY2gtcmVzdWx0XCI+XG4gICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIj5Bbnk8L29wdGlvbj5cbiAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGNzIG9mIHNlbGVjdGVkQ2FzZVR5cGVTdGF0ZXNcIiBbbmdWYWx1ZV09XCJjc1wiPnt7Y3MubmFtZX19PC9vcHRpb24+XG4gICAgPC9zZWxlY3Q+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgY2NkQ29uZGl0aW9uYWxTaG93Rm9ybSAqbmdJZj1cImlzU2VhcmNoYWJsZUFuZFdvcmtiYXNrZXRJbnB1dHNSZWFkeSgpXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbY29udGV4dEZpZWxkc109XCJjYXNlRmllbGRzXCI+XG4gICAgPGRpdiBpZD1cImR5bmFtaWNGaWx0ZXJzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiICpuZ0Zvcj1cImxldCB3b3JrYmFza2V0SW5wdXQgb2Ygd29ya2Jhc2tldElucHV0c1wiPlxuICAgICAgICA8Y2NkLWZpZWxkLXdyaXRlIFtjYXNlRmllbGRdPVwid29ya2Jhc2tldElucHV0LmZpZWxkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbaXNFeHBhbmRlZF09XCJ0cnVlXCIgW2lzSW5TZWFyY2hCbG9ja109XCJ0cnVlXCIgKGtleXVwLmVudGVyKT1cImFwcGx5KG51bGwpXCI+PC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gd29ya2Jhc2tldC1maWx0ZXJzLWFwcGx5XCIgKGNsaWNrKT1cImFwcGx5KHRydWUpXCIgW2Rpc2FibGVkXT1cImlzQXBwbHlCdXR0b25EaXNhYmxlZCgpXCIgdGl0bGU9XCJBcHBseSBmaWx0ZXJcIiBhcmlhLWxhYmVsPVwiQXBwbHkgZmlsdGVyXCI+QXBwbHk8L2J1dHRvbj4gJm5ic3A7Jm5ic3A7Jm5ic3A7XG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJyZXNldCgpXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIHRpdGxlPVwiUmVzZXQgZmlsdGVyXCIgYXJpYS1sYWJlbD1cIlJlc2V0IGZpbHRlclwiPlJlc2V0PC9idXR0b24+XG48L2Zvcm0+XG4iXX0=