@hmcts/ccd-case-ui-toolkit 5.0.32-angular11-upgrade → 5.0.33-angular11-updgrade-welsh-release-v3

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 (290) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +6619 -2859
  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 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +1 -1
  6. package/esm2015/lib/components/banners/alert/alert.component.js +7 -5
  7. package/esm2015/lib/components/banners/alert/alert.module.js +12 -4
  8. package/esm2015/lib/components/footer/footer.component.js +55 -30
  9. package/esm2015/lib/components/footer/footers.module.js +12 -4
  10. package/esm2015/lib/components/form/date-input/date-input.component.js +56 -37
  11. package/esm2015/lib/components/form/form.module.js +8 -4
  12. package/esm2015/lib/components/header/header-bar/header-bar.component.js +32 -19
  13. package/esm2015/lib/components/header/headers.module.js +6 -4
  14. package/esm2015/lib/components/header/navigation/navigation-item.component.js +9 -7
  15. package/esm2015/lib/components/header/phase/phase.component.js +20 -9
  16. package/esm2015/lib/components/tabs/tabs.component.js +7 -5
  17. package/esm2015/lib/components/tabs/tabs.module.js +6 -2
  18. package/esm2015/lib/shared/components/activity/activity-banner/activity-banner.component.js +12 -9
  19. package/esm2015/lib/shared/components/activity/activity-icon/activity-icon.component.js +11 -8
  20. package/esm2015/lib/shared/components/activity/activity.component.js +15 -10
  21. package/esm2015/lib/shared/components/activity/activity.module.js +6 -2
  22. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +29 -25
  23. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +90 -58
  24. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +179 -131
  25. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +30 -26
  26. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +51 -26
  27. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +51 -28
  28. package/esm2015/lib/shared/components/case-editor/services/cases.service.js +28 -1
  29. package/esm2015/lib/shared/components/case-editor/services/page-validation.service.js +10 -2
  30. package/esm2015/lib/shared/components/case-history/case-history.component.js +89 -63
  31. package/esm2015/lib/shared/components/case-history/case-history.module.js +18 -14
  32. package/esm2015/lib/shared/components/case-list/case-list.component.js +56 -49
  33. package/esm2015/lib/shared/components/case-list/case-list.module.js +8 -4
  34. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +11 -7
  35. package/esm2015/lib/shared/components/case-timeline/case-timeline.component.js +8 -5
  36. package/esm2015/lib/shared/components/case-timeline/case-timeline.module.js +12 -8
  37. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +106 -61
  38. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +89 -69
  39. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.js +45 -23
  40. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +9 -2
  41. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +100 -67
  42. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.js +32 -20
  43. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +107 -79
  44. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +79 -49
  45. package/esm2015/lib/shared/components/case-viewer/case-view/case-view.component.js +1 -1
  46. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +37 -27
  47. package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +36 -22
  48. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.component.js +63 -40
  49. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.module.js +6 -2
  50. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.js +28 -14
  51. package/esm2015/lib/shared/components/dialogs/dialogs.module.js +6 -2
  52. package/esm2015/lib/shared/components/dialogs/document-dialog/document-dialog.component.js +28 -14
  53. package/esm2015/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.js +28 -14
  54. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.js +28 -14
  55. package/esm2015/lib/shared/components/error/callback-errors.component.js +34 -23
  56. package/esm2015/lib/shared/components/error/errors.module.js +6 -2
  57. package/esm2015/lib/shared/components/error-message/error-message.component.js +14 -11
  58. package/esm2015/lib/shared/components/error-message/error-message.module.js +8 -4
  59. package/esm2015/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.js +39 -20
  60. package/esm2015/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.js +34 -18
  61. package/esm2015/lib/shared/components/event-start/components/task-assigned/task-assigned.component.js +34 -19
  62. package/esm2015/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.js +50 -25
  63. package/esm2015/lib/shared/components/event-start/components/task-conflict/task-conflict.component.js +39 -20
  64. package/esm2015/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.js +34 -18
  65. package/esm2015/lib/shared/components/event-start/event-start.module.js +8 -4
  66. package/esm2015/lib/shared/components/event-trigger/event-trigger.component.js +27 -17
  67. package/esm2015/lib/shared/components/event-trigger/event-trigger.module.js +6 -2
  68. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.component.js +7 -5
  69. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.module.js +6 -2
  70. package/esm2015/lib/shared/components/pagination/pagination.component.js +84 -67
  71. package/esm2015/lib/shared/components/pagination/pagination.module.js +8 -4
  72. package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +50 -31
  73. package/esm2015/lib/shared/components/palette/base-field/abstract-form-field.component.js +4 -2
  74. package/esm2015/lib/shared/components/palette/base-field/field-read-label.component.js +10 -8
  75. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +8 -14
  76. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +71 -41
  77. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
  78. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +2 -3
  79. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +13 -9
  80. package/esm2015/lib/shared/components/palette/case-link/components/before-you-start/before-you-start.component.js +125 -0
  81. package/esm2015/lib/shared/components/palette/case-link/components/check-your-answers/check-your-answers.component.js +198 -0
  82. package/esm2015/lib/shared/components/palette/case-link/components/index.js +10 -0
  83. package/esm2015/lib/shared/components/palette/case-link/components/link-cases/link-cases.component.js +493 -0
  84. package/esm2015/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-from-table.component.js +221 -0
  85. package/esm2015/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-to-table.component.js +286 -0
  86. package/esm2015/lib/shared/components/palette/case-link/components/no-linked-cases/no-linked-cases.component.js +76 -0
  87. package/esm2015/lib/shared/components/palette/case-link/components/read-linked-cases.component.js +178 -0
  88. package/esm2015/lib/shared/components/palette/case-link/components/unlink-cases/unlink-cases.component.js +216 -0
  89. package/esm2015/lib/shared/components/palette/case-link/components/write-linked-cases.component.js +260 -0
  90. package/esm2015/lib/shared/components/palette/case-link/domain/index.js +3 -0
  91. package/esm2015/lib/shared/components/palette/case-link/domain/linked-cases-state.model.js +2 -0
  92. package/esm2015/lib/shared/components/palette/case-link/domain/linked-cases.model.js +19 -0
  93. package/esm2015/lib/shared/components/palette/case-link/enums/index.js +2 -0
  94. package/esm2015/lib/shared/components/palette/case-link/enums/write-linked-cases-field.enum.js +33 -0
  95. package/esm2015/lib/shared/components/palette/case-link/index.js +4 -1
  96. package/esm2015/lib/shared/components/palette/case-link/read-case-link-field.component.js +28 -8
  97. package/esm2015/lib/shared/components/palette/case-link/services/index.js +2 -0
  98. package/esm2015/lib/shared/components/palette/case-link/services/jurisdiction.service.js +22 -0
  99. package/esm2015/lib/shared/components/palette/case-link/services/linked-cases.service.js +136 -0
  100. package/esm2015/lib/shared/components/palette/case-link/utils/validators.utils.js +27 -0
  101. package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +82 -66
  102. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +45 -32
  103. package/esm2015/lib/shared/components/palette/complex/read-complex-field-collection-table.component.js +50 -46
  104. package/esm2015/lib/shared/components/palette/complex/read-complex-field-raw.component.js +7 -6
  105. package/esm2015/lib/shared/components/palette/complex/read-complex-field-table.component.js +22 -20
  106. package/esm2015/lib/shared/components/palette/complex/write-complex-field.component.js +5 -4
  107. package/esm2015/lib/shared/components/palette/date/write-date-field.component.js +16 -12
  108. package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +29 -17
  109. package/esm2015/lib/shared/components/palette/document/write-document-field.component.js +31 -25
  110. package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +22 -14
  111. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +26 -17
  112. package/esm2015/lib/shared/components/palette/email/write-email-field.component.js +16 -12
  113. package/esm2015/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.js +16 -12
  114. package/esm2015/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.js +20 -15
  115. package/esm2015/lib/shared/components/palette/history/event-log/event-log-details.component.js +87 -65
  116. package/esm2015/lib/shared/components/palette/history/event-log/event-log-table.component.js +60 -46
  117. package/esm2015/lib/shared/components/palette/index.js +6 -2
  118. package/esm2015/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.js +16 -12
  119. package/esm2015/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.js +15 -11
  120. package/esm2015/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +19 -14
  121. package/esm2015/lib/shared/components/palette/number/write-number-field.component.js +16 -12
  122. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +43 -25
  123. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +7 -6
  124. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-raw.component.js +41 -29
  125. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-table.component.js +48 -35
  126. package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +88 -50
  127. package/esm2015/lib/shared/components/palette/palette.module.js +98 -42
  128. package/esm2015/lib/shared/components/palette/palette.service.js +10 -4
  129. package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +16 -12
  130. package/esm2015/lib/shared/components/palette/text/write-text-field.component.js +16 -12
  131. package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +16 -12
  132. package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +20 -15
  133. package/esm2015/lib/shared/components/search-filters/search-filters.component.js +60 -35
  134. package/esm2015/lib/shared/components/search-filters/search-filters.module.js +14 -10
  135. package/esm2015/lib/shared/components/search-result/search-result.component.js +120 -89
  136. package/esm2015/lib/shared/components/search-result/search-result.module.js +16 -13
  137. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +64 -46
  138. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.module.js +13 -9
  139. package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
  140. package/esm2015/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.js +5 -1
  141. package/esm2015/lib/shared/pipes/index.js +2 -1
  142. package/esm2015/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.js +23 -0
  143. package/esm2015/lib/shared/pipes/link-cases-reason-code/index.js +2 -0
  144. package/esm2015/lib/shared/pipes/pipes.module.js +9 -5
  145. package/esm2015/lib/shared/services/common-data-service/common-data-service.js +22 -0
  146. package/esm2015/lib/shared/services/fields/fields.purger.js +128 -112
  147. package/esm2015/lib/shared/services/fields/fields.utils.js +11 -2
  148. package/esm2015/lib/shared/services/form/form-value.service.js +9 -7
  149. package/esm2015/lib/shared/services/jurisdiction/jurisdiction.service.js +1 -1
  150. package/esm2015/lib/shared/services/search/search.service.js +8 -1
  151. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +6029 -2592
  152. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  153. package/lib/app.config.d.ts +4 -0
  154. package/lib/app.config.d.ts.map +1 -1
  155. package/lib/components/banners/alert/alert.module.d.ts +2 -1
  156. package/lib/components/banners/alert/alert.module.d.ts.map +1 -1
  157. package/lib/components/footer/footers.module.d.ts +2 -1
  158. package/lib/components/footer/footers.module.d.ts.map +1 -1
  159. package/lib/components/form/form.module.d.ts +2 -1
  160. package/lib/components/form/form.module.d.ts.map +1 -1
  161. package/lib/components/header/headers.module.d.ts +2 -1
  162. package/lib/components/header/headers.module.d.ts.map +1 -1
  163. package/lib/components/tabs/tabs.module.d.ts +2 -1
  164. package/lib/components/tabs/tabs.module.d.ts.map +1 -1
  165. package/lib/shared/components/activity/activity.module.d.ts +2 -1
  166. package/lib/shared/components/activity/activity.module.d.ts.map +1 -1
  167. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +2 -0
  168. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  169. package/lib/shared/components/case-editor/case-editor.module.d.ts +3 -2
  170. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  171. package/lib/shared/components/case-editor/services/cases.service.d.ts +7 -0
  172. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  173. package/lib/shared/components/case-editor/services/page-validation.service.d.ts +1 -0
  174. package/lib/shared/components/case-editor/services/page-validation.service.d.ts.map +1 -1
  175. package/lib/shared/components/case-history/case-history.module.d.ts +2 -1
  176. package/lib/shared/components/case-history/case-history.module.d.ts.map +1 -1
  177. package/lib/shared/components/case-list/case-list.module.d.ts +2 -1
  178. package/lib/shared/components/case-list/case-list.module.d.ts.map +1 -1
  179. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts +2 -1
  180. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts.map +1 -1
  181. package/lib/shared/components/case-timeline/case-timeline.module.d.ts +2 -1
  182. package/lib/shared/components/case-timeline/case-timeline.module.d.ts.map +1 -1
  183. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  184. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +2 -2
  185. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  186. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +6 -4
  187. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  188. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts +2 -1
  189. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts.map +1 -1
  190. package/lib/shared/components/dialogs/dialogs.module.d.ts +2 -1
  191. package/lib/shared/components/dialogs/dialogs.module.d.ts.map +1 -1
  192. package/lib/shared/components/error/errors.module.d.ts +2 -1
  193. package/lib/shared/components/error/errors.module.d.ts.map +1 -1
  194. package/lib/shared/components/error-message/error-message.module.d.ts +2 -1
  195. package/lib/shared/components/error-message/error-message.module.d.ts.map +1 -1
  196. package/lib/shared/components/event-start/event-start.module.d.ts +2 -1
  197. package/lib/shared/components/event-start/event-start.module.d.ts.map +1 -1
  198. package/lib/shared/components/event-trigger/event-trigger.module.d.ts +2 -1
  199. package/lib/shared/components/event-trigger/event-trigger.module.d.ts.map +1 -1
  200. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts +2 -1
  201. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts.map +1 -1
  202. package/lib/shared/components/pagination/pagination.module.d.ts +2 -1
  203. package/lib/shared/components/pagination/pagination.module.d.ts.map +1 -1
  204. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
  205. package/lib/shared/components/palette/base-field/field-write.component.d.ts +2 -2
  206. package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
  207. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +11 -5
  208. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  209. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +2 -0
  210. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  211. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +0 -1
  212. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  213. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  214. package/lib/shared/components/palette/case-link/components/before-you-start/before-you-start.component.d.ts +19 -0
  215. package/lib/shared/components/palette/case-link/components/before-you-start/before-you-start.component.d.ts.map +1 -0
  216. package/lib/shared/components/palette/case-link/components/check-your-answers/check-your-answers.component.d.ts +18 -0
  217. package/lib/shared/components/palette/case-link/components/check-your-answers/check-your-answers.component.d.ts.map +1 -0
  218. package/lib/shared/components/palette/case-link/components/index.d.ts +10 -0
  219. package/lib/shared/components/palette/case-link/components/index.d.ts.map +1 -0
  220. package/lib/shared/components/palette/case-link/components/link-cases/link-cases.component.d.ts +41 -0
  221. package/lib/shared/components/palette/case-link/components/link-cases/link-cases.component.d.ts.map +1 -0
  222. package/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-from-table.component.d.ts +42 -0
  223. package/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-from-table.component.d.ts.map +1 -0
  224. package/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-to-table.component.d.ts +45 -0
  225. package/lib/shared/components/palette/case-link/components/linked-cases-table/linked-cases-to-table.component.d.ts.map +1 -0
  226. package/lib/shared/components/palette/case-link/components/no-linked-cases/no-linked-cases.component.d.ts +12 -0
  227. package/lib/shared/components/palette/case-link/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -0
  228. package/lib/shared/components/palette/case-link/components/read-linked-cases.component.d.ts +37 -0
  229. package/lib/shared/components/palette/case-link/components/read-linked-cases.component.d.ts.map +1 -0
  230. package/lib/shared/components/palette/case-link/components/unlink-cases/unlink-cases.component.d.ts +38 -0
  231. package/lib/shared/components/palette/case-link/components/unlink-cases/unlink-cases.component.d.ts.map +1 -0
  232. package/lib/shared/components/palette/case-link/components/write-linked-cases.component.d.ts +45 -0
  233. package/lib/shared/components/palette/case-link/components/write-linked-cases.component.d.ts.map +1 -0
  234. package/lib/shared/components/palette/case-link/domain/index.d.ts +3 -0
  235. package/lib/shared/components/palette/case-link/domain/index.d.ts.map +1 -0
  236. package/lib/shared/components/palette/case-link/domain/linked-cases-state.model.d.ts +12 -0
  237. package/lib/shared/components/palette/case-link/domain/linked-cases-state.model.d.ts.map +1 -0
  238. package/lib/shared/components/palette/case-link/domain/linked-cases.model.d.ts +65 -0
  239. package/lib/shared/components/palette/case-link/domain/linked-cases.model.d.ts.map +1 -0
  240. package/lib/shared/components/palette/case-link/enums/index.d.ts +2 -0
  241. package/lib/shared/components/palette/case-link/enums/index.d.ts.map +1 -0
  242. package/lib/shared/components/palette/case-link/enums/write-linked-cases-field.enum.d.ts +29 -0
  243. package/lib/shared/components/palette/case-link/enums/write-linked-cases-field.enum.d.ts.map +1 -0
  244. package/lib/shared/components/palette/case-link/index.d.ts +3 -0
  245. package/lib/shared/components/palette/case-link/index.d.ts.map +1 -1
  246. package/lib/shared/components/palette/case-link/read-case-link-field.component.d.ts +3 -0
  247. package/lib/shared/components/palette/case-link/read-case-link-field.component.d.ts.map +1 -1
  248. package/lib/shared/components/palette/case-link/services/index.d.ts +2 -0
  249. package/lib/shared/components/palette/case-link/services/index.d.ts.map +1 -0
  250. package/lib/shared/components/palette/case-link/services/jurisdiction.service.d.ts +12 -0
  251. package/lib/shared/components/palette/case-link/services/jurisdiction.service.d.ts.map +1 -0
  252. package/lib/shared/components/palette/case-link/services/linked-cases.service.d.ts +51 -0
  253. package/lib/shared/components/palette/case-link/services/linked-cases.service.d.ts.map +1 -0
  254. package/lib/shared/components/palette/case-link/utils/validators.utils.d.ts +10 -0
  255. package/lib/shared/components/palette/case-link/utils/validators.utils.d.ts.map +1 -0
  256. package/lib/shared/components/palette/case-link/write-case-link-field.component.d.ts +14 -3
  257. package/lib/shared/components/palette/case-link/write-case-link-field.component.d.ts.map +1 -1
  258. package/lib/shared/components/palette/index.d.ts +5 -1
  259. package/lib/shared/components/palette/index.d.ts.map +1 -1
  260. package/lib/shared/components/palette/palette.module.d.ts +55 -45
  261. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  262. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  263. package/lib/shared/components/search-filters/search-filters.module.d.ts +2 -1
  264. package/lib/shared/components/search-filters/search-filters.module.d.ts.map +1 -1
  265. package/lib/shared/components/search-result/search-result.module.d.ts +3 -2
  266. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -1
  267. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts +2 -1
  268. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts.map +1 -1
  269. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  270. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  271. package/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.d.ts.map +1 -1
  272. package/lib/shared/pipes/index.d.ts +1 -0
  273. package/lib/shared/pipes/index.d.ts.map +1 -1
  274. package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts +11 -0
  275. package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts.map +1 -0
  276. package/lib/shared/pipes/link-cases-reason-code/index.d.ts +2 -0
  277. package/lib/shared/pipes/link-cases-reason-code/index.d.ts.map +1 -0
  278. package/lib/shared/pipes/pipes.module.d.ts +3 -2
  279. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  280. package/lib/shared/services/common-data-service/common-data-service.d.ts +29 -0
  281. package/lib/shared/services/common-data-service/common-data-service.d.ts.map +1 -0
  282. package/lib/shared/services/fields/fields.purger.d.ts +19 -12
  283. package/lib/shared/services/fields/fields.purger.d.ts.map +1 -1
  284. package/lib/shared/services/fields/fields.utils.d.ts +1 -0
  285. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  286. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  287. package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts.map +1 -1
  288. package/lib/shared/services/search/search.service.d.ts +4 -0
  289. package/lib/shared/services/search/search.service.d.ts.map +1 -1
  290. package/package.json +1 -1
