@hmcts/ccd-case-ui-toolkit 7.0.35-angular-upgrade → 7.0.35-rc1

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 (1170) 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 +779 -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 +58 -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 +681 -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 +342 -0
  132. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +154 -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 +75 -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 +408 -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/condition-parser.service.mjs +200 -0
  275. package/esm2020/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +19 -0
  276. package/esm2020/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +47 -0
  277. package/esm2020/lib/shared/directives/focus-element/focus-element.directive.mjs +36 -0
  278. package/esm2020/lib/shared/directives/focus-element/focus-element.module.mjs +21 -0
  279. package/esm2020/lib/shared/directives/substitutor/label-substitutor.directive.mjs +82 -0
  280. package/esm2020/lib/shared/directives/substitutor/label-substitutor.module.mjs +30 -0
  281. package/esm2020/lib/shared/directives/substitutor/services/placeholder.service.mjs +200 -0
  282. package/esm2020/lib/shared/domain/activity/activity.model.mjs +10 -0
  283. package/esm2020/lib/shared/domain/addresses/address.model.mjs +13 -0
  284. package/esm2020/lib/shared/domain/alert/alert.model.mjs +3 -0
  285. package/esm2020/lib/shared/domain/case-details.model.mjs +4 -0
  286. package/esm2020/lib/shared/domain/case-event-data.model.mjs +4 -0
  287. package/esm2020/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +3 -0
  288. package/esm2020/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +4 -0
  289. package/esm2020/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +7 -0
  290. package/esm2020/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +117 -0
  291. package/esm2020/lib/shared/domain/case-flag/flag-type.model.mjs +28 -0
  292. package/esm2020/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +10 -0
  293. package/esm2020/lib/shared/domain/case-view/case-event-trigger.model.mjs +23 -0
  294. package/esm2020/lib/shared/domain/case-view/case-print-document.model.mjs +3 -0
  295. package/esm2020/lib/shared/domain/case-view/case-tab.model.mjs +12 -0
  296. package/esm2020/lib/shared/domain/case-view/case-view-event.model.mjs +4 -0
  297. package/esm2020/lib/shared/domain/case-view/case-view-trigger.model.mjs +3 -0
  298. package/esm2020/lib/shared/domain/case-view/case-view.model.mjs +17 -0
  299. package/esm2020/lib/shared/domain/definition/access-control-list.model.mjs +3 -0
  300. package/esm2020/lib/shared/domain/definition/banner.model.mjs +3 -0
  301. package/esm2020/lib/shared/domain/definition/case-event.model.mjs +3 -0
  302. package/esm2020/lib/shared/domain/definition/case-field.model.mjs +198 -0
  303. package/esm2020/lib/shared/domain/definition/case-state.model.mjs +3 -0
  304. package/esm2020/lib/shared/domain/definition/case-type-lite.model.mjs +5 -0
  305. package/esm2020/lib/shared/domain/definition/case-type.model.mjs +12 -0
  306. package/esm2020/lib/shared/domain/definition/event-case-field.model.mjs +4 -0
  307. package/esm2020/lib/shared/domain/definition/field-type.model.mjs +22 -0
  308. package/esm2020/lib/shared/domain/definition/fixed-list-item.model.mjs +3 -0
  309. package/esm2020/lib/shared/domain/definition/jurisdiction.model.mjs +3 -0
  310. package/esm2020/lib/shared/domain/document/document-data.model.mjs +14 -0
  311. package/esm2020/lib/shared/domain/draft.model.mjs +11 -0
  312. package/esm2020/lib/shared/domain/http/http-error.model.mjs +40 -0
  313. package/esm2020/lib/shared/domain/organisation/organisation-converter.mjs +42 -0
  314. package/esm2020/lib/shared/domain/pagination-metadata.model.mjs +3 -0
  315. package/esm2020/lib/shared/domain/profile/profile.model.mjs +29 -0
  316. package/esm2020/lib/shared/domain/search/field.model.mjs +11 -0
  317. package/esm2020/lib/shared/domain/search/search-result-view-column.model.mjs +3 -0
  318. package/esm2020/lib/shared/domain/search/search-result-view-item.model.mjs +12 -0
  319. package/esm2020/lib/shared/domain/search/search-result-view.model.mjs +23 -0
  320. package/esm2020/lib/shared/domain/search/sorting/sort-parameters.mjs +7 -0
  321. package/esm2020/lib/shared/domain/workbasket/workbasket-input.model.mjs +5 -0
  322. package/esm2020/lib/shared/fixture/case-field-builder.mjs +69 -0
  323. package/esm2020/lib/shared/pipes/case-reference/case-reference.pipe.mjs +33 -0
  324. package/esm2020/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +29 -0
  325. package/esm2020/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +32 -0
  326. package/esm2020/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +29 -0
  327. package/esm2020/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +39 -0
  328. package/esm2020/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +173 -0
  329. package/esm2020/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +31 -0
  330. package/esm2020/lib/shared/pipes/complex/fields-filter.pipe.mjs +105 -0
  331. package/esm2020/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +16 -0
  332. package/esm2020/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +27 -0
  333. package/esm2020/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +27 -0
  334. package/esm2020/lib/shared/pipes/pipes.module.mjs +64 -0
  335. package/esm2020/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +24 -0
  336. package/esm2020/lib/shared/services/activity/activity.polling.service.mjs +114 -0
  337. package/esm2020/lib/shared/services/activity/activity.service.mjs +82 -0
  338. package/esm2020/lib/shared/services/addresses/address-parser.mjs +76 -0
  339. package/esm2020/lib/shared/services/addresses/addresses.service.mjs +63 -0
  340. package/esm2020/lib/shared/services/alert/alert.service.mjs +142 -0
  341. package/esm2020/lib/shared/services/auth/auth.service.mjs +33 -0
  342. package/esm2020/lib/shared/services/banners/banners.service.mjs +33 -0
  343. package/esm2020/lib/shared/services/browser/browser.service.mjs +24 -0
  344. package/esm2020/lib/shared/services/case-fields/case-field.service.mjs +34 -0
  345. package/esm2020/lib/shared/services/case-fields/format-translator.service.mjs +242 -0
  346. package/esm2020/lib/shared/services/case-file-view/case-file-view.service.mjs +46 -0
  347. package/esm2020/lib/shared/services/case-flag/case-flag-refdata.service.mjs +102 -0
  348. package/esm2020/lib/shared/services/common-data-service/common-data-service.mjs +28 -0
  349. package/esm2020/lib/shared/services/definitions/definitions.module.mjs +19 -0
  350. package/esm2020/lib/shared/services/definitions/definitions.service.mjs +30 -0
  351. package/esm2020/lib/shared/services/document-management/document-management.service.mjs +112 -0
  352. package/esm2020/lib/shared/services/draft/draft.service.mjs +86 -0
  353. package/esm2020/lib/shared/services/error/error-notifier.service.mjs +18 -0
  354. package/esm2020/lib/shared/services/eventStatusService/event-status.service.mjs +21 -0
  355. package/esm2020/lib/shared/services/fields/fields.purger.mjs +304 -0
  356. package/esm2020/lib/shared/services/fields/fields.utils.mjs +615 -0
  357. package/esm2020/lib/shared/services/form/field-type-sanitiser.mjs +91 -0
  358. package/esm2020/lib/shared/services/form/form-error.service.mjs +46 -0
  359. package/esm2020/lib/shared/services/form/form-validators.service.mjs +56 -0
  360. package/esm2020/lib/shared/services/form/form-value.service.mjs +551 -0
  361. package/esm2020/lib/shared/services/http/http-error.service.mjs +65 -0
  362. package/esm2020/lib/shared/services/http/http.service.mjs +93 -0
  363. package/esm2020/lib/shared/services/jurisdiction/jurisdiction.service.mjs +34 -0
  364. package/esm2020/lib/shared/services/loading/loading.module.mjs +22 -0
  365. package/esm2020/lib/shared/services/loading/loading.service.mjs +37 -0
  366. package/esm2020/lib/shared/services/navigation/navigation-notifier.service.mjs +18 -0
  367. package/esm2020/lib/shared/services/order/order.service.mjs +39 -0
  368. package/esm2020/lib/shared/services/organisation/organisation.service.mjs +54 -0
  369. package/esm2020/lib/shared/services/profile/profile.notifier.mjs +19 -0
  370. package/esm2020/lib/shared/services/profile/profile.service.mjs +34 -0
  371. package/esm2020/lib/shared/services/request/request.options.builder.mjs +61 -0
  372. package/esm2020/lib/shared/services/router/router-helper.service.mjs +20 -0
  373. package/esm2020/lib/shared/services/search/search.service.mjs +89 -0
  374. package/esm2020/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +71 -0
  375. package/esm2020/lib/shared/services/session/session-storage.service.mjs +34 -0
  376. package/esm2020/lib/shared/services/utils/retry/retry.service.mjs +86 -0
  377. package/esm2020/lib/shared/services/window/window.service.mjs +40 -0
  378. package/esm2020/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +53 -0
  379. package/esm2020/lib/shared/test/test-route-snapshot-builder.mjs +40 -0
  380. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +38606 -0
  381. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -0
  382. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +35648 -0
  383. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -0
  384. package/lib/components/banners/alert/alert.component.d.ts +1 -1
  385. package/lib/components/banners/notification-banner/notification-banner.component.d.ts +1 -1
  386. package/lib/components/footer/footer.component.d.ts +1 -1
  387. package/lib/components/form/date-input/date-input.component.d.ts +1 -1
  388. package/lib/components/header/header-bar/header-bar.component.d.ts +1 -1
  389. package/lib/components/header/navigation/navigation-item.component.d.ts +1 -1
  390. package/lib/components/header/navigation/navigation.component.d.ts +1 -1
  391. package/lib/components/header/phase/phase.component.d.ts +1 -1
  392. package/lib/components/tabs/tab.component.d.ts +1 -1
  393. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts +1 -1
  394. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
  395. package/lib/shared/components/activity/activity-banner/activity-banner.component.d.ts +1 -1
  396. package/lib/shared/components/activity/activity-icon/activity-icon.component.d.ts +1 -1
  397. package/lib/shared/components/activity/activity.component.d.ts +1 -1
  398. package/lib/shared/components/case-editor/case-create/case-create.component.d.ts +1 -1
  399. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +1 -1
  400. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts +1 -1
  401. package/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.d.ts +1 -1
  402. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  403. package/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.d.ts +1 -1
  404. package/lib/shared/components/case-editor/case-progress/case-progress.component.d.ts +1 -1
  405. package/lib/shared/components/case-header/case-header.component.d.ts +1 -1
  406. package/lib/shared/components/case-history/case-history.component.d.ts +1 -1
  407. package/lib/shared/components/case-list/case-list.component.d.ts +1 -1
  408. package/lib/shared/components/case-list-filters/case-list-filters.component.d.ts +1 -1
  409. package/lib/shared/components/case-timeline/case-timeline.component.d.ts +1 -1
  410. package/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts +1 -1
  411. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +1 -1
  412. package/lib/shared/components/case-viewer/case-view/case-view.component.d.ts +1 -1
  413. package/lib/shared/components/case-viewer/case-viewer.component.d.ts +1 -1
  414. package/lib/shared/components/create-case-filters/create-case-filters.component.d.ts +1 -1
  415. package/lib/shared/components/error/callback-errors.component.d.ts +1 -1
  416. package/lib/shared/components/error-message/error-message.component.d.ts +1 -1
  417. package/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.d.ts +1 -1
  418. package/lib/shared/components/event-start/components/task-conflict/task-conflict.component.d.ts +1 -1
  419. package/lib/shared/components/event-trigger/event-trigger.component.d.ts +1 -1
  420. package/lib/shared/components/loading-spinner/loading-spinner.component.d.ts +1 -1
  421. package/lib/shared/components/pagination/pagination.component.d.ts +1 -1
  422. package/lib/shared/components/palette/address/write-address-field.component.d.ts +2 -1
  423. package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -1
  424. package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts +1 -1
  425. package/lib/shared/components/palette/base-field/abstract-field-write.component.d.ts +1 -1
  426. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts +2 -2
  427. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
  428. package/lib/shared/components/palette/base-field/field-read-label.component.d.ts +1 -1
  429. package/lib/shared/components/palette/base-field/field-read.component.d.ts +1 -1
  430. package/lib/shared/components/palette/base-field/field-write.component.d.ts +1 -1
  431. package/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.d.ts +1 -1
  432. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts +1 -1
  433. package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts +1 -1
  434. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +1 -1
  435. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +1 -1
  436. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +1 -1
  437. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +1 -1
  438. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +1 -1
  439. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +1 -1
  440. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +1 -1
  441. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +1 -1
  442. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +1 -1
  443. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +1 -1
  444. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +1 -0
  445. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  446. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +3 -2
  447. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  448. package/lib/shared/components/palette/complex/read-complex-field-raw.component.d.ts +1 -1
  449. package/lib/shared/components/palette/complex/read-complex-field-table.component.d.ts +1 -1
  450. package/lib/shared/components/palette/complex/read-complex-field.component.d.ts +1 -1
  451. package/lib/shared/components/palette/complex/write-complex-field.component.d.ts +2 -1
  452. package/lib/shared/components/palette/complex/write-complex-field.component.d.ts.map +1 -1
  453. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts +1 -1
  454. package/lib/shared/components/palette/history/event-log/event-log-details.component.d.ts +1 -1
  455. package/lib/shared/components/palette/history/event-log/event-log-table.component.d.ts +1 -1
  456. package/lib/shared/components/palette/history/event-log/event-log.component.d.ts +1 -1
  457. package/lib/shared/components/palette/label/label-field.component.d.ts +1 -1
  458. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts +1 -1
  459. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts +1 -1
  460. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +2 -2
  461. package/lib/shared/components/palette/markdown/markdown.component.d.ts +1 -1
  462. package/lib/shared/components/palette/money-gbp/money-gbp-input.component.d.ts +1 -1
  463. package/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.d.ts +1 -1
  464. package/lib/shared/components/palette/order-summary/read-order-summary-row.component.d.ts +1 -1
  465. package/lib/shared/components/palette/organisation/read-organisation-field-raw.component.d.ts +1 -1
  466. package/lib/shared/components/palette/organisation/read-organisation-field-table.component.d.ts +1 -1
  467. package/lib/shared/components/palette/organisation/read-organisation-field.component.d.ts +1 -1
  468. package/lib/shared/components/palette/organisation/write-organisation-complex-field.component.d.ts +1 -1
  469. package/lib/shared/components/palette/palette.module.d.ts +5 -4
  470. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  471. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts +1 -1
  472. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +1 -1
  473. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts +1 -1
  474. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +1 -1
  475. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +1 -1
  476. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts +1 -1
  477. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +1 -1
  478. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +1 -1
  479. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts +1 -1
  480. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +1 -1
  481. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +1 -1
  482. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts +1 -1
  483. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts.map +1 -1
  484. package/lib/shared/components/search-filters/search-filters-wrapper.component.d.ts +1 -1
  485. package/lib/shared/components/search-filters/search-filters.component.d.ts +1 -1
  486. package/lib/shared/components/search-result/search-result.component.d.ts +1 -1
  487. package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts +1 -1
  488. package/lib/shared/directives/conditional-show/conditional-show-form.directive.d.ts +1 -1
  489. package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts +1 -1
  490. package/lib/shared/domain/alert/alert-level.model.d.ts +1 -1
  491. package/lib/shared/domain/alert/alert-level.model.d.ts.map +1 -1
  492. package/lib/shared/domain/case-view/access-types.model.d.ts +1 -1
  493. package/lib/shared/domain/case-view/access-types.model.d.ts.map +1 -1
  494. package/lib/shared/domain/case-view/role-request.model.d.ts +4 -4
  495. package/lib/shared/domain/case-view/role-request.model.d.ts.map +1 -1
  496. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  497. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  498. package/lib/shared/domain/predicate.model.d.ts +1 -1
  499. package/lib/shared/domain/predicate.model.d.ts.map +1 -1
  500. package/lib/shared/pipes/complex/fields-filter.pipe.d.ts.map +1 -1
  501. package/lib/shared/services/order/order.service.d.ts +2 -2
  502. package/lib/shared/services/order/order.service.d.ts.map +1 -1
  503. package/lib/shared/services/request/request.options.builder.d.ts +1 -1
  504. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  505. package/package.json +12 -6
  506. package/esm2022/lib/app.config.mjs +0 -93
  507. package/esm2022/lib/components/banners/alert/alert-icon-class.pipe.mjs +0 -25
  508. package/esm2022/lib/components/banners/alert/alert.component.mjs +0 -92
  509. package/esm2022/lib/components/banners/alert/alert.module.mjs +0 -32
  510. package/esm2022/lib/components/banners/banners.module.mjs +0 -32
  511. package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +0 -116
  512. package/esm2022/lib/components/banners/notification-banner/notification-banner.module.mjs +0 -19
  513. package/esm2022/lib/components/body/body.component.mjs +0 -21
  514. package/esm2022/lib/components/body/body.module.mjs +0 -20
  515. package/esm2022/lib/components/footer/footer.component.mjs +0 -109
  516. package/esm2022/lib/components/footer/footers.module.mjs +0 -25
  517. package/esm2022/lib/components/form/date-input/date-input.component.mjs +0 -341
  518. package/esm2022/lib/components/form/form.module.mjs +0 -29
  519. package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +0 -98
  520. package/esm2022/lib/components/header/headers.module.mjs +0 -25
  521. package/esm2022/lib/components/header/navigation/navigation-item.component.mjs +0 -45
  522. package/esm2022/lib/components/header/navigation/navigation.component.mjs +0 -26
  523. package/esm2022/lib/components/header/phase/phase.component.mjs +0 -49
  524. package/esm2022/lib/components/tabs/tab.component.mjs +0 -32
  525. package/esm2022/lib/components/tabs/tabs.component.mjs +0 -83
  526. package/esm2022/lib/components/tabs/tabs.module.mjs +0 -38
  527. package/esm2022/lib/shared/commons/address-validation-constants.mjs +0 -13
  528. package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +0 -19
  529. package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.service.mjs +0 -46
  530. package/esm2022/lib/shared/commons/constants.mjs +0 -13
  531. package/esm2022/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +0 -43
  532. package/esm2022/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +0 -36
  533. package/esm2022/lib/shared/components/activity/activity.component.mjs +0 -156
  534. package/esm2022/lib/shared/components/activity/activity.module.mjs +0 -55
  535. package/esm2022/lib/shared/components/case-editor/case-access-utils/index.mjs +0 -105
  536. package/esm2022/lib/shared/components/case-editor/case-create/case-create.component.mjs +0 -96
  537. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +0 -464
  538. package/esm2022/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +0 -130
  539. package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +0 -140
  540. package/esm2022/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +0 -70
  541. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +0 -806
  542. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +0 -555
  543. package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +0 -213
  544. package/esm2022/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +0 -97
  545. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +0 -83
  546. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +0 -167
  547. package/esm2022/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +0 -85
  548. package/esm2022/lib/shared/components/case-editor/domain/confirmation.model.mjs +0 -25
  549. package/esm2022/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.mjs +0 -9
  550. package/esm2022/lib/shared/components/case-editor/domain/wizard-page-field.model.mjs +0 -7
  551. package/esm2022/lib/shared/components/case-editor/domain/wizard-page.model.mjs +0 -33
  552. package/esm2022/lib/shared/components/case-editor/domain/wizard.model.mjs +0 -55
  553. package/esm2022/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +0 -98
  554. package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +0 -19
  555. package/esm2022/lib/shared/components/case-editor/services/case-worker.service.mjs +0 -35
  556. package/esm2022/lib/shared/components/case-editor/services/case.notifier.mjs +0 -53
  557. package/esm2022/lib/shared/components/case-editor/services/cases.service.mjs +0 -302
  558. package/esm2022/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +0 -42
  559. package/esm2022/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +0 -153
  560. package/esm2022/lib/shared/components/case-editor/services/event-trigger.service.mjs +0 -18
  561. package/esm2022/lib/shared/components/case-editor/services/judicial-worker.service.mjs +0 -35
  562. package/esm2022/lib/shared/components/case-editor/services/page-validation.service.mjs +0 -59
  563. package/esm2022/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +0 -40
  564. package/esm2022/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +0 -117
  565. package/esm2022/lib/shared/components/case-editor/services/work-allocation.service.mjs +0 -215
  566. package/esm2022/lib/shared/components/case-header/case-header.component.mjs +0 -64
  567. package/esm2022/lib/shared/components/case-header/case-header.module.mjs +0 -33
  568. package/esm2022/lib/shared/components/case-history/case-history.component.mjs +0 -252
  569. package/esm2022/lib/shared/components/case-history/case-history.module.mjs +0 -64
  570. package/esm2022/lib/shared/components/case-history/domain/case-history.model.mjs +0 -37
  571. package/esm2022/lib/shared/components/case-history/services/case-history.service.mjs +0 -43
  572. package/esm2022/lib/shared/components/case-list/case-list.component.mjs +0 -368
  573. package/esm2022/lib/shared/components/case-list/case-list.module.mjs +0 -47
  574. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.component.mjs +0 -57
  575. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.module.mjs +0 -64
  576. package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +0 -115
  577. package/esm2022/lib/shared/components/case-timeline/case-timeline.module.mjs +0 -52
  578. package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +0 -246
  579. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +0 -311
  580. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +0 -75
  581. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +0 -156
  582. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +0 -707
  583. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +0 -61
  584. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +0 -256
  585. package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +0 -211
  586. package/esm2022/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +0 -50
  587. package/esm2022/lib/shared/components/case-viewer/case-view/case-view.component.mjs +0 -107
  588. package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +0 -136
  589. package/esm2022/lib/shared/components/case-viewer/case-viewer.module.mjs +0 -191
  590. package/esm2022/lib/shared/components/case-viewer/printer/case-printer.component.mjs +0 -117
  591. package/esm2022/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +0 -61
  592. package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +0 -141
  593. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +0 -70
  594. package/esm2022/lib/shared/components/create-case-filters/create-case-filters-selection.model.mjs +0 -11
  595. package/esm2022/lib/shared/components/create-case-filters/create-case-filters.component.mjs +0 -289
  596. package/esm2022/lib/shared/components/create-case-filters/create-case-filters.module.mjs +0 -44
  597. package/esm2022/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +0 -60
  598. package/esm2022/lib/shared/components/dialogs/dialogs.module.mjs +0 -51
  599. package/esm2022/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +0 -62
  600. package/esm2022/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +0 -60
  601. package/esm2022/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +0 -64
  602. package/esm2022/lib/shared/components/error/callback-errors.component.mjs +0 -146
  603. package/esm2022/lib/shared/components/error/domain/error-context.mjs +0 -5
  604. package/esm2022/lib/shared/components/error/errors.module.mjs +0 -33
  605. package/esm2022/lib/shared/components/error-message/error-message.component.mjs +0 -45
  606. package/esm2022/lib/shared/components/error-message/error-message.module.mjs +0 -41
  607. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +0 -62
  608. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +0 -56
  609. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +0 -112
  610. package/esm2022/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +0 -70
  611. package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +0 -61
  612. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +0 -56
  613. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +0 -97
  614. package/esm2022/lib/shared/components/event-start/event-start.component.mjs +0 -56
  615. package/esm2022/lib/shared/components/event-start/event-start.module.mjs +0 -71
  616. package/esm2022/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +0 -31
  617. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +0 -177
  618. package/esm2022/lib/shared/components/event-trigger/event-trigger.component.mjs +0 -117
  619. package/esm2022/lib/shared/components/event-trigger/event-trigger.module.mjs +0 -37
  620. package/esm2022/lib/shared/components/loading-spinner/loading-spinner.component.mjs +0 -26
  621. package/esm2022/lib/shared/components/loading-spinner/loading-spinner.module.mjs +0 -29
  622. package/esm2022/lib/shared/components/pagination/pagination.component.mjs +0 -260
  623. package/esm2022/lib/shared/components/pagination/pagination.module.mjs +0 -35
  624. package/esm2022/lib/shared/components/palette/address/address-option.model.mjs +0 -23
  625. package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +0 -286
  626. package/esm2022/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +0 -30
  627. package/esm2022/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +0 -44
  628. package/esm2022/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +0 -84
  629. package/esm2022/lib/shared/components/palette/base-field/field-read-label.component.mjs +0 -85
  630. package/esm2022/lib/shared/components/palette/base-field/field-read.component.mjs +0 -90
  631. package/esm2022/lib/shared/components/palette/base-field/field-write.component.mjs +0 -78
  632. package/esm2022/lib/shared/components/palette/base-field/payment-field.component.mjs +0 -37
  633. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +0 -181
  634. 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 -50
  635. 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 -51
  636. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +0 -358
  637. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +0 -158
  638. package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +0 -94
  639. package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +0 -190
  640. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +0 -301
  641. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +0 -206
  642. package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +0 -169
  643. package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +0 -225
  644. package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +0 -311
  645. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +0 -202
  646. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +0 -353
  647. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +0 -269
  648. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +0 -510
  649. package/esm2022/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +0 -43
  650. package/esm2022/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +0 -43
  651. package/esm2022/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +0 -111
  652. package/esm2022/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +0 -79
  653. package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +0 -253
  654. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +0 -697
  655. package/esm2022/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +0 -33
  656. package/esm2022/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +0 -125
  657. package/esm2022/lib/shared/components/palette/collection/collection-create-checker.service.mjs +0 -42
  658. package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +0 -78
  659. package/esm2022/lib/shared/components/palette/collection/write-collection-field.component.mjs +0 -447
  660. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +0 -378
  661. package/esm2022/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +0 -51
  662. package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +0 -76
  663. package/esm2022/lib/shared/components/palette/complex/read-complex-field.component.mjs +0 -71
  664. package/esm2022/lib/shared/components/palette/complex/write-complex-field.component.mjs +0 -173
  665. package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +0 -26
  666. package/esm2022/lib/shared/components/palette/date/write-date-container-field.component.mjs +0 -33
  667. package/esm2022/lib/shared/components/palette/date/write-date-field.component.mjs +0 -77
  668. package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +0 -312
  669. package/esm2022/lib/shared/components/palette/document/document-url.pipe.mjs +0 -25
  670. package/esm2022/lib/shared/components/palette/document/file-upload-progress.guard.mjs +0 -31
  671. package/esm2022/lib/shared/components/palette/document/file-upload-state.service.mjs +0 -17
  672. package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +0 -88
  673. package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +0 -430
  674. package/esm2022/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +0 -18
  675. package/esm2022/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +0 -37
  676. package/esm2022/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +0 -124
  677. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +0 -44
  678. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +0 -146
  679. package/esm2022/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +0 -25
  680. package/esm2022/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +0 -43
  681. package/esm2022/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +0 -123
  682. package/esm2022/lib/shared/components/palette/email/read-email-field.component.mjs +0 -36
  683. package/esm2022/lib/shared/components/palette/email/write-email-field.component.mjs +0 -74
  684. package/esm2022/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +0 -23
  685. package/esm2022/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +0 -27
  686. package/esm2022/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +0 -107
  687. package/esm2022/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +0 -18
  688. package/esm2022/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +0 -27
  689. package/esm2022/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +0 -96
  690. package/esm2022/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +0 -17
  691. package/esm2022/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +0 -99
  692. package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +0 -224
  693. package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +0 -72
  694. package/esm2022/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +0 -49
  695. package/esm2022/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +0 -253
  696. package/esm2022/lib/shared/components/palette/label/label-field.component.mjs +0 -50
  697. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +0 -111
  698. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +0 -191
  699. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +0 -543
  700. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +0 -213
  701. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +0 -287
  702. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +0 -69
  703. package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +0 -209
  704. package/esm2022/lib/shared/components/palette/linked-cases/domain/linked-cases.model.mjs +0 -67
  705. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +0 -168
  706. package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +0 -138
  707. package/esm2022/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +0 -27
  708. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +0 -234
  709. package/esm2022/lib/shared/components/palette/markdown/markdown-component.module.mjs +0 -40
  710. package/esm2022/lib/shared/components/palette/markdown/markdown.component.mjs +0 -46
  711. package/esm2022/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +0 -128
  712. package/esm2022/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +0 -50
  713. package/esm2022/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +0 -79
  714. package/esm2022/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +0 -46
  715. package/esm2022/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +0 -126
  716. package/esm2022/lib/shared/components/palette/number/read-number-field.component.mjs +0 -25
  717. package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +0 -74
  718. package/esm2022/lib/shared/components/palette/order-summary/fee-value.model.mjs +0 -4
  719. package/esm2022/lib/shared/components/palette/order-summary/fee.model.mjs +0 -8
  720. package/esm2022/lib/shared/components/palette/order-summary/order-summary.model.mjs +0 -6
  721. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +0 -74
  722. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +0 -45
  723. package/esm2022/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +0 -45
  724. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +0 -88
  725. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +0 -92
  726. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +0 -52
  727. package/esm2022/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +0 -35
  728. package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +0 -397
  729. package/esm2022/lib/shared/components/palette/palette.module.mjs +0 -736
  730. package/esm2022/lib/shared/components/palette/palette.service.mjs +0 -153
  731. package/esm2022/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +0 -25
  732. package/esm2022/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +0 -23
  733. package/esm2022/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +0 -74
  734. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +0 -44
  735. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +0 -150
  736. package/esm2022/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +0 -67
  737. package/esm2022/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +0 -61
  738. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +0 -292
  739. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +0 -330
  740. package/esm2022/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +0 -24
  741. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +0 -165
  742. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +0 -78
  743. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +0 -121
  744. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +0 -202
  745. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +0 -107
  746. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +0 -24
  747. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +0 -45
  748. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +0 -124
  749. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +0 -22
  750. package/esm2022/lib/shared/components/palette/text/read-text-field.component.mjs +0 -25
  751. package/esm2022/lib/shared/components/palette/text/write-text-field.component.mjs +0 -78
  752. package/esm2022/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +0 -25
  753. package/esm2022/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +0 -89
  754. package/esm2022/lib/shared/components/palette/unsupported-field.component.mjs +0 -18
  755. package/esm2022/lib/shared/components/palette/utils/dash.pipe.mjs +0 -16
  756. package/esm2022/lib/shared/components/palette/utils/date.pipe.mjs +0 -133
  757. package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +0 -30
  758. package/esm2022/lib/shared/components/palette/utils/first-error.pipe.mjs +0 -62
  759. package/esm2022/lib/shared/components/palette/utils/is-compound.pipe.mjs +0 -43
  760. package/esm2022/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +0 -22
  761. package/esm2022/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +0 -32
  762. package/esm2022/lib/shared/components/palette/utils/is-read-only.pipe.mjs +0 -22
  763. package/esm2022/lib/shared/components/palette/utils/utils.module.mjs +0 -71
  764. package/esm2022/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +0 -35
  765. package/esm2022/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +0 -37
  766. package/esm2022/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +0 -102
  767. package/esm2022/lib/shared/components/palette/yes-no/yes-no.service.mjs +0 -50
  768. package/esm2022/lib/shared/components/search-filters/domain/search-input.model.mjs +0 -15
  769. package/esm2022/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +0 -63
  770. package/esm2022/lib/shared/components/search-filters/search-filters.component.mjs +0 -341
  771. package/esm2022/lib/shared/components/search-filters/search-filters.module.mjs +0 -71
  772. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +0 -822
  773. package/esm2022/lib/shared/components/search-result/search-result.module.mjs +0 -82
  774. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +0 -497
  775. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +0 -67
  776. package/esm2022/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +0 -169
  777. package/esm2022/lib/shared/directives/conditional-show/conditional-show.module.mjs +0 -33
  778. package/esm2022/lib/shared/directives/conditional-show/domain/conditional-show.model.mjs +0 -201
  779. package/esm2022/lib/shared/directives/conditional-show/services/condition-parser.service.mjs +0 -200
  780. package/esm2022/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +0 -17
  781. package/esm2022/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +0 -48
  782. package/esm2022/lib/shared/directives/focus-element/focus-element.directive.mjs +0 -38
  783. package/esm2022/lib/shared/directives/focus-element/focus-element.module.mjs +0 -21
  784. package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +0 -88
  785. package/esm2022/lib/shared/directives/substitutor/label-substitutor.module.mjs +0 -30
  786. package/esm2022/lib/shared/directives/substitutor/services/placeholder.service.mjs +0 -209
  787. package/esm2022/lib/shared/domain/activity/activity.model.mjs +0 -17
  788. package/esm2022/lib/shared/domain/addresses/address.model.mjs +0 -11
  789. package/esm2022/lib/shared/domain/alert/alert.model.mjs +0 -5
  790. package/esm2022/lib/shared/domain/case-details.model.mjs +0 -13
  791. package/esm2022/lib/shared/domain/case-event-data.model.mjs +0 -11
  792. package/esm2022/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +0 -8
  793. package/esm2022/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +0 -10
  794. package/esm2022/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +0 -10
  795. package/esm2022/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +0 -125
  796. package/esm2022/lib/shared/domain/case-flag/flag-type.model.mjs +0 -37
  797. package/esm2022/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +0 -18
  798. package/esm2022/lib/shared/domain/case-view/case-event-trigger.model.mjs +0 -34
  799. package/esm2022/lib/shared/domain/case-view/case-print-document.model.mjs +0 -6
  800. package/esm2022/lib/shared/domain/case-view/case-tab.model.mjs +0 -17
  801. package/esm2022/lib/shared/domain/case-view/case-view-event.model.mjs +0 -16
  802. package/esm2022/lib/shared/domain/case-view/case-view-trigger.model.mjs +0 -7
  803. package/esm2022/lib/shared/domain/case-view/case-view.model.mjs +0 -27
  804. package/esm2022/lib/shared/domain/definition/access-control-list.model.mjs +0 -8
  805. package/esm2022/lib/shared/domain/definition/banner.model.mjs +0 -8
  806. package/esm2022/lib/shared/domain/definition/case-event.model.mjs +0 -11
  807. package/esm2022/lib/shared/domain/definition/case-field.model.mjs +0 -216
  808. package/esm2022/lib/shared/domain/definition/case-state.model.mjs +0 -7
  809. package/esm2022/lib/shared/domain/definition/case-type-lite.model.mjs +0 -10
  810. package/esm2022/lib/shared/domain/definition/case-type.model.mjs +0 -20
  811. package/esm2022/lib/shared/domain/definition/event-case-field.model.mjs +0 -6
  812. package/esm2022/lib/shared/domain/definition/field-type.model.mjs +0 -30
  813. package/esm2022/lib/shared/domain/definition/fixed-list-item.model.mjs +0 -6
  814. package/esm2022/lib/shared/domain/definition/jurisdiction.model.mjs +0 -8
  815. package/esm2022/lib/shared/domain/document/document-data.model.mjs +0 -28
  816. package/esm2022/lib/shared/domain/draft.model.mjs +0 -16
  817. package/esm2022/lib/shared/domain/http/http-error.model.mjs +0 -49
  818. package/esm2022/lib/shared/domain/organisation/organisation-converter.mjs +0 -42
  819. package/esm2022/lib/shared/domain/pagination-metadata.model.mjs +0 -5
  820. package/esm2022/lib/shared/domain/profile/profile.model.mjs +0 -33
  821. package/esm2022/lib/shared/domain/search/field.model.mjs +0 -17
  822. package/esm2022/lib/shared/domain/search/search-result-view-column.model.mjs +0 -9
  823. package/esm2022/lib/shared/domain/search/search-result-view-item.model.mjs +0 -18
  824. package/esm2022/lib/shared/domain/search/search-result-view.model.mjs +0 -26
  825. package/esm2022/lib/shared/domain/search/sorting/sort-parameters.mjs +0 -9
  826. package/esm2022/lib/shared/domain/workbasket/workbasket-input.model.mjs +0 -11
  827. package/esm2022/lib/shared/fixture/case-field-builder.mjs +0 -67
  828. package/esm2022/lib/shared/pipes/case-reference/case-reference.pipe.mjs +0 -33
  829. package/esm2022/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +0 -31
  830. package/esm2022/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +0 -32
  831. package/esm2022/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +0 -27
  832. package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +0 -39
  833. package/esm2022/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +0 -173
  834. package/esm2022/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +0 -31
  835. package/esm2022/lib/shared/pipes/complex/fields-filter.pipe.mjs +0 -105
  836. package/esm2022/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +0 -16
  837. package/esm2022/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +0 -28
  838. package/esm2022/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +0 -28
  839. package/esm2022/lib/shared/pipes/pipes.module.mjs +0 -64
  840. package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +0 -24
  841. package/esm2022/lib/shared/services/activity/activity.polling.service.mjs +0 -122
  842. package/esm2022/lib/shared/services/activity/activity.service.mjs +0 -85
  843. package/esm2022/lib/shared/services/addresses/address-parser.mjs +0 -76
  844. package/esm2022/lib/shared/services/addresses/addresses.service.mjs +0 -65
  845. package/esm2022/lib/shared/services/alert/alert.service.mjs +0 -157
  846. package/esm2022/lib/shared/services/auth/auth.service.mjs +0 -35
  847. package/esm2022/lib/shared/services/banners/banners.service.mjs +0 -35
  848. package/esm2022/lib/shared/services/browser/browser.service.mjs +0 -24
  849. package/esm2022/lib/shared/services/case-fields/case-field.service.mjs +0 -34
  850. package/esm2022/lib/shared/services/case-fields/format-translator.service.mjs +0 -242
  851. package/esm2022/lib/shared/services/case-file-view/case-file-view.service.mjs +0 -48
  852. package/esm2022/lib/shared/services/case-flag/case-flag-refdata.service.mjs +0 -104
  853. package/esm2022/lib/shared/services/common-data-service/common-data-service.mjs +0 -29
  854. package/esm2022/lib/shared/services/definitions/definitions.module.mjs +0 -19
  855. package/esm2022/lib/shared/services/definitions/definitions.service.mjs +0 -32
  856. package/esm2022/lib/shared/services/document-management/document-management.service.mjs +0 -114
  857. package/esm2022/lib/shared/services/draft/draft.service.mjs +0 -89
  858. package/esm2022/lib/shared/services/error/error-notifier.service.mjs +0 -16
  859. package/esm2022/lib/shared/services/eventStatusService/event-status.service.mjs +0 -21
  860. package/esm2022/lib/shared/services/fields/fields.purger.mjs +0 -305
  861. package/esm2022/lib/shared/services/fields/fields.utils.mjs +0 -615
  862. package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +0 -91
  863. package/esm2022/lib/shared/services/form/form-error.service.mjs +0 -46
  864. package/esm2022/lib/shared/services/form/form-validators.service.mjs +0 -56
  865. package/esm2022/lib/shared/services/form/form-value.service.mjs +0 -552
  866. package/esm2022/lib/shared/services/http/http-error.service.mjs +0 -67
  867. package/esm2022/lib/shared/services/http/http.service.mjs +0 -95
  868. package/esm2022/lib/shared/services/jurisdiction/jurisdiction.service.mjs +0 -36
  869. package/esm2022/lib/shared/services/loading/loading.module.mjs +0 -22
  870. package/esm2022/lib/shared/services/loading/loading.service.mjs +0 -35
  871. package/esm2022/lib/shared/services/navigation/navigation-notifier.service.mjs +0 -16
  872. package/esm2022/lib/shared/services/order/order.service.mjs +0 -37
  873. package/esm2022/lib/shared/services/organisation/organisation.service.mjs +0 -57
  874. package/esm2022/lib/shared/services/profile/profile.notifier.mjs +0 -17
  875. package/esm2022/lib/shared/services/profile/profile.service.mjs +0 -36
  876. package/esm2022/lib/shared/services/request/request.options.builder.mjs +0 -61
  877. package/esm2022/lib/shared/services/router/router-helper.service.mjs +0 -20
  878. package/esm2022/lib/shared/services/search/search.service.mjs +0 -96
  879. package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +0 -71
  880. package/esm2022/lib/shared/services/session/session-storage.service.mjs +0 -34
  881. package/esm2022/lib/shared/services/utils/retry/retry.service.mjs +0 -87
  882. package/esm2022/lib/shared/services/window/window.service.mjs +0 -40
  883. package/esm2022/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +0 -57
  884. package/esm2022/lib/shared/test/test-route-snapshot-builder.mjs +0 -38
  885. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +0 -36948
  886. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +0 -1
  887. /package/{esm2022 → esm2020}/hmcts-ccd-case-ui-toolkit.mjs +0 -0
  888. /package/{esm2022 → esm2020}/lib/components/banners/alert/index.mjs +0 -0
  889. /package/{esm2022 → esm2020}/lib/components/banners/index.mjs +0 -0
  890. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/domain/index.mjs +0 -0
  891. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/domain/notification-banner-config.model.mjs +0 -0
  892. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/enums/index.mjs +0 -0
  893. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/enums/notification-banner-style.enum.mjs +0 -0
  894. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/enums/notification-banner-type.enum.mjs +0 -0
  895. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/index.mjs +0 -0
  896. /package/{esm2022 → esm2020}/lib/components/body/index.mjs +0 -0
  897. /package/{esm2022 → esm2020}/lib/components/footer/index.mjs +0 -0
  898. /package/{esm2022 → esm2020}/lib/components/form/date-input/index.mjs +0 -0
  899. /package/{esm2022 → esm2020}/lib/components/form/index.mjs +0 -0
  900. /package/{esm2022 → esm2020}/lib/components/header/header-bar/index.mjs +0 -0
  901. /package/{esm2022 → esm2020}/lib/components/header/index.mjs +0 -0
  902. /package/{esm2022 → esm2020}/lib/components/header/navigation/index.mjs +0 -0
  903. /package/{esm2022 → esm2020}/lib/components/header/phase/index.mjs +0 -0
  904. /package/{esm2022 → esm2020}/lib/components/index.mjs +0 -0
  905. /package/{esm2022 → esm2020}/lib/components/tabs/index.mjs +0 -0
  906. /package/{esm2022 → esm2020}/lib/shared/commons/case-edit-data/case-edit-validation.model.mjs +0 -0
  907. /package/{esm2022 → esm2020}/lib/shared/commons/case-edit-data/index.mjs +0 -0
  908. /package/{esm2022 → esm2020}/lib/shared/components/activity/activity-banner/index.mjs +0 -0
  909. /package/{esm2022 → esm2020}/lib/shared/components/activity/activity-icon/index.mjs +0 -0
  910. /package/{esm2022 → esm2020}/lib/shared/components/activity/index.mjs +0 -0
  911. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-create/index.mjs +0 -0
  912. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit/index.mjs +0 -0
  913. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-confirm/index.mjs +0 -0
  914. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-form/index.mjs +0 -0
  915. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-page/index.mjs +0 -0
  916. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.mjs +0 -0
  917. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-submit/index.mjs +0 -0
  918. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-event-completion/index.mjs +0 -0
  919. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-progress/index.mjs +0 -0
  920. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-params.model.mjs +0 -0
  921. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-portal-types.model.mjs +0 -0
  922. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-return-states.enum.model.mjs +0 -0
  923. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-state-machine-context.model.mjs +0 -0
  924. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-states.enum.model.mjs +0 -0
  925. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/index.mjs +0 -0
  926. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/editor.routing.mjs +0 -0
  927. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/index.mjs +0 -0
  928. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/services/index.mjs +0 -0
  929. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/services/wizard-factory.service.mjs +0 -0
  930. /package/{esm2022 → esm2020}/lib/shared/components/case-header/index.mjs +0 -0
  931. /package/{esm2022 → esm2020}/lib/shared/components/case-history/index.mjs +0 -0
  932. /package/{esm2022 → esm2020}/lib/shared/components/case-list/index.mjs +0 -0
  933. /package/{esm2022 → esm2020}/lib/shared/components/case-list-filters/index.mjs +0 -0
  934. /package/{esm2022 → esm2020}/lib/shared/components/case-timeline/index.mjs +0 -0
  935. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-basic-access-view/index.mjs +0 -0
  936. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-request/index.mjs +0 -0
  937. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-request/models/case-challenged-access-request.enum.mjs +0 -0
  938. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-request/models/index.mjs +0 -0
  939. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-success/index.mjs +0 -0
  940. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-event-trigger/index.mjs +0 -0
  941. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-full-access-view/index.mjs +0 -0
  942. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-reject/index.mjs +0 -0
  943. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-request/index.mjs +0 -0
  944. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-request/models/case-review-specific-access-request.enum.mjs +0 -0
  945. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-request/models/index.mjs +0 -0
  946. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-request/index.mjs +0 -0
  947. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.mjs +0 -0
  948. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-request/models/index.mjs +0 -0
  949. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-success/index.mjs +0 -0
  950. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-view/index.mjs +0 -0
  951. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/index.mjs +0 -0
  952. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/printer/index.mjs +0 -0
  953. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/printer/pipes/index.mjs +0 -0
  954. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/services/index.mjs +0 -0
  955. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/viewer.routing.mjs +0 -0
  956. /package/{esm2022 → esm2020}/lib/shared/components/create-case-filters/index.mjs +0 -0
  957. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/delete-or-cancel-dialog/index.mjs +0 -0
  958. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/document-dialog/index.mjs +0 -0
  959. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/index.mjs +0 -0
  960. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/remove-dialog/index.mjs +0 -0
  961. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/save-or-discard-dialog/index.mjs +0 -0
  962. /package/{esm2022 → esm2020}/lib/shared/components/error/domain/index.mjs +0 -0
  963. /package/{esm2022 → esm2020}/lib/shared/components/error/index.mjs +0 -0
  964. /package/{esm2022 → esm2020}/lib/shared/components/error-message/index.mjs +0 -0
  965. /package/{esm2022 → esm2020}/lib/shared/components/event-start/index.mjs +0 -0
  966. /package/{esm2022 → esm2020}/lib/shared/components/event-start/models/event-start-state-machine-context.model.mjs +0 -0
  967. /package/{esm2022 → esm2020}/lib/shared/components/event-start/models/event-start-states-enum.model.mjs +0 -0
  968. /package/{esm2022 → esm2020}/lib/shared/components/event-start/models/index.mjs +0 -0
  969. /package/{esm2022 → esm2020}/lib/shared/components/event-start/services/index.mjs +0 -0
  970. /package/{esm2022 → esm2020}/lib/shared/components/event-trigger/index.mjs +0 -0
  971. /package/{esm2022 → esm2020}/lib/shared/components/helpers/index.mjs +0 -0
  972. /package/{esm2022 → esm2020}/lib/shared/components/helpers/init-dialog-helper.mjs +0 -0
  973. /package/{esm2022 → esm2020}/lib/shared/components/index.mjs +0 -0
  974. /package/{esm2022 → esm2020}/lib/shared/components/loading-spinner/index.mjs +0 -0
  975. /package/{esm2022 → esm2020}/lib/shared/components/pagination/index.mjs +0 -0
  976. /package/{esm2022 → esm2020}/lib/shared/components/palette/address/index.mjs +0 -0
  977. /package/{esm2022 → esm2020}/lib/shared/components/palette/base-field/index.mjs +0 -0
  978. /package/{esm2022 → esm2020}/lib/shared/components/palette/base-field/palette-context.enum.mjs +0 -0
  979. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/components/index.mjs +0 -0
  980. /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
  981. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/components/shared/index.mjs +0 -0
  982. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/index.mjs +0 -0
  983. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.mjs +0 -0
  984. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/components/index.mjs +0 -0
  985. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.mjs +0 -0
  986. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/case-flag-state.model.mjs +0 -0
  987. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/case-flag.model.mjs +0 -0
  988. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/index.mjs +0 -0
  989. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/language.model.mjs +0 -0
  990. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.mjs +0 -0
  991. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.mjs +0 -0
  992. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.mjs +0 -0
  993. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.mjs +0 -0
  994. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.mjs +0 -0
  995. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.mjs +0 -0
  996. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.mjs +0 -0
  997. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.mjs +0 -0
  998. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.mjs +0 -0
  999. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.mjs +0 -0
  1000. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/index.mjs +0 -0
  1001. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.mjs +0 -0
  1002. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.mjs +0 -0
  1003. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.mjs +0 -0
  1004. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.mjs +0 -0
  1005. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.mjs +0 -0
  1006. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.mjs +0 -0
  1007. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.mjs +0 -0
  1008. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.mjs +0 -0
  1009. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.mjs +0 -0
  1010. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.mjs +0 -0
  1011. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/index.mjs +0 -0
  1012. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/pipes/index.mjs +0 -0
  1013. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-link/index.mjs +0 -0
  1014. /package/{esm2022 → esm2020}/lib/shared/components/palette/collection/index.mjs +0 -0
  1015. /package/{esm2022 → esm2020}/lib/shared/components/palette/complex/index.mjs +0 -0
  1016. /package/{esm2022 → esm2020}/lib/shared/components/palette/complex/sort-order.mjs +0 -0
  1017. /package/{esm2022 → esm2020}/lib/shared/components/palette/date/index.mjs +0 -0
  1018. /package/{esm2022 → esm2020}/lib/shared/components/palette/datetime-picker/datetime-picker-utils.mjs +0 -0
  1019. /package/{esm2022 → esm2020}/lib/shared/components/palette/datetime-picker/index.mjs +0 -0
  1020. /package/{esm2022 → esm2020}/lib/shared/components/palette/document/index.mjs +0 -0
  1021. /package/{esm2022 → esm2020}/lib/shared/components/palette/dynamic-list/index.mjs +0 -0
  1022. /package/{esm2022 → esm2020}/lib/shared/components/palette/dynamic-multi-select-list/index.mjs +0 -0
  1023. /package/{esm2022 → esm2020}/lib/shared/components/palette/dynamic-radio-list/index.mjs +0 -0
  1024. /package/{esm2022 → esm2020}/lib/shared/components/palette/email/index.mjs +0 -0
  1025. /package/{esm2022 → esm2020}/lib/shared/components/palette/fixed-list/index.mjs +0 -0
  1026. /package/{esm2022 → esm2020}/lib/shared/components/palette/fixed-radio-list/index.mjs +0 -0
  1027. /package/{esm2022 → esm2020}/lib/shared/components/palette/history/event-log/index.mjs +0 -0
  1028. /package/{esm2022 → esm2020}/lib/shared/components/palette/history/index.mjs +0 -0
  1029. /package/{esm2022 → esm2020}/lib/shared/components/palette/index.mjs +0 -0
  1030. /package/{esm2022 → esm2020}/lib/shared/components/palette/judicial-user/index.mjs +0 -0
  1031. /package/{esm2022 → esm2020}/lib/shared/components/palette/label/index.mjs +0 -0
  1032. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/components/index.mjs +0 -0
  1033. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/domain/index.mjs +0 -0
  1034. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.mjs +0 -0
  1035. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/enums/index.mjs +0 -0
  1036. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.mjs +0 -0
  1037. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/index.mjs +0 -0
  1038. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/services/index.mjs +0 -0
  1039. /package/{esm2022 → esm2020}/lib/shared/components/palette/markdown/index.mjs +0 -0
  1040. /package/{esm2022 → esm2020}/lib/shared/components/palette/money-gbp/index.mjs +0 -0
  1041. /package/{esm2022 → esm2020}/lib/shared/components/palette/multi-select-list/index.mjs +0 -0
  1042. /package/{esm2022 → esm2020}/lib/shared/components/palette/number/index.mjs +0 -0
  1043. /package/{esm2022 → esm2020}/lib/shared/components/palette/order-summary/index.mjs +0 -0
  1044. /package/{esm2022 → esm2020}/lib/shared/components/palette/organisation/index.mjs +0 -0
  1045. /package/{esm2022 → esm2020}/lib/shared/components/palette/payment/index.mjs +0 -0
  1046. /package/{esm2022 → esm2020}/lib/shared/components/palette/phone-uk/index.mjs +0 -0
  1047. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/__mocks__/index.mjs +0 -0
  1048. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/components/index.mjs +0 -0
  1049. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/index.mjs +0 -0
  1050. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.mjs +0 -0
  1051. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.mjs +0 -0
  1052. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.mjs +0 -0
  1053. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.mjs +0 -0
  1054. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/index.mjs +0 -0
  1055. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +0 -0
  1056. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/index.mjs +0 -0
  1057. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.mjs +0 -0
  1058. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.mjs +0 -0
  1059. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/query-create-context.enum.mjs +0 -0
  1060. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.mjs +0 -0
  1061. /package/{esm2022 → esm2020}/lib/shared/components/palette/text/index.mjs +0 -0
  1062. /package/{esm2022 → esm2020}/lib/shared/components/palette/text-area/index.mjs +0 -0
  1063. /package/{esm2022 → esm2020}/lib/shared/components/palette/utils/index.mjs +0 -0
  1064. /package/{esm2022 → esm2020}/lib/shared/components/palette/waystopay/index.mjs +0 -0
  1065. /package/{esm2022 → esm2020}/lib/shared/components/palette/yes-no/index.mjs +0 -0
  1066. /package/{esm2022 → esm2020}/lib/shared/components/search-filters/domain/index.mjs +0 -0
  1067. /package/{esm2022 → esm2020}/lib/shared/components/search-filters/index.mjs +0 -0
  1068. /package/{esm2022 → esm2020}/lib/shared/components/search-result/index.mjs +0 -0
  1069. /package/{esm2022 → esm2020}/lib/shared/components/workbasket-filters/index.mjs +0 -0
  1070. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/domain/index.mjs +0 -0
  1071. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/index.mjs +0 -0
  1072. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/services/condition.peg.mjs +0 -0
  1073. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/services/index.mjs +0 -0
  1074. /package/{esm2022 → esm2020}/lib/shared/directives/focus-element/index.mjs +0 -0
  1075. /package/{esm2022 → esm2020}/lib/shared/directives/index.mjs +0 -0
  1076. /package/{esm2022 → esm2020}/lib/shared/directives/substitutor/index.mjs +0 -0
  1077. /package/{esm2022 → esm2020}/lib/shared/directives/substitutor/services/index.mjs +0 -0
  1078. /package/{esm2022 → esm2020}/lib/shared/domain/activity/index.mjs +0 -0
  1079. /package/{esm2022 → esm2020}/lib/shared/domain/addresses/index.mjs +0 -0
  1080. /package/{esm2022 → esm2020}/lib/shared/domain/alert/alert-level.model.mjs +0 -0
  1081. /package/{esm2022 → esm2020}/lib/shared/domain/alert/alert-status-params.model.mjs +0 -0
  1082. /package/{esm2022 → esm2020}/lib/shared/domain/alert/index.mjs +0 -0
  1083. /package/{esm2022 → esm2020}/lib/shared/domain/case-edit/case-edit.model.mjs +0 -0
  1084. /package/{esm2022 → esm2020}/lib/shared/domain/case-edit/index.mjs +0 -0
  1085. /package/{esm2022 → esm2020}/lib/shared/domain/case-file-view/case-file-view-sort-columns.enum.mjs +0 -0
  1086. /package/{esm2022 → esm2020}/lib/shared/domain/case-file-view/document-tree-node/document-tree-node-type.model.mjs +0 -0
  1087. /package/{esm2022 → esm2020}/lib/shared/domain/case-file-view/index.mjs +0 -0
  1088. /package/{esm2022 → esm2020}/lib/shared/domain/case-flag/index.mjs +0 -0
  1089. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/access-types.model.mjs +0 -0
  1090. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/case-view-event-ids.enum.mjs +0 -0
  1091. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/challenged-access-request.model.mjs +0 -0
  1092. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/index.mjs +0 -0
  1093. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/review-specific-access-request.model.mjs +0 -0
  1094. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/role-assignment-response.model.mjs +0 -0
  1095. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/role-request.model.mjs +0 -0
  1096. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/service-org-response.model.mjs +0 -0
  1097. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/specific-access-request.model.mjs +0 -0
  1098. /package/{esm2022 → esm2020}/lib/shared/domain/definition/display-context-enum.model.mjs +0 -0
  1099. /package/{esm2022 → esm2020}/lib/shared/domain/definition/field-type-enum.model.mjs +0 -0
  1100. /package/{esm2022 → esm2020}/lib/shared/domain/definition/index.mjs +0 -0
  1101. /package/{esm2022 → esm2020}/lib/shared/domain/document/index.mjs +0 -0
  1102. /package/{esm2022 → esm2020}/lib/shared/domain/error-message.model.mjs +0 -0
  1103. /package/{esm2022 → esm2020}/lib/shared/domain/http/index.mjs +0 -0
  1104. /package/{esm2022 → esm2020}/lib/shared/domain/index.mjs +0 -0
  1105. /package/{esm2022 → esm2020}/lib/shared/domain/jurisdiction/index.mjs +0 -0
  1106. /package/{esm2022 → esm2020}/lib/shared/domain/jurisdiction/judicial-user.model.mjs +0 -0
  1107. /package/{esm2022 → esm2020}/lib/shared/domain/order/index.mjs +0 -0
  1108. /package/{esm2022 → esm2020}/lib/shared/domain/order/orderable.model.mjs +0 -0
  1109. /package/{esm2022 → esm2020}/lib/shared/domain/organisation/index.mjs +0 -0
  1110. /package/{esm2022 → esm2020}/lib/shared/domain/organisation/simple-organisation.model.mjs +0 -0
  1111. /package/{esm2022 → esm2020}/lib/shared/domain/predicate.model.mjs +0 -0
  1112. /package/{esm2022 → esm2020}/lib/shared/domain/profile/index.mjs +0 -0
  1113. /package/{esm2022 → esm2020}/lib/shared/domain/search/index.mjs +0 -0
  1114. /package/{esm2022 → esm2020}/lib/shared/domain/search/sorting/search-result-view-item-comparator.mjs +0 -0
  1115. /package/{esm2022 → esm2020}/lib/shared/domain/sort-order.enum.mjs +0 -0
  1116. /package/{esm2022 → esm2020}/lib/shared/domain/user/user-details.model.mjs +0 -0
  1117. /package/{esm2022 → esm2020}/lib/shared/domain/user/user-info.model.mjs +0 -0
  1118. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/Task.mjs +0 -0
  1119. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/TaskPayload.mjs +0 -0
  1120. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/case-worker.model.mjs +0 -0
  1121. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/index.mjs +0 -0
  1122. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/judicial-worker.model.mjs +0 -0
  1123. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/task-response.model.mjs +0 -0
  1124. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/task-search-parameter.model.mjs +0 -0
  1125. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/wa-service-config.model.mjs +0 -0
  1126. /package/{esm2022 → esm2020}/lib/shared/domain/workbasket/index.mjs +0 -0
  1127. /package/{esm2022 → esm2020}/lib/shared/fixture/shared.test.fixture.mjs +0 -0
  1128. /package/{esm2022 → esm2020}/lib/shared/index.mjs +0 -0
  1129. /package/{esm2022 → esm2020}/lib/shared/pipes/case-reference/index.mjs +0 -0
  1130. /package/{esm2022 → esm2020}/lib/shared/pipes/case-title/index.mjs +0 -0
  1131. /package/{esm2022 → esm2020}/lib/shared/pipes/complex/index.mjs +0 -0
  1132. /package/{esm2022 → esm2020}/lib/shared/pipes/generic/index.mjs +0 -0
  1133. /package/{esm2022 → esm2020}/lib/shared/pipes/index.mjs +0 -0
  1134. /package/{esm2022 → esm2020}/lib/shared/pipes/link-cases-from-reason-code/index.mjs +0 -0
  1135. /package/{esm2022 → esm2020}/lib/shared/pipes/link-cases-reason-code/index.mjs +0 -0
  1136. /package/{esm2022 → esm2020}/lib/shared/services/activity/index.mjs +0 -0
  1137. /package/{esm2022 → esm2020}/lib/shared/services/addresses/address-type.enum.mjs +0 -0
  1138. /package/{esm2022 → esm2020}/lib/shared/services/addresses/index.mjs +0 -0
  1139. /package/{esm2022 → esm2020}/lib/shared/services/alert/index.mjs +0 -0
  1140. /package/{esm2022 → esm2020}/lib/shared/services/auth/index.mjs +0 -0
  1141. /package/{esm2022 → esm2020}/lib/shared/services/banners/index.mjs +0 -0
  1142. /package/{esm2022 → esm2020}/lib/shared/services/browser/index.mjs +0 -0
  1143. /package/{esm2022 → esm2020}/lib/shared/services/case-fields/index.mjs +0 -0
  1144. /package/{esm2022 → esm2020}/lib/shared/services/case-file-view/index.mjs +0 -0
  1145. /package/{esm2022 → esm2020}/lib/shared/services/case-flag/index.mjs +0 -0
  1146. /package/{esm2022 → esm2020}/lib/shared/services/case-flag/refdata-case-flag-type.enum.mjs +0 -0
  1147. /package/{esm2022 → esm2020}/lib/shared/services/definitions/index.mjs +0 -0
  1148. /package/{esm2022 → esm2020}/lib/shared/services/document-management/index.mjs +0 -0
  1149. /package/{esm2022 → esm2020}/lib/shared/services/draft/index.mjs +0 -0
  1150. /package/{esm2022 → esm2020}/lib/shared/services/error/index.mjs +0 -0
  1151. /package/{esm2022 → esm2020}/lib/shared/services/eventStatusService/index.mjs +0 -0
  1152. /package/{esm2022 → esm2020}/lib/shared/services/fields/index.mjs +0 -0
  1153. /package/{esm2022 → esm2020}/lib/shared/services/form/index.mjs +0 -0
  1154. /package/{esm2022 → esm2020}/lib/shared/services/http/index.mjs +0 -0
  1155. /package/{esm2022 → esm2020}/lib/shared/services/index.mjs +0 -0
  1156. /package/{esm2022 → esm2020}/lib/shared/services/jurisdiction/index.mjs +0 -0
  1157. /package/{esm2022 → esm2020}/lib/shared/services/loading/index.mjs +0 -0
  1158. /package/{esm2022 → esm2020}/lib/shared/services/navigation/index.mjs +0 -0
  1159. /package/{esm2022 → esm2020}/lib/shared/services/navigation/navigation-origin.model.mjs +0 -0
  1160. /package/{esm2022 → esm2020}/lib/shared/services/order/index.mjs +0 -0
  1161. /package/{esm2022 → esm2020}/lib/shared/services/organisation/index.mjs +0 -0
  1162. /package/{esm2022 → esm2020}/lib/shared/services/profile/index.mjs +0 -0
  1163. /package/{esm2022 → esm2020}/lib/shared/services/request/index.mjs +0 -0
  1164. /package/{esm2022 → esm2020}/lib/shared/services/router/index.mjs +0 -0
  1165. /package/{esm2022 → esm2020}/lib/shared/services/search/index.mjs +0 -0
  1166. /package/{esm2022 → esm2020}/lib/shared/services/session/index.mjs +0 -0
  1167. /package/{esm2022 → esm2020}/lib/shared/services/utils/retry/index.mjs +0 -0
  1168. /package/{esm2022 → esm2020}/lib/shared/services/window/index.mjs +0 -0
  1169. /package/{esm2022 → esm2020}/lib/shared/services/workbasket/index.mjs +0 -0
  1170. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
