@hmcts/ccd-case-ui-toolkit 7.0.39 → 7.0.40

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 (1169) 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 +92 -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 +116 -0
  7. package/esm2022/lib/components/banners/notification-banner/notification-banner.module.mjs +19 -0
  8. package/esm2022/lib/components/body/body.component.mjs +21 -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 +341 -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 +45 -0
  17. package/esm2022/lib/components/header/navigation/navigation.component.mjs +26 -0
  18. package/esm2022/lib/components/header/phase/phase.component.mjs +49 -0
  19. package/esm2022/lib/components/tabs/tab.component.mjs +32 -0
  20. package/esm2022/lib/components/tabs/tabs.component.mjs +83 -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 +43 -0
  27. package/esm2022/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +36 -0
  28. package/esm2022/lib/shared/components/activity/activity.component.mjs +156 -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 +96 -0
  32. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +464 -0
  33. package/esm2022/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +130 -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 +806 -0
  37. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +603 -0
  38. package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +214 -0
  39. package/esm2022/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +97 -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 +83 -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 +167 -0
  42. package/esm2022/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +85 -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 +300 -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 +59 -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 +220 -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 +33 -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 +64 -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 +368 -0
  68. package/esm2022/lib/shared/components/case-list/case-list.module.mjs +47 -0
  69. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.component.mjs +57 -0
  70. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.module.mjs +64 -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 +52 -0
  73. package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +246 -0
  74. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +311 -0
  75. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +75 -0
  76. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +156 -0
  77. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +698 -0
  78. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +61 -0
  79. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +256 -0
  80. package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +211 -0
  81. package/esm2022/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +50 -0
  82. package/esm2022/lib/shared/components/case-viewer/case-view/case-view.component.mjs +107 -0
  83. package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +133 -0
  84. package/esm2022/lib/shared/components/case-viewer/case-viewer.module.mjs +191 -0
  85. package/esm2022/lib/shared/components/case-viewer/printer/case-printer.component.mjs +117 -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 +138 -0
  88. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +86 -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 +289 -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 +60 -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 +62 -0
  95. package/esm2022/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +60 -0
  96. package/esm2022/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +64 -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 +6 -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 +45 -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 +62 -0
  103. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +56 -0
  104. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +112 -0
  105. package/esm2022/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +70 -0
  106. package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +61 -0
  107. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +56 -0
  108. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +104 -0
  109. package/esm2022/lib/shared/components/event-start/event-start.component.mjs +56 -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 +179 -0
  113. package/esm2022/lib/shared/components/event-trigger/event-trigger.component.mjs +129 -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 +26 -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 +260 -0
  118. package/esm2022/lib/shared/components/pagination/pagination.module.mjs +35 -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 +286 -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 +90 -0
  126. package/esm2022/lib/shared/components/palette/base-field/field-write.component.mjs +78 -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 +181 -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 +50 -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 +51 -0
  131. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +358 -0
  132. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +158 -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 +94 -0
  134. package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +190 -0
  135. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +301 -0
  136. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +206 -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 +225 -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 +353 -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 +269 -0
  143. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +510 -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 +253 -0
  149. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +697 -0
  150. package/esm2022/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +33 -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 +447 -0
  155. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +378 -0
  156. package/esm2022/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +51 -0
  157. package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +76 -0
  158. package/esm2022/lib/shared/components/palette/complex/read-complex-field.component.mjs +71 -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 +26 -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 +312 -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 +88 -0
  168. package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +430 -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 +37 -0
  171. package/esm2022/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +124 -0
  172. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +44 -0
  173. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +146 -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 +43 -0
  176. package/esm2022/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +123 -0
  177. package/esm2022/lib/shared/components/palette/email/read-email-field.component.mjs +36 -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 +27 -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 +27 -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 +17 -0
  186. package/esm2022/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +99 -0
  187. package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +224 -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 +49 -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 +111 -0
  193. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +191 -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 +213 -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 +209 -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 +168 -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 +234 -0
  204. package/esm2022/lib/shared/components/palette/markdown/markdown-component.module.mjs +48 -0
  205. package/esm2022/lib/shared/components/palette/markdown/markdown.component.mjs +81 -0
  206. package/esm2022/lib/shared/components/palette/markdown/routerlink.component.mjs +25 -0
  207. package/esm2022/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +128 -0
  208. package/esm2022/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +50 -0
  209. package/esm2022/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +79 -0
  210. package/esm2022/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +46 -0
  211. package/esm2022/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +126 -0
  212. package/esm2022/lib/shared/components/palette/number/read-number-field.component.mjs +25 -0
  213. package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +74 -0
  214. package/esm2022/lib/shared/components/palette/order-summary/fee-value.model.mjs +4 -0
  215. package/esm2022/lib/shared/components/palette/order-summary/fee.model.mjs +8 -0
  216. package/esm2022/lib/shared/components/palette/order-summary/order-summary.model.mjs +6 -0
  217. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +74 -0
  218. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +45 -0
  219. package/esm2022/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +45 -0
  220. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +88 -0
  221. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +92 -0
  222. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +52 -0
  223. package/esm2022/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +35 -0
  224. package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +397 -0
  225. package/esm2022/lib/shared/components/palette/palette.module.mjs +736 -0
  226. package/esm2022/lib/shared/components/palette/palette.service.mjs +153 -0
  227. package/esm2022/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +25 -0
  228. package/esm2022/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +23 -0
  229. package/esm2022/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +74 -0
  230. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +44 -0
  231. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +150 -0
  232. package/esm2022/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +67 -0
  233. package/esm2022/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +61 -0
  234. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +292 -0
  235. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +330 -0
  236. package/esm2022/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +24 -0
  237. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +165 -0
  238. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +78 -0
  239. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +121 -0
  240. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +202 -0
  241. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +107 -0
  242. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +24 -0
  243. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +45 -0
  244. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +124 -0
  245. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +22 -0
  246. package/esm2022/lib/shared/components/palette/text/read-text-field.component.mjs +25 -0
  247. package/esm2022/lib/shared/components/palette/text/write-text-field.component.mjs +78 -0
  248. package/esm2022/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +25 -0
  249. package/esm2022/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +89 -0
  250. package/esm2022/lib/shared/components/palette/unsupported-field.component.mjs +18 -0
  251. package/esm2022/lib/shared/components/palette/utils/dash.pipe.mjs +16 -0
  252. package/esm2022/lib/shared/components/palette/utils/date.pipe.mjs +133 -0
  253. package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +30 -0
  254. package/esm2022/lib/shared/components/palette/utils/first-error.pipe.mjs +65 -0
  255. package/esm2022/lib/shared/components/palette/utils/is-compound.pipe.mjs +43 -0
  256. package/esm2022/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +22 -0
  257. package/esm2022/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +32 -0
  258. package/esm2022/lib/shared/components/palette/utils/is-read-only.pipe.mjs +22 -0
  259. package/esm2022/lib/shared/components/palette/utils/utils.module.mjs +71 -0
  260. package/esm2022/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +35 -0
  261. package/esm2022/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +37 -0
  262. package/esm2022/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +102 -0
  263. package/esm2022/lib/shared/components/palette/yes-no/yes-no.service.mjs +50 -0
  264. package/esm2022/lib/shared/components/search-filters/domain/search-input.model.mjs +15 -0
  265. package/esm2022/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +63 -0
  266. package/esm2022/lib/shared/components/search-filters/search-filters.component.mjs +341 -0
  267. package/esm2022/lib/shared/components/search-filters/search-filters.module.mjs +71 -0
  268. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +822 -0
  269. package/esm2022/lib/shared/components/search-result/search-result.module.mjs +82 -0
  270. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +497 -0
  271. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +67 -0
  272. package/esm2022/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +169 -0
  273. package/esm2022/lib/shared/directives/conditional-show/conditional-show.module.mjs +33 -0
  274. package/esm2022/lib/shared/directives/conditional-show/domain/conditional-show.model.mjs +201 -0
  275. package/esm2022/lib/shared/directives/conditional-show/services/condition-parser.service.mjs +200 -0
  276. package/esm2022/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +17 -0
  277. package/esm2022/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +48 -0
  278. package/esm2022/lib/shared/directives/focus-element/focus-element.directive.mjs +38 -0
  279. package/esm2022/lib/shared/directives/focus-element/focus-element.module.mjs +21 -0
  280. package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +88 -0
  281. package/esm2022/lib/shared/directives/substitutor/label-substitutor.module.mjs +30 -0
  282. package/esm2022/lib/shared/directives/substitutor/services/placeholder.service.mjs +209 -0
  283. package/esm2022/lib/shared/domain/activity/activity.model.mjs +17 -0
  284. package/esm2022/lib/shared/domain/addresses/address.model.mjs +11 -0
  285. package/esm2022/lib/shared/domain/alert/alert.model.mjs +5 -0
  286. package/esm2022/lib/shared/domain/case-details.model.mjs +13 -0
  287. package/esm2022/lib/shared/domain/case-event-data.model.mjs +11 -0
  288. package/esm2022/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +8 -0
  289. package/esm2022/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +10 -0
  290. package/esm2022/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +10 -0
  291. package/esm2022/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +125 -0
  292. package/esm2022/lib/shared/domain/case-flag/flag-type.model.mjs +37 -0
  293. package/esm2022/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +18 -0
  294. package/esm2022/lib/shared/domain/case-view/case-event-trigger.model.mjs +34 -0
  295. package/esm2022/lib/shared/domain/case-view/case-print-document.model.mjs +6 -0
  296. package/esm2022/lib/shared/domain/case-view/case-tab.model.mjs +17 -0
  297. package/esm2022/lib/shared/domain/case-view/case-view-event.model.mjs +16 -0
  298. package/esm2022/lib/shared/domain/case-view/case-view-trigger.model.mjs +7 -0
  299. package/esm2022/lib/shared/domain/case-view/case-view.model.mjs +27 -0
  300. package/esm2022/lib/shared/domain/definition/access-control-list.model.mjs +8 -0
  301. package/esm2022/lib/shared/domain/definition/banner.model.mjs +8 -0
  302. package/esm2022/lib/shared/domain/definition/case-event.model.mjs +11 -0
  303. package/esm2022/lib/shared/domain/definition/case-field.model.mjs +218 -0
  304. package/esm2022/lib/shared/domain/definition/case-state.model.mjs +7 -0
  305. package/esm2022/lib/shared/domain/definition/case-type-lite.model.mjs +10 -0
  306. package/esm2022/lib/shared/domain/definition/case-type.model.mjs +20 -0
  307. package/esm2022/lib/shared/domain/definition/event-case-field.model.mjs +6 -0
  308. package/esm2022/lib/shared/domain/definition/field-type.model.mjs +30 -0
  309. package/esm2022/lib/shared/domain/definition/fixed-list-item.model.mjs +6 -0
  310. package/esm2022/lib/shared/domain/definition/jurisdiction.model.mjs +8 -0
  311. package/esm2022/lib/shared/domain/document/document-data.model.mjs +28 -0
  312. package/esm2022/lib/shared/domain/draft.model.mjs +16 -0
  313. package/esm2022/lib/shared/domain/http/http-error.model.mjs +49 -0
  314. package/esm2022/lib/shared/domain/organisation/organisation-converter.mjs +42 -0
  315. package/esm2022/lib/shared/domain/pagination-metadata.model.mjs +5 -0
  316. package/esm2022/lib/shared/domain/profile/profile.model.mjs +33 -0
  317. package/esm2022/lib/shared/domain/search/field.model.mjs +17 -0
  318. package/esm2022/lib/shared/domain/search/search-result-view-column.model.mjs +9 -0
  319. package/esm2022/lib/shared/domain/search/search-result-view-item.model.mjs +18 -0
  320. package/esm2022/lib/shared/domain/search/search-result-view.model.mjs +26 -0
  321. package/esm2022/lib/shared/domain/search/sorting/sort-parameters.mjs +9 -0
  322. package/esm2022/lib/shared/domain/workbasket/workbasket-input.model.mjs +11 -0
  323. package/esm2022/lib/shared/fixture/case-field-builder.mjs +67 -0
  324. package/esm2022/lib/shared/pipes/case-reference/case-reference.pipe.mjs +33 -0
  325. package/esm2022/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +31 -0
  326. package/esm2022/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +32 -0
  327. package/esm2022/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +27 -0
  328. package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +39 -0
  329. package/esm2022/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +173 -0
  330. package/esm2022/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +31 -0
  331. package/esm2022/lib/shared/pipes/complex/fields-filter.pipe.mjs +105 -0
  332. package/esm2022/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +16 -0
  333. package/esm2022/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +28 -0
  334. package/esm2022/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +28 -0
  335. package/esm2022/lib/shared/pipes/pipes.module.mjs +64 -0
  336. package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +24 -0
  337. package/esm2022/lib/shared/services/activity/activity.polling.service.mjs +122 -0
  338. package/esm2022/lib/shared/services/activity/activity.service.mjs +85 -0
  339. package/esm2022/lib/shared/services/addresses/address-parser.mjs +76 -0
  340. package/esm2022/lib/shared/services/addresses/addresses.service.mjs +65 -0
  341. package/esm2022/lib/shared/services/alert/alert.service.mjs +157 -0
  342. package/esm2022/lib/shared/services/auth/auth.service.mjs +35 -0
  343. package/esm2022/lib/shared/services/banners/banners.service.mjs +35 -0
  344. package/esm2022/lib/shared/services/browser/browser.service.mjs +24 -0
  345. package/esm2022/lib/shared/services/case-fields/case-field.service.mjs +34 -0
  346. package/esm2022/lib/shared/services/case-fields/format-translator.service.mjs +242 -0
  347. package/esm2022/lib/shared/services/case-file-view/case-file-view.service.mjs +48 -0
  348. package/esm2022/lib/shared/services/case-flag/case-flag-refdata.service.mjs +104 -0
  349. package/esm2022/lib/shared/services/common-data-service/common-data-service.mjs +29 -0
  350. package/esm2022/lib/shared/services/definitions/definitions.module.mjs +19 -0
  351. package/esm2022/lib/shared/services/definitions/definitions.service.mjs +32 -0
  352. package/esm2022/lib/shared/services/document-management/document-management.service.mjs +114 -0
  353. package/esm2022/lib/shared/services/draft/draft.service.mjs +89 -0
  354. package/esm2022/lib/shared/services/error/error-notifier.service.mjs +16 -0
  355. package/esm2022/lib/shared/services/eventStatusService/event-status.service.mjs +21 -0
  356. package/esm2022/lib/shared/services/fields/fields.purger.mjs +305 -0
  357. package/esm2022/lib/shared/services/fields/fields.utils.mjs +615 -0
  358. package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +102 -0
  359. package/esm2022/lib/shared/services/form/form-error.service.mjs +46 -0
  360. package/esm2022/lib/shared/services/form/form-validators.service.mjs +82 -0
  361. package/esm2022/lib/shared/services/form/form-value.service.mjs +552 -0
  362. package/esm2022/lib/shared/services/http/http-error.service.mjs +67 -0
  363. package/esm2022/lib/shared/services/http/http.service.mjs +95 -0
  364. package/esm2022/lib/shared/services/jurisdiction/jurisdiction.service.mjs +35 -0
  365. package/esm2022/lib/shared/services/loading/loading.module.mjs +22 -0
  366. package/esm2022/lib/shared/services/loading/loading.service.mjs +31 -0
  367. package/esm2022/lib/shared/services/navigation/navigation-notifier.service.mjs +16 -0
  368. package/esm2022/lib/shared/services/order/order.service.mjs +37 -0
  369. package/esm2022/lib/shared/services/organisation/organisation.service.mjs +57 -0
  370. package/esm2022/lib/shared/services/profile/profile.notifier.mjs +17 -0
  371. package/esm2022/lib/shared/services/profile/profile.service.mjs +36 -0
  372. package/esm2022/lib/shared/services/request/request.options.builder.mjs +61 -0
  373. package/esm2022/lib/shared/services/router/router-helper.service.mjs +20 -0
  374. package/esm2022/lib/shared/services/search/search.service.mjs +96 -0
  375. package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +71 -0
  376. package/esm2022/lib/shared/services/session/session-storage.service.mjs +34 -0
  377. package/esm2022/lib/shared/services/utils/retry/retry.service.mjs +87 -0
  378. package/esm2022/lib/shared/services/window/window.service.mjs +40 -0
  379. package/esm2022/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +57 -0
  380. package/esm2022/lib/shared/test/test-route-snapshot-builder.mjs +38 -0
  381. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +37117 -0
  382. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -0
  383. package/lib/components/banners/alert/alert.component.d.ts +1 -1
  384. package/lib/components/banners/notification-banner/notification-banner.component.d.ts +1 -1
  385. package/lib/components/footer/footer.component.d.ts +1 -1
  386. package/lib/components/form/date-input/date-input.component.d.ts +1 -1
  387. package/lib/components/header/header-bar/header-bar.component.d.ts +1 -1
  388. package/lib/components/header/navigation/navigation-item.component.d.ts +1 -1
  389. package/lib/components/header/navigation/navigation.component.d.ts +1 -1
  390. package/lib/components/header/phase/phase.component.d.ts +1 -1
  391. package/lib/components/tabs/tab.component.d.ts +1 -1
  392. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts +1 -1
  393. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
  394. package/lib/shared/components/activity/activity-banner/activity-banner.component.d.ts +1 -1
  395. package/lib/shared/components/activity/activity-icon/activity-icon.component.d.ts +1 -1
  396. package/lib/shared/components/activity/activity.component.d.ts +1 -1
  397. package/lib/shared/components/case-editor/case-create/case-create.component.d.ts +1 -1
  398. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +1 -1
  399. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts +1 -1
  400. package/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.d.ts +1 -1
  401. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  402. package/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.d.ts +1 -1
  403. package/lib/shared/components/case-editor/case-progress/case-progress.component.d.ts +1 -1
  404. package/lib/shared/components/case-header/case-header.component.d.ts +1 -1
  405. package/lib/shared/components/case-history/case-history.component.d.ts +1 -1
  406. package/lib/shared/components/case-list/case-list.component.d.ts +1 -1
  407. package/lib/shared/components/case-list-filters/case-list-filters.component.d.ts +1 -1
  408. package/lib/shared/components/case-timeline/case-timeline.component.d.ts +1 -1
  409. package/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts +1 -1
  410. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +1 -1
  411. package/lib/shared/components/case-viewer/case-view/case-view.component.d.ts +1 -1
  412. package/lib/shared/components/case-viewer/case-viewer.component.d.ts +1 -1
  413. package/lib/shared/components/create-case-filters/create-case-filters.component.d.ts +1 -1
  414. package/lib/shared/components/error/callback-errors.component.d.ts +1 -1
  415. package/lib/shared/components/error-message/error-message.component.d.ts +1 -1
  416. package/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.d.ts +1 -1
  417. package/lib/shared/components/event-start/components/task-conflict/task-conflict.component.d.ts +1 -1
  418. package/lib/shared/components/event-trigger/event-trigger.component.d.ts +1 -1
  419. package/lib/shared/components/loading-spinner/loading-spinner.component.d.ts +1 -1
  420. package/lib/shared/components/pagination/pagination.component.d.ts +1 -1
  421. package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -1
  422. package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts +1 -1
  423. package/lib/shared/components/palette/base-field/abstract-field-write.component.d.ts +1 -1
  424. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts +2 -2
  425. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
  426. package/lib/shared/components/palette/base-field/field-read-label.component.d.ts +1 -1
  427. package/lib/shared/components/palette/base-field/field-read.component.d.ts +1 -1
  428. package/lib/shared/components/palette/base-field/field-write.component.d.ts +1 -1
  429. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.d.ts +1 -1
  430. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts +1 -1
  431. package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts +1 -1
  432. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +1 -1
  433. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +1 -1
  434. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +1 -1
  435. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +1 -1
  436. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +1 -1
  437. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +1 -1
  438. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +1 -1
  439. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +1 -1
  440. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +1 -1
  441. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +1 -1
  442. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +2 -2
  443. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  444. package/lib/shared/components/palette/complex/read-complex-field-raw.component.d.ts +1 -1
  445. package/lib/shared/components/palette/complex/read-complex-field-table.component.d.ts +1 -1
  446. package/lib/shared/components/palette/complex/read-complex-field.component.d.ts +1 -1
  447. package/lib/shared/components/palette/complex/write-complex-field.component.d.ts +1 -1
  448. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts +1 -1
  449. package/lib/shared/components/palette/history/event-log/event-log-details.component.d.ts +1 -1
  450. package/lib/shared/components/palette/history/event-log/event-log-table.component.d.ts +1 -1
  451. package/lib/shared/components/palette/history/event-log/event-log.component.d.ts +1 -1
  452. package/lib/shared/components/palette/label/label-field.component.d.ts +1 -1
  453. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts +1 -1
  454. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts +1 -1
  455. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +2 -2
  456. package/lib/shared/components/palette/markdown/markdown.component.d.ts +2 -4
  457. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  458. package/lib/shared/components/palette/money-gbp/money-gbp-input.component.d.ts +1 -1
  459. package/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.d.ts +1 -1
  460. package/lib/shared/components/palette/order-summary/read-order-summary-row.component.d.ts +1 -1
  461. package/lib/shared/components/palette/organisation/read-organisation-field-raw.component.d.ts +1 -1
  462. package/lib/shared/components/palette/organisation/read-organisation-field-table.component.d.ts +1 -1
  463. package/lib/shared/components/palette/organisation/read-organisation-field.component.d.ts +1 -1
  464. package/lib/shared/components/palette/organisation/write-organisation-complex-field.component.d.ts +1 -1
  465. package/lib/shared/components/palette/palette.module.d.ts +2 -2
  466. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  467. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts +1 -1
  468. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +1 -1
  469. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts +1 -1
  470. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +1 -1
  471. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +1 -1
  472. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts +1 -1
  473. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +1 -1
  474. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +1 -1
  475. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts +1 -1
  476. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +1 -1
  477. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +1 -1
  478. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts +1 -1
  479. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts.map +1 -1
  480. package/lib/shared/components/search-filters/search-filters-wrapper.component.d.ts +1 -1
  481. package/lib/shared/components/search-filters/search-filters.component.d.ts +1 -1
  482. package/lib/shared/components/search-result/search-result.component.d.ts +1 -1
  483. package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts +1 -1
  484. package/lib/shared/directives/conditional-show/conditional-show-form.directive.d.ts +1 -1
  485. package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts +1 -1
  486. package/lib/shared/domain/alert/alert-level.model.d.ts +1 -1
  487. package/lib/shared/domain/alert/alert-level.model.d.ts.map +1 -1
  488. package/lib/shared/domain/case-view/access-types.model.d.ts +1 -1
  489. package/lib/shared/domain/case-view/access-types.model.d.ts.map +1 -1
  490. package/lib/shared/domain/case-view/role-request.model.d.ts +4 -4
  491. package/lib/shared/domain/case-view/role-request.model.d.ts.map +1 -1
  492. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  493. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  494. package/lib/shared/domain/predicate.model.d.ts +1 -1
  495. package/lib/shared/domain/predicate.model.d.ts.map +1 -1
  496. package/lib/shared/pipes/complex/fields-filter.pipe.d.ts.map +1 -1
  497. package/lib/shared/services/order/order.service.d.ts +2 -2
  498. package/lib/shared/services/order/order.service.d.ts.map +1 -1
  499. package/lib/shared/services/request/request.options.builder.d.ts +1 -1
  500. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  501. package/package.json +6 -12
  502. package/esm2020/lib/app.config.mjs +0 -45
  503. package/esm2020/lib/components/banners/alert/alert-icon-class.pipe.mjs +0 -25
  504. package/esm2020/lib/components/banners/alert/alert.component.mjs +0 -95
  505. package/esm2020/lib/components/banners/alert/alert.module.mjs +0 -32
  506. package/esm2020/lib/components/banners/banners.module.mjs +0 -32
  507. package/esm2020/lib/components/banners/notification-banner/notification-banner.component.mjs +0 -120
  508. package/esm2020/lib/components/banners/notification-banner/notification-banner.module.mjs +0 -19
  509. package/esm2020/lib/components/body/body.component.mjs +0 -20
  510. package/esm2020/lib/components/body/body.module.mjs +0 -20
  511. package/esm2020/lib/components/footer/footer.component.mjs +0 -105
  512. package/esm2020/lib/components/footer/footers.module.mjs +0 -25
  513. package/esm2020/lib/components/form/date-input/date-input.component.mjs +0 -331
  514. package/esm2020/lib/components/form/form.module.mjs +0 -29
  515. package/esm2020/lib/components/header/header-bar/header-bar.component.mjs +0 -97
  516. package/esm2020/lib/components/header/headers.module.mjs +0 -25
  517. package/esm2020/lib/components/header/navigation/navigation-item.component.mjs +0 -41
  518. package/esm2020/lib/components/header/navigation/navigation.component.mjs +0 -24
  519. package/esm2020/lib/components/header/phase/phase.component.mjs +0 -45
  520. package/esm2020/lib/components/tabs/tab.component.mjs +0 -28
  521. package/esm2020/lib/components/tabs/tabs.component.mjs +0 -79
  522. package/esm2020/lib/components/tabs/tabs.module.mjs +0 -38
  523. package/esm2020/lib/shared/commons/address-validation-constants.mjs +0 -13
  524. package/esm2020/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +0 -19
  525. package/esm2020/lib/shared/commons/case-edit-data/case-edit-data.service.mjs +0 -47
  526. package/esm2020/lib/shared/commons/constants.mjs +0 -13
  527. package/esm2020/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +0 -39
  528. package/esm2020/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +0 -33
  529. package/esm2020/lib/shared/components/activity/activity.component.mjs +0 -151
  530. package/esm2020/lib/shared/components/activity/activity.module.mjs +0 -55
  531. package/esm2020/lib/shared/components/case-editor/case-access-utils/index.mjs +0 -105
  532. package/esm2020/lib/shared/components/case-editor/case-create/case-create.component.mjs +0 -87
  533. package/esm2020/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +0 -432
  534. package/esm2020/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +0 -125
  535. package/esm2020/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +0 -135
  536. package/esm2020/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +0 -69
  537. package/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +0 -779
  538. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +0 -587
  539. package/esm2020/lib/shared/components/case-editor/case-editor.module.mjs +0 -214
  540. package/esm2020/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +0 -86
  541. 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
  542. 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
  543. package/esm2020/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +0 -77
  544. package/esm2020/lib/shared/components/case-editor/domain/confirmation.model.mjs +0 -21
  545. package/esm2020/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.mjs +0 -4
  546. package/esm2020/lib/shared/components/case-editor/domain/wizard-page-field.model.mjs +0 -3
  547. package/esm2020/lib/shared/components/case-editor/domain/wizard-page.model.mjs +0 -26
  548. package/esm2020/lib/shared/components/case-editor/domain/wizard.model.mjs +0 -54
  549. package/esm2020/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +0 -93
  550. package/esm2020/lib/shared/components/case-editor/services/case-flag-state.service.mjs +0 -19
  551. package/esm2020/lib/shared/components/case-editor/services/case-worker.service.mjs +0 -32
  552. package/esm2020/lib/shared/components/case-editor/services/case.notifier.mjs +0 -51
  553. package/esm2020/lib/shared/components/case-editor/services/cases.service.mjs +0 -292
  554. package/esm2020/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +0 -41
  555. package/esm2020/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +0 -143
  556. package/esm2020/lib/shared/components/case-editor/services/event-trigger.service.mjs +0 -20
  557. package/esm2020/lib/shared/components/case-editor/services/judicial-worker.service.mjs +0 -32
  558. package/esm2020/lib/shared/components/case-editor/services/page-validation.service.mjs +0 -58
  559. package/esm2020/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +0 -39
  560. package/esm2020/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +0 -117
  561. package/esm2020/lib/shared/components/case-editor/services/work-allocation.service.mjs +0 -214
  562. package/esm2020/lib/shared/components/case-header/case-header.component.mjs +0 -61
  563. package/esm2020/lib/shared/components/case-header/case-header.module.mjs +0 -33
  564. package/esm2020/lib/shared/components/case-history/case-history.component.mjs +0 -242
  565. package/esm2020/lib/shared/components/case-history/case-history.module.mjs +0 -64
  566. package/esm2020/lib/shared/components/case-history/domain/case-history.model.mjs +0 -29
  567. package/esm2020/lib/shared/components/case-history/services/case-history.service.mjs +0 -40
  568. package/esm2020/lib/shared/components/case-list/case-list.component.mjs +0 -362
  569. package/esm2020/lib/shared/components/case-list/case-list.module.mjs +0 -47
  570. package/esm2020/lib/shared/components/case-list-filters/case-list-filters.component.mjs +0 -52
  571. package/esm2020/lib/shared/components/case-list-filters/case-list-filters.module.mjs +0 -64
  572. package/esm2020/lib/shared/components/case-timeline/case-timeline.component.mjs +0 -109
  573. package/esm2020/lib/shared/components/case-timeline/case-timeline.module.mjs +0 -52
  574. package/esm2020/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +0 -247
  575. package/esm2020/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +0 -298
  576. package/esm2020/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +0 -72
  577. package/esm2020/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +0 -141
  578. package/esm2020/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +0 -670
  579. package/esm2020/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +0 -58
  580. package/esm2020/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +0 -241
  581. package/esm2020/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +0 -199
  582. package/esm2020/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +0 -47
  583. package/esm2020/lib/shared/components/case-viewer/case-view/case-view.component.mjs +0 -98
  584. package/esm2020/lib/shared/components/case-viewer/case-viewer.component.mjs +0 -125
  585. package/esm2020/lib/shared/components/case-viewer/case-viewer.module.mjs +0 -191
  586. package/esm2020/lib/shared/components/case-viewer/printer/case-printer.component.mjs +0 -110
  587. package/esm2020/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +0 -60
  588. package/esm2020/lib/shared/components/case-viewer/services/case.resolver.mjs +0 -128
  589. package/esm2020/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +0 -77
  590. package/esm2020/lib/shared/components/create-case-filters/create-case-filters-selection.model.mjs +0 -8
  591. package/esm2020/lib/shared/components/create-case-filters/create-case-filters.component.mjs +0 -275
  592. package/esm2020/lib/shared/components/create-case-filters/create-case-filters.module.mjs +0 -44
  593. package/esm2020/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +0 -57
  594. package/esm2020/lib/shared/components/dialogs/dialogs.module.mjs +0 -51
  595. package/esm2020/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +0 -59
  596. package/esm2020/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +0 -57
  597. package/esm2020/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +0 -61
  598. package/esm2020/lib/shared/components/error/callback-errors.component.mjs +0 -149
  599. package/esm2020/lib/shared/components/error/domain/error-context.mjs +0 -3
  600. package/esm2020/lib/shared/components/error/errors.module.mjs +0 -33
  601. package/esm2020/lib/shared/components/error-message/error-message.component.mjs +0 -43
  602. package/esm2020/lib/shared/components/error-message/error-message.module.mjs +0 -41
  603. package/esm2020/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +0 -59
  604. package/esm2020/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +0 -53
  605. package/esm2020/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +0 -104
  606. package/esm2020/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +0 -68
  607. package/esm2020/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +0 -58
  608. package/esm2020/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +0 -53
  609. package/esm2020/lib/shared/components/event-start/event-guard/event-start.guard.mjs +0 -101
  610. package/esm2020/lib/shared/components/event-start/event-start.component.mjs +0 -49
  611. package/esm2020/lib/shared/components/event-start/event-start.module.mjs +0 -71
  612. package/esm2020/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +0 -29
  613. package/esm2020/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +0 -170
  614. package/esm2020/lib/shared/components/event-trigger/event-trigger.component.mjs +0 -123
  615. package/esm2020/lib/shared/components/event-trigger/event-trigger.module.mjs +0 -37
  616. package/esm2020/lib/shared/components/loading-spinner/loading-spinner.component.mjs +0 -27
  617. package/esm2020/lib/shared/components/loading-spinner/loading-spinner.module.mjs +0 -29
  618. package/esm2020/lib/shared/components/pagination/pagination.component.mjs +0 -262
  619. package/esm2020/lib/shared/components/pagination/pagination.module.mjs +0 -35
  620. package/esm2020/lib/shared/components/palette/address/address-option.model.mjs +0 -21
  621. package/esm2020/lib/shared/components/palette/address/write-address-field.component.mjs +0 -280
  622. package/esm2020/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +0 -31
  623. package/esm2020/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +0 -44
  624. package/esm2020/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +0 -83
  625. package/esm2020/lib/shared/components/palette/base-field/field-read-label.component.mjs +0 -86
  626. package/esm2020/lib/shared/components/palette/base-field/field-read.component.mjs +0 -85
  627. package/esm2020/lib/shared/components/palette/base-field/field-write.component.mjs +0 -74
  628. package/esm2020/lib/shared/components/palette/base-field/payment-field.component.mjs +0 -35
  629. package/esm2020/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +0 -171
  630. 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
  631. 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
  632. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +0 -342
  633. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +0 -154
  634. 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
  635. package/esm2020/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +0 -190
  636. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +0 -288
  637. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +0 -207
  638. package/esm2020/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +0 -165
  639. package/esm2020/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +0 -219
  640. package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +0 -306
  641. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +0 -200
  642. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +0 -343
  643. 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
  644. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +0 -510
  645. package/esm2020/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +0 -41
  646. package/esm2020/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +0 -41
  647. package/esm2020/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +0 -109
  648. package/esm2020/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +0 -77
  649. package/esm2020/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +0 -246
  650. package/esm2020/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +0 -686
  651. package/esm2020/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +0 -32
  652. package/esm2020/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +0 -122
  653. package/esm2020/lib/shared/components/palette/collection/collection-create-checker.service.mjs +0 -42
  654. package/esm2020/lib/shared/components/palette/collection/read-collection-field.component.mjs +0 -81
  655. package/esm2020/lib/shared/components/palette/collection/write-collection-field.component.mjs +0 -441
  656. package/esm2020/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +0 -379
  657. package/esm2020/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +0 -53
  658. package/esm2020/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +0 -78
  659. package/esm2020/lib/shared/components/palette/complex/read-complex-field.component.mjs +0 -75
  660. package/esm2020/lib/shared/components/palette/complex/write-complex-field.component.mjs +0 -169
  661. package/esm2020/lib/shared/components/palette/date/read-date-field.component.mjs +0 -28
  662. package/esm2020/lib/shared/components/palette/date/write-date-container-field.component.mjs +0 -33
  663. package/esm2020/lib/shared/components/palette/date/write-date-field.component.mjs +0 -76
  664. package/esm2020/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +0 -309
  665. package/esm2020/lib/shared/components/palette/document/document-url.pipe.mjs +0 -24
  666. package/esm2020/lib/shared/components/palette/document/file-upload-progress.guard.mjs +0 -29
  667. package/esm2020/lib/shared/components/palette/document/file-upload-state.service.mjs +0 -16
  668. package/esm2020/lib/shared/components/palette/document/read-document-field.component.mjs +0 -81
  669. package/esm2020/lib/shared/components/palette/document/write-document-field.component.mjs +0 -408
  670. package/esm2020/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +0 -18
  671. package/esm2020/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +0 -36
  672. package/esm2020/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +0 -124
  673. package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +0 -43
  674. package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +0 -145
  675. package/esm2020/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +0 -25
  676. package/esm2020/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +0 -42
  677. package/esm2020/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +0 -124
  678. package/esm2020/lib/shared/components/palette/email/read-email-field.component.mjs +0 -35
  679. package/esm2020/lib/shared/components/palette/email/write-email-field.component.mjs +0 -73
  680. package/esm2020/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +0 -23
  681. package/esm2020/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +0 -26
  682. package/esm2020/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +0 -106
  683. package/esm2020/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +0 -18
  684. package/esm2020/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +0 -26
  685. package/esm2020/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +0 -95
  686. package/esm2020/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +0 -16
  687. package/esm2020/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +0 -97
  688. package/esm2020/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +0 -225
  689. package/esm2020/lib/shared/components/palette/history/event-log/event-log.component.mjs +0 -72
  690. package/esm2020/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +0 -45
  691. package/esm2020/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +0 -242
  692. package/esm2020/lib/shared/components/palette/label/label-field.component.mjs +0 -50
  693. package/esm2020/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +0 -108
  694. package/esm2020/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +0 -189
  695. package/esm2020/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +0 -530
  696. package/esm2020/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +0 -204
  697. package/esm2020/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +0 -280
  698. package/esm2020/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +0 -66
  699. package/esm2020/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +0 -201
  700. package/esm2020/lib/shared/components/palette/linked-cases/domain/linked-cases.model.mjs +0 -22
  701. package/esm2020/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +0 -163
  702. package/esm2020/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +0 -132
  703. package/esm2020/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +0 -27
  704. package/esm2020/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +0 -229
  705. package/esm2020/lib/shared/components/palette/markdown/markdown-component.module.mjs +0 -49
  706. package/esm2020/lib/shared/components/palette/markdown/markdown.component.mjs +0 -78
  707. package/esm2020/lib/shared/components/palette/markdown/routerlink.component.mjs +0 -23
  708. package/esm2020/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +0 -123
  709. package/esm2020/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +0 -47
  710. package/esm2020/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +0 -78
  711. package/esm2020/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +0 -45
  712. package/esm2020/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +0 -126
  713. package/esm2020/lib/shared/components/palette/number/read-number-field.component.mjs +0 -24
  714. package/esm2020/lib/shared/components/palette/number/write-number-field.component.mjs +0 -73
  715. package/esm2020/lib/shared/components/palette/order-summary/fee-value.model.mjs +0 -3
  716. package/esm2020/lib/shared/components/palette/order-summary/fee.model.mjs +0 -4
  717. package/esm2020/lib/shared/components/palette/order-summary/order-summary.model.mjs +0 -3
  718. package/esm2020/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +0 -73
  719. package/esm2020/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +0 -43
  720. package/esm2020/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +0 -44
  721. package/esm2020/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +0 -83
  722. package/esm2020/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +0 -87
  723. package/esm2020/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +0 -56
  724. package/esm2020/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +0 -33
  725. package/esm2020/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +0 -384
  726. package/esm2020/lib/shared/components/palette/palette.module.mjs +0 -738
  727. package/esm2020/lib/shared/components/palette/palette.service.mjs +0 -155
  728. package/esm2020/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +0 -24
  729. package/esm2020/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +0 -22
  730. package/esm2020/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +0 -73
  731. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +0 -42
  732. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +0 -144
  733. package/esm2020/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +0 -64
  734. package/esm2020/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +0 -60
  735. package/esm2020/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +0 -281
  736. package/esm2020/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +0 -327
  737. package/esm2020/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +0 -22
  738. package/esm2020/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +0 -164
  739. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +0 -74
  740. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +0 -107
  741. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +0 -201
  742. 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
  743. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +0 -21
  744. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +0 -38
  745. package/esm2020/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +0 -121
  746. package/esm2020/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +0 -22
  747. package/esm2020/lib/shared/components/palette/text/read-text-field.component.mjs +0 -24
  748. package/esm2020/lib/shared/components/palette/text/write-text-field.component.mjs +0 -77
  749. package/esm2020/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +0 -24
  750. package/esm2020/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +0 -87
  751. package/esm2020/lib/shared/components/palette/unsupported-field.component.mjs +0 -17
  752. package/esm2020/lib/shared/components/palette/utils/dash.pipe.mjs +0 -16
  753. package/esm2020/lib/shared/components/palette/utils/date.pipe.mjs +0 -132
  754. package/esm2020/lib/shared/components/palette/utils/field-label.pipe.mjs +0 -29
  755. package/esm2020/lib/shared/components/palette/utils/first-error.pipe.mjs +0 -62
  756. package/esm2020/lib/shared/components/palette/utils/is-compound.pipe.mjs +0 -43
  757. package/esm2020/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +0 -21
  758. package/esm2020/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +0 -31
  759. package/esm2020/lib/shared/components/palette/utils/is-read-only.pipe.mjs +0 -21
  760. package/esm2020/lib/shared/components/palette/utils/utils.module.mjs +0 -71
  761. package/esm2020/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +0 -34
  762. package/esm2020/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +0 -34
  763. package/esm2020/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +0 -100
  764. package/esm2020/lib/shared/components/palette/yes-no/yes-no.service.mjs +0 -50
  765. package/esm2020/lib/shared/components/search-filters/domain/search-input.model.mjs +0 -10
  766. package/esm2020/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +0 -58
  767. package/esm2020/lib/shared/components/search-filters/search-filters.component.mjs +0 -326
  768. package/esm2020/lib/shared/components/search-filters/search-filters.module.mjs +0 -71
  769. package/esm2020/lib/shared/components/search-result/search-result.component.mjs +0 -815
  770. package/esm2020/lib/shared/components/search-result/search-result.module.mjs +0 -82
  771. package/esm2020/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +0 -479
  772. package/esm2020/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +0 -67
  773. package/esm2020/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +0 -164
  774. package/esm2020/lib/shared/directives/conditional-show/conditional-show.module.mjs +0 -33
  775. package/esm2020/lib/shared/directives/conditional-show/domain/conditional-show.model.mjs +0 -200
  776. package/esm2020/lib/shared/directives/conditional-show/services/condition-parser.service.mjs +0 -200
  777. package/esm2020/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +0 -19
  778. package/esm2020/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +0 -47
  779. package/esm2020/lib/shared/directives/focus-element/focus-element.directive.mjs +0 -36
  780. package/esm2020/lib/shared/directives/focus-element/focus-element.module.mjs +0 -21
  781. package/esm2020/lib/shared/directives/substitutor/label-substitutor.directive.mjs +0 -82
  782. package/esm2020/lib/shared/directives/substitutor/label-substitutor.module.mjs +0 -30
  783. package/esm2020/lib/shared/directives/substitutor/services/placeholder.service.mjs +0 -200
  784. package/esm2020/lib/shared/domain/activity/activity.model.mjs +0 -10
  785. package/esm2020/lib/shared/domain/addresses/address.model.mjs +0 -13
  786. package/esm2020/lib/shared/domain/alert/alert.model.mjs +0 -3
  787. package/esm2020/lib/shared/domain/case-details.model.mjs +0 -4
  788. package/esm2020/lib/shared/domain/case-event-data.model.mjs +0 -4
  789. package/esm2020/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +0 -3
  790. package/esm2020/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +0 -4
  791. package/esm2020/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +0 -7
  792. package/esm2020/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +0 -117
  793. package/esm2020/lib/shared/domain/case-flag/flag-type.model.mjs +0 -28
  794. package/esm2020/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +0 -10
  795. package/esm2020/lib/shared/domain/case-view/case-event-trigger.model.mjs +0 -23
  796. package/esm2020/lib/shared/domain/case-view/case-print-document.model.mjs +0 -3
  797. package/esm2020/lib/shared/domain/case-view/case-tab.model.mjs +0 -12
  798. package/esm2020/lib/shared/domain/case-view/case-view-event.model.mjs +0 -4
  799. package/esm2020/lib/shared/domain/case-view/case-view-trigger.model.mjs +0 -3
  800. package/esm2020/lib/shared/domain/case-view/case-view.model.mjs +0 -17
  801. package/esm2020/lib/shared/domain/definition/access-control-list.model.mjs +0 -3
  802. package/esm2020/lib/shared/domain/definition/banner.model.mjs +0 -3
  803. package/esm2020/lib/shared/domain/definition/case-event.model.mjs +0 -3
  804. package/esm2020/lib/shared/domain/definition/case-field.model.mjs +0 -200
  805. package/esm2020/lib/shared/domain/definition/case-state.model.mjs +0 -3
  806. package/esm2020/lib/shared/domain/definition/case-type-lite.model.mjs +0 -5
  807. package/esm2020/lib/shared/domain/definition/case-type.model.mjs +0 -12
  808. package/esm2020/lib/shared/domain/definition/event-case-field.model.mjs +0 -4
  809. package/esm2020/lib/shared/domain/definition/field-type.model.mjs +0 -22
  810. package/esm2020/lib/shared/domain/definition/fixed-list-item.model.mjs +0 -3
  811. package/esm2020/lib/shared/domain/definition/jurisdiction.model.mjs +0 -3
  812. package/esm2020/lib/shared/domain/document/document-data.model.mjs +0 -14
  813. package/esm2020/lib/shared/domain/draft.model.mjs +0 -11
  814. package/esm2020/lib/shared/domain/http/http-error.model.mjs +0 -40
  815. package/esm2020/lib/shared/domain/organisation/organisation-converter.mjs +0 -42
  816. package/esm2020/lib/shared/domain/pagination-metadata.model.mjs +0 -3
  817. package/esm2020/lib/shared/domain/profile/profile.model.mjs +0 -29
  818. package/esm2020/lib/shared/domain/search/field.model.mjs +0 -11
  819. package/esm2020/lib/shared/domain/search/search-result-view-column.model.mjs +0 -3
  820. package/esm2020/lib/shared/domain/search/search-result-view-item.model.mjs +0 -12
  821. package/esm2020/lib/shared/domain/search/search-result-view.model.mjs +0 -23
  822. package/esm2020/lib/shared/domain/search/sorting/sort-parameters.mjs +0 -7
  823. package/esm2020/lib/shared/domain/workbasket/workbasket-input.model.mjs +0 -5
  824. package/esm2020/lib/shared/fixture/case-field-builder.mjs +0 -69
  825. package/esm2020/lib/shared/pipes/case-reference/case-reference.pipe.mjs +0 -33
  826. package/esm2020/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +0 -29
  827. package/esm2020/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +0 -32
  828. package/esm2020/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +0 -29
  829. package/esm2020/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +0 -39
  830. package/esm2020/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +0 -173
  831. package/esm2020/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +0 -31
  832. package/esm2020/lib/shared/pipes/complex/fields-filter.pipe.mjs +0 -105
  833. package/esm2020/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +0 -16
  834. package/esm2020/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +0 -27
  835. package/esm2020/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +0 -27
  836. package/esm2020/lib/shared/pipes/pipes.module.mjs +0 -64
  837. package/esm2020/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +0 -24
  838. package/esm2020/lib/shared/services/activity/activity.polling.service.mjs +0 -114
  839. package/esm2020/lib/shared/services/activity/activity.service.mjs +0 -82
  840. package/esm2020/lib/shared/services/addresses/address-parser.mjs +0 -76
  841. package/esm2020/lib/shared/services/addresses/addresses.service.mjs +0 -63
  842. package/esm2020/lib/shared/services/alert/alert.service.mjs +0 -142
  843. package/esm2020/lib/shared/services/auth/auth.service.mjs +0 -33
  844. package/esm2020/lib/shared/services/banners/banners.service.mjs +0 -33
  845. package/esm2020/lib/shared/services/browser/browser.service.mjs +0 -24
  846. package/esm2020/lib/shared/services/case-fields/case-field.service.mjs +0 -34
  847. package/esm2020/lib/shared/services/case-fields/format-translator.service.mjs +0 -242
  848. package/esm2020/lib/shared/services/case-file-view/case-file-view.service.mjs +0 -46
  849. package/esm2020/lib/shared/services/case-flag/case-flag-refdata.service.mjs +0 -102
  850. package/esm2020/lib/shared/services/common-data-service/common-data-service.mjs +0 -28
  851. package/esm2020/lib/shared/services/definitions/definitions.module.mjs +0 -19
  852. package/esm2020/lib/shared/services/definitions/definitions.service.mjs +0 -30
  853. package/esm2020/lib/shared/services/document-management/document-management.service.mjs +0 -112
  854. package/esm2020/lib/shared/services/draft/draft.service.mjs +0 -86
  855. package/esm2020/lib/shared/services/error/error-notifier.service.mjs +0 -18
  856. package/esm2020/lib/shared/services/eventStatusService/event-status.service.mjs +0 -21
  857. package/esm2020/lib/shared/services/fields/fields.purger.mjs +0 -304
  858. package/esm2020/lib/shared/services/fields/fields.utils.mjs +0 -615
  859. package/esm2020/lib/shared/services/form/field-type-sanitiser.mjs +0 -102
  860. package/esm2020/lib/shared/services/form/form-error.service.mjs +0 -46
  861. package/esm2020/lib/shared/services/form/form-validators.service.mjs +0 -82
  862. package/esm2020/lib/shared/services/form/form-value.service.mjs +0 -551
  863. package/esm2020/lib/shared/services/http/http-error.service.mjs +0 -65
  864. package/esm2020/lib/shared/services/http/http.service.mjs +0 -93
  865. package/esm2020/lib/shared/services/jurisdiction/jurisdiction.service.mjs +0 -33
  866. package/esm2020/lib/shared/services/loading/loading.module.mjs +0 -22
  867. package/esm2020/lib/shared/services/loading/loading.service.mjs +0 -33
  868. package/esm2020/lib/shared/services/navigation/navigation-notifier.service.mjs +0 -18
  869. package/esm2020/lib/shared/services/order/order.service.mjs +0 -39
  870. package/esm2020/lib/shared/services/organisation/organisation.service.mjs +0 -54
  871. package/esm2020/lib/shared/services/profile/profile.notifier.mjs +0 -19
  872. package/esm2020/lib/shared/services/profile/profile.service.mjs +0 -34
  873. package/esm2020/lib/shared/services/request/request.options.builder.mjs +0 -61
  874. package/esm2020/lib/shared/services/router/router-helper.service.mjs +0 -20
  875. package/esm2020/lib/shared/services/search/search.service.mjs +0 -89
  876. package/esm2020/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +0 -71
  877. package/esm2020/lib/shared/services/session/session-storage.service.mjs +0 -34
  878. package/esm2020/lib/shared/services/utils/retry/retry.service.mjs +0 -86
  879. package/esm2020/lib/shared/services/window/window.service.mjs +0 -40
  880. package/esm2020/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +0 -53
  881. package/esm2020/lib/shared/test/test-route-snapshot-builder.mjs +0 -40
  882. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +0 -38781
  883. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +0 -1
  884. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +0 -35799
  885. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +0 -1
  886. /package/{esm2020 → esm2022}/hmcts-ccd-case-ui-toolkit.mjs +0 -0
  887. /package/{esm2020 → esm2022}/lib/components/banners/alert/index.mjs +0 -0
  888. /package/{esm2020 → esm2022}/lib/components/banners/index.mjs +0 -0
  889. /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/domain/index.mjs +0 -0
  890. /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/domain/notification-banner-config.model.mjs +0 -0
  891. /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/enums/index.mjs +0 -0
  892. /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/enums/notification-banner-style.enum.mjs +0 -0
  893. /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/enums/notification-banner-type.enum.mjs +0 -0
  894. /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/index.mjs +0 -0
  895. /package/{esm2020 → esm2022}/lib/components/body/index.mjs +0 -0
  896. /package/{esm2020 → esm2022}/lib/components/footer/index.mjs +0 -0
  897. /package/{esm2020 → esm2022}/lib/components/form/date-input/index.mjs +0 -0
  898. /package/{esm2020 → esm2022}/lib/components/form/index.mjs +0 -0
  899. /package/{esm2020 → esm2022}/lib/components/header/header-bar/index.mjs +0 -0
  900. /package/{esm2020 → esm2022}/lib/components/header/index.mjs +0 -0
  901. /package/{esm2020 → esm2022}/lib/components/header/navigation/index.mjs +0 -0
  902. /package/{esm2020 → esm2022}/lib/components/header/phase/index.mjs +0 -0
  903. /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
  904. /package/{esm2020 → esm2022}/lib/components/tabs/index.mjs +0 -0
  905. /package/{esm2020 → esm2022}/lib/shared/commons/case-edit-data/case-edit-validation.model.mjs +0 -0
  906. /package/{esm2020 → esm2022}/lib/shared/commons/case-edit-data/index.mjs +0 -0
  907. /package/{esm2020 → esm2022}/lib/shared/components/activity/activity-banner/index.mjs +0 -0
  908. /package/{esm2020 → esm2022}/lib/shared/components/activity/activity-icon/index.mjs +0 -0
  909. /package/{esm2020 → esm2022}/lib/shared/components/activity/index.mjs +0 -0
  910. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-create/index.mjs +0 -0
  911. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit/index.mjs +0 -0
  912. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-confirm/index.mjs +0 -0
  913. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-form/index.mjs +0 -0
  914. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-page/index.mjs +0 -0
  915. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.mjs +0 -0
  916. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-submit/index.mjs +0 -0
  917. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-event-completion/index.mjs +0 -0
  918. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-progress/index.mjs +0 -0
  919. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-params.model.mjs +0 -0
  920. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-portal-types.model.mjs +0 -0
  921. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-return-states.enum.model.mjs +0 -0
  922. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-state-machine-context.model.mjs +0 -0
  923. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-states.enum.model.mjs +0 -0
  924. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/index.mjs +0 -0
  925. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/editor.routing.mjs +0 -0
  926. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/index.mjs +0 -0
  927. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/services/index.mjs +0 -0
  928. /package/{esm2020 → esm2022}/lib/shared/components/case-editor/services/wizard-factory.service.mjs +0 -0
  929. /package/{esm2020 → esm2022}/lib/shared/components/case-header/index.mjs +0 -0
  930. /package/{esm2020 → esm2022}/lib/shared/components/case-history/index.mjs +0 -0
  931. /package/{esm2020 → esm2022}/lib/shared/components/case-list/index.mjs +0 -0
  932. /package/{esm2020 → esm2022}/lib/shared/components/case-list-filters/index.mjs +0 -0
  933. /package/{esm2020 → esm2022}/lib/shared/components/case-timeline/index.mjs +0 -0
  934. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-basic-access-view/index.mjs +0 -0
  935. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-challenged-access-request/index.mjs +0 -0
  936. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-challenged-access-request/models/case-challenged-access-request.enum.mjs +0 -0
  937. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-challenged-access-request/models/index.mjs +0 -0
  938. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-challenged-access-success/index.mjs +0 -0
  939. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-event-trigger/index.mjs +0 -0
  940. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-full-access-view/index.mjs +0 -0
  941. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-review-specific-access-reject/index.mjs +0 -0
  942. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-review-specific-access-request/index.mjs +0 -0
  943. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-review-specific-access-request/models/case-review-specific-access-request.enum.mjs +0 -0
  944. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-review-specific-access-request/models/index.mjs +0 -0
  945. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-specific-access-request/index.mjs +0 -0
  946. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.mjs +0 -0
  947. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-specific-access-request/models/index.mjs +0 -0
  948. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-specific-access-success/index.mjs +0 -0
  949. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-view/index.mjs +0 -0
  950. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/index.mjs +0 -0
  951. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/printer/index.mjs +0 -0
  952. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/printer/pipes/index.mjs +0 -0
  953. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/services/index.mjs +0 -0
  954. /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/viewer.routing.mjs +0 -0
  955. /package/{esm2020 → esm2022}/lib/shared/components/create-case-filters/index.mjs +0 -0
  956. /package/{esm2020 → esm2022}/lib/shared/components/dialogs/delete-or-cancel-dialog/index.mjs +0 -0
  957. /package/{esm2020 → esm2022}/lib/shared/components/dialogs/document-dialog/index.mjs +0 -0
  958. /package/{esm2020 → esm2022}/lib/shared/components/dialogs/index.mjs +0 -0
  959. /package/{esm2020 → esm2022}/lib/shared/components/dialogs/remove-dialog/index.mjs +0 -0
  960. /package/{esm2020 → esm2022}/lib/shared/components/dialogs/save-or-discard-dialog/index.mjs +0 -0
  961. /package/{esm2020 → esm2022}/lib/shared/components/error/domain/index.mjs +0 -0
  962. /package/{esm2020 → esm2022}/lib/shared/components/error/index.mjs +0 -0
  963. /package/{esm2020 → esm2022}/lib/shared/components/error-message/index.mjs +0 -0
  964. /package/{esm2020 → esm2022}/lib/shared/components/event-start/index.mjs +0 -0
  965. /package/{esm2020 → esm2022}/lib/shared/components/event-start/models/event-start-state-machine-context.model.mjs +0 -0
  966. /package/{esm2020 → esm2022}/lib/shared/components/event-start/models/event-start-states-enum.model.mjs +0 -0
  967. /package/{esm2020 → esm2022}/lib/shared/components/event-start/models/index.mjs +0 -0
  968. /package/{esm2020 → esm2022}/lib/shared/components/event-start/services/index.mjs +0 -0
  969. /package/{esm2020 → esm2022}/lib/shared/components/event-trigger/index.mjs +0 -0
  970. /package/{esm2020 → esm2022}/lib/shared/components/helpers/index.mjs +0 -0
  971. /package/{esm2020 → esm2022}/lib/shared/components/helpers/init-dialog-helper.mjs +0 -0
  972. /package/{esm2020 → esm2022}/lib/shared/components/index.mjs +0 -0
  973. /package/{esm2020 → esm2022}/lib/shared/components/loading-spinner/index.mjs +0 -0
  974. /package/{esm2020 → esm2022}/lib/shared/components/pagination/index.mjs +0 -0
  975. /package/{esm2020 → esm2022}/lib/shared/components/palette/address/index.mjs +0 -0
  976. /package/{esm2020 → esm2022}/lib/shared/components/palette/base-field/index.mjs +0 -0
  977. /package/{esm2020 → esm2022}/lib/shared/components/palette/base-field/palette-context.enum.mjs +0 -0
  978. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-file-view/components/index.mjs +0 -0
  979. /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
  980. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-file-view/components/shared/index.mjs +0 -0
  981. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-file-view/index.mjs +0 -0
  982. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.mjs +0 -0
  983. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/components/index.mjs +0 -0
  984. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.mjs +0 -0
  985. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/domain/case-flag-state.model.mjs +0 -0
  986. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/domain/case-flag.model.mjs +0 -0
  987. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/domain/index.mjs +0 -0
  988. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/domain/language.model.mjs +0 -0
  989. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.mjs +0 -0
  990. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.mjs +0 -0
  991. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.mjs +0 -0
  992. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.mjs +0 -0
  993. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.mjs +0 -0
  994. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.mjs +0 -0
  995. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.mjs +0 -0
  996. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.mjs +0 -0
  997. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.mjs +0 -0
  998. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.mjs +0 -0
  999. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/index.mjs +0 -0
  1000. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.mjs +0 -0
  1001. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.mjs +0 -0
  1002. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.mjs +0 -0
  1003. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.mjs +0 -0
  1004. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.mjs +0 -0
  1005. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.mjs +0 -0
  1006. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.mjs +0 -0
  1007. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.mjs +0 -0
  1008. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.mjs +0 -0
  1009. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.mjs +0 -0
  1010. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/index.mjs +0 -0
  1011. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/pipes/index.mjs +0 -0
  1012. /package/{esm2020 → esm2022}/lib/shared/components/palette/case-link/index.mjs +0 -0
  1013. /package/{esm2020 → esm2022}/lib/shared/components/palette/collection/index.mjs +0 -0
  1014. /package/{esm2020 → esm2022}/lib/shared/components/palette/complex/index.mjs +0 -0
  1015. /package/{esm2020 → esm2022}/lib/shared/components/palette/complex/sort-order.mjs +0 -0
  1016. /package/{esm2020 → esm2022}/lib/shared/components/palette/date/index.mjs +0 -0
  1017. /package/{esm2020 → esm2022}/lib/shared/components/palette/datetime-picker/datetime-picker-utils.mjs +0 -0
  1018. /package/{esm2020 → esm2022}/lib/shared/components/palette/datetime-picker/index.mjs +0 -0
  1019. /package/{esm2020 → esm2022}/lib/shared/components/palette/document/index.mjs +0 -0
  1020. /package/{esm2020 → esm2022}/lib/shared/components/palette/dynamic-list/index.mjs +0 -0
  1021. /package/{esm2020 → esm2022}/lib/shared/components/palette/dynamic-multi-select-list/index.mjs +0 -0
  1022. /package/{esm2020 → esm2022}/lib/shared/components/palette/dynamic-radio-list/index.mjs +0 -0
  1023. /package/{esm2020 → esm2022}/lib/shared/components/palette/email/index.mjs +0 -0
  1024. /package/{esm2020 → esm2022}/lib/shared/components/palette/fixed-list/index.mjs +0 -0
  1025. /package/{esm2020 → esm2022}/lib/shared/components/palette/fixed-radio-list/index.mjs +0 -0
  1026. /package/{esm2020 → esm2022}/lib/shared/components/palette/history/event-log/index.mjs +0 -0
  1027. /package/{esm2020 → esm2022}/lib/shared/components/palette/history/index.mjs +0 -0
  1028. /package/{esm2020 → esm2022}/lib/shared/components/palette/index.mjs +0 -0
  1029. /package/{esm2020 → esm2022}/lib/shared/components/palette/judicial-user/index.mjs +0 -0
  1030. /package/{esm2020 → esm2022}/lib/shared/components/palette/label/index.mjs +0 -0
  1031. /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/components/index.mjs +0 -0
  1032. /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/domain/index.mjs +0 -0
  1033. /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.mjs +0 -0
  1034. /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/enums/index.mjs +0 -0
  1035. /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.mjs +0 -0
  1036. /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/index.mjs +0 -0
  1037. /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/services/index.mjs +0 -0
  1038. /package/{esm2020 → esm2022}/lib/shared/components/palette/markdown/index.mjs +0 -0
  1039. /package/{esm2020 → esm2022}/lib/shared/components/palette/money-gbp/index.mjs +0 -0
  1040. /package/{esm2020 → esm2022}/lib/shared/components/palette/multi-select-list/index.mjs +0 -0
  1041. /package/{esm2020 → esm2022}/lib/shared/components/palette/number/index.mjs +0 -0
  1042. /package/{esm2020 → esm2022}/lib/shared/components/palette/order-summary/index.mjs +0 -0
  1043. /package/{esm2020 → esm2022}/lib/shared/components/palette/organisation/index.mjs +0 -0
  1044. /package/{esm2020 → esm2022}/lib/shared/components/palette/payment/index.mjs +0 -0
  1045. /package/{esm2020 → esm2022}/lib/shared/components/palette/phone-uk/index.mjs +0 -0
  1046. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/__mocks__/index.mjs +0 -0
  1047. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/components/index.mjs +0 -0
  1048. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/index.mjs +0 -0
  1049. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.mjs +0 -0
  1050. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.mjs +0 -0
  1051. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.mjs +0 -0
  1052. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.mjs +0 -0
  1053. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/index.mjs +0 -0
  1054. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +0 -0
  1055. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/index.mjs +0 -0
  1056. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.mjs +0 -0
  1057. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.mjs +0 -0
  1058. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/query-create-context.enum.mjs +0 -0
  1059. /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.mjs +0 -0
  1060. /package/{esm2020 → esm2022}/lib/shared/components/palette/text/index.mjs +0 -0
  1061. /package/{esm2020 → esm2022}/lib/shared/components/palette/text-area/index.mjs +0 -0
  1062. /package/{esm2020 → esm2022}/lib/shared/components/palette/utils/index.mjs +0 -0
  1063. /package/{esm2020 → esm2022}/lib/shared/components/palette/waystopay/index.mjs +0 -0
  1064. /package/{esm2020 → esm2022}/lib/shared/components/palette/yes-no/index.mjs +0 -0
  1065. /package/{esm2020 → esm2022}/lib/shared/components/search-filters/domain/index.mjs +0 -0
  1066. /package/{esm2020 → esm2022}/lib/shared/components/search-filters/index.mjs +0 -0
  1067. /package/{esm2020 → esm2022}/lib/shared/components/search-result/index.mjs +0 -0
  1068. /package/{esm2020 → esm2022}/lib/shared/components/workbasket-filters/index.mjs +0 -0
  1069. /package/{esm2020 → esm2022}/lib/shared/directives/conditional-show/domain/index.mjs +0 -0
  1070. /package/{esm2020 → esm2022}/lib/shared/directives/conditional-show/index.mjs +0 -0
  1071. /package/{esm2020 → esm2022}/lib/shared/directives/conditional-show/services/condition.peg.mjs +0 -0
  1072. /package/{esm2020 → esm2022}/lib/shared/directives/conditional-show/services/index.mjs +0 -0
  1073. /package/{esm2020 → esm2022}/lib/shared/directives/focus-element/index.mjs +0 -0
  1074. /package/{esm2020 → esm2022}/lib/shared/directives/index.mjs +0 -0
  1075. /package/{esm2020 → esm2022}/lib/shared/directives/substitutor/index.mjs +0 -0
  1076. /package/{esm2020 → esm2022}/lib/shared/directives/substitutor/services/index.mjs +0 -0
  1077. /package/{esm2020 → esm2022}/lib/shared/domain/activity/index.mjs +0 -0
  1078. /package/{esm2020 → esm2022}/lib/shared/domain/addresses/index.mjs +0 -0
  1079. /package/{esm2020 → esm2022}/lib/shared/domain/alert/alert-level.model.mjs +0 -0
  1080. /package/{esm2020 → esm2022}/lib/shared/domain/alert/alert-status-params.model.mjs +0 -0
  1081. /package/{esm2020 → esm2022}/lib/shared/domain/alert/index.mjs +0 -0
  1082. /package/{esm2020 → esm2022}/lib/shared/domain/case-edit/case-edit.model.mjs +0 -0
  1083. /package/{esm2020 → esm2022}/lib/shared/domain/case-edit/index.mjs +0 -0
  1084. /package/{esm2020 → esm2022}/lib/shared/domain/case-file-view/case-file-view-sort-columns.enum.mjs +0 -0
  1085. /package/{esm2020 → esm2022}/lib/shared/domain/case-file-view/document-tree-node/document-tree-node-type.model.mjs +0 -0
  1086. /package/{esm2020 → esm2022}/lib/shared/domain/case-file-view/index.mjs +0 -0
  1087. /package/{esm2020 → esm2022}/lib/shared/domain/case-flag/index.mjs +0 -0
  1088. /package/{esm2020 → esm2022}/lib/shared/domain/case-view/access-types.model.mjs +0 -0
  1089. /package/{esm2020 → esm2022}/lib/shared/domain/case-view/case-view-event-ids.enum.mjs +0 -0
  1090. /package/{esm2020 → esm2022}/lib/shared/domain/case-view/challenged-access-request.model.mjs +0 -0
  1091. /package/{esm2020 → esm2022}/lib/shared/domain/case-view/index.mjs +0 -0
  1092. /package/{esm2020 → esm2022}/lib/shared/domain/case-view/review-specific-access-request.model.mjs +0 -0
  1093. /package/{esm2020 → esm2022}/lib/shared/domain/case-view/role-assignment-response.model.mjs +0 -0
  1094. /package/{esm2020 → esm2022}/lib/shared/domain/case-view/role-request.model.mjs +0 -0
  1095. /package/{esm2020 → esm2022}/lib/shared/domain/case-view/service-org-response.model.mjs +0 -0
  1096. /package/{esm2020 → esm2022}/lib/shared/domain/case-view/specific-access-request.model.mjs +0 -0
  1097. /package/{esm2020 → esm2022}/lib/shared/domain/definition/display-context-enum.model.mjs +0 -0
  1098. /package/{esm2020 → esm2022}/lib/shared/domain/definition/field-type-enum.model.mjs +0 -0
  1099. /package/{esm2020 → esm2022}/lib/shared/domain/definition/index.mjs +0 -0
  1100. /package/{esm2020 → esm2022}/lib/shared/domain/document/index.mjs +0 -0
  1101. /package/{esm2020 → esm2022}/lib/shared/domain/error-message.model.mjs +0 -0
  1102. /package/{esm2020 → esm2022}/lib/shared/domain/http/index.mjs +0 -0
  1103. /package/{esm2020 → esm2022}/lib/shared/domain/index.mjs +0 -0
  1104. /package/{esm2020 → esm2022}/lib/shared/domain/jurisdiction/index.mjs +0 -0
  1105. /package/{esm2020 → esm2022}/lib/shared/domain/jurisdiction/judicial-user.model.mjs +0 -0
  1106. /package/{esm2020 → esm2022}/lib/shared/domain/order/index.mjs +0 -0
  1107. /package/{esm2020 → esm2022}/lib/shared/domain/order/orderable.model.mjs +0 -0
  1108. /package/{esm2020 → esm2022}/lib/shared/domain/organisation/index.mjs +0 -0
  1109. /package/{esm2020 → esm2022}/lib/shared/domain/organisation/simple-organisation.model.mjs +0 -0
  1110. /package/{esm2020 → esm2022}/lib/shared/domain/predicate.model.mjs +0 -0
  1111. /package/{esm2020 → esm2022}/lib/shared/domain/profile/index.mjs +0 -0
  1112. /package/{esm2020 → esm2022}/lib/shared/domain/search/index.mjs +0 -0
  1113. /package/{esm2020 → esm2022}/lib/shared/domain/search/sorting/search-result-view-item-comparator.mjs +0 -0
  1114. /package/{esm2020 → esm2022}/lib/shared/domain/sort-order.enum.mjs +0 -0
  1115. /package/{esm2020 → esm2022}/lib/shared/domain/user/user-details.model.mjs +0 -0
  1116. /package/{esm2020 → esm2022}/lib/shared/domain/user/user-info.model.mjs +0 -0
  1117. /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/Task.mjs +0 -0
  1118. /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/TaskPayload.mjs +0 -0
  1119. /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/case-worker.model.mjs +0 -0
  1120. /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/index.mjs +0 -0
  1121. /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/judicial-worker.model.mjs +0 -0
  1122. /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/task-response.model.mjs +0 -0
  1123. /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/task-search-parameter.model.mjs +0 -0
  1124. /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/wa-service-config.model.mjs +0 -0
  1125. /package/{esm2020 → esm2022}/lib/shared/domain/workbasket/index.mjs +0 -0
  1126. /package/{esm2020 → esm2022}/lib/shared/fixture/shared.test.fixture.mjs +0 -0
  1127. /package/{esm2020 → esm2022}/lib/shared/index.mjs +0 -0
  1128. /package/{esm2020 → esm2022}/lib/shared/pipes/case-reference/index.mjs +0 -0
  1129. /package/{esm2020 → esm2022}/lib/shared/pipes/case-title/index.mjs +0 -0
  1130. /package/{esm2020 → esm2022}/lib/shared/pipes/complex/index.mjs +0 -0
  1131. /package/{esm2020 → esm2022}/lib/shared/pipes/generic/index.mjs +0 -0
  1132. /package/{esm2020 → esm2022}/lib/shared/pipes/index.mjs +0 -0
  1133. /package/{esm2020 → esm2022}/lib/shared/pipes/link-cases-from-reason-code/index.mjs +0 -0
  1134. /package/{esm2020 → esm2022}/lib/shared/pipes/link-cases-reason-code/index.mjs +0 -0
  1135. /package/{esm2020 → esm2022}/lib/shared/services/activity/index.mjs +0 -0
  1136. /package/{esm2020 → esm2022}/lib/shared/services/addresses/address-type.enum.mjs +0 -0
  1137. /package/{esm2020 → esm2022}/lib/shared/services/addresses/index.mjs +0 -0
  1138. /package/{esm2020 → esm2022}/lib/shared/services/alert/index.mjs +0 -0
  1139. /package/{esm2020 → esm2022}/lib/shared/services/auth/index.mjs +0 -0
  1140. /package/{esm2020 → esm2022}/lib/shared/services/banners/index.mjs +0 -0
  1141. /package/{esm2020 → esm2022}/lib/shared/services/browser/index.mjs +0 -0
  1142. /package/{esm2020 → esm2022}/lib/shared/services/case-fields/index.mjs +0 -0
  1143. /package/{esm2020 → esm2022}/lib/shared/services/case-file-view/index.mjs +0 -0
  1144. /package/{esm2020 → esm2022}/lib/shared/services/case-flag/index.mjs +0 -0
  1145. /package/{esm2020 → esm2022}/lib/shared/services/case-flag/refdata-case-flag-type.enum.mjs +0 -0
  1146. /package/{esm2020 → esm2022}/lib/shared/services/definitions/index.mjs +0 -0
  1147. /package/{esm2020 → esm2022}/lib/shared/services/document-management/index.mjs +0 -0
  1148. /package/{esm2020 → esm2022}/lib/shared/services/draft/index.mjs +0 -0
  1149. /package/{esm2020 → esm2022}/lib/shared/services/error/index.mjs +0 -0
  1150. /package/{esm2020 → esm2022}/lib/shared/services/eventStatusService/index.mjs +0 -0
  1151. /package/{esm2020 → esm2022}/lib/shared/services/fields/index.mjs +0 -0
  1152. /package/{esm2020 → esm2022}/lib/shared/services/form/index.mjs +0 -0
  1153. /package/{esm2020 → esm2022}/lib/shared/services/http/index.mjs +0 -0
  1154. /package/{esm2020 → esm2022}/lib/shared/services/index.mjs +0 -0
  1155. /package/{esm2020 → esm2022}/lib/shared/services/jurisdiction/index.mjs +0 -0
  1156. /package/{esm2020 → esm2022}/lib/shared/services/loading/index.mjs +0 -0
  1157. /package/{esm2020 → esm2022}/lib/shared/services/navigation/index.mjs +0 -0
  1158. /package/{esm2020 → esm2022}/lib/shared/services/navigation/navigation-origin.model.mjs +0 -0
  1159. /package/{esm2020 → esm2022}/lib/shared/services/order/index.mjs +0 -0
  1160. /package/{esm2020 → esm2022}/lib/shared/services/organisation/index.mjs +0 -0
  1161. /package/{esm2020 → esm2022}/lib/shared/services/profile/index.mjs +0 -0
  1162. /package/{esm2020 → esm2022}/lib/shared/services/request/index.mjs +0 -0
  1163. /package/{esm2020 → esm2022}/lib/shared/services/router/index.mjs +0 -0
  1164. /package/{esm2020 → esm2022}/lib/shared/services/search/index.mjs +0 -0
  1165. /package/{esm2020 → esm2022}/lib/shared/services/session/index.mjs +0 -0
  1166. /package/{esm2020 → esm2022}/lib/shared/services/utils/retry/index.mjs +0 -0
  1167. /package/{esm2020 → esm2022}/lib/shared/services/window/index.mjs +0 -0
  1168. /package/{esm2020 → esm2022}/lib/shared/services/workbasket/index.mjs +0 -0
  1169. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -0,0 +1,697 @@