@@ -0,0 +1,136 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { forkJoin } from 'rxjs';
3
+ import { SearchService } from '../../../../services';
4
+ import { JurisdictionService } from './jurisdiction.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./jurisdiction.service";
7
+ import * as i2 from "../../../../services";
8
+ export class LinkedCasesService {
9
+ constructor(jurisdictionService, searchService) {
10
+ this.jurisdictionService = jurisdictionService;
11
+ this.searchService = searchService;
12
+ this.caseFieldValue = [];
13
+ this.isLinkedCasesEventTrigger = false;
14
+ this.linkCaseReasons = [];
15
+ this.linkedCases = [];
16
+ this.initialCaseLinks = [];
17
+ this.editMode = false;
18
+ this.jurisdictionsResponse = [];
19
+ this.serverError = null;
20
+ this.serverLinkedApiError = null;
21
+ this.isServerReasonCodeError = false;
22
+ this.caseJurisdictionID = null;
23
+ this.groupLinkedCasesByCaseType = (arrObj, key) => {
24
+ return arrObj.reduce((rv, x) => {
25
+ (rv[x.value[key]] = rv[x.value[key]] || []).push(x.value['CaseReference']);
26
+ return rv;
27
+ }, {});
28
+ };
29
+ this.jurisdictionService.getJurisdictions().subscribe((jurisdictions) => {
30
+ this.jurisdictionsResponse = jurisdictions;
31
+ }, (error) => {
32
+ this.serverJurisdictionError = true;
33
+ });
34
+ }
35
+ constructElasticSearchQuery(caseIds, size) {
36
+ return {
37
+ query: {
38
+ terms: {
39
+ reference: caseIds,
40
+ },
41
+ },
42
+ size,
43
+ };
44
+ }
45
+ mapResponse(esSearchCasesResponse) {
46
+ const caseInfo = this.caseFieldValue.find(item => item.value && item.value.CaseReference === esSearchCasesResponse.case_id);
47
+ return caseInfo && {
48
+ caseReference: esSearchCasesResponse.case_id,
49
+ caseName: esSearchCasesResponse.case_fields.caseNameHmctsInternal || LinkedCasesService.CASE_NAME_MISSING_TEXT,
50
+ caseType: this.mapLookupIDToValueFromJurisdictions('CASE_TYPE', esSearchCasesResponse.case_fields['[CASE_TYPE]']),
51
+ service: this.mapLookupIDToValueFromJurisdictions('JURISDICTION', esSearchCasesResponse.case_fields['[JURISDICTION]']),
52
+ state: this.mapLookupIDToValueFromJurisdictions('STATE', esSearchCasesResponse.case_fields['[STATE]']),
53
+ reasons: caseInfo.value && caseInfo.value.ReasonForLink &&
54
+ caseInfo.value.ReasonForLink.map(reason => reason.value && reason.value.Reason),
55
+ };
56
+ }
57
+ searchCasesByCaseIds(searchCasesResponse) {
58
+ return forkJoin(searchCasesResponse);
59
+ }
60
+ getAllLinkedCaseInformation() {
61
+ const searchCasesResponse = [];
62
+ const linkedCaseIds = this.groupLinkedCasesByCaseType(this.caseFieldValue, 'CaseType');
63
+ Object.keys(linkedCaseIds).forEach(key => {
64
+ const esQuery = this.constructElasticSearchQuery(linkedCaseIds[key], 100);
65
+ const query = this.searchService.searchCasesByIds(key, esQuery, SearchService.VIEW_WORKBASKET);
66
+ searchCasesResponse.push(query);
67
+ });
68
+ if (searchCasesResponse.length) {
69
+ this.searchCasesByCaseIds(searchCasesResponse).subscribe((searchCases) => {
70
+ const casesResponse = [];
71
+ searchCases.forEach(response => {
72
+ response.results.forEach((result) => {
73
+ casesResponse.push(this.mapResponse(result));
74
+ });
75
+ });
76
+ const caseLinks = casesResponse.map(item => {
77
+ return {
78
+ caseReference: item.caseReference,
79
+ caseName: item.caseName,
80
+ caseService: item.service,
81
+ caseType: item.caseType,
82
+ unlink: false,
83
+ reasons: item.reasons && item.reasons.map(reason => {
84
+ return {
85
+ reasonCode: reason
86
+ };
87
+ }),
88
+ };
89
+ });
90
+ this.linkedCases = caseLinks;
91
+ this.serverLinkedApiError = null;
92
+ }, err => {
93
+ this.serverLinkedApiError = {
94
+ id: 'backendError', message: 'Some case information is not available at the moment'
95
+ };
96
+ });
97
+ }
98
+ }
99
+ mapLookupIDToValueFromJurisdictions(fieldName, fieldValue) {
100
+ const selectedJurisdiction = this.jurisdictionsResponse &&
101
+ this.jurisdictionsResponse.find(item => item.id === this.caseDetails.case_type.jurisdiction.id);
102
+ const selectedCaseType = selectedJurisdiction && selectedJurisdiction.caseTypes.find(item => item.id === this.caseDetails.case_type.id);
103
+ const state = selectedCaseType && selectedCaseType.states.find(item => item.id === fieldValue);
104
+ switch (fieldName) {
105
+ case 'JURISDICTION':
106
+ return selectedJurisdiction && selectedJurisdiction.description;
107
+ case 'CASE_TYPE':
108
+ return selectedCaseType && selectedCaseType.name;
109
+ case 'CASE_TYPE_DESCRIPTION':
110
+ return selectedCaseType && selectedCaseType.description;
111
+ case 'STATE':
112
+ return state && state.name || fieldValue;
113
+ case 'STATE_DESCRIPTION':
114
+ return state && state.description || fieldValue;
115
+ default:
116
+ break;
117
+ }
118
+ }
119
+ getCaseName(searchCasesResponse) {
120
+ let caseName = LinkedCasesService.CASE_NAME_MISSING_TEXT;
121
+ const tabs = searchCasesResponse.tabs.filter(tab => {
122
+ const caseNameHmctsInternalField = tab.fields.find(field => field.id === 'caseNameHmctsInternal');
123
+ if (caseNameHmctsInternalField) {
124
+ caseName = caseNameHmctsInternalField.value;
125
+ }
126
+ });
127
+ return caseName;
128
+ }
129
+ }
130
+ LinkedCasesService.CASE_NAME_MISSING_TEXT = 'Case name missing';
131
+ LinkedCasesService.ɵfac = function LinkedCasesService_Factory(t) { return new (t || LinkedCasesService)(i0.ɵɵinject(i1.JurisdictionService), i0.ɵɵinject(i2.SearchService)); };
132
+ LinkedCasesService.ɵprov = i0.ɵɵdefineInjectable({ token: LinkedCasesService, factory: LinkedCasesService.ɵfac });
133
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LinkedCasesService, [{
134
+ type: Injectable
135
+ }], function () { return [{ type: i1.JurisdictionService }, { type: i2.SearchService }]; }, null); })();
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWxpbmsvc2VydmljZXMvbGlua2VkLWNhc2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUc3RCxNQUFNLE9BQU8sa0JBQWtCO0lBb0I3QixZQUE2QixtQkFBd0MsRUFDeEMsYUFBNEI7UUFENUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWpCbEQsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBSWxDLG9CQUFlLEdBQXNCLEVBQUUsQ0FBQztRQUN4QyxnQkFBVyxHQUFlLEVBQUUsQ0FBQztRQUM3QixxQkFBZ0IsR0FBZSxFQUFFLENBQUM7UUFDbEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQiwwQkFBcUIsR0FBbUIsRUFBRSxDQUFDO1FBRTNDLGdCQUFXLEdBQW9DLElBQUksQ0FBQztRQUNwRCx5QkFBb0IsR0FBb0MsSUFBSSxDQUFDO1FBQzdELDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNoQyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFXMUIsK0JBQTBCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDbEQsT0FBTyxNQUFNLENBQUMsTUFBTSxD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QUFDO1lBQzNDLEtBQUssbUJBQW1CO2dCQUN0QixPQUFPLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxJQUFJLFVBQVUsQ0FBQztZQUNsRDtnQkFDRSxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRU0sV0FBVyxDQUFDLG1CQUE2QjtRQUM5QyxJQUFJLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLHVCQUF1QixDQUFDLENBQUM7WUFDbEcsSUFBSSwwQkFBMEIsRUFBRTtnQkFDOUIsUUFBUSxHQUFHLDBCQUEwQixDQUFDLEtBQUssQ0FBQzthQUM3QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7QUF2SXVCLHlDQUFzQixHQUFHLG1CQUFtQixDQUFDO29GQUYxRCxrQkFBa0I7MERBQWxCLGtCQUFrQixXQUFsQixrQkFBa0I7dUZBQWxCLGtCQUFrQjtjQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhc2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldyc7XG5pbXBvcnQgeyBKdXJpc2RpY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9qdXJpc2RpY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IExvdlJlZkRhdGFNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2NvbW1vbi1kYXRhLXNlcnZpY2UvY29tbW9uLWRhdGEtc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTGluaywgRVNRdWVyeVR5cGUsIExpbmtSZWFzb24gfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uU2VydmljZSB9IGZyb20gJy4vanVyaXNkaWN0aW9uLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGlua2VkQ2FzZXNTZXJ2aWNlIHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX05BTUVfTUlTU0lOR19URVhUID0gJ0Nhc2UgbmFtZSBtaXNzaW5nJztcblxuICBwdWJsaWMgY2FzZUZpZWxkVmFsdWUgPSBbXTtcbiAgcHVibGljIGlzTGlua2VkQ2FzZXNFdmVudFRyaWdnZXIgPSBmYWxzZTtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIGNhc2VJZDogc3RyaW5nO1xuICBwdWJsaWMgY2FzZU5hbWU6IHN0cmluZztcbiAgcHVibGljIGxpbmtDYXNlUmVhc29uczogTG92UmVmRGF0YU1vZGVsW10gPSBbXTtcbiAgcHVibGljIGxpbmtlZENhc2VzOiBDYXNlTGlua1tdID0gW107XG4gIHB1YmxpYyBpbml0aWFsQ2FzZUxpbmtzOiBDYXNlTGlua1tdID0gW107XG4gIHB1YmxpYyBlZGl0TW9kZSA9IGZhbHNlO1xuICBwdWJsaWMganVyaXNkaWN0aW9uc1Jlc3BvbnNlOiBKdXJpc2RpY3Rpb25bXSA9IFtdO1xuICBwdWJsaWMgc2VydmVySnVyaXNkaWN0aW9uRXJyb3I6IGJvb2xlYW47XG4gIHB1YmxpYyBzZXJ2ZXJFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSA9IG51bGw7XG4gIHB1YmxpYyBzZXJ2ZXJMaW5rZWRBcGlFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSA9IG51bGw7XG4gIHB1YmxpYyBpc1NlcnZlclJlYXNvbkNvZGVFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgY2FzZUp1cmlzZGljdGlvbklEID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGp1cmlzZGljdGlvblNlcnZpY2U6IEp1cmlzZGljdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge1xuICAgIHRoaXMuanVyaXNkaWN0aW9uU2VydmljZS5nZXRKdXJpc2RpY3Rpb25zKCkuc3Vic2NyaWJlKChqdXJpc2RpY3Rpb25zKSA9PiB7XG4gICAgICB0aGlzLmp1cmlzZGljdGlvbnNSZXNwb25zZSA9IGp1cmlzZGljdGlvbnM7XG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICB0aGlzLnNlcnZlckp1cmlzZGljdGlvbkVycm9yID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBncm91cExpbmtlZENhc2VzQnlDYXNlVHlwZSA9IChhcnJPYmosIGtleSkgPT4ge1xuICAgIHJldHVybiBhcnJPYmoucmVkdWNlKChydiwgeCkgPT4ge1xuICAgICAgKHJ2W3gudmFsdWVba2V5XV0gPSBydlt4LnZhbHVlW2tleV1dIHx8IFtdKS5wdXNoKHgudmFsdWVbJ0Nhc2VSZWZlcmVuY2UnXSk7XG4gICAgICByZXR1cm4gcnY7XG4gICAgfSwge30pO1xuICB9O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RFbGFzdGljU2VhcmNoUXVlcnkoY2FzZUlkczogYW55W10sIHNpemU6IG51bWJlcik6IEVTUXVlcnlUeXBlIHtcbiAgICByZXR1cm4ge1xuICAgICAgcXVlcnk6IHtcbiAgICAgICAgdGVybXM6IHtcbiAgICAgICAgICByZWZlcmVuY2U6IGNhc2VJZHMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2l6ZSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG1hcFJlc3BvbnNlKGVzU2VhcmNoQ2FzZXNSZXNwb25zZSkge1xuICAgIGNvbnN0IGNhc2VJbmZvID0gdGhpcy5jYXNlRmllbGRWYWx1ZS5maW5kKGl0ZW0gPT4gaXRlbS52YWx1ZSAmJiBpdGVtLnZhbHVlLkNhc2VSZWZlcmVuY2UgPT09IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX2lkKTtcbiAgICByZXR1cm4gY2FzZUluZm8gJiYge1xuICAgICAgY2FzZVJlZmVyZW5jZTogZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfaWQsXG4gICAgICBjYXNlTmFtZTogZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfZmllbGRzLmNhc2VOYW1lSG1jdHNJbnRlcm5hbCB8fCBMaW5rZWRDYXNlc1NlcnZpY2UuQ0FTRV9OQU1FX01JU1NJTkdfVEVYVCxcbiAgICAgIGNhc2VUeXBlOiB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdDQVNFX1RZUEUnLCBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV9maWVsZHNbJ1tDQVNFX1RZUEVdJ10pLFxuICAgICAgc2VydmljZTogdGhpcy5tYXBMb29rdXBJRFRvVmFsdWVGcm9tSnVyaXNkaWN0aW9ucygnSlVSSVNESUNUSU9OJywgZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfZmllbGRzWydbSlVSSVNESUNUSU9OXSddKSxcbiAgICAgIHN0YXRlOiB0aGlzLm1hcExvb2t1cElEVG9WYWx1ZUZyb21KdXJpc2RpY3Rpb25zKCdTVEFURScsIGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX2ZpZWxkc1snW1NUQVRFXSddKSxcbiAgICAgIHJlYXNvbnM6IGNhc2VJbmZvLnZhbHVlICYmIGNhc2VJbmZvLnZhbHVlLlJlYXNvbkZvckxpbmsgJiZcbiAgICAgICAgY2FzZUluZm8udmFsdWUuUmVhc29uRm9yTGluay5tYXAocmVhc29uID0+IHJlYXNvbi52YWx1ZSAmJiByZWFzb24udmFsdWUuUmVhc29uKSxcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoQ2FzZXNCeUNhc2VJZHMoc2VhcmNoQ2FzZXNSZXNwb25zZTogYW55W10pIHtcbiAgICByZXR1cm4gZm9ya0pvaW4oc2VhcmNoQ2FzZXNSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCkge1xuICAgIGNvbnN0IHNlYXJjaENhc2VzUmVzcG9uc2UgPSBbXTtcbiAgICBjb25zdCBsaW5rZWRDYXNlSWRzID0gdGhpcy5ncm91cExpbmtlZENhc2VzQnlDYXNlVHlwZSh0aGlzLmNhc2VGaWVsZFZhbHVlLCAnQ2FzZVR5cGUnKTtcbiAgICBPYmplY3Qua2V5cyhsaW5rZWRDYXNlSWRzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCBlc1F1ZXJ5ID0gdGhpcy5jb25zdHJ1Y3RFbGFzdGljU2VhcmNoUXVlcnkobGlua2VkQ2FzZUlkc1trZXldLCAxMDApXG4gICAgICBjb25zdCBxdWVyeSA9IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2hDYXNlc0J5SWRzKGtleSwgZXNRdWVyeSwgU2VhcmNoU2VydmljZS5WSUVXX1dPUktCQVNLRVQpO1xuICAgICAgc2VhcmNoQ2FzZXNSZXNwb25zZS5wdXNoKHF1ZXJ5KTtcbiAgICB9KTtcbiAgICBpZiAoc2VhcmNoQ2FzZXNSZXNwb25zZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VhcmNoQ2FzZXNCeUNhc2VJZHMoc2VhcmNoQ2FzZXNSZXNwb25zZSkuc3Vic2NyaWJlKChzZWFyY2hDYXNlczogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGNhc2VzUmVzcG9uc2UgPSBbXTtcbiAgICAgICAgc2VhcmNoQ2FzZXMuZm9yRWFjaChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgcmVzcG9uc2UucmVzdWx0cy5mb3JFYWNoKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY2FzZXNSZXNwb25zZS5wdXNoKHRoaXMubWFwUmVzcG9uc2UocmVzdWx0KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGNhc2VMaW5rcyA9IGNhc2VzUmVzcG9uc2UubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjYXNlUmVmZXJlbmNlOiBpdGVtLmNhc2VSZWZlcmVuY2UsXG4gICAgICAgICAgICBjYXNlTmFtZTogaXRlbS5jYXNlTmFtZSxcbiAgICAgICAgICAgIGNhc2VTZXJ2aWNlOiBpdGVtLnNlcnZpY2UsXG4gICAgICAgICAgICBjYXNlVHlwZTogaXRlbS5jYXNlVHlwZSxcbiAgICAgICAgICAgIHVubGluazogZmFsc2UsXG4gICAgICAgICAgICByZWFzb25zOiBpdGVtLnJlYXNvbnMgJiYgaXRlbS5yZWFzb25zLm1hcChyZWFzb24gPT4ge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlYXNvbkNvZGU6IHJlYXNvblxuICAgICAgICAgICAgICB9IGFzIExpbmtSZWFzb25cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0gYXMgQ2FzZUxpbmtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXMgPSBjYXNlTGlua3M7XG4gICAgICAgIHRoaXMuc2VydmVyTGlua2VkQXBpRXJyb3IgPSBudWxsO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgIHRoaXMuc2VydmVyTGlua2VkQXBpRXJyb3IgPSB7XG4gICAgICAgICAgaWQ6ICdiYWNrZW5kRXJyb3InLCBtZXNzYWdlOiAnU29tZSBjYXNlIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlIG1vbWVudCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbWFwTG9va3VwSURUb1ZhbHVlRnJvbUp1cmlzZGljdGlvbnMoZmllbGROYW1lLCBmaWVsZFZhbHVlKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3RlZEp1cmlzZGljdGlvbiA9IHRoaXMuanVyaXNkaWN0aW9uc1Jlc3BvbnNlICYmXG4gICAgICB0aGlzLmp1cmlzZGljdGlvbnNSZXNwb25zZS5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gdGhpcy5jYXNlRGV0YWlscy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmlkKTtcbiAgICBjb25zdCBzZWxlY3RlZENhc2VUeXBlID0gc2VsZWN0ZWRKdXJpc2RpY3Rpb24gJiYgc2VsZWN0ZWRKdXJpc2RpY3Rpb24uY2FzZVR5cGVzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfdHlwZS5pZCk7XG4gICAgY29uc3Qgc3RhdGUgPSBzZWxlY3RlZENhc2VUeXBlICYmIHNlbGVjdGVkQ2FzZVR5cGUuc3RhdGVzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBmaWVsZFZhbHVlKTtcbiAgICBzd2l0Y2ggKGZpZWxkTmFtZSkge1xuICAgICAgY2FzZSAnSlVSSVNESUNUSU9OJzpcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkSnVyaXNkaWN0aW9uICYmIHNlbGVjdGVkSnVyaXNkaWN0aW9uLmRlc2NyaXB0aW9uO1xuICAgICAgY2FzZSAnQ0FTRV9UWVBFJzpcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkQ2FzZVR5cGUgJiYgc2VsZWN0ZWRDYXNlVHlwZS5uYW1lO1xuICAgICAgY2FzZSAnQ0FTRV9UWVBFX0RFU0NSSVBUSU9OJzpcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkQ2FzZVR5cGUgJiYgc2VsZWN0ZWRDYXNlVHlwZS5kZXNjcmlwdGlvbjtcbiAgICAgIGNhc2UgJ1NUQVRFJzpcbiAgICAgICAgcmV0dXJuIHN0YXRlICYmIHN0YXRlLm5hbWUgfHwgZmllbGRWYWx1ZTtcbiAgICAgIGNhc2UgJ1NUQVRFX0RFU0NSSVBUSU9OJzpcbiAgICAgICAgcmV0dXJuIHN0YXRlICYmIHN0YXRlLmRlc2NyaXB0aW9uIHx8IGZpZWxkVmFsdWU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZU5hbWUoc2VhcmNoQ2FzZXNSZXNwb25zZTogQ2FzZVZpZXcpOiBzdHJpbmcge1xuICAgIGxldCBjYXNlTmFtZSA9IExpbmtlZENhc2VzU2VydmljZS5DQVNFX05BTUVfTUlTU0lOR19URVhUO1xuICAgIGNvbnN0IHRhYnMgPSBzZWFyY2hDYXNlc1Jlc3BvbnNlLnRhYnMuZmlsdGVyKHRhYiA9PiB7XG4gICAgICBjb25zdCBjYXNlTmFtZUhtY3RzSW50ZXJuYWxGaWVsZCA9IHRhYi5maWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZC5pZCA9PT0gJ2Nhc2VOYW1lSG1jdHNJbnRlcm5hbCcpO1xuICAgICAgaWYgKGNhc2VOYW1lSG1jdHNJbnRlcm5hbEZpZWxkKSB7XG4gICAgICAgIGNhc2VOYW1lID0gY2FzZU5hbWVIbWN0c0ludGVybmFsRmllbGQudmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNhc2VOYW1lO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ValidatorsUtils {
4
+ numberLengthValidator(inputLength) {
5
+ return (control) => {
6
+ return control.value.length !== inputLength ? { isValid: false } : null;
7
+ };
8
+ }
9
+ formArraySelectedValidator() {
10
+ return (control) => {
11
+ return control.value.every((option) => !option.selected) ? { isValid: false } : null;
12
+ };
13
+ }
14
+ regexPattern(regexPattern) {
15
+ return (control) => {
16
+ const regex = new RegExp(regexPattern);
17
+ return regex.test(control.value) ? null : { isValid: false };
18
+ };
19
+ }
20
+ }
21
+ ValidatorsUtils.ɵfac = function ValidatorsUtils_Factory(t) { return new (t || ValidatorsUtils)(); };
22
+ ValidatorsUtils.ɵprov = i0.ɵɵdefineInjectable({ token: ValidatorsUtils, factory: ValidatorsUtils.ɵfac, providedIn: 'root' });
23
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ValidatorsUtils, [{
24
+ type: Injectable,
25
+ args: [{ providedIn: 'root' }]
26
+ }], null, null); })();
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtbGluay91dGlscy92YWxpZGF0b3JzLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxlQUFlO0lBQ25CLHFCQUFxQixDQUFDLFdBQW1CO1FBQzlDLE9BQU8sQ0FBQyxPQUF3QixFQUFpQyxFQUFFO1lBQ2pFLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFFLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDTSwwQkFBMEI7UUFDL0IsT0FBTyxDQUFDLE9BQXdCLEVBQWlDLEVBQUU7WUFDakUsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkYsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNNLFlBQVksQ0FBQyxZQUFvQjtRQUN0QyxPQUFPLENBQUMsT0FBd0IsRUFBaUMsRUFBRTtZQUNqRSxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN2QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQy9ELENBQUMsQ0FBQztJQUNKLENBQUM7OzhFQWhCVSxlQUFlO3VEQUFmLGVBQWUsV0FBZixlQUFlLG1CQURGLE1BQU07dUZBQ25CLGVBQWU7Y0FEM0IsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9yc1V0aWxzIHtcbiAgcHVibGljIG51bWJlckxlbmd0aFZhbGlkYXRvcihpbnB1dExlbmd0aDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgcmV0dXJuIGNvbnRyb2wudmFsdWUubGVuZ3RoICE9PSBpbnB1dExlbmd0aCA/IHsgaXNWYWxpZDogZmFsc2UgfSA6IG51bGw7XG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZm9ybUFycmF5U2VsZWN0ZWRWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xuICAgICAgcmV0dXJuIGNvbnRyb2wudmFsdWUuZXZlcnkoKG9wdGlvbikgPT4gIW9wdGlvbi5zZWxlY3RlZCkgPyB7IGlzVmFsaWQ6IGZhbHNlIH0gOiBudWxsO1xuICAgIH07XG4gIH1cbiAgcHVibGljIHJlZ2V4UGF0dGVybihyZWdleFBhdHRlcm46IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChyZWdleFBhdHRlcm4pO1xuICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QoY29udHJvbC52YWx1ZSkgPyBudWxsIDogeyBpc1ZhbGlkOiBmYWxzZSB9O1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,57 +1,78 @@
1
- import { Component, ViewChild } from '@angular/core';
2
- import { FormControl, FormGroup, Validators } from '@angular/forms';
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';
3
+ import { CaseEditPageComponent } from '../../case-editor/case-edit-page/case-edit-page.component';
3
4
  import { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';
4
5
  import { WriteComplexFieldComponent } from '../complex/write-complex-field.component';
6
+ import { LinkedCasesService } from './services';
5
7
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "../utils/field-label.pipe";
9
- import * as i4 from "../utils/first-error.pipe";
8
+ import * as i1 from "./services";
10
9
  const _c0 = ["writeComplexFieldComponent"];
11
- function WriteCaseLinkFieldComponent_span_2_Template(rf, ctx) { if (rf & 1) {
10
+ function WriteCaseLinkFieldComponent_div_1_span_2_Template(rf, ctx) { if (rf & 1) {
12
11
  i0.ɵɵelementStart(0, "span", 6);
13
12
  i0.ɵɵtext(1);
14
- i0.ɵɵpipe(2, "ccdFieldLabel");
13
+ i0.ɵɵpipe(2, "rpxTranslate");
14
+ i0.ɵɵpipe(3, "ccdFieldLabel");
15
15
  i0.ɵɵelementEnd();
16
16
  } if (rf & 2) {
17
- const ctx_r0 = i0.ɵɵnextContext();
17
+ const ctx_r2 = i0.ɵɵnextContext(2);
18
18
  i0.ɵɵadvance(1);
19
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r0.caseField));
19
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBind1(3, 3, ctx_r2.caseField)));
20
20
  } }