@@ -0,0 +1,779 @@
1
+ import { ChangeDetectorRef, Component } from '@angular/core';
2
+ import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { BehaviorSubject, Subject } from 'rxjs';
5
+ import { finalize } from 'rxjs/operators';
6
+ import { CaseEditDataService } from '../../../commons/case-edit-data';
7
+ import { DRAFT_PREFIX } from '../../../domain/draft.model';
8
+ import { AddressesService, LoadingService } from '../../../services';
9
+ import { CaseFieldService } from '../../../services/case-fields/case-field.service';
10
+ import { FieldsUtils } from '../../../services/fields';
11
+ import { FormErrorService } from '../../../services/form/form-error.service';
12
+ import { FormValueService } from '../../../services/form/form-value.service';
13
+ import { SaveOrDiscardDialogComponent } from '../../dialogs/save-or-discard-dialog';
14
+ import { initDialog } from '../../helpers';
15
+ import { CaseEditComponent } from '../case-edit/case-edit.component';
16
+ import { PageValidationService } from '../services/page-validation.service';
17
+ import { ValidPageListCaseFieldsService } from '../services/valid-page-list-caseFields.service';
18
+ import * as i0 from "@angular/core";
19
+ import * as i1 from "../case-edit/case-edit.component";
20
+ import * as i2 from "@angular/router";
21
+ import * as i3 from "../../../services/form/form-value.service";
22
+ import * as i4 from "../../../services/form/form-error.service";
23
+ import * as i5 from "../services/page-validation.service";
24
+ import * as i6 from "@angular/material/legacy-dialog";
25
+ import * as i7 from "../../../services/case-fields/case-field.service";
26
+ import * as i8 from "../../../commons/case-edit-data";
27
+ import * as i9 from "../../../services";
28
+ import * as i10 from "../services/valid-page-list-caseFields.service";
29
+ function CaseEditPageComponent_ng_container_0_h1_1_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵelementStart(0, "h1", 11);
31
+ i0.ɵɵtext(1);
32
+ i0.ɵɵpipe(2, "rpxTranslate");
33
+ i0.ɵɵelementEnd();
34
+ } if (rf & 2) {
35
+ const ctx_r9 = i0.ɵɵnextContext(2);
36
+ i0.ɵɵadvance(1);
37
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r9.eventTrigger.name));
38
+ } }
39
+ function CaseEditPageComponent_ng_container_0_ng_container_2_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵelementContainerStart(0);
41
+ i0.ɵɵelementStart(1, "span", 12);
42
+ i0.ɵɵtext(2);
43
+ i0.ɵɵpipe(3, "rpxTranslate");
44
+ i0.ɵɵelementEnd();
45
+ i0.ɵɵelementStart(4, "h1", 11);
46
+ i0.ɵɵtext(5);
47
+ i0.ɵɵpipe(6, "rpxTranslate");
48
+ i0.ɵɵelementEnd();
49
+ i0.ɵɵelementContainerEnd();
50
+ } if (rf & 2) {
51
+ const ctx_r10 = i0.ɵɵnextContext(2);
52
+ i0.ɵɵadvance(2);
53
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, ctx_r10.eventTrigger.name));
54
+ i0.ɵɵadvance(3);
55
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, ctx_r10.currentPage.label));
56
+ } }
57
+ function CaseEditPageComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵelementContainerStart(0);
59
+ i0.ɵɵtemplate(1, CaseEditPageComponent_ng_container_0_h1_1_Template, 3, 3, "h1", 10);
60
+ i0.ɵɵtemplate(2, CaseEditPageComponent_ng_container_0_ng_container_2_Template, 7, 6, "ng-container", 0);
61
+ i0.ɵɵelementContainerEnd();
62
+ } if (rf & 2) {
63
+ const ctx_r0 = i0.ɵɵnextContext();
64
+ i0.ɵɵadvance(1);
65
+ i0.ɵɵproperty("ngIf", !ctx_r0.currentPage.label);
66
+ i0.ɵɵadvance(1);
67
+ i0.ɵɵproperty("ngIf", ctx_r0.currentPage.label);
68
+ } }
69
+ function CaseEditPageComponent_div_1_Template(rf, ctx) { if (rf & 1) {
70
+ i0.ɵɵelement(0, "div");
71
+ } }
72
+ function CaseEditPageComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
73
+ i0.ɵɵelement(0, "ccd-markdown", 13);
74
+ i0.ɵɵpipe(1, "ccdCaseTitle");
75
+ } if (rf & 2) {
76
+ const ctx_r3 = i0.ɵɵnextContext();
77
+ i0.ɵɵproperty("content", i0.ɵɵpipeBind3(1, 1, ctx_r3.getCaseTitle(), ctx_r3.caseFields, ctx_r3.editForm.controls["data"]));
78
+ } }
79
+ function CaseEditPageComponent_ng_template_4_h2_0_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelementStart(0, "h2", 15);
81
+ i0.ɵɵtext(1);
82
+ i0.ɵɵpipe(2, "ccdCaseReference");
83
+ i0.ɵɵelementEnd();
84
+ } if (rf & 2) {
85
+ const ctx_r11 = i0.ɵɵnextContext(2);
86
+ i0.ɵɵadvance(1);
87
+ i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r11.getCaseId()), "");
88
+ } }
89
+ function CaseEditPageComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
90
+ i0.ɵɵtemplate(0, CaseEditPageComponent_ng_template_4_h2_0_Template, 3, 3, "h2", 14);
91
+ } if (rf & 2) {
92
+ const ctx_r5 = i0.ɵɵnextContext();
93
+ i0.ɵɵproperty("ngIf", ctx_r5.getCaseId());
94
+ } }
95
+ function CaseEditPageComponent_div_6_div_4_Template(rf, ctx) { if (rf & 1) {
96
+ const _r15 = i0.ɵɵgetCurrentView();
97
+ i0.ɵɵelementStart(0, "div", 19)(1, "ul", 20)(2, "li")(3, "a", 21);
98
+ i0.ɵɵlistener("click", function CaseEditPageComponent_div_6_div_4_Template_a_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r15); const validationError_r13 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r14.navigateToErrorElement(validationError_r13.id)); });
99
+ i0.ɵɵtext(4);
100
+ i0.ɵɵpipe(5, "rpxTranslate");
101
+ i0.ɵɵpipe(6, "rpxTranslate");
102
+ i0.ɵɵelementEnd()()()();
103
+ } if (rf & 2) {
104
+ const validationError_r13 = ctx.$implicit;
105
+ const ctx_r12 = i0.ɵɵnextContext(2);
106
+ i0.ɵɵadvance(4);
107
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(5, 1, validationError_r13.message, ctx_r12.getRpxTranslatePipeArgs(i0.ɵɵpipeBind1(6, 5, validationError_r13.label)), null), " ");
108
+ } }
109
+ function CaseEditPageComponent_div_6_Template(rf, ctx) { if (rf & 1) {
110
+ i0.ɵɵelementStart(0, "div", 16)(1, "h2", 17);
111
+ i0.ɵɵtext(2);
112
+ i0.ɵɵpipe(3, "rpxTranslate");
113
+ i0.ɵɵelementEnd();
114
+ i0.ɵɵtemplate(4, CaseEditPageComponent_div_6_div_4_Template, 7, 7, "div", 18);
115
+ i0.ɵɵelementEnd();
116
+ } if (rf & 2) {
117
+ const ctx_r6 = i0.ɵɵnextContext();
118
+ i0.ɵɵadvance(2);
119
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "There is a problem"), " ");
120
+ i0.ɵɵadvance(2);
121
+ i0.ɵɵproperty("ngForOf", ctx_r6.validationErrors);
122
+ } }
123
+ function CaseEditPageComponent_form_10_ccd_case_edit_form_3_Template(rf, ctx) { if (rf & 1) {
124
+ const _r19 = i0.ɵɵgetCurrentView();
125
+ i0.ɵɵelementStart(0, "ccd-case-edit-form", 32);
126
+ i0.ɵɵlistener("valuesChanged", function CaseEditPageComponent_form_10_ccd_case_edit_form_3_Template_ccd_case_edit_form_valuesChanged_0_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r18.applyValuesChanged($event)); });
127
+ i0.ɵɵelementEnd();
128
+ } if (rf & 2) {
129
+ const ctx_r16 = i0.ɵɵnextContext(2);
130
+ i0.ɵɵproperty("fields", ctx_r16.currentPage.getCol1Fields())("formGroup", ctx_r16.editForm.controls["data"])("caseFields", ctx_r16.caseFields)("pageChangeSubject", ctx_r16.pageChangeSubject);
131
+ } }
132
+ function CaseEditPageComponent_form_10_div_4_Template(rf, ctx) { if (rf & 1) {
133
+ i0.ɵɵelementStart(0, "div", 33)(1, "div", 34);
134
+ i0.ɵɵelement(2, "ccd-case-edit-form", 35);
135
+ i0.ɵɵelementEnd();
136
+ i0.ɵɵelementStart(3, "div", 36);
137
+ i0.ɵɵelement(4, "ccd-case-edit-form", 37);
138
+ i0.ɵɵelementEnd()();
139
+ } if (rf & 2) {
140
+ const ctx_r17 = i0.ɵɵnextContext(2);
141
+ i0.ɵɵadvance(2);
142
+ i0.ɵɵproperty("fields", ctx_r17.currentPage.getCol1Fields())("formGroup", ctx_r17.editForm.controls["data"])("caseFields", ctx_r17.caseFields);
143
+ i0.ɵɵadvance(2);
144
+ i0.ɵɵproperty("fields", ctx_r17.currentPage.getCol2Fields())("formGroup", ctx_r17.editForm.controls["data"])("caseFields", ctx_r17.caseFields);
145
+ } }
146
+ function CaseEditPageComponent_form_10_Template(rf, ctx) { if (rf & 1) {
147
+ const _r21 = i0.ɵɵgetCurrentView();
148
+ i0.ɵɵelementStart(0, "form", 22);
149
+ i0.ɵɵlistener("submit", function CaseEditPageComponent_form_10_Template_form_submit_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r20.submit()); });
150
+ i0.ɵɵelementStart(1, "fieldset", 23);
151
+ i0.ɵɵelement(2, "legend", 24);
152
+ i0.ɵɵtemplate(3, CaseEditPageComponent_form_10_ccd_case_edit_form_3_Template, 1, 4, "ccd-case-edit-form", 25);
153
+ i0.ɵɵtemplate(4, CaseEditPageComponent_form_10_div_4_Template, 5, 6, "div", 26);
154
+ i0.ɵɵelementEnd();
155
+ i0.ɵɵelementStart(5, "div", 27)(6, "button", 28);
156
+ i0.ɵɵlistener("click", function CaseEditPageComponent_form_10_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r21); const ctx_r22 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r22.toPreviousPage()); });
157
+ i0.ɵɵpipe(7, "async");
158
+ i0.ɵɵtext(8);
159
+ i0.ɵɵpipe(9, "rpxTranslate");
160
+ i0.ɵɵelementEnd();
161
+ i0.ɵɵelementStart(10, "button", 29);
162
+ i0.ɵɵtext(11);
163
+ i0.ɵɵpipe(12, "rpxTranslate");
164
+ i0.ɵɵelementEnd()();
165
+ i0.ɵɵelementStart(13, "p", 30)(14, "a", 31);
166
+ i0.ɵɵlistener("click", function CaseEditPageComponent_form_10_Template_a_click_14_listener() { i0.ɵɵrestoreView(_r21); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r23.cancel()); });
167
+ i0.ɵɵtext(15);
168
+ i0.ɵɵpipe(16, "rpxTranslate");
169
+ i0.ɵɵelementEnd()()();
170
+ } if (rf & 2) {
171
+ const ctx_r7 = i0.ɵɵnextContext();
172
+ i0.ɵɵproperty("formGroup", ctx_r7.editForm);
173
+ i0.ɵɵadvance(3);
174
+ i0.ɵɵproperty("ngIf", !ctx_r7.currentPage.isMultiColumn());
175
+ i0.ɵɵadvance(1);
176
+ i0.ɵɵproperty("ngIf", ctx_r7.currentPage.isMultiColumn());
177
+ i0.ɵɵadvance(2);
178
+ i0.ɵɵproperty("disabled", !i0.ɵɵpipeBind1(7, 8, ctx_r7.hasPreviousPage$));
179
+ i0.ɵɵadvance(2);
180
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 10, "Previous"), " ");
181
+ i0.ɵɵadvance(2);
182
+ i0.ɵɵproperty("disabled", ctx_r7.submitting());
183
+ i0.ɵɵadvance(1);
184
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 12, ctx_r7.triggerText));
185
+ i0.ɵɵadvance(4);
186
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(16, 14, ctx_r7.getCancelText()));
187
+ } }
188
+ function CaseEditPageComponent_ccd_case_event_completion_11_Template(rf, ctx) { if (rf & 1) {
189
+ const _r25 = i0.ɵɵgetCurrentView();
190
+ i0.ɵɵelementStart(0, "ccd-case-event-completion", 38);
191
+ i0.ɵɵlistener("eventCanBeCompleted", function CaseEditPageComponent_ccd_case_event_completion_11_Template_ccd_case_event_completion_eventCanBeCompleted_0_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r24.onEventCanBeCompleted($event)); });
192
+ i0.ɵɵelementEnd();
193
+ } if (rf & 2) {
194
+ const ctx_r8 = i0.ɵɵnextContext();
195
+ i0.ɵɵproperty("eventCompletionParams", ctx_r8.caseEdit.eventCompletionParams);
196
+ } }
197
+ export class CaseEditPageComponent {
198
+ constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService, addressService) {
199
+ this.caseEdit = caseEdit;
200
+ this.route = route;
201
+ this.formValueService = formValueService;
202
+ this.formErrorService = formErrorService;
203
+ this.cdRef = cdRef;
204
+ this.pageValidationService = pageValidationService;
205
+ this.dialog = dialog;
206
+ this.caseFieldService = caseFieldService;
207
+ this.caseEditDataService = caseEditDataService;
208
+ this.loadingService = loadingService;
209
+ this.validPageListCaseFieldsService = validPageListCaseFieldsService;
210
+ this.addressService = addressService;
211
+ this.triggerTextStart = CaseEditPageComponent.TRIGGER_TEXT_START;
212
+ this.triggerTextIgnoreWarnings = CaseEditPageComponent.TRIGGER_TEXT_CONTINUE;
213
+ this.formValuesChanged = false;
214
+ this.pageChangeSubject = new Subject();
215
+ this.validationErrors = [];
216
+ this.hasPreviousPage$ = new BehaviorSubject(false);
217
+ this.callbackErrorsSubject = new Subject();
218
+ }
219
+ static scrollToTop() {
220
+ window.scrollTo(0, 0);
221
+ }
222
+ static setFocusToTop() {
223
+ const topContainer = document.getElementById('top');
224
+ if (topContainer) {
225
+ topContainer.focus();
226
+ }
227
+ }
228
+ ngOnInit() {
229
+ initDialog();
230
+ this.eventTrigger = this.caseEdit.eventTrigger;
231
+ this.editForm = this.caseEdit.form;
232
+ this.wizard = this.caseEdit.wizard;
233
+ this.caseFields = this.getCaseFields();
234
+ this.syncCaseEditDataService();
235
+ this.routeParamsSub = this.route.params
236
+ .subscribe(params => {
237
+ const pageId = params['page'];
238
+ /* istanbul ignore else */
239
+ if (!this.currentPage || pageId !== this.currentPage?.id) {
240
+ const page = this.caseEdit.getPage(pageId);
241
+ if (page) {
242
+ this.currentPage = page;
243
+ }
244
+ else {
245
+ if (this.currentPage) {
246
+ return this.next();
247
+ }
248
+ else {
249
+ return this.first();
250
+ }
251
+ }
252
+ this.hasPreviousPage$.next(this.caseEdit.hasPrevious(this.currentPage?.id));
253
+ }
254
+ this.triggerText = this.getTriggerText();
255
+ });
256
+ CaseEditPageComponent.setFocusToTop();
257
+ this.caseEditFormSub = this.caseEditDataService.caseEditForm$.subscribe({
258
+ next: editForm => this.editForm = editForm
259
+ });
260
+ this.caseIsLinkedCasesJourneyAtFinalStepSub =
261
+ this.caseEditDataService.caseIsLinkedCasesJourneyAtFinalStep$.subscribe({
262
+ next: isLinkedCasesJourneyAtFinalStep => this.isLinkedCasesJourneyAtFinalStep = isLinkedCasesJourneyAtFinalStep
263
+ });
264
+ this.caseTriggerSubmitEventSub = this.caseEditDataService.caseTriggerSubmitEvent$.subscribe({
265
+ next: state => {
266
+ if (state) {
267
+ this.caseEditDataService.setTriggerSubmitEvent(false);
268
+ this.submit();
269
+ }
270
+ }
271
+ });
272
+ }
273
+ ngAfterViewChecked() {
274
+ this.cdRef.detectChanges();
275
+ }
276
+ ngOnDestroy() {
277
+ this.routeParamsSub?.unsubscribe();
278
+ this.caseEditFormSub?.unsubscribe();
279
+ this.caseIsLinkedCasesJourneyAtFinalStepSub?.unsubscribe();
280
+ this.caseTriggerSubmitEventSub?.unsubscribe();
281
+ this.validateSub?.unsubscribe();
282
+ this.dialogRefAfterClosedSub?.unsubscribe();
283
+ this.saveDraftSub?.unsubscribe();
284
+ this.caseFormValidationErrorsSub?.unsubscribe();
285
+ }
286
+ applyValuesChanged(valuesChanged) {
287
+ this.formValuesChanged = valuesChanged;
288
+ }
289
+ first() {
290
+ return this.caseEdit.first();
291
+ }
292
+ currentPageIsNotValid() {
293
+ this.failingCaseFields = this.pageValidationService.getInvalidFields(this.currentPage, this.editForm);
294
+ return this.failingCaseFields.length > 0 ||
295
+ (this.isLinkedCasesJourney() && !this.isLinkedCasesJourneyAtFinalStep);
296
+ }
297
+ isLinkedCasesJourney() {
298
+ return FieldsUtils.containsLinkedCasesCaseField(this.currentPage.case_fields);
299
+ }
300
+ /**
301
+ * caseEventData.event_data contains all the values from the previous pages so we set caseEventData.data = caseEventData.event_data
302
+ * This builds the form with data from the previous pages
303
+ * EUI-3732 - Breathing space data not persisted on Previous button click with ExpUI Demo
304
+ */
305
+ toPreviousPage() {
306
+ this.caseEditDataService.clearFormValidationErrors();
307
+ const caseEventData = this.buildCaseEventData(true);
308
+ caseEventData.data = caseEventData.event_data;
309
+ this.updateFormData(caseEventData);
310
+ this.previous();
311
+ CaseEditPageComponent.setFocusToTop();
312
+ }
313
+ // Adding validation message to show it as Error Summary
314
+ generateErrorMessage(fields, container, path) {
315
+ const group = container || this.editForm.controls['data'];
316
+ let validErrorFieldFound = false;
317
+ let validationErrorAmount = this.validationErrors.length;
318
+ const failingFields = fields.filter(casefield => !this.caseFieldService.isReadOnly(casefield))
319
+ .filter(casefield => !this.pageValidationService.isHidden(casefield, this.editForm, path));
320
+ // note that thougn these checks are on getinvalidfields they are needed for sub field checks
321
+ failingFields
322
+ .forEach(casefield => {
323
+ let errorPresent = true;
324
+ validErrorFieldFound = true;
325
+ const fieldElement = FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])
326
+ ? group.get(`${casefield.id}_judicialUserControl`)
327
+ : group.get(casefield.id);
328
+ if (fieldElement) {
329
+ const label = casefield.label || 'Field';
330
+ let id = casefield.id;
331
+ if (fieldElement['component'] && fieldElement['component'].parent) {
332
+ if (fieldElement['component'].idPrefix.indexOf(`_${id}_`) === -1) {
333
+ id = `${fieldElement['component'].idPrefix}${id}`;
334
+ }
335
+ else {
336
+ id = `${fieldElement['component'].idPrefix}`;
337
+ }
338
+ }
339
+ if (fieldElement.hasError('required')) {
340
+ if (casefield.id === 'AddressLine1') {
341
+ // EUI-1067 - Display more relevant error message to user and correctly navigate to the field
342
+ this.addressService.setMandatoryError(true);
343
+ this.caseEditDataService.addFormValidationError({ id: `${path}_${path}`, message: `An address is required` });
344
+ }
345
+ else {
346
+ this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is required`, label });
347
+ }
348
+ fieldElement.markAsDirty();
349
+ // For the JudicialUser field type, an error needs to be set on the component so that an error message
350
+ // can be displayed at field level
351
+ if (FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])) {
352
+ fieldElement['component'].errors = { required: true };
353
+ }
354
+ }
355
+ else if (fieldElement.hasError('pattern')) {
356
+ this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is not valid`, label });
357
+ fieldElement.markAsDirty();
358
+ }
359
+ else if (fieldElement.hasError('minlength')) {
360
+ this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is below the minimum length`, label });
361
+ fieldElement.markAsDirty();
362
+ }
363
+ else if (fieldElement.hasError('maxlength')) {
364
+ this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% exceeds the maximum length`, label });
365
+ fieldElement.markAsDirty();
366
+ }
367
+ else if (fieldElement.invalid) {
368
+ if (casefield.isComplex()) {
369
+ errorPresent = this.generateErrorMessage(casefield.field_type.complex_fields, fieldElement, id);
370
+ }
371
+ else if (casefield.isCollection() && casefield.field_type.collection_field_type.type === 'Complex') {
372
+ const fieldArray = fieldElement;
373
+ if (fieldArray['component'] && fieldArray['component']['collItems'] && fieldArray['component']['collItems'].length > 0) {
374
+ id = `${fieldArray['component']['collItems'][0].prefix}`;
375
+ }
376
+ fieldArray.controls.forEach((c) => {
377
+ errorPresent = this.generateErrorMessage(casefield.field_type.collection_field_type.complex_fields, c.get('value'), id);
378
+ });
379
+ }
380
+ else if (FieldsUtils.isCaseFieldOfType(casefield, ['FlagLauncher'])) {
381
+ this.validationErrors.push({
382
+ id,
383
+ message: FieldsUtils.getValidationErrorMessageForFlagLauncherCaseField(casefield)
384
+ });
385
+ }
386
+ else {
387
+ this.validationErrors.push({ id, message: `Select or fill the required ${casefield.label} field` });
388
+ fieldElement.markAsDirty();
389
+ }
390
+ }
391
+ }
392
+ else {
393
+ validErrorFieldFound = false;
394
+ }
395
+ if (!errorPresent && this.validationErrors.length === validationErrorAmount) {
396
+ // if no error messages have been added in internal field despite parent field failing
397
+ this.validationErrors.push({ id: casefield.id, message: `A field that is causing an error is ${casefield.id} but it is not producing a valid error message. Please ensure all details are correct` });
398
+ }
399
+ });
400
+ if (!validErrorFieldFound) {
401
+ path ? this.validationErrors.push({ id: path, message: `There is an internal issue with ${path} fields. The field that is causing the error cannot be determined but there is an error present` })
402
+ : this.validationErrors.push({ id: null, message: `The field that is causing the error cannot be determined but there is an error present` });
403
+ }
404
+ else if (this.validationErrors.length === validationErrorAmount) {
405
+ // if no error messages have been generated
406
+ if (path) {
407
+ return false;
408
+ }
409
+ else {
410
+ this.validationErrors.push({ id: null, message: `The field that is causing the error cannot be determined but there is an error present. Please fill in more of the form` });
411
+ }
412
+ }
413
+ CaseEditPageComponent.scrollToTop();
414
+ return true;
415
+ }
416
+ navigateToErrorElement(elementId) {
417
+ /* istanbul ignore else */
418
+ if (elementId) {
419
+ const htmlElement = document.getElementById(elementId);
420
+ /* istanbul ignore else */
421
+ if (htmlElement) {
422
+ htmlElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
423
+ htmlElement.focus();
424
+ }
425
+ }
426
+ }
427
+ submit() {
428
+ this.caseEditDataService.clearFormValidationErrors();
429
+ console.log('Page submit event fired!');
430
+ if (this.currentPageIsNotValid()) {
431
+ // The generateErrorMessage method filters out the hidden fields.
432
+ // The error message for LinkedCases journey will never get displayed because the
433
+ // LinkedCases is configured with ComponentLauncher field as visible and caseLinks field as hidden.
434
+ if (this.isLinkedCasesJourney()) {
435
+ this.validationErrors.push({ id: 'next-button', message: 'Please select Next to go to the next page' });
436
+ CaseEditPageComponent.scrollToTop();
437
+ }
438
+ else {
439
+ this.generateErrorMessage(this.failingCaseFields);
440
+ }
441
+ }
442
+ if (!this.caseEdit.isSubmitting && !this.currentPageIsNotValid()) {
443
+ this.addressService.setMandatoryError(false);
444
+ console.log('Case Edit Error', this.caseEdit.error);
445
+ if (this.caseEdit.validPageList.findIndex(page => page.id === this.currentPage.id) === -1) {
446
+ this.caseEdit.validPageList.push(this.currentPage);
447
+ }
448
+ this.caseEdit.isSubmitting = true;
449
+ this.caseEdit.error = null;
450
+ const caseEventData = this.buildCaseEventData();
451
+ const loadingSpinnerToken = this.loadingService.register();
452
+ this.validateSub = this.caseEdit.validate(caseEventData, this.currentPage.id)
453
+ .pipe(finalize(() => {
454
+ this.loadingService.unregister(loadingSpinnerToken);
455
+ }))
456
+ .subscribe((jsonData) => {
457
+ /* istanbul ignore else */
458
+ if (jsonData) {
459
+ this.updateFormData(jsonData);
460
+ }
461
+ this.saveDraft();
462
+ this.next();
463
+ }, error => {
464
+ this.handleError(error);
465
+ });
466
+ CaseEditPageComponent.scrollToTop();
467
+ // Remove all JudicialUser FormControls with the ID suffix "_judicialUserControl" because these are not
468
+ // intended to be present in the Case Event data (they are added only for value selection and validation
469
+ // purposes)
470
+ this.removeAllJudicialUserFormControls(this.currentPage, this.editForm);
471
+ }
472
+ CaseEditPageComponent.setFocusToTop();
473
+ }
474
+ updateFormData(jsonData) {
475
+ for (const caseFieldId of Object.keys(jsonData.data)) {
476
+ /* istanbul ignore else */
477
+ if (this.pageWithFieldExists(caseFieldId)) {
478
+ this.updateEventTriggerCaseFields(caseFieldId, jsonData, this.caseEdit.eventTrigger);
479
+ this.updateFormControlsValue(this.editForm, caseFieldId, jsonData.data[caseFieldId]);
480
+ }
481
+ }
482
+ }
483
+ // we do the check, becasue the data comes from the external source
484
+ pageWithFieldExists(caseFieldId) {
485
+ return this.wizard.findWizardPage(caseFieldId);
486
+ }
487
+ updateEventTriggerCaseFields(caseFieldId, jsonData, eventTrigger) {
488
+ /* istanbul ignore else */
489
+ if (eventTrigger?.case_fields) {
490
+ eventTrigger.case_fields
491
+ .filter(element => element.id === caseFieldId)
492
+ .forEach(element => {
493
+ if (this.isAnObject(element.value)) {
494
+ const updatedJsonDataObject = this.updateJsonDataObject(caseFieldId, jsonData, element);
495
+ element.value = {
496
+ ...element.value,
497
+ ...updatedJsonDataObject,
498
+ };
499
+ }
500
+ else {
501
+ element.value = jsonData.data[caseFieldId];
502
+ }
503
+ });
504
+ }
505
+ }
506
+ updateJsonDataObject(caseFieldId, jsonData, element) {
507
+ return Object.keys(jsonData.data[caseFieldId]).reduce((acc, key) => {
508
+ const elementValue = element.value[key];
509
+ const jsonDataValue = jsonData.data[caseFieldId][key];
510
+ const hasElementGotValueProperty = this.isAnObject(elementValue) && elementValue.value !== undefined;
511
+ const jsonDataOrElementValue = jsonDataValue?.value !== null && jsonDataValue?.value !== undefined ? jsonDataValue : elementValue;
512
+ return {
513
+ ...acc,
514
+ [`${key}`]: hasElementGotValueProperty ? jsonDataOrElementValue : jsonDataValue
515
+ };
516
+ }, {});
517
+ }
518
+ isAnObject(property) {
519
+ return typeof property === 'object' && !Array.isArray(property) && property !== null;
520
+ }
521
+ updateFormControlsValue(formGroup, caseFieldId, value) {
522
+ const theControl = formGroup.controls['data'].get(caseFieldId);
523
+ if (theControl && theControl['status'] !== 'DISABLED') {
524
+ if (Array.isArray(theControl.value) && Array.isArray(value)
525
+ && theControl.value.length > value.length && theControl['caseField']
526
+ && theControl['caseField']['display_context'] && theControl['caseField']['display_context'] === 'OPTIONAL'
527
+ && theControl['caseField']['field_type'] && theControl['caseField']['field_type']['type'] === 'Collection') {
528
+ // do nothing
529
+ }
530
+ else {
531
+ theControl.patchValue(value);
532
+ }
533
+ }
534
+ }
535
+ callbackErrorsNotify(errorContext) {
536
+ this.caseEdit.ignoreWarning = errorContext.ignoreWarning;
537
+ this.triggerText = errorContext.triggerText;
538
+ }
539
+ next() {
540
+ if (this.canNavigateToSummaryPage()) {
541
+ this.caseEdit.isSubmitting = false;
542
+ }
543
+ this.resetErrors();
544
+ this.formValuesChanged = false;
545
+ this.pageChangeSubject.next(true);
546
+ return this.caseEdit.next(this.currentPage.id);
547
+ }
548
+ previous() {
549
+ this.resetErrors();
550
+ this.saveDraft();
551
+ this.formValuesChanged = false;
552
+ this.pageChangeSubject.next(true);
553
+ return this.caseEdit.previous(this.currentPage.id);
554
+ }
555
+ hasPrevious() {
556
+ return this.caseEdit.hasPrevious(this.currentPage.id);
557
+ }
558
+ cancel() {
559
+ if (this.eventTrigger.can_save_draft) {
560
+ if (this.formValuesChanged) {
561
+ const dialogRef = this.dialog.open(SaveOrDiscardDialogComponent, this.dialogConfig);
562
+ this.dialogRefAfterClosedSub = dialogRef.afterClosed().subscribe(result => {
563
+ if (result === 'Discard') {
564
+ this.discard();
565
+ }
566
+ else if (result === 'Save') {
567
+ const draftCaseEventData = this.formValueService.sanitise(this.editForm.value);
568
+ if (this.route.snapshot.queryParamMap.get(CaseEditComponent.ORIGIN_QUERY_PARAM) === 'viewDraft') {
569
+ this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.RESUMED_FORM_SAVE, data: draftCaseEventData });
570
+ }
571
+ else {
572
+ this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.NEW_FORM_SAVE, data: draftCaseEventData });
573
+ }
574
+ }
575
+ });
576
+ }
577
+ else {
578
+ this.discard();
579
+ }
580
+ }
581
+ else {
582
+ this.caseEdit.cancelled.emit();
583
+ }
584
+ this.caseEditDataService.clearFormValidationErrors();
585
+ }
586
+ submitting() {
587
+ return this.caseEdit.isSubmitting;
588
+ }
589
+ getCaseId() {
590
+ return (this.caseEdit.caseDetails ? this.caseEdit.caseDetails.case_id : '');
591
+ }
592
+ getCaseTitle() {
593
+ return (this.caseEdit.caseDetails && this.caseEdit.caseDetails.state &&
594
+ this.caseEdit.caseDetails.state.title_display ? this.caseEdit.caseDetails.state.title_display : '');
595
+ }
596
+ getCancelText() {
597
+ return this.eventTrigger.can_save_draft ? 'Return to case list' : 'Cancel';
598
+ }
599
+ canNavigateToSummaryPage() {
600
+ const nextPage = this.caseEdit.getNextPage({
601
+ currentPageId: this.currentPage?.id,
602
+ wizard: this.wizard,
603
+ eventTrigger: this.eventTrigger,
604
+ form: this.editForm
605
+ });
606
+ return this.eventTrigger.show_summary || !!nextPage;
607
+ }
608
+ getTriggerText() {
609
+ const textBasedOnCanSaveDraft = this.eventTrigger && this.eventTrigger.can_save_draft
610
+ ? CaseEditPageComponent.TRIGGER_TEXT_SAVE
611
+ : CaseEditPageComponent.TRIGGER_TEXT_START;
612
+ return this.canNavigateToSummaryPage()
613
+ ? textBasedOnCanSaveDraft
614
+ : 'Submit';
615
+ }
616
+ discard() {
617
+ if (this.route.snapshot.queryParamMap.get(CaseEditComponent.ORIGIN_QUERY_PARAM) === 'viewDraft') {
618
+ this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.RESUMED_FORM_DISCARD });
619
+ }
620
+ else {
621
+ this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.NEW_FORM_DISCARD });
622
+ }
623
+ }
624
+ handleError(error) {
625
+ this.caseEdit.isSubmitting = false;
626
+ this.caseEdit.error = error;
627
+ this.caseEdit.callbackErrorsSubject.next(this.caseEdit.error);
628
+ this.callbackErrorsSubject.next(this.caseEdit.error);
629
+ /* istanbul ignore else */
630
+ if (this.caseEdit.error.details) {
631
+ this.formErrorService
632
+ .mapFieldErrors(this.caseEdit.error.details.field_errors, this.editForm?.controls?.['data'], 'validation');
633
+ }
634
+ console.log('handleError ', error);
635
+ }
636
+ resetErrors() {
637
+ this.caseEdit.error = null;
638
+ this.caseEdit.ignoreWarning = false;
639
+ this.triggerText = this.getTriggerText();
640
+ this.caseEdit.callbackErrorsSubject.next(null);
641
+ }
642
+ saveDraft() {
643
+ if (this.eventTrigger.can_save_draft) {
644
+ const draftCaseEventData = this.formValueService.sanitise(this.editForm.value);
645
+ draftCaseEventData.event_token = this.eventTrigger.event_token;
646
+ draftCaseEventData.ignore_warning = this.caseEdit.ignoreWarning;
647
+ this.saveDraftSub = this.caseEdit.saveDraft(draftCaseEventData).subscribe((draft) => this.eventTrigger.case_id = DRAFT_PREFIX + draft.id, error => this.handleError(error));
648
+ }
649
+ }
650
+ getCaseFields() {
651
+ if (this.caseEdit.caseDetails) {
652
+ return FieldsUtils.getCaseFields(this.caseEdit.caseDetails);
653
+ }
654
+ return this.eventTrigger.case_fields;
655
+ }
656
+ getCaseFieldsFromCurrentAndPreviousPages() {
657
+ const result = [];
658
+ this.wizard.pages.forEach(page => {
659
+ if (page.order <= this.currentPage.order) {
660
+ page.case_fields.forEach(field => result.push(field));
661
+ }
662
+ });
663
+ return result;
664
+ }
665
+ buildCaseEventData(fromPreviousPage) {
666
+ const formValue = this.editForm.value;
667
+ // Get the CaseEventData for the current page.
668
+ const pageFields = this.currentPage.case_fields;
669
+ const pageEventData = this.getFilteredCaseEventData(pageFields, formValue, true);
670
+ // Get the CaseEventData for the entire form (all pages).
671
+ const allCaseFields = this.getCaseFieldsFromCurrentAndPreviousPages();
672
+ const formEventData = this.getFilteredCaseEventData(allCaseFields, formValue, false, true, fromPreviousPage);
673
+ // Now here's the key thing - the pageEventData has a property called `event_data` and
674
+ // we need THAT to be the value of the entire form: `formEventData.data`.
675
+ pageEventData.event_data = formEventData.data;
676
+ // Finalise the CaseEventData object.
677
+ pageEventData.event_token = this.eventTrigger.event_token;
678
+ pageEventData.ignore_warning = this.caseEdit.ignoreWarning;
679
+ // Finally, try to set up the case_reference.
680
+ if (this.caseEdit.caseDetails) {
681
+ pageEventData.case_reference = this.caseEdit.caseDetails.case_id;
682
+ }
683
+ // Return the now hopefully sane CaseEventData.
684
+ return pageEventData;
685
+ }
686
+ /**
687
+ * Abstracted this method from buildCaseEventData to remove duplication.
688
+ * @param caseFields The fields to filter the data by.
689
+ * @param formValue The original value of the form.
690
+ * @param clearEmpty Whether or not to clear out empty values.
691
+ * @param clearNonCase Whether or not to clear out fields that are not part of the case.
692
+ * @returns CaseEventData for the specified parameters.
693
+ */
694
+ getFilteredCaseEventData(caseFields, formValue, clearEmpty = false, clearNonCase = false, fromPreviousPage = false) {
695
+ // Get the data for the fields specified.
696
+ const formFields = this.formValueService.filterCurrentPageFields(caseFields, formValue);
697
+ // Sort out the dynamic lists.
698
+ this.formValueService.sanitiseDynamicLists(caseFields, formFields);
699
+ // Get hold of the CaseEventData.
700
+ const caseEventData = this.formValueService.sanitise(formFields);
701
+ // delete fields which are not part of the case event journey wizard pages case fields
702
+ this.validPageListCaseFieldsService.deleteNonValidatedFields(this.caseEdit.validPageList, caseEventData.data, this.eventTrigger.case_fields, fromPreviousPage, this.editForm.controls['data'].value);
703
+ // Tidy it up before we return it.
704
+ this.formValueService.removeUnnecessaryFields(caseEventData.data, caseFields, clearEmpty, clearNonCase, fromPreviousPage, this.currentPage.case_fields);
705
+ return caseEventData;
706
+ }
707
+ syncCaseEditDataService() {
708
+ this.caseEditDataService.setCaseDetails(this.caseEdit.caseDetails);
709
+ this.caseEditDataService.setCaseEventTriggerName(this.eventTrigger.name);
710
+ this.caseEditDataService.setCaseTitle(this.getCaseTitle());
711
+ this.caseEditDataService.setCaseEditForm(this.editForm);
712
+ this.caseFormValidationErrorsSub = this.caseEditDataService.caseFormValidationErrors$.subscribe({
713
+ next: (validationErrors) => this.validationErrors = validationErrors
714
+ });
715
+ }
716
+ getRpxTranslatePipeArgs(fieldLabel) {
717
+ return fieldLabel ? ({ FIELDLABEL: fieldLabel }) : null;
718
+ }
719
+ onEventCanBeCompleted(eventCanBeCompleted) {
720
+ this.caseEdit.onEventCanBeCompleted({
721
+ eventTrigger: this.eventTrigger,
722
+ eventCanBeCompleted,
723
+ caseDetails: this.caseEdit.caseDetails,
724
+ form: this.editForm,
725
+ submit: this.caseEdit.submit,
726
+ });
727
+ }
728
+ removeAllJudicialUserFormControls(page, editForm) {
729
+ page.case_fields.forEach(caseField => {
730
+ if (FieldsUtils.isCaseFieldOfType(caseField, ['JudicialUser'])) {
731
+ editForm.controls['data'].removeControl(`${caseField.id}_judicialUserControl`);
732
+ }
733
+ });
734
+ }
735
+ }
736
+ CaseEditPageComponent.RESUMED_FORM_DISCARD = 'RESUMED_FORM_DISCARD';
737
+ CaseEditPageComponent.NEW_FORM_DISCARD = 'NEW_FORM_DISCARD';
738
+ CaseEditPageComponent.NEW_FORM_SAVE = 'NEW_FORM_CHANGED_SAVE';
739
+ CaseEditPageComponent.RESUMED_FORM_SAVE = 'RESUMED_FORM_SAVE';
740
+ CaseEditPageComponent.TRIGGER_TEXT_START = 'Continue';
741
+ CaseEditPageComponent.TRIGGER_TEXT_SAVE = 'Save and continue';
742
+ CaseEditPageComponent.TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Continue';
743
+ CaseEditPageComponent.ɵfac = function CaseEditPageComponent_Factory(t) { return new (t || CaseEditPageComponent)(i0.ɵɵdirectiveInject(i1.CaseEditComponent), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i3.FormValueService), i0.ɵɵdirectiveInject(i4.FormErrorService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i5.PageValidationService), i0.ɵɵdirectiveInject(i6.MatLegacyDialog), i0.ɵɵdirectiveInject(i7.CaseFieldService), i0.ɵɵdirectiveInject(i8.CaseEditDataService), i0.ɵɵdirectiveInject(i9.LoadingService), i0.ɵɵdirectiveInject(i10.ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(i9.AddressesService)); };
744
+ CaseEditPageComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditPageComponent, selectors: [["ccd-case-edit-page"]], decls: 12, vars: 11, consts: [[4, "ngIf"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], [3, "error"], [3, "triggerTextContinue", "triggerTextIgnore", "callbackErrorsSubject", "callbackErrorsContext"], [1, "width-50"], ["class", "form", 3, "formGroup", "submit", 4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], ["class", "govuk-heading-l", 4, "ngIf"], [1, "govuk-heading-l"], [1, "govuk-caption-l"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], ["class", "govuk-error-summary__body", 4, "ngFor", "ngForOf"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [1, "validation-error", 3, "click"], [1, "form", 3, "formGroup", "submit"], ["id", "fieldset-case-data"], [2, "display", "none"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged", 4, "ngIf"], ["class", "grid-row", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged"], [1, "grid-row"], [1, "column-two-thirds", "rightBorderSeparator"], ["id", "caseEditForm1", 3, "fields", "formGroup", "caseFields"], [1, "column-one-third"], ["id", "caseEditForm2", 3, "fields", "formGroup", "caseFields"], [3, "eventCompletionParams", "eventCanBeCompleted"]], template: function CaseEditPageComponent_Template(rf, ctx) { if (rf & 1) {
745
+ i0.ɵɵtemplate(0, CaseEditPageComponent_ng_container_0_Template, 3, 2, "ng-container", 0);
746
+ i0.ɵɵtemplate(1, CaseEditPageComponent_div_1_Template, 1, 0, "div", 1);
747
+ i0.ɵɵtemplate(2, CaseEditPageComponent_ng_template_2_Template, 2, 5, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
748
+ i0.ɵɵtemplate(4, CaseEditPageComponent_ng_template_4_Template, 1, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
749
+ i0.ɵɵtemplate(6, CaseEditPageComponent_div_6_Template, 5, 4, "div", 4);
750
+ i0.ɵɵelement(7, "ccd-case-edit-generic-errors", 5);
751
+ i0.ɵɵelementStart(8, "ccd-callback-errors", 6);
752
+ i0.ɵɵlistener("callbackErrorsContext", function CaseEditPageComponent_Template_ccd_callback_errors_callbackErrorsContext_8_listener($event) { return ctx.callbackErrorsNotify($event); });
753
+ i0.ɵɵelementEnd();
754
+ i0.ɵɵelementStart(9, "div", 7);
755
+ i0.ɵɵtemplate(10, CaseEditPageComponent_form_10_Template, 17, 16, "form", 8);
756
+ i0.ɵɵelementEnd();
757
+ i0.ɵɵtemplate(11, CaseEditPageComponent_ccd_case_event_completion_11_Template, 1, 1, "ccd-case-event-completion", 9);
758
+ } if (rf & 2) {
759
+ const _r2 = i0.ɵɵreference(3);
760
+ const _r4 = i0.ɵɵreference(5);
761
+ i0.ɵɵproperty("ngIf", ctx.currentPage);
762
+ i0.ɵɵadvance(1);
763
+ i0.ɵɵproperty("ngIf", ctx.getCaseTitle())("ngIfThen", _r2)("ngIfElse", _r4);
764
+ i0.ɵɵadvance(5);
765
+ i0.ɵɵproperty("ngIf", ctx.validationErrors.length > 0);
766
+ i0.ɵɵadvance(1);
767
+ i0.ɵɵproperty("error", ctx.caseEdit.error);
768
+ i0.ɵɵadvance(1);
769
+ i0.ɵɵproperty("triggerTextContinue", ctx.triggerTextStart)("triggerTextIgnore", ctx.triggerTextIgnoreWarnings)("callbackErrorsSubject", ctx.caseEdit.callbackErrorsSubject);
770
+ i0.ɵɵadvance(2);
771
+ i0.ɵɵproperty("ngIf", ctx.currentPage);
772
+ i0.ɵɵadvance(1);
773
+ i0.ɵɵproperty("ngIf", ctx.caseEdit.isEventCompletionChecksRequired);
774
+ } }, styles: [".rightBorderSeparator[_ngcontent-%COMP%]{border-right-width:4px;border-right-color:#ffcc02;border-right-style:solid}.validation-error[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:#d4351c}"] });
775
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditPageComponent, [{
776
+ type: Component,
777
+ args: [{ selector: 'ccd-case-edit-page', template: "<ng-container *ngIf=\"currentPage\">\n <h1 *ngIf=\"!currentPage.label\" class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n <ng-container *ngIf=\"currentPage.label\">\n <span class=\"govuk-caption-l\">{{ eventTrigger.name | rpxTranslate}}</span>\n <h1 class=\"govuk-heading-l\">{{currentPage.label | rpxTranslate}}</h1>\n </ng-container>\n</ng-container>\n\n<!--Case ID or Title -->\n<div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n<ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: caseFields : editForm.controls['data']\"></ccd-markdown>\n</ng-template>\n<ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n</ng-template>\n\n<!-- Error message summary -->\n<div *ngIf=\"validationErrors.length > 0\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"govuk-error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{'There is a problem' | rpxTranslate}}\n </h2>\n <div *ngFor=\"let validationError of validationErrors\" class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a (click)=\"navigateToErrorElement(validationError.id)\" class=\"validation-error\">\n {{ validationError.message | rpxTranslate: getRpxTranslatePipeArgs(validationError.label | rpxTranslate): null }}\n </a>\n </li>\n </ul>\n </div>\n</div>\n\n<ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<div class=\"width-50\">\n <form *ngIf=\"currentPage\" class=\"form\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <fieldset id=\"fieldset-case-data\">\n <legend style=\"display: none;\"></legend>\n <!-- single column -->\n <ccd-case-edit-form id='caseEditForm' *ngIf=\"!currentPage.isMultiColumn()\" [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"\n [pageChangeSubject]=\"pageChangeSubject\"\n (valuesChanged)=\"applyValuesChanged($event)\"></ccd-case-edit-form>\n <!-- two columns -->\n <div *ngIf=\"currentPage.isMultiColumn()\" class=\"grid-row\">\n <div class=\"column-two-thirds rightBorderSeparator\">\n <ccd-case-edit-form id='caseEditForm1' [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n <div class=\"column-one-third\">\n <ccd-case-edit-form id='caseEditForm2' [fields]=\"currentPage.getCol2Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n </div>\n </fieldset>\n\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!(hasPreviousPage$ | async)\" (click)=\"toPreviousPage()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button class=\"button\" type=\"submit\" [disabled]=\"submitting()\">{{triggerText | rpxTranslate}}</button>\n </div>\n\n <p class=\"cancel\"><a (click)=\"cancel()\" href=\"javascript:void(0)\">{{getCancelText() | rpxTranslate}}</a></p>\n </form>\n</div>\n\n<ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n</ccd-case-event-completion>\n", styles: [".rightBorderSeparator{border-right-width:4px;border-right-color:#ffcc02;border-right-style:solid}.validation-error{cursor:pointer;text-decoration:underline;color:#d4351c}\n"] }]
778
+ }], function () { return [{ type: i1.CaseEditComponent }, { type: i2.ActivatedRoute }, { type: i3.FormValueService }, { type: i4.FormErrorService }, { type: i0.ChangeDetectorRef }, { type: i5.PageValidationService }, { type: i6.MatLegacyDialog }, { type: i7.CaseFieldService }, { type: i8.CaseEditDataService }, { type: i9.LoadingService }, { type: i10.ValidPageListCaseFieldsService }, { type: i9.AddressesService }]; }, null); })();
779
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2Nhc2UtZWRpdC1wYWdlL2Nhc2UtZWRpdC1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtcGFnZS9jYXNlLWVkaXQtcGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUUsZUFBZSxJQUFJLFNBQVMsRUFBMkMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQTJCLE1BQU0saUNBQWlDLENBQUM7QUFJL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxF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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2csIE1hdExlZ2FjeURpYWxvZ0NvbmZpZyBhcyBNYXREaWFsb2dDb25maWd9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2FzZUVkaXREYXRhU2VydmljZSwgQ2FzZUVkaXRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2Nhc2UtZWRpdC1kYXRhJztcbmltcG9ydCB7IENhc2VFdmVudERhdGEgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vY2FzZS1ldmVudC1kYXRhLm1vZGVsJztcbmltcG9ydCB7IENhc2VFdmVudFRyaWdnZXIgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vY2FzZS12aWV3L2Nhc2UtZXZlbnQtdHJpZ2dlci5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBEUkFGVF9QUkVGSVggfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZHJhZnQubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc2VzU2VydmljZSwgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlRmllbGRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2FzZS1maWVsZHMvY2FzZS1maWVsZC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGRzJztcbmltcG9ydCB7IEZvcm1FcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtL2Zvcm0tZXJyb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtVmFsdWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS9mb3JtLXZhbHVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZU9yRGlzY2FyZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3Mvc2F2ZS1vci1kaXNjYXJkLWRpYWxvZyc7XG5pbXBvcnQgeyBDYWxsYmFja0Vycm9yc0NvbnRleHQgfSBmcm9tICcuLi8uLi9lcnJvci9kb21haW4vZXJyb3ItY29udGV4dCc7XG5pbXBvcnQgeyBpbml0RGlhbG9nIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBDYXNlRWRpdENvbXBvbmVudCB9IGZyb20gJy4uL2Nhc2UtZWRpdC9jYXNlLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZFBhZ2UgfSBmcm9tICcuLi9kb21haW4vd2l6YXJkLXBhZ2UubW9kZWwnO1xuaW1wb3J0IHsgV2l6YXJkIH0gZnJvbSAnLi4vZG9tYWluL3dpemFyZC5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wYWdlLXZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy92YWxpZC1wYWdlLWxpc3QtY2FzZUZpZWxkcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZWRpdC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQtcGFnZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FzZS1lZGl0LXBhZ2Uuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0UGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRVNVTUVEX0ZPUk1fRElTQ0FSRCA9ICdSRVNVTUVEX0ZPUk1fRElTQ0FSRCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTkVXX0ZPUk1fRElTQ0FSRCA9ICdORVdfRk9STV9ESVNDQVJEJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBORVdfRk9STV9TQVZFID0gJ05FV19GT1JNX0NIQU5HRURfU0FWRSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVTVU1FRF9GT1JNX1NBVkUgPSAnUkVTVU1FRF9GT1JNX1NBVkUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSSUdHRVJfVEVYVF9TVEFSVCA9ICdDb250aW51ZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFJJR0dFUl9URVhUX1NBVkUgPSAnU2F2ZSBhbmQgY29udGludWUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSSUdHRVJfVEVYVF9DT05USU5VRSA9ICdJZ25vcmUgV2FybmluZyBhbmQgQ29udGludWUnO1xuXG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG4gIHB1YmxpYyBlZGl0Rm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgd2l6YXJkOiBXaXphcmQ7XG4gIHB1YmxpYyBjdXJyZW50UGFnZTogV2l6YXJkUGFnZTtcbiAgcHVibGljIGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnO1xuICBwdWJsaWMgdHJpZ2dlclRleHRTdGFydCA9IENhc2VFZGl0UGFnZUNvbXBvbmVudC5UUklHR0VSX1RFWFRfU1RBUlQ7XG4gIHB1YmxpYyB0cmlnZ2VyVGV4dElnbm9yZVdhcm5pbmdzID0gQ2FzZUVkaXRQYWdlQ29tcG9uZW50LlRSSUdHRVJfVEVYVF9DT05USU5VRTtcbiAgcHVibGljIHRyaWdnZXJUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBmb3JtVmFsdWVzQ2hhbmdlZCA9IGZhbHNlO1xuICBwdWJsaWMgcGFnZUNoYW5nZVN1YmplY3Q6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW107XG4gIHB1YmxpYyBmYWlsaW5nQ2FzZUZpZWxkczogQ2FzZUZpZWxkW107XG4gIHB1YmxpYyB2YWxpZGF0aW9uRXJyb3JzOiBDYXNlRWRpdFZhbGlkYXRpb25FcnJvcltdID0gW107XG4gIHB1YmxpYyBoYXNQcmV2aW91c1BhZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIGNhbGxiYWNrRXJyb3JzU3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIGlzTGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXA6IGJvb2xlYW47XG4gIHB1YmxpYyByb3V0ZVBhcmFtc1N1YjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY2FzZUVkaXRGb3JtU3ViOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjYXNlSXNMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcFN1YjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY2FzZVRyaWdnZXJTdWJtaXRFdmVudFN1YjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgdmFsaWRhdGVTdWI6IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGRpYWxvZ1JlZkFmdGVyQ2xvc2VkU3ViOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBzYXZlRHJhZnRTdWI6IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGNhc2VGb3JtVmFsaWRhdGlvbkVycm9yc1N1YjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgc3RhdGljIHNjcm9sbFRvVG9wKCk6IHZvaWQge1xuICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNldEZvY3VzVG9Ub3AoKSB7XG4gICAgY29uc3QgdG9wQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcCcpO1xuICAgIGlmICh0b3BDb250YWluZXIpIHtcbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjYXNlRWRpdDogQ2FzZUVkaXRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtVmFsdWVTZXJ2aWNlOiBGb3JtVmFsdWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUVycm9yU2VydmljZTogRm9ybUVycm9yU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VWYWxpZGF0aW9uU2VydmljZTogUGFnZVZhbGlkYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlRmllbGRTZXJ2aWNlOiBDYXNlRmllbGRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUVkaXREYXRhU2VydmljZTogQ2FzZUVkaXREYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkUGFnZUxpc3RDYXNlRmllbGRzU2VydmljZTogVmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWRkcmVzc1NlcnZpY2U6IEFkZHJlc3Nlc1NlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaW5pdERpYWxvZygpO1xuICAgIHRoaXMuZXZlbnRUcmlnZ2VyID0gdGhpcy5jYXNlRWRpdC5ldmVudFRyaWdnZXI7XG4gICAgdGhpcy5lZGl0Rm9ybSA9IHRoaXMuY2FzZUVkaXQuZm9ybTtcbiAgICB0aGlzLndpemFyZCA9IHRoaXMuY2FzZUVkaXQud2l6YXJkO1xuICAgIHRoaXMuY2FzZUZpZWxkcyA9IHRoaXMuZ2V0Q2FzZUZpZWxkcygpO1xuXG4gICAgdGhpcy5zeW5jQ2FzZUVkaXREYXRhU2VydmljZSgpO1xuXG4gICAgdGhpcy5yb3V0ZVBhcmFtc1N1YiA9IHRoaXMucm91dGUucGFyYW1zXG4gICAgICAuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgIGNvbnN0IHBhZ2VJZCA9IHBhcmFtc1sncGFnZSddO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFBhZ2UgfHwgcGFnZUlkICE9PSB0aGlzLmN1cnJlbnRQYWdlPy5pZCkge1xuICAgICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmNhc2VFZGl0LmdldFBhZ2UocGFnZUlkKTtcbiAgICAgICAgICBpZiAocGFnZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmZpcnN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaGFzUHJldmlvdXNQYWdlJC5uZXh0KHRoaXMuY2FzZUVkaXQuaGFzUHJldmlvdXModGhpcy5jdXJyZW50UGFnZT8uaWQpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRyaWdnZXJUZXh0ID0gdGhpcy5nZXRUcmlnZ2VyVGV4dCgpO1xuICAgICAgfSk7XG4gICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LnNldEZvY3VzVG9Ub3AoKTtcbiAgICB0aGlzLmNhc2VFZGl0Rm9ybVN1YiA9IHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5jYXNlRWRpdEZvcm0kLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBlZGl0Rm9ybSA9PiB0aGlzLmVkaXRGb3JtID0gZWRpdEZvcm1cbiAgICB9KTtcbiAgICB0aGlzLmNhc2VJc0xpbmtlZENhc2VzSm91cm5leUF0RmluYWxTdGVwU3ViID1cbiAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5jYXNlSXNMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcCQuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogaXNMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcCA9PiB0aGlzLmlzTGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXAgPSBpc0xpbmtlZENhc2VzSm91cm5leUF0RmluYWxTdGVwXG4gICAgICB9KTtcbiAgICB0aGlzLmNhc2VUcmlnZ2VyU3VibWl0RXZlbnRTdWIgPSB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2FzZVRyaWdnZXJTdWJtaXRFdmVudCQuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHN0YXRlID0+IHtcbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLnNldFRyaWdnZXJTdWJtaXRFdmVudChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zdWJtaXQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlUGFyYW1zU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2FzZUVkaXRGb3JtU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2FzZUlzTGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXBTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jYXNlVHJpZ2dlclN1Ym1pdEV2ZW50U3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMudmFsaWRhdGVTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5kaWFsb2dSZWZBZnRlckNsb3NlZFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNhdmVEcmFmdFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNhc2VGb3JtVmFsaWRhdGlvbkVycm9yc1N1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBseVZhbHVlc0NoYW5nZWQodmFsdWVzQ2hhbmdlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZm9ybVZhbHVlc0NoYW5nZWQgPSB2YWx1ZXNDaGFuZ2VkO1xuICB9XG5cbiAgcHVibGljIGZpcnN0KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VFZGl0LmZpcnN0KCk7XG4gIH1cblxuICBwdWJsaWMgY3VycmVudFBhZ2VJc05vdFZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuZmFpbGluZ0Nhc2VGaWVsZHMgPSB0aGlzLnBhZ2VWYWxpZGF0aW9uU2VydmljZS5nZXRJbnZhbGlkRmllbGRzKHRoaXMuY3VycmVudFBhZ2UsIHRoaXMuZWRpdEZvcm0pO1xuICAgIHJldHVybiB0aGlzLmZhaWxpbmdDYXNlRmllbGRzLmxlbmd0aCA+IDAgfHxcbiAgICAgICh0aGlzLmlzTGlua2VkQ2FzZXNKb3VybmV5KCkgJiYgIXRoaXMuaXNMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcCk7XG4gIH1cblxuICBwdWJsaWMgaXNMaW5rZWRDYXNlc0pvdXJuZXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZpZWxkc1V0aWxzLmNvbnRhaW5zTGlua2VkQ2FzZXNDYXNlRmllbGQodGhpcy5jdXJyZW50UGFnZS5jYXNlX2ZpZWxkcyk7XG4gIH1cblxuICAvKipcbiAgICogY2FzZUV2ZW50RGF0YS5ldmVudF9kYXRhIGNvbnRhaW5zIGFsbCB0aGUgdmFsdWVzIGZyb20gdGhlIHByZXZpb3VzIHBhZ2VzIHNvIHdlIHNldCBjYXNlRXZlbnREYXRhLmRhdGEgPSBjYXNlRXZlbnREYXRhLmV2ZW50X2RhdGFcbiAgICogVGhpcyBidWlsZHMgdGhlIGZvcm0gd2l0aCBkYXRhIGZyb20gdGhlIHByZXZpb3VzIHBhZ2VzXG4gICAqIEVVSS0zNzMyIC0gQnJlYXRoaW5nIHNwYWNlIGRhdGEgbm90IHBlcnNpc3RlZCBvbiBQcmV2aW91cyBidXR0b24gY2xpY2sgd2l0aCBFeHBVSSBEZW1vXG4gICAqL1xuICBwdWJsaWMgdG9QcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNsZWFyRm9ybVZhbGlkYXRpb25FcnJvcnMoKTtcblxuICAgIGNvbnN0IGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEgPSB0aGlzLmJ1aWxkQ2FzZUV2ZW50RGF0YSh0cnVlKTtcbiAgICBjYXNlRXZlbnREYXRhLmRhdGEgPSBjYXNlRXZlbnREYXRhLmV2ZW50X2RhdGE7XG4gICAgdGhpcy51cGRhdGVGb3JtRGF0YShjYXNlRXZlbnREYXRhKTtcbiAgICB0aGlzLnByZXZpb3VzKCk7XG4gICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LnNldEZvY3VzVG9Ub3AoKTtcbiAgfVxuXG4gIC8vIEFkZGluZyB2YWxpZGF0aW9uIG1lc3NhZ2UgdG8gc2hvdyBpdCBhcyBFcnJvciBTdW1tYXJ5XG4gIHB1YmxpYyBnZW5lcmF0ZUVycm9yTWVzc2FnZShmaWVsZHM6IENhc2VGaWVsZFtdLCBjb250YWluZXI/OiBBYnN0cmFjdENvbnRyb2wsIHBhdGg/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBncm91cDogQWJzdHJhY3RDb250cm9sID0gY29udGFpbmVyIHx8IHRoaXMuZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXTtcbiAgICBsZXQgdmFsaWRFcnJvckZpZWxkRm91bmQgPSBmYWxzZTtcbiAgICBsZXQgdmFsaWRhdGlvbkVycm9yQW1vdW50ID0gdGhpcy52YWxpZGF0aW9uRXJyb3JzLmxlbmd0aDtcbiAgICBjb25zdCBmYWlsaW5nRmllbGRzID0gZmllbGRzLmZpbHRlcihjYXNlZmllbGQgPT4gIXRoaXMuY2FzZUZpZWxkU2VydmljZS5pc1JlYWRPbmx5KGNhc2VmaWVsZCkpXG4gICAgLmZpbHRlcihjYXNlZmllbGQgPT4gIXRoaXMucGFnZVZhbGlkYXRpb25TZXJ2aWNlLmlzSGlkZGVuKGNhc2VmaWVsZCwgdGhpcy5lZGl0Rm9ybSwgcGF0aCkpO1xuICAgIC8vIG5vdGUgdGhhdCB0aG91Z24gdGhlc2UgY2hlY2tzIGFyZSBvbiBnZXRpbnZhbGlkZmllbGRzIHRoZXkgYXJlIG5lZWRlZCBmb3Igc3ViIGZpZWxkIGNoZWNrc1xuICAgIGZhaWxpbmdGaWVsZHNcbiAgICAgIC5mb3JFYWNoKGNhc2VmaWVsZCA9PiB7XG4gICAgICAgIGxldCBlcnJvclByZXNlbnQgPSB0cnVlO1xuICAgICAgICB2YWxpZEVycm9yRmllbGRGb3VuZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGZpZWxkRWxlbWVudCA9IEZpZWxkc1V0aWxzLmlzQ2FzZUZpZWxkT2ZUeXBlKGNhc2VmaWVsZCwgWydKdWRpY2lhbFVzZXInXSlcbiAgICAgICAgICA/IGdyb3VwLmdldChgJHtjYXNlZmllbGQuaWR9X2p1ZGljaWFsVXNlckNvbnRyb2xgKVxuICAgICAgICAgIDogZ3JvdXAuZ2V0KGNhc2VmaWVsZC5pZCk7XG4gICAgICAgIGlmIChmaWVsZEVsZW1lbnQpIHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IGNhc2VmaWVsZC5sYWJlbCB8fCAnRmllbGQnO1xuICAgICAgICAgIGxldCBpZCA9IGNhc2VmaWVsZC5pZDtcbiAgICAgICAgICBpZiAoZmllbGRFbGVtZW50Wydjb21wb25lbnQnXSAmJiBmaWVsZEVsZW1lbnRbJ2NvbXBvbmVudCddLnBhcmVudCkge1xuICAgICAgICAgICAgaWYgKGZpZWxkRWxlbWVudFsnY29tcG9uZW50J10uaWRQcmVmaXguaW5kZXhPZihgXyR7aWR9X2ApID09PSAtMSkge1xuICAgICAgICAgICAgICBpZCA9IGAke2ZpZWxkRWxlbWVudFsnY29tcG9uZW50J10uaWRQcmVmaXh9JHtpZH1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWQgPSBgJHtmaWVsZEVsZW1lbnRbJ2NvbXBvbmVudCddLmlkUHJlZml4fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaWVsZEVsZW1lbnQuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgICAgIGlmIChjYXNlZmllbGQuaWQgPT09ICdBZGRyZXNzTGluZTEnKSB7XG4gICAgICAgICAgICAgIC8vIEVVSS0xMDY3IC0gRGlzcGxheSBtb3JlIHJlbGV2YW50IGVycm9yIG1lc3NhZ2UgdG8gdXNlciBhbmQgY29ycmVjdGx5IG5hdmlnYXRlIHRvIHRoZSBmaWVsZFxuICAgICAgICAgICAgICB0aGlzLmFkZHJlc3NTZXJ2aWNlLnNldE1hbmRhdG9yeUVycm9yKHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuYWRkRm9ybVZhbGlkYXRpb25FcnJvcih7IGlkOiBgJHtwYXRofV8ke3BhdGh9YCwgbWVzc2FnZTogYEFuIGFkZHJlc3MgaXMgcmVxdWlyZWRgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmFkZEZvcm1WYWxpZGF0aW9uRXJyb3IoeyBpZCwgbWVzc2FnZTogYCVGSUVMRExBQkVMJSBpcyByZXF1aXJlZGAsIGxhYmVsIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGRFbGVtZW50Lm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAvLyBGb3IgdGhlIEp1ZGljaWFsVXNlciBmaWVsZCB0eXBlLCBhbiBlcnJvciBuZWVkcyB0byBiZSBzZXQgb24gdGhlIGNvbXBvbmVudCBzbyB0aGF0IGFuIGVycm9yIG1lc3NhZ2VcbiAgICAgICAgICAgIC8vIGNhbiBiZSBkaXNwbGF5ZWQgYXQgZmllbGQgbGV2ZWxcbiAgICAgICAgICAgIGlmIChGaWVsZHNVdGlscy5pc0Nhc2VGaWVsZE9mVHlwZShjYXNlZmllbGQsIFsnSnVkaWNpYWxVc2VyJ10pKSB7XG4gICAgICAgICAgICAgIGZpZWxkRWxlbWVudFsnY29tcG9uZW50J10uZXJyb3JzID0geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGRFbGVtZW50Lmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgICAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5hZGRGb3JtVmFsaWRhdGlvbkVycm9yKHsgaWQsIG1lc3NhZ2U6IGAlRklFTERMQUJFTCUgaXMgbm90IHZhbGlkYCwgbGFiZWwgfSk7XG4gICAgICAgICAgICBmaWVsZEVsZW1lbnQubWFya0FzRGlydHkoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkRWxlbWVudC5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcbiAgICAgICAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5hZGRGb3JtVmFsaWRhdGlvbkVycm9yKHsgaWQsIG1lc3NhZ2U6IGAlRklFTERMQUJFTCUgaXMgYmVsb3cgdGhlIG1pbmltdW0gbGVuZ3RoYCwgbGFiZWwgfSk7XG4gICAgICAgICAgICBmaWVsZEVsZW1lbnQubWFya0FzRGlydHkoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkRWxlbWVudC5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcbiAgICAgICAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5hZGRGb3JtVmFsaWRhdGlvbkVycm9yKHsgaWQsIG1lc3NhZ2U6IGAlRklFTERMQUJFTCUgZXhjZWVkcyB0aGUgbWF4aW11bSBsZW5ndGhgLCBsYWJlbCB9KTtcbiAgICAgICAgICAgIGZpZWxkRWxlbWVudC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGRFbGVtZW50LmludmFsaWQpIHtcbiAgICAgICAgICAgIGlmIChjYXNlZmllbGQuaXNDb21wbGV4KCkpIHtcbiAgICAgICAgICAgICAgZXJyb3JQcmVzZW50ID0gdGhpcy5nZW5lcmF0ZUVycm9yTWVzc2FnZShjYXNlZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcywgZmllbGRFbGVtZW50LCBpZCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNhc2VmaWVsZC5pc0NvbGxlY3Rpb24oKSAmJiBjYXNlZmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpZWxkQXJyYXkgPSBmaWVsZEVsZW1lbnQgYXMgRm9ybUFycmF5O1xuICAgICAgICAgICAgICBpZiAoZmllbGRBcnJheVsnY29tcG9uZW50J10gJiYgZmllbGRBcnJheVsnY29tcG9uZW50J11bJ2NvbGxJdGVtcyddICYmIGZpZWxkQXJyYXlbJ2NvbXBvbmVudCddWydjb2xsSXRlbXMnXS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgaWQgPSBgJHtmaWVsZEFycmF5Wydjb21wb25lbnQnXVsnY29sbEl0ZW1zJ11bMF0ucHJlZml4fWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZmllbGRBcnJheS5jb250cm9scy5mb3JFYWNoKChjOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgICAgICAgICAgIGVycm9yUHJlc2VudCA9IHRoaXMuZ2VuZXJhdGVFcnJvck1lc3NhZ2UoY2FzZWZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBjLmdldCgndmFsdWUnKSwgaWQpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZWZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSkge1xuICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogRmllbGRzVXRpbHMuZ2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZUZvckZsYWdMYXVuY2hlckNhc2VGaWVsZChjYXNlZmllbGQpXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZCwgbWVzc2FnZTogYFNlbGVjdCBvciBmaWxsIHRoZSByZXF1aXJlZCAke2Nhc2VmaWVsZC5sYWJlbH0gZmllbGRgIH0pO1xuICAgICAgICAgICAgICBmaWVsZEVsZW1lbnQubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsaWRFcnJvckZpZWxkRm91bmQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWVycm9yUHJlc2VudCAmJiB0aGlzLnZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID09PSB2YWxpZGF0aW9uRXJyb3JBbW91bnQpIHtcbiAgICAgICAgICAvLyBpZiBubyBlcnJvciBtZXNzYWdlcyBoYXZlIGJlZW4gYWRkZWQgaW4gaW50ZXJuYWwgZmllbGQgZGVzcGl0ZSBwYXJlbnQgZmllbGQgZmFpbGluZ1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsgaWQ6IGNhc2VmaWVsZC5pZCwgbWVzc2FnZTogYEEgZmllbGQgdGhhdCBpcyBjYXVzaW5nIGFuIGVycm9yIGlzICR7Y2FzZWZpZWxkLmlkfSBidXQgaXQgaXMgbm90IHByb2R1Y2luZyBhIHZhbGlkIGVycm9yIG1lc3NhZ2UuIFBsZWFzZSBlbnN1cmUgYWxsIGRldGFpbHMgYXJlIGNvcnJlY3RgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBpZiAoIXZhbGlkRXJyb3JGaWVsZEZvdW5kKSB7XG4gICAgICBwYXRoID8gdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogcGF0aCwgbWVzc2FnZTogYFRoZXJlIGlzIGFuIGludGVybmFsIGlzc3VlIHdpdGggJHtwYXRofSBmaWVsZHMuIFRoZSBmaWVsZCB0aGF0IGlzIGNhdXNpbmcgdGhlIGVycm9yIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJ1dCB0aGVyZSBpcyBhbiBlcnJvciBwcmVzZW50YCB9KVxuICAgICAgIDogdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogbnVsbCwgbWVzc2FnZTogYFRoZSBmaWVsZCB0aGF0IGlzIGNhdXNpbmcgdGhlIGVycm9yIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJ1dCB0aGVyZSBpcyBhbiBlcnJvciBwcmVzZW50YCB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPT09IHZhbGlkYXRpb25FcnJvckFtb3VudCkge1xuICAgICAgLy8gaWYgbm8gZXJyb3IgbWVzc2FnZXMgaGF2ZSBiZWVuIGdlbmVyYXRlZFxuICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogbnVsbCwgbWVzc2FnZTogYFRoZSBmaWVsZCB0aGF0IGlzIGNhdXNpbmcgdGhlIGVycm9yIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJ1dCB0aGVyZSBpcyBhbiBlcnJvciBwcmVzZW50LiBQbGVhc2UgZmlsbCBpbiBtb3JlIG9mIHRoZSBmb3JtYCB9KVxuICAgICAgfVxuICAgIH1cbiAgICBDYXNlRWRpdFBhZ2VDb21wb25lbnQuc2Nyb2xsVG9Ub3AoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvRXJyb3JFbGVtZW50KGVsZW1lbnRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZWxlbWVudElkKSB7XG4gICAgICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGh0bWxFbGVtZW50KSB7XG4gICAgICAgIGh0bWxFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSk7XG4gICAgICAgIGh0bWxFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2xlYXJGb3JtVmFsaWRhdGlvbkVycm9ycygpO1xuICAgIGNvbnNvbGUubG9nKCdQYWdlIHN1Ym1pdCBldmVudCBmaXJlZCEnKVxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlSXNOb3RWYWxpZCgpKSB7XG4gICAgICAvLyBUaGUgZ2VuZXJhdGVFcnJvck1lc3NhZ2UgbWV0aG9kIGZpbHRlcnMgb3V0IHRoZSBoaWRkZW4gZmllbGRzLlxuICAgICAgLy8gVGhlIGVycm9yIG1lc3NhZ2UgZm9yIExpbmtlZENhc2VzIGpvdXJuZXkgd2lsbCBuZXZlciBnZXQgZGlzcGxheWVkIGJlY2F1c2UgdGhlXG4gICAgICAvLyBMaW5rZWRDYXNlcyBpcyBjb25maWd1cmVkIHdpdGggQ29tcG9uZW50TGF1bmNoZXIgZmllbGQgYXMgdmlzaWJsZSBhbmQgY2FzZUxpbmtzIGZpZWxkIGFzIGhpZGRlbi5cbiAgICAgIGlmICh0aGlzLmlzTGlua2VkQ2FzZXNKb3VybmV5KCkpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogJ25leHQtYnV0dG9uJywgbWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgTmV4dCB0byBnbyB0byB0aGUgbmV4dCBwYWdlJyB9KTtcbiAgICAgICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LnNjcm9sbFRvVG9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmdlbmVyYXRlRXJyb3JNZXNzYWdlKHRoaXMuZmFpbGluZ0Nhc2VGaWVsZHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgJiYgIXRoaXMuY3VycmVudFBhZ2VJc05vdFZhbGlkKCkpIHtcbiAgICAgIHRoaXMuYWRkcmVzc1NlcnZpY2Uuc2V0TWFuZGF0b3J5RXJyb3IoZmFsc2UpO1xuICAgICAgY29uc29sZS5sb2coJ0Nhc2UgRWRpdCBFcnJvcicsIHRoaXMuY2FzZUVkaXQuZXJyb3IpO1xuICAgICAgaWYgKHRoaXMuY2FzZUVkaXQudmFsaWRQYWdlTGlzdC5maW5kSW5kZXgocGFnZT0+IHBhZ2UuaWQgPT09IHRoaXMuY3VycmVudFBhZ2UuaWQpID09PSAtMSkge1xuICAgICAgICB0aGlzLmNhc2VFZGl0LnZhbGlkUGFnZUxpc3QucHVzaCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2FzZUVkaXQuaXNTdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2FzZUVkaXQuZXJyb3IgPSBudWxsO1xuICAgICAgY29uc3QgY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSA9IHRoaXMuYnVpbGRDYXNlRXZlbnREYXRhKCk7XG4gICAgICBjb25zdCBsb2FkaW5nU3Bpbm5lclRva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgICAgdGhpcy52YWxpZGF0ZVN1YiA9IHRoaXMuY2FzZUVkaXQudmFsaWRhdGUoY2FzZUV2ZW50RGF0YSwgdGhpcy5jdXJyZW50UGFnZS5pZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyKGxvYWRpbmdTcGlubmVyVG9rZW4pO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoanNvbkRhdGEpID0+IHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChqc29uRGF0YSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtRGF0YShqc29uRGF0YSBhcyBDYXNlRXZlbnREYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zYXZlRHJhZnQoKTtcbiAgICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICAgIENhc2VFZGl0UGFnZUNvbXBvbmVudC5zY3JvbGxUb1RvcCgpO1xuICAgICAgLy8gUmVtb3ZlIGFsbCBKdWRpY2lhbFVzZXIgRm9ybUNvbnRyb2xzIHdpdGggdGhlIElEIHN1ZmZpeCBcIl9qdWRpY2lhbFVzZXJDb250cm9sXCIgYmVjYXVzZSB0aGVzZSBhcmUgbm90XG4gICAgICAvLyBpbnRlbmRlZCB0byBiZSBwcmVzZW50IGluIHRoZSBDYXNlIEV2ZW50IGRhdGEgKHRoZXkgYXJlIGFkZGVkIG9ubHkgZm9yIHZhbHVlIHNlbGVjdGlvbiBhbmQgdmFsaWRhdGlvblxuICAgICAgLy8gcHVycG9zZXMpXG4gICAgICB0aGlzLnJlbW92ZUFsbEp1ZGljaWFsVXNlckZvcm1Db250cm9scyh0aGlzLmN1cnJlbnRQYWdlLCB0aGlzLmVkaXRGb3JtKTtcbiAgICB9XG4gICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LnNldEZvY3VzVG9Ub3AoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGb3JtRGF0YShqc29uRGF0YTogQ2FzZUV2ZW50RGF0YSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgY2FzZUZpZWxkSWQgb2YgT2JqZWN0LmtleXMoanNvbkRhdGEuZGF0YSkpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAodGhpcy5wYWdlV2l0aEZpZWxkRXhpc3RzKGNhc2VGaWVsZElkKSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50VHJpZ2dlckNhc2VGaWVsZHMoY2FzZUZpZWxkSWQsIGpzb25EYXRhLCB0aGlzLmNhc2VFZGl0LmV2ZW50VHJpZ2dlcik7XG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xzVmFsdWUodGhpcy5lZGl0Rm9ybSwgY2FzZUZpZWxkSWQsIGpzb25EYXRhLmRhdGFbY2FzZUZpZWxkSWRdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyB3ZSBkbyB0aGUgY2hlY2ssIGJlY2FzdWUgdGhlIGRhdGEgY29tZXMgZnJvbSB0aGUgZXh0ZXJuYWwgc291cmNlXG4gIHB1YmxpYyBwYWdlV2l0aEZpZWxkRXhpc3RzKGNhc2VGaWVsZElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy53aXphcmQuZmluZFdpemFyZFBhZ2UoY2FzZUZpZWxkSWQpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUV2ZW50VHJpZ2dlckNhc2VGaWVsZHMoY2FzZUZpZWxkSWQ6IHN0cmluZywganNvbkRhdGE6IENhc2VFdmVudERhdGEsIGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGV2ZW50VHJpZ2dlcj8uY2FzZV9maWVsZHMpIHtcbiAgICAgIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkc1xuICAgICAgICAuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5pZCA9PT0gY2FzZUZpZWxkSWQpXG4gICAgICAgIC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlzQW5PYmplY3QoZWxlbWVudC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRKc29uRGF0YU9iamVjdCA9IHRoaXMudXBkYXRlSnNvbkRhdGFPYmplY3QoY2FzZUZpZWxkSWQsIGpzb25EYXRhLCBlbGVtZW50KTtcblxuICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHtcbiAgICAgICAgICAgICAgLi4uZWxlbWVudC52YWx1ZSxcbiAgICAgICAgICAgICAgLi4udXBkYXRlZEpzb25EYXRhT2JqZWN0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IGpzb25EYXRhLmRhdGFbY2FzZUZpZWxkSWRdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVKc29uRGF0YU9iamVjdChjYXNlRmllbGRJZDogc3RyaW5nLCBqc29uRGF0YTogQ2FzZUV2ZW50RGF0YSwgZWxlbWVudDogQ2FzZUZpZWxkKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhqc29uRGF0YS5kYXRhW2Nhc2VGaWVsZElkXSkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudFZhbHVlID0gZWxlbWVudC52YWx1ZVtrZXldO1xuICAgICAgY29uc3QganNvbkRhdGFWYWx1ZSA9IGpzb25EYXRhLmRhdGFbY2FzZUZpZWxkSWRdW2tleV07XG4gICAgICBjb25zdCBoYXNFbGVtZW50R290VmFsdWVQcm9wZXJ0eSA9IHRoaXMuaXNBbk9iamVjdChlbGVtZW50VmFsdWUpICYmIGVsZW1lbnRWYWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkO1xuICAgICAgY29uc3QganNvbkRhdGFPckVsZW1lbnRWYWx1ZSA9IGpzb25EYXRhVmFsdWU/LnZhbHVlICE9PSBudWxsICYmIGpzb25EYXRhVmFsdWU/LnZhbHVlICE9PSB1bmRlZmluZWQgPyBqc29uRGF0YVZhbHVlIDogZWxlbWVudFZhbHVlO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtgJHtrZXl9YF06IGhhc0VsZW1lbnRHb3RWYWx1ZVByb3BlcnR5ID8ganNvbkRhdGFPckVsZW1lbnRWYWx1ZSA6IGpzb25EYXRhVmFsdWVcbiAgICAgIH07XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FuT2JqZWN0KHByb3BlcnR5OiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkocHJvcGVydHkpICYmIHByb3BlcnR5ICE9PSBudWxsO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZvcm1Db250cm9sc1ZhbHVlKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjYXNlRmllbGRJZDogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdGhlQ29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1snZGF0YSddLmdldChjYXNlRmllbGRJZCk7XG4gICAgaWYgKHRoZUNvbnRyb2wgJiYgdGhlQ29udHJvbFsnc3RhdHVzJ10gIT09ICdESVNBQkxFRCcpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoZUNvbnRyb2wudmFsdWUpICYmIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICYmIHRoZUNvbnRyb2wudmFsdWUubGVuZ3RoID4gdmFsdWUubGVuZ3RoICYmIHRoZUNvbnRyb2xbJ2Nhc2VGaWVsZCddXG4gICAgICAgICYmIHRoZUNvbnRyb2xbJ2Nhc2VGaWVsZCddWydkaXNwbGF5X2NvbnRleHQnXSAmJiB0aGVDb250cm9sWydjYXNlRmllbGQnXVsnZGlzcGxheV9jb250ZXh0J10gPT09ICdPUFRJT05BTCdcbiAgICAgICAgJiYgdGhlQ29udHJvbFsnY2FzZUZpZWxkJ11bJ2ZpZWxkX3R5cGUnXSAmJiB0aGVDb250cm9sWydjYXNlRmllbGQnXVsnZmllbGRfdHlwZSddWyd0eXBlJ10gPT09ICdDb2xsZWN0aW9uJykge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGVDb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc05vdGlmeShlcnJvckNvbnRleHQ6IENhbGxiYWNrRXJyb3JzQ29udGV4dCkge1xuICAgIHRoaXMuY2FzZUVkaXQuaWdub3JlV2FybmluZyA9IGVycm9yQ29udGV4dC5pZ25vcmVXYXJuaW5nO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSBlcnJvckNvbnRleHQudHJpZ2dlclRleHQ7XG4gIH1cblxuICBwdWJsaWMgbmV4dCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5jYW5OYXZpZ2F0ZVRvU3VtbWFyeVBhZ2UoKSkge1xuICAgICAgdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5yZXNldEVycm9ycygpO1xuICAgIHRoaXMuZm9ybVZhbHVlc0NoYW5nZWQgPSBmYWxzZTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQubmV4dCh0aGlzLmN1cnJlbnRQYWdlLmlkKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aW91cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLnJlc2V0RXJyb3JzKCk7XG4gICAgdGhpcy5zYXZlRHJhZnQoKTtcbiAgICB0aGlzLmZvcm1WYWx1ZXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgdGhpcy5wYWdlQ2hhbmdlU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIHJldHVybiB0aGlzLmNhc2VFZGl0LnByZXZpb3VzKHRoaXMuY3VycmVudFBhZ2UuaWQpO1xuICB9XG5cbiAgcHVibGljIGhhc1ByZXZpb3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VFZGl0Lmhhc1ByZXZpb3VzKHRoaXMuY3VycmVudFBhZ2UuaWQpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ldmVudFRyaWdnZXIuY2FuX3NhdmVfZHJhZnQpIHtcbiAgICAgIGlmICh0aGlzLmZvcm1WYWx1ZXNDaGFuZ2VkKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU2F2ZU9yRGlzY2FyZERpYWxvZ0NvbXBvbmVudCwgdGhpcy5kaWFsb2dDb25maWcpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZkFmdGVyQ2xvc2VkU3ViID0gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gJ0Rpc2NhcmQnKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2NhcmQoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gJ1NhdmUnKSB7XG4gICAgICAgICAgICBjb25zdCBkcmFmdENhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEgPSB0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2UodGhpcy5lZGl0Rm9ybS52YWx1ZSkgYXMgQ2FzZUV2ZW50RGF0YTtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KENhc2VFZGl0Q29tcG9uZW50Lk9SSUdJTl9RVUVSWV9QQVJBTSkgPT09ICd2aWV3RHJhZnQnKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2FzZUVkaXQuY2FuY2VsbGVkLmVtaXQoeyBzdGF0dXM6IENhc2VFZGl0UGFnZUNvbXBvbmVudC5SRVNVTUVEX0ZPUk1fU0FWRSwgZGF0YTogZHJhZnRDYXNlRXZlbnREYXRhIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jYXNlRWRpdC5jYW5jZWxsZWQuZW1pdCh7IHN0YXR1czogQ2FzZUVkaXRQYWdlQ29tcG9uZW50Lk5FV19GT1JNX1NBVkUsIGRhdGE6IGRyYWZ0Q2FzZUV2ZW50RGF0YSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNjYXJkKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZUVkaXQuY2FuY2VsbGVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2xlYXJGb3JtVmFsaWRhdGlvbkVycm9ycygpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdHRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQuaXNTdWJtaXR0aW5nO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyA/IHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMuY2FzZV9pZCA6ICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMgJiYgdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZSAmJlxuICAgICAgdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZS50aXRsZV9kaXNwbGF5ID8gdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZS50aXRsZV9kaXNwbGF5IDogJycpO1xuICB9XG5cbiAgcHVibGljIGdldENhbmNlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ldmVudFRyaWdnZXIuY2FuX3NhdmVfZHJhZnQgPyAnUmV0dXJuIHRvIGNhc2UgbGlzdCcgOiAnQ2FuY2VsJztcbiAgfVxuXG4gIHByaXZhdGUgY2FuTmF2aWdhdGVUb1N1bW1hcnlQYWdlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5jYXNlRWRpdC5nZXROZXh0UGFnZSh7XG4gICAgICBjdXJyZW50UGFnZUlkOiB0aGlzLmN1cnJlbnRQYWdlPy5pZCxcbiAgICAgIHdpemFyZDogdGhpcy53aXphcmQsXG4gICAgICBldmVudFRyaWdnZXI6IHRoaXMuZXZlbnRUcmlnZ2VyLFxuICAgICAgZm9ybTogdGhpcy5lZGl0Rm9ybVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfc3VtbWFyeSB8fCAhIW5leHRQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmlnZ2VyVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRleHRCYXNlZE9uQ2FuU2F2ZURyYWZ0ID0gdGhpcy5ldmVudFRyaWdnZXIgJiYgdGhpcy5ldmVudFRyaWdnZXIuY2FuX3NhdmVfZHJhZnRcbiAgICAgID8gQ2FzZUVkaXRQYWdlQ29tcG9uZW50LlRSSUdHRVJfVEVYVF9TQVZFXG4gICAgICA6IENhc2VFZGl0UGFnZUNvbXBvbmVudC5UUklHR0VSX1RFWFRfU1RBUlQ7XG5cbiAgICByZXR1cm4gdGhpcy5jYW5OYXZpZ2F0ZVRvU3VtbWFyeVBhZ2UoKVxuICAgICAgPyB0ZXh0QmFzZWRPbkNhblNhdmVEcmFmdFxuICAgICAgOiAnU3VibWl0JztcbiAgfVxuXG4gIHByaXZhdGUgZGlzY2FyZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldChDYXNlRWRpdENvbXBvbmVudC5PUklHSU5fUVVFUllfUEFSQU0pID09PSAndmlld0RyYWZ0Jykge1xuICAgICAgdGhpcy5jYXNlRWRpdC5jYW5jZWxsZWQuZW1pdCh7IHN0YXR1czogQ2FzZUVkaXRQYWdlQ29tcG9uZW50LlJFU1VNRURfRk9STV9ESVNDQVJEIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhc2VFZGl0LmNhbmNlbGxlZC5lbWl0KHsgc3RhdHVzOiBDYXNlRWRpdFBhZ2VDb21wb25lbnQuTkVXX0ZPUk1fRElTQ0FSRCB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yKSB7XG4gICAgdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNhc2VFZGl0LmVycm9yID0gZXJyb3I7XG4gICAgdGhpcy5jYXNlRWRpdC5jYWxsYmFja0Vycm9yc1N1YmplY3QubmV4dCh0aGlzLmNhc2VFZGl0LmVycm9yKTtcbiAgICB0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdC5uZXh0KHRoaXMuY2FzZUVkaXQuZXJyb3IpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuY2FzZUVkaXQuZXJyb3IuZGV0YWlscykge1xuICAgICAgdGhpcy5mb3JtRXJyb3JTZXJ2aWNlXG4gICAgICAgIC5tYXBGaWVsZEVycm9ycyh0aGlzLmNhc2VFZGl0LmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLCB0aGlzLmVkaXRGb3JtPy5jb250cm9scz8uWydkYXRhJ10gYXMgRm9ybUdyb3VwLCAndmFsaWRhdGlvbicpO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZygnaGFuZGxlRXJyb3IgJywgZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldEVycm9ycygpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0LmVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VFZGl0Lmlnbm9yZVdhcm5pbmcgPSBmYWxzZTtcbiAgICB0aGlzLnRyaWdnZXJUZXh0ID0gdGhpcy5nZXRUcmlnZ2VyVGV4dCgpO1xuICAgIHRoaXMuY2FzZUVkaXQuY2FsbGJhY2tFcnJvcnNTdWJqZWN0Lm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVEcmFmdCgpIHtcbiAgICBpZiAodGhpcy5ldmVudFRyaWdnZXIuY2FuX3NhdmVfZHJhZnQpIHtcbiAgICAgIGNvbnN0IGRyYWZ0Q2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSA9IHRoaXMuZm9ybVZhbHVlU2VydmljZS5zYW5pdGlzZSh0aGlzLmVkaXRGb3JtLnZhbHVlKSBhcyBDYXNlRXZlbnREYXRhO1xuICAgICAgZHJhZnRDYXNlRXZlbnREYXRhLmV2ZW50X3Rva2VuID0gdGhpcy5ldmVudFRyaWdnZXIuZXZlbnRfdG9rZW47XG4gICAgICBkcmFmdENhc2VFdmVudERhdGEuaWdub3JlX3dhcm5pbmcgPSB0aGlzLmNhc2VFZGl0Lmlnbm9yZVdhcm5pbmc7XG4gICAgICB0aGlzLnNhdmVEcmFmdFN1YiA9IHRoaXMuY2FzZUVkaXQuc2F2ZURyYWZ0KGRyYWZ0Q2FzZUV2ZW50RGF0YSkuc3Vic2NyaWJlKFxuICAgICAgICAoZHJhZnQpID0+IHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfaWQgPSBEUkFGVF9QUkVGSVggKyBkcmFmdC5pZCwgZXJyb3IgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXNlRmllbGRzKCk6IENhc2VGaWVsZFtdIHtcbiAgICBpZiAodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscykge1xuICAgICAgcmV0dXJuIEZpZWxkc1V0aWxzLmdldENhc2VGaWVsZHModGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXNlRmllbGRzRnJvbUN1cnJlbnRBbmRQcmV2aW91c1BhZ2VzKCk6IENhc2VGaWVsZFtdIHtcbiAgICBjb25zdCByZXN1bHQ6IENhc2VGaWVsZFtdID0gW107XG4gICAgdGhpcy53aXphcmQucGFnZXMuZm9yRWFjaChwYWdlID0+IHtcbiAgICAgIGlmIChwYWdlLm9yZGVyIDw9IHRoaXMuY3VycmVudFBhZ2Uub3JkZXIpIHtcbiAgICAgICAgcGFnZS5jYXNlX2ZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHJlc3VsdC5wdXNoKGZpZWxkKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZENhc2VFdmVudERhdGEoZnJvbVByZXZpb3VzUGFnZT86IGJvb2xlYW4pOiBDYXNlRXZlbnREYXRhIHtcbiAgICBjb25zdCBmb3JtVmFsdWU6IG9iamVjdCA9IHRoaXMuZWRpdEZvcm0udmFsdWU7XG5cbiAgICAvLyBHZXQgdGhlIENhc2VFdmVudERhdGEgZm9yIHRoZSBjdXJyZW50IHBhZ2UuXG4gICAgY29uc3QgcGFnZUZpZWxkczogQ2FzZUZpZWxkW10gPSB0aGlzLmN1cnJlbnRQYWdlLmNhc2VfZmllbGRzO1xuICAgIGNvbnN0IHBhZ2VFdmVudERhdGE6IENhc2VFdmVudERhdGEgPSB0aGlzLmdldEZpbHRlcmVkQ2FzZUV2ZW50RGF0YShwYWdlRmllbGRzLCBmb3JtVmFsdWUsIHRydWUpO1xuXG4gICAgLy8gR2V0IHRoZSBDYXNlRXZlbnREYXRhIGZvciB0aGUgZW50aXJlIGZvcm0gKGFsbCBwYWdlcykuXG4gICAgY29uc3QgYWxsQ2FzZUZpZWxkcyA9IHRoaXMuZ2V0Q2FzZUZpZWxkc0Zyb21DdXJyZW50QW5kUHJldmlvdXNQYWdlcygpO1xuICAgIGNvbnN0IGZvcm1FdmVudERhdGE6IENhc2VFdmVudERhdGEgPSB0aGlzLmdldEZpbHRlcmVkQ2FzZUV2ZW50RGF0YShhbGxDYXNlRmllbGRzLCBmb3JtVmFsdWUsIGZhbHNlLCB0cnVlLCBmcm9tUHJldmlvdXNQYWdlKTtcblxuICAgIC8vIE5vdyBoZXJlJ3MgdGhlIGtleSB0aGluZyAtIHRoZSBwYWdlRXZlbnREYXRhIGhhcyBhIHByb3BlcnR5IGNhbGxlZCBgZXZlbnRfZGF0YWAgYW5kXG4gICAgLy8gd2UgbmVlZCBUSEFUIHRvIGJlIHRoZSB2YWx1ZSBvZiB0aGUgZW50aXJlIGZvcm06IGBmb3JtRXZlbnREYXRhLmRhdGFgLlxuICAgIHBhZ2VFdmVudERhdGEuZXZlbnRfZGF0YSA9IGZvcm1FdmVudERhdGEuZGF0YTtcblxuICAgIC8vIEZpbmFsaXNlIHRoZSBDYXNlRXZlbnREYXRhIG9iamVjdC5cbiAgICBwYWdlRXZlbnREYXRhLmV2ZW50X3Rva2VuID0gdGhpcy5ldmVudFRyaWdnZXIuZXZlbnRfdG9rZW47XG4gICAgcGFnZUV2ZW50RGF0YS5pZ25vcmVfd2FybmluZyA9IHRoaXMuY2FzZUVkaXQuaWdub3JlV2FybmluZztcblxuICAgIC8vIEZpbmFsbHksIHRyeSB0byBzZXQgdXAgdGhlIGNhc2VfcmVmZXJlbmNlLlxuICAgIGlmICh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKSB7XG4gICAgICBwYWdlRXZlbnREYXRhLmNhc2VfcmVmZXJlbmNlID0gdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5jYXNlX2lkO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB0aGUgbm93IGhvcGVmdWxseSBzYW5lIENhc2VFdmVudERhdGEuXG4gICAgcmV0dXJuIHBhZ2VFdmVudERhdGE7XG4gIH1cblxuICAvKipcbiAgICogQWJzdHJhY3RlZCB0aGlzIG1ldGhvZCBmcm9tIGJ1aWxkQ2FzZUV2ZW50RGF0YSB0byByZW1vdmUgZHVwbGljYXRpb24uXG4gICAqIEBwYXJhbSBjYXNlRmllbGRzIFRoZSBmaWVsZHMgdG8gZmlsdGVyIHRoZSBkYXRhIGJ5LlxuICAgKiBAcGFyYW0gZm9ybVZhbHVlIFRoZSBvcmlnaW5hbCB2YWx1ZSBvZiB0aGUgZm9ybS5cbiAgICogQHBhcmFtIGNsZWFyRW1wdHkgV2hldGhlciBvciBub3QgdG8gY2xlYXIgb3V0IGVtcHR5IHZhbHVlcy5cbiAgICogQHBhcmFtIGNsZWFyTm9uQ2FzZSBXaGV0aGVyIG9yIG5vdCB0byBjbGVhciBvdXQgZmllbGRzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBjYXNlLlxuICAgKiBAcmV0dXJucyBDYXNlRXZlbnREYXRhIGZvciB0aGUgc3BlY2lmaWVkIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwcml2YXRlIGdldEZpbHRlcmVkQ2FzZUV2ZW50RGF0YShjYXNlRmllbGRzOiBDYXNlRmllbGRbXSwgZm9ybVZhbHVlOiBvYmplY3QsIGNsZWFyRW1wdHkgPSBmYWxzZSxcbiAgICBjbGVhck5vbkNhc2UgPSBmYWxzZSwgZnJvbVByZXZpb3VzUGFnZSA9IGZhbHNlKTogQ2FzZUV2ZW50RGF0YSB7XG4gICAgLy8gR2V0IHRoZSBkYXRhIGZvciB0aGUgZmllbGRzIHNwZWNpZmllZC5cbiAgICBjb25zdCBmb3JtRmllbGRzID0gdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLmZpbHRlckN1cnJlbnRQYWdlRmllbGRzKGNhc2VGaWVsZHMsIGZvcm1WYWx1ZSk7XG5cbiAgICAvLyBTb3J0IG91dCB0aGUgZHluYW1pYyBsaXN0cy5cbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2VEeW5hbWljTGlzdHMoY2FzZUZpZWxkcywgZm9ybUZpZWxkcyk7XG5cbiAgICAvLyBHZXQgaG9sZCBvZiB0aGUgQ2FzZUV2ZW50RGF0YS5cbiAgICBjb25zdCBjYXNlRXZlbnREYXRhOiBDYXNlRXZlbnREYXRhID0gdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnNhbml0aXNlKGZvcm1GaWVsZHMpIGFzIENhc2VFdmVudERhdGE7XG5cbiAgICAvLyBkZWxldGUgZmllbGRzIHdoaWNoIGFyZSBub3QgcGFydCBvZiB0aGUgY2FzZSBldmVudCBqb3VybmV5IHdpemFyZCBwYWdlcyBjYXNlIGZpZWxkc1xuICAgIHRoaXMudmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlLmRlbGV0ZU5vblZhbGlkYXRlZEZpZWxkcyh0aGlzLmNhc2VFZGl0LnZhbGlkUGFnZUxpc3QsIGNhc2VFdmVudERhdGEuZGF0YSwgdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIGZyb21QcmV2aW91c1BhZ2UsIHRoaXMuZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXS52YWx1ZSk7XG5cbiAgICAvLyBUaWR5IGl0IHVwIGJlZm9yZSB3ZSByZXR1cm4gaXQuXG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlbW92ZVVubmVjZXNzYXJ5RmllbGRzKGNhc2VFdmVudERhdGEuZGF0YSwgY2FzZUZpZWxkcywgY2xlYXJFbXB0eSwgY2xlYXJOb25DYXNlLFxuICAgICAgZnJvbVByZXZpb3VzUGFnZSwgdGhpcy5jdXJyZW50UGFnZS5jYXNlX2ZpZWxkcyk7XG5cbiAgICByZXR1cm4gY2FzZUV2ZW50RGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY0Nhc2VFZGl0RGF0YVNlcnZpY2UoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLnNldENhc2VEZXRhaWxzKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMpO1xuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRDYXNlRXZlbnRUcmlnZ2VyTmFtZSh0aGlzLmV2ZW50VHJpZ2dlci5uYW1lKTtcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0Q2FzZVRpdGxlKHRoaXMuZ2V0Q2FzZVRpdGxlKCkpO1xuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRDYXNlRWRpdEZvcm0odGhpcy5lZGl0Rm9ybSk7XG4gICAgdGhpcy5jYXNlRm9ybVZhbGlkYXRpb25FcnJvcnNTdWIgPSB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2FzZUZvcm1WYWxpZGF0aW9uRXJyb3JzJC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHZhbGlkYXRpb25FcnJvcnMpID0+IHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IHZhbGlkYXRpb25FcnJvcnNcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRScHhUcmFuc2xhdGVQaXBlQXJncyhmaWVsZExhYmVsOiBzdHJpbmcpOiB7IEZJRUxETEFCRUw6IHN0cmluZyB9IHwgbnVsbCB7XG4gICAgcmV0dXJuIGZpZWxkTGFiZWwgPyAoeyBGSUVMRExBQkVMOiBmaWVsZExhYmVsIH0pIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBvbkV2ZW50Q2FuQmVDb21wbGV0ZWQoZXZlbnRDYW5CZUNvbXBsZXRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY2FzZUVkaXQub25FdmVudENhbkJlQ29tcGxldGVkKHtcbiAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICBldmVudENhbkJlQ29tcGxldGVkLFxuICAgICAgY2FzZURldGFpbHM6IHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMsXG4gICAgICBmb3JtOiB0aGlzLmVkaXRGb3JtLFxuICAgICAgc3VibWl0OiB0aGlzLmNhc2VFZGl0LnN1Ym1pdCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQWxsSnVkaWNpYWxVc2VyRm9ybUNvbnRyb2xzKHBhZ2U6IFdpemFyZFBhZ2UsIGVkaXRGb3JtOiBGb3JtR3JvdXApOiB2b2lkIHtcbiAgICBwYWdlLmNhc2VfZmllbGRzLmZvckVhY2goY2FzZUZpZWxkID0+IHtcbiAgICAgIGlmIChGaWVsZHNVdGlscy5pc0Nhc2VGaWVsZE9mVHlwZShjYXNlRmllbGQsIFsnSnVkaWNpYWxVc2VyJ10pKSB7XG4gICAgICAgIChlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddIGFzIEZvcm1Hcm91cCkucmVtb3ZlQ29udHJvbChgJHtjYXNlRmllbGQuaWR9X2p1ZGljaWFsVXNlckNvbnRyb2xgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRQYWdlXCI+XG4gIDxoMSAqbmdJZj1cIiFjdXJyZW50UGFnZS5sYWJlbFwiIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+e3tldmVudFRyaWdnZXIubmFtZSB8IHJweFRyYW5zbGF0ZX19PC9oMT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRQYWdlLmxhYmVsXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1jYXB0aW9uLWxcIj57eyBldmVudFRyaWdnZXIubmFtZSB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmctbFwiPnt7Y3VycmVudFBhZ2UubGFiZWwgfCBycHhUcmFuc2xhdGV9fTwvaDE+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjwhLS1DYXNlIElEIG9yIFRpdGxlIC0tPlxuPGRpdiAqbmdJZj1cImdldENhc2VUaXRsZSgpOyB0aGVuIHRpdGxlQmxvY2s7IGVsc2UgaWRCbG9ja1wiPjwvZGl2PlxuPG5nLXRlbXBsYXRlICN0aXRsZUJsb2NrPlxuICA8Y2NkLW1hcmtkb3duIFtjb250ZW50XT1cImdldENhc2VUaXRsZSgpIHwgY2NkQ2FzZVRpdGxlOiBjYXNlRmllbGRzIDogZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiPjwvY2NkLW1hcmtkb3duPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjaWRCbG9jaz5cbiAgPGgyICpuZ0lmPVwiZ2V0Q2FzZUlkKClcIiBjbGFzcz1cImhlYWRpbmctaDJcIj4je3sgZ2V0Q2FzZUlkKCkgfCBjY2RDYXNlUmVmZXJlbmNlIH19PC9oMj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gRXJyb3IgbWVzc2FnZSBzdW1tYXJ5IC0tPlxuPGRpdiAqbmdJZj1cInZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiByb2xlPVwiYWxlcnRcIiB0YWJpbmRleD1cIi0xXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5XCI+XG4gIDxoMiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlXCIgaWQ9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAge3snVGhlcmUgaXMgYSBwcm9ibGVtJyB8IHJweFRyYW5zbGF0ZX19XG4gIDwvaDI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IHZhbGlkYXRpb25FcnJvciBvZiB2YWxpZGF0aW9uRXJyb3JzXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgPHVsIGNsYXNzPVwiZ292dWstbGlzdCBnb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0XCI+XG4gICAgICA8bGk+XG4gICAgICAgIDxhIChjbGljayk9XCJuYXZpZ2F0ZVRvRXJyb3JFbGVtZW50KHZhbGlkYXRpb25FcnJvci5pZClcIiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JcIj5cbiAgICAgICAgICB7eyB2YWxpZGF0aW9uRXJyb3IubWVzc2FnZSB8IHJweFRyYW5zbGF0ZTogZ2V0UnB4VHJhbnNsYXRlUGlwZUFyZ3ModmFsaWRhdGlvbkVycm9yLmxhYmVsIHwgcnB4VHJhbnNsYXRlKTogbnVsbCB9fVxuICAgICAgICA8L2E+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxjY2QtY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzIFtlcnJvcl09XCJjYXNlRWRpdC5lcnJvclwiPjwvY2NkLWNhc2UtZWRpdC1nZW5lcmljLWVycm9ycz5cblxuPGNjZC1jYWxsYmFjay1lcnJvcnNcbiAgW3RyaWdnZXJUZXh0Q29udGludWVdPVwidHJpZ2dlclRleHRTdGFydFwiXG4gIFt0cmlnZ2VyVGV4dElnbm9yZV09XCJ0cmlnZ2VyVGV4dElnbm9yZVdhcm5pbmdzXCJcbiAgW2NhbGxiYWNrRXJyb3JzU3ViamVjdF09XCJjYXNlRWRpdC5jYWxsYmFja0Vycm9yc1N1YmplY3RcIlxuICAoY2FsbGJhY2tFcnJvcnNDb250ZXh0KT1cImNhbGxiYWNrRXJyb3JzTm90aWZ5KCRldmVudClcIj5cbjwvY2NkLWNhbGxiYWNrLWVycm9ycz5cbjxkaXYgY2xhc3M9XCJ3aWR0aC01MFwiPlxuICA8Zm9ybSAqbmdJZj1cImN1cnJlbnRQYWdlXCIgY2xhc3M9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybVwiIChzdWJtaXQpPVwic3VibWl0KClcIj5cbiAgICA8ZmllbGRzZXQgaWQ9XCJmaWVsZHNldC1jYXNlLWRhdGFcIj5cbiAgICAgIDxsZWdlbmQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPjwvbGVnZW5kPlxuICAgICAgPCEtLSBzaW5nbGUgY29sdW1uIC0tPlxuICAgICAgPGNjZC1jYXNlLWVkaXQtZm9ybSBpZD0nY2FzZUVkaXRGb3JtJyAqbmdJZj1cIiFjdXJyZW50UGFnZS5pc011bHRpQ29sdW1uKClcIiBbZmllbGRzXT1cImN1cnJlbnRQYWdlLmdldENvbDFGaWVsZHMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjYXNlRmllbGRzXT1cImNhc2VGaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFnZUNoYW5nZVN1YmplY3RdPVwicGFnZUNoYW5nZVN1YmplY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWVzQ2hhbmdlZCk9XCJhcHBseVZhbHVlc0NoYW5nZWQoJGV2ZW50KVwiPjwvY2NkLWNhc2UtZWRpdC1mb3JtPlxuICAgICAgPCEtLSB0d28gY29sdW1ucyAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJjdXJyZW50UGFnZS5pc011bHRpQ29sdW1uKClcIiBjbGFzcz1cImdyaWQtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tdHdvLXRoaXJkcyByaWdodEJvcmRlclNlcGFyYXRvclwiPlxuICAgICAgICAgIDxjY2QtY2FzZS1lZGl0LWZvcm0gaWQ9J2Nhc2VFZGl0Rm9ybTEnIFtmaWVsZHNdPVwiY3VycmVudFBhZ2UuZ2V0Q29sMUZpZWxkcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjYXNlRmllbGRzXT1cImNhc2VGaWVsZHNcIj48L2NjZC1jYXNlLWVkaXQtZm9ybT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4tb25lLXRoaXJkXCI+XG4gICAgICAgICAgPGNjZC1jYXNlLWVkaXQtZm9ybSBpZD0nY2FzZUVkaXRGb3JtMicgW2ZpZWxkc109XCJjdXJyZW50UGFnZS5nZXRDb2wyRmllbGRzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCIgW2Nhc2VGaWVsZHNdPVwiY2FzZUZpZWxkc1wiPjwvY2NkLWNhc2UtZWRpdC1mb3JtPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLXJlbGF0ZWRcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiBbZGlzYWJsZWRdPVwiIShoYXNQcmV2aW91c1BhZ2UkIHwgYXN5bmMpXCIgKGNsaWNrKT1cInRvUHJldmlvdXNQYWdlKClcIj5cbiAgICAgICAge3snUHJldmlvdXMnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwic3VibWl0dGluZygpXCI+e3t0cmlnZ2VyVGV4dCB8IHJweFRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8cCBjbGFzcz1cImNhbmNlbFwiPjxhIChjbGljayk9XCJjYW5jZWwoKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj57e2dldENhbmNlbFRleHQoKSB8IHJweFRyYW5zbGF0ZX19PC9hPjwvcD5cbiAgPC9mb3JtPlxuPC9kaXY+XG5cbjxjY2QtY2FzZS1ldmVudC1jb21wbGV0aW9uICpuZ0lmPVwiY2FzZUVkaXQuaXNFdmVudENvbXBsZXRpb25DaGVja3NSZXF1aXJlZFwiXG4gIFtldmVudENvbXBsZXRpb25QYXJhbXNdPVwiY2FzZUVkaXQuZXZlbnRDb21wbGV0aW9uUGFyYW1zXCJcbiAgKGV2ZW50Q2FuQmVDb21wbGV0ZWQpPVwib25FdmVudENhbkJlQ29tcGxldGVkKCRldmVudClcIj5cbjwvY2NkLWNhc2UtZXZlbnQtY29tcGxldGlvbj5cbiJdfQ==