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

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