21
- function WriteCaseLinkFieldComponent_span_3_Template(rf, ctx) { if (rf & 1) {
21
+ function WriteCaseLinkFieldComponent_div_1_span_3_Template(rf, ctx) { if (rf & 1) {
22
22
  i0.ɵɵelementStart(0, "span", 7);
23
23
  i0.ɵɵtext(1);
24
+ i0.ɵɵpipe(2, "rpxTranslate");
24
25
  i0.ɵɵelementEnd();
25
26
  } if (rf & 2) {
26
- const ctx_r1 = i0.ɵɵnextContext();
27
+ const ctx_r3 = i0.ɵɵnextContext(2);
27
28
  i0.ɵɵadvance(1);
28
- i0.ɵɵtextInterpolate(ctx_r1.caseField.hint_text);
29
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r3.caseField.hint_text));
29
30
  } }
30
- function WriteCaseLinkFieldComponent_span_4_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵelementStart(0, "span", 8);
32
- i0.ɵɵtext(1);
33
- i0.ɵɵpipe(2, "ccdFirstError");
31
+ function WriteCaseLinkFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelementStart(0, "div", 1);
33
+ i0.ɵɵelementStart(1, "label", 2);
34
+ i0.ɵɵtemplate(2, WriteCaseLinkFieldComponent_div_1_span_2_Template, 4, 5, "span", 3);
35
+ i0.ɵɵelementEnd();
36
+ i0.ɵɵtemplate(3, WriteCaseLinkFieldComponent_div_1_span_3_Template, 3, 3, "span", 4);
37
+ i0.ɵɵelement(4, "input", 5);
38
+ i0.ɵɵelementEnd();
39
+ } if (rf & 2) {
40
+ const ctx_r0 = i0.ɵɵnextContext();
41
+ i0.ɵɵadvance(1);
42
+ i0.ɵɵproperty("for", ctx_r0.id());
43
+ i0.ɵɵadvance(1);
44
+ i0.ɵɵproperty("ngIf", ctx_r0.caseField.label);
45
+ i0.ɵɵadvance(1);
46
+ i0.ɵɵproperty("ngIf", ctx_r0.caseField.hint_text);
47
+ i0.ɵɵadvance(1);
48
+ i0.ɵɵproperty("id", ctx_r0.id())("formControl", ctx_r0.caseReferenceControl);
49
+ } }
50
+ function WriteCaseLinkFieldComponent_div_2_Template(rf, ctx) { if (rf & 1) {
51
+ const _r5 = i0.ɵɵgetCurrentView();
52
+ i0.ɵɵelementStart(0, "div", 1);
53
+ i0.ɵɵelementStart(1, "ccd-write-linked-cases", 8);
54
+ i0.ɵɵlistener("onLinkedCasesSelected", function WriteCaseLinkFieldComponent_div_2_Template_ccd_write_linked_cases_onLinkedCasesSelected_1_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(); return ctx_r4.submitLinkedCases(); });
55
+ i0.ɵɵelementEnd();
34
56
  i0.ɵɵelementEnd();
35
57
  } if (rf & 2) {
36
- const ctx_r2 = i0.ɵɵnextContext();
58
+ const ctx_r1 = i0.ɵɵnextContext();
37
59
  i0.ɵɵadvance(1);
38
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ctx_r2.caseReferenceControl.errors, ctx_r2.caseField.label));
60
+ i0.ɵɵproperty("caseFields", ctx_r1.caseFields)("caseField", ctx_r1.caseField)("formGroup", ctx_r1.formGroup)("caseEditPageComponent", ctx_r1.caseEditPageComponent)("isLinkedCasesJourney", ctx_r1.linkedCasesService.isLinkedCasesEventTrigger);
39
61
  } }