1
+ import { Component } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { RpxTranslationService } from 'rpx-xui-translation';
5
+ import { CaseEditDataService } from '../../../commons/case-edit-data/case-edit-data.service';
6
+ import { FieldsUtils } from '../../../services/fields';
7
+ import { CaseFlagStateService } from '../../case-editor/services/case-flag-state.service';
8
+ import { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';
9
+ import { CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagStatus } from './enums';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/router";
12
+ import * as i2 from "../../../commons/case-edit-data/case-edit-data.service";
13
+ import * as i3 from "../../case-editor/services/case-flag-state.service";
14
+ import * as i4 from "rpx-xui-translation";
15
+ function WriteCaseFlagFieldComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
16
+ const _r1 = i0.ɵɵgetCurrentView();
17
+ i0.ɵɵelementStart(0, "div", 5)(1, "ul", 6)(2, "li")(3, "a", 7);
18
+ i0.ɵɵlistener("click", function WriteCaseFlagFieldComponent_div_0_div_4_Template_a_click_3_listener() { const errorMessage_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.navigateToErrorElement(errorMessage_r2.fieldId)); });
19
+ i0.ɵɵtext(4);
20
+ i0.ɵɵpipe(5, "rpxTranslate");
21
+ i0.ɵɵelementEnd()()()();
22
+ } if (rf & 2) {
23
+ const errorMessage_r2 = ctx.$implicit;
24
+ i0.ɵɵadvance(4);
25
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 1, errorMessage_r2.description));
26
+ } }
27
+ function WriteCaseFlagFieldComponent_div_0_Template(rf, ctx) { if (rf & 1) {
28
+ i0.ɵɵelementStart(0, "div", 2)(1, "h2", 3);
29
+ i0.ɵɵtext(2);
30
+ i0.ɵɵpipe(3, "rpxTranslate");
31
+ i0.ɵɵelementEnd();
32
+ i0.ɵɵtemplate(4, WriteCaseFlagFieldComponent_div_0_div_4_Template, 6, 3, "div", 4);
33
+ i0.ɵɵelementEnd();
34
+ } if (rf & 2) {
35
+ const ctx_r2 = i0.ɵɵnextContext();
36
+ i0.ɵɵadvance(2);
37
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "There is a problem"), " ");
38
+ i0.ɵɵadvance(2);
39
+ i0.ɵɵproperty("ngForOf", ctx_r2.errorMessages);
40
+ } }
41
+ function WriteCaseFlagFieldComponent_div_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
42
+ const _r4 = i0.ɵɵgetCurrentView();
43
+ i0.ɵɵelementContainerStart(0);
44
+ i0.ɵɵelementStart(1, "ccd-select-flag-location", 11);
45
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_2_Template_ccd_select_flag_location_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCaseFlagStateEmitted($event)); });
46
+ i0.ɵɵelementEnd();
47
+ i0.ɵɵelementContainerEnd();
48
+ } if (rf & 2) {
49
+ const ctx_r2 = i0.ɵɵnextContext(2);
50
+ i0.ɵɵadvance();
51
+ i0.ɵɵproperty("formGroup", ctx_r2.caseFlagParentFormGroup)("flagsData", ctx_r2.flagsData)("isDisplayContextParameterExternal", ctx_r2.isDisplayContextParameterExternal);
52
+ } }
53
+ function WriteCaseFlagFieldComponent_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
54
+ const _r5 = i0.ɵɵgetCurrentView();
55
+ i0.ɵɵelementContainerStart(0);
56
+ i0.ɵɵelementStart(1, "ccd-select-flag-type", 12);
57
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_3_Template_ccd_select_flag_type_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCaseFlagStateEmitted($event)); })("flagCommentsOptionalEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_3_Template_ccd_select_flag_type_flagCommentsOptionalEmitter_1_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onFlagCommentsOptionalEmitted($event)); });
58
+ i0.ɵɵelementEnd();
59
+ i0.ɵɵelementContainerEnd();
60
+ } if (rf & 2) {
61
+ const ctx_r2 = i0.ɵɵnextContext(2);
62
+ i0.ɵɵadvance();
63
+ i0.ɵɵproperty("formGroup", ctx_r2.caseFlagParentFormGroup)("jurisdiction", ctx_r2.jurisdiction)("caseTypeId", ctx_r2.caseTypeId)("hmctsServiceId", ctx_r2.hmctsServiceId)("isDisplayContextParameterExternal", ctx_r2.isDisplayContextParameterExternal)("isDisplayContextParameter2Point1Enabled", ctx_r2.isDisplayContextParameter2Point1Enabled)("selectedFlagsLocation", ctx_r2.selectedFlagsLocation);
64
+ } }
65
+ function WriteCaseFlagFieldComponent_div_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
66
+ const _r6 = i0.ɵɵgetCurrentView();
67
+ i0.ɵɵelementContainerStart(0);
68
+ i0.ɵɵelementStart(1, "ccd-search-language-interpreter", 13);
69
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_4_Template_ccd_search_language_interpreter_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCaseFlagStateEmitted($event)); });
70
+ i0.ɵɵelementEnd();
71
+ i0.ɵɵelementContainerEnd();
72
+ } if (rf & 2) {
73
+ const ctx_r2 = i0.ɵɵnextContext(2);
74
+ i0.ɵɵadvance();
75
+ i0.ɵɵproperty("formGroup", ctx_r2.caseFlagParentFormGroup)("flagType", ctx_r2.flagType);
76
+ } }
77
+ function WriteCaseFlagFieldComponent_div_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
78
+ const _r7 = i0.ɵɵgetCurrentView();
79
+ i0.ɵɵelementContainerStart(0);
80
+ i0.ɵɵelementStart(1, "ccd-add-comments", 14);
81
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_5_Template_ccd_add_comments_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCaseFlagStateEmitted($event)); });
82
+ i0.ɵɵelementEnd();
83
+ i0.ɵɵelementContainerEnd();
84
+ } if (rf & 2) {
85
+ const ctx_r2 = i0.ɵɵnextContext(2);
86
+ i0.ɵɵadvance();
87
+ i0.ɵɵproperty("formGroup", ctx_r2.caseFlagParentFormGroup)("optional", ctx_r2.flagCommentsOptional)("isDisplayContextParameterExternal", ctx_r2.isDisplayContextParameterExternal)("isDisplayContextParameter2Point1Enabled", ctx_r2.isDisplayContextParameter2Point1Enabled);
88
+ } }
89
+ function WriteCaseFlagFieldComponent_div_1_ng_container_6_Template(rf, ctx) { if (rf & 1) {
90
+ const _r8 = i0.ɵɵgetCurrentView();
91
+ i0.ɵɵelementContainerStart(0);
92
+ i0.ɵɵelementStart(1, "ccd-confirm-flag-status", 15);
93
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_6_Template_ccd_confirm_flag_status_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCaseFlagStateEmitted($event)); });
94
+ i0.ɵɵelementEnd();
95
+ i0.ɵɵelementContainerEnd();
96
+ } if (rf & 2) {
97
+ const ctx_r2 = i0.ɵɵnextContext(2);
98
+ i0.ɵɵadvance();
99
+ i0.ɵɵproperty("formGroup", ctx_r2.caseFlagParentFormGroup)("defaultStatus", ctx_r2.flagType.defaultStatus);
100
+ } }
101
+ function WriteCaseFlagFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
102
+ i0.ɵɵelementStart(0, "div", 8)(1, "div", 9);
103
+ i0.ɵɵtemplate(2, WriteCaseFlagFieldComponent_div_1_ng_container_2_Template, 2, 3, "ng-container", 10)(3, WriteCaseFlagFieldComponent_div_1_ng_container_3_Template, 2, 7, "ng-container", 10)(4, WriteCaseFlagFieldComponent_div_1_ng_container_4_Template, 2, 2, "ng-container", 10)(5, WriteCaseFlagFieldComponent_div_1_ng_container_5_Template, 2, 4, "ng-container", 10)(6, WriteCaseFlagFieldComponent_div_1_ng_container_6_Template, 2, 2, "ng-container", 10);
104
+ i0.ɵɵelementEnd()();
105
+ } if (rf & 2) {
106
+ const ctx_r2 = i0.ɵɵnextContext();
107
+ i0.ɵɵproperty("formGroup", ctx_r2.formGroup);
108
+ i0.ɵɵadvance();
109
+ i0.ɵɵproperty("ngSwitch", ctx_r2.fieldState);
110
+ i0.ɵɵadvance();
111
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_LOCATION);
112
+ i0.ɵɵadvance();
113
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_TYPE);
114
+ i0.ɵɵadvance();
115
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_LANGUAGE_INTERPRETER);
116
+ i0.ɵɵadvance();
117
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_COMMENTS);
118
+ i0.ɵɵadvance();
119
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_STATUS);
120
+ } }
121
+ function WriteCaseFlagFieldComponent_div_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {
122
+ const _r9 = i0.ɵɵgetCurrentView();
123
+ i0.ɵɵelementContainerStart(0);
124
+ i0.ɵɵelementStart(1, "ccd-manage-case-flags", 16);
125
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_2_ng_container_2_Template_ccd_manage_case_flags_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCaseFlagStateEmitted($event)); });
126
+ i0.ɵɵelementEnd();
127
+ i0.ɵɵelementContainerEnd();
128
+ } if (rf & 2) {
129
+ const ctx_r2 = i0.ɵɵnextContext(2);
130
+ i0.ɵɵadvance();
131
+ i0.ɵɵproperty("formGroup", ctx_r2.caseFlagParentFormGroup)("flagsData", ctx_r2.flagsData)("caseTitle", ctx_r2.caseTitle)("displayContextParameter", ctx_r2.displayContextParameter);
132
+ } }
133
+ function WriteCaseFlagFieldComponent_div_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
134
+ const _r10 = i0.ɵɵgetCurrentView();
135
+ i0.ɵɵelementContainerStart(0);
136
+ i0.ɵɵelementStart(1, "ccd-update-flag", 17);
137
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_2_ng_container_3_Template_ccd_update_flag_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r10); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCaseFlagStateEmitted($event)); });
138
+ i0.ɵɵelementEnd();
139
+ i0.ɵɵelementContainerEnd();
140
+ } if (rf & 2) {
141
+ const ctx_r2 = i0.ɵɵnextContext(2);
142
+ i0.ɵɵadvance();
143
+ i0.ɵɵproperty("formGroup", ctx_r2.caseFlagParentFormGroup)("displayContextParameter", ctx_r2.displayContextParameter);
144
+ } }
145
+ function WriteCaseFlagFieldComponent_div_2_ng_container_4_Template(rf, ctx) { if (rf & 1) {
146
+ const _r11 = i0.ɵɵgetCurrentView();
147
+ i0.ɵɵelementContainerStart(0);
148
+ i0.ɵɵelementStart(1, "ccd-update-flag-add-translation-form", 18);
149
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_2_ng_container_4_Template_ccd_update_flag_add_translation_form_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onCaseFlagStateEmitted($event)); });
150
+ i0.ɵɵelementEnd();
151
+ i0.ɵɵelementContainerEnd();
152
+ } if (rf & 2) {
153
+ const ctx_r2 = i0.ɵɵnextContext(2);
154
+ i0.ɵɵadvance();
155
+ i0.ɵɵproperty("formGroup", ctx_r2.caseFlagParentFormGroup);
156
+ } }
157
+ function WriteCaseFlagFieldComponent_div_2_Template(rf, ctx) { if (rf & 1) {
158
+ i0.ɵɵelementStart(0, "div", 8)(1, "div", 9);
159
+ i0.ɵɵtemplate(2, WriteCaseFlagFieldComponent_div_2_ng_container_2_Template, 2, 4, "ng-container", 10)(3, WriteCaseFlagFieldComponent_div_2_ng_container_3_Template, 2, 2, "ng-container", 10)(4, WriteCaseFlagFieldComponent_div_2_ng_container_4_Template, 2, 1, "ng-container", 10);
160
+ i0.ɵɵelementEnd()();
161
+ } if (rf & 2) {
162
+ const ctx_r2 = i0.ɵɵnextContext();
163
+ i0.ɵɵproperty("formGroup", ctx_r2.formGroup);
164
+ i0.ɵɵadvance();
165
+ i0.ɵɵproperty("ngSwitch", ctx_r2.fieldState);
166
+ i0.ɵɵadvance();
167
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS);
168
+ i0.ɵɵadvance();
169
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_UPDATE);
170
+ i0.ɵɵadvance();
171
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION);
172
+ } }
173
+ export class WriteCaseFlagFieldComponent extends AbstractFieldWriteComponent {
174
+ route;
175
+ caseEditDataService;
176
+ caseFlagStateService;
177
+ rpxTranslationService;
178
+ fieldState;
179
+ caseFlagFieldState = CaseFlagFieldState;
180
+ errorMessages = [];
181
+ flagsData;
182
+ selectedFlag;
183
+ caseFlagParentFormGroup;
184
+ flagCommentsOptional = false;
185
+ jurisdiction;
186
+ caseTypeId;
187
+ hmctsServiceId;
188
+ isDisplayContextParameterUpdate;
189
+ isDisplayContextParameterExternal;
190
+ isDisplayContextParameter2Point1Enabled;
191
+ caseTitle;
192
+ caseTitleSubscription;
193
+ displayContextParameter;
194
+ determinedLocation;
195
+ allCaseFlagStagesCompleted = false;
196
+ // Code for "Other" flag type as defined in Reference Data
197
+ otherFlagTypeCode = 'OT0001';
198
+ selectedManageCaseLocation = 'selectedManageCaseLocation';
199
+ caseNameMissing = 'Case name missing';
200
+ get flagType() {
201
+ return this.caseFlagParentFormGroup?.value.flagType;
202
+ }
203
+ get selectedFlagsLocation() {
204
+ return this.caseFlagParentFormGroup?.value.selectedLocation;
205
+ }
206
+ set selectedFlagsLocation(selectedLocation) {
207
+ if (this.caseFlagParentFormGroup) {
208
+ this.caseFlagParentFormGroup.value.selectedLocation = selectedLocation;
209
+ }
210
+ }
211
+ constructor(route, caseEditDataService, caseFlagStateService, rpxTranslationService) {
212
+ super();
213
+ this.route = route;
214
+ this.caseEditDataService = caseEditDataService;
215
+ this.caseFlagStateService = caseFlagStateService;
216
+ this.rpxTranslationService = rpxTranslationService;
217
+ }
218
+ ngOnInit() {
219
+ // If it is start of the journey or navigation from check your answers page then fieldStateToNavigate property
220
+ // in case flag state service will contain the field state to navigate based on create or manage journey
221
+ this.fieldState = this.caseFlagStateService.fieldStateToNavigate;
222
+ if (this.fieldState === undefined ||
223
+ this.fieldState === CaseFlagFieldState.FLAG_LOCATION ||
224
+ this.fieldState === CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS) {
225
+ const params = this.route.snapshot.params;
226
+ // Clear the form group, field state to navigate and set the page location
227
+ this.caseFlagStateService.resetCache(`../${params['eid']}/${params['page']}`);
228
+ }
229
+ // Reassign the form group from the case flag state service
230
+ this.caseFlagParentFormGroup = this.caseFlagStateService.formGroup;
231
+ // Clear form validation errors as a new page will be rendered based on field state
232
+ this.caseEditDataService.clearFormValidationErrors();
233
+ // Check for existing FlagLauncher control in parent and remove it - this is the only way to ensure its invalidity
234
+ // is set correctly at the start, when the component is reloaded and the control is re-registered. Otherwise, the
235
+ // validator state gets carried over
236
+ if (this.formGroup && this.formGroup.get(this.caseField.id)) {
237
+ this.formGroup.removeControl(this.caseField.id);
238
+ }
239
+ // From this point, this.formGroup refers to the FormGroup for the FlagLauncher field, not the parent FormGroup
240
+ this.formGroup = this.registerControl(new FormGroup({}, {
241
+ validators: (_) => {
242
+ if (!this.allCaseFlagStagesCompleted) {
243
+ // Return an error to mark the FormGroup as invalid if not all Case Flag stages have been completed
244
+ return { notAllCaseFlagStagesCompleted: true };
245
+ }
246
+ return null;
247
+ }
248
+ }), true);
249
+ // Get the case type ID from the CaseView object in the snapshot data (required for retrieving the available flag
250
+ // types for a case)
251
+ if (this.route.snapshot.data.case && this.route.snapshot.data.case.case_type) {
252
+ this.caseTypeId = this.route.snapshot.data.case.case_type.id;
253
+ // Get the jurisdiction (required for retrieving the available flag types if unable to determine using case type ID)
254
+ if (this.route.snapshot.data.case.case_type.jurisdiction) {
255
+ this.jurisdiction = this.route.snapshot.data.case.case_type.jurisdiction.id;
256
+ }
257
+ }
258
+ // Extract all flags-related data from the CaseEventTrigger object in the snapshot data
259
+ if (this.route.snapshot.data.eventTrigger) {
260
+ // Get the HMCTSServiceId from supplementary data, if it exists (required for retrieving the available flag types in
261
+ // the first instance, only falling back on case type ID or jurisdiction if it's not present)
262
+ if (this.route.snapshot.data.eventTrigger.supplementary_data
263
+ && this.route.snapshot.data.eventTrigger.supplementary_data.HMCTSServiceId) {
264
+ this.hmctsServiceId = this.route.snapshot.data.eventTrigger.supplementary_data.HMCTSServiceId;
265
+ }
266
+ if (this.route.snapshot.data.eventTrigger.case_fields) {
267
+ this.flagsData = (this.route.snapshot.data.eventTrigger.case_fields)
268
+ .reduce((flags, caseField) => FieldsUtils.extractFlagsDataFromCaseField(flags, caseField, caseField.id, caseField), []);
269
+ // Set displayContextParameter (to be passed as an input to ManageCaseFlagsComponent for setting correct title)
270
+ this.displayContextParameter =
271
+ this.setDisplayContextParameter(this.route.snapshot.data.eventTrigger.case_fields);
272
+ // Set boolean indicating the display_context_parameter is "update"
273
+ this.isDisplayContextParameterUpdate = this.setDisplayContextParameterUpdate(this.displayContextParameter);
274
+ // Set boolean indicating the display_context_parameter is "external"
275
+ this.isDisplayContextParameterExternal = this.setDisplayContextParameterExternal(this.displayContextParameter);
276
+ // Set boolean indicating the display_context_parameter is Case Flags v2.1 enabled
277
+ this.isDisplayContextParameter2Point1Enabled = this.setDisplayContextParameter2Point1Enabled(this.displayContextParameter);
278
+ // Set starting field state if fieldState not the right value
279
+ if (!this.fieldState) {
280
+ this.fieldState = this.isDisplayContextParameterUpdate ? CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : CaseFlagFieldState.FLAG_LOCATION;
281
+ }
282
+ // Get case title, to be used by child components
283
+ this.caseTitleSubscription = this.caseEditDataService.caseTitle$.subscribe({
284
+ next: title => {
285
+ this.caseTitle = title?.length > 0 ? title : this.caseNameMissing;
286
+ }
287
+ });
288
+ }
289
+ }
290
+ }
291
+ setDisplayContextParameterUpdate(displayContextParameter) {
292
+ return displayContextParameter === CaseFlagDisplayContextParameter.UPDATE ||
293
+ displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL ||
294
+ displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1;
295
+ }
296
+ setDisplayContextParameterExternal(displayContextParameter) {
297
+ return displayContextParameter === CaseFlagDisplayContextParameter.CREATE_EXTERNAL ||
298
+ displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL;
299
+ }
300
+ setDisplayContextParameter2Point1Enabled(displayContextParameter) {
301
+ return displayContextParameter === CaseFlagDisplayContextParameter.CREATE_2_POINT_1 ||
302
+ displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1;
303
+ }
304
+ onCaseFlagStateEmitted(caseFlagState) {
305
+ this.caseEditDataService.clearFormValidationErrors();
306
+ this.errorMessages = caseFlagState.errorMessages;
307
+ this.selectedFlag = caseFlagState.selectedFlag;
308
+ // Validation succeeded; proceed to next state or final review stage ("Check your answers")
309
+ if (this.errorMessages.length === 0) {
310
+ if (this.canMoveToFinalReviewStage(caseFlagState)) {
311
+ this.moveToFinalReviewStage();
312
+ // Don't move to next state if current state is CaseFlagFieldState.FLAG_TYPE and the flag type is a parent - this
313
+ // means the user needs to select from the next set of flag types before they can move on
314
+ }
315
+ else if (!caseFlagState.isParentFlagType) {
316
+ // Proceed to next state
317
+ this.proceedToNextState();
318
+ }
319
+ }
320
+ }
321
+ canMoveToFinalReviewStage(caseFlagState) {
322
+ // If the journey is request support or manage support
323
+ // and the current state is either CaseFlagFieldState.FLAG_COMMENTS or CaseFlagFieldState.FLAG_UPDATE
324
+ // then move to final review stage
325
+ if (this.isDisplayContextParameterExternal) {
326
+ return caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_COMMENTS ||
327
+ caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE;
328
+ }
329
+ // If the current state is one of:
330
+ // * CaseFlagFieldState.FLAG_STATUS AND Case Flags v2.1 is enabled
331
+ // * CaseFlagFieldState.FLAG_COMMENTS AND Case Flags v2.1 is not enabled
332
+ // * CaseFlagFieldState.FLAG_UPDATE and Welsh translation checkbox is not selected
333
+ // * CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION
334
+ // then move to final review stage
335
+ return (caseFlagState.currentCaseFlagFieldState ===
336
+ CaseFlagFieldState.FLAG_STATUS && this.isDisplayContextParameter2Point1Enabled) ||
337
+ (caseFlagState.currentCaseFlagFieldState ===
338
+ CaseFlagFieldState.FLAG_COMMENTS && !this.isDisplayContextParameter2Point1Enabled) ||
339
+ (caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE &&
340
+ !this.caseFlagParentFormGroup.get(CaseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED)?.value) ||
341
+ caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION;
342
+ }
343
+ proceedToNextState() {
344
+ if (!this.isAtFinalState()) {
345
+ // Skip the "language interpreter" state if current state is CaseFlagFieldState.FLAG_TYPE and the flag type doesn't
346
+ // have a "list of values" - currently, this is present only for those flag types that require language interpreter
347
+ // selection
348
+ if (this.fieldState === CaseFlagFieldState.FLAG_TYPE && !this.flagType?.listOfValues) {
349
+ this.fieldState = CaseFlagFieldState.FLAG_COMMENTS;
350
+ }
351
+ else {
352
+ this.fieldState++;
353
+ }
354
+ }
355
+ }
356
+ setFlagsCaseFieldValue() {
357
+ // tslint:disable-next-line: switch-default
358
+ switch (this.fieldState) {
359
+ case CaseFlagFieldState.FLAG_STATUS:
360
+ this.addFlagToCollection();
361
+ break;
362
+ case CaseFlagFieldState.FLAG_COMMENTS:
363
+ if (this.isDisplayContextParameterExternal || !this.isDisplayContextParameter2Point1Enabled) {
364
+ this.addFlagToCollection();
365
+ }
366
+ break;
367
+ case this.manageFlagFinalState:
368
+ this.updateFlagInCollection();
369
+ break;
370
+ }
371
+ }
372
+ addFlagToCollection() {
373
+ // Ensure no more than one new flag is being added at a time, by iterating through each Flags case field and removing
374
+ // any previous entry from the details array where that entry has no id (hence it is new - and there should be only
375
+ // one such entry). (This scenario occurs if the user repeats the Case Flag creation journey by using the "Change"
376
+ // link and selects either the same flag location as before or a different one.)
377
+ this.flagsData.forEach(instance => {
378
+ // Use the pathToFlagsFormGroup property for each Flags case field to drill down to the correct part of the
379
+ // CaseField value to remove the new value from
380
+ let value = instance.caseField?.value;
381
+ const pathToValue = instance.pathToFlagsFormGroup;
382
+ // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
383
+ if (pathToValue.indexOf('.') > -1) {
384
+ pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach(part => value = value[part]);
385
+ }
386
+ if (value?.details?.length > 0) {
387
+ const indexOfNewFlagDetail = value.details.findIndex(element => !element.hasOwnProperty('id'));
388
+ if (indexOfNewFlagDetail > -1) {
389
+ value.details.splice(indexOfNewFlagDetail, 1);
390
+ }
391
+ }
392
+ });
393
+ const formValues = this.caseFlagParentFormGroup?.value;
394
+ // Determine the correct location - internal or external - for the new flag. If returned as undefined, this
395
+ // indicates a configuration error with the external `Flags` object instance
396
+ this.determinedLocation =
397
+ this.determineLocationForFlag(!this.isDisplayContextParameterExternal, this.selectedFlagsLocation, formValues);
398
+ // Do not mutate this.selectedFlagsLocation; if this.selectedFlagsLocation becomes undefined,
399
+ // determineLocationForFlag() will no longer do anything when called with it - and the appropriate error message will
400
+ // not be redisplayed if the user clicks "Next" again on the "Add comments" page, after the error is first shown
401
+ if (this.determinedLocation) {
402
+ const path = this.determinedLocation.pathToFlagsFormGroup;
403
+ const flagDataRef = this.flagsData.find(item => item.pathToFlagsFormGroup === path);
404
+ let flagsCaseFieldValue = flagDataRef.caseField?.value;
405
+ // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the
406
+ // CaseField value to apply changes to
407
+ // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
408
+ if (path.indexOf('.') > -1) {
409
+ path.slice(path.indexOf('.') + 1).split('.').forEach(part => flagsCaseFieldValue = flagsCaseFieldValue[part]);
410
+ }
411
+ // If the CaseField for the selected flags location has no value, set it to an empty object so it can be populated
412
+ // with flag details
413
+ if (!flagsCaseFieldValue) {
414
+ flagDataRef.caseField.value = {};
415
+ flagsCaseFieldValue = flagDataRef.caseField.value;
416
+ }
417
+ // Create a details array if one does not exist
418
+ if (!flagsCaseFieldValue.hasOwnProperty('details')) {
419
+ flagsCaseFieldValue.details = [];
420
+ }
421
+ // Populate new FlagDetail instance and add to the Flags data within the CaseField instance of the selected flag
422
+ // location
423
+ flagsCaseFieldValue.details.push({ value: this.populateNewFlagDetailInstance() });
424
+ }
425
+ }
426
+ /**
427
+ * Determines the correct location (i.e. either the internal or external instance of a `Flags` object) for a new flag,
428
+ * according to the following:
429
+ *
430
+ * * Whether the user is internal or external (no effect for external users because they can access only the external
431
+ * instance)
432
+ * * The existence of two `Flags` objects - one internal, one external - linked by the same `groupId`;
433
+ * * For flags of type "Other", whether "only visible to HMCTS staff" has been selected or not ("Other" defaults to
434
+ * externally visible);
435
+ * * For all other flag types, the value of the `externallyAvailable` attribute.
436
+ *
437
+ * If the user is internal then the new flag should be assigned to the external `Flags` instance if:
438
+ * * Such an instance exists, AND
439
+ * * The flag type is "Other" and "only visible to HMCTS staff" was not selected, OR
440
+ * * The flag type is not "Other" and `externallyAvailable` is `true`.
441
+ *
442
+ * @param isInternalUser Whether the current user is internal or not
443
+ * @param selectedFlagsLocation The currently selected location for the new flag
444
+ * @param formValues All the values from the `caseFlagParentFormGroup`
445
+ * @returns The correctly determined location: either the internal or external location (if one exists) where a groupId
446
+ * is present; the original location otherwise. **Note:** If the external location is returned as undefined, this
447
+ * indicates a configuration error
448
+ */
449
+ determineLocationForFlag(isInternalUser, selectedFlagsLocation, formValues) {
450
+ if (isInternalUser && selectedFlagsLocation?.flags?.groupId) {
451
+ if ((formValues?.flagType?.flagCode === this.otherFlagTypeCode && !formValues?.flagIsVisibleInternallyOnly) ||
452
+ (formValues?.flagType?.flagCode !== this.otherFlagTypeCode && formValues?.flagType?.externallyAvailable)) {
453
+ // If necessary, find the corresponding flags object with the same groupId and external visibility (should be
454
+ // only one unless misconfigured)
455
+ const location = selectedFlagsLocation.flags.visibility?.toLowerCase() === 'external'
456
+ ? selectedFlagsLocation
457
+ : this.flagsData.filter((f) => f.flags?.groupId === selectedFlagsLocation.flags.groupId &&
458
+ f.flags?.visibility?.toLowerCase() === 'external')?.[0];
459
+ // If location is not truthy, set an error message and make caseFlagParentFormGroup invalid to prevent
460
+ // navigation to the summary page (by not triggering the submit event)
461
+ if (!location) {
462
+ this.errorMessages.push({
463
+ title: '',
464
+ description: CaseFlagErrorMessage.NO_EXTERNAL_FLAGS_COLLECTION
465
+ });
466
+ this.caseFlagParentFormGroup.setErrors({
467
+ noExternalCollection: true
468
+ });
469
+ }
470
+ return location;
471
+ }
472
+ else {
473
+ // If necessary, find the corresponding flags object with the same groupId and internal visibility (should be
474
+ // only one unless misconfigured); assumed to be internal if visibility attribute is null or undefined
475
+ const location = selectedFlagsLocation.flags.visibility?.toLowerCase() !== 'external'
476
+ ? selectedFlagsLocation
477
+ : this.flagsData.filter((f) => f.flags?.groupId === selectedFlagsLocation.flags.groupId &&
478
+ f.flags?.visibility?.toLowerCase() !== 'external')?.[0];
479
+ // If location is not truthy, set an error message and make caseFlagParentFormGroup invalid to prevent
480
+ // navigation to the summary page (by not triggering the submit event)
481
+ if (!location) {
482
+ this.errorMessages.push({
483
+ title: '',
484
+ description: CaseFlagErrorMessage.NO_INTERNAL_FLAGS_COLLECTION
485
+ });
486
+ this.caseFlagParentFormGroup.setErrors({
487
+ noInternalCollection: true
488
+ });
489
+ }
490
+ return location;
491
+ }
492
+ }
493
+ return selectedFlagsLocation;
494
+ }
495
+ updateFlagInCollection() {
496
+ // Ensure no more than one flag is being updated at a time, by iterating through each Flags case field and resetting
497
+ // the description, comments, status, and date/time modified (if present) for each entry in the details array, with
498
+ // original values from the corresponding formatted_value property. (This scenario occurs if the user repeats the
499
+ // Manage Case Flag journey by using the "Change" link and selects a different flag to update.)
500
+ this.flagsData.forEach(instance => {
501
+ // Use the pathToFlagsFormGroup property for each Flags case field to drill down to the correct part of the
502
+ // CaseField value for which to restore the original values
503
+ let value = instance.caseField?.value;
504
+ let formattedValue = instance.caseField?.formatted_value;
505
+ const pathToValue = instance.pathToFlagsFormGroup;
506
+ // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
507
+ if (pathToValue.indexOf('.') > -1) {
508
+ pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach(part => {
509
+ value = value[part];
510
+ if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
511
+ formattedValue = formattedValue[part];
512
+ }
513
+ });
514
+ }
515
+ if (value?.details?.length > 0 && formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
516
+ value.details.forEach(flagDetail => {
517
+ const originalFlagDetail = formattedValue.details?.find(detail => detail.id === flagDetail.id);
518
+ if (originalFlagDetail) {
519
+ flagDetail.value.otherDescription = originalFlagDetail.value?.otherDescription || null;
520
+ flagDetail.value.otherDescription_cy = originalFlagDetail.value?.otherDescription_cy || null;
521
+ flagDetail.value.flagComment = originalFlagDetail.value?.flagComment || null;
522
+ flagDetail.value.flagComment_cy = originalFlagDetail.value?.flagComment_cy || null;
523
+ flagDetail.value.flagUpdateComment = originalFlagDetail.value?.flagUpdateComment || null;
524
+ flagDetail.value.status = originalFlagDetail.value?.status;
525
+ flagDetail.value.dateTimeModified = originalFlagDetail.value?.dateTimeModified || null;
526
+ }
527
+ });
528
+ }
529
+ });
530
+ if (!this.selectedFlag) {
531
+ this.selectedFlag = this.formGroup.get(this.selectedManageCaseLocation).value;
532
+ }
533
+ let flagsCaseFieldValue = this.selectedFlag.caseField?.value;
534
+ // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the
535
+ // CaseField value to apply changes to
536
+ const path = this.selectedFlag.pathToFlagsFormGroup;
537
+ // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
538
+ if (path.indexOf('.') > -1) {
539
+ path.slice(path.indexOf('.') + 1).split('.').forEach(part => flagsCaseFieldValue = flagsCaseFieldValue[part]);
540
+ }
541
+ if (flagsCaseFieldValue) {
542
+ const flagDetailToUpdate = flagsCaseFieldValue.details?.find(detail => detail.id === this.selectedFlag.flagDetailDisplay?.flagDetail?.id);
543
+ if (flagDetailToUpdate) {
544
+ // Cache the *original* status of the flag before it is modified. This is needed if the user changes the flag status
545
+ // then decides to return to any part of the flag update journey. The ManageCaseFlagsComponent and UpdateFlagComponent
546
+ // should refer to a flag's original status, not the one set via the UI because this hasn't been persisted yet
547
+ this.selectedFlag.originalStatus = flagDetailToUpdate.value?.status;
548
+ // Update description fields only if flag type is "Other" (flag code OT0001); these fields apply only to that flag type
549
+ // If their FormControls don't exist, it means these fields weren't visited as part of the "Update Flag" journey, so do
550
+ // *not* update their values (otherwise they will become undefined)
551
+ if (flagDetailToUpdate.value?.flagCode === this.otherFlagTypeCode) {
552
+ if (this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION)) {
553
+ flagDetailToUpdate.value.otherDescription = this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION).value;
554
+ }
555
+ if (this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH)) {
556
+ flagDetailToUpdate.value.otherDescription_cy = this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH).value;
557
+ }
558
+ }
559
+ // Ensure that any comments entered with language set to Welsh do not end up in the English comments field
560
+ if (this.rpxTranslationService.language !== 'cy') {
561
+ flagDetailToUpdate.value.flagComment = this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS)?.value;
562
+ }
563
+ // Populate from the *English* comments field if:
564
+ // * The Welsh comments field has no value (Welsh comments field acquires a value only when an HMCTS internal user has
565
+ // gone through the "add translation" step for Manage Case Flags), AND
566
+ // * The language is set to Welsh
567
+ // If the FormControl doesn't exist, it means this field wasn't visited as part of the "Update Flag" journey, so do
568
+ // *not* update its value (otherwise it will be overridden) - unless the user is external AND working in Welsh
569
+ if (this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS_WELSH) || this.rpxTranslationService.language === 'cy') {
570
+ flagDetailToUpdate.value.flagComment_cy = this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS_WELSH)?.value
571
+ ? this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS_WELSH)?.value
572
+ : this.rpxTranslationService.language === 'cy'
573
+ ? this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS)?.value
574
+ : null;
575
+ }
576
+ flagDetailToUpdate.value.flagUpdateComment = this.caseFlagParentFormGroup.get(CaseFlagFormFields.STATUS_CHANGE_REASON)?.value;
577
+ flagDetailToUpdate.value.status = CaseFlagStatus[this.caseFlagParentFormGroup.get(CaseFlagFormFields.STATUS)?.value];
578
+ flagDetailToUpdate.value.dateTimeModified = new Date().toISOString();
579
+ }
580
+ }
581
+ }
582
+ isAtFinalState() {
583
+ return this.isDisplayContextParameterUpdate
584
+ ? this.fieldState === this.manageFlagFinalState
585
+ : !this.isDisplayContextParameter2Point1Enabled
586
+ ? this.fieldState === CaseFlagFieldState.FLAG_COMMENTS
587
+ : this.fieldState === CaseFlagFieldState.FLAG_STATUS;
588
+ }
589
+ navigateToErrorElement(elementId) {
590
+ if (elementId) {
591
+ const htmlElement = document.getElementById(elementId);
592
+ if (htmlElement) {
593
+ htmlElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
594
+ htmlElement.focus();
595
+ }
596
+ }
597
+ }
598
+ onFlagCommentsOptionalEmitted(_) {
599
+ this.flagCommentsOptional = true;
600
+ }
601
+ populateNewFlagDetailInstance() {
602
+ const langSearchTerm = this.caseFlagParentFormGroup?.value['languageSearchTerm'];
603
+ const manualLangEntry = this.caseFlagParentFormGroup?.value['manualLanguageEntry'];
604
+ const flagType = this.caseFlagParentFormGroup?.value['flagType'];
605
+ const otherDesc = this.caseFlagParentFormGroup?.value['otherDescription'];
606
+ const formValues = this.caseFlagParentFormGroup?.value;
607
+ return {
608
+ name: this.flagType?.name,
609
+ name_cy: flagType?.name_cy,
610
+ // Currently, subTypeValue, subTypeValue_cy and subTypeKey are applicable only to language flag types
611
+ subTypeValue: langSearchTerm && this.rpxTranslationService.language === 'en'
612
+ ? langSearchTerm.value
613
+ : manualLangEntry && this.rpxTranslationService.language === 'en'
614
+ ? manualLangEntry
615
+ : null,
616
+ subTypeValue_cy: langSearchTerm && this.rpxTranslationService.language === 'cy'
617
+ ? langSearchTerm?.value_cy
618
+ : manualLangEntry && this.rpxTranslationService.language === 'cy'
619
+ ? manualLangEntry
620
+ : null,
621
+ // For user-entered (i.e. non-Reference Data) languages, there is no key
622
+ subTypeKey: langSearchTerm
623
+ ? langSearchTerm.key
624
+ : null,
625
+ otherDescription: flagType?.flagCode === this.otherFlagTypeCode &&
626
+ otherDesc && this.rpxTranslationService.language === 'en'
627
+ ? otherDesc
628
+ : null,
629
+ otherDescription_cy: flagType?.flagCode === this.otherFlagTypeCode &&
630
+ otherDesc && this.rpxTranslationService.language === 'cy'
631
+ ? otherDesc
632
+ : null,
633
+ flagComment: this.rpxTranslationService.language === 'en'
634
+ ? formValues?.flagComments
635
+ : null,
636
+ flagComment_cy: this.rpxTranslationService.language === 'cy'
637
+ ? formValues?.flagComments
638
+ : null,
639
+ flagUpdateComment: formValues?.statusReason,
640
+ dateTimeCreated: new Date().toISOString(),
641
+ path: flagType?.Path &&
642
+ flagType?.Path.map(pathValue => Object.assign({ id: null, value: pathValue })),
643
+ hearingRelevant: flagType?.hearingRelevant ? 'Yes' : 'No',
644
+ flagCode: flagType?.flagCode,
645
+ // Status should be set to whatever the default is for this flag type, if flag is being created by an external
646
+ // user, otherwise it should be set to "Active" if Case Flags v2.1 is NOT enabled, or the selected status if it is
647
+ status: this.isDisplayContextParameterExternal
648
+ ? flagType?.defaultStatus
649
+ : !this.isDisplayContextParameter2Point1Enabled
650
+ ? CaseFlagStatus.ACTIVE
651
+ : CaseFlagStatus[formValues?.selectedStatus],
652
+ availableExternally: flagType?.externallyAvailable ? 'Yes' : 'No'
653
+ };
654
+ }
655
+ moveToFinalReviewStage() {
656
+ this.setFlagsCaseFieldValue();
657
+ // Check that no errors have been set on caseFlagParentFormGroup (by determineLocationForFlag()); prevent moving to
658
+ // final review stage if errors exist
659
+ if (!this.caseFlagParentFormGroup.errors) {
660
+ // Clear the "notAllCaseFlagStagesCompleted" error
661
+ this.allCaseFlagStagesCompleted = true;
662
+ this.formGroup.updateValueAndValidity();
663
+ this.caseEditDataService.setTriggerSubmitEvent(true);
664
+ // Update this.selectedFlagsLocation with the correctly determined location, so the correct value is available to
665
+ // ReadCaseFlagFieldComponent when it initialises the Case Flag Summary page
666
+ this.selectedFlagsLocation = this.determinedLocation;
667
+ }
668
+ }
669
+ ngOnDestroy() {
670
+ // Reset the fieldstateToNavigate as the write journey completes at this point
671
+ this.caseFlagStateService.fieldStateToNavigate = undefined;
672
+ this.caseTitleSubscription?.unsubscribe();
673
+ }
674
+ get manageFlagFinalState() {
675
+ return this.caseFlagParentFormGroup.get(CaseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED)?.value
676
+ ? CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : CaseFlagFieldState.FLAG_UPDATE;
677
+ }
678
+ setDisplayContextParameter(caseFields) {
679
+ return caseFields.find(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']))?.display_context_parameter;
680
+ }
681
+ static ɵfac = function WriteCaseFlagFieldComponent_Factory(t) { return new (t || WriteCaseFlagFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.CaseEditDataService), i0.ɵɵdirectiveInject(i3.CaseFlagStateService), i0.ɵɵdirectiveInject(i4.RpxTranslationService)); };
682
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteCaseFlagFieldComponent, selectors: [["ccd-write-case-flag-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 3, consts: [["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], ["class", "form-group", 3, "formGroup", 4, "ngIf"], ["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-group", 3, "formGroup"], [1, "govuk-form-group", 3, "ngSwitch"], [4, "ngSwitchCase"], [3, "caseFlagStateEmitter", "formGroup", "flagsData", "isDisplayContextParameterExternal"], [3, "caseFlagStateEmitter", "flagCommentsOptionalEmitter", "formGroup", "jurisdiction", "caseTypeId", "hmctsServiceId", "isDisplayContextParameterExternal", "isDisplayContextParameter2Point1Enabled", "selectedFlagsLocation"], [3, "caseFlagStateEmitter", "formGroup", "flagType"], [3, "caseFlagStateEmitter", "formGroup", "optional", "isDisplayContextParameterExternal", "isDisplayContextParameter2Point1Enabled"], [3, "caseFlagStateEmitter", "formGroup", "defaultStatus"], [3, "caseFlagStateEmitter", "formGroup", "flagsData", "caseTitle", "displayContextParameter"], [3, "caseFlagStateEmitter", "formGroup", "displayContextParameter"], [3, "caseFlagStateEmitter", "formGroup"]], template: function WriteCaseFlagFieldComponent_Template(rf, ctx) { if (rf & 1) {
683
+ i0.ɵɵtemplate(0, WriteCaseFlagFieldComponent_div_0_Template, 5, 4, "div", 0)(1, WriteCaseFlagFieldComponent_div_1_Template, 7, 7, "div", 1)(2, WriteCaseFlagFieldComponent_div_2_Template, 5, 5, "div", 1);
684
+ } if (rf & 2) {
685
+ i0.ɵɵproperty("ngIf", ctx.errorMessages.length > 0);
686
+ i0.ɵɵadvance();
687
+ i0.ɵɵproperty("ngIf", !ctx.isDisplayContextParameterUpdate);
688
+ i0.ɵɵadvance();
689
+ i0.ɵɵproperty("ngIf", ctx.isDisplayContextParameterUpdate);
690
+ } }, styles: [".validation-error[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:#d4351c}"] });
691
+ }
692
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteCaseFlagFieldComponent, [{
693
+ type: Component,
694
+ args: [{ selector: 'ccd-write-case-flag-field', template: "<!-- Error message summary -->\n<div *ngIf=\"errorMessages.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 errorMessage of errorMessages\" class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a (click)=\"navigateToErrorElement(errorMessage.fieldId)\" class=\"validation-error\">{{errorMessage.description | rpxTranslate}}</a>\n </li>\n </ul>\n </div>\n</div>\n<div *ngIf=\"!isDisplayContextParameterUpdate\" class=\"form-group\" [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngSwitch]=\"fieldState\">\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_LOCATION\">\n <ccd-select-flag-location\n [formGroup]=\"caseFlagParentFormGroup\" [flagsData]=\"flagsData\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"\n [isDisplayContextParameterExternal]=\"isDisplayContextParameterExternal\"\n ></ccd-select-flag-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_TYPE\">\n <ccd-select-flag-type [formGroup]=\"caseFlagParentFormGroup\" [jurisdiction]=\"jurisdiction\" [caseTypeId]=\"caseTypeId\"\n [hmctsServiceId]=\"hmctsServiceId\" [isDisplayContextParameterExternal]=\"isDisplayContextParameterExternal\"\n [isDisplayContextParameter2Point1Enabled]=\"isDisplayContextParameter2Point1Enabled\"\n [selectedFlagsLocation]=\"selectedFlagsLocation\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"\n (flagCommentsOptionalEmitter)=\"onFlagCommentsOptionalEmitted($event)\"></ccd-select-flag-type>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_LANGUAGE_INTERPRETER\">\n <ccd-search-language-interpreter [formGroup]=\"caseFlagParentFormGroup\"\n [flagType]=\"flagType\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\">\n </ccd-search-language-interpreter>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_COMMENTS\">\n <ccd-add-comments [formGroup]=\"caseFlagParentFormGroup\" [optional]=\"flagCommentsOptional\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"\n [isDisplayContextParameterExternal]=\"isDisplayContextParameterExternal\"\n [isDisplayContextParameter2Point1Enabled]=\"isDisplayContextParameter2Point1Enabled\">\n </ccd-add-comments>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_STATUS\">\n <ccd-confirm-flag-status [formGroup]=\"caseFlagParentFormGroup\" [defaultStatus]=\"flagType.defaultStatus\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"></ccd-confirm-flag-status>\n </ng-container>\n </div>\n</div>\n<div *ngIf=\"isDisplayContextParameterUpdate\" class=\"form-group\" [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngSwitch]=\"fieldState\">\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS\">\n <ccd-manage-case-flags [formGroup]=\"caseFlagParentFormGroup\" [flagsData]=\"flagsData\" [caseTitle]=\"caseTitle\"\n [displayContextParameter]=\"displayContextParameter\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"></ccd-manage-case-flags>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_UPDATE\">\n <ccd-update-flag [formGroup]=\"caseFlagParentFormGroup\"\n [displayContextParameter]=\"displayContextParameter\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"></ccd-update-flag>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION\">\n <ccd-update-flag-add-translation-form\n [formGroup]=\"caseFlagParentFormGroup\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"\n ></ccd-update-flag-add-translation-form>\n </ng-container>\n </div>\n</div>\n", styles: [".validation-error{cursor:pointer;text-decoration:underline;color:#d4351c}\n"] }]
695
+ }], () => [{ type: i1.ActivatedRoute }, { type: i2.CaseEditDataService }, { type: i3.CaseFlagStateService }, { type: i4.RpxTranslationService }], null); })();
696
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteCaseFlagFieldComponent, { className: "WriteCaseFlagFieldComponent", filePath: "lib/shared/components/palette/case-flag/write-case-flag-field.component.ts", lineNumber: 20 }); })();
697
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy93cml0ZS1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3dyaXRlLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUc3RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7SUNKaEksQUFERixBQURGLEFBREYsOEJBQWtGLFlBQy9CLFNBQzNDLFdBQ2lGO0lBQWhGLDJOQUFTLHNEQUE0QyxLQUFDO0lBQTBC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QVMsQ0FBQztRQUMzRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLEtBQUs7WUFDOUYsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7SUFDdEYsQ0FBQztJQUVNLDBCQUEwQixDQUFDLFVBQXVCO1FBQ3ZELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUseUJBQXlCLENBQUM7SUFDN0gsQ0FBQztxRkE5aEJVLDJCQUEyQjs2REFBM0IsMkJBQTJCO1lDOEJ4QyxBQXBDQSxBQVpBLDRFQUFxSywrREFZNUUsK0RBb0NEOztZQWhEbEYsbURBQThCO1lBWTlCLGNBQXNDO1lBQXRDLDJEQUFzQztZQW9DdEMsY0FBcUM7WUFBckMsMERBQXFDOzs7aUZEOUI5QiwyQkFBMkI7Y0FMdkMsU0FBUzsyQkFDRSwyQkFBMkI7O2tGQUkxQiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJweFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ3JweC14dWktdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlRWRpdERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9jYXNlLWVkaXQtZGF0YS9jYXNlLWVkaXQtZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VGaWVsZCwgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZsYWdUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2UtZmxhZyc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcyc7XG5pbXBvcnQgeyBDYXNlRmxhZ1N0YXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2UtZmxhZy1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtd3JpdGUuY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUsIEZsYWdEZXRhaWwsIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGgsIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLCBDYXNlRmxhZ0Vycm9yTWVzc2FnZSwgQ2FzZUZsYWdGaWVsZFN0YXRlLCBDYXNlRmxhZ0Zvcm1GaWVsZHMsIENhc2VGbGFnU3RhdHVzIH0gZnJvbSAnLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1jYXNlLWZsYWctZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3JpdGUtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd3JpdGUtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVDYXNlRmxhZ0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZmllbGRTdGF0ZTogbnVtYmVyO1xuICBwdWJsaWMgY2FzZUZsYWdGaWVsZFN0YXRlID0gQ2FzZUZsYWdGaWVsZFN0YXRlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBwdWJsaWMgc2VsZWN0ZWRGbGFnOiBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoO1xuICBwdWJsaWMgY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGZsYWdDb21tZW50c09wdGlvbmFsID0gZmFsc2U7XG4gIHB1YmxpYyBqdXJpc2RpY3Rpb246IHN0cmluZztcbiAgcHVibGljIGNhc2VUeXBlSWQ6IHN0cmluZztcbiAgcHVibGljIGhtY3RzU2VydmljZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyVXBkYXRlOiBib29sZWFuO1xuICBwdWJsaWMgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsOiBib29sZWFuO1xuICBwdWJsaWMgaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkOiBib29sZWFuO1xuICBwdWJsaWMgY2FzZVRpdGxlOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlVGl0bGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyOiBzdHJpbmc7XG4gIHB1YmxpYyBkZXRlcm1pbmVkTG9jYXRpb246IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGg7XG4gIHByaXZhdGUgYWxsQ2FzZUZsYWdTdGFnZXNDb21wbGV0ZWQgPSBmYWxzZTtcbiAgLy8gQ29kZSBmb3IgXCJPdGhlclwiIGZsYWcgdHlwZSBhcyBkZWZpbmVkIGluIFJlZmVyZW5jZSBEYXRhXG4gIHByaXZhdGUgcmVhZG9ubHkgb3RoZXJGbGFnVHlwZUNvZGUgPSAnT1QwMDAxJztcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbiA9ICdzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbic7XG4gIHB1YmxpYyByZWFkb25seSBjYXNlTmFtZU1pc3NpbmcgPSAnQ2FzZSBuYW1lIG1pc3NpbmcnO1xuXG4gIHB1YmxpYyBnZXQgZmxhZ1R5cGUoKTogRmxhZ1R5cGUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cD8udmFsdWUuZmxhZ1R5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkRmxhZ3NMb2NhdGlvbigpOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXA/LnZhbHVlLnNlbGVjdGVkTG9jYXRpb247XG4gIH1cblxuICBwdWJsaWMgc2V0IHNlbGVjdGVkRmxhZ3NMb2NhdGlvbihzZWxlY3RlZExvY2F0aW9uOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwKSB7XG4gICAgICB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLnZhbHVlLnNlbGVjdGVkTG9jYXRpb24gPSBzZWxlY3RlZExvY2F0aW9uO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUVkaXREYXRhU2VydmljZTogQ2FzZUVkaXREYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VGbGFnU3RhdGVTZXJ2aWNlOiBDYXNlRmxhZ1N0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJweFRyYW5zbGF0aW9uU2VydmljZTogUnB4VHJhbnNsYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgaXQgaXMgc3RhcnQgb2YgdGhlIGpvdXJuZXkgb3IgbmF2aWdhdGlvbiBmcm9tIGNoZWNrIHlvdXIgYW5zd2VycyBwYWdlIHRoZW4gZmllbGRTdGF0ZVRvTmF2aWdhdGUgcHJvcGVydHlcbiAgICAvLyBpbiBjYXNlIGZsYWcgc3RhdGUgc2VydmljZSB3aWxsIGNvbnRhaW4gdGhlIGZpZWxkIHN0YXRlIHRvIG5hdmlnYXRlIGJhc2VkIG9uIGNyZWF0ZSBvciBtYW5hZ2Ugam91cm5leVxuICAgIHRoaXMuZmllbGRTdGF0ZSA9IHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZmllbGRTdGF0ZVRvTmF2aWdhdGU7XG4gICAgaWYgKHRoaXMuZmllbGRTdGF0ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHRoaXMuZmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTE9DQVRJT04gfHxcbiAgICAgICAgdGhpcy5maWVsZFN0YXRlID09PSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19NQU5BR0VfQ0FTRV9GTEFHUykge1xuICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXM7XG4gICAgICAvLyBDbGVhciB0aGUgZm9ybSBncm91cCwgZmllbGQgc3RhdGUgdG8gbmF2aWdhdGUgYW5kIHNldCB0aGUgcGFnZSBsb2NhdGlvblxuICAgICAgdGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5yZXNldENhY2hlKGAuLi8ke3BhcmFtc1snZWlkJ119LyR7cGFyYW1zWydwYWdlJ119YCk7XG4gICAgfVxuICAgIC8vIFJlYXNzaWduIHRoZSBmb3JtIGdyb3VwIGZyb20gdGhlIGNhc2UgZmxhZyBzdGF0ZSBzZXJ2aWNlXG4gICAgdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cCA9IHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZm9ybUdyb3VwO1xuICAgIC8vIENsZWFyIGZvcm0gdmFsaWRhdGlvbiBlcnJvcnMgYXMgYSBuZXcgcGFnZSB3aWxsIGJlIHJlbmRlcmVkIGJhc2VkIG9uIGZpZWxkIHN0YXRlXG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNsZWFyRm9ybVZhbGlkYXRpb25FcnJvcnMoKTtcbiAgICAvLyBDaGVjayBmb3IgZXhpc3RpbmcgRmxhZ0xhdW5jaGVyIGNvbnRyb2wgaW4gcGFyZW50IGFuZCByZW1vdmUgaXQgLSB0aGlzIGlzIHRoZSBvbmx5IHdheSB0byBlbnN1cmUgaXRzIGludmFsaWRpdHlcbiAgICAvLyBpcyBzZXQgY29ycmVjdGx5IGF0IHRoZSBzdGFydCwgd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbG9hZGVkIGFuZCB0aGUgY29udHJvbCBpcyByZS1yZWdpc3RlcmVkLiBPdGhlcndpc2UsIHRoZVxuICAgIC8vIHZhbGlkYXRvciBzdGF0ZSBnZXRzIGNhcnJpZWQgb3ZlclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCAmJiB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5jYXNlRmllbGQuaWQpKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKHRoaXMuY2FzZUZpZWxkLmlkKTtcbiAgICB9XG4gICAgLy8gRnJvbSB0aGlzIHBvaW50LCB0aGlzLmZvcm1Hcm91cCByZWZlcnMgdG8gdGhlIEZvcm1Hcm91cCBmb3IgdGhlIEZsYWdMYXVuY2hlciBmaWVsZCwgbm90IHRoZSBwYXJlbnQgRm9ybUdyb3VwXG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUdyb3VwKHt9LCB7XG4gICAgICB2YWxpZGF0b3JzOiAoXzogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmFsbENhc2VGbGFnU3RhZ2VzQ29tcGxldGVkKSB7XG4gICAgICAgICAgLy8gUmV0dXJuIGFuIGVycm9yIHRvIG1hcmsgdGhlIEZvcm1Hcm91cCBhcyBpbnZhbGlkIGlmIG5vdCBhbGwgQ2FzZSBGbGFnIHN0YWdlcyBoYXZlIGJlZW4gY29tcGxldGVkXG4gICAgICAgICAgcmV0dXJuIHsgbm90QWxsQ2FzZUZsYWdTdGFnZXNDb21wbGV0ZWQ6IHRydWUgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9KSwgdHJ1ZSkgYXMgRm9ybUdyb3VwO1xuXG4gICAgLy8gR2V0IHRoZSBjYXNlIHR5cGUgSUQgZnJvbSB0aGUgQ2FzZVZpZXcgb2JqZWN0IGluIHRoZSBzbmFwc2hvdCBkYXRhIChyZXF1aXJlZCBmb3IgcmV0cmlldmluZyB0aGUgYXZhaWxhYmxlIGZsYWdcbiAgICAvLyB0eXBlcyBmb3IgYSBjYXNlKVxuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZSAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS5jYXNlX3R5cGUpIHtcbiAgICAgIHRoaXMuY2FzZVR5cGVJZCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlLmNhc2VfdHlwZS5pZDtcbiAgICAgIC8vIEdldCB0aGUganVyaXNkaWN0aW9uIChyZXF1aXJlZCBmb3IgcmV0cmlldmluZyB0aGUgYXZhaWxhYmxlIGZsYWcgdHlwZXMgaWYgdW5hYmxlIHRvIGRldGVybWluZSB1c2luZyBjYXNlIHR5cGUgSUQpXG4gICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UuY2FzZV90eXBlLmp1cmlzZGljdGlvbikge1xuICAgICAgICB0aGlzLmp1cmlzZGljdGlvbiA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlLmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24uaWQ7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEV4dHJhY3QgYWxsIGZsYWdzLXJlbGF0ZWQgZGF0YSBmcm9tIHRoZSBDYXNlRXZlbnRUcmlnZ2VyIG9iamVjdCBpbiB0aGUgc25hcHNob3QgZGF0YVxuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZXZlbnRUcmlnZ2VyKSB7XG4gICAgICAvLyBHZXQgdGhlIEhNQ1RTU2VydmljZUlkIGZyb20gc3VwcGxlbWVudGFyeSBkYXRhLCBpZiBpdCBleGlzdHMgKHJlcXVpcmVkIGZvciByZXRyaWV2aW5nIHRoZSBhdmFpbGFibGUgZmxhZyB0eXBlcyBpblxuICAgICAgLy8gdGhlIGZpcnN0IGluc3RhbmNlLCBvbmx5IGZhbGxpbmcgYmFjayBvbiBjYXNlIHR5cGUgSUQgb3IganVyaXNkaWN0aW9uIGlmIGl0J3Mgbm90IHByZXNlbnQpXG4gICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmV2ZW50VHJpZ2dlci5zdXBwbGVtZW50YXJ5X2RhdGFcbiAgICAgICAgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmV2ZW50VHJpZ2dlci5zdXBwbGVtZW50YXJ5X2RhdGEuSE1DVFNTZXJ2aWNlSWQpIHtcbiAgICAgICAgdGhpcy5obWN0c1NlcnZpY2VJZCA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5ldmVudFRyaWdnZXIuc3VwcGxlbWVudGFyeV9kYXRhLkhNQ1RTU2VydmljZUlkO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcykge1xuICAgICAgICB0aGlzLmZsYWdzRGF0YSA9ICgodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcykgYXMgQ2FzZUZpZWxkW10pXG4gICAgICAgICAgLnJlZHVjZSgoZmxhZ3MsIGNhc2VGaWVsZCkgPT4gRmllbGRzVXRpbHMuZXh0cmFjdEZsYWdzRGF0YUZyb21DYXNlRmllbGQoZmxhZ3MsIGNhc2VGaWVsZCwgY2FzZUZpZWxkLmlkLCBjYXNlRmllbGQpLCBbXSk7XG5cbiAgICAgICAgLy8gU2V0IGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyICh0byBiZSBwYXNzZWQgYXMgYW4gaW5wdXQgdG8gTWFuYWdlQ2FzZUZsYWdzQ29tcG9uZW50IGZvciBzZXR0aW5nIGNvcnJlY3QgdGl0bGUpXG4gICAgICAgIHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPVxuICAgICAgICAgIHRoaXMuc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXIodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyBhcyBDYXNlRmllbGRbXSk7XG5cbiAgICAgICAgLy8gU2V0IGJvb2xlYW4gaW5kaWNhdGluZyB0aGUgZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciBpcyBcInVwZGF0ZVwiXG4gICAgICAgIHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlclVwZGF0ZSA9IHRoaXMuc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGUodGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlcik7XG5cbiAgICAgICAgLy8gU2V0IGJvb2xlYW4gaW5kaWNhdGluZyB0aGUgZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciBpcyBcImV4dGVybmFsXCJcbiAgICAgICAgdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwgPSB0aGlzLnNldERpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwodGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlcik7XG5cbiAgICAgICAgLy8gU2V0IGJvb2xlYW4gaW5kaWNhdGluZyB0aGUgZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciBpcyBDYXNlIEZsYWdzIHYyLjEgZW5hYmxlZFxuICAgICAgICB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZCA9IHRoaXMuc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZCh0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyKTtcblxuICAgICAgICAvLyBTZXQgc3RhcnRpbmcgZmllbGQgc3RhdGUgaWYgZmllbGRTdGF0ZSBub3QgdGhlIHJpZ2h0IHZhbHVlXG4gICAgICAgIGlmICghdGhpcy5maWVsZFN0YXRlKSB7XG4gICAgICAgICAgdGhpcy5maWVsZFN0YXRlID0gdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyVXBkYXRlID8gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTUFOQUdFX0NBU0VfRkxBR1MgOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19MT0NBVElPTjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBjYXNlIHRpdGxlLCB0byBiZSB1c2VkIGJ5IGNoaWxkIGNvbXBvbmVudHNcbiAgICAgICAgdGhpcy5jYXNlVGl0bGVTdWJzY3JpcHRpb24gPSB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2FzZVRpdGxlJC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IHRpdGxlID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FzZVRpdGxlID0gdGl0bGU/Lmxlbmd0aCA+IDAgPyB0aXRsZSA6IHRoaXMuY2FzZU5hbWVNaXNzaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldERpc3BsYXlDb250ZXh0UGFyYW1ldGVyVXBkYXRlKGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFIHx8XG4gICAgICBkaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUwgfHxcbiAgICAgIGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV8yX1BPSU5UXzE7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbChkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLkNSRUFURV9FWFRFUk5BTCB8fFxuICAgICAgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMO1xuICB9XG5cbiAgcHVibGljIHNldERpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWQoZGlzcGxheUNvbnRleHRQYXJhbWV0ZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfMl9QT0lOVF8xIHx8XG4gICAgICBkaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfMl9QT0lOVF8xO1xuICB9XG5cbiAgcHVibGljIG9uQ2FzZUZsYWdTdGF0ZUVtaXR0ZWQoY2FzZUZsYWdTdGF0ZTogQ2FzZUZsYWdTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5jbGVhckZvcm1WYWxpZGF0aW9uRXJyb3JzKCk7XG5cbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBjYXNlRmxhZ1N0YXRlLmVycm9yTWVzc2FnZXM7XG4gICAgdGhpcy5zZWxlY3RlZEZsYWcgPSBjYXNlRmxhZ1N0YXRlLnNlbGVjdGVkRmxhZztcblxuICAgIC8vIFZhbGlkYXRpb24gc3VjY2VlZGVkOyBwcm9jZWVkIHRvIG5leHQgc3RhdGUgb3IgZmluYWwgcmV2aWV3IHN0YWdlIChcIkNoZWNrIHlvdXIgYW5zd2Vyc1wiKVxuICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBpZiAodGhpcy5jYW5Nb3ZlVG9GaW5hbFJldmlld1N0YWdlKGNhc2VGbGFnU3RhdGUpKSB7XG4gICAgICAgIHRoaXMubW92ZVRvRmluYWxSZXZpZXdTdGFnZSgpO1xuICAgICAgICAvLyBEb24ndCBtb3ZlIHRvIG5leHQgc3RhdGUgaWYgY3VycmVudCBzdGF0ZSBpcyBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19UWVBFIGFuZCB0aGUgZmxhZyB0eXBlIGlzIGEgcGFyZW50IC0gdGhpc1xuICAgICAgICAvLyBtZWFucyB0aGUgdXNlciBuZWVkcyB0byBzZWxlY3QgZnJvbSB0aGUgbmV4dCBzZXQgb2YgZmxhZyB0eXBlcyBiZWZvcmUgdGhleSBjYW4gbW92ZSBvblxuICAgICAgfSBlbHNlIGlmICghY2FzZUZsYWdTdGF0ZS5pc1BhcmVudEZsYWdUeXBlKSB7XG4gICAgICAgIC8vIFByb2NlZWQgdG8gbmV4dCBzdGF0ZVxuICAgICAgICB0aGlzLnByb2NlZWRUb05leHRTdGF0ZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjYW5Nb3ZlVG9GaW5hbFJldmlld1N0YWdlKGNhc2VGbGFnU3RhdGU6IENhc2VGbGFnU3RhdGUpOiBib29sZWFuIHtcbiAgICAvLyBJZiB0aGUgam91cm5leSBpcyByZXF1ZXN0IHN1cHBvcnQgb3IgbWFuYWdlIHN1cHBvcnRcbiAgICAvLyBhbmQgdGhlIGN1cnJlbnQgc3RhdGUgaXMgZWl0aGVyIENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0NPTU1FTlRTIG9yIENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURVxuICAgIC8vIHRoZW4gbW92ZSB0byBmaW5hbCByZXZpZXcgc3RhZ2VcbiAgICBpZiAodGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwpIHtcbiAgICAgIHJldHVybiBjYXNlRmxhZ1N0YXRlLmN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGUgPT09IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0NPTU1FTlRTIHx8XG4gICAgICAgIGNhc2VGbGFnU3RhdGUuY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgY3VycmVudCBzdGF0ZSBpcyBvbmUgb2Y6XG4gICAgLy8gKiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19TVEFUVVMgQU5EIENhc2UgRmxhZ3MgdjIuMSBpcyBlbmFibGVkXG4gICAgLy8gKiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19DT01NRU5UUyBBTkQgQ2FzZSBGbGFncyB2Mi4xIGlzIG5vdCBlbmFibGVkXG4gICAgLy8gKiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEUgYW5kIFdlbHNoIHRyYW5zbGF0aW9uIGNoZWNrYm94IGlzIG5vdCBzZWxlY3RlZFxuICAgIC8vICogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFX1dFTFNIX1RSQU5TTEFUSU9OXG4gICAgLy8gdGhlbiBtb3ZlIHRvIGZpbmFsIHJldmlldyBzdGFnZVxuICAgIHJldHVybiAoY2FzZUZsYWdTdGF0ZS5jdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlID09PVxuICAgICAgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfU1RBVFVTICYmIHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkKSB8fFxuICAgICAgKGNhc2VGbGFnU3RhdGUuY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZSA9PT1cbiAgICAgICAgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFMgJiYgIXRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkKSB8fFxuICAgICAgKGNhc2VGbGFnU3RhdGUuY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFICYmXG4gICAgICAgICF0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfV0VMU0hfVFJBTlNMQVRJT05fTkVFREVEKT8udmFsdWUpIHx8XG4gICAgICBjYXNlRmxhZ1N0YXRlLmN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGUgPT09IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURV9XRUxTSF9UUkFOU0xBVElPTjtcbiAgfVxuXG4gIHB1YmxpYyBwcm9jZWVkVG9OZXh0U3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQXRGaW5hbFN0YXRlKCkpIHtcbiAgICAgIC8vIFNraXAgdGhlIFwibGFuZ3VhZ2UgaW50ZXJwcmV0ZXJcIiBzdGF0ZSBpZiBjdXJyZW50IHN0YXRlIGlzIENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1RZUEUgYW5kIHRoZSBmbGFnIHR5cGUgZG9lc24ndFxuICAgICAgLy8gaGF2ZSBhIFwibGlzdCBvZiB2YWx1ZXNcIiAtIGN1cnJlbnRseSwgdGhpcyBpcyBwcmVzZW50IG9ubHkgZm9yIHRob3NlIGZsYWcgdHlwZXMgdGhhdCByZXF1aXJlIGxhbmd1YWdlIGludGVycHJldGVyXG4gICAgICAvLyBzZWxlY3Rpb25cbiAgICAgIGlmICh0aGlzLmZpZWxkU3RhdGUgPT09IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1RZUEUgJiYgIXRoaXMuZmxhZ1R5cGU/Lmxpc3RPZlZhbHVlcykge1xuICAgICAgICB0aGlzLmZpZWxkU3RhdGUgPSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19DT01NRU5UUztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmllbGRTdGF0ZSsrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRGbGFnc0Nhc2VGaWVsZFZhbHVlKCk6IHZvaWQge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogc3dpdGNoLWRlZmF1bHRcbiAgICBzd2l0Y2ggKHRoaXMuZmllbGRTdGF0ZSkge1xuICAgICAgY2FzZSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19TVEFUVVM6XG4gICAgICAgIHRoaXMuYWRkRmxhZ1RvQ29sbGVjdGlvbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFM6XG4gICAgICAgIGlmICh0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCB8fCAhdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmFkZEZsYWdUb0NvbGxlY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdGhpcy5tYW5hZ2VGbGFnRmluYWxTdGF0ZTpcbiAgICAgICAgdGhpcy51cGRhdGVGbGFnSW5Db2xsZWN0aW9uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRGbGFnVG9Db2xsZWN0aW9uKCk6IHZvaWQge1xuICAgIC8vIEVuc3VyZSBubyBtb3JlIHRoYW4gb25lIG5ldyBmbGFnIGlzIGJlaW5nIGFkZGVkIGF0IGEgdGltZSwgYnkgaXRlcmF0aW5nIHRocm91Z2ggZWFjaCBGbGFncyBjYXNlIGZpZWxkIGFuZCByZW1vdmluZ1xuICAgIC8vIGFueSBwcmV2aW91cyBlbnRyeSBmcm9tIHRoZSBkZXRhaWxzIGFycmF5IHdoZXJlIHRoYXQgZW50cnkgaGFzIG5vIGlkIChoZW5jZSBpdCBpcyBuZXcgLSBhbmQgdGhlcmUgc2hvdWxkIGJlIG9ubHlcbiAgICAvLyBvbmUgc3VjaCBlbnRyeSkuIChUaGlzIHNjZW5hcmlvIG9jY3VycyBpZiB0aGUgdXNlciByZXBlYXRzIHRoZSBDYXNlIEZsYWcgY3JlYXRpb24gam91cm5leSBieSB1c2luZyB0aGUgXCJDaGFuZ2VcIlxuICAgIC8vIGxpbmsgYW5kIHNlbGVjdHMgZWl0aGVyIHRoZSBzYW1lIGZsYWcgbG9jYXRpb24gYXMgYmVmb3JlIG9yIGEgZGlmZmVyZW50IG9uZS4pXG4gICAgdGhpcy5mbGFnc0RhdGEuZm9yRWFjaChpbnN0YW5jZSA9PiB7XG4gICAgICAvLyBVc2UgdGhlIHBhdGhUb0ZsYWdzRm9ybUdyb3VwIHByb3BlcnR5IGZvciBlYWNoIEZsYWdzIGNhc2UgZmllbGQgdG8gZHJpbGwgZG93biB0byB0aGUgY29ycmVjdCBwYXJ0IG9mIHRoZVxuICAgICAgLy8gQ2FzZUZpZWxkIHZhbHVlIHRvIHJlbW92ZSB0aGUgbmV3IHZhbHVlIGZyb21cbiAgICAgIGxldCB2YWx1ZSA9IGluc3RhbmNlLmNhc2VGaWVsZD8udmFsdWU7XG4gICAgICBjb25zdCBwYXRoVG9WYWx1ZSA9IGluc3RhbmNlLnBhdGhUb0ZsYWdzRm9ybUdyb3VwO1xuICAgICAgLy8gUm9vdC1sZXZlbCBGbGFncyBDYXNlRmllbGRzIGRvbid0IGhhdmUgYSBkb3QtZGVsaW1pdGVkIHBhdGggLSBqdXN0IHRoZSBDYXNlRmllbGQgSUQgaXRzZWxmIC0gc28gZG9uJ3QgZHJpbGwgZG93blxuICAgICAgaWYgKHBhdGhUb1ZhbHVlLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICAgIHBhdGhUb1ZhbHVlLnNsaWNlKHBhdGhUb1ZhbHVlLmluZGV4T2YoJy4nKSArIDEpLnNwbGl0KCcuJykuZm9yRWFjaChwYXJ0ID0+IHZhbHVlID0gdmFsdWVbcGFydF0pO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlPy5kZXRhaWxzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IGluZGV4T2ZOZXdGbGFnRGV0YWlsID0gdmFsdWUuZGV0YWlscy5maW5kSW5kZXgoZWxlbWVudCA9PiAhZWxlbWVudC5oYXNPd25Qcm9wZXJ0eSgnaWQnKSk7XG4gICAgICAgIGlmIChpbmRleE9mTmV3RmxhZ0RldGFpbCA+IC0xKSB7XG4gICAgICAgICAgdmFsdWUuZGV0YWlscy5zcGxpY2UoaW5kZXhPZk5ld0ZsYWdEZXRhaWwsIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cD8udmFsdWU7XG4gICAgLy8gRGV0ZXJtaW5lIHRoZSBjb3JyZWN0IGxvY2F0aW9uIC0gaW50ZXJuYWwgb3IgZXh0ZXJuYWwgLSBmb3IgdGhlIG5ldyBmbGFnLiBJZiByZXR1cm5lZCBhcyB1bmRlZmluZWQsIHRoaXNcbiAgICAvLyBpbmRpY2F0ZXMgYSBjb25maWd1cmF0aW9uIGVycm9yIHdpdGggdGhlIGV4dGVybmFsIGBGbGFnc2Agb2JqZWN0IGluc3RhbmNlXG4gICAgdGhpcy5kZXRlcm1pbmVkTG9jYXRpb24gPVxuICAgICAgdGhpcy5kZXRlcm1pbmVMb2NhdGlvbkZvckZsYWcoIXRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsLCB0aGlzLnNlbGVjdGVkRmxhZ3NMb2NhdGlvbiwgZm9ybVZhbHVlcyk7XG4gICAgLy8gRG8gbm90IG11dGF0ZSB0aGlzLnNlbGVjdGVkRmxhZ3NMb2NhdGlvbjsgaWYgdGhpcy5zZWxlY3RlZEZsYWdzTG9jYXRpb24gYmVjb21lcyB1bmRlZmluZWQsXG4gICAgLy8gZGV0ZXJtaW5lTG9jYXRpb25Gb3JGbGFnKCkgd2lsbCBubyBsb25nZXIgZG8gYW55dGhpbmcgd2hlbiBjYWxsZWQgd2l0aCBpdCAtIGFuZCB0aGUgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZSB3aWxsXG4gICAgLy8gbm90IGJlIHJlZGlzcGxheWVkIGlmIHRoZSB1c2VyIGNsaWNrcyBcIk5leHRcIiBhZ2FpbiBvbiB0aGUgXCJBZGQgY29tbWVudHNcIiBwYWdlLCBhZnRlciB0aGUgZXJyb3IgaXMgZmlyc3Qgc2hvd25cblxuICAgIGlmICh0aGlzLmRldGVybWluZWRMb2NhdGlvbikge1xuICAgICAgY29uc3QgcGF0aCA9IHRoaXMuZGV0ZXJtaW5lZExvY2F0aW9uLnBhdGhUb0ZsYWdzRm9ybUdyb3VwO1xuICAgICAgY29uc3QgZmxhZ0RhdGFSZWYgPSB0aGlzLmZsYWdzRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5wYXRoVG9GbGFnc0Zvcm1Hcm91cCA9PT0gcGF0aCk7XG4gICAgICBsZXQgZmxhZ3NDYXNlRmllbGRWYWx1ZSA9IGZsYWdEYXRhUmVmLmNhc2VGaWVsZD8udmFsdWU7XG4gICAgICAvLyBVc2UgdGhlIHBhdGhUb0ZsYWdzRm9ybUdyb3VwIHByb3BlcnR5IGZyb20gdGhlIHNlbGVjdGVkIGZsYWcgbG9jYXRpb24gdG8gZHJpbGwgZG93biB0byB0aGUgY29ycmVjdCBwYXJ0IG9mIHRoZVxuICAgICAgLy8gQ2FzZUZpZWxkIHZhbHVlIHRvIGFwcGx5IGNoYW5nZXMgdG9cbiAgICAgIC8vIFJvb3QtbGV2ZWwgRmxhZ3MgQ2FzZUZpZWxkcyBkb24ndCBoYXZlIGEgZG90LWRlbGltaXRlZCBwYXRoIC0ganVzdCB0aGUgQ2FzZUZpZWxkIElEIGl0c2VsZiAtIHNvIGRvbid0IGRyaWxsIGRvd25cbiAgICAgIGlmIChwYXRoLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICAgIHBhdGguc2xpY2UocGF0aC5pbmRleE9mKCcuJykgKyAxKS5zcGxpdCgnLicpLmZvckVhY2gocGFydCA9PiBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gZmxhZ3NDYXNlRmllbGRWYWx1ZVtwYXJ0XSk7XG4gICAgICB9XG4gICAgICAvLyBJZiB0aGUgQ2FzZUZpZWxkIGZvciB0aGUgc2VsZWN0ZWQgZmxhZ3MgbG9jYXRpb24gaGFzIG5vIHZhbHVlLCBzZXQgaXQgdG8gYW4gZW1wdHkgb2JqZWN0IHNvIGl0IGNhbiBiZSBwb3B1bGF0ZWRcbiAgICAgIC8vIHdpdGggZmxhZyBkZXRhaWxzXG4gICAgICBpZiAoIWZsYWdzQ2FzZUZpZWxkVmFsdWUpIHtcbiAgICAgICAgZmxhZ0RhdGFSZWYuY2FzZUZpZWxkLnZhbHVlID0ge307XG4gICAgICAgIGZsYWdzQ2FzZUZpZWxkVmFsdWUgPSBmbGFnRGF0YVJlZi5jYXNlRmllbGQudmFsdWU7XG4gICAgICB9XG4gICAgICAvLyBDcmVhdGUgYSBkZXRhaWxzIGFycmF5IGlmIG9uZSBkb2VzIG5vdCBleGlzdFxuICAgICAgaWYgKCFmbGFnc0Nhc2VGaWVsZFZhbHVlLmhhc093blByb3BlcnR5KCdkZXRhaWxzJykpIHtcbiAgICAgICAgZmxhZ3NDYXNlRmllbGRWYWx1ZS5kZXRhaWxzID0gW107XG4gICAgICB9XG4gICAgICAvLyBQb3B1bGF0ZSBuZXcgRmxhZ0RldGFpbCBpbnN0YW5jZSBhbmQgYWRkIHRvIHRoZSBGbGFncyBkYXRhIHdpdGhpbiB0aGUgQ2FzZUZpZWxkIGluc3RhbmNlIG9mIHRoZSBzZWxlY3RlZCBmbGFnXG4gICAgICAvLyBsb2NhdGlvblxuICAgICAgZmxhZ3NDYXNlRmllbGRWYWx1ZS5kZXRhaWxzLnB1c2goe3ZhbHVlOiB0aGlzLnBvcHVsYXRlTmV3RmxhZ0RldGFpbEluc3RhbmNlKCl9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgY29ycmVjdCBsb2NhdGlvbiAoaS5lLiBlaXRoZXIgdGhlIGludGVybmFsIG9yIGV4dGVybmFsIGluc3RhbmNlIG9mIGEgYEZsYWdzYCBvYmplY3QpIGZvciBhIG5ldyBmbGFnLFxuICAgKiBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZzpcbiAgICpcbiAgICogKiBXaGV0aGVyIHRoZSB1c2VyIGlzIGludGVybmFsIG9yIGV4dGVybmFsIChubyBlZmZlY3QgZm9yIGV4dGVybmFsIHVzZXJzIGJlY2F1c2UgdGhleSBjYW4gYWNjZXNzIG9ubHkgdGhlIGV4dGVybmFsXG4gICAqIGluc3RhbmNlKVxuICAgKiAqIFRoZSBleGlzdGVuY2Ugb2YgdHdvIGBGbGFnc2Agb2JqZWN0cyAtIG9uZSBpbnRlcm5hbCwgb25lIGV4dGVybmFsIC0gbGlua2VkIGJ5IHRoZSBzYW1lIGBncm91cElkYDtcbiAgICogKiBGb3IgZmxhZ3Mgb2YgdHlwZSBcIk90aGVyXCIsIHdoZXRoZXIgXCJvbmx5IHZpc2libGUgdG8gSE1DVFMgc3RhZmZcIiBoYXMgYmVlbiBzZWxlY3RlZCBvciBub3QgKFwiT3RoZXJcIiBkZWZhdWx0cyB0b1xuICAgKiBleHRlcm5hbGx5IHZpc2libGUpO1xuICAgKiAqIEZvciBhbGwgb3RoZXIgZmxhZyB0eXBlcywgdGhlIHZhbHVlIG9mIHRoZSBgZXh0ZXJuYWxseUF2YWlsYWJsZWAgYXR0cmlidXRlLlxuICAgKlxuICAgKiBJZiB0aGUgdXNlciBpcyBpbnRlcm5hbCB0aGVuIHRoZSBuZXcgZmxhZyBzaG91bGQgYmUgYXNzaWduZWQgdG8gdGhlIGV4dGVybmFsIGBGbGFnc2AgaW5zdGFuY2UgaWY6XG4gICAqICogU3VjaCBhbiBpbnN0YW5jZSBleGlzdHMsIEFORFxuICAgKiAqIFRoZSBmbGFnIHR5cGUgaXMgXCJPdGhlclwiIGFuZCBcIm9ubHkgdmlzaWJsZSB0byBITUNUUyBzdGFmZlwiIHdhcyBub3Qgc2VsZWN0ZWQsIE9SXG4gICAqICogVGhlIGZsYWcgdHlwZSBpcyBub3QgXCJPdGhlclwiIGFuZCBgZXh0ZXJuYWxseUF2YWlsYWJsZWAgaXMgYHRydWVgLlxuICAgKlxuICAgKiBAcGFyYW0gaXNJbnRlcm5hbFVzZXIgV2hldGhlciB0aGUgY3VycmVudCB1c2VyIGlzIGludGVybmFsIG9yIG5vdFxuICAgKiBAcGFyYW0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbG9jYXRpb24gZm9yIHRoZSBuZXcgZmxhZ1xuICAgKiBAcGFyYW0gZm9ybVZhbHVlcyBBbGwgdGhlIHZhbHVlcyBmcm9tIHRoZSBgY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBgXG4gICAqIEByZXR1cm5zIFRoZSBjb3JyZWN0bHkgZGV0ZXJtaW5lZCBsb2NhdGlvbjogZWl0aGVyIHRoZSBpbnRlcm5hbCBvciBleHRlcm5hbCBsb2NhdGlvbiAoaWYgb25lIGV4aXN0cykgd2hlcmUgYSBncm91cElkXG4gICAqIGlzIHByZXNlbnQ7IHRoZSBvcmlnaW5hbCBsb2NhdGlvbiBvdGhlcndpc2UuICoqTm90ZToqKiBJZiB0aGUgZXh0ZXJuYWwgbG9jYXRpb24gaXMgcmV0dXJuZWQgYXMgdW5kZWZpbmVkLCB0aGlzXG4gICAqIGluZGljYXRlcyBhIGNvbmZpZ3VyYXRpb24gZXJyb3JcbiAgICovXG4gIHB1YmxpYyBkZXRlcm1pbmVMb2NhdGlvbkZvckZsYWcoaXNJbnRlcm5hbFVzZXI6IGJvb2xlYW4sIHNlbGVjdGVkRmxhZ3NMb2NhdGlvbjogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCxcbiAgICBmb3JtVmFsdWVzOiBhbnkpOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoIHtcbiAgICAgIGlmIChpc0ludGVybmFsVXNlciAmJiBzZWxlY3RlZEZsYWdzTG9jYXRpb24/LmZsYWdzPy5ncm91cElkKSB7XG4gICAgICAgIGlmICgoZm9ybVZhbHVlcz8uZmxhZ1R5cGU/LmZsYWdDb2RlID09PSB0aGlzLm90aGVyRmxhZ1R5cGVDb2RlICYmICFmb3JtVmFsdWVzPy5mbGFnSXNWaXNpYmxlSW50ZXJuYWxseU9ubHkpIHx8XG4gICAgICAgICAgKGZvcm1WYWx1ZXM/LmZsYWdUeXBlPy5mbGFnQ29kZSAhPT0gdGhpcy5vdGhlckZsYWdUeXBlQ29kZSAmJiBmb3JtVmFsdWVzPy5mbGFnVHlwZT8uZXh0ZXJuYWxseUF2YWlsYWJsZSkpIHtcbiAgICAgICAgICAgIC8vIElmIG5lY2Vzc2FyeSwgZmluZCB0aGUgY29ycmVzcG9uZGluZyBmbGFncyBvYmplY3Qgd2l0aCB0aGUgc2FtZSBncm91cElkIGFuZCBleHRlcm5hbCB2aXNpYmlsaXR5IChzaG91bGQgYmVcbiAgICAgICAgICAgIC8vIG9ubHkgb25lIHVubGVzcyBtaXNjb25maWd1cmVkKVxuICAgICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBzZWxlY3RlZEZsYWdzTG9jYXRpb24uZmxhZ3MudmlzaWJpbGl0eT8udG9Mb3dlckNhc2UoKSA9PT0gJ2V4dGVybmFsJ1xuICAgICAgICAgICAgICA/IHNlbGVjdGVkRmxhZ3NMb2NhdGlvblxuICAgICAgICAgICAgICA6IHRoaXMuZmxhZ3NEYXRhLmZpbHRlcihcbiAgICAgICAgICAgICAgICAoZikgPT4gZi5mbGFncz8uZ3JvdXBJZCA9PT0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLmZsYWdzLmdyb3VwSWQgJiZcbiAgICAgICAgICAgICAgICBmLmZsYWdzPy52aXNpYmlsaXR5Py50b0xvd2VyQ2FzZSgpID09PSAnZXh0ZXJuYWwnKT8uWzBdO1xuICAgICAgICAgICAgLy8gSWYgbG9jYXRpb24gaXMgbm90IHRydXRoeSwgc2V0IGFuIGVycm9yIG1lc3NhZ2UgYW5kIG1ha2UgY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAgaW52YWxpZCB0byBwcmV2ZW50XG4gICAgICAgICAgICAvLyBuYXZpZ2F0aW9uIHRvIHRoZSBzdW1tYXJ5IHBhZ2UgKGJ5IG5vdCB0cmlnZ2VyaW5nIHRoZSBzdWJtaXQgZXZlbnQpXG4gICAgICAgICAgICBpZiAoIWxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IENhc2VGbGFnRXJyb3JNZXNzYWdlLk5PX0VYVEVSTkFMX0ZMQUdTX0NPTExFQ1RJT05cbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuc2V0RXJyb3JzKHtcbiAgICAgICAgICAgICAgICBub0V4dGVybmFsQ29sbGVjdGlvbjogdHJ1ZVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiBuZWNlc3NhcnksIGZpbmQgdGhlIGNvcnJlc3BvbmRpbmcgZmxhZ3Mgb2JqZWN0IHdpdGggdGhlIHNhbWUgZ3JvdXBJZCBhbmQgaW50ZXJuYWwgdmlzaWJpbGl0eSAoc2hvdWxkIGJlXG4gICAgICAgICAgLy8gb25seSBvbmUgdW5sZXNzIG1pc2NvbmZpZ3VyZWQpOyBhc3N1bWVkIHRvIGJlIGludGVybmFsIGlmIHZpc2liaWxpdHkgYXR0cmlidXRlIGlzIG51bGwgb3IgdW5kZWZpbmVkXG4gICAgICAgICAgY29uc3QgbG9jYXRpb24gPSBzZWxlY3RlZEZsYWdzTG9jYXRpb24uZmxhZ3MudmlzaWJpbGl0eT8udG9Mb3dlckNhc2UoKSAhPT0gJ2V4dGVybmFsJ1xuICAgICAgICAgICAgPyBzZWxlY3RlZEZsYWdzTG9jYXRpb25cbiAgICAgICAgICAgIDogdGhpcy5mbGFnc0RhdGEuZmlsdGVyKFxuICAgICAgICAgICAgICAoZikgPT4gZi5mbGFncz8uZ3JvdXBJZCA9PT0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLmZsYWdzLmdyb3VwSWQgJiZcbiAgICAgICAgICAgICAgZi5mbGFncz8udmlzaWJpbGl0eT8udG9Mb3dlckNhc2UoKSAhPT0gJ2V4dGVybmFsJyk/LlswXTtcbiAgICAgICAgICAvLyBJZiBsb2NhdGlvbiBpcyBub3QgdHJ1dGh5LCBzZXQgYW4gZXJyb3IgbWVzc2FnZSBhbmQgbWFrZSBjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cCBpbnZhbGlkIHRvIHByZXZlbnRcbiAgICAgICAgICAvLyBuYXZpZ2F0aW9uIHRvIHRoZSBzdW1tYXJ5IHBhZ2UgKGJ5IG5vdCB0cmlnZ2VyaW5nIHRoZSBzdWJtaXQgZXZlbnQpXG4gICAgICAgICAgaWYgKCFsb2NhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBDYXNlRmxhZ0Vycm9yTWVzc2FnZS5OT19JTlRFUk5BTF9GTEFHU19DT0xMRUNUSU9OXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuc2V0RXJyb3JzKHtcbiAgICAgICAgICAgICAgbm9JbnRlcm5hbENvbGxlY3Rpb246IHRydWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbG9jYXRpb247XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzZWxlY3RlZEZsYWdzTG9jYXRpb247XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRmxhZ0luQ29sbGVjdGlvbigpOiB2b2lkIHtcbiAgICAvLyBFbnN1cmUgbm8gbW9yZSB0aGFuIG9uZSBmbGFnIGlzIGJlaW5nIHVwZGF0ZWQgYXQgYSB0aW1lLCBieSBpdGVyYXRpbmcgdGhyb3VnaCBlYWNoIEZsYWdzIGNhc2UgZmllbGQgYW5kIHJlc2V0dGluZ1xuICAgIC8vIHRoZSBkZXNjcmlwdGlvbiwgY29tbWVudHMsIHN0YXR1cywgYW5kIGRhdGUvdGltZSBtb2RpZmllZCAoaWYgcHJlc2VudCkgZm9yIGVhY2ggZW50cnkgaW4gdGhlIGRldGFpbHMgYXJyYXksIHdpdGhcbiAgICAvLyBvcmlnaW5hbCB2YWx1ZXMgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBmb3JtYXR0ZWRfdmFsdWUgcHJvcGVydHkuIChUaGlzIHNjZW5hcmlvIG9jY3VycyBpZiB0aGUgdXNlciByZXBlYXRzIHRoZVxuICAgIC8vIE1hbmFnZSBDYXNlIEZsYWcgam91cm5leSBieSB1c2luZyB0aGUgXCJDaGFuZ2VcIiBsaW5rIGFuZCBzZWxlY3RzIGEgZGlmZmVyZW50IGZsYWcgdG8gdXBkYXRlLilcbiAgICB0aGlzLmZsYWdzRGF0YS5mb3JFYWNoKGluc3RhbmNlID0+IHtcbiAgICAgIC8vIFVzZSB0aGUgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgcHJvcGVydHkgZm9yIGVhY2ggRmxhZ3MgY2FzZSBmaWVsZCB0byBkcmlsbCBkb3duIHRvIHRoZSBjb3JyZWN0IHBhcnQgb2YgdGhlXG4gICAgICAvLyBDYXNlRmllbGQgdmFsdWUgZm9yIHdoaWNoIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIHZhbHVlc1xuICAgICAgbGV0IHZhbHVlID0gaW5zdGFuY2UuY2FzZUZpZWxkPy52YWx1ZTtcbiAgICAgIGxldCBmb3JtYXR0ZWRWYWx1ZSA9IGluc3RhbmNlLmNhc2VGaWVsZD8uZm9ybWF0dGVkX3ZhbHVlO1xuICAgICAgY29uc3QgcGF0aFRvVmFsdWUgPSBpbnN0YW5jZS5wYXRoVG9GbGFnc0Zvcm1Hcm91cDtcbiAgICAgIC8vIFJvb3QtbGV2ZWwgRmxhZ3MgQ2FzZUZpZWxkcyBkb24ndCBoYXZlIGEgZG90LWRlbGltaXRlZCBwYXRoIC0ganVzdCB0aGUgQ2FzZUZpZWxkIElEIGl0c2VsZiAtIHNvIGRvbid0IGRyaWxsIGRvd25cbiAgICAgIGlmIChwYXRoVG9WYWx1ZS5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICBwYXRoVG9WYWx1ZS5zbGljZShwYXRoVG9WYWx1ZS5pbmRleE9mKCcuJykgKyAxKS5zcGxpdCgnLicpLmZvckVhY2gocGFydCA9PiB7XG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZVtwYXJ0XTtcbiAgICAgICAgICBpZiAoZm9ybWF0dGVkVmFsdWUgJiYgRmllbGRzVXRpbHMuaXNOb25FbXB0eU9iamVjdChmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlID0gZm9ybWF0dGVkVmFsdWVbcGFydF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZT8uZGV0YWlscz8ubGVuZ3RoID4gMCAmJiBmb3JtYXR0ZWRWYWx1ZSAmJiBGaWVsZHNVdGlscy5pc05vbkVtcHR5T2JqZWN0KGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgICB2YWx1ZS5kZXRhaWxzLmZvckVhY2goZmxhZ0RldGFpbCA9PiB7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luYWxGbGFnRGV0YWlsID0gZm9ybWF0dGVkVmFsdWUuZGV0YWlscz8uZmluZChkZXRhaWwgPT4gZGV0YWlsLmlkID09PSBmbGFnRGV0YWlsLmlkKTtcbiAgICAgICAgICBpZiAob3JpZ2luYWxGbGFnRGV0YWlsKSB7XG4gICAgICAgICAgICBmbGFnRGV0YWlsLnZhbHVlLm90aGVyRGVzY3JpcHRpb24gPSBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/Lm90aGVyRGVzY3JpcHRpb24gfHwgbnVsbDtcbiAgICAgICAgICAgIGZsYWdEZXRhaWwudmFsdWUub3RoZXJEZXNjcmlwdGlvbl9jeSA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8ub3RoZXJEZXNjcmlwdGlvbl9jeSB8fCBudWxsO1xuICAgICAgICAgICAgZmxhZ0RldGFpbC52YWx1ZS5mbGFnQ29tbWVudCA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8uZmxhZ0NvbW1lbnQgfHwgbnVsbDtcbiAgICAgICAgICAgIGZsYWdEZXRhaWwudmFsdWUuZmxhZ0NvbW1lbnRfY3kgPSBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/LmZsYWdDb21tZW50X2N5IHx8IG51bGw7XG4gICAgICAgICAgICBmbGFnRGV0YWlsLnZhbHVlLmZsYWdVcGRhdGVDb21tZW50ID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5mbGFnVXBkYXRlQ29tbWVudCB8fCBudWxsO1xuICAgICAgICAgICAgZmxhZ0RldGFpbC52YWx1ZS5zdGF0dXMgPSBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/LnN0YXR1cztcbiAgICAgICAgICAgIGZsYWdEZXRhaWwudmFsdWUuZGF0ZVRpbWVNb2RpZmllZCA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8uZGF0ZVRpbWVNb2RpZmllZCB8fCBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRmxhZykge1xuICAgICAgdGhpcy5zZWxlY3RlZEZsYWcgPSB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbikudmFsdWUgYXMgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aDtcbiAgICB9XG4gICAgbGV0IGZsYWdzQ2FzZUZpZWxkVmFsdWUgPSB0aGlzLnNlbGVjdGVkRmxhZy5jYXNlRmllbGQ/LnZhbHVlO1xuICAgIC8vIFVzZSB0aGUgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgcHJvcGVydHkgZnJvbSB0aGUgc2VsZWN0ZWQgZmxhZyBsb2NhdGlvbiB0byBkcmlsbCBkb3duIHRvIHRoZSBjb3JyZWN0IHBhcnQgb2YgdGhlXG4gICAgLy8gQ2FzZUZpZWxkIHZhbHVlIHRvIGFwcGx5IGNoYW5nZXMgdG9cbiAgICBjb25zdCBwYXRoID0gdGhpcy5zZWxlY3RlZEZsYWcucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgLy8gUm9vdC1sZXZlbCBGbGFncyBDYXNlRmllbGRzIGRvbid0IGhhdmUgYSBkb3QtZGVsaW1pdGVkIHBhdGggLSBqdXN0IHRoZSBDYXNlRmllbGQgSUQgaXRzZWxmIC0gc28gZG9uJ3QgZHJpbGwgZG93blxuICAgIGlmIChwYXRoLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICBwYXRoLnNsaWNlKHBhdGguaW5kZXhPZignLicpICsgMSkuc3BsaXQoJy4nKS5mb3JFYWNoKHBhcnQgPT4gZmxhZ3NDYXNlRmllbGRWYWx1ZSA9IGZsYWdzQ2FzZUZpZWxkVmFsdWVbcGFydF0pO1xuICAgIH1cbiAgICBpZiAoZmxhZ3NDYXNlRmllbGRWYWx1ZSkge1xuICAgICAgY29uc3QgZmxhZ0RldGFpbFRvVXBkYXRlID0gZmxhZ3NDYXNlRmllbGRWYWx1ZS5kZXRhaWxzPy5maW5kKFxuICAgICAgICBkZXRhaWwgPT4gZGV0YWlsLmlkID09PSB0aGlzLnNlbGVjdGVkRmxhZy5mbGFnRGV0YWlsRGlzcGxheT8uZmxhZ0RldGFpbD8uaWQpO1xuICAgICAgaWYgKGZsYWdEZXRhaWxUb1VwZGF0ZSkge1xuICAgICAgICAvLyBDYWNoZSB0aGUgKm9yaWdpbmFsKiBzdGF0dXMgb2YgdGhlIGZsYWcgYmVmb3JlIGl0IGlzIG1vZGlmaWVkLiBUaGlzIGlzIG5lZWRlZCBpZiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBmbGFnIHN0YXR1c1xuICAgICAgICAvLyB0aGVuIGRlY2lkZXMgdG8gcmV0dXJuIHRvIGFueSBwYXJ0IG9mIHRoZSBmbGFnIHVwZGF0ZSBqb3VybmV5LiBUaGUgTWFuYWdlQ2FzZUZsYWdzQ29tcG9uZW50IGFuZCBVcGRhdGVGbGFnQ29tcG9uZW50XG4gICAgICAgIC8vIHNob3VsZCByZWZlciB0byBhIGZsYWcncyBvcmlnaW5hbCBzdGF0dXMsIG5vdCB0aGUgb25lIHNldCB2aWEgdGhlIFVJIGJlY2F1c2UgdGhpcyBoYXNuJ3QgYmVlbiBwZXJzaXN0ZWQgeWV0XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGbGFnLm9yaWdpbmFsU3RhdHVzID0gZmxhZ0RldGFpbFRvVXBkYXRlLnZhbHVlPy5zdGF0dXM7XG4gICAgICAgIC8vIFVwZGF0ZSBkZXNjcmlwdGlvbiBmaWVsZHMgb25seSBpZiBmbGFnIHR5cGUgaXMgXCJPdGhlclwiIChmbGFnIGNvZGUgT1QwMDAxKTsgdGhlc2UgZmllbGRzIGFwcGx5IG9ubHkgdG8gdGhhdCBmbGFnIHR5cGVcbiAgICAgICAgLy8gSWYgdGhlaXIgRm9ybUNvbnRyb2xzIGRvbid0IGV4aXN0LCBpdCBtZWFucyB0aGVzZSBmaWVsZHMgd2VyZW4ndCB2aXNpdGVkIGFzIHBhcnQgb2YgdGhlIFwiVXBkYXRlIEZsYWdcIiBqb3VybmV5LCBzbyBkb1xuICAgICAgICAvLyAqbm90KiB1cGRhdGUgdGhlaXIgdmFsdWVzIChvdGhlcndpc2UgdGhleSB3aWxsIGJlY29tZSB1bmRlZmluZWQpXG4gICAgICAgIGlmIChmbGFnRGV0YWlsVG9VcGRhdGUudmFsdWU/LmZsYWdDb2RlID09PSB0aGlzLm90aGVyRmxhZ1R5cGVDb2RlKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OKSkge1xuICAgICAgICAgICAgZmxhZ0RldGFpbFRvVXBkYXRlLnZhbHVlLm90aGVyRGVzY3JpcHRpb24gPSB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmdldChcbiAgICAgICAgICAgICAgQ2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT04pLnZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT05fV0VMU0gpKSB7XG4gICAgICAgICAgICBmbGFnRGV0YWlsVG9VcGRhdGUudmFsdWUub3RoZXJEZXNjcmlwdGlvbl9jeSA9IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgICBDYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTl9XRUxTSCkudmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IGFueSBjb21tZW50cyBlbnRlcmVkIHdpdGggbGFuZ3VhZ2Ugc2V0IHRvIFdlbHNoIGRvIG5vdCBlbmQgdXAgaW4gdGhlIEVuZ2xpc2ggY29tbWVudHMgZmllbGRcbiAgICAgICAgaWYgKHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlICE9PSAnY3knKSB7XG4gICAgICAgICAgZmxhZ0RldGFpbFRvVXBkYXRlLnZhbHVlLmZsYWdDb21tZW50ID0gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTKT8udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUG9wdWxhdGUgZnJvbSB0aGUgKkVuZ2xpc2gqIGNvbW1lbnRzIGZpZWxkIGlmOlxuICAgICAgICAvLyAqIFRoZSBXZWxzaCBjb21tZW50cyBmaWVsZCBoYXMgbm8gdmFsdWUgKFdlbHNoIGNvbW1lbnRzIGZpZWxkIGFjcXVpcmVzIGEgdmFsdWUgb25seSB3aGVuIGFuIEhNQ1RTIGludGVybmFsIHVzZXIgaGFzXG4gICAgICAgIC8vIGdvbmUgdGhyb3VnaCB0aGUgXCJhZGQgdHJhbnNsYXRpb25cIiBzdGVwIGZvciBNYW5hZ2UgQ2FzZSBGbGFncyksIEFORFxuICAgICAgICAvLyAqIFRoZSBsYW5ndWFnZSBpcyBzZXQgdG8gV2Vsc2hcbiAgICAgICAgLy8gSWYgdGhlIEZvcm1Db250cm9sIGRvZXNuJ3QgZXhpc3QsIGl0IG1lYW5zIHRoaXMgZmllbGQgd2Fzbid0IHZpc2l0ZWQgYXMgcGFydCBvZiB0aGUgXCJVcGRhdGUgRmxhZ1wiIGpvdXJuZXksIHNvIGRvXG4gICAgICAgIC8vICpub3QqIHVwZGF0ZSBpdHMgdmFsdWUgKG90aGVyd2lzZSBpdCB3aWxsIGJlIG92ZXJyaWRkZW4pIC0gdW5sZXNzIHRoZSB1c2VyIGlzIGV4dGVybmFsIEFORCB3b3JraW5nIGluIFdlbHNoXG4gICAgICAgIGlmICh0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNfV0VMU0gpIHx8IHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnY3knKSB7XG4gICAgICAgICAgZmxhZ0RldGFpbFRvVXBkYXRlLnZhbHVlLmZsYWdDb21tZW50X2N5ID0gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTX1dFTFNIKT8udmFsdWVcbiAgICAgICAgICA/IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU19XRUxTSCk/LnZhbHVlXG4gICAgICAgICAgOiB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2N5J1xuICAgICAgICAgICAgPyB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFMpPy52YWx1ZVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGZsYWdEZXRhaWxUb1VwZGF0ZS52YWx1ZS5mbGFnVXBkYXRlQ29tbWVudCA9IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5TVEFUVVNfQ0hBTkdFX1JFQVNPTik/LnZhbHVlO1xuICAgICAgICBmbGFnRGV0YWlsVG9VcGRhdGUudmFsdWUuc3RhdHVzID0gQ2FzZUZsYWdTdGF0dXNbdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVUyk/LnZhbHVlXTtcbiAgICAgICAgZmxhZ0RldGFpbFRvVXBkYXRlLnZhbHVlLmRhdGVUaW1lTW9kaWZpZWQgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzQXRGaW5hbFN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGVcbiAgICAgID8gdGhpcy5maWVsZFN0YXRlID09PSB0aGlzLm1hbmFnZUZsYWdGaW5hbFN0YXRlXG4gICAgICA6ICF0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZFxuICAgICAgICA/IHRoaXMuZmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFNcbiAgICAgICAgOiB0aGlzLmZpZWxkU3RhdGUgPT09IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1NUQVRVUztcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvRXJyb3JFbGVtZW50KGVsZW1lbnRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGVsZW1lbnRJZCkge1xuICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpO1xuICAgICAgaWYgKGh0bWxFbGVtZW50KSB7XG4gICAgICAgIGh0bWxFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSk7XG4gICAgICAgIGh0bWxFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uRmxhZ0NvbW1lbnRzT3B0aW9uYWxFbWl0dGVkKF86IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZmxhZ0NvbW1lbnRzT3B0aW9uYWwgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIHBvcHVsYXRlTmV3RmxhZ0RldGFpbEluc3RhbmNlKCk6IEZsYWdEZXRhaWwge1xuICAgIGNvbnN0IGxhbmdTZWFyY2hUZXJtID0gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cD8udmFsdWVbJ2xhbmd1YWdlU2VhcmNoVGVybSddO1xuICAgIGNvbnN0IG1hbnVhbExhbmdFbnRyeSA9IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXA/LnZhbHVlWydtYW51YWxMYW5ndWFnZUVudHJ5J107XG4gICAgY29uc3QgZmxhZ1R5cGUgPSB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwPy52YWx1ZVsnZmxhZ1R5cGUnXTtcbiAgICBjb25zdCBvdGhlckRlc2MgPSB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwPy52YWx1ZVsnb3RoZXJEZXNjcmlwdGlvbiddO1xuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwPy52YWx1ZTtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5mbGFnVHlwZT8ubmFtZSxcbiAgICAgIG5hbWVfY3k6IGZsYWdUeXBlPy5uYW1lX2N5LFxuICAgICAgLy8gQ3VycmVudGx5LCBzdWJUeXBlVmFsdWUsIHN1YlR5cGVWYWx1ZV9jeSBhbmQgc3ViVHlwZUtleSBhcmUgYXBwbGljYWJsZSBvbmx5IHRvIGxhbmd1YWdlIGZsYWcgdHlwZXNcbiAgICAgIHN1YlR5cGVWYWx1ZTogbGFuZ1NlYXJjaFRlcm0gJiYgdGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgPT09ICdlbidcbiAgICAgICAgPyBsYW5nU2VhcmNoVGVybS52YWx1ZVxuICAgICAgICA6IG1hbnVhbExhbmdFbnRyeSAmJiB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2VuJ1xuICAgICAgICAgID8gbWFudWFsTGFuZ0VudHJ5XG4gICAgICAgICAgOiBudWxsLFxuICAgICAgc3ViVHlwZVZhbHVlX2N5OiBsYW5nU2VhcmNoVGVybSAmJiB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2N5J1xuICAgICAgPyBsYW5nU2VhcmNoVGVybT8udmFsdWVfY3lcbiAgICAgIDogbWFudWFsTGFuZ0VudHJ5ICYmIHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnY3knXG4gICAgICAgID8gbWFudWFsTGFuZ0VudHJ5XG4gICAgICAgIDogbnVsbCxcbiAgICAgIC8vIEZvciB1c2VyLWVudGVyZWQgKGkuZS4gbm9uLVJlZmVyZW5jZSBEYXRhKSBsYW5ndWFnZXMsIHRoZXJlIGlzIG5vIGtleVxuICAgICAgc3ViVHlwZUtleTogbGFuZ1NlYXJjaFRlcm1cbiAgICAgICAgPyBsYW5nU2VhcmNoVGVybS5rZXlcbiAgICAgICAgOiBudWxsLFxuICAgICAgb3RoZXJEZXNjcmlwdGlvbjogZmxhZ1R5cGU/LmZsYWdDb2RlID09PSB0aGlzLm90aGVyRmxhZ1R5cGVDb2RlICYmXG4gICAgICAgIG90aGVyRGVzYyAmJiB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2VuJ1xuICAgICAgICA/IG90aGVyRGVzY1xuICAgICAgICAgIDogbnVsbCxcbiAgICAgIG90aGVyRGVzY3JpcHRpb25fY3k6IGZsYWdUeXBlPy5mbGFnQ29kZSA9PT0gdGhpcy5vdGhlckZsYWdUeXBlQ29kZSAmJlxuICAgICAgICBvdGhlckRlc2MgJiYgdGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgPT09ICdjeSdcbiAgICAgICAgPyBvdGhlckRlc2NcbiAgICAgICAgOiBudWxsLFxuICAgICAgZmxhZ0NvbW1lbnQ6IHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnZW4nXG4gICAgICAgID8gZm9ybVZhbHVlcz8uZmxhZ0NvbW1lbnRzXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGZsYWdDb21tZW50X2N5OiB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2N5J1xuICAgICAgICA/IGZvcm1WYWx1ZXM/LmZsYWdDb21tZW50c1xuICAgICAgICA6IG51bGwsXG4gICAgICBmbGFnVXBkYXRlQ29tbWVudDogZm9ybVZhbHVlcz8uc3RhdHVzUmVhc29uLFxuICAgICAgZGF0ZVRpbWVDcmVhdGVkOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICBwYXRoOiBmbGFnVHlwZT8uUGF0aCAmJlxuICAgICAgICBmbGFnVHlwZT8uUGF0aC5tYXAocGF0aFZhbHVlID0+IE9iamVjdC5hc3NpZ24oeyBpZDogbnVsbCwgdmFsdWU6IHBhdGhWYWx1ZSB9KSksXG4gICAgICBoZWFyaW5nUmVsZXZhbnQ6IGZsYWdUeXBlPy5oZWFyaW5nUmVsZXZhbnQgPyAnWWVzJyA6ICdObycsXG4gICAgICBmbGFnQ29kZTogZmxhZ1R5cGU/LmZsYWdDb2RlLFxuICAgICAgLy8gU3RhdHVzIHNob3VsZCBiZSBzZXQgdG8gd2hhdGV2ZXIgdGhlIGRlZmF1bHQgaXMgZm9yIHRoaXMgZmxhZyB0eXBlLCBpZiBmbGFnIGlzIGJlaW5nIGNyZWF0ZWQgYnkgYW4gZXh0ZXJuYWxcbiAgICAgIC8vIHVzZXIsIG90aGVyd2lzZSBpdCBzaG91bGQgYmUgc2V0IHRvIFwiQWN0aXZlXCIgaWYgQ2FzZSBGbGFncyB2Mi4xIGlzIE5PVCBlbmFibGVkLCBvciB0aGUgc2VsZWN0ZWQgc3RhdHVzIGlmIGl0IGlzXG4gICAgICBzdGF0dXM6IHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXG4gICAgICAgID8gZmxhZ1R5cGU/LmRlZmF1bHRTdGF0dXNcbiAgICAgICAgOiAhdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWRcbiAgICAgICAgICA/IENhc2VGbGFnU3RhdHVzLkFDVElWRVxuICAgICAgICAgIDogQ2FzZUZsYWdTdGF0dXNbZm9ybVZhbHVlcz8uc2VsZWN0ZWRTdGF0dXNdLFxuICAgICAgYXZhaWxhYmxlRXh0ZXJuYWxseTogZmxhZ1R5cGU/LmV4dGVybmFsbHlBdmFpbGFibGUgPyAnWWVzJyA6ICdObydcbiAgICB9IGFzIEZsYWdEZXRhaWw7XG4gIH1cblxuICBwdWJsaWMgbW92ZVRvRmluYWxSZXZpZXdTdGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEZsYWdzQ2FzZUZpZWxkVmFsdWUoKTtcbiAgICAvLyBDaGVjayB0aGF0IG5vIGVycm9ycyBoYXZlIGJlZW4gc2V0IG9uIGNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwIChieSBkZXRlcm1pbmVMb2NhdGlvbkZvckZsYWcoKSk7IHByZXZlbnQgbW92aW5nIHRvXG4gICAgLy8gZmluYWwgcmV2aWV3IHN0YWdlIGlmIGVycm9ycyBleGlzdFxuICAgIGlmICghdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5lcnJvcnMpIHtcbiAgICAgIC8vIENsZWFyIHRoZSBcIm5vdEFsbENhc2VGbGFnU3RhZ2VzQ29tcGxldGVkXCIgZXJyb3JcbiAgICAgIHRoaXMuYWxsQ2FzZUZsYWdTdGFnZXNDb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtR3JvdXAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLnNldFRyaWdnZXJTdWJtaXRFdmVudCh0cnVlKTtcbiAgICAgIC8vIFVwZGF0ZSB0aGlzLnNlbGVjdGVkRmxhZ3NMb2NhdGlvbiB3aXRoIHRoZSBjb3JyZWN0bHkgZGV0ZXJtaW5lZCBsb2NhdGlvbiwgc28gdGhlIGNvcnJlY3QgdmFsdWUgaXMgYXZhaWxhYmxlIHRvXG4gICAgICAvLyBSZWFkQ2FzZUZsYWdGaWVsZENvbXBvbmVudCB3aGVuIGl0IGluaXRpYWxpc2VzIHRoZSBDYXNlIEZsYWcgU3VtbWFyeSBwYWdlXG4gICAgICB0aGlzLnNlbGVjdGVkRmxhZ3NMb2NhdGlvbiA9IHRoaXMuZGV0ZXJtaW5lZExvY2F0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvLyBSZXNldCB0aGUgZmllbGRzdGF0ZVRvTmF2aWdhdGUgYXMgdGhlIHdyaXRlIGpvdXJuZXkgY29tcGxldGVzIGF0IHRoaXMgcG9pbnRcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLmZpZWxkU3RhdGVUb05hdmlnYXRlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuY2FzZVRpdGxlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBtYW5hZ2VGbGFnRmluYWxTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLklTX1dFTFNIX1RSQU5TTEFUSU9OX05FRURFRCk/LnZhbHVlXG4gICAgPyBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEVfV0VMU0hfVFJBTlNMQVRJT04gOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEU7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXIoY2FzZUZpZWxkczogQ2FzZUZpZWxkW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBjYXNlRmllbGRzLmZpbmQoY2FzZUZpZWxkID0+IEZpZWxkc1V0aWxzLmlzQ2FzZUZpZWxkT2ZUeXBlKGNhc2VGaWVsZCwgWydGbGFnTGF1bmNoZXInXSkpPy5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyO1xuICB9XG59XG4iLCI8IS0tIEVycm9yIG1lc3NhZ2Ugc3VtbWFyeSAtLT5cbjxkaXYgKm5nSWY9XCJlcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlcIiBhcmlhLWxhYmVsbGVkYnk9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCIgcm9sZT1cImFsZXJ0XCIgdGFiaW5kZXg9XCItMVwiIGRhdGEtbW9kdWxlPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiPlxuICA8aDIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZVwiIGlkPVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiPlxuICAgIHt7J1RoZXJlIGlzIGEgcHJvYmxlbScgfCBycHhUcmFuc2xhdGV9fVxuICA8L2gyPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZXJyb3JNZXNzYWdlc1wiIGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiPlxuICAgIDx1bCBjbGFzcz1cImdvdnVrLWxpc3QgZ292dWstZXJyb3Itc3VtbWFyeV9fbGlzdFwiPlxuICAgICAgPGxpPlxuICAgICAgICA8YSAoY2xpY2spPVwibmF2aWdhdGVUb0Vycm9yRWxlbWVudChlcnJvck1lc3NhZ2UuZmllbGRJZClcIiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JcIj57e2Vycm9yTWVzc2FnZS5kZXNjcmlwdGlvbiB8IHJweFRyYW5zbGF0ZX19PC9hPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cIiFpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyVXBkYXRlXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdTd2l0Y2hdPVwiZmllbGRTdGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xPQ0FUSU9OXCI+XG4gICAgICA8Y2NkLXNlbGVjdC1mbGFnLWxvY2F0aW9uXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBcIiBbZmxhZ3NEYXRhXT1cImZsYWdzRGF0YVwiXG4gICAgICAgIChjYXNlRmxhZ1N0YXRlRW1pdHRlcik9XCJvbkNhc2VGbGFnU3RhdGVFbWl0dGVkKCRldmVudClcIlxuICAgICAgICBbaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXT1cImlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbFwiXG4gICAgICA+PC9jY2Qtc2VsZWN0LWZsYWctbG9jYXRpb24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRVwiPlxuICAgICAgPGNjZC1zZWxlY3QtZmxhZy10eXBlIFtmb3JtR3JvdXBdPVwiY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBcIiBbanVyaXNkaWN0aW9uXT1cImp1cmlzZGljdGlvblwiIFtjYXNlVHlwZUlkXT1cImNhc2VUeXBlSWRcIlxuICAgICAgICBbaG1jdHNTZXJ2aWNlSWRdPVwiaG1jdHNTZXJ2aWNlSWRcIiBbaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXT1cImlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbFwiXG4gICAgICAgIFtpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWRdPVwiaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkXCJcbiAgICAgICAgW3NlbGVjdGVkRmxhZ3NMb2NhdGlvbl09XCJzZWxlY3RlZEZsYWdzTG9jYXRpb25cIlxuICAgICAgICAoY2FzZUZsYWdTdGF0ZUVtaXR0ZXIpPVwib25DYXNlRmxhZ1N0YXRlRW1pdHRlZCgkZXZlbnQpXCJcbiAgICAgICAgKGZsYWdDb21tZW50c09wdGlvbmFsRW1pdHRlcik9XCJvbkZsYWdDb21tZW50c09wdGlvbmFsRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2Qtc2VsZWN0LWZsYWctdHlwZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19MQU5HVUFHRV9JTlRFUlBSRVRFUlwiPlxuICAgICAgPGNjZC1zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXIgW2Zvcm1Hcm91cF09XCJjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cFwiXG4gICAgICAgIFtmbGFnVHlwZV09XCJmbGFnVHlwZVwiXG4gICAgICAgIChjYXNlRmxhZ1N0YXRlRW1pdHRlcik9XCJvbkNhc2VGbGFnU3RhdGVFbWl0dGVkKCRldmVudClcIj5cbiAgICAgIDwvY2NkLXNlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19DT01NRU5UU1wiPlxuICAgICAgPGNjZC1hZGQtY29tbWVudHMgW2Zvcm1Hcm91cF09XCJjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cFwiIFtvcHRpb25hbF09XCJmbGFnQ29tbWVudHNPcHRpb25hbFwiXG4gICAgICAgIChjYXNlRmxhZ1N0YXRlRW1pdHRlcik9XCJvbkNhc2VGbGFnU3RhdGVFbWl0dGVkKCRldmVudClcIlxuICAgICAgICBbaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXT1cImlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbFwiXG4gICAgICAgIFtpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWRdPVwiaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkXCI+XG4gICAgICA8L2NjZC1hZGQtY29tbWVudHM+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfU1RBVFVTXCI+XG4gICAgICA8Y2NkLWNvbmZpcm0tZmxhZy1zdGF0dXMgW2Zvcm1Hcm91cF09XCJjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cFwiIFtkZWZhdWx0U3RhdHVzXT1cImZsYWdUeXBlLmRlZmF1bHRTdGF0dXNcIlxuICAgICAgICAoY2FzZUZsYWdTdGF0ZUVtaXR0ZXIpPVwib25DYXNlRmxhZ1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtY29uZmlybS1mbGFnLXN0YXR1cz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyVXBkYXRlXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdTd2l0Y2hdPVwiZmllbGRTdGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTXCI+XG4gICAgICA8Y2NkLW1hbmFnZS1jYXNlLWZsYWdzIFtmb3JtR3JvdXBdPVwiY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBcIiBbZmxhZ3NEYXRhXT1cImZsYWdzRGF0YVwiIFtjYXNlVGl0bGVdPVwiY2FzZVRpdGxlXCJcbiAgICAgICAgW2Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyXT1cImRpc3BsYXlDb250ZXh0UGFyYW1ldGVyXCJcbiAgICAgICAgKGNhc2VGbGFnU3RhdGVFbWl0dGVyKT1cIm9uQ2FzZUZsYWdTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiPjwvY2NkLW1hbmFnZS1jYXNlLWZsYWdzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURVwiPlxuICAgICAgPGNjZC11cGRhdGUtZmxhZyBbZm9ybUdyb3VwXT1cImNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwXCJcbiAgICAgICAgW2Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyXT1cImRpc3BsYXlDb250ZXh0UGFyYW1ldGVyXCJcbiAgICAgICAgKGNhc2VGbGFnU3RhdGVFbWl0dGVyKT1cIm9uQ2FzZUZsYWdTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiPjwvY2NkLXVwZGF0ZS1mbGFnPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURV9XRUxTSF9UUkFOU0xBVElPTlwiPlxuICAgICAgPGNjZC11cGRhdGUtZmxhZy1hZGQtdHJhbnNsYXRpb24tZm9ybVxuICAgICAgICBbZm9ybUdyb3VwXT1cImNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwXCJcbiAgICAgICAgKGNhc2VGbGFnU3RhdGVFbWl0dGVyKT1cIm9uQ2FzZUZsYWdTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiXG4gICAgICA+PC9jY2QtdXBkYXRlLWZsYWctYWRkLXRyYW5zbGF0aW9uLWZvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=