@hmcts/ccd-case-ui-toolkit 7.0.21-CVE-fix → 7.0.21-accessibility

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 (1081) hide show
  1. package/esm2020/lib/app.config.mjs +45 -0
  2. package/esm2020/lib/components/banners/alert/alert-icon-class.pipe.mjs +25 -0
  3. package/esm2020/lib/components/banners/alert/alert.component.mjs +95 -0
  4. package/esm2020/lib/components/banners/alert/alert.module.mjs +32 -0
  5. package/esm2020/lib/components/banners/banners.module.mjs +32 -0
  6. package/esm2020/lib/components/banners/notification-banner/notification-banner.component.mjs +120 -0
  7. package/esm2020/lib/components/banners/notification-banner/notification-banner.module.mjs +19 -0
  8. package/esm2020/lib/components/body/body.component.mjs +20 -0
  9. package/esm2020/lib/components/body/body.module.mjs +20 -0
  10. package/esm2020/lib/components/footer/footer.component.mjs +105 -0
  11. package/esm2020/lib/components/footer/footers.module.mjs +25 -0
  12. package/esm2020/lib/components/form/date-input/date-input.component.mjs +331 -0
  13. package/esm2020/lib/components/form/form.module.mjs +29 -0
  14. package/esm2020/lib/components/header/header-bar/header-bar.component.mjs +97 -0
  15. package/esm2020/lib/components/header/headers.module.mjs +25 -0
  16. package/esm2020/lib/components/header/navigation/navigation-item.component.mjs +41 -0
  17. package/esm2020/lib/components/header/navigation/navigation.component.mjs +24 -0
  18. package/esm2020/lib/components/header/phase/phase.component.mjs +45 -0
  19. package/esm2020/lib/components/tabs/tab.component.mjs +28 -0
  20. package/esm2020/lib/components/tabs/tabs.component.mjs +79 -0
  21. package/esm2020/lib/components/tabs/tabs.module.mjs +38 -0
  22. package/esm2020/lib/shared/commons/address-validation-constants.mjs +13 -0
  23. package/esm2020/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +19 -0
  24. package/esm2020/lib/shared/commons/case-edit-data/case-edit-data.service.mjs +47 -0
  25. package/esm2020/lib/shared/commons/constants.mjs +13 -0
  26. package/esm2020/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +39 -0
  27. package/esm2020/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +33 -0
  28. package/esm2020/lib/shared/components/activity/activity.component.mjs +151 -0
  29. package/esm2020/lib/shared/components/activity/activity.module.mjs +55 -0
  30. package/esm2020/lib/shared/components/case-editor/case-access-utils/index.mjs +105 -0
  31. package/esm2020/lib/shared/components/case-editor/case-create/case-create.component.mjs +87 -0
  32. package/esm2020/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +432 -0
  33. package/esm2020/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +125 -0
  34. package/esm2020/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +135 -0
  35. package/esm2020/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +69 -0
  36. package/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +751 -0
  37. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +542 -0
  38. package/esm2020/lib/shared/components/case-editor/case-editor.module.mjs +213 -0
  39. package/esm2020/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +86 -0
  40. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +80 -0
  41. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +153 -0
  42. package/esm2020/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +77 -0
  43. package/esm2020/lib/shared/components/case-editor/domain/confirmation.model.mjs +21 -0
  44. package/esm2020/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.mjs +4 -0
  45. package/esm2020/lib/shared/components/case-editor/domain/wizard-page-field.model.mjs +3 -0
  46. package/esm2020/lib/shared/components/case-editor/domain/wizard-page.model.mjs +26 -0
  47. package/esm2020/lib/shared/components/case-editor/domain/wizard.model.mjs +54 -0
  48. package/esm2020/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +93 -0
  49. package/esm2020/lib/shared/components/case-editor/services/case-flag-state.service.mjs +19 -0
  50. package/esm2020/lib/shared/components/case-editor/services/case-worker.service.mjs +32 -0
  51. package/esm2020/lib/shared/components/case-editor/services/case.notifier.mjs +51 -0
  52. package/esm2020/lib/shared/components/case-editor/services/cases.service.mjs +294 -0
  53. package/esm2020/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +41 -0
  54. package/esm2020/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +143 -0
  55. package/esm2020/lib/shared/components/case-editor/services/event-trigger.service.mjs +20 -0
  56. package/esm2020/lib/shared/components/case-editor/services/judicial-worker.service.mjs +32 -0
  57. package/esm2020/lib/shared/components/case-editor/services/page-validation.service.mjs +53 -0
  58. package/esm2020/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +39 -0
  59. package/esm2020/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +117 -0
  60. package/esm2020/lib/shared/components/case-editor/services/work-allocation.service.mjs +209 -0
  61. package/esm2020/lib/shared/components/case-header/case-header.component.mjs +61 -0
  62. package/esm2020/lib/shared/components/case-header/case-header.module.mjs +33 -0
  63. package/esm2020/lib/shared/components/case-history/case-history.component.mjs +242 -0
  64. package/esm2020/lib/shared/components/case-history/case-history.module.mjs +64 -0
  65. package/esm2020/lib/shared/components/case-history/domain/case-history.model.mjs +29 -0
  66. package/esm2020/lib/shared/components/case-history/services/case-history.service.mjs +40 -0
  67. package/esm2020/lib/shared/components/case-list/case-list.component.mjs +362 -0
  68. package/esm2020/lib/shared/components/case-list/case-list.module.mjs +47 -0
  69. package/esm2020/lib/shared/components/case-list-filters/case-list-filters.component.mjs +52 -0
  70. package/esm2020/lib/shared/components/case-list-filters/case-list-filters.module.mjs +64 -0
  71. package/esm2020/lib/shared/components/case-timeline/case-timeline.component.mjs +109 -0
  72. package/esm2020/lib/shared/components/case-timeline/case-timeline.module.mjs +52 -0
  73. package/esm2020/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +247 -0
  74. package/esm2020/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +298 -0
  75. package/esm2020/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +72 -0
  76. package/esm2020/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +141 -0
  77. package/esm2020/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +684 -0
  78. package/esm2020/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +58 -0
  79. package/esm2020/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +241 -0
  80. package/esm2020/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +199 -0
  81. package/esm2020/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +47 -0
  82. package/esm2020/lib/shared/components/case-viewer/case-view/case-view.component.mjs +98 -0
  83. package/esm2020/lib/shared/components/case-viewer/case-viewer.component.mjs +128 -0
  84. package/esm2020/lib/shared/components/case-viewer/case-viewer.module.mjs +191 -0
  85. package/esm2020/lib/shared/components/case-viewer/printer/case-printer.component.mjs +110 -0
  86. package/esm2020/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +60 -0
  87. package/esm2020/lib/shared/components/case-viewer/services/case.resolver.mjs +131 -0
  88. package/esm2020/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +64 -0
  89. package/esm2020/lib/shared/components/create-case-filters/create-case-filters-selection.model.mjs +8 -0
  90. package/esm2020/lib/shared/components/create-case-filters/create-case-filters.component.mjs +275 -0
  91. package/esm2020/lib/shared/components/create-case-filters/create-case-filters.module.mjs +44 -0
  92. package/esm2020/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +57 -0
  93. package/esm2020/lib/shared/components/dialogs/dialogs.module.mjs +51 -0
  94. package/esm2020/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +59 -0
  95. package/esm2020/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +57 -0
  96. package/esm2020/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +61 -0
  97. package/esm2020/lib/shared/components/error/callback-errors.component.mjs +148 -0
  98. package/esm2020/lib/shared/components/error/domain/error-context.mjs +3 -0
  99. package/esm2020/lib/shared/components/error/errors.module.mjs +33 -0
  100. package/esm2020/lib/shared/components/error-message/error-message.component.mjs +43 -0
  101. package/esm2020/lib/shared/components/error-message/error-message.module.mjs +41 -0
  102. package/esm2020/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +59 -0
  103. package/esm2020/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +53 -0
  104. package/esm2020/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +104 -0
  105. package/esm2020/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +68 -0
  106. package/esm2020/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +58 -0
  107. package/esm2020/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +53 -0
  108. package/esm2020/lib/shared/components/event-start/event-guard/event-start.guard.mjs +94 -0
  109. package/esm2020/lib/shared/components/event-start/event-start.component.mjs +49 -0
  110. package/esm2020/lib/shared/components/event-start/event-start.module.mjs +71 -0
  111. package/esm2020/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +29 -0
  112. package/esm2020/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +168 -0
  113. package/esm2020/lib/shared/components/event-trigger/event-trigger.component.mjs +111 -0
  114. package/esm2020/lib/shared/components/event-trigger/event-trigger.module.mjs +37 -0
  115. package/esm2020/lib/shared/components/loading-spinner/loading-spinner.component.mjs +27 -0
  116. package/esm2020/lib/shared/components/loading-spinner/loading-spinner.module.mjs +29 -0
  117. package/esm2020/lib/shared/components/pagination/pagination.component.mjs +262 -0
  118. package/esm2020/lib/shared/components/pagination/pagination.module.mjs +35 -0
  119. package/esm2020/lib/shared/components/palette/address/address-option.model.mjs +21 -0
  120. package/esm2020/lib/shared/components/palette/address/write-address-field.component.mjs +282 -0
  121. package/esm2020/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +31 -0
  122. package/esm2020/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +44 -0
  123. package/esm2020/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +83 -0
  124. package/esm2020/lib/shared/components/palette/base-field/field-read-label.component.mjs +86 -0
  125. package/esm2020/lib/shared/components/palette/base-field/field-read.component.mjs +85 -0
  126. package/esm2020/lib/shared/components/palette/base-field/field-write.component.mjs +74 -0
  127. package/esm2020/lib/shared/components/palette/base-field/payment-field.component.mjs +35 -0
  128. package/esm2020/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +171 -0
  129. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.mjs +48 -0
  130. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +48 -0
  131. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +340 -0
  132. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +153 -0
  133. package/esm2020/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +94 -0
  134. package/esm2020/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +190 -0
  135. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +288 -0
  136. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +207 -0
  137. package/esm2020/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +165 -0
  138. package/esm2020/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +219 -0
  139. package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +306 -0
  140. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +200 -0
  141. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +343 -0
  142. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +267 -0
  143. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +510 -0
  144. package/esm2020/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +41 -0
  145. package/esm2020/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +41 -0
  146. package/esm2020/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +109 -0
  147. package/esm2020/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +77 -0
  148. package/esm2020/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +246 -0
  149. package/esm2020/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +686 -0
  150. package/esm2020/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +32 -0
  151. package/esm2020/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +122 -0
  152. package/esm2020/lib/shared/components/palette/collection/collection-create-checker.service.mjs +42 -0
  153. package/esm2020/lib/shared/components/palette/collection/read-collection-field.component.mjs +81 -0
  154. package/esm2020/lib/shared/components/palette/collection/write-collection-field.component.mjs +443 -0
  155. package/esm2020/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +379 -0
  156. package/esm2020/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +53 -0
  157. package/esm2020/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +78 -0
  158. package/esm2020/lib/shared/components/palette/complex/read-complex-field.component.mjs +73 -0
  159. package/esm2020/lib/shared/components/palette/complex/write-complex-field.component.mjs +171 -0
  160. package/esm2020/lib/shared/components/palette/date/read-date-field.component.mjs +28 -0
  161. package/esm2020/lib/shared/components/palette/date/write-date-container-field.component.mjs +33 -0
  162. package/esm2020/lib/shared/components/palette/date/write-date-field.component.mjs +76 -0
  163. package/esm2020/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +309 -0
  164. package/esm2020/lib/shared/components/palette/document/document-url.pipe.mjs +24 -0
  165. package/esm2020/lib/shared/components/palette/document/file-upload-progress.guard.mjs +29 -0
  166. package/esm2020/lib/shared/components/palette/document/file-upload-state.service.mjs +16 -0
  167. package/esm2020/lib/shared/components/palette/document/read-document-field.component.mjs +81 -0
  168. package/esm2020/lib/shared/components/palette/document/write-document-field.component.mjs +383 -0
  169. package/esm2020/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +18 -0
  170. package/esm2020/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +36 -0
  171. package/esm2020/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +124 -0
  172. package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +43 -0
  173. package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +145 -0
  174. package/esm2020/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +25 -0
  175. package/esm2020/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +42 -0
  176. package/esm2020/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +124 -0
  177. package/esm2020/lib/shared/components/palette/email/read-email-field.component.mjs +35 -0
  178. package/esm2020/lib/shared/components/palette/email/write-email-field.component.mjs +73 -0
  179. package/esm2020/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +23 -0
  180. package/esm2020/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +26 -0
  181. package/esm2020/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +106 -0
  182. package/esm2020/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +18 -0
  183. package/esm2020/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +26 -0
  184. package/esm2020/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +95 -0
  185. package/esm2020/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +16 -0
  186. package/esm2020/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +97 -0
  187. package/esm2020/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +225 -0
  188. package/esm2020/lib/shared/components/palette/history/event-log/event-log.component.mjs +72 -0
  189. package/esm2020/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +45 -0
  190. package/esm2020/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +242 -0
  191. package/esm2020/lib/shared/components/palette/label/label-field.component.mjs +50 -0
  192. package/esm2020/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +108 -0
  193. package/esm2020/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +189 -0
  194. package/esm2020/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +530 -0
  195. package/esm2020/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +204 -0
  196. package/esm2020/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +280 -0
  197. package/esm2020/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +66 -0
  198. package/esm2020/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +201 -0
  199. package/esm2020/lib/shared/components/palette/linked-cases/domain/linked-cases.model.mjs +22 -0
  200. package/esm2020/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +163 -0
  201. package/esm2020/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +132 -0
  202. package/esm2020/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +27 -0
  203. package/esm2020/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +229 -0
  204. package/esm2020/lib/shared/components/palette/markdown/markdown-component.module.mjs +40 -0
  205. package/esm2020/lib/shared/components/palette/markdown/markdown.component.mjs +43 -0
  206. package/esm2020/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +123 -0
  207. package/esm2020/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +47 -0
  208. package/esm2020/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +78 -0
  209. package/esm2020/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +45 -0
  210. package/esm2020/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +126 -0
  211. package/esm2020/lib/shared/components/palette/number/read-number-field.component.mjs +24 -0
  212. package/esm2020/lib/shared/components/palette/number/write-number-field.component.mjs +73 -0
  213. package/esm2020/lib/shared/components/palette/order-summary/fee-value.model.mjs +3 -0
  214. package/esm2020/lib/shared/components/palette/order-summary/fee.model.mjs +4 -0
  215. package/esm2020/lib/shared/components/palette/order-summary/order-summary.model.mjs +3 -0
  216. package/esm2020/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +73 -0
  217. package/esm2020/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +43 -0
  218. package/esm2020/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +44 -0
  219. package/esm2020/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +83 -0
  220. package/esm2020/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +87 -0
  221. package/esm2020/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +56 -0
  222. package/esm2020/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +33 -0
  223. package/esm2020/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +384 -0
  224. package/esm2020/lib/shared/components/palette/palette.module.mjs +738 -0
  225. package/esm2020/lib/shared/components/palette/palette.service.mjs +155 -0
  226. package/esm2020/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +24 -0
  227. package/esm2020/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +22 -0
  228. package/esm2020/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +73 -0
  229. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +42 -0
  230. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +144 -0
  231. package/esm2020/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +64 -0
  232. package/esm2020/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +60 -0
  233. package/esm2020/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +281 -0
  234. package/esm2020/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +327 -0
  235. package/esm2020/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +22 -0
  236. package/esm2020/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +164 -0
  237. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +74 -0
  238. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +107 -0
  239. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +201 -0
  240. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +101 -0
  241. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +21 -0
  242. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +38 -0
  243. package/esm2020/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +121 -0
  244. package/esm2020/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +22 -0
  245. package/esm2020/lib/shared/components/palette/text/read-text-field.component.mjs +24 -0
  246. package/esm2020/lib/shared/components/palette/text/write-text-field.component.mjs +77 -0
  247. package/esm2020/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +24 -0
  248. package/esm2020/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +87 -0
  249. package/esm2020/lib/shared/components/palette/unsupported-field.component.mjs +17 -0
  250. package/esm2020/lib/shared/components/palette/utils/dash.pipe.mjs +16 -0
  251. package/esm2020/lib/shared/components/palette/utils/date.pipe.mjs +132 -0
  252. package/esm2020/lib/shared/components/palette/utils/field-label.pipe.mjs +29 -0
  253. package/esm2020/lib/shared/components/palette/utils/first-error.pipe.mjs +59 -0
  254. package/esm2020/lib/shared/components/palette/utils/is-compound.pipe.mjs +43 -0
  255. package/esm2020/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +21 -0
  256. package/esm2020/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +31 -0
  257. package/esm2020/lib/shared/components/palette/utils/is-read-only.pipe.mjs +21 -0
  258. package/esm2020/lib/shared/components/palette/utils/utils.module.mjs +71 -0
  259. package/esm2020/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +34 -0
  260. package/esm2020/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +34 -0
  261. package/esm2020/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +100 -0
  262. package/esm2020/lib/shared/components/palette/yes-no/yes-no.service.mjs +50 -0
  263. package/esm2020/lib/shared/components/search-filters/domain/search-input.model.mjs +10 -0
  264. package/esm2020/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +58 -0
  265. package/esm2020/lib/shared/components/search-filters/search-filters.component.mjs +326 -0
  266. package/esm2020/lib/shared/components/search-filters/search-filters.module.mjs +71 -0
  267. package/esm2020/lib/shared/components/search-result/search-result.component.mjs +815 -0
  268. package/esm2020/lib/shared/components/search-result/search-result.module.mjs +82 -0
  269. package/esm2020/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +479 -0
  270. package/esm2020/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +67 -0
  271. package/esm2020/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +164 -0
  272. package/esm2020/lib/shared/directives/conditional-show/conditional-show.module.mjs +33 -0
  273. package/esm2020/lib/shared/directives/conditional-show/domain/conditional-show.model.mjs +200 -0
  274. package/esm2020/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +19 -0
  275. package/esm2020/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +47 -0
  276. package/esm2020/lib/shared/directives/focus-element/focus-element.directive.mjs +36 -0
  277. package/esm2020/lib/shared/directives/focus-element/focus-element.module.mjs +21 -0
  278. package/esm2020/lib/shared/directives/substitutor/label-substitutor.directive.mjs +82 -0
  279. package/esm2020/lib/shared/directives/substitutor/label-substitutor.module.mjs +30 -0
  280. package/esm2020/lib/shared/directives/substitutor/services/placeholder.service.mjs +200 -0
  281. package/esm2020/lib/shared/domain/activity/activity.model.mjs +10 -0
  282. package/esm2020/lib/shared/domain/addresses/address.model.mjs +13 -0
  283. package/esm2020/lib/shared/domain/alert/alert.model.mjs +3 -0
  284. package/esm2020/lib/shared/domain/case-details.model.mjs +4 -0
  285. package/esm2020/lib/shared/domain/case-event-data.model.mjs +4 -0
  286. package/esm2020/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +3 -0
  287. package/esm2020/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +4 -0
  288. package/esm2020/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +7 -0
  289. package/esm2020/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +117 -0
  290. package/esm2020/lib/shared/domain/case-flag/flag-type.model.mjs +28 -0
  291. package/esm2020/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +10 -0
  292. package/esm2020/lib/shared/domain/case-view/case-event-trigger.model.mjs +23 -0
  293. package/esm2020/lib/shared/domain/case-view/case-print-document.model.mjs +3 -0
  294. package/esm2020/lib/shared/domain/case-view/case-tab.model.mjs +12 -0
  295. package/esm2020/lib/shared/domain/case-view/case-view-event.model.mjs +4 -0
  296. package/esm2020/lib/shared/domain/case-view/case-view-trigger.model.mjs +3 -0
  297. package/esm2020/lib/shared/domain/case-view/case-view.model.mjs +17 -0
  298. package/esm2020/lib/shared/domain/definition/access-control-list.model.mjs +3 -0
  299. package/esm2020/lib/shared/domain/definition/banner.model.mjs +3 -0
  300. package/esm2020/lib/shared/domain/definition/case-event.model.mjs +3 -0
  301. package/esm2020/lib/shared/domain/definition/case-field.model.mjs +198 -0
  302. package/esm2020/lib/shared/domain/definition/case-state.model.mjs +3 -0
  303. package/esm2020/lib/shared/domain/definition/case-type-lite.model.mjs +5 -0
  304. package/esm2020/lib/shared/domain/definition/case-type.model.mjs +12 -0
  305. package/esm2020/lib/shared/domain/definition/event-case-field.model.mjs +4 -0
  306. package/esm2020/lib/shared/domain/definition/field-type.model.mjs +22 -0
  307. package/esm2020/lib/shared/domain/definition/fixed-list-item.model.mjs +3 -0
  308. package/esm2020/lib/shared/domain/definition/jurisdiction.model.mjs +3 -0
  309. package/esm2020/lib/shared/domain/document/document-data.model.mjs +14 -0
  310. package/esm2020/lib/shared/domain/draft.model.mjs +11 -0
  311. package/esm2020/lib/shared/domain/http/http-error.model.mjs +34 -0
  312. package/esm2020/lib/shared/domain/organisation/organisation-converter.mjs +42 -0
  313. package/esm2020/lib/shared/domain/pagination-metadata.model.mjs +3 -0
  314. package/esm2020/lib/shared/domain/profile/profile.model.mjs +29 -0
  315. package/esm2020/lib/shared/domain/search/field.model.mjs +11 -0
  316. package/esm2020/lib/shared/domain/search/search-result-view-column.model.mjs +3 -0
  317. package/esm2020/lib/shared/domain/search/search-result-view-item.model.mjs +12 -0
  318. package/esm2020/lib/shared/domain/search/search-result-view.model.mjs +23 -0
  319. package/esm2020/lib/shared/domain/search/sorting/sort-parameters.mjs +7 -0
  320. package/esm2020/lib/shared/domain/workbasket/workbasket-input.model.mjs +5 -0
  321. package/esm2020/lib/shared/fixture/case-field-builder.mjs +69 -0
  322. package/esm2020/lib/shared/pipes/case-reference/case-reference.pipe.mjs +33 -0
  323. package/esm2020/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +29 -0
  324. package/esm2020/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +32 -0
  325. package/esm2020/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +29 -0
  326. package/esm2020/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +39 -0
  327. package/esm2020/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +173 -0
  328. package/esm2020/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +31 -0
  329. package/esm2020/lib/shared/pipes/complex/fields-filter.pipe.mjs +105 -0
  330. package/esm2020/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +16 -0
  331. package/esm2020/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +27 -0
  332. package/esm2020/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +27 -0
  333. package/esm2020/lib/shared/pipes/pipes.module.mjs +64 -0
  334. package/esm2020/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +24 -0
  335. package/esm2020/lib/shared/services/activity/activity.polling.service.mjs +114 -0
  336. package/esm2020/lib/shared/services/activity/activity.service.mjs +82 -0
  337. package/esm2020/lib/shared/services/addresses/addresses.service.mjs +63 -0
  338. package/esm2020/lib/shared/services/alert/alert.service.mjs +142 -0
  339. package/esm2020/lib/shared/services/auth/auth.service.mjs +33 -0
  340. package/esm2020/lib/shared/services/banners/banners.service.mjs +33 -0
  341. package/esm2020/lib/shared/services/browser/browser.service.mjs +24 -0
  342. package/esm2020/lib/shared/services/case-fields/case-field.service.mjs +34 -0
  343. package/esm2020/lib/shared/services/case-fields/format-translator.service.mjs +242 -0
  344. package/esm2020/lib/shared/services/case-file-view/case-file-view.service.mjs +46 -0
  345. package/esm2020/lib/shared/services/case-flag/case-flag-refdata.service.mjs +102 -0
  346. package/esm2020/lib/shared/services/common-data-service/common-data-service.mjs +28 -0
  347. package/esm2020/lib/shared/services/definitions/definitions.module.mjs +19 -0
  348. package/esm2020/lib/shared/services/definitions/definitions.service.mjs +30 -0
  349. package/esm2020/lib/shared/services/document-management/document-management.service.mjs +112 -0
  350. package/esm2020/lib/shared/services/draft/draft.service.mjs +86 -0
  351. package/esm2020/lib/shared/services/error/error-notifier.service.mjs +18 -0
  352. package/esm2020/lib/shared/services/eventStatusService/event-status.service.mjs +21 -0
  353. package/esm2020/lib/shared/services/fields/fields.purger.mjs +303 -0
  354. package/esm2020/lib/shared/services/fields/fields.utils.mjs +615 -0
  355. package/esm2020/lib/shared/services/form/field-type-sanitiser.mjs +91 -0
  356. package/esm2020/lib/shared/services/form/form-error.service.mjs +46 -0
  357. package/esm2020/lib/shared/services/form/form-validators.service.mjs +56 -0
  358. package/esm2020/lib/shared/services/form/form-value.service.mjs +551 -0
  359. package/esm2020/lib/shared/services/http/http-error.service.mjs +65 -0
  360. package/esm2020/lib/shared/services/http/http.service.mjs +93 -0
  361. package/esm2020/lib/shared/services/jurisdiction/jurisdiction.service.mjs +34 -0
  362. package/esm2020/lib/shared/services/loading/loading.module.mjs +22 -0
  363. package/esm2020/lib/shared/services/loading/loading.service.mjs +37 -0
  364. package/esm2020/lib/shared/services/navigation/navigation-notifier.service.mjs +18 -0
  365. package/esm2020/lib/shared/services/order/order.service.mjs +39 -0
  366. package/esm2020/lib/shared/services/organisation/organisation.service.mjs +54 -0
  367. package/esm2020/lib/shared/services/profile/profile.notifier.mjs +19 -0
  368. package/esm2020/lib/shared/services/profile/profile.service.mjs +34 -0
  369. package/esm2020/lib/shared/services/request/request.options.builder.mjs +61 -0
  370. package/esm2020/lib/shared/services/router/router-helper.service.mjs +20 -0
  371. package/esm2020/lib/shared/services/search/search.service.mjs +89 -0
  372. package/esm2020/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +71 -0
  373. package/esm2020/lib/shared/services/session/session-storage.service.mjs +34 -0
  374. package/esm2020/lib/shared/services/utils/retry/retry.service.mjs +86 -0
  375. package/esm2020/lib/shared/services/window/window.service.mjs +40 -0
  376. package/esm2020/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +53 -0
  377. package/esm2020/lib/shared/test/test-route-snapshot-builder.mjs +40 -0
  378. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +38545 -0
  379. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -0
  380. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +35581 -0
  381. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -0
  382. package/lib/shared/components/case-editor/case-editor.module.d.ts +25 -0
  383. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  384. package/lib/shared/components/case-header/case-header.module.d.ts +8 -0
  385. package/lib/shared/components/case-header/case-header.module.d.ts.map +1 -1
  386. package/lib/shared/components/case-history/case-history.module.d.ts +12 -0
  387. package/lib/shared/components/case-history/case-history.module.d.ts.map +1 -1
  388. package/lib/shared/components/case-list/case-list.module.d.ts +11 -0
  389. package/lib/shared/components/case-list/case-list.module.d.ts.map +1 -1
  390. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts +11 -0
  391. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts.map +1 -1
  392. package/lib/shared/components/case-timeline/case-timeline.module.d.ts +11 -0
  393. package/lib/shared/components/case-timeline/case-timeline.module.d.ts.map +1 -1
  394. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +36 -0
  395. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  396. package/lib/shared/components/pagination/pagination.module.d.ts +8 -0
  397. package/lib/shared/components/pagination/pagination.module.d.ts.map +1 -1
  398. package/lib/shared/components/palette/address/write-address-field.component.d.ts +2 -1
  399. package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -1
  400. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +1 -0
  401. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  402. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +2 -1
  403. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  404. package/lib/shared/components/palette/complex/write-complex-field.component.d.ts +2 -1
  405. package/lib/shared/components/palette/complex/write-complex-field.component.d.ts.map +1 -1
  406. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +10 -0
  407. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +1 -1
  408. package/lib/shared/components/palette/palette.module.d.ts +148 -0
  409. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  410. package/lib/shared/components/search-filters/search-filters.module.d.ts +11 -0
  411. package/lib/shared/components/search-filters/search-filters.module.d.ts.map +1 -1
  412. package/lib/shared/components/search-result/search-result.module.d.ts +15 -0
  413. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -1
  414. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts +10 -0
  415. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts.map +1 -1
  416. package/package.json +11 -5
  417. package/esm2022/lib/app.config.mjs +0 -93
  418. package/esm2022/lib/components/banners/alert/alert-icon-class.pipe.mjs +0 -25
  419. package/esm2022/lib/components/banners/alert/alert.component.mjs +0 -94
  420. package/esm2022/lib/components/banners/alert/alert.module.mjs +0 -32
  421. package/esm2022/lib/components/banners/banners.module.mjs +0 -32
  422. package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +0 -119
  423. package/esm2022/lib/components/banners/notification-banner/notification-banner.module.mjs +0 -19
  424. package/esm2022/lib/components/body/body.component.mjs +0 -20
  425. package/esm2022/lib/components/body/body.module.mjs +0 -20
  426. package/esm2022/lib/components/footer/footer.component.mjs +0 -109
  427. package/esm2022/lib/components/footer/footers.module.mjs +0 -25
  428. package/esm2022/lib/components/form/date-input/date-input.component.mjs +0 -342
  429. package/esm2022/lib/components/form/form.module.mjs +0 -29
  430. package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +0 -98
  431. package/esm2022/lib/components/header/headers.module.mjs +0 -25
  432. package/esm2022/lib/components/header/navigation/navigation-item.component.mjs +0 -44
  433. package/esm2022/lib/components/header/navigation/navigation.component.mjs +0 -25
  434. package/esm2022/lib/components/header/phase/phase.component.mjs +0 -48
  435. package/esm2022/lib/components/tabs/tab.component.mjs +0 -31
  436. package/esm2022/lib/components/tabs/tabs.component.mjs +0 -82
  437. package/esm2022/lib/components/tabs/tabs.module.mjs +0 -38
  438. package/esm2022/lib/shared/commons/address-validation-constants.mjs +0 -13
  439. package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +0 -19
  440. package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.service.mjs +0 -46
  441. package/esm2022/lib/shared/commons/constants.mjs +0 -13
  442. package/esm2022/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +0 -42
  443. package/esm2022/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +0 -35
  444. package/esm2022/lib/shared/components/activity/activity.component.mjs +0 -158
  445. package/esm2022/lib/shared/components/activity/activity.module.mjs +0 -55
  446. package/esm2022/lib/shared/components/case-editor/case-access-utils/index.mjs +0 -105
  447. package/esm2022/lib/shared/components/case-editor/case-create/case-create.component.mjs +0 -95
  448. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +0 -463
  449. package/esm2022/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +0 -131
  450. package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +0 -140
  451. package/esm2022/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +0 -70
  452. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +0 -779
  453. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +0 -560
  454. package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +0 -118
  455. package/esm2022/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +0 -96
  456. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +0 -82
  457. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +0 -166
  458. package/esm2022/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +0 -84
  459. package/esm2022/lib/shared/components/case-editor/domain/confirmation.model.mjs +0 -25
  460. package/esm2022/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.mjs +0 -9
  461. package/esm2022/lib/shared/components/case-editor/domain/wizard-page-field.model.mjs +0 -7
  462. package/esm2022/lib/shared/components/case-editor/domain/wizard-page.model.mjs +0 -33
  463. package/esm2022/lib/shared/components/case-editor/domain/wizard.model.mjs +0 -55
  464. package/esm2022/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +0 -98
  465. package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +0 -19
  466. package/esm2022/lib/shared/components/case-editor/services/case-worker.service.mjs +0 -35
  467. package/esm2022/lib/shared/components/case-editor/services/case.notifier.mjs +0 -53
  468. package/esm2022/lib/shared/components/case-editor/services/cases.service.mjs +0 -302
  469. package/esm2022/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +0 -42
  470. package/esm2022/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +0 -153
  471. package/esm2022/lib/shared/components/case-editor/services/event-trigger.service.mjs +0 -18
  472. package/esm2022/lib/shared/components/case-editor/services/judicial-worker.service.mjs +0 -35
  473. package/esm2022/lib/shared/components/case-editor/services/page-validation.service.mjs +0 -54
  474. package/esm2022/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +0 -40
  475. package/esm2022/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +0 -117
  476. package/esm2022/lib/shared/components/case-editor/services/work-allocation.service.mjs +0 -215
  477. package/esm2022/lib/shared/components/case-header/case-header.component.mjs +0 -64
  478. package/esm2022/lib/shared/components/case-header/case-header.module.mjs +0 -25
  479. package/esm2022/lib/shared/components/case-history/case-history.component.mjs +0 -252
  480. package/esm2022/lib/shared/components/case-history/case-history.module.mjs +0 -36
  481. package/esm2022/lib/shared/components/case-history/domain/case-history.model.mjs +0 -37
  482. package/esm2022/lib/shared/components/case-history/services/case-history.service.mjs +0 -43
  483. package/esm2022/lib/shared/components/case-list/case-list.component.mjs +0 -373
  484. package/esm2022/lib/shared/components/case-list/case-list.module.mjs +0 -31
  485. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.component.mjs +0 -56
  486. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.module.mjs +0 -39
  487. package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +0 -115
  488. package/esm2022/lib/shared/components/case-timeline/case-timeline.module.mjs +0 -32
  489. package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +0 -251
  490. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +0 -310
  491. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +0 -74
  492. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +0 -155
  493. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +0 -710
  494. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +0 -60
  495. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +0 -255
  496. package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +0 -210
  497. package/esm2022/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +0 -49
  498. package/esm2022/lib/shared/components/case-viewer/case-view/case-view.component.mjs +0 -106
  499. package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +0 -136
  500. package/esm2022/lib/shared/components/case-viewer/case-viewer.module.mjs +0 -98
  501. package/esm2022/lib/shared/components/case-viewer/printer/case-printer.component.mjs +0 -116
  502. package/esm2022/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +0 -61
  503. package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +0 -141
  504. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +0 -70
  505. package/esm2022/lib/shared/components/create-case-filters/create-case-filters-selection.model.mjs +0 -11
  506. package/esm2022/lib/shared/components/create-case-filters/create-case-filters.component.mjs +0 -288
  507. package/esm2022/lib/shared/components/create-case-filters/create-case-filters.module.mjs +0 -44
  508. package/esm2022/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +0 -59
  509. package/esm2022/lib/shared/components/dialogs/dialogs.module.mjs +0 -51
  510. package/esm2022/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +0 -61
  511. package/esm2022/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +0 -59
  512. package/esm2022/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +0 -63
  513. package/esm2022/lib/shared/components/error/callback-errors.component.mjs +0 -147
  514. package/esm2022/lib/shared/components/error/domain/error-context.mjs +0 -5
  515. package/esm2022/lib/shared/components/error/errors.module.mjs +0 -33
  516. package/esm2022/lib/shared/components/error-message/error-message.component.mjs +0 -44
  517. package/esm2022/lib/shared/components/error-message/error-message.module.mjs +0 -41
  518. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +0 -61
  519. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +0 -55
  520. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +0 -111
  521. package/esm2022/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +0 -69
  522. package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +0 -60
  523. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +0 -55
  524. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +0 -97
  525. package/esm2022/lib/shared/components/event-start/event-start.component.mjs +0 -55
  526. package/esm2022/lib/shared/components/event-start/event-start.module.mjs +0 -71
  527. package/esm2022/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +0 -31
  528. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +0 -177
  529. package/esm2022/lib/shared/components/event-trigger/event-trigger.component.mjs +0 -117
  530. package/esm2022/lib/shared/components/event-trigger/event-trigger.module.mjs +0 -37
  531. package/esm2022/lib/shared/components/loading-spinner/loading-spinner.component.mjs +0 -25
  532. package/esm2022/lib/shared/components/loading-spinner/loading-spinner.module.mjs +0 -29
  533. package/esm2022/lib/shared/components/pagination/pagination.component.mjs +0 -261
  534. package/esm2022/lib/shared/components/pagination/pagination.module.mjs +0 -26
  535. package/esm2022/lib/shared/components/palette/address/address-option.model.mjs +0 -23
  536. package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +0 -287
  537. package/esm2022/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +0 -30
  538. package/esm2022/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +0 -44
  539. package/esm2022/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +0 -84
  540. package/esm2022/lib/shared/components/palette/base-field/field-read-label.component.mjs +0 -85
  541. package/esm2022/lib/shared/components/palette/base-field/field-read.component.mjs +0 -89
  542. package/esm2022/lib/shared/components/palette/base-field/field-write.component.mjs +0 -77
  543. package/esm2022/lib/shared/components/palette/base-field/payment-field.component.mjs +0 -37
  544. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +0 -182
  545. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.mjs +0 -48
  546. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +0 -49
  547. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +0 -356
  548. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +0 -155
  549. package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +0 -93
  550. package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +0 -191
  551. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +0 -302
  552. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +0 -208
  553. package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +0 -169
  554. package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +0 -224
  555. package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +0 -311
  556. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +0 -202
  557. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +0 -355
  558. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +0 -268
  559. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +0 -516
  560. package/esm2022/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +0 -43
  561. package/esm2022/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +0 -43
  562. package/esm2022/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +0 -111
  563. package/esm2022/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +0 -79
  564. package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +0 -255
  565. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +0 -704
  566. package/esm2022/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +0 -32
  567. package/esm2022/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +0 -125
  568. package/esm2022/lib/shared/components/palette/collection/collection-create-checker.service.mjs +0 -42
  569. package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +0 -78
  570. package/esm2022/lib/shared/components/palette/collection/write-collection-field.component.mjs +0 -449
  571. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +0 -380
  572. package/esm2022/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +0 -50
  573. package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +0 -75
  574. package/esm2022/lib/shared/components/palette/complex/read-complex-field.component.mjs +0 -70
  575. package/esm2022/lib/shared/components/palette/complex/write-complex-field.component.mjs +0 -173
  576. package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +0 -25
  577. package/esm2022/lib/shared/components/palette/date/write-date-container-field.component.mjs +0 -33
  578. package/esm2022/lib/shared/components/palette/date/write-date-field.component.mjs +0 -77
  579. package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +0 -314
  580. package/esm2022/lib/shared/components/palette/document/document-url.pipe.mjs +0 -25
  581. package/esm2022/lib/shared/components/palette/document/file-upload-progress.guard.mjs +0 -31
  582. package/esm2022/lib/shared/components/palette/document/file-upload-state.service.mjs +0 -17
  583. package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +0 -87
  584. package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +0 -404
  585. package/esm2022/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +0 -18
  586. package/esm2022/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +0 -36
  587. package/esm2022/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +0 -125
  588. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +0 -43
  589. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +0 -147
  590. package/esm2022/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +0 -25
  591. package/esm2022/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +0 -42
  592. package/esm2022/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +0 -125
  593. package/esm2022/lib/shared/components/palette/email/read-email-field.component.mjs +0 -35
  594. package/esm2022/lib/shared/components/palette/email/write-email-field.component.mjs +0 -74
  595. package/esm2022/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +0 -23
  596. package/esm2022/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +0 -26
  597. package/esm2022/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +0 -107
  598. package/esm2022/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +0 -18
  599. package/esm2022/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +0 -26
  600. package/esm2022/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +0 -96
  601. package/esm2022/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +0 -16
  602. package/esm2022/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +0 -98
  603. package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +0 -225
  604. package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +0 -72
  605. package/esm2022/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +0 -48
  606. package/esm2022/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +0 -253
  607. package/esm2022/lib/shared/components/palette/label/label-field.component.mjs +0 -50
  608. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +0 -112
  609. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +0 -194
  610. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +0 -543
  611. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +0 -214
  612. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +0 -287
  613. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +0 -69
  614. package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +0 -208
  615. package/esm2022/lib/shared/components/palette/linked-cases/domain/linked-cases.model.mjs +0 -67
  616. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +0 -169
  617. package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +0 -138
  618. package/esm2022/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +0 -27
  619. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +0 -237
  620. package/esm2022/lib/shared/components/palette/markdown/markdown-component.module.mjs +0 -29
  621. package/esm2022/lib/shared/components/palette/markdown/markdown.component.mjs +0 -44
  622. package/esm2022/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +0 -127
  623. package/esm2022/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +0 -49
  624. package/esm2022/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +0 -79
  625. package/esm2022/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +0 -45
  626. package/esm2022/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +0 -127
  627. package/esm2022/lib/shared/components/palette/number/read-number-field.component.mjs +0 -24
  628. package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +0 -74
  629. package/esm2022/lib/shared/components/palette/order-summary/fee-value.model.mjs +0 -4
  630. package/esm2022/lib/shared/components/palette/order-summary/fee.model.mjs +0 -8
  631. package/esm2022/lib/shared/components/palette/order-summary/order-summary.model.mjs +0 -6
  632. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +0 -73
  633. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +0 -44
  634. package/esm2022/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +0 -44
  635. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +0 -87
  636. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +0 -91
  637. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +0 -53
  638. package/esm2022/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +0 -34
  639. package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +0 -396
  640. package/esm2022/lib/shared/components/palette/palette.module.mjs +0 -291
  641. package/esm2022/lib/shared/components/palette/palette.service.mjs +0 -153
  642. package/esm2022/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +0 -24
  643. package/esm2022/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +0 -22
  644. package/esm2022/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +0 -74
  645. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +0 -43
  646. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +0 -149
  647. package/esm2022/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +0 -66
  648. package/esm2022/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +0 -61
  649. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +0 -292
  650. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +0 -330
  651. package/esm2022/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +0 -23
  652. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +0 -164
  653. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +0 -77
  654. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +0 -111
  655. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +0 -201
  656. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +0 -106
  657. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +0 -24
  658. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +0 -45
  659. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +0 -125
  660. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +0 -22
  661. package/esm2022/lib/shared/components/palette/text/read-text-field.component.mjs +0 -24
  662. package/esm2022/lib/shared/components/palette/text/write-text-field.component.mjs +0 -78
  663. package/esm2022/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +0 -24
  664. package/esm2022/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +0 -89
  665. package/esm2022/lib/shared/components/palette/unsupported-field.component.mjs +0 -17
  666. package/esm2022/lib/shared/components/palette/utils/dash.pipe.mjs +0 -16
  667. package/esm2022/lib/shared/components/palette/utils/date.pipe.mjs +0 -133
  668. package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +0 -30
  669. package/esm2022/lib/shared/components/palette/utils/first-error.pipe.mjs +0 -62
  670. package/esm2022/lib/shared/components/palette/utils/is-compound.pipe.mjs +0 -43
  671. package/esm2022/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +0 -22
  672. package/esm2022/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +0 -32
  673. package/esm2022/lib/shared/components/palette/utils/is-read-only.pipe.mjs +0 -22
  674. package/esm2022/lib/shared/components/palette/utils/utils.module.mjs +0 -71
  675. package/esm2022/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +0 -34
  676. package/esm2022/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +0 -36
  677. package/esm2022/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +0 -102
  678. package/esm2022/lib/shared/components/palette/yes-no/yes-no.service.mjs +0 -50
  679. package/esm2022/lib/shared/components/search-filters/domain/search-input.model.mjs +0 -15
  680. package/esm2022/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +0 -62
  681. package/esm2022/lib/shared/components/search-filters/search-filters.component.mjs +0 -337
  682. package/esm2022/lib/shared/components/search-filters/search-filters.module.mjs +0 -44
  683. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +0 -834
  684. package/esm2022/lib/shared/components/search-result/search-result.module.mjs +0 -46
  685. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +0 -494
  686. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +0 -42
  687. package/esm2022/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +0 -169
  688. package/esm2022/lib/shared/directives/conditional-show/conditional-show.module.mjs +0 -33
  689. package/esm2022/lib/shared/directives/conditional-show/domain/conditional-show.model.mjs +0 -201
  690. package/esm2022/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +0 -17
  691. package/esm2022/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +0 -48
  692. package/esm2022/lib/shared/directives/focus-element/focus-element.directive.mjs +0 -38
  693. package/esm2022/lib/shared/directives/focus-element/focus-element.module.mjs +0 -21
  694. package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +0 -88
  695. package/esm2022/lib/shared/directives/substitutor/label-substitutor.module.mjs +0 -30
  696. package/esm2022/lib/shared/directives/substitutor/services/placeholder.service.mjs +0 -209
  697. package/esm2022/lib/shared/domain/activity/activity.model.mjs +0 -17
  698. package/esm2022/lib/shared/domain/addresses/address.model.mjs +0 -11
  699. package/esm2022/lib/shared/domain/alert/alert.model.mjs +0 -5
  700. package/esm2022/lib/shared/domain/case-details.model.mjs +0 -13
  701. package/esm2022/lib/shared/domain/case-event-data.model.mjs +0 -11
  702. package/esm2022/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +0 -8
  703. package/esm2022/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +0 -10
  704. package/esm2022/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +0 -10
  705. package/esm2022/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +0 -124
  706. package/esm2022/lib/shared/domain/case-flag/flag-type.model.mjs +0 -37
  707. package/esm2022/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +0 -18
  708. package/esm2022/lib/shared/domain/case-view/case-event-trigger.model.mjs +0 -34
  709. package/esm2022/lib/shared/domain/case-view/case-print-document.model.mjs +0 -6
  710. package/esm2022/lib/shared/domain/case-view/case-tab.model.mjs +0 -17
  711. package/esm2022/lib/shared/domain/case-view/case-view-event.model.mjs +0 -16
  712. package/esm2022/lib/shared/domain/case-view/case-view-trigger.model.mjs +0 -7
  713. package/esm2022/lib/shared/domain/case-view/case-view.model.mjs +0 -27
  714. package/esm2022/lib/shared/domain/definition/access-control-list.model.mjs +0 -8
  715. package/esm2022/lib/shared/domain/definition/banner.model.mjs +0 -8
  716. package/esm2022/lib/shared/domain/definition/case-event.model.mjs +0 -11
  717. package/esm2022/lib/shared/domain/definition/case-field.model.mjs +0 -216
  718. package/esm2022/lib/shared/domain/definition/case-state.model.mjs +0 -7
  719. package/esm2022/lib/shared/domain/definition/case-type-lite.model.mjs +0 -10
  720. package/esm2022/lib/shared/domain/definition/case-type.model.mjs +0 -20
  721. package/esm2022/lib/shared/domain/definition/event-case-field.model.mjs +0 -6
  722. package/esm2022/lib/shared/domain/definition/field-type.model.mjs +0 -30
  723. package/esm2022/lib/shared/domain/definition/fixed-list-item.model.mjs +0 -6
  724. package/esm2022/lib/shared/domain/definition/jurisdiction.model.mjs +0 -8
  725. package/esm2022/lib/shared/domain/document/document-data.model.mjs +0 -27
  726. package/esm2022/lib/shared/domain/draft.model.mjs +0 -16
  727. package/esm2022/lib/shared/domain/http/http-error.model.mjs +0 -43
  728. package/esm2022/lib/shared/domain/organisation/organisation-converter.mjs +0 -42
  729. package/esm2022/lib/shared/domain/pagination-metadata.model.mjs +0 -5
  730. package/esm2022/lib/shared/domain/profile/profile.model.mjs +0 -33
  731. package/esm2022/lib/shared/domain/search/field.model.mjs +0 -17
  732. package/esm2022/lib/shared/domain/search/search-result-view-column.model.mjs +0 -9
  733. package/esm2022/lib/shared/domain/search/search-result-view-item.model.mjs +0 -18
  734. package/esm2022/lib/shared/domain/search/search-result-view.model.mjs +0 -26
  735. package/esm2022/lib/shared/domain/search/sorting/sort-parameters.mjs +0 -9
  736. package/esm2022/lib/shared/domain/workbasket/workbasket-input.model.mjs +0 -11
  737. package/esm2022/lib/shared/fixture/case-field-builder.mjs +0 -67
  738. package/esm2022/lib/shared/pipes/case-reference/case-reference.pipe.mjs +0 -33
  739. package/esm2022/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +0 -31
  740. package/esm2022/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +0 -32
  741. package/esm2022/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +0 -27
  742. package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +0 -39
  743. package/esm2022/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +0 -173
  744. package/esm2022/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +0 -31
  745. package/esm2022/lib/shared/pipes/complex/fields-filter.pipe.mjs +0 -105
  746. package/esm2022/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +0 -16
  747. package/esm2022/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +0 -28
  748. package/esm2022/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +0 -28
  749. package/esm2022/lib/shared/pipes/pipes.module.mjs +0 -64
  750. package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +0 -24
  751. package/esm2022/lib/shared/services/activity/activity.polling.service.mjs +0 -122
  752. package/esm2022/lib/shared/services/activity/activity.service.mjs +0 -85
  753. package/esm2022/lib/shared/services/addresses/addresses.service.mjs +0 -65
  754. package/esm2022/lib/shared/services/alert/alert.service.mjs +0 -157
  755. package/esm2022/lib/shared/services/auth/auth.service.mjs +0 -35
  756. package/esm2022/lib/shared/services/banners/banners.service.mjs +0 -35
  757. package/esm2022/lib/shared/services/browser/browser.service.mjs +0 -24
  758. package/esm2022/lib/shared/services/case-fields/case-field.service.mjs +0 -34
  759. package/esm2022/lib/shared/services/case-fields/format-translator.service.mjs +0 -242
  760. package/esm2022/lib/shared/services/case-file-view/case-file-view.service.mjs +0 -48
  761. package/esm2022/lib/shared/services/case-flag/case-flag-refdata.service.mjs +0 -104
  762. package/esm2022/lib/shared/services/common-data-service/common-data-service.mjs +0 -29
  763. package/esm2022/lib/shared/services/definitions/definitions.module.mjs +0 -19
  764. package/esm2022/lib/shared/services/definitions/definitions.service.mjs +0 -32
  765. package/esm2022/lib/shared/services/document-management/document-management.service.mjs +0 -114
  766. package/esm2022/lib/shared/services/draft/draft.service.mjs +0 -89
  767. package/esm2022/lib/shared/services/error/error-notifier.service.mjs +0 -16
  768. package/esm2022/lib/shared/services/eventStatusService/event-status.service.mjs +0 -21
  769. package/esm2022/lib/shared/services/fields/fields.purger.mjs +0 -304
  770. package/esm2022/lib/shared/services/fields/fields.utils.mjs +0 -615
  771. package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +0 -91
  772. package/esm2022/lib/shared/services/form/form-error.service.mjs +0 -46
  773. package/esm2022/lib/shared/services/form/form-validators.service.mjs +0 -56
  774. package/esm2022/lib/shared/services/form/form-value.service.mjs +0 -552
  775. package/esm2022/lib/shared/services/http/http-error.service.mjs +0 -67
  776. package/esm2022/lib/shared/services/http/http.service.mjs +0 -95
  777. package/esm2022/lib/shared/services/jurisdiction/jurisdiction.service.mjs +0 -36
  778. package/esm2022/lib/shared/services/loading/loading.module.mjs +0 -22
  779. package/esm2022/lib/shared/services/loading/loading.service.mjs +0 -35
  780. package/esm2022/lib/shared/services/navigation/navigation-notifier.service.mjs +0 -16
  781. package/esm2022/lib/shared/services/order/order.service.mjs +0 -37
  782. package/esm2022/lib/shared/services/organisation/organisation.service.mjs +0 -57
  783. package/esm2022/lib/shared/services/profile/profile.notifier.mjs +0 -17
  784. package/esm2022/lib/shared/services/profile/profile.service.mjs +0 -36
  785. package/esm2022/lib/shared/services/request/request.options.builder.mjs +0 -61
  786. package/esm2022/lib/shared/services/router/router-helper.service.mjs +0 -20
  787. package/esm2022/lib/shared/services/search/search.service.mjs +0 -96
  788. package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +0 -71
  789. package/esm2022/lib/shared/services/session/session-storage.service.mjs +0 -34
  790. package/esm2022/lib/shared/services/utils/retry/retry.service.mjs +0 -87
  791. package/esm2022/lib/shared/services/window/window.service.mjs +0 -40
  792. package/esm2022/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +0 -57
  793. package/esm2022/lib/shared/test/test-route-snapshot-builder.mjs +0 -38
  794. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +0 -36099
  795. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +0 -1
  796. /package/{esm2022 → esm2020}/hmcts-ccd-case-ui-toolkit.mjs +0 -0
  797. /package/{esm2022 → esm2020}/lib/components/banners/alert/index.mjs +0 -0
  798. /package/{esm2022 → esm2020}/lib/components/banners/index.mjs +0 -0
  799. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/domain/index.mjs +0 -0
  800. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/domain/notification-banner-config.model.mjs +0 -0
  801. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/enums/index.mjs +0 -0
  802. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/enums/notification-banner-style.enum.mjs +0 -0
  803. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/enums/notification-banner-type.enum.mjs +0 -0
  804. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/index.mjs +0 -0
  805. /package/{esm2022 → esm2020}/lib/components/body/index.mjs +0 -0
  806. /package/{esm2022 → esm2020}/lib/components/footer/index.mjs +0 -0
  807. /package/{esm2022 → esm2020}/lib/components/form/date-input/index.mjs +0 -0
  808. /package/{esm2022 → esm2020}/lib/components/form/index.mjs +0 -0
  809. /package/{esm2022 → esm2020}/lib/components/header/header-bar/index.mjs +0 -0
  810. /package/{esm2022 → esm2020}/lib/components/header/index.mjs +0 -0
  811. /package/{esm2022 → esm2020}/lib/components/header/navigation/index.mjs +0 -0
  812. /package/{esm2022 → esm2020}/lib/components/header/phase/index.mjs +0 -0
  813. /package/{esm2022 → esm2020}/lib/components/index.mjs +0 -0
  814. /package/{esm2022 → esm2020}/lib/components/tabs/index.mjs +0 -0
  815. /package/{esm2022 → esm2020}/lib/shared/commons/case-edit-data/case-edit-validation.model.mjs +0 -0
  816. /package/{esm2022 → esm2020}/lib/shared/commons/case-edit-data/index.mjs +0 -0
  817. /package/{esm2022 → esm2020}/lib/shared/components/activity/activity-banner/index.mjs +0 -0
  818. /package/{esm2022 → esm2020}/lib/shared/components/activity/activity-icon/index.mjs +0 -0
  819. /package/{esm2022 → esm2020}/lib/shared/components/activity/index.mjs +0 -0
  820. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-create/index.mjs +0 -0
  821. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit/index.mjs +0 -0
  822. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-confirm/index.mjs +0 -0
  823. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-form/index.mjs +0 -0
  824. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-page/index.mjs +0 -0
  825. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.mjs +0 -0
  826. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-submit/index.mjs +0 -0
  827. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-event-completion/index.mjs +0 -0
  828. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-progress/index.mjs +0 -0
  829. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-params.model.mjs +0 -0
  830. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-portal-types.model.mjs +0 -0
  831. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-return-states.enum.model.mjs +0 -0
  832. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-state-machine-context.model.mjs +0 -0
  833. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-states.enum.model.mjs +0 -0
  834. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/index.mjs +0 -0
  835. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/editor.routing.mjs +0 -0
  836. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/index.mjs +0 -0
  837. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/services/index.mjs +0 -0
  838. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/services/wizard-factory.service.mjs +0 -0
  839. /package/{esm2022 → esm2020}/lib/shared/components/case-header/index.mjs +0 -0
  840. /package/{esm2022 → esm2020}/lib/shared/components/case-history/index.mjs +0 -0
  841. /package/{esm2022 → esm2020}/lib/shared/components/case-list/index.mjs +0 -0
  842. /package/{esm2022 → esm2020}/lib/shared/components/case-list-filters/index.mjs +0 -0
  843. /package/{esm2022 → esm2020}/lib/shared/components/case-timeline/index.mjs +0 -0
  844. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-basic-access-view/index.mjs +0 -0
  845. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-request/index.mjs +0 -0
  846. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-request/models/case-challenged-access-request.enum.mjs +0 -0
  847. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-request/models/index.mjs +0 -0
  848. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-success/index.mjs +0 -0
  849. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-event-trigger/index.mjs +0 -0
  850. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-full-access-view/index.mjs +0 -0
  851. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-reject/index.mjs +0 -0
  852. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-request/index.mjs +0 -0
  853. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-request/models/case-review-specific-access-request.enum.mjs +0 -0
  854. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-request/models/index.mjs +0 -0
  855. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-request/index.mjs +0 -0
  856. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.mjs +0 -0
  857. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-request/models/index.mjs +0 -0
  858. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-success/index.mjs +0 -0
  859. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-view/index.mjs +0 -0
  860. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/index.mjs +0 -0
  861. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/printer/index.mjs +0 -0
  862. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/printer/pipes/index.mjs +0 -0
  863. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/services/index.mjs +0 -0
  864. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/viewer.routing.mjs +0 -0
  865. /package/{esm2022 → esm2020}/lib/shared/components/create-case-filters/index.mjs +0 -0
  866. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/delete-or-cancel-dialog/index.mjs +0 -0
  867. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/document-dialog/index.mjs +0 -0
  868. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/index.mjs +0 -0
  869. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/remove-dialog/index.mjs +0 -0
  870. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/save-or-discard-dialog/index.mjs +0 -0
  871. /package/{esm2022 → esm2020}/lib/shared/components/error/domain/index.mjs +0 -0
  872. /package/{esm2022 → esm2020}/lib/shared/components/error/index.mjs +0 -0
  873. /package/{esm2022 → esm2020}/lib/shared/components/error-message/index.mjs +0 -0
  874. /package/{esm2022 → esm2020}/lib/shared/components/event-start/index.mjs +0 -0
  875. /package/{esm2022 → esm2020}/lib/shared/components/event-start/models/event-start-state-machine-context.model.mjs +0 -0
  876. /package/{esm2022 → esm2020}/lib/shared/components/event-start/models/event-start-states-enum.model.mjs +0 -0
  877. /package/{esm2022 → esm2020}/lib/shared/components/event-start/models/index.mjs +0 -0
  878. /package/{esm2022 → esm2020}/lib/shared/components/event-start/services/index.mjs +0 -0
  879. /package/{esm2022 → esm2020}/lib/shared/components/event-trigger/index.mjs +0 -0
  880. /package/{esm2022 → esm2020}/lib/shared/components/helpers/index.mjs +0 -0
  881. /package/{esm2022 → esm2020}/lib/shared/components/helpers/init-dialog-helper.mjs +0 -0
  882. /package/{esm2022 → esm2020}/lib/shared/components/index.mjs +0 -0
  883. /package/{esm2022 → esm2020}/lib/shared/components/loading-spinner/index.mjs +0 -0
  884. /package/{esm2022 → esm2020}/lib/shared/components/pagination/index.mjs +0 -0
  885. /package/{esm2022 → esm2020}/lib/shared/components/palette/address/index.mjs +0 -0
  886. /package/{esm2022 → esm2020}/lib/shared/components/palette/base-field/index.mjs +0 -0
  887. /package/{esm2022 → esm2020}/lib/shared/components/palette/base-field/palette-context.enum.mjs +0 -0
  888. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/components/index.mjs +0 -0
  889. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu-item.model.mjs +0 -0
  890. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/components/shared/index.mjs +0 -0
  891. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/index.mjs +0 -0
  892. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.mjs +0 -0
  893. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/components/index.mjs +0 -0
  894. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.mjs +0 -0
  895. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/case-flag-state.model.mjs +0 -0
  896. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/case-flag.model.mjs +0 -0
  897. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/index.mjs +0 -0
  898. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/language.model.mjs +0 -0
  899. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.mjs +0 -0
  900. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.mjs +0 -0
  901. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.mjs +0 -0
  902. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.mjs +0 -0
  903. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.mjs +0 -0
  904. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.mjs +0 -0
  905. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.mjs +0 -0
  906. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.mjs +0 -0
  907. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.mjs +0 -0
  908. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.mjs +0 -0
  909. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/index.mjs +0 -0
  910. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.mjs +0 -0
  911. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.mjs +0 -0
  912. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.mjs +0 -0
  913. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.mjs +0 -0
  914. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.mjs +0 -0
  915. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.mjs +0 -0
  916. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.mjs +0 -0
  917. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.mjs +0 -0
  918. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.mjs +0 -0
  919. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.mjs +0 -0
  920. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/index.mjs +0 -0
  921. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/pipes/index.mjs +0 -0
  922. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-link/index.mjs +0 -0
  923. /package/{esm2022 → esm2020}/lib/shared/components/palette/collection/index.mjs +0 -0
  924. /package/{esm2022 → esm2020}/lib/shared/components/palette/complex/index.mjs +0 -0
  925. /package/{esm2022 → esm2020}/lib/shared/components/palette/complex/sort-order.mjs +0 -0
  926. /package/{esm2022 → esm2020}/lib/shared/components/palette/date/index.mjs +0 -0
  927. /package/{esm2022 → esm2020}/lib/shared/components/palette/datetime-picker/datetime-picker-utils.mjs +0 -0
  928. /package/{esm2022 → esm2020}/lib/shared/components/palette/datetime-picker/index.mjs +0 -0
  929. /package/{esm2022 → esm2020}/lib/shared/components/palette/document/index.mjs +0 -0
  930. /package/{esm2022 → esm2020}/lib/shared/components/palette/dynamic-list/index.mjs +0 -0
  931. /package/{esm2022 → esm2020}/lib/shared/components/palette/dynamic-multi-select-list/index.mjs +0 -0
  932. /package/{esm2022 → esm2020}/lib/shared/components/palette/dynamic-radio-list/index.mjs +0 -0
  933. /package/{esm2022 → esm2020}/lib/shared/components/palette/email/index.mjs +0 -0
  934. /package/{esm2022 → esm2020}/lib/shared/components/palette/fixed-list/index.mjs +0 -0
  935. /package/{esm2022 → esm2020}/lib/shared/components/palette/fixed-radio-list/index.mjs +0 -0
  936. /package/{esm2022 → esm2020}/lib/shared/components/palette/history/event-log/index.mjs +0 -0
  937. /package/{esm2022 → esm2020}/lib/shared/components/palette/history/index.mjs +0 -0
  938. /package/{esm2022 → esm2020}/lib/shared/components/palette/index.mjs +0 -0
  939. /package/{esm2022 → esm2020}/lib/shared/components/palette/judicial-user/index.mjs +0 -0
  940. /package/{esm2022 → esm2020}/lib/shared/components/palette/label/index.mjs +0 -0
  941. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/components/index.mjs +0 -0
  942. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/domain/index.mjs +0 -0
  943. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.mjs +0 -0
  944. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/enums/index.mjs +0 -0
  945. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.mjs +0 -0
  946. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/index.mjs +0 -0
  947. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/services/index.mjs +0 -0
  948. /package/{esm2022 → esm2020}/lib/shared/components/palette/markdown/index.mjs +0 -0
  949. /package/{esm2022 → esm2020}/lib/shared/components/palette/money-gbp/index.mjs +0 -0
  950. /package/{esm2022 → esm2020}/lib/shared/components/palette/multi-select-list/index.mjs +0 -0
  951. /package/{esm2022 → esm2020}/lib/shared/components/palette/number/index.mjs +0 -0
  952. /package/{esm2022 → esm2020}/lib/shared/components/palette/order-summary/index.mjs +0 -0
  953. /package/{esm2022 → esm2020}/lib/shared/components/palette/organisation/index.mjs +0 -0
  954. /package/{esm2022 → esm2020}/lib/shared/components/palette/payment/index.mjs +0 -0
  955. /package/{esm2022 → esm2020}/lib/shared/components/palette/phone-uk/index.mjs +0 -0
  956. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/__mocks__/index.mjs +0 -0
  957. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/components/index.mjs +0 -0
  958. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/index.mjs +0 -0
  959. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.mjs +0 -0
  960. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.mjs +0 -0
  961. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.mjs +0 -0
  962. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.mjs +0 -0
  963. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/index.mjs +0 -0
  964. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +0 -0
  965. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/index.mjs +0 -0
  966. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.mjs +0 -0
  967. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.mjs +0 -0
  968. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/query-create-context.enum.mjs +0 -0
  969. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.mjs +0 -0
  970. /package/{esm2022 → esm2020}/lib/shared/components/palette/text/index.mjs +0 -0
  971. /package/{esm2022 → esm2020}/lib/shared/components/palette/text-area/index.mjs +0 -0
  972. /package/{esm2022 → esm2020}/lib/shared/components/palette/utils/index.mjs +0 -0
  973. /package/{esm2022 → esm2020}/lib/shared/components/palette/waystopay/index.mjs +0 -0
  974. /package/{esm2022 → esm2020}/lib/shared/components/palette/yes-no/index.mjs +0 -0
  975. /package/{esm2022 → esm2020}/lib/shared/components/search-filters/domain/index.mjs +0 -0
  976. /package/{esm2022 → esm2020}/lib/shared/components/search-filters/index.mjs +0 -0
  977. /package/{esm2022 → esm2020}/lib/shared/components/search-result/index.mjs +0 -0
  978. /package/{esm2022 → esm2020}/lib/shared/components/workbasket-filters/index.mjs +0 -0
  979. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/domain/index.mjs +0 -0
  980. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/index.mjs +0 -0
  981. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/services/condition-parser.service.mjs +0 -0
  982. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/services/condition.peg.mjs +0 -0
  983. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/services/index.mjs +0 -0
  984. /package/{esm2022 → esm2020}/lib/shared/directives/focus-element/index.mjs +0 -0
  985. /package/{esm2022 → esm2020}/lib/shared/directives/index.mjs +0 -0
  986. /package/{esm2022 → esm2020}/lib/shared/directives/substitutor/index.mjs +0 -0
  987. /package/{esm2022 → esm2020}/lib/shared/directives/substitutor/services/index.mjs +0 -0
  988. /package/{esm2022 → esm2020}/lib/shared/domain/activity/index.mjs +0 -0
  989. /package/{esm2022 → esm2020}/lib/shared/domain/addresses/index.mjs +0 -0
  990. /package/{esm2022 → esm2020}/lib/shared/domain/alert/alert-level.model.mjs +0 -0
  991. /package/{esm2022 → esm2020}/lib/shared/domain/alert/alert-status-params.model.mjs +0 -0
  992. /package/{esm2022 → esm2020}/lib/shared/domain/alert/index.mjs +0 -0
  993. /package/{esm2022 → esm2020}/lib/shared/domain/case-edit/case-edit.model.mjs +0 -0
  994. /package/{esm2022 → esm2020}/lib/shared/domain/case-edit/index.mjs +0 -0
  995. /package/{esm2022 → esm2020}/lib/shared/domain/case-file-view/case-file-view-sort-columns.enum.mjs +0 -0
  996. /package/{esm2022 → esm2020}/lib/shared/domain/case-file-view/document-tree-node/document-tree-node-type.model.mjs +0 -0
  997. /package/{esm2022 → esm2020}/lib/shared/domain/case-file-view/index.mjs +0 -0
  998. /package/{esm2022 → esm2020}/lib/shared/domain/case-flag/index.mjs +0 -0
  999. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/access-types.model.mjs +0 -0
  1000. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/case-view-event-ids.enum.mjs +0 -0
  1001. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/challenged-access-request.model.mjs +0 -0
  1002. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/index.mjs +0 -0
  1003. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/review-specific-access-request.model.mjs +0 -0
  1004. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/role-assignment-response.model.mjs +0 -0
  1005. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/role-request.model.mjs +0 -0
  1006. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/service-org-response.model.mjs +0 -0
  1007. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/specific-access-request.model.mjs +0 -0
  1008. /package/{esm2022 → esm2020}/lib/shared/domain/definition/display-context-enum.model.mjs +0 -0
  1009. /package/{esm2022 → esm2020}/lib/shared/domain/definition/field-type-enum.model.mjs +0 -0
  1010. /package/{esm2022 → esm2020}/lib/shared/domain/definition/index.mjs +0 -0
  1011. /package/{esm2022 → esm2020}/lib/shared/domain/document/index.mjs +0 -0
  1012. /package/{esm2022 → esm2020}/lib/shared/domain/error-message.model.mjs +0 -0
  1013. /package/{esm2022 → esm2020}/lib/shared/domain/http/index.mjs +0 -0
  1014. /package/{esm2022 → esm2020}/lib/shared/domain/index.mjs +0 -0
  1015. /package/{esm2022 → esm2020}/lib/shared/domain/jurisdiction/index.mjs +0 -0
  1016. /package/{esm2022 → esm2020}/lib/shared/domain/jurisdiction/judicial-user.model.mjs +0 -0
  1017. /package/{esm2022 → esm2020}/lib/shared/domain/order/index.mjs +0 -0
  1018. /package/{esm2022 → esm2020}/lib/shared/domain/order/orderable.model.mjs +0 -0
  1019. /package/{esm2022 → esm2020}/lib/shared/domain/organisation/index.mjs +0 -0
  1020. /package/{esm2022 → esm2020}/lib/shared/domain/organisation/simple-organisation.model.mjs +0 -0
  1021. /package/{esm2022 → esm2020}/lib/shared/domain/predicate.model.mjs +0 -0
  1022. /package/{esm2022 → esm2020}/lib/shared/domain/profile/index.mjs +0 -0
  1023. /package/{esm2022 → esm2020}/lib/shared/domain/search/index.mjs +0 -0
  1024. /package/{esm2022 → esm2020}/lib/shared/domain/search/sorting/search-result-view-item-comparator.mjs +0 -0
  1025. /package/{esm2022 → esm2020}/lib/shared/domain/sort-order.enum.mjs +0 -0
  1026. /package/{esm2022 → esm2020}/lib/shared/domain/user/user-details.model.mjs +0 -0
  1027. /package/{esm2022 → esm2020}/lib/shared/domain/user/user-info.model.mjs +0 -0
  1028. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/Task.mjs +0 -0
  1029. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/TaskPayload.mjs +0 -0
  1030. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/case-worker.model.mjs +0 -0
  1031. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/index.mjs +0 -0
  1032. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/judicial-worker.model.mjs +0 -0
  1033. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/task-response.model.mjs +0 -0
  1034. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/task-search-parameter.model.mjs +0 -0
  1035. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/wa-service-config.model.mjs +0 -0
  1036. /package/{esm2022 → esm2020}/lib/shared/domain/workbasket/index.mjs +0 -0
  1037. /package/{esm2022 → esm2020}/lib/shared/fixture/shared.test.fixture.mjs +0 -0
  1038. /package/{esm2022 → esm2020}/lib/shared/index.mjs +0 -0
  1039. /package/{esm2022 → esm2020}/lib/shared/pipes/case-reference/index.mjs +0 -0
  1040. /package/{esm2022 → esm2020}/lib/shared/pipes/case-title/index.mjs +0 -0
  1041. /package/{esm2022 → esm2020}/lib/shared/pipes/complex/index.mjs +0 -0
  1042. /package/{esm2022 → esm2020}/lib/shared/pipes/generic/index.mjs +0 -0
  1043. /package/{esm2022 → esm2020}/lib/shared/pipes/index.mjs +0 -0
  1044. /package/{esm2022 → esm2020}/lib/shared/pipes/link-cases-from-reason-code/index.mjs +0 -0
  1045. /package/{esm2022 → esm2020}/lib/shared/pipes/link-cases-reason-code/index.mjs +0 -0
  1046. /package/{esm2022 → esm2020}/lib/shared/services/activity/index.mjs +0 -0
  1047. /package/{esm2022 → esm2020}/lib/shared/services/addresses/address-parser.mjs +0 -0
  1048. /package/{esm2022 → esm2020}/lib/shared/services/addresses/address-type.enum.mjs +0 -0
  1049. /package/{esm2022 → esm2020}/lib/shared/services/addresses/index.mjs +0 -0
  1050. /package/{esm2022 → esm2020}/lib/shared/services/alert/index.mjs +0 -0
  1051. /package/{esm2022 → esm2020}/lib/shared/services/auth/index.mjs +0 -0
  1052. /package/{esm2022 → esm2020}/lib/shared/services/banners/index.mjs +0 -0
  1053. /package/{esm2022 → esm2020}/lib/shared/services/browser/index.mjs +0 -0
  1054. /package/{esm2022 → esm2020}/lib/shared/services/case-fields/index.mjs +0 -0
  1055. /package/{esm2022 → esm2020}/lib/shared/services/case-file-view/index.mjs +0 -0
  1056. /package/{esm2022 → esm2020}/lib/shared/services/case-flag/index.mjs +0 -0
  1057. /package/{esm2022 → esm2020}/lib/shared/services/case-flag/refdata-case-flag-type.enum.mjs +0 -0
  1058. /package/{esm2022 → esm2020}/lib/shared/services/definitions/index.mjs +0 -0
  1059. /package/{esm2022 → esm2020}/lib/shared/services/document-management/index.mjs +0 -0
  1060. /package/{esm2022 → esm2020}/lib/shared/services/draft/index.mjs +0 -0
  1061. /package/{esm2022 → esm2020}/lib/shared/services/error/index.mjs +0 -0
  1062. /package/{esm2022 → esm2020}/lib/shared/services/eventStatusService/index.mjs +0 -0
  1063. /package/{esm2022 → esm2020}/lib/shared/services/fields/index.mjs +0 -0
  1064. /package/{esm2022 → esm2020}/lib/shared/services/form/index.mjs +0 -0
  1065. /package/{esm2022 → esm2020}/lib/shared/services/http/index.mjs +0 -0
  1066. /package/{esm2022 → esm2020}/lib/shared/services/index.mjs +0 -0
  1067. /package/{esm2022 → esm2020}/lib/shared/services/jurisdiction/index.mjs +0 -0
  1068. /package/{esm2022 → esm2020}/lib/shared/services/loading/index.mjs +0 -0
  1069. /package/{esm2022 → esm2020}/lib/shared/services/navigation/index.mjs +0 -0
  1070. /package/{esm2022 → esm2020}/lib/shared/services/navigation/navigation-origin.model.mjs +0 -0
  1071. /package/{esm2022 → esm2020}/lib/shared/services/order/index.mjs +0 -0
  1072. /package/{esm2022 → esm2020}/lib/shared/services/organisation/index.mjs +0 -0
  1073. /package/{esm2022 → esm2020}/lib/shared/services/profile/index.mjs +0 -0
  1074. /package/{esm2022 → esm2020}/lib/shared/services/request/index.mjs +0 -0
  1075. /package/{esm2022 → esm2020}/lib/shared/services/router/index.mjs +0 -0
  1076. /package/{esm2022 → esm2020}/lib/shared/services/search/index.mjs +0 -0
  1077. /package/{esm2022 → esm2020}/lib/shared/services/session/index.mjs +0 -0
  1078. /package/{esm2022 → esm2020}/lib/shared/services/utils/retry/index.mjs +0 -0
  1079. /package/{esm2022 → esm2020}/lib/shared/services/window/index.mjs +0 -0
  1080. /package/{esm2022 → esm2020}/lib/shared/services/workbasket/index.mjs +0 -0
  1081. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