40
- const _c1 = function (a0) { return { "form-group-error": a0 }; };
41
62
  export class WriteCaseLinkFieldComponent extends AbstractFieldWriteComponent {
63
+ constructor(linkedCasesService) {
64
+ super();
65
+ this.linkedCasesService = linkedCasesService;
66
+ this.caseFields = [];
67
+ }
42
68
  ngOnInit() {
43
- if (this.caseField.value) {
69
+ this.formArray = this.registerControl(new FormArray([]), true);
70
+ this.formArray['caseField'] = this.caseField;
71
+ if (!this.hasCaseLinkCollection()) {
44
72
  this.caseLinkGroup = this.registerControl(new FormGroup({
45
73
  CaseReference: new FormControl(this.caseField.value.CaseReference, Validators.required),
46
74
  }), true);
47
75
  }
48
- else {
49
- this.caseLinkGroup = this.registerControl(new FormGroup({
50
- CaseReference: new FormControl(null, Validators.required),
51
- }), true);
52
- }
53
- this.caseReferenceControl = this.caseLinkGroup.controls['CaseReference'];
54
- this.caseReferenceControl.setValidators(this.caseReferenceValidator());
55
76
  // Ensure that all sub-fields inherit the same value for retain_hidden_value as this parent; although a CaseLink
56
77
  // field uses the Complex type, it is meant to be treated as one field
57
78
  if (this.caseField && this.caseField.field_type.type === 'Complex') {
@@ -59,6 +80,18 @@ export class WriteCaseLinkFieldComponent extends AbstractFieldWriteComponent {
59
80
  caseLinkSubField.retain_hidden_value = this.caseField.retain_hidden_value;
60
81
  }
61
82
  }
83
+ this.containsCaseLinkCollection = this.hasCaseLinkCollection();
84
+ }
85
+ submitLinkedCases() {
86
+ const formGroup = this.formGroup;
87
+ if (!this.linkedCasesService.isLinkedCasesEventTrigger) {
88
+ const unlinkedCaseRefereneIds = this.linkedCasesService.linkedCases.filter(item => item.unlink).map(item => item.caseReference);
89
+ this.formGroup.value.caseLinks = this.linkedCasesService.caseFieldValue
90
+ .filter(item => unlinkedCaseRefereneIds.indexOf(item.id) === -1);
91
+ }
92
+ else if (formGroup.value && formGroup.value.caseLinks && this.linkedCasesService.linkedCases) {
93
+ this.formGroup.value.caseLinks = this.linkedCasesService.caseFieldValue;
94
+ }
62
95
  }
63
96
  validCaseReference(valueString) {
64
97
  if (!valueString) {
@@ -66,60 +99,43 @@ export class WriteCaseLinkFieldComponent extends AbstractFieldWriteComponent {
66
99
  }
67
100
  return new RegExp('^\\b\\d{4}[ -]?\\d{4}[ -]?\\d{4}[ -]?\\d{4}\\b$').test(valueString.trim());
68
101
  }
69
- caseReferenceValidator() {
70
- return (control) => {
71
- if (control.value) {
72
- if (this.validCaseReference(control.value)) {
73
- return null;
74
- }
75
- return { error: 'Please use a valid 16 Digit Case Reference' };
76
- }
77
- else {
78
- if (control.touched) {
79
- return { error: 'Please use a valid 16 Digit Case Reference' };
80
- }
81
- }
82
- return null;
83
- };
102
+ hasCaseLinkCollection() {
103
+ return (this.caseField.field_type &&
104
+ this.caseField.field_type.type === 'Collection' &&
105
+ this.caseField.field_type.collection_field_type.id === 'CaseLink');
84
106
  }
85
107
  }
86
- WriteCaseLinkFieldComponent.ɵfac = function WriteCaseLinkFieldComponent_Factory(t) { return ɵWriteCaseLinkFieldComponent_BaseFactory(t || WriteCaseLinkFieldComponent); };
108
+ WriteCaseLinkFieldComponent.ɵfac = function WriteCaseLinkFieldComponent_Factory(t) { return new (t || WriteCaseLinkFieldComponent)(i0.ɵɵdirectiveInject(i1.LinkedCasesService)); };
87
109
  WriteCaseLinkFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCaseLinkFieldComponent, selectors: [["ccd-write-case-link-field"]], viewQuery: function WriteCaseLinkFieldComponent_Query(rf, ctx) { if (rf & 1) {
88
110
  i0.ɵɵviewQuery(_c0, 1);
89
111
  } if (rf & 2) {
90
112
  let _t;
91
113
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.writeComplexFieldComponent = _t.first);
92
- } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 9, consts: [[1, "form-group", 3, "ngClass"], [3, "for"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], ["type", "text", 1, "form-control", "bottom-30", 3, "id", "formControl"], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function WriteCaseLinkFieldComponent_Template(rf, ctx) { if (rf & 1) {
93
- i0.ɵɵelementStart(0, "div", 0);
94
- i0.ɵɵelementStart(1, "label", 1);
95
- i0.ɵɵtemplate(2, WriteCaseLinkFieldComponent_span_2_Template, 3, 3, "span", 2);
96
- i0.ɵɵelementEnd();
97
- i0.ɵɵtemplate(3, WriteCaseLinkFieldComponent_span_3_Template, 2, 1, "span", 3);
98
- i0.ɵɵtemplate(4, WriteCaseLinkFieldComponent_span_4_Template, 3, 4, "span", 4);
99
- i0.ɵɵelement(5, "input", 5);
100
- i0.ɵɵelementEnd();
114
+ } }, inputs: { caseFields: "caseFields", formGroup: "formGroup", caseEditPageComponent: "caseEditPageComponent" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [["class", "form-group", 4, "ngIf"], [1, "form-group"], [3, "for"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["type", "text", 1, "form-control", "bottom-30", 3, "id", "formControl"], [1, "form-label"], [1, "form-hint"], [3, "caseFields", "caseField", "formGroup", "caseEditPageComponent", "isLinkedCasesJourney", "onLinkedCasesSelected"]], template: function WriteCaseLinkFieldComponent_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementContainerStart(0);
116
+ i0.ɵɵtemplate(1, WriteCaseLinkFieldComponent_div_1_Template, 5, 5, "div", 0);
117
+ i0.ɵɵtemplate(2, WriteCaseLinkFieldComponent_div_2_Template, 2, 5, "div", 0);
118
+ i0.ɵɵelementContainerEnd();
101
119
  } if (rf & 2) {
102
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c1, !ctx.caseReferenceControl.valid && (ctx.caseReferenceControl.dirty || ctx.caseReferenceControl.touched)));
103
- i0.ɵɵadvance(1);
104
- i0.ɵɵproperty("for", ctx.id());
105
- i0.ɵɵadvance(1);
106
- i0.ɵɵproperty("ngIf", ctx.caseField.label);
107
- i0.ɵɵadvance(1);
108
- i0.ɵɵproperty("ngIf", ctx.caseField.hint_text);
109
120
  i0.ɵɵadvance(1);
110
- i0.ɵɵproperty("ngIf", ctx.caseReferenceControl.errors && (ctx.caseReferenceControl.dirty || ctx.caseReferenceControl.touched));
121
+ i0.ɵɵproperty("ngIf", !ctx.containsCaseLinkCollection);
111
122
  i0.ɵɵadvance(1);
112
- i0.ɵɵproperty("id", ctx.id())("formControl", ctx.caseReferenceControl);
113
- } }, directives: [i1.NgClass, i1.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.FormControlDirective], pipes: [i3.FieldLabelPipe, i4.FirstErrorPipe], encapsulation: 2 });
114
- const ɵWriteCaseLinkFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(WriteCaseLinkFieldComponent);
123
+ i0.ɵɵproperty("ngIf", ctx.containsCaseLinkCollection);
124
+ } }, encapsulation: 2 });
115
125
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteCaseLinkFieldComponent, [{
116
126
  type: Component,
117
127
  args: [{
118
128
  selector: 'ccd-write-case-link-field',
119
129
  templateUrl: 'write-case-link-field.html'
120
130
  }]
121
- }], null, { writeComplexFieldComponent: [{
131
+ }], function () { return [{ type: i1.LinkedCasesService }]; }, { caseFields: [{
132
+ type: Input
133
+ }], formGroup: [{
134
+ type: Input
135
+ }], caseEditPageComponent: [{
136
+ type: Input
137
+ }], writeComplexFieldComponent: [{
122
138
  type: ViewChild,
123
139
  args: ['writeComplexFieldComponent', /* TODO: add static flag */ {}]
124
140
  }] }); })();
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY2FzZS1saW5rLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtbGluay93cml0ZS1jYXNlLWxpbmstZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1saW5rL3dyaXRlLWNhc2UtbGluay1maWVsZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBbUIsV0FBVyxFQUFFLFNBQVMsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7SUNGbEYsK0JBQWlEO0lBQUEsWUFBNkI7O0lBQUEsaUJBQU87OztJQUFwQyxlQUE2QjtJQUE3Qiw0REFBNkI7OztJQUVoRiwrQkFBb0Q7SUFBQSxZQUF1QjtJQUFBLGlCQUFPOzs7SUFBOUIsZUFBdUI7SUFBdkIsZ0RBQXVCOzs7SUFDM0UsK0JBQWdJO0lBQUEsWUFBK0Q7O0lBQUEsaUJBQU87OztJQUF0RSxlQUErRDtJQUEvRCxzR0FBK0Q7OztBREtqTSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsMkJBQTJCO0lBUW5FLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLFNBQVMsQ0FBQztnQkFDdEQsYUFBYSxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO2FBQ3hGLENBQUMsRUFBRSxJQUFJLENBQWMsQ0FBQztTQUN4QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksU0FBUyxDQUFDO2dCQUN0RCxhQUFhLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7YUFDMUQsQ0FBQyxFQUFFLElBQUksQ0FBYyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQztRQUV2RSxnSEFBZ0g7UUFDaEgsc0VBQXNFO1FBQ3RFLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ2xFLEtBQUssTUFBTSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUU7Z0JBQ3ZFLGdCQUFnQixDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUM7YUFDM0U7U0FDRjtJQUNILENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxXQUFtQjtRQUMzQyxJQUFJLENBQUMsV0FBVyxFQUFJO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLGlEQUFpRCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxDQUFDLE9BQXdCLEVBQTBCLEVBQUU7WUFDMUQsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNqQixJQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUc7b0JBQzVDLE9BQU8sSUFBSSxDQUFDO2lCQUNiO2dCQUNELE9BQU8sRUFBQyxLQUFLLEVBQUUsNENBQTRDLEVBQUMsQ0FBQzthQUM5RDtpQkFBTTtnQkFDTCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7b0JBQ25CLE9BQU8sRUFBQyxLQUFLLEVBQUUsNENBQTRDLEVBQUMsQ0FBQztpQkFDOUQ7YUFDRjtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7MElBbkRVLDJCQUEyQjtnRUFBM0IsMkJBQTJCOzs7Ozs7UUNWeEMsOEJBQXNKO1FBQ3BKLGdDQUFvQjtRQUNsQiw4RUFBcUY7UUFDdkYsaUJBQVE7UUFDUiw4RUFBa0Y7UUFDbEYsOEVBQXNNO1FBQ3RNLDJCQUFtRztRQUNyRyxpQkFBTTs7UUFQa0IsNkpBQTZIO1FBQzVJLGVBQVk7UUFBWiw4QkFBWTtRQUNTLGVBQXFCO1FBQXJCLDBDQUFxQjtRQUV4QixlQUF5QjtRQUF6Qiw4Q0FBeUI7UUFDckIsZUFBaUc7UUFBakcsOEhBQWlHO1FBQ3hGLGVBQVc7UUFBWCw2QkFBVyx5Q0FBQTs7d0ZESXRDLDJCQUEyQjt1RkFBM0IsMkJBQTJCO2NBSnZDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxXQUFXLEVBQUUsNEJBQTRCO2FBQzFDO2dCQU9RLDBCQUEwQjtrQkFEaEMsU0FBUzttQkFBQyw0QkFBNEIsRUFBRSwyQkFBMkIsQ0FBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgV3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wbGV4L3dyaXRlLWNvbXBsZXgtZmllbGQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWNhc2UtbGluay1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnd3JpdGUtY2FzZS1saW5rLWZpZWxkLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlQ2FzZUxpbmtGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIGNhc2VSZWZlcmVuY2VDb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIHB1YmxpYyBjYXNlTGlua0dyb3VwOiBGb3JtR3JvdXA7XG5cbiAgQFZpZXdDaGlsZCgnd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQnLCAvKiBUT0RPOiBhZGQgc3RhdGljIGZsYWcgKi8ge30pXG4gIHB1YmxpYyB3cml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudDogV3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQ7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZC52YWx1ZSkge1xuICAgICAgdGhpcy5jYXNlTGlua0dyb3VwID0gdGhpcy5yZWdpc3RlckNvbnRyb2wobmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIENhc2VSZWZlcmVuY2U6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmNhc2VGaWVsZC52YWx1ZS5DYXNlUmVmZXJlbmNlLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgIH0pLCB0cnVlKSBhcyBGb3JtR3JvdXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZUxpbmtHcm91cCA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBDYXNlUmVmZXJlbmNlOiBuZXcgRm9ybUNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICB9KSwgdHJ1ZSkgYXMgRm9ybUdyb3VwO1xuICAgIH1cbiAgICB0aGlzLmNhc2VSZWZlcmVuY2VDb250cm9sID0gdGhpcy5jYXNlTGlua0dyb3VwLmNvbnRyb2xzWydDYXNlUmVmZXJlbmNlJ107XG4gICAgdGhpcy5jYXNlUmVmZXJlbmNlQ29udHJvbC5zZXRWYWxpZGF0b3JzKHRoaXMuY2FzZVJlZmVyZW5jZVZhbGlkYXRvcigpKTtcblxuICAgIC8vIEVuc3VyZSB0aGF0IGFsbCBzdWItZmllbGRzIGluaGVyaXQgdGhlIHNhbWUgdmFsdWUgZm9yIHJldGFpbl9oaWRkZW5fdmFsdWUgYXMgdGhpcyBwYXJlbnQ7IGFsdGhvdWdoIGEgQ2FzZUxpbmtcbiAgICAvLyBmaWVsZCB1c2VzIHRoZSBDb21wbGV4IHR5cGUsIGl0IGlzIG1lYW50IHRvIGJlIHRyZWF0ZWQgYXMgb25lIGZpZWxkXG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkICYmIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICBmb3IgKGNvbnN0IGNhc2VMaW5rU3ViRmllbGQgb2YgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgICBjYXNlTGlua1N1YkZpZWxkLnJldGFpbl9oaWRkZW5fdmFsdWUgPSB0aGlzLmNhc2VGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB2YWxpZENhc2VSZWZlcmVuY2UodmFsdWVTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdmFsdWVTdHJpbmcgKSAge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFJlZ0V4cCgnXlxcXFxiXFxcXGR7NH1bIC1dP1xcXFxkezR9WyAtXT9cXFxcZHs0fVsgLV0/XFxcXGR7NH1cXFxcYiQnKS50ZXN0KHZhbHVlU3RyaW5nLnRyaW0oKSk7XG4gIH1cblxuICBwcml2YXRlIGNhc2VSZWZlcmVuY2VWYWxpZGF0b3IoKTogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICBpZiAoIHRoaXMudmFsaWRDYXNlUmVmZXJlbmNlKGNvbnRyb2wudmFsdWUpICkge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7ZXJyb3I6ICdQbGVhc2UgdXNlIGEgdmFsaWQgMTYgRGlnaXQgQ2FzZSBSZWZlcmVuY2UnfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjb250cm9sLnRvdWNoZWQpIHtcbiAgICAgICAgICByZXR1cm4ge2Vycm9yOiAnUGxlYXNlIHVzZSBhIHZhbGlkIDE2IERpZ2l0IENhc2UgUmVmZXJlbmNlJ307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogIWNhc2VSZWZlcmVuY2VDb250cm9sLnZhbGlkICYmIChjYXNlUmVmZXJlbmNlQ29udHJvbC5kaXJ0eSB8fCBjYXNlUmVmZXJlbmNlQ29udHJvbC50b3VjaGVkKX1cIj5cbiAgPGxhYmVsIFtmb3JdPVwiaWQoKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiICpuZ0lmPVwiY2FzZUZpZWxkLmxhYmVsXCI+e3tjYXNlRmllbGQgfCBjY2RGaWVsZExhYmVsfX08L3NwYW4+XG4gIDwvbGFiZWw+XG4gIDxzcGFuIGNsYXNzPVwiZm9ybS1oaW50XCIgKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0XCI+e3tjYXNlRmllbGQuaGludF90ZXh0fX08L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiY2FzZVJlZmVyZW5jZUNvbnRyb2wuZXJyb3JzICYmIChjYXNlUmVmZXJlbmNlQ29udHJvbC5kaXJ0eSB8fCBjYXNlUmVmZXJlbmNlQ29udHJvbC50b3VjaGVkKVwiPnt7Y2FzZVJlZmVyZW5jZUNvbnRyb2wuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjpjYXNlRmllbGQubGFiZWx9fTwvc3Bhbj5cbiAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGJvdHRvbS0zMFwiIFtpZF09XCJpZCgpXCIgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xdPVwiY2FzZVJlZmVyZW5jZUNvbnRyb2xcIj5cbjwvZGl2PlxuIl19
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY2FzZS1saW5rLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtbGluay93cml0ZS1jYXNlLWxpbmstZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1saW5rL3dyaXRlLWNhc2UtbGluay1maWVsZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7SUNIMUMsK0JBQWlEO0lBQUEsWUFBNEM7OztJQUFBLGlCQUFPOzs7SUFBbkQsZUFBNEM7SUFBNUMsa0ZBQTRDOzs7SUFFL0YsK0JBQW9EO0lBQUEsWUFBc0M7O0lBQUEsaUJBQU87OztJQUE3QyxlQUFzQztJQUF0QyxzRUFBc0M7OztJQUo1Riw4QkFBNEQ7SUFDMUQsZ0NBQW9CO0lBQ2xCLG9GQUFvRztJQUN0RyxpQkFBUTtJQUNSLG9GQUFpRztJQUNqRywyQkFBbUc7SUFDckcsaUJB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QUksTUFBTSxDQUFDLGlEQUFpRCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssWUFBWTtZQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUNsRSxDQUFDO0lBQ0osQ0FBQzs7c0dBbkVVLDJCQUEyQjtnRUFBM0IsMkJBQTJCOzs7Ozs7UUNieEMsNkJBQWM7UUFDWiw0RUFNTTtRQUNQLDRFQUdNO1FBQ1AsMEJBQWU7O1FBWFAsZUFBaUM7UUFBakMsc0RBQWlDO1FBT2YsZUFBZ0M7UUFBaEMscURBQWdDOzt1RkRLN0MsMkJBQTJCO2NBTHZDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxXQUFXLEVBQUUsNEJBQTRCO2FBQzFDO3FFQUtRLFVBQVU7a0JBRGhCLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFNQyxxQkFBcUI7a0JBRDNCLEtBQUs7WUFRQywwQkFBMEI7a0JBRGhDLFNBQVM7bUJBQUMsNEJBQTRCLEVBQUUsMkJBQTJCLENBQUMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUVkaXRQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3IvY2FzZS1lZGl0LXBhZ2UvY2FzZS1lZGl0LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcbmltcG9ydCB7IFdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcGxleC93cml0ZS1jb21wbGV4LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWNhc2UtbGluay1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnd3JpdGUtY2FzZS1saW5rLWZpZWxkLmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgV3JpdGVDYXNlTGlua0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIGZvcm1BcnJheTogRm9ybUFycmF5O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRWRpdFBhZ2VDb21wb25lbnQ6IENhc2VFZGl0UGFnZUNvbXBvbmVudDtcblxuICBwdWJsaWMgY2FzZVJlZmVyZW5jZUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcbiAgcHVibGljIGNhc2VMaW5rR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGNvbnRhaW5zQ2FzZUxpbmtDb2xsZWN0aW9uOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ3dyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50JywgLyogVE9ETzogYWRkIHN0YXRpYyBmbGFnICovIHt9KVxuICBwdWJsaWMgd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQ6IFdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUFycmF5KFtdKSwgdHJ1ZSkgYXMgRm9ybUFycmF5O1xuICAgIHRoaXMuZm9ybUFycmF5WydjYXNlRmllbGQnXSA9IHRoaXMuY2FzZUZpZWxkO1xuXG4gICAgaWYgKCF0aGlzLmhhc0Nhc2VMaW5rQ29sbGVjdGlvbigpKSB7XG4gICAgICB0aGlzLmNhc2VMaW5rR3JvdXAgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgQ2FzZVJlZmVyZW5jZTogbmV3IEZvcm1Db250cm9sKHRoaXMuY2FzZUZpZWxkLnZhbHVlLkNhc2VSZWZlcmVuY2UsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgfSksIHRydWUpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG4gICAgLy8gRW5zdXJlIHRoYXQgYWxsIHN1Yi1maWVsZHMgaW5oZXJpdCB0aGUgc2FtZSB2YWx1ZSBmb3IgcmV0YWluX2hpZGRlbl92YWx1ZSBhcyB0aGlzIHBhcmVudDsgYWx0aG91Z2ggYSBDYXNlTGlua1xuICAgIC8vIGZpZWxkIHVzZXMgdGhlIENvbXBsZXggdHlwZSwgaXQgaXMgbWVhbnQgdG8gYmUgdHJlYXRlZCBhcyBvbmUgZmllbGRcbiAgICBpZiAodGhpcy5jYXNlRmllbGQgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCcpIHtcbiAgICAgIGZvciAoY29uc3QgY2FzZUxpbmtTdWJGaWVsZCBvZiB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzKSB7XG4gICAgICAgIGNhc2VMaW5rU3ViRmllbGQucmV0YWluX2hpZGRlbl92YWx1ZSA9IHRoaXMuY2FzZUZpZWxkLnJldGFpbl9oaWRkZW5fdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29udGFpbnNDYXNlTGlua0NvbGxlY3Rpb24gPSB0aGlzLmhhc0Nhc2VMaW5rQ29sbGVjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdExpbmtlZENhc2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZm9ybUdyb3VwO1xuICAgIGlmICghdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlcikge1xuICAgICAgY29uc3QgdW5saW5rZWRDYXNlUmVmZXJlbmVJZHMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcy5maWx0ZXIoaXRlbSA9PiBpdGVtLnVubGluaykubWFwKGl0ZW0gPT4gaXRlbS5jYXNlUmVmZXJlbmNlKTtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlLmNhc2VMaW5rcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+IHVubGlua2VkQ2FzZVJlZmVyZW5lSWRzLmluZGV4T2YoaXRlbS5pZCkgPT09IC0xKTtcbiAgICB9IGVsc2UgaWYgKGZvcm1Hcm91cC52YWx1ZSAmJiBmb3JtR3JvdXAudmFsdWUuY2FzZUxpbmtzICYmIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC52YWx1ZS5jYXNlTGlua3MgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdmFsaWRDYXNlUmVmZXJlbmNlKHZhbHVlU3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXZhbHVlU3RyaW5nKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBuZXcgUmVnRXhwKCdeXFxcXGJcXFxcZHs0fVsgLV0/XFxcXGR7NH1bIC1dP1xcXFxkezR9WyAtXT9cXFxcZHs0fVxcXFxiJCcpLnRlc3QodmFsdWVTdHJpbmcudHJpbSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNDYXNlTGlua0NvbGxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUgJiZcbiAgICAgIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbGxlY3Rpb24nICYmXG4gICAgICB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5pZCA9PT0gJ0Nhc2VMaW5rJ1xuICAgICk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXYgKm5nSWY9XCIhY29udGFpbnNDYXNlTGlua0NvbGxlY3Rpb25cIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICA8bGFiZWwgW2Zvcl09XCJpZCgpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIiAqbmdJZj1cImNhc2VGaWVsZC5sYWJlbFwiPnt7Y2FzZUZpZWxkIHwgY2NkRmllbGRMYWJlbCB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHQgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYm90dG9tLTMwXCIgW2lkXT1cImlkKClcIiB0eXBlPVwidGV4dFwiIFtmb3JtQ29udHJvbF09XCJjYXNlUmVmZXJlbmNlQ29udHJvbFwiPlxuICA8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiAqbmdJZj1cImNvbnRhaW5zQ2FzZUxpbmtDb2xsZWN0aW9uXCI+XG5cdFx0PGNjZC13cml0ZS1saW5rZWQtY2FzZXMgW2Nhc2VGaWVsZHNdPVwiY2FzZUZpZWxkc1wiIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBbY2FzZUVkaXRQYWdlQ29tcG9uZW50XT1cImNhc2VFZGl0UGFnZUNvbXBvbmVudFwiXG4gICAgICAgICAgICAob25MaW5rZWRDYXNlc1NlbGVjdGVkKT1cInN1Ym1pdExpbmtlZENhc2VzKCk7XCIgW2lzTGlua2VkQ2FzZXNKb3VybmV5XT1cImxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyXCI+PC9jY2Qtd3JpdGUtbGlua2VkLWNhc2VzPlxuXHQ8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19