@@ -1,463 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
3
- import { ActivatedRoute, Router } from '@angular/router';
4
- import { Subject, of } from 'rxjs';
5
- import { finalize, switchMap } from 'rxjs/operators';
6
- import { ConditionalShowRegistrarService, GreyBarService } from '../../../directives';
7
- import { CaseEventTrigger, CaseView } from '../../../domain';
8
- import { AlertService, FieldsPurger, FieldsUtils, FormErrorService, FormValueService, LoadingService, SessionStorageService, WindowService } from '../../../services';
9
- import { Confirmation } from '../domain';
10
- import { CaseNotifier, WizardFactoryService, WorkAllocationService } from '../services';
11
- import { ValidPageListCaseFieldsService } from '../services/valid-page-list-caseFields.service';
12
- import { Constants } from '../../../commons/constants';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/forms";
15
- import * as i2 from "../services";
16
- import * as i3 from "@angular/router";
17
- import * as i4 from "../../../services";
18
- import * as i5 from "../../../directives";
19
- import * as i6 from "../services/valid-page-list-caseFields.service";
20
- export class CaseEditComponent {
21
- fb;
22
- caseNotifier;
23
- router;
24
- route;
25
- fieldsUtils;
26
- fieldsPurger;
27
- registrarService;
28
- wizardFactory;
29
- sessionStorageService;
30
- windowsService;
31
- formValueService;
32
- formErrorService;
33
- loadingService;
34
- validPageListCaseFieldsService;
35
- workAllocationService;
36
- alertService;
37
- static ORIGIN_QUERY_PARAM = 'origin';
38
- static ALERT_MESSAGE = 'Page is being refreshed so you will be redirected to the first page of this event.';
39
- eventTrigger;
40
- submit;
41
- validate;
42
- saveDraft;
43
- caseDetails;
44
- cancelled = new EventEmitter();
45
- submitted = new EventEmitter();
46
- wizard;
47
- form;
48
- confirmation;
49
- navigationOrigin;
50
- initialUrl;
51
- isPageRefreshed;
52
- isSubmitting;
53
- eventCompletionParams;
54
- submitResponse;
55
- isEventCompletionChecksRequired = false;
56
- isCaseFlagSubmission = false;
57
- ignoreWarning = false;
58
- isLinkedCasesSubmission = false;
59
- error;
60
- callbackErrorsSubject = new Subject();
61
- validPageList = [];
62
- constructor(fb, caseNotifier, router, route, fieldsUtils, fieldsPurger, registrarService, wizardFactory, sessionStorageService, windowsService, formValueService, formErrorService, loadingService, validPageListCaseFieldsService, workAllocationService, alertService) {
63
- this.fb = fb;
64
- this.caseNotifier = caseNotifier;
65
- this.router = router;
66
- this.route = route;
67
- this.fieldsUtils = fieldsUtils;
68
- this.fieldsPurger = fieldsPurger;
69
- this.registrarService = registrarService;
70
- this.wizardFactory = wizardFactory;
71
- this.sessionStorageService = sessionStorageService;
72
- this.windowsService = windowsService;
73
- this.formValueService = formValueService;
74
- this.formErrorService = formErrorService;
75
- this.loadingService = loadingService;
76
- this.validPageListCaseFieldsService = validPageListCaseFieldsService;
77
- this.workAllocationService = workAllocationService;
78
- this.alertService = alertService;
79
- }
80
- ngOnInit() {
81
- this.wizard = this.wizardFactory.create(this.eventTrigger);
82
- this.initialUrl = this.sessionStorageService.getItem('eventUrl');
83
- this.isPageRefreshed = JSON.parse(this.sessionStorageService.getItem('isPageRefreshed'));
84
- this.checkPageRefresh();
85
- /* istanbul ignore else */
86
- if (this.router.url && !this.isPageRefreshed) {
87
- this.sessionStorageService.setItem('eventUrl', this.router.url);
88
- }
89
- this.form = this.fb.group({
90
- data: new FormGroup({}),
91
- event: this.fb.group({
92
- id: [this.eventTrigger.id, Validators.required],
93
- summary: [''],
94
- description: ['']
95
- })
96
- });
97
- this.route.queryParams.subscribe((params) => {
98
- this.navigationOrigin = params[CaseEditComponent.ORIGIN_QUERY_PARAM];
99
- });
100
- }
101
- ngOnDestroy() {
102
- /* istanbul ignore else */
103
- if (this.callbackErrorsSubject) {
104
- this.callbackErrorsSubject.unsubscribe();
105
- }
106
- }
107
- checkPageRefresh() {
108
- if (this.isPageRefreshed && this.initialUrl) {
109
- this.sessionStorageService.removeItem('eventUrl');
110
- this.windowsService.alert(CaseEditComponent.ALERT_MESSAGE);
111
- this.router.navigate([this.initialUrl], { relativeTo: this.route });
112
- return true;
113
- }
114
- return false;
115
- }
116
- getPage(pageId) {
117
- return this.wizard.getPage(pageId, this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));
118
- }
119
- first() {
120
- const firstPage = this.wizard.firstPage(this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));
121
- return this.router.navigate([firstPage ? firstPage.id : 'submit'], { relativeTo: this.route });
122
- }
123
- navigateToPage(pageId) {
124
- const page = this.getPage(pageId);
125
- return this.router.navigate([page ? page.id : 'submit'], { relativeTo: this.route });
126
- }
127
- next(currentPageId) {
128
- this.initialUrl = this.sessionStorageService.getItem('eventUrl');
129
- /* istanbul ignore else */
130
- if (this.router.url && !this.initialUrl) {
131
- this.sessionStorageService.setItem('eventUrl', this.router.url);
132
- }
133
- this.fieldsPurger.clearHiddenFields(this.form, this.wizard, this.eventTrigger, currentPageId);
134
- const nextPage = this.getNextPage({
135
- currentPageId,
136
- wizard: this.wizard,
137
- eventTrigger: this.eventTrigger,
138
- form: this.form,
139
- });
140
- /* istanbul ignore else */
141
- if (!nextPage &&
142
- !(this.eventTrigger.show_summary || this.eventTrigger.show_summary === null) &&
143
- !this.eventTrigger.show_event_notes) {
144
- this.submitForm({
145
- eventTrigger: this.eventTrigger,
146
- form: this.form,
147
- submit: this.submit,
148
- caseDetails: this.caseDetails,
149
- });
150
- return;
151
- }
152
- this.registrarService.reset();
153
- const theQueryParams = {};
154
- theQueryParams[CaseEditComponent.ORIGIN_QUERY_PARAM] = this.navigationOrigin;
155
- return this.router.navigate([nextPage ? nextPage.id : 'submit'], { queryParams: theQueryParams, relativeTo: this.route });
156
- }
157
- previous(currentPageId) {
158
- this.fieldsPurger.clearHiddenFields(this.form, this.wizard, this.eventTrigger, currentPageId);
159
- this.registrarService.reset();
160
- const previousPage = this.wizard.previousPage(currentPageId, this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));
161
- /* istanbul ignore else */
162
- if (!previousPage) {
163
- return Promise.resolve(false);
164
- }
165
- const theQueryParams = {};
166
- theQueryParams[CaseEditComponent.ORIGIN_QUERY_PARAM] = this.navigationOrigin;
167
- return this.router.navigate([previousPage.id], { queryParams: theQueryParams, relativeTo: this.route });
168
- }
169
- hasPrevious(currentPageId) {
170
- return this.wizard.hasPreviousPage(currentPageId, this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));
171
- }
172
- cancel() {
173
- this.cancelled.emit();
174
- }
175
- emitSubmitted(response) {
176
- this.submitted.emit({ caseId: response['id'], status: this.getStatus(response) });
177
- }
178
- getNextPage({ wizard, currentPageId, eventTrigger, form }) {
179
- return wizard.nextPage(currentPageId, this.fieldsUtils.buildCanShowPredicate(eventTrigger, form));
180
- }
181
- confirm(confirmation) {
182
- this.confirmation = confirmation;
183
- return this.router.navigate(['confirm'], { relativeTo: this.route });
184
- }
185
- submitForm({ eventTrigger, form, caseDetails, submit }) {
186
- this.isSubmitting = true;
187
- // We have to run the event completion checks if task in session storage
188
- // and if the task is in session storage, then is it associated to the case
189
- let taskInSessionStorage;
190
- const taskStr = this.sessionStorageService.getItem('taskToComplete');
191
- if (taskStr) {
192
- taskInSessionStorage = JSON.parse(taskStr);
193
- }
194
- if (taskInSessionStorage && taskInSessionStorage.case_id === this.getCaseId(caseDetails)) {
195
- // Show event completion component to perform event completion checks
196
- this.eventCompletionParams = ({
197
- caseId: this.getCaseId(caseDetails),
198
- eventId: this.getEventId(form),
199
- task: taskInSessionStorage
200
- });
201
- this.isEventCompletionChecksRequired = true;
202
- }
203
- else {
204
- // Task not in session storage, proceed to submit
205
- const caseEventData = this.generateCaseEventData({
206
- eventTrigger,
207
- form
208
- });
209
- this.caseSubmit({ form,
210
- caseEventData,
211
- submit
212
- });
213
- }
214
- }
215
- getCaseId(caseDetails) {
216
- return (caseDetails ? caseDetails.case_id : '');
217
- }
218
- getEventId(form) {
219
- return form.value.event.id;
220
- }
221
- generateCaseEventData({ eventTrigger, form }) {
222
- const caseEventData = {
223
- data: this.replaceEmptyComplexFieldValues(this.formValueService.sanitise(this.replaceHiddenFormValuesWithOriginalCaseData(form.get('data'), eventTrigger.case_fields))),
224
- event: form.value.event
225
- };
226
- this.formValueService.clearNonCaseFields(caseEventData.data, eventTrigger.case_fields);
227
- this.formValueService.removeNullLabels(caseEventData.data, eventTrigger.case_fields);
228
- this.formValueService.removeEmptyDocuments(caseEventData.data, eventTrigger.case_fields);
229
- // Remove collection fields that have "min" validation of greater than zero set on the FieldType but are empty;
230
- // these will fail validation
231
- this.formValueService.removeEmptyCollectionsWithMinValidation(caseEventData.data, eventTrigger.case_fields);
232
- // For Case Flag submissions (where a FlagLauncher field is present in the event trigger), the flag details data
233
- // needs populating for each Flags field, then the FlagLauncher field needs removing
234
- this.formValueService.repopulateFormDataFromCaseFieldValues(caseEventData.data, eventTrigger.case_fields);
235
- // Data population step required for Linked Cases
236
- this.formValueService.populateLinkedCasesDetailsFromCaseFields(caseEventData.data, eventTrigger.case_fields);
237
- // Remove "Launcher"-type fields (these have no values and are not intended to be persisted)
238
- this.formValueService.removeCaseFieldsOfType(caseEventData.data, eventTrigger.case_fields, ['FlagLauncher', 'ComponentLauncher']);
239
- // delete fields which are not part of the case event journey wizard pages case fields
240
- this.validPageListCaseFieldsService.deleteNonValidatedFields(this.validPageList, caseEventData.data, eventTrigger.case_fields, false, form.controls['data'].value);
241
- const pageListCaseFields = this.validPageListCaseFieldsService.validPageListCaseFields(this.validPageList, eventTrigger.case_fields, form.controls['data'].value);
242
- // Remove unnecessary case fields which are hidden, only if the submission is *not* for Case Flags
243
- if (!this.isCaseFlagSubmission) {
244
- this.formValueService.removeUnnecessaryFields(caseEventData.data, pageListCaseFields, true, true);
245
- }
246
- caseEventData.event_token = eventTrigger.event_token;
247
- caseEventData.ignore_warning = this.ignoreWarning;
248
- if (this.confirmation) {
249
- caseEventData.data = {};
250
- }
251
- return caseEventData;
252
- }
253
- /**
254
- * Replaces non-array value objects with `null` for any Complex-type fields whose value is effectively empty, i.e.
255
- * all its sub-fields and descendants are `null` or `undefined`.
256
- *
257
- * @param data The object tree representing all the form field data
258
- * @returns The form field data modified accordingly
259
- */
260
- replaceEmptyComplexFieldValues(data) {
261
- Object.keys(data).forEach((key) => {
262
- if (!Array.isArray(data[key]) && typeof data[key] === 'object' && !FieldsUtils.containsNonEmptyValues(data[key])) {
263
- data[key] = null;
264
- }
265
- });
266
- return data;
267
- }
268
- /**
269
- * Traverse *all* values of a {@link FormGroup}, including those for disabled fields (i.e. hidden ones), replacing the
270
- * value of any that are hidden AND have `retain_hidden_value` set to `true` in the corresponding `CaseField`, with
271
- * the *original* value held in the `CaseField` object.
272
- *
273
- * This is as per design in EUI-3622, where any user-driven updates to hidden fields with `retain_hidden_value` =
274
- * `true` are ignored (thus retaining the value displayed originally).
275
- *
276
- * * For Complex field types, the replacement above is performed recursively for all hidden sub-fields with
277
- * `retain_hidden_value` = `true`.
278
- *
279
- * * For Collection field types, including collections of Complex and Document field types, the replacement is
280
- * performed for all fields in the collection.
281
- *
282
- * @param formGroup The `FormGroup` instance whose raw values are to be traversed
283
- * @param caseFields The array of {@link CaseField} domain model objects corresponding to fields in `formGroup`
284
- * @param parentField Reference to the parent `CaseField`. Used for retrieving the sub-field values of a Complex field
285
- * to perform recursive replacement - the sub-field `CaseField`s themselves do *not* contain any values
286
- * @returns An object with the *raw* form value data (as key-value pairs), with any value replacements as necessary
287
- */
288
- replaceHiddenFormValuesWithOriginalCaseData(formGroup, caseFields, parentField) {
289
- // Get the raw form value data, which includes the values of any disabled controls, as key-value pairs
290
- const rawFormValueData = formGroup.getRawValue();
291
- // Place all case fields in a lookup object, so they can be retrieved by id
292
- const caseFieldsLookup = {};
293
- for (let i = 0, len = caseFields.length; i < len; i++) {
294
- caseFieldsLookup[caseFields[i].id] = caseFields[i];
295
- }
296
- /**
297
- * Replace any form value with the original, where its CaseField is hidden AND has the retain_hidden_value flag set
298
- * to true.
299
- *
300
- * If the CaseField's `hidden` attribute is null or undefined, then check this attribute in the parent CaseField (if
301
- * one exists). This is occurring (and is possibly a bug) when a CaseField is a sub-field of a Complex type, or an
302
- * item in a Collection type.
303
- *
304
- * If the field is a Complex type with retain_hidden_value = true, perform a recursive replacement for all (hidden)
305
- * sub-fields with retain_hidden_value = true, using their original CaseField values (from the `formatted_value`
306
- * attribute).
307
- *
308
- * If the field is a Collection type with retain_hidden_value = true, the entire collection is replaced with the
309
- * original from `formatted_value`. This applies to *all* types of Collections.
310
- */
311
- /* istanbul ignore next */
312
- Object.keys(rawFormValueData).forEach((key) => {
313
- const caseField = caseFieldsLookup[key];
314
- // If caseField.hidden is NOT truthy and also NOT equal to false, then it must be null/undefined (remember that
315
- // both null and undefined are equal to *neither false nor true*)
316
- if (caseField && caseField.retain_hidden_value &&
317
- (caseField.hidden || (caseField.hidden !== false && parentField && parentField.hidden))) {
318
- if (caseField.field_type.type === 'Complex') {
319
- // Note: Deliberate use of equality (==) and non-equality (!=) operators for null checks throughout, to
320
- // handle both null and undefined values
321
- if (caseField.value != null) {
322
- // Call this function recursively to replace the Complex field's sub-fields as necessary, passing the
323
- // CaseField itself (the sub-fields do not contain any values, so these need to be obtained from the
324
- // parent)
325
- // Update rawFormValueData for this field
326
- // creating form group and adding control into it in case caseField is of complext type and and part of formGroup
327
- const form = new FormGroup({});
328
- if (formGroup.controls[key].value) {
329
- Object.keys(formGroup.controls[key].value).forEach((item) => {
330
- form.addControl(item, new FormControl(formGroup.controls[key].value[item]));
331
- });
332
- }
333
- rawFormValueData[key] = this.replaceHiddenFormValuesWithOriginalCaseData(form, caseField.field_type.complex_fields, caseField);
334
- }
335
- }
336
- else {
337
- // Default case also handles collections of *all* types; the entire collection in rawFormValueData will be
338
- // replaced with the original from formatted_value
339
- // Use the CaseField's existing *formatted_value* from the parent, if available. (This is necessary for
340
- // Complex fields, whose sub-fields do not hold any values in the model.) Otherwise, use formatted_value
341
- // from the CaseField itself.
342
- if (parentField && parentField.formatted_value) {
343
- rawFormValueData[key] = parentField.formatted_value[caseField.id];
344
- }
345
- else {
346
- if (!(caseField.hidden && caseField.retain_hidden_value)) {
347
- rawFormValueData[key] = caseField.formatted_value;
348
- }
349
- }
350
- }
351
- }
352
- });
353
- return rawFormValueData;
354
- }
355
- caseSubmit({ form, caseEventData, submit }) {
356
- const loadingSpinnerToken = this.loadingService.register();
357
- // keep the initial event response to finalise process after task completion
358
- let eventResponse;
359
- this.sessionStorageService.setItem('taskCompletionError', 'false');
360
- submit(caseEventData).pipe(switchMap((response) => {
361
- eventResponse = response;
362
- return this.postCompleteTaskIfRequired();
363
- }), finalize(() => {
364
- this.loadingService.unregister(loadingSpinnerToken);
365
- }))
366
- .subscribe(() => {
367
- this.finishEventCompletionLogic(eventResponse);
368
- }, error => {
369
- if (!eventResponse) {
370
- // event submission error
371
- this.error = error;
372
- this.callbackErrorsSubject.next(error);
373
- /* istanbul ignore else */
374
- if (this.error.details) {
375
- this.formErrorService
376
- .mapFieldErrors(this.error.details.field_errors, form.controls['data'], 'validation');
377
- }
378
- this.isSubmitting = false;
379
- }
380
- else {
381
- this.sessionStorageService.setItem('taskCompletionError', 'true');
382
- // task assignment/completion error - handled within workallocation service
383
- // could set task to be deleted (or completed later)?
384
- this.finishEventCompletionLogic(eventResponse);
385
- // below allows error to be shown on navigation to confirmation page
386
- this.alertService.setPreserveAlerts(true);
387
- this.alertService.error({ phrase: Constants.TASK_COMPLETION_ERROR });
388
- }
389
- });
390
- }
391
- postCompleteTaskIfRequired() {
392
- const taskStr = this.sessionStorageService.getItem('taskToComplete');
393
- const assignNeeded = this.sessionStorageService.getItem('assignNeeded') === 'true';
394
- if (taskStr && assignNeeded) {
395
- const task = JSON.parse(taskStr);
396
- return this.workAllocationService.assignAndCompleteTask(task.id);
397
- }
398
- else if (taskStr) {
399
- const task = JSON.parse(taskStr);
400
- return this.workAllocationService.completeTask(task.id);
401
- }
402
- return of(true);
403
- }
404
- finishEventCompletionLogic(eventResponse) {
405
- this.caseNotifier.cachedCaseView = null;
406
- this.sessionStorageService.removeItem('eventUrl');
407
- const confirmation = this.buildConfirmation(eventResponse);
408
- if (confirmation && (confirmation.getHeader() || confirmation.getBody())) {
409
- this.confirm(confirmation);
410
- }
411
- else {
412
- this.emitSubmitted(eventResponse);
413
- }
414
- }
415
- buildConfirmation(response) {
416
- if (response['after_submit_callback_response']) {
417
- return new Confirmation(response['id'], response['callback_response_status'], response['after_submit_callback_response']['confirmation_header'], response['after_submit_callback_response']['confirmation_body']);
418
- }
419
- else {
420
- return null;
421
- }
422
- }
423
- onEventCanBeCompleted({ eventTrigger, eventCanBeCompleted, caseDetails, form, submit }) {
424
- if (eventCanBeCompleted) {
425
- // Submit
426
- const caseEventData = this.generateCaseEventData({ eventTrigger, form });
427
- this.caseSubmit({ form, caseEventData, submit });
428
- }
429
- else {
430
- // Navigate to tasks tab on case details page
431
- this.router.navigate([`/cases/case-details/${this.getCaseId(caseDetails)}/tasks`], { relativeTo: this.route });
432
- }
433
- }
434
- getStatus(response) {
435
- return this.hasCallbackFailed(response) ? response['callback_response_status'] : response['delete_draft_response_status'];
436
- }
437
- hasCallbackFailed(response) {
438
- return response['callback_response_status'] !== 'CALLBACK_COMPLETED';
439
- }
440
- static ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.CaseNotifier), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject(i3.ActivatedRoute), i0.ɵɵdirectiveInject(i4.FieldsUtils), i0.ɵɵdirectiveInject(i4.FieldsPurger), i0.ɵɵdirectiveInject(i5.ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(i2.WizardFactoryService), i0.ɵɵdirectiveInject(i4.SessionStorageService), i0.ɵɵdirectiveInject(i4.WindowService), i0.ɵɵdirectiveInject(i4.FormValueService), i0.ɵɵdirectiveInject(i4.FormErrorService), i0.ɵɵdirectiveInject(i4.LoadingService), i0.ɵɵdirectiveInject(i6.ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(i2.WorkAllocationService), i0.ɵɵdirectiveInject(i4.AlertService)); };
441
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService])], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
442
- i0.ɵɵelement(0, "router-outlet");
443
- } }, dependencies: [i3.RouterOutlet], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:0px}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
444
- }
445
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditComponent, [{
446
- type: Component,
447
- args: [{ selector: 'ccd-case-edit', providers: [GreyBarService], template: "<router-outlet></router-outlet>\n", styles: ["#fieldset-case-data{margin-bottom:30px}#fieldset-case-data th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}#confirmation-header{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body{width:630px;background-color:#fff}.valign-top{vertical-align:top}.summary-fields{margin-bottom:30px}.summary-fields tbody tr th,.summary-fields tbody tr td{border-bottom:0px}a.disabled{pointer-events:none;cursor:default}.case-field-label{width:45%}.case-field-content{width:50%}.no-bottom-border{border-bottom:none}.case-field-change{width:5%}\n"] }]
448
- }], function () { return [{ type: i1.FormBuilder }, { type: i2.CaseNotifier }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.FieldsUtils }, { type: i4.FieldsPurger }, { type: i5.ConditionalShowRegistrarService }, { type: i2.WizardFactoryService }, { type: i4.SessionStorageService }, { type: i4.WindowService }, { type: i4.FormValueService }, { type: i4.FormErrorService }, { type: i4.LoadingService }, { type: i6.ValidPageListCaseFieldsService }, { type: i2.WorkAllocationService }, { type: i4.AlertService }]; }, { eventTrigger: [{
449
- type: Input
450
- }], submit: [{
451
- type: Input
452
- }], validate: [{
453
- type: Input
454
- }], saveDraft: [{
455
- type: Input
456
- }], caseDetails: [{
457
- type: Input
458
- }], cancelled: [{
459
- type: Output
460
- }], submitted: [{
461
- type: Output
462
- }] }); })();
463
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLCtCQUErQixFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RGLE9BQU8sRUFJVSxnQkFBZ0IsRUFDL0IsUUFBUSxFQUNULE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFDN0UscUJBQXFCLEVBQUUsYUFBYSxFQUNyQyxNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFBRSxZ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ZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25kaXRpb25hbFNob3dSZWdpc3RyYXJTZXJ2aWNlLCBHcmV5QmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgQ2FzZUVkaXRDYXNlU3VibWl0LCBDYXNlRWRpdEdlbmVyYXRlQ2FzZUV2ZW50RGF0YSwgQ2FzZUVkaXRHZXROZXh0UGFnZSxcbiAgQ2FzZUVkaXRTdWJtaXRGb3JtLFxuICBDYXNlRWRpdG9uRXZlbnRDYW5CZUNvbXBsZXRlZCxcbiAgQ2FzZUV2ZW50RGF0YSwgQ2FzZUV2ZW50VHJpZ2dlciwgQ2FzZUZpZWxkLFxuICBDYXNlVmlldywgRHJhZnQsIEh0dHBFcnJvciwgUHJvZmlsZVxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEZpZWxkc1B1cmdlciwgRmllbGRzVXRpbHMsIEZvcm1FcnJvclNlcnZpY2UsIEZvcm1WYWx1ZVNlcnZpY2UsIExvYWRpbmdTZXJ2aWNlLFxuICBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsIFdpbmRvd1NlcnZpY2Vcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtc2hvdy9kb21haW4vY29uZGl0aW9uYWwtc2hvdy5tb2RlbCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb24sIFdpemFyZCwgV2l6YXJkUGFnZSB9IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBFdmVudENvbXBsZXRpb25QYXJhbXMgfSBmcm9tICcuLi9kb21haW4vZXZlbnQtY29tcGxldGlvbi1wYXJhbXMubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZU5vdGlmaWVyLCBXaXphcmRGYWN0b3J5U2VydmljZSwgV29ya0FsbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgVmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdmFsaWQtcGFnZS1saXN0LWNhc2VGaWVsZHMuc2VydmljZSc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2NvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJ2Nhc2UtZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi9jYXNlLWVkaXQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtHcmV5QmFyU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgT1JJR0lOX1FVRVJZX1BBUkFNID0gJ29yaWdpbic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUxFUlRfTUVTU0FHRSA9ICdQYWdlIGlzIGJlaW5nIHJlZnJlc2hlZCBzbyB5b3Ugd2lsbCBiZSByZWRpcmVjdGVkIHRvIHRoZSBmaXJzdCBwYWdlIG9mIHRoaXMgZXZlbnQuJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZXZlbnRUcmlnZ2VyOiBDYXNlRXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdWJtaXQ6IChjYXNlRXZlbnREYXRhOiBDYXNlRXZlbnREYXRhLCBwcm9maWxlPzogUHJvZmlsZSkgPT4gT2JzZXJ2YWJsZTxvYmplY3Q+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YWxpZGF0ZTogKGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEsIHBhZ2VJZDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNhdmVEcmFmdDogKGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEpID0+IE9ic2VydmFibGU8RHJhZnQ+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRGV0YWlsczogQ2FzZVZpZXc7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjYW5jZWxsZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc3VibWl0dGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgd2l6YXJkOiBXaXphcmQ7XG5cbiAgcHVibGljIGZvcm06IEZvcm1Hcm91cDtcblxuICBwdWJsaWMgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb247XG5cbiAgcHVibGljIG5hdmlnYXRpb25PcmlnaW46IGFueTtcblxuICBwdWJsaWMgaW5pdGlhbFVybDogc3RyaW5nO1xuXG4gIHB1YmxpYyBpc1BhZ2VSZWZyZXNoZWQ6IGJvb2xlYW47XG5cbiAgcHVibGljIGlzU3VibWl0dGluZzogYm9vbGVhbjtcblxuICBwdWJsaWMgZXZlbnRDb21wbGV0aW9uUGFyYW1zOiBFdmVudENvbXBsZXRpb25QYXJhbXM7XG5cbiAgcHVibGljIHN1Ym1pdFJlc3BvbnNlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIHB1YmxpYyBpc0V2ZW50Q29tcGxldGlvbkNoZWNrc1JlcXVpcmVkID0gZmFsc2U7XG5cbiAgcHVibGljIGlzQ2FzZUZsYWdTdWJtaXNzaW9uID0gZmFsc2U7XG5cbiAgcHVibGljIGlnbm9yZVdhcm5pbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNMaW5rZWRDYXNlc1N1Ym1pc3Npb24gPSBmYWxzZTtcblxuICBwdWJsaWMgZXJyb3I6IEh0dHBFcnJvcjtcblxuICBwdWJsaWMgY2FsbGJhY2tFcnJvcnNTdWJqZWN0OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyB2YWxpZFBhZ2VMaXN0OiBXaXphcmRQYWdlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VOb3RpZmllcjogQ2FzZU5vdGlmaWVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWVsZHNVdGlsczogRmllbGRzVXRpbHMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWVsZHNQdXJnZXI6IEZpZWxkc1B1cmdlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJhclNlcnZpY2U6IENvbmRpdGlvbmFsU2hvd1JlZ2lzdHJhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aXphcmRGYWN0b3J5OiBXaXphcmRGYWN0b3J5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93c1NlcnZpY2U6IFdpbmRvd1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtVmFsdWVTZXJ2aWNlOiBGb3JtVmFsdWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUVycm9yU2VydmljZTogRm9ybUVycm9yU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkUGFnZUxpc3RDYXNlRmllbGRzU2VydmljZTogVmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd29ya0FsbG9jYXRpb25TZXJ2aWNlOiBXb3JrQWxsb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMud2l6YXJkID0gdGhpcy53aXphcmRGYWN0b3J5LmNyZWF0ZSh0aGlzLmV2ZW50VHJpZ2dlcik7XG4gICAgdGhpcy5pbml0aWFsVXJsID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnZXZlbnRVcmwnKTtcbiAgICB0aGlzLmlzUGFnZVJlZnJlc2hlZCA9IEpTT04ucGFyc2UodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnaXNQYWdlUmVmcmVzaGVkJykpO1xuXG4gICAgdGhpcy5jaGVja1BhZ2VSZWZyZXNoKCk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICYmICF0aGlzLmlzUGFnZVJlZnJlc2hlZCkge1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnZXZlbnRVcmwnLCB0aGlzLnJvdXRlci51cmwpO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZGF0YTogbmV3IEZvcm1Hcm91cCh7fSksXG4gICAgICBldmVudDogdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIGlkOiBbdGhpcy5ldmVudFRyaWdnZXIuaWQsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICBzdW1tYXJ5OiBbJyddLFxuICAgICAgICBkZXNjcmlwdGlvbjogWycnXVxuICAgICAgfSlcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXM6IFBhcmFtcykgPT4ge1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uT3JpZ2luID0gcGFyYW1zW0Nhc2VFZGl0Q29tcG9uZW50Lk9SSUdJTl9RVUVSWV9QQVJBTV07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5jYWxsYmFja0Vycm9yc1N1YmplY3QpIHtcbiAgICAgIHRoaXMuY2FsbGJhY2tFcnJvcnNTdWJqZWN0LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNoZWNrUGFnZVJlZnJlc2goKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuaXNQYWdlUmVmcmVzaGVkICYmIHRoaXMuaW5pdGlhbFVybCkge1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICAgIHRoaXMud2luZG93c1NlcnZpY2UuYWxlcnQoQ2FzZUVkaXRDb21wb25lbnQuQUxFUlRfTUVTU0FHRSk7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5pbml0aWFsVXJsXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQYWdlKHBhZ2VJZDogc3RyaW5nKTogV2l6YXJkUGFnZSB7XG4gICAgcmV0dXJuIHRoaXMud2l6YXJkLmdldFBhZ2UocGFnZUlkLCB0aGlzLmZpZWxkc1V0aWxzLmJ1aWxkQ2FuU2hvd1ByZWRpY2F0ZSh0aGlzLmV2ZW50VHJpZ2dlciwgdGhpcy5mb3JtKSk7XG4gIH1cblxuICBwdWJsaWMgZmlyc3QoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZmlyc3RQYWdlID0gdGhpcy53aXphcmQuZmlyc3RQYWdlKHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2ZpcnN0UGFnZSA/IGZpcnN0UGFnZS5pZCA6ICdzdWJtaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG9QYWdlKHBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuZ2V0UGFnZShwYWdlSWQpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGFnZSA/IHBhZ2UuaWQgOiAnc3VibWl0J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0KGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuaW5pdGlhbFVybCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICYmICF0aGlzLmluaXRpYWxVcmwpIHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ2V2ZW50VXJsJywgdGhpcy5yb3V0ZXIudXJsKTtcbiAgICB9XG4gICAgdGhpcy5maWVsZHNQdXJnZXIuY2xlYXJIaWRkZW5GaWVsZHModGhpcy5mb3JtLCB0aGlzLndpemFyZCwgdGhpcy5ldmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQpO1xuICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5nZXROZXh0UGFnZSh7XG4gICAgICBjdXJyZW50UGFnZUlkLFxuICAgICAgd2l6YXJkOiB0aGlzLndpemFyZCxcbiAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICBmb3JtOiB0aGlzLmZvcm0sXG4gICAgfSk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghbmV4dFBhZ2UgJiZcbiAgICAgICEodGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5IHx8IHRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfc3VtbWFyeSA9PT0gbnVsbCkgJiZcbiAgICAgICF0aGlzLmV2ZW50VHJpZ2dlci5zaG93X2V2ZW50X25vdGVzKSB7XG4gICAgICB0aGlzLnN1Ym1pdEZvcm0oe1xuICAgICAgICBldmVudFRyaWdnZXI6IHRoaXMuZXZlbnRUcmlnZ2VyLFxuICAgICAgICBmb3JtOiB0aGlzLmZvcm0sXG4gICAgICAgIHN1Ym1pdDogdGhpcy5zdWJtaXQsXG4gICAgICAgIGNhc2VEZXRhaWxzOiB0aGlzLmNhc2VEZXRhaWxzLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZWdpc3RyYXJTZXJ2aWNlLnJlc2V0KCk7XG5cbiAgICBjb25zdCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG4gICAgdGhlUXVlcnlQYXJhbXNbQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXSA9IHRoaXMubmF2aWdhdGlvbk9yaWdpbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW25leHRQYWdlID8gbmV4dFBhZ2UuaWQgOiAnc3VibWl0J10sIHsgcXVlcnlQYXJhbXM6IHRoZVF1ZXJ5UGFyYW1zLCByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzKGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuZmllbGRzUHVyZ2VyLmNsZWFySGlkZGVuRmllbGRzKHRoaXMuZm9ybSwgdGhpcy53aXphcmQsIHRoaXMuZXZlbnRUcmlnZ2VyLCBjdXJyZW50UGFnZUlkKTtcbiAgICB0aGlzLnJlZ2lzdHJhclNlcnZpY2UucmVzZXQoKTtcblxuICAgIGNvbnN0IHByZXZpb3VzUGFnZSA9IHRoaXMud2l6YXJkLnByZXZpb3VzUGFnZShjdXJyZW50UGFnZUlkLCB0aGlzLmZpZWxkc1V0aWxzLmJ1aWxkQ2FuU2hvd1ByZWRpY2F0ZSh0aGlzLmV2ZW50VHJpZ2dlciwgdGhpcy5mb3JtKSk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXByZXZpb3VzUGFnZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdGhlUXVlcnlQYXJhbXM6IFBhcmFtcyA9IHt9O1xuICAgIHRoZVF1ZXJ5UGFyYW1zW0Nhc2VFZGl0Q29tcG9uZW50Lk9SSUdJTl9RVUVSWV9QQVJBTV0gPSB0aGlzLm5hdmlnYXRpb25PcmlnaW47XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwcmV2aW91c1BhZ2UuaWRdLCB7IHF1ZXJ5UGFyYW1zOiB0aGVRdWVyeVBhcmFtcywgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNQcmV2aW91cyhjdXJyZW50UGFnZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53aXphcmQuaGFzUHJldmlvdXNQYWdlKGN1cnJlbnRQYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxsZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGVtaXRTdWJtaXR0ZWQocmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHsgY2FzZUlkOiByZXNwb25zZVsnaWQnXSwgc3RhdHVzOiB0aGlzLmdldFN0YXR1cyhyZXNwb25zZSkgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TmV4dFBhZ2UoeyB3aXphcmQsIGN1cnJlbnRQYWdlSWQsIGV2ZW50VHJpZ2dlciwgZm9ybSB9OiBDYXNlRWRpdEdldE5leHRQYWdlKTogV2l6YXJkUGFnZSB7XG4gICAgcmV0dXJuIHdpemFyZC5uZXh0UGFnZShcbiAgICAgIGN1cnJlbnRQYWdlSWQsXG4gICAgICB0aGlzLmZpZWxkc1V0aWxzLmJ1aWxkQ2FuU2hvd1ByZWRpY2F0ZShldmVudFRyaWdnZXIsIGZvcm0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maXJtKGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5jb25maXJtYXRpb24gPSBjb25maXJtYXRpb247XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnY29uZmlybSddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0Rm9ybSh7IGV2ZW50VHJpZ2dlciwgZm9ybSwgY2FzZURldGFpbHMsIHN1Ym1pdCB9OiBDYXNlRWRpdFN1Ym1pdEZvcm0pOiB2b2lkIHtcbiAgICB0aGlzLmlzU3VibWl0dGluZyA9IHRydWU7XG4gICAgLy8gV2UgaGF2ZSB0byBydW4gdGhlIGV2ZW50IGNvbXBsZXRpb24gY2hlY2tzIGlmIHRhc2sgaW4gc2Vzc2lvbiBzdG9yYWdlXG4gICAgLy8gYW5kIGlmIHRoZSB0YXNrIGlzIGluIHNlc3Npb24gc3RvcmFnZSwgdGhlbiBpcyBpdCBhc3NvY2lhdGVkIHRvIHRoZSBjYXNlXG4gICAgbGV0IHRhc2tJblNlc3Npb25TdG9yYWdlOiBUYXNrO1xuICAgIGNvbnN0IHRhc2tTdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd0YXNrVG9Db21wbGV0ZScpO1xuICAgIGlmICh0YXNrU3RyKSB7XG4gICAgICB0YXNrSW5TZXNzaW9uU3RvcmFnZSA9IEpTT04ucGFyc2UodGFza1N0cik7XG4gICAgfVxuXG4gICAgaWYgKHRhc2tJblNlc3Npb25TdG9yYWdlICYmIHRhc2tJblNlc3Npb25TdG9yYWdlLmNhc2VfaWQgPT09IHRoaXMuZ2V0Q2FzZUlkKGNhc2VEZXRhaWxzKSkge1xuICAgICAgLy8gU2hvdyBldmVudCBjb21wbGV0aW9uIGNvbXBvbmVudCB0byBwZXJmb3JtIGV2ZW50IGNvbXBsZXRpb24gY2hlY2tzXG4gICAgICB0aGlzLmV2ZW50Q29tcGxldGlvblBhcmFtcyA9ICh7XG4gICAgICAgIGNhc2VJZDogdGhpcy5nZXRDYXNlSWQoY2FzZURldGFpbHMpLFxuICAgICAgICBldmVudElkOiB0aGlzLmdldEV2ZW50SWQoZm9ybSksXG4gICAgICAgIHRhc2s6IHRhc2tJblNlc3Npb25TdG9yYWdlXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaXNFdmVudENvbXBsZXRpb25DaGVja3NSZXF1aXJlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRhc2sgbm90IGluIHNlc3Npb24gc3RvcmFnZSwgcHJvY2VlZCB0byBzdWJtaXRcbiAgICAgIGNvbnN0IGNhc2VFdmVudERhdGEgPSB0aGlzLmdlbmVyYXRlQ2FzZUV2ZW50RGF0YSh7XG4gICAgICAgIGV2ZW50VHJpZ2dlcixcbiAgICAgICAgZm9ybVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNhc2VTdWJtaXQoe2Zvcm0sXG4gICAgICAgIGNhc2VFdmVudERhdGEsXG4gICAgICAgIHN1Ym1pdFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENhc2VJZChjYXNlRGV0YWlsczogQ2FzZVZpZXcpOiBzdHJpbmcge1xuICAgIHJldHVybiAoY2FzZURldGFpbHMgPyBjYXNlRGV0YWlscy5jYXNlX2lkIDogJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFdmVudElkKGZvcm06IEZvcm1Hcm91cCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm0udmFsdWUuZXZlbnQuaWQ7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ2FzZUV2ZW50RGF0YSh7IGV2ZW50VHJpZ2dlciwgZm9ybSB9OiBDYXNlRWRpdEdlbmVyYXRlQ2FzZUV2ZW50RGF0YSApOiBDYXNlRXZlbnREYXRhIHtcbiAgICBjb25zdCBjYXNlRXZlbnREYXRhOiBDYXNlRXZlbnREYXRhID0ge1xuICAgICAgZGF0YTogdGhpcy5yZXBsYWNlRW1wdHlDb21wbGV4RmllbGRWYWx1ZXMoXG4gICAgICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5zYW5pdGlzZShcbiAgICAgICAgICB0aGlzLnJlcGxhY2VIaWRkZW5Gb3JtVmFsdWVzV2l0aE9yaWdpbmFsQ2FzZURhdGEoXG4gICAgICAgICAgICBmb3JtLmdldCgnZGF0YScpIGFzIEZvcm1Hcm91cCwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKSkpLFxuICAgICAgZXZlbnQ6IGZvcm0udmFsdWUuZXZlbnRcbiAgICB9IGFzIENhc2VFdmVudERhdGE7XG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLmNsZWFyTm9uQ2FzZUZpZWxkcyhjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlbW92ZU51bGxMYWJlbHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVFbXB0eURvY3VtZW50cyhjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgLy8gUmVtb3ZlIGNvbGxlY3Rpb24gZmllbGRzIHRoYXQgaGF2ZSBcIm1pblwiIHZhbGlkYXRpb24gb2YgZ3JlYXRlciB0aGFuIHplcm8gc2V0IG9uIHRoZSBGaWVsZFR5cGUgYnV0IGFyZSBlbXB0eTtcbiAgICAvLyB0aGVzZSB3aWxsIGZhaWwgdmFsaWRhdGlvblxuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVFbXB0eUNvbGxlY3Rpb25zV2l0aE1pblZhbGlkYXRpb24oY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIC8vIEZvciBDYXNlIEZsYWcgc3VibWlzc2lvbnMgKHdoZXJlIGEgRmxhZ0xhdW5jaGVyIGZpZWxkIGlzIHByZXNlbnQgaW4gdGhlIGV2ZW50IHRyaWdnZXIpLCB0aGUgZmxhZyBkZXRhaWxzIGRhdGFcbiAgICAvLyBuZWVkcyBwb3B1bGF0aW5nIGZvciBlYWNoIEZsYWdzIGZpZWxkLCB0aGVuIHRoZSBGbGFnTGF1bmNoZXIgZmllbGQgbmVlZHMgcmVtb3ZpbmdcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVwb3B1bGF0ZUZvcm1EYXRhRnJvbUNhc2VGaWVsZFZhbHVlcyhjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgLy8gRGF0YSBwb3B1bGF0aW9uIHN0ZXAgcmVxdWlyZWQgZm9yIExpbmtlZCBDYXNlc1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5wb3B1bGF0ZUxpbmtlZENhc2VzRGV0YWlsc0Zyb21DYXNlRmllbGRzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICAvLyBSZW1vdmUgXCJMYXVuY2hlclwiLXR5cGUgZmllbGRzICh0aGVzZSBoYXZlIG5vIHZhbHVlcyBhbmQgYXJlIG5vdCBpbnRlbmRlZCB0byBiZSBwZXJzaXN0ZWQpXG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlbW92ZUNhc2VGaWVsZHNPZlR5cGUoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIFsnRmxhZ0xhdW5jaGVyJywgJ0NvbXBvbmVudExhdW5jaGVyJ10pO1xuXG4gICAgLy8gZGVsZXRlIGZpZWxkcyB3aGljaCBhcmUgbm90IHBhcnQgb2YgdGhlIGNhc2UgZXZlbnQgam91cm5leSB3aXphcmQgcGFnZXMgY2FzZSBmaWVsZHNcbiAgICB0aGlzLnZhbGlkUGFnZUxpc3RDYXNlRmllbGRzU2VydmljZS5kZWxldGVOb25WYWxpZGF0ZWRGaWVsZHModGhpcy52YWxpZFBhZ2VMaXN0LCBjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcywgZmFsc2UsIGZvcm0uY29udHJvbHNbJ2RhdGEnXS52YWx1ZSk7XG4gICAgY29uc3QgcGFnZUxpc3RDYXNlRmllbGRzID0gdGhpcy52YWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UudmFsaWRQYWdlTGlzdENhc2VGaWVsZHModGhpcy52YWxpZFBhZ2VMaXN0LCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIGZvcm0uY29udHJvbHNbJ2RhdGEnXS52YWx1ZSk7XG4gICAgLy8gUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc2UgZmllbGRzIHdoaWNoIGFyZSBoaWRkZW4sIG9ubHkgaWYgdGhlIHN1Ym1pc3Npb24gaXMgKm5vdCogZm9yIENhc2UgRmxhZ3NcbiAgICBpZiAoIXRoaXMuaXNDYXNlRmxhZ1N1Ym1pc3Npb24pIHtcbiAgICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVVbm5lY2Vzc2FyeUZpZWxkcyhjYXNlRXZlbnREYXRhLmRhdGEsIHBhZ2VMaXN0Q2FzZUZpZWxkcywgdHJ1ZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgY2FzZUV2ZW50RGF0YS5ldmVudF90b2tlbiA9IGV2ZW50VHJpZ2dlci5ldmVudF90b2tlbjtcbiAgICBjYXNlRXZlbnREYXRhLmlnbm9yZV93YXJuaW5nID0gdGhpcy5pZ25vcmVXYXJuaW5nO1xuICAgIGlmICh0aGlzLmNvbmZpcm1hdGlvbikge1xuICAgICAgY2FzZUV2ZW50RGF0YS5kYXRhID0ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhc2VFdmVudERhdGE7XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgbm9uLWFycmF5IHZhbHVlIG9iamVjdHMgd2l0aCBgbnVsbGAgZm9yIGFueSBDb21wbGV4LXR5cGUgZmllbGRzIHdob3NlIHZhbHVlIGlzIGVmZmVjdGl2ZWx5IGVtcHR5LCBpLmUuXG4gICAqIGFsbCBpdHMgc3ViLWZpZWxkcyBhbmQgZGVzY2VuZGFudHMgYXJlIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cbiAgICpcbiAgICogQHBhcmFtIGRhdGEgVGhlIG9iamVjdCB0cmVlIHJlcHJlc2VudGluZyBhbGwgdGhlIGZvcm0gZmllbGQgZGF0YVxuICAgKiBAcmV0dXJucyBUaGUgZm9ybSBmaWVsZCBkYXRhIG1vZGlmaWVkIGFjY29yZGluZ2x5XG4gICAqL1xuICBwcml2YXRlIHJlcGxhY2VFbXB0eUNvbXBsZXhGaWVsZFZhbHVlcyhkYXRhOiBvYmplY3QpOiBvYmplY3Qge1xuICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGFba2V5XSkgJiYgdHlwZW9mIGRhdGFba2V5XSA9PT0gJ29iamVjdCcgJiYgIUZpZWxkc1V0aWxzLmNvbnRhaW5zTm9uRW1wdHlWYWx1ZXMoZGF0YVtrZXldKSkge1xuICAgICAgICBkYXRhW2tleV0gPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICAvKipcbiAgICogVHJhdmVyc2UgKmFsbCogdmFsdWVzIG9mIGEge0BsaW5rIEZvcm1Hcm91cH0sIGluY2x1ZGluZyB0aG9zZSBmb3IgZGlzYWJsZWQgZmllbGRzIChpLmUuIGhpZGRlbiBvbmVzKSwgcmVwbGFjaW5nIHRoZVxuICAgKiB2YWx1ZSBvZiBhbnkgdGhhdCBhcmUgaGlkZGVuIEFORCBoYXZlIGByZXRhaW5faGlkZGVuX3ZhbHVlYCBzZXQgdG8gYHRydWVgIGluIHRoZSBjb3JyZXNwb25kaW5nIGBDYXNlRmllbGRgLCB3aXRoXG4gICAqIHRoZSAqb3JpZ2luYWwqIHZhbHVlIGhlbGQgaW4gdGhlIGBDYXNlRmllbGRgIG9iamVjdC5cbiAgICpcbiAgICogVGhpcyBpcyBhcyBwZXIgZGVzaWduIGluIEVVSS0zNjIyLCB3aGVyZSBhbnkgdXNlci1kcml2ZW4gdXBkYXRlcyB0byBoaWRkZW4gZmllbGRzIHdpdGggYHJldGFpbl9oaWRkZW5fdmFsdWVgID1cbiAgICogYHRydWVgIGFyZSBpZ25vcmVkICh0aHVzIHJldGFpbmluZyB0aGUgdmFsdWUgZGlzcGxheWVkIG9yaWdpbmFsbHkpLlxuICAgKlxuICAgKiAqIEZvciBDb21wbGV4IGZpZWxkIHR5cGVzLCB0aGUgcmVwbGFjZW1lbnQgYWJvdmUgaXMgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5IGZvciBhbGwgaGlkZGVuIHN1Yi1maWVsZHMgd2l0aFxuICAgKiBgcmV0YWluX2hpZGRlbl92YWx1ZWAgPSBgdHJ1ZWAuXG4gICAqXG4gICAqICogRm9yIENvbGxlY3Rpb24gZmllbGQgdHlwZXMsIGluY2x1ZGluZyBjb2xsZWN0aW9ucyBvZiBDb21wbGV4IGFuZCBEb2N1bWVudCBmaWVsZCB0eXBlcywgdGhlIHJlcGxhY2VtZW50IGlzXG4gICAqIHBlcmZvcm1lZCBmb3IgYWxsIGZpZWxkcyBpbiB0aGUgY29sbGVjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGZvcm1Hcm91cCBUaGUgYEZvcm1Hcm91cGAgaW5zdGFuY2Ugd2hvc2UgcmF3IHZhbHVlcyBhcmUgdG8gYmUgdHJhdmVyc2VkXG4gICAqIEBwYXJhbSBjYXNlRmllbGRzIFRoZSBhcnJheSBvZiB7QGxpbmsgQ2FzZUZpZWxkfSBkb21haW4gbW9kZWwgb2JqZWN0cyBjb3JyZXNwb25kaW5nIHRvIGZpZWxkcyBpbiBgZm9ybUdyb3VwYFxuICAgKiBAcGFyYW0gcGFyZW50RmllbGQgUmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgYENhc2VGaWVsZGAuIFVzZWQgZm9yIHJldHJpZXZpbmcgdGhlIHN1Yi1maWVsZCB2YWx1ZXMgb2YgYSBDb21wbGV4IGZpZWxkXG4gICAqIHRvIHBlcmZvcm0gcmVjdXJzaXZlIHJlcGxhY2VtZW50IC0gdGhlIHN1Yi1maWVsZCBgQ2FzZUZpZWxkYHMgdGhlbXNlbHZlcyBkbyAqbm90KiBjb250YWluIGFueSB2YWx1ZXNcbiAgICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggdGhlICpyYXcqIGZvcm0gdmFsdWUgZGF0YSAoYXMga2V5LXZhbHVlIHBhaXJzKSwgd2l0aCBhbnkgdmFsdWUgcmVwbGFjZW1lbnRzIGFzIG5lY2Vzc2FyeVxuICAgKi9cbiAgcHJpdmF0ZSByZXBsYWNlSGlkZGVuRm9ybVZhbHVlc1dpdGhPcmlnaW5hbENhc2VEYXRhKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjYXNlRmllbGRzOiBDYXNlRmllbGRbXSwgcGFyZW50RmllbGQ/OiBDYXNlRmllbGQpOiBvYmplY3Qge1xuICAgIC8vIEdldCB0aGUgcmF3IGZvcm0gdmFsdWUgZGF0YSwgd2hpY2ggaW5jbHVkZXMgdGhlIHZhbHVlcyBvZiBhbnkgZGlzYWJsZWQgY29udHJvbHMsIGFzIGtleS12YWx1ZSBwYWlyc1xuICAgIGNvbnN0IHJhd0Zvcm1WYWx1ZURhdGEgPSBmb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcblxuICAgIC8vIFBsYWNlIGFsbCBjYXNlIGZpZWxkcyBpbiBhIGxvb2t1cCBvYmplY3QsIHNvIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBieSBpZFxuICAgIGNvbnN0IGNhc2VGaWVsZHNMb29rdXAgPSB7fTtcbiAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gY2FzZUZpZWxkcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgY2FzZUZpZWxkc0xvb2t1cFtjYXNlRmllbGRzW2ldLmlkXSA9IGNhc2VGaWVsZHNbaV07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVwbGFjZSBhbnkgZm9ybSB2YWx1ZSB3aXRoIHRoZSBvcmlnaW5hbCwgd2hlcmUgaXRzIENhc2VGaWVsZCBpcyBoaWRkZW4gQU5EIGhhcyB0aGUgcmV0YWluX2hpZGRlbl92YWx1ZSBmbGFnIHNldFxuICAgICAqIHRvIHRydWUuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgQ2FzZUZpZWxkJ3MgYGhpZGRlbmAgYXR0cmlidXRlIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGVuIGNoZWNrIHRoaXMgYXR0cmlidXRlIGluIHRoZSBwYXJlbnQgQ2FzZUZpZWxkIChpZlxuICAgICAqIG9uZSBleGlzdHMpLiBUaGlzIGlzIG9jY3VycmluZyAoYW5kIGlzIHBvc3NpYmx5IGEgYnVnKSB3aGVuIGEgQ2FzZUZpZWxkIGlzIGEgc3ViLWZpZWxkIG9mIGEgQ29tcGxleCB0eXBlLCBvciBhblxuICAgICAqIGl0ZW0gaW4gYSBDb2xsZWN0aW9uIHR5cGUuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgZmllbGQgaXMgYSBDb21wbGV4IHR5cGUgd2l0aCByZXRhaW5faGlkZGVuX3ZhbHVlID0gdHJ1ZSwgcGVyZm9ybSBhIHJlY3Vyc2l2ZSByZXBsYWNlbWVudCBmb3IgYWxsIChoaWRkZW4pXG4gICAgICogc3ViLWZpZWxkcyB3aXRoIHJldGFpbl9oaWRkZW5fdmFsdWUgPSB0cnVlLCB1c2luZyB0aGVpciBvcmlnaW5hbCBDYXNlRmllbGQgdmFsdWVzIChmcm9tIHRoZSBgZm9ybWF0dGVkX3ZhbHVlYFxuICAgICAqIGF0dHJpYnV0ZSkuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgZmllbGQgaXMgYSBDb2xsZWN0aW9uIHR5cGUgd2l0aCByZXRhaW5faGlkZGVuX3ZhbHVlID0gdHJ1ZSwgdGhlIGVudGlyZSBjb2xsZWN0aW9uIGlzIHJlcGxhY2VkIHdpdGggdGhlXG4gICAgICogb3JpZ2luYWwgZnJvbSBgZm9ybWF0dGVkX3ZhbHVlYC4gVGhpcyBhcHBsaWVzIHRvICphbGwqIHR5cGVzIG9mIENvbGxlY3Rpb25zLlxuICAgICAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgT2JqZWN0LmtleXMocmF3Rm9ybVZhbHVlRGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICBjb25zdCBjYXNlRmllbGQ6IENhc2VGaWVsZCA9IGNhc2VGaWVsZHNMb29rdXBba2V5XTtcbiAgICAgIC8vIElmIGNhc2VGaWVsZC5oaWRkZW4gaXMgTk9UIHRydXRoeSBhbmQgYWxzbyBOT1QgZXF1YWwgdG8gZmFsc2UsIHRoZW4gaXQgbXVzdCBiZSBudWxsL3VuZGVmaW5lZCAocmVtZW1iZXIgdGhhdFxuICAgICAgLy8gYm90aCBudWxsIGFuZCB1bmRlZmluZWQgYXJlIGVxdWFsIHRvICpuZWl0aGVyIGZhbHNlIG5vciB0cnVlKilcbiAgICAgIGlmIChjYXNlRmllbGQgJiYgY2FzZUZpZWxkLnJldGFpbl9oaWRkZW5fdmFsdWUgJiZcbiAgICAgICAgKGNhc2VGaWVsZC5oaWRkZW4gfHwgKGNhc2VGaWVsZC5oaWRkZW4gIT09IGZhbHNlICYmIHBhcmVudEZpZWxkICYmIHBhcmVudEZpZWxkLmhpZGRlbikpKSB7XG4gICAgICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCcpIHtcbiAgICAgICAgICAvLyBOb3RlOiBEZWxpYmVyYXRlIHVzZSBvZiBlcXVhbGl0eSAoPT0pIGFuZCBub24tZXF1YWxpdHkgKCE9KSBvcGVyYXRvcnMgZm9yIG51bGwgY2hlY2tzIHRocm91Z2hvdXQsIHRvXG4gICAgICAgICAgLy8gaGFuZGxlIGJvdGggbnVsbCBhbmQgdW5kZWZpbmVkIHZhbHVlc1xuICAgICAgICAgIGlmIChjYXNlRmllbGQudmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQ2FsbCB0aGlzIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5IHRvIHJlcGxhY2UgdGhlIENvbXBsZXggZmllbGQncyBzdWItZmllbGRzIGFzIG5lY2Vzc2FyeSwgcGFzc2luZyB0aGVcbiAgICAgICAgICAgIC8vIENhc2VGaWVsZCBpdHNlbGYgKHRoZSBzdWItZmllbGRzIGRvIG5vdCBjb250YWluIGFueSB2YWx1ZXMsIHNvIHRoZXNlIG5lZWQgdG8gYmUgb2J0YWluZWQgZnJvbSB0aGVcbiAgICAgICAgICAgIC8vIHBhcmVudClcbiAgICAgICAgICAgIC8vIFVwZGF0ZSByYXdGb3JtVmFsdWVEYXRhIGZvciB0aGlzIGZpZWxkXG4gICAgICAgICAgICAvLyBjcmVhdGluZyBmb3JtIGdyb3VwIGFuZCBhZGRpbmcgY29udHJvbCBpbnRvIGl0IGluIGNhc2UgY2FzZUZpZWxkIGlzIG9mIGNvbXBsZXh0IHR5cGUgYW5kIGFuZCBwYXJ0IG9mIGZvcm1Hcm91cFxuICAgICAgICAgICAgY29uc3QgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgICBpZiAoZm9ybUdyb3VwLmNvbnRyb2xzW2tleV0udmFsdWUpIHtcbiAgICAgICAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzW2tleV0udmFsdWUpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBmb3JtLmFkZENvbnRyb2woaXRlbSwgbmV3IEZvcm1Db250cm9sKGZvcm1Hcm91cC5jb250cm9sc1trZXldLnZhbHVlW2l0ZW1dKSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmF3Rm9ybVZhbHVlRGF0YVtrZXldID0gdGhpcy5yZXBsYWNlSGlkZGVuRm9ybVZhbHVlc1dpdGhPcmlnaW5hbENhc2VEYXRhKFxuICAgICAgICAgICAgICBmb3JtLCBjYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcywgY2FzZUZpZWxkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gRGVmYXVsdCBjYXNlIGFsc28gaGFuZGxlcyBjb2xsZWN0aW9ucyBvZiAqYWxsKiB0eXBlczsgdGhlIGVudGlyZSBjb2xsZWN0aW9uIGluIHJhd0Zvcm1WYWx1ZURhdGEgd2lsbCBiZVxuICAgICAgICAgIC8vIHJlcGxhY2VkIHdpdGggdGhlIG9yaWdpbmFsIGZyb20gZm9ybWF0dGVkX3ZhbHVlXG4gICAgICAgICAgLy8gVXNlIHRoZSBDYXNlRmllbGQncyBleGlzdGluZyAqZm9ybWF0dGVkX3ZhbHVlKiBmcm9tIHRoZSBwYXJlbnQsIGlmIGF2YWlsYWJsZS4gKFRoaXMgaXMgbmVjZXNzYXJ5IGZvclxuICAgICAgICAgIC8vIENvbXBsZXggZmllbGRzLCB3aG9zZSBzdWItZmllbGRzIGRvIG5vdCBob2xkIGFueSB2YWx1ZXMgaW4gdGhlIG1vZGVsLikgT3RoZXJ3aXNlLCB1c2UgZm9ybWF0dGVkX3ZhbHVlXG4gICAgICAgICAgLy8gZnJvbSB0aGUgQ2FzZUZpZWxkIGl0c2VsZi5cbiAgICAgICAgICBpZiAocGFyZW50RmllbGQgJiYgcGFyZW50RmllbGQuZm9ybWF0dGVkX3ZhbHVlKSB7XG4gICAgICAgICAgICByYXdGb3JtVmFsdWVEYXRhW2tleV0gPSBwYXJlbnRGaWVsZC5mb3JtYXR0ZWRfdmFsdWVbY2FzZUZpZWxkLmlkXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCEoY2FzZUZpZWxkLmhpZGRlbiAmJiBjYXNlRmllbGQucmV0YWluX2hpZGRlbl92YWx1ZSkpIHtcbiAgICAgICAgICAgICAgcmF3Rm9ybVZhbHVlRGF0YVtrZXldID0gY2FzZUZpZWxkLmZvcm1hdHRlZF92YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByYXdGb3JtVmFsdWVEYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBjYXNlU3VibWl0KHsgZm9ybSwgY2FzZUV2ZW50RGF0YSwgc3VibWl0IH06IENhc2VFZGl0Q2FzZVN1Ym1pdCk6IHZvaWQge1xuICAgIGNvbnN0IGxvYWRpbmdTcGlubmVyVG9rZW4gPSB0aGlzLmxvYWRpbmdTZXJ2aWNlLnJlZ2lzdGVyKCk7XG4gICAgLy8ga2VlcCB0aGUgaW5pdGlhbCBldmVudCByZXNwb25zZSB0byBmaW5hbGlzZSBwcm9jZXNzIGFmdGVyIHRhc2sgY29tcGxldGlvblxuICAgIGxldCBldmVudFJlc3BvbnNlOiBvYmplY3Q7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndGFza0NvbXBsZXRpb25FcnJvcicsICdmYWxzZScpO1xuICAgIHN1Ym1pdChjYXNlRXZlbnREYXRhKS5waXBlKHN3aXRjaE1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgIGV2ZW50UmVzcG9uc2UgPSByZXNwb25zZTtcbiAgICAgIHJldHVybiB0aGlzLnBvc3RDb21wbGV0ZVRhc2tJZlJlcXVpcmVkKCk7XG4gICAgfSksZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnVucmVnaXN0ZXIobG9hZGluZ1NwaW5uZXJUb2tlbik7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbmlzaEV2ZW50Q29tcGxldGlvbkxvZ2ljKGV2ZW50UmVzcG9uc2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgaWYgKCFldmVudFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBldmVudCBzdWJtaXNzaW9uIGVycm9yXG4gICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdC5uZXh0KGVycm9yKTtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5lcnJvci5kZXRhaWxzKSB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUVycm9yU2VydmljZVxuICAgICAgICAgICAgICAgIC5tYXBGaWVsZEVycm9ycyh0aGlzLmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10gYXMgRm9ybUdyb3VwLCAndmFsaWRhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndGFza0NvbXBsZXRpb25FcnJvcicsICd0cnVlJyk7XG4gICAgICAgICAgICAvLyB0YXNrIGFzc2lnbm1lbnQvY29tcGxldGlvbiBlcnJvciAtIGhhbmRsZWQgd2l0aGluIHdvcmthbGxvY2F0aW9uIHNlcnZpY2VcbiAgICAgICAgICAgIC8vIGNvdWxkIHNldCB0YXNrIHRvIGJlIGRlbGV0ZWQgKG9yIGNvbXBsZXRlZCBsYXRlcik/XG4gICAgICAgICAgICB0aGlzLmZpbmlzaEV2ZW50Q29tcGxldGlvbkxvZ2ljKGV2ZW50UmVzcG9uc2UpO1xuICAgICAgICAgICAgLy8gYmVsb3cgYWxsb3dzIGVycm9yIHRvIGJlIHNob3duIG9uIG5hdmlnYXRpb24gdG8gY29uZmlybWF0aW9uIHBhZ2VcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnNldFByZXNlcnZlQWxlcnRzKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3Ioe3BocmFzZTogQ29uc3RhbnRzLlRBU0tfQ09NUExFVElPTl9FUlJPUn0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcG9zdENvbXBsZXRlVGFza0lmUmVxdWlyZWQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB0YXNrU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndGFza1RvQ29tcGxldGUnKTtcbiAgICBjb25zdCBhc3NpZ25OZWVkZWQgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCdhc3NpZ25OZWVkZWQnKSA9PT0gJ3RydWUnO1xuICAgIGlmICh0YXNrU3RyICYmIGFzc2lnbk5lZWRlZCkge1xuICAgICAgY29uc3QgdGFzazogVGFzayA9IEpTT04ucGFyc2UodGFza1N0cik7XG4gICAgICByZXR1cm4gdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2UuYXNzaWduQW5kQ29tcGxldGVUYXNrKHRhc2suaWQpO1xuICAgIH0gZWxzZSBpZiAodGFza1N0cikge1xuICAgICAgY29uc3QgdGFzazogVGFzayA9IEpTT04ucGFyc2UodGFza1N0cik7XG4gICAgICByZXR1cm4gdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2UuY29tcGxldGVUYXNrKHRhc2suaWQpO1xuICAgIH1cbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmlzaEV2ZW50Q29tcGxldGlvbkxvZ2ljKGV2ZW50UmVzcG9uc2U6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY2FzZU5vdGlmaWVyLmNhY2hlZENhc2VWaWV3ID0gbnVsbDtcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgIGNvbnN0IGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uID0gdGhpcy5idWlsZENvbmZpcm1hdGlvbihldmVudFJlc3BvbnNlKTtcbiAgICBpZiAoY29uZmlybWF0aW9uICYmIChjb25maXJtYXRpb24uZ2V0SGVhZGVyKCkgfHwgY29uZmlybWF0aW9uLmdldEJvZHkoKSkpIHtcbiAgICAgIHRoaXMuY29uZmlybShjb25maXJtYXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXRTdWJtaXR0ZWQoZXZlbnRSZXNwb25zZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbmZpcm1hdGlvbihyZXNwb25zZTogb2JqZWN0KTogQ29uZmlybWF0aW9uIHtcbiAgICBpZiAocmVzcG9uc2VbJ2FmdGVyX3N1Ym1pdF9jYWxsYmFja19yZXNwb25zZSddKSB7XG4gICAgICByZXR1cm4gbmV3IENvbmZpcm1hdGlvbihcbiAgICAgICAgcmVzcG9uc2VbJ2lkJ10sXG4gICAgICAgIHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSxcbiAgICAgICAgcmVzcG9uc2VbJ2FmdGVyX3N1Ym1pdF9jYWxsYmFja19yZXNwb25zZSddWydjb25maXJtYXRpb25faGVhZGVyJ10sXG4gICAgICAgIHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXVsnY29uZmlybWF0aW9uX2JvZHknXVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uRXZlbnRDYW5CZUNvbXBsZXRlZCh7IGV2ZW50VHJpZ2dlciwgZXZlbnRDYW5CZUNvbXBsZXRlZCwgY2FzZURldGFpbHMsIGZvcm0sIHN1Ym1pdCB9OiBDYXNlRWRpdG9uRXZlbnRDYW5CZUNvbXBsZXRlZCk6IHZvaWQge1xuICAgIGlmIChldmVudENhbkJlQ29tcGxldGVkKSB7XG4gICAgICAvLyBTdWJtaXRcbiAgICAgIGNvbnN0IGNhc2VFdmVudERhdGEgPSB0aGlzLmdlbmVyYXRlQ2FzZUV2ZW50RGF0YSh7IGV2ZW50VHJpZ2dlciwgZm9ybSB9KTtcbiAgICAgIHRoaXMuY2FzZVN1Ym1pdCh7IGZvcm0sIGNhc2VFdmVudERhdGEsIHN1Ym1pdCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTmF2aWdhdGUgdG8gdGFza3MgdGFiIG9uIGNhc2UgZGV0YWlscyBwYWdlXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHt0aGlzLmdldENhc2VJZChjYXNlRGV0YWlscyl9L3Rhc2tzYF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0U3RhdHVzKHJlc3BvbnNlOiBvYmplY3QpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmhhc0NhbGxiYWNrRmFpbGVkKHJlc3BvbnNlKSA/IHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSA6IHJlc3BvbnNlWydkZWxldGVfZHJhZnRfcmVzcG9uc2Vfc3RhdHVzJ107XG4gIH1cblxuICBwcml2YXRlIGhhc0NhbGxiYWNrRmFpbGVkKHJlc3BvbnNlOiBvYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVzcG9uc2VbJ2NhbGxiYWNrX3Jlc3BvbnNlX3N0YXR1cyddICE9PSAnQ0FMTEJBQ0tfQ09NUExFVEVEJztcbiAgfVxufVxuIiwiPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuIl19