@hmcts/ccd-case-ui-toolkit 7.0.39-angular-upgrade → 7.0.39-callback-event-errors-rework

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 (1177) hide show
  1. package/esm2020/lib/app.config.mjs +45 -0
  2. package/esm2020/lib/components/banners/alert/alert-icon-class.pipe.mjs +25 -0
  3. package/esm2020/lib/components/banners/alert/alert.component.mjs +95 -0
  4. package/esm2020/lib/components/banners/alert/alert.module.mjs +32 -0
  5. package/esm2020/lib/components/banners/banners.module.mjs +32 -0
  6. package/esm2020/lib/components/banners/notification-banner/notification-banner.component.mjs +120 -0
  7. package/esm2020/lib/components/banners/notification-banner/notification-banner.module.mjs +19 -0
  8. package/esm2020/lib/components/body/body.component.mjs +20 -0
  9. package/esm2020/lib/components/body/body.module.mjs +20 -0
  10. package/esm2020/lib/components/footer/footer.component.mjs +105 -0
  11. package/esm2020/lib/components/footer/footers.module.mjs +25 -0
  12. package/esm2020/lib/components/form/date-input/date-input.component.mjs +331 -0
  13. package/esm2020/lib/components/form/form.module.mjs +29 -0
  14. package/esm2020/lib/components/header/header-bar/header-bar.component.mjs +97 -0
  15. package/esm2020/lib/components/header/headers.module.mjs +25 -0
  16. package/esm2020/lib/components/header/navigation/navigation-item.component.mjs +41 -0
  17. package/esm2020/lib/components/header/navigation/navigation.component.mjs +24 -0
  18. package/esm2020/lib/components/header/phase/phase.component.mjs +45 -0
  19. package/esm2020/lib/components/tabs/tab.component.mjs +28 -0
  20. package/esm2020/lib/components/tabs/tabs.component.mjs +79 -0
  21. package/esm2020/lib/components/tabs/tabs.module.mjs +38 -0
  22. package/esm2020/lib/shared/commons/address-validation-constants.mjs +13 -0
  23. package/esm2020/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +19 -0
  24. package/esm2020/lib/shared/commons/case-edit-data/case-edit-data.service.mjs +47 -0
  25. package/esm2020/lib/shared/commons/constants.mjs +13 -0
  26. package/esm2020/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +39 -0
  27. package/esm2020/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +33 -0
  28. package/esm2020/lib/shared/components/activity/activity.component.mjs +151 -0
  29. package/esm2020/lib/shared/components/activity/activity.module.mjs +55 -0
  30. package/esm2020/lib/shared/components/case-editor/case-access-utils/index.mjs +105 -0
  31. package/esm2020/lib/shared/components/case-editor/case-create/case-create.component.mjs +87 -0
  32. package/esm2020/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +432 -0
  33. package/esm2020/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +125 -0
  34. package/esm2020/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +135 -0
  35. package/esm2020/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +69 -0
  36. package/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +779 -0
  37. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +587 -0
  38. package/esm2020/lib/shared/components/case-editor/case-editor.module.mjs +214 -0
  39. package/esm2020/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +86 -0
  40. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +80 -0
  41. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +153 -0
  42. package/esm2020/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +77 -0
  43. package/esm2020/lib/shared/components/case-editor/domain/confirmation.model.mjs +21 -0
  44. package/esm2020/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.mjs +4 -0
  45. package/esm2020/lib/shared/components/case-editor/domain/wizard-page-field.model.mjs +3 -0
  46. package/esm2020/lib/shared/components/case-editor/domain/wizard-page.model.mjs +26 -0
  47. package/esm2020/lib/shared/components/case-editor/domain/wizard.model.mjs +54 -0
  48. package/esm2020/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +93 -0
  49. package/esm2020/lib/shared/components/case-editor/services/case-flag-state.service.mjs +19 -0
  50. package/esm2020/lib/shared/components/case-editor/services/case-worker.service.mjs +32 -0
  51. package/esm2020/lib/shared/components/case-editor/services/case.notifier.mjs +51 -0
  52. package/esm2020/lib/shared/components/case-editor/services/cases.service.mjs +292 -0
  53. package/esm2020/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +41 -0
  54. package/esm2020/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +143 -0
  55. package/esm2020/lib/shared/components/case-editor/services/event-trigger.service.mjs +20 -0
  56. package/esm2020/lib/shared/components/case-editor/services/judicial-worker.service.mjs +32 -0
  57. package/esm2020/lib/shared/components/case-editor/services/page-validation.service.mjs +58 -0
  58. package/esm2020/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +39 -0
  59. package/esm2020/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +117 -0
  60. package/esm2020/lib/shared/components/case-editor/services/work-allocation.service.mjs +214 -0
  61. package/esm2020/lib/shared/components/case-header/case-header.component.mjs +61 -0
  62. package/esm2020/lib/shared/components/case-header/case-header.module.mjs +33 -0
  63. package/esm2020/lib/shared/components/case-history/case-history.component.mjs +242 -0
  64. package/esm2020/lib/shared/components/case-history/case-history.module.mjs +64 -0
  65. package/esm2020/lib/shared/components/case-history/domain/case-history.model.mjs +29 -0
  66. package/esm2020/lib/shared/components/case-history/services/case-history.service.mjs +40 -0
  67. package/esm2020/lib/shared/components/case-list/case-list.component.mjs +362 -0
  68. package/esm2020/lib/shared/components/case-list/case-list.module.mjs +47 -0
  69. package/esm2020/lib/shared/components/case-list-filters/case-list-filters.component.mjs +52 -0
  70. package/esm2020/lib/shared/components/case-list-filters/case-list-filters.module.mjs +64 -0
  71. package/esm2020/lib/shared/components/case-timeline/case-timeline.component.mjs +109 -0
  72. package/esm2020/lib/shared/components/case-timeline/case-timeline.module.mjs +52 -0
  73. package/esm2020/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +247 -0
  74. package/esm2020/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +298 -0
  75. package/esm2020/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +72 -0
  76. package/esm2020/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +141 -0
  77. package/esm2020/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +670 -0
  78. package/esm2020/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +58 -0
  79. package/esm2020/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +241 -0
  80. package/esm2020/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +199 -0
  81. package/esm2020/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +47 -0
  82. package/esm2020/lib/shared/components/case-viewer/case-view/case-view.component.mjs +98 -0
  83. package/esm2020/lib/shared/components/case-viewer/case-viewer.component.mjs +125 -0
  84. package/esm2020/lib/shared/components/case-viewer/case-viewer.module.mjs +191 -0
  85. package/esm2020/lib/shared/components/case-viewer/printer/case-printer.component.mjs +110 -0
  86. package/esm2020/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +60 -0
  87. package/esm2020/lib/shared/components/case-viewer/services/case.resolver.mjs +128 -0
  88. package/esm2020/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +77 -0
  89. package/esm2020/lib/shared/components/create-case-filters/create-case-filters-selection.model.mjs +8 -0
  90. package/esm2020/lib/shared/components/create-case-filters/create-case-filters.component.mjs +275 -0
  91. package/esm2020/lib/shared/components/create-case-filters/create-case-filters.module.mjs +44 -0
  92. package/esm2020/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +57 -0
  93. package/esm2020/lib/shared/components/dialogs/dialogs.module.mjs +51 -0
  94. package/esm2020/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +59 -0
  95. package/esm2020/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +57 -0
  96. package/esm2020/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +61 -0
  97. package/esm2020/lib/shared/components/error/callback-errors.component.mjs +149 -0
  98. package/esm2020/lib/shared/components/error/domain/error-context.mjs +3 -0
  99. package/esm2020/lib/shared/components/error/errors.module.mjs +33 -0
  100. package/esm2020/lib/shared/components/error-message/error-message.component.mjs +43 -0
  101. package/esm2020/lib/shared/components/error-message/error-message.module.mjs +41 -0
  102. package/esm2020/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +59 -0
  103. package/esm2020/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +53 -0
  104. package/esm2020/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +104 -0
  105. package/esm2020/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +68 -0
  106. package/esm2020/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +58 -0
  107. package/esm2020/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +53 -0
  108. package/esm2020/lib/shared/components/event-start/event-guard/event-start.guard.mjs +101 -0
  109. package/esm2020/lib/shared/components/event-start/event-start.component.mjs +49 -0
  110. package/esm2020/lib/shared/components/event-start/event-start.module.mjs +71 -0
  111. package/esm2020/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +29 -0
  112. package/esm2020/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +170 -0
  113. package/esm2020/lib/shared/components/event-trigger/event-trigger.component.mjs +123 -0
  114. package/esm2020/lib/shared/components/event-trigger/event-trigger.module.mjs +37 -0
  115. package/esm2020/lib/shared/components/loading-spinner/loading-spinner.component.mjs +27 -0
  116. package/esm2020/lib/shared/components/loading-spinner/loading-spinner.module.mjs +29 -0
  117. package/esm2020/lib/shared/components/pagination/pagination.component.mjs +262 -0
  118. package/esm2020/lib/shared/components/pagination/pagination.module.mjs +35 -0
  119. package/esm2020/lib/shared/components/palette/address/address-option.model.mjs +21 -0
  120. package/esm2020/lib/shared/components/palette/address/write-address-field.component.mjs +280 -0
  121. package/esm2020/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +31 -0
  122. package/esm2020/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +44 -0
  123. package/esm2020/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +83 -0
  124. package/esm2020/lib/shared/components/palette/base-field/field-read-label.component.mjs +86 -0
  125. package/esm2020/lib/shared/components/palette/base-field/field-read.component.mjs +85 -0
  126. package/esm2020/lib/shared/components/palette/base-field/field-write.component.mjs +74 -0
  127. package/esm2020/lib/shared/components/palette/base-field/payment-field.component.mjs +35 -0
  128. package/esm2020/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +171 -0
  129. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.mjs +48 -0
  130. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +48 -0
  131. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +342 -0
  132. package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +154 -0
  133. package/esm2020/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +94 -0
  134. package/esm2020/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +190 -0
  135. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +288 -0
  136. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +207 -0
  137. package/esm2020/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +165 -0
  138. package/esm2020/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +219 -0
  139. package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +306 -0
  140. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +200 -0
  141. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +343 -0
  142. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +267 -0
  143. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +510 -0
  144. package/esm2020/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +41 -0
  145. package/esm2020/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +41 -0
  146. package/esm2020/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +109 -0
  147. package/esm2020/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +77 -0
  148. package/esm2020/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +246 -0
  149. package/esm2020/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +686 -0
  150. package/esm2020/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +32 -0
  151. package/esm2020/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +122 -0
  152. package/esm2020/lib/shared/components/palette/collection/collection-create-checker.service.mjs +42 -0
  153. package/esm2020/lib/shared/components/palette/collection/read-collection-field.component.mjs +81 -0
  154. package/esm2020/lib/shared/components/palette/collection/write-collection-field.component.mjs +441 -0
  155. package/esm2020/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +379 -0
  156. package/esm2020/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +53 -0
  157. package/esm2020/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +78 -0
  158. package/esm2020/lib/shared/components/palette/complex/read-complex-field.component.mjs +75 -0
  159. package/esm2020/lib/shared/components/palette/complex/write-complex-field.component.mjs +169 -0
  160. package/esm2020/lib/shared/components/palette/date/read-date-field.component.mjs +28 -0
  161. package/esm2020/lib/shared/components/palette/date/write-date-container-field.component.mjs +33 -0
  162. package/esm2020/lib/shared/components/palette/date/write-date-field.component.mjs +76 -0
  163. package/esm2020/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +309 -0
  164. package/esm2020/lib/shared/components/palette/document/document-url.pipe.mjs +24 -0
  165. package/esm2020/lib/shared/components/palette/document/file-upload-progress.guard.mjs +29 -0
  166. package/esm2020/lib/shared/components/palette/document/file-upload-state.service.mjs +16 -0
  167. package/esm2020/lib/shared/components/palette/document/read-document-field.component.mjs +81 -0
  168. package/esm2020/lib/shared/components/palette/document/write-document-field.component.mjs +408 -0
  169. package/esm2020/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +18 -0
  170. package/esm2020/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +36 -0
  171. package/esm2020/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +124 -0
  172. package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +43 -0
  173. package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +145 -0
  174. package/esm2020/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +25 -0
  175. package/esm2020/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +42 -0
  176. package/esm2020/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +124 -0
  177. package/esm2020/lib/shared/components/palette/email/read-email-field.component.mjs +35 -0
  178. package/esm2020/lib/shared/components/palette/email/write-email-field.component.mjs +73 -0
  179. package/esm2020/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +23 -0
  180. package/esm2020/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +26 -0
  181. package/esm2020/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +106 -0
  182. package/esm2020/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +18 -0
  183. package/esm2020/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +26 -0
  184. package/esm2020/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +95 -0
  185. package/esm2020/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +16 -0
  186. package/esm2020/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +97 -0
  187. package/esm2020/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +225 -0
  188. package/esm2020/lib/shared/components/palette/history/event-log/event-log.component.mjs +72 -0
  189. package/esm2020/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +45 -0
  190. package/esm2020/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +242 -0
  191. package/esm2020/lib/shared/components/palette/label/label-field.component.mjs +50 -0
  192. package/esm2020/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +108 -0
  193. package/esm2020/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +189 -0
  194. package/esm2020/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +530 -0
  195. package/esm2020/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +204 -0
  196. package/esm2020/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +280 -0
  197. package/esm2020/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +66 -0
  198. package/esm2020/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +201 -0
  199. package/esm2020/lib/shared/components/palette/linked-cases/domain/linked-cases.model.mjs +22 -0
  200. package/esm2020/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +163 -0
  201. package/esm2020/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +132 -0
  202. package/esm2020/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +27 -0
  203. package/esm2020/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +229 -0
  204. package/esm2020/lib/shared/components/palette/markdown/markdown-component.module.mjs +49 -0
  205. package/esm2020/lib/shared/components/palette/markdown/markdown.component.mjs +78 -0
  206. package/esm2020/lib/shared/components/palette/markdown/routerlink.component.mjs +23 -0
  207. package/esm2020/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +123 -0
  208. package/esm2020/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +47 -0
  209. package/esm2020/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +78 -0
  210. package/esm2020/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +45 -0
  211. package/esm2020/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +126 -0
  212. package/esm2020/lib/shared/components/palette/number/read-number-field.component.mjs +24 -0
  213. package/esm2020/lib/shared/components/palette/number/write-number-field.component.mjs +73 -0
  214. package/esm2020/lib/shared/components/palette/order-summary/fee-value.model.mjs +3 -0
  215. package/esm2020/lib/shared/components/palette/order-summary/fee.model.mjs +4 -0
  216. package/esm2020/lib/shared/components/palette/order-summary/order-summary.model.mjs +3 -0
  217. package/esm2020/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +73 -0
  218. package/esm2020/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +43 -0
  219. package/esm2020/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +44 -0
  220. package/esm2020/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +83 -0
  221. package/esm2020/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +87 -0
  222. package/esm2020/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +56 -0
  223. package/esm2020/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +33 -0
  224. package/esm2020/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +384 -0
  225. package/esm2020/lib/shared/components/palette/palette.module.mjs +738 -0
  226. package/esm2020/lib/shared/components/palette/palette.service.mjs +155 -0
  227. package/esm2020/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +24 -0
  228. package/esm2020/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +22 -0
  229. package/esm2020/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +73 -0
  230. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +42 -0
  231. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +144 -0
  232. package/esm2020/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +64 -0
  233. package/esm2020/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +60 -0
  234. package/esm2020/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +281 -0
  235. package/esm2020/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +327 -0
  236. package/esm2020/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +22 -0
  237. package/esm2020/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +164 -0
  238. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +74 -0
  239. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +107 -0
  240. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +201 -0
  241. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +101 -0
  242. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +21 -0
  243. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +38 -0
  244. package/esm2020/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +121 -0
  245. package/esm2020/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +22 -0
  246. package/esm2020/lib/shared/components/palette/text/read-text-field.component.mjs +24 -0
  247. package/esm2020/lib/shared/components/palette/text/write-text-field.component.mjs +77 -0
  248. package/esm2020/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +24 -0
  249. package/esm2020/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +87 -0
  250. package/esm2020/lib/shared/components/palette/unsupported-field.component.mjs +17 -0
  251. package/esm2020/lib/shared/components/palette/utils/dash.pipe.mjs +16 -0
  252. package/esm2020/lib/shared/components/palette/utils/date.pipe.mjs +132 -0
  253. package/esm2020/lib/shared/components/palette/utils/field-label.pipe.mjs +29 -0
  254. package/esm2020/lib/shared/components/palette/utils/first-error.pipe.mjs +62 -0
  255. package/esm2020/lib/shared/components/palette/utils/is-compound.pipe.mjs +43 -0
  256. package/esm2020/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +21 -0
  257. package/esm2020/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +31 -0
  258. package/esm2020/lib/shared/components/palette/utils/is-read-only.pipe.mjs +21 -0
  259. package/esm2020/lib/shared/components/palette/utils/utils.module.mjs +71 -0
  260. package/esm2020/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +34 -0
  261. package/esm2020/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +34 -0
  262. package/esm2020/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +100 -0
  263. package/esm2020/lib/shared/components/palette/yes-no/yes-no.service.mjs +50 -0
  264. package/esm2020/lib/shared/components/search-filters/domain/search-input.model.mjs +10 -0
  265. package/esm2020/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +58 -0
  266. package/esm2020/lib/shared/components/search-filters/search-filters.component.mjs +326 -0
  267. package/esm2020/lib/shared/components/search-filters/search-filters.module.mjs +71 -0
  268. package/esm2020/lib/shared/components/search-result/search-result.component.mjs +815 -0
  269. package/esm2020/lib/shared/components/search-result/search-result.module.mjs +82 -0
  270. package/esm2020/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +479 -0
  271. package/esm2020/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +67 -0
  272. package/esm2020/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +164 -0
  273. package/esm2020/lib/shared/directives/conditional-show/conditional-show.module.mjs +33 -0
  274. package/esm2020/lib/shared/directives/conditional-show/domain/conditional-show.model.mjs +200 -0
  275. package/esm2020/lib/shared/directives/conditional-show/services/condition-parser.service.mjs +200 -0
  276. package/esm2020/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +19 -0
  277. package/esm2020/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +47 -0
  278. package/esm2020/lib/shared/directives/focus-element/focus-element.directive.mjs +36 -0
  279. package/esm2020/lib/shared/directives/focus-element/focus-element.module.mjs +21 -0
  280. package/esm2020/lib/shared/directives/substitutor/label-substitutor.directive.mjs +82 -0
  281. package/esm2020/lib/shared/directives/substitutor/label-substitutor.module.mjs +30 -0
  282. package/esm2020/lib/shared/directives/substitutor/services/placeholder.service.mjs +200 -0
  283. package/esm2020/lib/shared/domain/activity/activity.model.mjs +10 -0
  284. package/esm2020/lib/shared/domain/addresses/address.model.mjs +13 -0
  285. package/esm2020/lib/shared/domain/alert/alert.model.mjs +3 -0
  286. package/esm2020/lib/shared/domain/case-details.model.mjs +4 -0
  287. package/esm2020/lib/shared/domain/case-event-data.model.mjs +4 -0
  288. package/esm2020/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +3 -0
  289. package/esm2020/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +4 -0
  290. package/esm2020/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +7 -0
  291. package/esm2020/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +117 -0
  292. package/esm2020/lib/shared/domain/case-flag/flag-type.model.mjs +28 -0
  293. package/esm2020/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +10 -0
  294. package/esm2020/lib/shared/domain/case-view/case-event-trigger.model.mjs +23 -0
  295. package/esm2020/lib/shared/domain/case-view/case-print-document.model.mjs +3 -0
  296. package/esm2020/lib/shared/domain/case-view/case-tab.model.mjs +12 -0
  297. package/esm2020/lib/shared/domain/case-view/case-view-event.model.mjs +4 -0
  298. package/esm2020/lib/shared/domain/case-view/case-view-trigger.model.mjs +3 -0
  299. package/esm2020/lib/shared/domain/case-view/case-view.model.mjs +17 -0
  300. package/esm2020/lib/shared/domain/definition/access-control-list.model.mjs +3 -0
  301. package/esm2020/lib/shared/domain/definition/banner.model.mjs +3 -0
  302. package/esm2020/lib/shared/domain/definition/case-event.model.mjs +3 -0
  303. package/esm2020/lib/shared/domain/definition/case-field.model.mjs +200 -0
  304. package/esm2020/lib/shared/domain/definition/case-state.model.mjs +3 -0
  305. package/esm2020/lib/shared/domain/definition/case-type-lite.model.mjs +5 -0
  306. package/esm2020/lib/shared/domain/definition/case-type.model.mjs +12 -0
  307. package/esm2020/lib/shared/domain/definition/event-case-field.model.mjs +4 -0
  308. package/esm2020/lib/shared/domain/definition/field-type.model.mjs +22 -0
  309. package/esm2020/lib/shared/domain/definition/fixed-list-item.model.mjs +3 -0
  310. package/esm2020/lib/shared/domain/definition/jurisdiction.model.mjs +3 -0
  311. package/esm2020/lib/shared/domain/document/document-data.model.mjs +14 -0
  312. package/esm2020/lib/shared/domain/draft.model.mjs +11 -0
  313. package/esm2020/lib/shared/domain/http/http-error.model.mjs +40 -0
  314. package/esm2020/lib/shared/domain/organisation/organisation-converter.mjs +42 -0
  315. package/esm2020/lib/shared/domain/pagination-metadata.model.mjs +3 -0
  316. package/esm2020/lib/shared/domain/profile/profile.model.mjs +29 -0
  317. package/esm2020/lib/shared/domain/search/field.model.mjs +11 -0
  318. package/esm2020/lib/shared/domain/search/search-result-view-column.model.mjs +3 -0
  319. package/esm2020/lib/shared/domain/search/search-result-view-item.model.mjs +12 -0
  320. package/esm2020/lib/shared/domain/search/search-result-view.model.mjs +23 -0
  321. package/esm2020/lib/shared/domain/search/sorting/sort-parameters.mjs +7 -0
  322. package/esm2020/lib/shared/domain/workbasket/workbasket-input.model.mjs +5 -0
  323. package/esm2020/lib/shared/fixture/case-field-builder.mjs +69 -0
  324. package/esm2020/lib/shared/pipes/case-reference/case-reference.pipe.mjs +33 -0
  325. package/esm2020/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +29 -0
  326. package/esm2020/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +32 -0
  327. package/esm2020/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +29 -0
  328. package/esm2020/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +39 -0
  329. package/esm2020/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +173 -0
  330. package/esm2020/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +31 -0
  331. package/esm2020/lib/shared/pipes/complex/fields-filter.pipe.mjs +105 -0
  332. package/esm2020/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +16 -0
  333. package/esm2020/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +27 -0
  334. package/esm2020/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +27 -0
  335. package/esm2020/lib/shared/pipes/pipes.module.mjs +64 -0
  336. package/esm2020/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +24 -0
  337. package/esm2020/lib/shared/services/activity/activity.polling.service.mjs +114 -0
  338. package/esm2020/lib/shared/services/activity/activity.service.mjs +82 -0
  339. package/esm2020/lib/shared/services/addresses/address-parser.mjs +76 -0
  340. package/esm2020/lib/shared/services/addresses/addresses.service.mjs +63 -0
  341. package/esm2020/lib/shared/services/alert/alert.service.mjs +142 -0
  342. package/esm2020/lib/shared/services/auth/auth.service.mjs +33 -0
  343. package/esm2020/lib/shared/services/banners/banners.service.mjs +33 -0
  344. package/esm2020/lib/shared/services/browser/browser.service.mjs +24 -0
  345. package/esm2020/lib/shared/services/case-fields/case-field.service.mjs +34 -0
  346. package/esm2020/lib/shared/services/case-fields/format-translator.service.mjs +242 -0
  347. package/esm2020/lib/shared/services/case-file-view/case-file-view.service.mjs +46 -0
  348. package/esm2020/lib/shared/services/case-flag/case-flag-refdata.service.mjs +102 -0
  349. package/esm2020/lib/shared/services/common-data-service/common-data-service.mjs +28 -0
  350. package/esm2020/lib/shared/services/definitions/definitions.module.mjs +19 -0
  351. package/esm2020/lib/shared/services/definitions/definitions.service.mjs +30 -0
  352. package/esm2020/lib/shared/services/document-management/document-management.service.mjs +112 -0
  353. package/esm2020/lib/shared/services/draft/draft.service.mjs +86 -0
  354. package/esm2020/lib/shared/services/error/error-notifier.service.mjs +18 -0
  355. package/esm2020/lib/shared/services/eventStatusService/event-status.service.mjs +21 -0
  356. package/esm2020/lib/shared/services/fields/fields.purger.mjs +304 -0
  357. package/esm2020/lib/shared/services/fields/fields.utils.mjs +615 -0
  358. package/esm2020/lib/shared/services/form/field-type-sanitiser.mjs +102 -0
  359. package/esm2020/lib/shared/services/form/form-error.service.mjs +46 -0
  360. package/esm2020/lib/shared/services/form/form-validators.service.mjs +82 -0
  361. package/esm2020/lib/shared/services/form/form-value.service.mjs +551 -0
  362. package/esm2020/lib/shared/services/http/http-error.service.mjs +65 -0
  363. package/esm2020/lib/shared/services/http/http.service.mjs +93 -0
  364. package/esm2020/lib/shared/services/jurisdiction/jurisdiction.service.mjs +33 -0
  365. package/esm2020/lib/shared/services/loading/loading.module.mjs +22 -0
  366. package/esm2020/lib/shared/services/loading/loading.service.mjs +33 -0
  367. package/esm2020/lib/shared/services/navigation/navigation-notifier.service.mjs +18 -0
  368. package/esm2020/lib/shared/services/order/order.service.mjs +39 -0
  369. package/esm2020/lib/shared/services/organisation/organisation.service.mjs +54 -0
  370. package/esm2020/lib/shared/services/profile/profile.notifier.mjs +19 -0
  371. package/esm2020/lib/shared/services/profile/profile.service.mjs +34 -0
  372. package/esm2020/lib/shared/services/request/request.options.builder.mjs +61 -0
  373. package/esm2020/lib/shared/services/router/router-helper.service.mjs +20 -0
  374. package/esm2020/lib/shared/services/search/search.service.mjs +89 -0
  375. package/esm2020/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +71 -0
  376. package/esm2020/lib/shared/services/session/session-storage.service.mjs +34 -0
  377. package/esm2020/lib/shared/services/utils/retry/retry.service.mjs +86 -0
  378. package/esm2020/lib/shared/services/window/window.service.mjs +40 -0
  379. package/esm2020/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +53 -0
  380. package/esm2020/lib/shared/test/test-route-snapshot-builder.mjs +40 -0
  381. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +38781 -0
  382. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -0
  383. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +35799 -0
  384. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -0
  385. package/lib/components/banners/alert/alert.component.d.ts +1 -1
  386. package/lib/components/banners/notification-banner/notification-banner.component.d.ts +1 -1
  387. package/lib/components/footer/footer.component.d.ts +1 -1
  388. package/lib/components/form/date-input/date-input.component.d.ts +1 -1
  389. package/lib/components/header/header-bar/header-bar.component.d.ts +1 -1
  390. package/lib/components/header/navigation/navigation-item.component.d.ts +1 -1
  391. package/lib/components/header/navigation/navigation.component.d.ts +1 -1
  392. package/lib/components/header/phase/phase.component.d.ts +1 -1
  393. package/lib/components/tabs/tab.component.d.ts +1 -1
  394. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts +1 -1
  395. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
  396. package/lib/shared/components/activity/activity-banner/activity-banner.component.d.ts +1 -1
  397. package/lib/shared/components/activity/activity-icon/activity-icon.component.d.ts +1 -1
  398. package/lib/shared/components/activity/activity.component.d.ts +1 -1
  399. package/lib/shared/components/case-editor/case-create/case-create.component.d.ts +1 -1
  400. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +1 -1
  401. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts +1 -1
  402. package/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.d.ts +1 -1
  403. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  404. package/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.d.ts +1 -1
  405. package/lib/shared/components/case-editor/case-progress/case-progress.component.d.ts +1 -1
  406. package/lib/shared/components/case-header/case-header.component.d.ts +1 -1
  407. package/lib/shared/components/case-history/case-history.component.d.ts +1 -1
  408. package/lib/shared/components/case-list/case-list.component.d.ts +1 -1
  409. package/lib/shared/components/case-list-filters/case-list-filters.component.d.ts +1 -1
  410. package/lib/shared/components/case-timeline/case-timeline.component.d.ts +1 -1
  411. package/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts +1 -1
  412. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +4 -5
  413. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  414. package/lib/shared/components/case-viewer/case-view/case-view.component.d.ts +1 -1
  415. package/lib/shared/components/case-viewer/case-viewer.component.d.ts +1 -1
  416. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts +7 -2
  417. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts.map +1 -1
  418. package/lib/shared/components/create-case-filters/create-case-filters.component.d.ts +1 -1
  419. package/lib/shared/components/error/callback-errors.component.d.ts +1 -1
  420. package/lib/shared/components/error/callback-errors.component.d.ts.map +1 -1
  421. package/lib/shared/components/error/domain/error-context.d.ts +1 -0
  422. package/lib/shared/components/error/domain/error-context.d.ts.map +1 -1
  423. package/lib/shared/components/error-message/error-message.component.d.ts +1 -1
  424. package/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.d.ts +1 -1
  425. package/lib/shared/components/event-start/components/task-conflict/task-conflict.component.d.ts +1 -1
  426. package/lib/shared/components/event-trigger/event-trigger.component.d.ts +6 -3
  427. package/lib/shared/components/event-trigger/event-trigger.component.d.ts.map +1 -1
  428. package/lib/shared/components/loading-spinner/loading-spinner.component.d.ts +1 -1
  429. package/lib/shared/components/pagination/pagination.component.d.ts +1 -1
  430. package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -1
  431. package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts +1 -1
  432. package/lib/shared/components/palette/base-field/abstract-field-write.component.d.ts +1 -1
  433. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts +2 -2
  434. package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
  435. package/lib/shared/components/palette/base-field/field-read-label.component.d.ts +1 -1
  436. package/lib/shared/components/palette/base-field/field-read.component.d.ts +1 -1
  437. package/lib/shared/components/palette/base-field/field-write.component.d.ts +1 -1
  438. 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
  439. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts +1 -1
  440. 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
  441. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +1 -1
  442. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +1 -1
  443. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +1 -1
  444. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +1 -1
  445. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +1 -1
  446. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +1 -1
  447. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +1 -1
  448. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +1 -1
  449. 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
  450. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +1 -1
  451. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +2 -2
  452. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  453. package/lib/shared/components/palette/complex/read-complex-field-raw.component.d.ts +1 -1
  454. package/lib/shared/components/palette/complex/read-complex-field-table.component.d.ts +1 -1
  455. package/lib/shared/components/palette/complex/read-complex-field.component.d.ts +1 -1
  456. package/lib/shared/components/palette/complex/write-complex-field.component.d.ts +1 -1
  457. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts +1 -1
  458. package/lib/shared/components/palette/history/event-log/event-log-details.component.d.ts +1 -1
  459. package/lib/shared/components/palette/history/event-log/event-log-table.component.d.ts +1 -1
  460. package/lib/shared/components/palette/history/event-log/event-log.component.d.ts +1 -1
  461. package/lib/shared/components/palette/label/label-field.component.d.ts +1 -1
  462. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts +1 -1
  463. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts +1 -1
  464. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +2 -2
  465. package/lib/shared/components/palette/markdown/markdown.component.d.ts +4 -2
  466. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  467. package/lib/shared/components/palette/money-gbp/money-gbp-input.component.d.ts +1 -1
  468. package/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.d.ts +1 -1
  469. package/lib/shared/components/palette/order-summary/read-order-summary-row.component.d.ts +1 -1
  470. package/lib/shared/components/palette/organisation/read-organisation-field-raw.component.d.ts +1 -1
  471. package/lib/shared/components/palette/organisation/read-organisation-field-table.component.d.ts +1 -1
  472. package/lib/shared/components/palette/organisation/read-organisation-field.component.d.ts +1 -1
  473. package/lib/shared/components/palette/organisation/write-organisation-complex-field.component.d.ts +1 -1
  474. package/lib/shared/components/palette/palette.module.d.ts +2 -2
  475. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  476. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts +1 -1
  477. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +1 -1
  478. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts +1 -1
  479. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +1 -1
  480. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +1 -1
  481. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts +1 -1
  482. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +1 -1
  483. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +1 -1
  484. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts +1 -1
  485. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +1 -1
  486. 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
  487. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts +1 -1
  488. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts.map +1 -1
  489. package/lib/shared/components/search-filters/search-filters-wrapper.component.d.ts +1 -1
  490. package/lib/shared/components/search-filters/search-filters.component.d.ts +1 -1
  491. package/lib/shared/components/search-result/search-result.component.d.ts +1 -1
  492. package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts +1 -1
  493. package/lib/shared/directives/conditional-show/conditional-show-form.directive.d.ts +1 -1
  494. package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts +1 -1
  495. package/lib/shared/domain/alert/alert-level.model.d.ts +1 -1
  496. package/lib/shared/domain/alert/alert-level.model.d.ts.map +1 -1
  497. package/lib/shared/domain/case-view/access-types.model.d.ts +1 -1
  498. package/lib/shared/domain/case-view/access-types.model.d.ts.map +1 -1
  499. package/lib/shared/domain/case-view/role-request.model.d.ts +4 -4
  500. package/lib/shared/domain/case-view/role-request.model.d.ts.map +1 -1
  501. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  502. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  503. package/lib/shared/domain/predicate.model.d.ts +1 -1
  504. package/lib/shared/domain/predicate.model.d.ts.map +1 -1
  505. package/lib/shared/pipes/complex/fields-filter.pipe.d.ts.map +1 -1
  506. package/lib/shared/services/error/error-notifier.service.d.ts.map +1 -1
  507. package/lib/shared/services/order/order.service.d.ts +2 -2
  508. package/lib/shared/services/order/order.service.d.ts.map +1 -1
  509. package/lib/shared/services/request/request.options.builder.d.ts +1 -1
  510. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  511. package/package.json +12 -6
  512. package/esm2022/lib/app.config.mjs +0 -93
  513. package/esm2022/lib/components/banners/alert/alert-icon-class.pipe.mjs +0 -25
  514. package/esm2022/lib/components/banners/alert/alert.component.mjs +0 -92
  515. package/esm2022/lib/components/banners/alert/alert.module.mjs +0 -32
  516. package/esm2022/lib/components/banners/banners.module.mjs +0 -32
  517. package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +0 -116
  518. package/esm2022/lib/components/banners/notification-banner/notification-banner.module.mjs +0 -19
  519. package/esm2022/lib/components/body/body.component.mjs +0 -21
  520. package/esm2022/lib/components/body/body.module.mjs +0 -20
  521. package/esm2022/lib/components/footer/footer.component.mjs +0 -109
  522. package/esm2022/lib/components/footer/footers.module.mjs +0 -25
  523. package/esm2022/lib/components/form/date-input/date-input.component.mjs +0 -341
  524. package/esm2022/lib/components/form/form.module.mjs +0 -29
  525. package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +0 -98
  526. package/esm2022/lib/components/header/headers.module.mjs +0 -25
  527. package/esm2022/lib/components/header/navigation/navigation-item.component.mjs +0 -45
  528. package/esm2022/lib/components/header/navigation/navigation.component.mjs +0 -26
  529. package/esm2022/lib/components/header/phase/phase.component.mjs +0 -49
  530. package/esm2022/lib/components/tabs/tab.component.mjs +0 -32
  531. package/esm2022/lib/components/tabs/tabs.component.mjs +0 -83
  532. package/esm2022/lib/components/tabs/tabs.module.mjs +0 -38
  533. package/esm2022/lib/shared/commons/address-validation-constants.mjs +0 -13
  534. package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +0 -19
  535. package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.service.mjs +0 -46
  536. package/esm2022/lib/shared/commons/constants.mjs +0 -13
  537. package/esm2022/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +0 -43
  538. package/esm2022/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +0 -36
  539. package/esm2022/lib/shared/components/activity/activity.component.mjs +0 -156
  540. package/esm2022/lib/shared/components/activity/activity.module.mjs +0 -55
  541. package/esm2022/lib/shared/components/case-editor/case-access-utils/index.mjs +0 -105
  542. package/esm2022/lib/shared/components/case-editor/case-create/case-create.component.mjs +0 -96
  543. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +0 -464
  544. package/esm2022/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +0 -130
  545. package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +0 -140
  546. package/esm2022/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +0 -70
  547. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +0 -806
  548. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +0 -603
  549. package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +0 -214
  550. package/esm2022/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +0 -97
  551. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +0 -83
  552. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +0 -167
  553. package/esm2022/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +0 -85
  554. package/esm2022/lib/shared/components/case-editor/domain/confirmation.model.mjs +0 -25
  555. package/esm2022/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.mjs +0 -9
  556. package/esm2022/lib/shared/components/case-editor/domain/wizard-page-field.model.mjs +0 -7
  557. package/esm2022/lib/shared/components/case-editor/domain/wizard-page.model.mjs +0 -33
  558. package/esm2022/lib/shared/components/case-editor/domain/wizard.model.mjs +0 -55
  559. package/esm2022/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +0 -98
  560. package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +0 -19
  561. package/esm2022/lib/shared/components/case-editor/services/case-worker.service.mjs +0 -35
  562. package/esm2022/lib/shared/components/case-editor/services/case.notifier.mjs +0 -53
  563. package/esm2022/lib/shared/components/case-editor/services/cases.service.mjs +0 -300
  564. package/esm2022/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +0 -42
  565. package/esm2022/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +0 -153
  566. package/esm2022/lib/shared/components/case-editor/services/event-trigger.service.mjs +0 -18
  567. package/esm2022/lib/shared/components/case-editor/services/judicial-worker.service.mjs +0 -35
  568. package/esm2022/lib/shared/components/case-editor/services/page-validation.service.mjs +0 -59
  569. package/esm2022/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +0 -40
  570. package/esm2022/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +0 -117
  571. package/esm2022/lib/shared/components/case-editor/services/work-allocation.service.mjs +0 -220
  572. package/esm2022/lib/shared/components/case-header/case-header.component.mjs +0 -64
  573. package/esm2022/lib/shared/components/case-header/case-header.module.mjs +0 -33
  574. package/esm2022/lib/shared/components/case-history/case-history.component.mjs +0 -252
  575. package/esm2022/lib/shared/components/case-history/case-history.module.mjs +0 -64
  576. package/esm2022/lib/shared/components/case-history/domain/case-history.model.mjs +0 -37
  577. package/esm2022/lib/shared/components/case-history/services/case-history.service.mjs +0 -43
  578. package/esm2022/lib/shared/components/case-list/case-list.component.mjs +0 -368
  579. package/esm2022/lib/shared/components/case-list/case-list.module.mjs +0 -47
  580. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.component.mjs +0 -57
  581. package/esm2022/lib/shared/components/case-list-filters/case-list-filters.module.mjs +0 -64
  582. package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +0 -115
  583. package/esm2022/lib/shared/components/case-timeline/case-timeline.module.mjs +0 -52
  584. package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +0 -246
  585. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +0 -311
  586. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +0 -75
  587. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +0 -156
  588. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +0 -707
  589. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +0 -61
  590. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +0 -256
  591. package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +0 -211
  592. package/esm2022/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +0 -50
  593. package/esm2022/lib/shared/components/case-viewer/case-view/case-view.component.mjs +0 -107
  594. package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +0 -133
  595. package/esm2022/lib/shared/components/case-viewer/case-viewer.module.mjs +0 -191
  596. package/esm2022/lib/shared/components/case-viewer/printer/case-printer.component.mjs +0 -117
  597. package/esm2022/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +0 -61
  598. package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +0 -138
  599. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +0 -70
  600. package/esm2022/lib/shared/components/create-case-filters/create-case-filters-selection.model.mjs +0 -11
  601. package/esm2022/lib/shared/components/create-case-filters/create-case-filters.component.mjs +0 -289
  602. package/esm2022/lib/shared/components/create-case-filters/create-case-filters.module.mjs +0 -44
  603. package/esm2022/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +0 -60
  604. package/esm2022/lib/shared/components/dialogs/dialogs.module.mjs +0 -51
  605. package/esm2022/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +0 -62
  606. package/esm2022/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +0 -60
  607. package/esm2022/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +0 -64
  608. package/esm2022/lib/shared/components/error/callback-errors.component.mjs +0 -146
  609. package/esm2022/lib/shared/components/error/domain/error-context.mjs +0 -5
  610. package/esm2022/lib/shared/components/error/errors.module.mjs +0 -33
  611. package/esm2022/lib/shared/components/error-message/error-message.component.mjs +0 -45
  612. package/esm2022/lib/shared/components/error-message/error-message.module.mjs +0 -41
  613. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +0 -62
  614. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +0 -56
  615. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +0 -112
  616. package/esm2022/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +0 -70
  617. package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +0 -61
  618. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +0 -56
  619. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +0 -104
  620. package/esm2022/lib/shared/components/event-start/event-start.component.mjs +0 -56
  621. package/esm2022/lib/shared/components/event-start/event-start.module.mjs +0 -71
  622. package/esm2022/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +0 -31
  623. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +0 -179
  624. package/esm2022/lib/shared/components/event-trigger/event-trigger.component.mjs +0 -117
  625. package/esm2022/lib/shared/components/event-trigger/event-trigger.module.mjs +0 -37
  626. package/esm2022/lib/shared/components/loading-spinner/loading-spinner.component.mjs +0 -26
  627. package/esm2022/lib/shared/components/loading-spinner/loading-spinner.module.mjs +0 -29
  628. package/esm2022/lib/shared/components/pagination/pagination.component.mjs +0 -260
  629. package/esm2022/lib/shared/components/pagination/pagination.module.mjs +0 -35
  630. package/esm2022/lib/shared/components/palette/address/address-option.model.mjs +0 -23
  631. package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +0 -286
  632. package/esm2022/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +0 -30
  633. package/esm2022/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +0 -44
  634. package/esm2022/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +0 -84
  635. package/esm2022/lib/shared/components/palette/base-field/field-read-label.component.mjs +0 -85
  636. package/esm2022/lib/shared/components/palette/base-field/field-read.component.mjs +0 -90
  637. package/esm2022/lib/shared/components/palette/base-field/field-write.component.mjs +0 -78
  638. package/esm2022/lib/shared/components/palette/base-field/payment-field.component.mjs +0 -37
  639. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +0 -181
  640. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.mjs +0 -50
  641. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +0 -51
  642. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +0 -358
  643. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +0 -158
  644. package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +0 -94
  645. package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +0 -190
  646. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +0 -301
  647. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +0 -206
  648. package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +0 -169
  649. package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +0 -225
  650. package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +0 -311
  651. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +0 -202
  652. package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +0 -353
  653. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +0 -269
  654. package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +0 -510
  655. package/esm2022/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +0 -43
  656. package/esm2022/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +0 -43
  657. package/esm2022/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +0 -111
  658. package/esm2022/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +0 -79
  659. package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +0 -253
  660. package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +0 -697
  661. package/esm2022/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +0 -33
  662. package/esm2022/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +0 -125
  663. package/esm2022/lib/shared/components/palette/collection/collection-create-checker.service.mjs +0 -42
  664. package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +0 -78
  665. package/esm2022/lib/shared/components/palette/collection/write-collection-field.component.mjs +0 -447
  666. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +0 -378
  667. package/esm2022/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +0 -51
  668. package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +0 -76
  669. package/esm2022/lib/shared/components/palette/complex/read-complex-field.component.mjs +0 -71
  670. package/esm2022/lib/shared/components/palette/complex/write-complex-field.component.mjs +0 -173
  671. package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +0 -26
  672. package/esm2022/lib/shared/components/palette/date/write-date-container-field.component.mjs +0 -33
  673. package/esm2022/lib/shared/components/palette/date/write-date-field.component.mjs +0 -77
  674. package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +0 -312
  675. package/esm2022/lib/shared/components/palette/document/document-url.pipe.mjs +0 -25
  676. package/esm2022/lib/shared/components/palette/document/file-upload-progress.guard.mjs +0 -31
  677. package/esm2022/lib/shared/components/palette/document/file-upload-state.service.mjs +0 -17
  678. package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +0 -88
  679. package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +0 -430
  680. package/esm2022/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +0 -18
  681. package/esm2022/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +0 -37
  682. package/esm2022/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +0 -124
  683. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +0 -44
  684. package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +0 -146
  685. package/esm2022/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +0 -25
  686. package/esm2022/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +0 -43
  687. package/esm2022/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +0 -123
  688. package/esm2022/lib/shared/components/palette/email/read-email-field.component.mjs +0 -36
  689. package/esm2022/lib/shared/components/palette/email/write-email-field.component.mjs +0 -74
  690. package/esm2022/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +0 -23
  691. package/esm2022/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +0 -27
  692. package/esm2022/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +0 -107
  693. package/esm2022/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +0 -18
  694. package/esm2022/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +0 -27
  695. package/esm2022/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +0 -96
  696. package/esm2022/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +0 -17
  697. package/esm2022/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +0 -99
  698. package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +0 -224
  699. package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +0 -72
  700. package/esm2022/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +0 -49
  701. package/esm2022/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +0 -253
  702. package/esm2022/lib/shared/components/palette/label/label-field.component.mjs +0 -50
  703. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +0 -111
  704. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +0 -191
  705. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +0 -543
  706. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +0 -213
  707. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +0 -287
  708. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +0 -69
  709. package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +0 -209
  710. package/esm2022/lib/shared/components/palette/linked-cases/domain/linked-cases.model.mjs +0 -67
  711. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +0 -168
  712. package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +0 -138
  713. package/esm2022/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +0 -27
  714. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +0 -234
  715. package/esm2022/lib/shared/components/palette/markdown/markdown-component.module.mjs +0 -48
  716. package/esm2022/lib/shared/components/palette/markdown/markdown.component.mjs +0 -81
  717. package/esm2022/lib/shared/components/palette/markdown/routerlink.component.mjs +0 -25
  718. package/esm2022/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +0 -128
  719. package/esm2022/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +0 -50
  720. package/esm2022/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +0 -79
  721. package/esm2022/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +0 -46
  722. package/esm2022/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +0 -126
  723. package/esm2022/lib/shared/components/palette/number/read-number-field.component.mjs +0 -25
  724. package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +0 -74
  725. package/esm2022/lib/shared/components/palette/order-summary/fee-value.model.mjs +0 -4
  726. package/esm2022/lib/shared/components/palette/order-summary/fee.model.mjs +0 -8
  727. package/esm2022/lib/shared/components/palette/order-summary/order-summary.model.mjs +0 -6
  728. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +0 -74
  729. package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +0 -45
  730. package/esm2022/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +0 -45
  731. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +0 -88
  732. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +0 -92
  733. package/esm2022/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +0 -52
  734. package/esm2022/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +0 -35
  735. package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +0 -397
  736. package/esm2022/lib/shared/components/palette/palette.module.mjs +0 -736
  737. package/esm2022/lib/shared/components/palette/palette.service.mjs +0 -153
  738. package/esm2022/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +0 -25
  739. package/esm2022/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +0 -23
  740. package/esm2022/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +0 -74
  741. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +0 -44
  742. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +0 -150
  743. package/esm2022/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +0 -67
  744. package/esm2022/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +0 -61
  745. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +0 -292
  746. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +0 -330
  747. package/esm2022/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +0 -24
  748. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +0 -165
  749. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +0 -78
  750. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +0 -121
  751. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +0 -202
  752. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +0 -107
  753. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +0 -24
  754. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +0 -45
  755. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +0 -124
  756. package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +0 -22
  757. package/esm2022/lib/shared/components/palette/text/read-text-field.component.mjs +0 -25
  758. package/esm2022/lib/shared/components/palette/text/write-text-field.component.mjs +0 -78
  759. package/esm2022/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +0 -25
  760. package/esm2022/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +0 -89
  761. package/esm2022/lib/shared/components/palette/unsupported-field.component.mjs +0 -18
  762. package/esm2022/lib/shared/components/palette/utils/dash.pipe.mjs +0 -16
  763. package/esm2022/lib/shared/components/palette/utils/date.pipe.mjs +0 -133
  764. package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +0 -30
  765. package/esm2022/lib/shared/components/palette/utils/first-error.pipe.mjs +0 -65
  766. package/esm2022/lib/shared/components/palette/utils/is-compound.pipe.mjs +0 -43
  767. package/esm2022/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +0 -22
  768. package/esm2022/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +0 -32
  769. package/esm2022/lib/shared/components/palette/utils/is-read-only.pipe.mjs +0 -22
  770. package/esm2022/lib/shared/components/palette/utils/utils.module.mjs +0 -71
  771. package/esm2022/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +0 -35
  772. package/esm2022/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +0 -37
  773. package/esm2022/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +0 -102
  774. package/esm2022/lib/shared/components/palette/yes-no/yes-no.service.mjs +0 -50
  775. package/esm2022/lib/shared/components/search-filters/domain/search-input.model.mjs +0 -15
  776. package/esm2022/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +0 -63
  777. package/esm2022/lib/shared/components/search-filters/search-filters.component.mjs +0 -341
  778. package/esm2022/lib/shared/components/search-filters/search-filters.module.mjs +0 -71
  779. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +0 -822
  780. package/esm2022/lib/shared/components/search-result/search-result.module.mjs +0 -82
  781. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +0 -497
  782. package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +0 -67
  783. package/esm2022/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +0 -169
  784. package/esm2022/lib/shared/directives/conditional-show/conditional-show.module.mjs +0 -33
  785. package/esm2022/lib/shared/directives/conditional-show/domain/conditional-show.model.mjs +0 -201
  786. package/esm2022/lib/shared/directives/conditional-show/services/condition-parser.service.mjs +0 -200
  787. package/esm2022/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +0 -17
  788. package/esm2022/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +0 -48
  789. package/esm2022/lib/shared/directives/focus-element/focus-element.directive.mjs +0 -38
  790. package/esm2022/lib/shared/directives/focus-element/focus-element.module.mjs +0 -21
  791. package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +0 -88
  792. package/esm2022/lib/shared/directives/substitutor/label-substitutor.module.mjs +0 -30
  793. package/esm2022/lib/shared/directives/substitutor/services/placeholder.service.mjs +0 -209
  794. package/esm2022/lib/shared/domain/activity/activity.model.mjs +0 -17
  795. package/esm2022/lib/shared/domain/addresses/address.model.mjs +0 -11
  796. package/esm2022/lib/shared/domain/alert/alert.model.mjs +0 -5
  797. package/esm2022/lib/shared/domain/case-details.model.mjs +0 -13
  798. package/esm2022/lib/shared/domain/case-event-data.model.mjs +0 -11
  799. package/esm2022/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +0 -8
  800. package/esm2022/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +0 -10
  801. package/esm2022/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +0 -10
  802. package/esm2022/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +0 -125
  803. package/esm2022/lib/shared/domain/case-flag/flag-type.model.mjs +0 -37
  804. package/esm2022/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +0 -18
  805. package/esm2022/lib/shared/domain/case-view/case-event-trigger.model.mjs +0 -34
  806. package/esm2022/lib/shared/domain/case-view/case-print-document.model.mjs +0 -6
  807. package/esm2022/lib/shared/domain/case-view/case-tab.model.mjs +0 -17
  808. package/esm2022/lib/shared/domain/case-view/case-view-event.model.mjs +0 -16
  809. package/esm2022/lib/shared/domain/case-view/case-view-trigger.model.mjs +0 -7
  810. package/esm2022/lib/shared/domain/case-view/case-view.model.mjs +0 -27
  811. package/esm2022/lib/shared/domain/definition/access-control-list.model.mjs +0 -8
  812. package/esm2022/lib/shared/domain/definition/banner.model.mjs +0 -8
  813. package/esm2022/lib/shared/domain/definition/case-event.model.mjs +0 -11
  814. package/esm2022/lib/shared/domain/definition/case-field.model.mjs +0 -218
  815. package/esm2022/lib/shared/domain/definition/case-state.model.mjs +0 -7
  816. package/esm2022/lib/shared/domain/definition/case-type-lite.model.mjs +0 -10
  817. package/esm2022/lib/shared/domain/definition/case-type.model.mjs +0 -20
  818. package/esm2022/lib/shared/domain/definition/event-case-field.model.mjs +0 -6
  819. package/esm2022/lib/shared/domain/definition/field-type.model.mjs +0 -30
  820. package/esm2022/lib/shared/domain/definition/fixed-list-item.model.mjs +0 -6
  821. package/esm2022/lib/shared/domain/definition/jurisdiction.model.mjs +0 -8
  822. package/esm2022/lib/shared/domain/document/document-data.model.mjs +0 -28
  823. package/esm2022/lib/shared/domain/draft.model.mjs +0 -16
  824. package/esm2022/lib/shared/domain/http/http-error.model.mjs +0 -49
  825. package/esm2022/lib/shared/domain/organisation/organisation-converter.mjs +0 -42
  826. package/esm2022/lib/shared/domain/pagination-metadata.model.mjs +0 -5
  827. package/esm2022/lib/shared/domain/profile/profile.model.mjs +0 -33
  828. package/esm2022/lib/shared/domain/search/field.model.mjs +0 -17
  829. package/esm2022/lib/shared/domain/search/search-result-view-column.model.mjs +0 -9
  830. package/esm2022/lib/shared/domain/search/search-result-view-item.model.mjs +0 -18
  831. package/esm2022/lib/shared/domain/search/search-result-view.model.mjs +0 -26
  832. package/esm2022/lib/shared/domain/search/sorting/sort-parameters.mjs +0 -9
  833. package/esm2022/lib/shared/domain/workbasket/workbasket-input.model.mjs +0 -11
  834. package/esm2022/lib/shared/fixture/case-field-builder.mjs +0 -67
  835. package/esm2022/lib/shared/pipes/case-reference/case-reference.pipe.mjs +0 -33
  836. package/esm2022/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +0 -31
  837. package/esm2022/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +0 -32
  838. package/esm2022/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +0 -27
  839. package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +0 -39
  840. package/esm2022/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +0 -173
  841. package/esm2022/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +0 -31
  842. package/esm2022/lib/shared/pipes/complex/fields-filter.pipe.mjs +0 -105
  843. package/esm2022/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +0 -16
  844. package/esm2022/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +0 -28
  845. package/esm2022/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +0 -28
  846. package/esm2022/lib/shared/pipes/pipes.module.mjs +0 -64
  847. package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +0 -24
  848. package/esm2022/lib/shared/services/activity/activity.polling.service.mjs +0 -122
  849. package/esm2022/lib/shared/services/activity/activity.service.mjs +0 -85
  850. package/esm2022/lib/shared/services/addresses/address-parser.mjs +0 -76
  851. package/esm2022/lib/shared/services/addresses/addresses.service.mjs +0 -65
  852. package/esm2022/lib/shared/services/alert/alert.service.mjs +0 -157
  853. package/esm2022/lib/shared/services/auth/auth.service.mjs +0 -35
  854. package/esm2022/lib/shared/services/banners/banners.service.mjs +0 -35
  855. package/esm2022/lib/shared/services/browser/browser.service.mjs +0 -24
  856. package/esm2022/lib/shared/services/case-fields/case-field.service.mjs +0 -34
  857. package/esm2022/lib/shared/services/case-fields/format-translator.service.mjs +0 -242
  858. package/esm2022/lib/shared/services/case-file-view/case-file-view.service.mjs +0 -48
  859. package/esm2022/lib/shared/services/case-flag/case-flag-refdata.service.mjs +0 -104
  860. package/esm2022/lib/shared/services/common-data-service/common-data-service.mjs +0 -29
  861. package/esm2022/lib/shared/services/definitions/definitions.module.mjs +0 -19
  862. package/esm2022/lib/shared/services/definitions/definitions.service.mjs +0 -32
  863. package/esm2022/lib/shared/services/document-management/document-management.service.mjs +0 -114
  864. package/esm2022/lib/shared/services/draft/draft.service.mjs +0 -89
  865. package/esm2022/lib/shared/services/error/error-notifier.service.mjs +0 -16
  866. package/esm2022/lib/shared/services/eventStatusService/event-status.service.mjs +0 -21
  867. package/esm2022/lib/shared/services/fields/fields.purger.mjs +0 -305
  868. package/esm2022/lib/shared/services/fields/fields.utils.mjs +0 -615
  869. package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +0 -102
  870. package/esm2022/lib/shared/services/form/form-error.service.mjs +0 -46
  871. package/esm2022/lib/shared/services/form/form-validators.service.mjs +0 -82
  872. package/esm2022/lib/shared/services/form/form-value.service.mjs +0 -552
  873. package/esm2022/lib/shared/services/http/http-error.service.mjs +0 -67
  874. package/esm2022/lib/shared/services/http/http.service.mjs +0 -95
  875. package/esm2022/lib/shared/services/jurisdiction/jurisdiction.service.mjs +0 -35
  876. package/esm2022/lib/shared/services/loading/loading.module.mjs +0 -22
  877. package/esm2022/lib/shared/services/loading/loading.service.mjs +0 -31
  878. package/esm2022/lib/shared/services/navigation/navigation-notifier.service.mjs +0 -16
  879. package/esm2022/lib/shared/services/order/order.service.mjs +0 -37
  880. package/esm2022/lib/shared/services/organisation/organisation.service.mjs +0 -57
  881. package/esm2022/lib/shared/services/profile/profile.notifier.mjs +0 -17
  882. package/esm2022/lib/shared/services/profile/profile.service.mjs +0 -36
  883. package/esm2022/lib/shared/services/request/request.options.builder.mjs +0 -61
  884. package/esm2022/lib/shared/services/router/router-helper.service.mjs +0 -20
  885. package/esm2022/lib/shared/services/search/search.service.mjs +0 -96
  886. package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +0 -71
  887. package/esm2022/lib/shared/services/session/session-storage.service.mjs +0 -34
  888. package/esm2022/lib/shared/services/utils/retry/retry.service.mjs +0 -87
  889. package/esm2022/lib/shared/services/window/window.service.mjs +0 -40
  890. package/esm2022/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +0 -57
  891. package/esm2022/lib/shared/test/test-route-snapshot-builder.mjs +0 -38
  892. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +0 -37101
  893. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +0 -1
  894. /package/{esm2022 → esm2020}/hmcts-ccd-case-ui-toolkit.mjs +0 -0
  895. /package/{esm2022 → esm2020}/lib/components/banners/alert/index.mjs +0 -0
  896. /package/{esm2022 → esm2020}/lib/components/banners/index.mjs +0 -0
  897. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/domain/index.mjs +0 -0
  898. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/domain/notification-banner-config.model.mjs +0 -0
  899. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/enums/index.mjs +0 -0
  900. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/enums/notification-banner-style.enum.mjs +0 -0
  901. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/enums/notification-banner-type.enum.mjs +0 -0
  902. /package/{esm2022 → esm2020}/lib/components/banners/notification-banner/index.mjs +0 -0
  903. /package/{esm2022 → esm2020}/lib/components/body/index.mjs +0 -0
  904. /package/{esm2022 → esm2020}/lib/components/footer/index.mjs +0 -0
  905. /package/{esm2022 → esm2020}/lib/components/form/date-input/index.mjs +0 -0
  906. /package/{esm2022 → esm2020}/lib/components/form/index.mjs +0 -0
  907. /package/{esm2022 → esm2020}/lib/components/header/header-bar/index.mjs +0 -0
  908. /package/{esm2022 → esm2020}/lib/components/header/index.mjs +0 -0
  909. /package/{esm2022 → esm2020}/lib/components/header/navigation/index.mjs +0 -0
  910. /package/{esm2022 → esm2020}/lib/components/header/phase/index.mjs +0 -0
  911. /package/{esm2022 → esm2020}/lib/components/index.mjs +0 -0
  912. /package/{esm2022 → esm2020}/lib/components/tabs/index.mjs +0 -0
  913. /package/{esm2022 → esm2020}/lib/shared/commons/case-edit-data/case-edit-validation.model.mjs +0 -0
  914. /package/{esm2022 → esm2020}/lib/shared/commons/case-edit-data/index.mjs +0 -0
  915. /package/{esm2022 → esm2020}/lib/shared/components/activity/activity-banner/index.mjs +0 -0
  916. /package/{esm2022 → esm2020}/lib/shared/components/activity/activity-icon/index.mjs +0 -0
  917. /package/{esm2022 → esm2020}/lib/shared/components/activity/index.mjs +0 -0
  918. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-create/index.mjs +0 -0
  919. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit/index.mjs +0 -0
  920. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-confirm/index.mjs +0 -0
  921. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-form/index.mjs +0 -0
  922. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-page/index.mjs +0 -0
  923. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.mjs +0 -0
  924. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-edit-submit/index.mjs +0 -0
  925. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-event-completion/index.mjs +0 -0
  926. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/case-progress/index.mjs +0 -0
  927. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-params.model.mjs +0 -0
  928. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-portal-types.model.mjs +0 -0
  929. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-return-states.enum.model.mjs +0 -0
  930. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-state-machine-context.model.mjs +0 -0
  931. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/event-completion-states.enum.model.mjs +0 -0
  932. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/domain/index.mjs +0 -0
  933. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/editor.routing.mjs +0 -0
  934. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/index.mjs +0 -0
  935. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/services/index.mjs +0 -0
  936. /package/{esm2022 → esm2020}/lib/shared/components/case-editor/services/wizard-factory.service.mjs +0 -0
  937. /package/{esm2022 → esm2020}/lib/shared/components/case-header/index.mjs +0 -0
  938. /package/{esm2022 → esm2020}/lib/shared/components/case-history/index.mjs +0 -0
  939. /package/{esm2022 → esm2020}/lib/shared/components/case-list/index.mjs +0 -0
  940. /package/{esm2022 → esm2020}/lib/shared/components/case-list-filters/index.mjs +0 -0
  941. /package/{esm2022 → esm2020}/lib/shared/components/case-timeline/index.mjs +0 -0
  942. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-basic-access-view/index.mjs +0 -0
  943. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-request/index.mjs +0 -0
  944. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-request/models/case-challenged-access-request.enum.mjs +0 -0
  945. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-request/models/index.mjs +0 -0
  946. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-challenged-access-success/index.mjs +0 -0
  947. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-event-trigger/index.mjs +0 -0
  948. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-full-access-view/index.mjs +0 -0
  949. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-reject/index.mjs +0 -0
  950. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-request/index.mjs +0 -0
  951. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-request/models/case-review-specific-access-request.enum.mjs +0 -0
  952. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-review-specific-access-request/models/index.mjs +0 -0
  953. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-request/index.mjs +0 -0
  954. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.mjs +0 -0
  955. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-request/models/index.mjs +0 -0
  956. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-specific-access-success/index.mjs +0 -0
  957. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/case-view/index.mjs +0 -0
  958. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/index.mjs +0 -0
  959. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/printer/index.mjs +0 -0
  960. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/printer/pipes/index.mjs +0 -0
  961. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/services/index.mjs +0 -0
  962. /package/{esm2022 → esm2020}/lib/shared/components/case-viewer/viewer.routing.mjs +0 -0
  963. /package/{esm2022 → esm2020}/lib/shared/components/create-case-filters/index.mjs +0 -0
  964. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/delete-or-cancel-dialog/index.mjs +0 -0
  965. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/document-dialog/index.mjs +0 -0
  966. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/index.mjs +0 -0
  967. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/remove-dialog/index.mjs +0 -0
  968. /package/{esm2022 → esm2020}/lib/shared/components/dialogs/save-or-discard-dialog/index.mjs +0 -0
  969. /package/{esm2022 → esm2020}/lib/shared/components/error/domain/index.mjs +0 -0
  970. /package/{esm2022 → esm2020}/lib/shared/components/error/index.mjs +0 -0
  971. /package/{esm2022 → esm2020}/lib/shared/components/error-message/index.mjs +0 -0
  972. /package/{esm2022 → esm2020}/lib/shared/components/event-start/index.mjs +0 -0
  973. /package/{esm2022 → esm2020}/lib/shared/components/event-start/models/event-start-state-machine-context.model.mjs +0 -0
  974. /package/{esm2022 → esm2020}/lib/shared/components/event-start/models/event-start-states-enum.model.mjs +0 -0
  975. /package/{esm2022 → esm2020}/lib/shared/components/event-start/models/index.mjs +0 -0
  976. /package/{esm2022 → esm2020}/lib/shared/components/event-start/services/index.mjs +0 -0
  977. /package/{esm2022 → esm2020}/lib/shared/components/event-trigger/index.mjs +0 -0
  978. /package/{esm2022 → esm2020}/lib/shared/components/helpers/index.mjs +0 -0
  979. /package/{esm2022 → esm2020}/lib/shared/components/helpers/init-dialog-helper.mjs +0 -0
  980. /package/{esm2022 → esm2020}/lib/shared/components/index.mjs +0 -0
  981. /package/{esm2022 → esm2020}/lib/shared/components/loading-spinner/index.mjs +0 -0
  982. /package/{esm2022 → esm2020}/lib/shared/components/pagination/index.mjs +0 -0
  983. /package/{esm2022 → esm2020}/lib/shared/components/palette/address/index.mjs +0 -0
  984. /package/{esm2022 → esm2020}/lib/shared/components/palette/base-field/index.mjs +0 -0
  985. /package/{esm2022 → esm2020}/lib/shared/components/palette/base-field/palette-context.enum.mjs +0 -0
  986. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/components/index.mjs +0 -0
  987. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu-item.model.mjs +0 -0
  988. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/components/shared/index.mjs +0 -0
  989. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/index.mjs +0 -0
  990. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.mjs +0 -0
  991. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/components/index.mjs +0 -0
  992. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.mjs +0 -0
  993. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/case-flag-state.model.mjs +0 -0
  994. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/case-flag.model.mjs +0 -0
  995. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/index.mjs +0 -0
  996. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/domain/language.model.mjs +0 -0
  997. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.mjs +0 -0
  998. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.mjs +0 -0
  999. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.mjs +0 -0
  1000. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.mjs +0 -0
  1001. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.mjs +0 -0
  1002. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.mjs +0 -0
  1003. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.mjs +0 -0
  1004. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.mjs +0 -0
  1005. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.mjs +0 -0
  1006. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.mjs +0 -0
  1007. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/index.mjs +0 -0
  1008. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.mjs +0 -0
  1009. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.mjs +0 -0
  1010. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.mjs +0 -0
  1011. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.mjs +0 -0
  1012. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.mjs +0 -0
  1013. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.mjs +0 -0
  1014. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.mjs +0 -0
  1015. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.mjs +0 -0
  1016. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.mjs +0 -0
  1017. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.mjs +0 -0
  1018. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/index.mjs +0 -0
  1019. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-flag/pipes/index.mjs +0 -0
  1020. /package/{esm2022 → esm2020}/lib/shared/components/palette/case-link/index.mjs +0 -0
  1021. /package/{esm2022 → esm2020}/lib/shared/components/palette/collection/index.mjs +0 -0
  1022. /package/{esm2022 → esm2020}/lib/shared/components/palette/complex/index.mjs +0 -0
  1023. /package/{esm2022 → esm2020}/lib/shared/components/palette/complex/sort-order.mjs +0 -0
  1024. /package/{esm2022 → esm2020}/lib/shared/components/palette/date/index.mjs +0 -0
  1025. /package/{esm2022 → esm2020}/lib/shared/components/palette/datetime-picker/datetime-picker-utils.mjs +0 -0
  1026. /package/{esm2022 → esm2020}/lib/shared/components/palette/datetime-picker/index.mjs +0 -0
  1027. /package/{esm2022 → esm2020}/lib/shared/components/palette/document/index.mjs +0 -0
  1028. /package/{esm2022 → esm2020}/lib/shared/components/palette/dynamic-list/index.mjs +0 -0
  1029. /package/{esm2022 → esm2020}/lib/shared/components/palette/dynamic-multi-select-list/index.mjs +0 -0
  1030. /package/{esm2022 → esm2020}/lib/shared/components/palette/dynamic-radio-list/index.mjs +0 -0
  1031. /package/{esm2022 → esm2020}/lib/shared/components/palette/email/index.mjs +0 -0
  1032. /package/{esm2022 → esm2020}/lib/shared/components/palette/fixed-list/index.mjs +0 -0
  1033. /package/{esm2022 → esm2020}/lib/shared/components/palette/fixed-radio-list/index.mjs +0 -0
  1034. /package/{esm2022 → esm2020}/lib/shared/components/palette/history/event-log/index.mjs +0 -0
  1035. /package/{esm2022 → esm2020}/lib/shared/components/palette/history/index.mjs +0 -0
  1036. /package/{esm2022 → esm2020}/lib/shared/components/palette/index.mjs +0 -0
  1037. /package/{esm2022 → esm2020}/lib/shared/components/palette/judicial-user/index.mjs +0 -0
  1038. /package/{esm2022 → esm2020}/lib/shared/components/palette/label/index.mjs +0 -0
  1039. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/components/index.mjs +0 -0
  1040. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/domain/index.mjs +0 -0
  1041. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.mjs +0 -0
  1042. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/enums/index.mjs +0 -0
  1043. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.mjs +0 -0
  1044. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/index.mjs +0 -0
  1045. /package/{esm2022 → esm2020}/lib/shared/components/palette/linked-cases/services/index.mjs +0 -0
  1046. /package/{esm2022 → esm2020}/lib/shared/components/palette/markdown/index.mjs +0 -0
  1047. /package/{esm2022 → esm2020}/lib/shared/components/palette/money-gbp/index.mjs +0 -0
  1048. /package/{esm2022 → esm2020}/lib/shared/components/palette/multi-select-list/index.mjs +0 -0
  1049. /package/{esm2022 → esm2020}/lib/shared/components/palette/number/index.mjs +0 -0
  1050. /package/{esm2022 → esm2020}/lib/shared/components/palette/order-summary/index.mjs +0 -0
  1051. /package/{esm2022 → esm2020}/lib/shared/components/palette/organisation/index.mjs +0 -0
  1052. /package/{esm2022 → esm2020}/lib/shared/components/palette/payment/index.mjs +0 -0
  1053. /package/{esm2022 → esm2020}/lib/shared/components/palette/phone-uk/index.mjs +0 -0
  1054. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/__mocks__/index.mjs +0 -0
  1055. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/components/index.mjs +0 -0
  1056. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/index.mjs +0 -0
  1057. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.mjs +0 -0
  1058. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.mjs +0 -0
  1059. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.mjs +0 -0
  1060. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.mjs +0 -0
  1061. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/index.mjs +0 -0
  1062. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +0 -0
  1063. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/index.mjs +0 -0
  1064. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.mjs +0 -0
  1065. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.mjs +0 -0
  1066. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/query-create-context.enum.mjs +0 -0
  1067. /package/{esm2022 → esm2020}/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.mjs +0 -0
  1068. /package/{esm2022 → esm2020}/lib/shared/components/palette/text/index.mjs +0 -0
  1069. /package/{esm2022 → esm2020}/lib/shared/components/palette/text-area/index.mjs +0 -0
  1070. /package/{esm2022 → esm2020}/lib/shared/components/palette/utils/index.mjs +0 -0
  1071. /package/{esm2022 → esm2020}/lib/shared/components/palette/waystopay/index.mjs +0 -0
  1072. /package/{esm2022 → esm2020}/lib/shared/components/palette/yes-no/index.mjs +0 -0
  1073. /package/{esm2022 → esm2020}/lib/shared/components/search-filters/domain/index.mjs +0 -0
  1074. /package/{esm2022 → esm2020}/lib/shared/components/search-filters/index.mjs +0 -0
  1075. /package/{esm2022 → esm2020}/lib/shared/components/search-result/index.mjs +0 -0
  1076. /package/{esm2022 → esm2020}/lib/shared/components/workbasket-filters/index.mjs +0 -0
  1077. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/domain/index.mjs +0 -0
  1078. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/index.mjs +0 -0
  1079. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/services/condition.peg.mjs +0 -0
  1080. /package/{esm2022 → esm2020}/lib/shared/directives/conditional-show/services/index.mjs +0 -0
  1081. /package/{esm2022 → esm2020}/lib/shared/directives/focus-element/index.mjs +0 -0
  1082. /package/{esm2022 → esm2020}/lib/shared/directives/index.mjs +0 -0
  1083. /package/{esm2022 → esm2020}/lib/shared/directives/substitutor/index.mjs +0 -0
  1084. /package/{esm2022 → esm2020}/lib/shared/directives/substitutor/services/index.mjs +0 -0
  1085. /package/{esm2022 → esm2020}/lib/shared/domain/activity/index.mjs +0 -0
  1086. /package/{esm2022 → esm2020}/lib/shared/domain/addresses/index.mjs +0 -0
  1087. /package/{esm2022 → esm2020}/lib/shared/domain/alert/alert-level.model.mjs +0 -0
  1088. /package/{esm2022 → esm2020}/lib/shared/domain/alert/alert-status-params.model.mjs +0 -0
  1089. /package/{esm2022 → esm2020}/lib/shared/domain/alert/index.mjs +0 -0
  1090. /package/{esm2022 → esm2020}/lib/shared/domain/case-edit/case-edit.model.mjs +0 -0
  1091. /package/{esm2022 → esm2020}/lib/shared/domain/case-edit/index.mjs +0 -0
  1092. /package/{esm2022 → esm2020}/lib/shared/domain/case-file-view/case-file-view-sort-columns.enum.mjs +0 -0
  1093. /package/{esm2022 → esm2020}/lib/shared/domain/case-file-view/document-tree-node/document-tree-node-type.model.mjs +0 -0
  1094. /package/{esm2022 → esm2020}/lib/shared/domain/case-file-view/index.mjs +0 -0
  1095. /package/{esm2022 → esm2020}/lib/shared/domain/case-flag/index.mjs +0 -0
  1096. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/access-types.model.mjs +0 -0
  1097. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/case-view-event-ids.enum.mjs +0 -0
  1098. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/challenged-access-request.model.mjs +0 -0
  1099. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/index.mjs +0 -0
  1100. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/review-specific-access-request.model.mjs +0 -0
  1101. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/role-assignment-response.model.mjs +0 -0
  1102. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/role-request.model.mjs +0 -0
  1103. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/service-org-response.model.mjs +0 -0
  1104. /package/{esm2022 → esm2020}/lib/shared/domain/case-view/specific-access-request.model.mjs +0 -0
  1105. /package/{esm2022 → esm2020}/lib/shared/domain/definition/display-context-enum.model.mjs +0 -0
  1106. /package/{esm2022 → esm2020}/lib/shared/domain/definition/field-type-enum.model.mjs +0 -0
  1107. /package/{esm2022 → esm2020}/lib/shared/domain/definition/index.mjs +0 -0
  1108. /package/{esm2022 → esm2020}/lib/shared/domain/document/index.mjs +0 -0
  1109. /package/{esm2022 → esm2020}/lib/shared/domain/error-message.model.mjs +0 -0
  1110. /package/{esm2022 → esm2020}/lib/shared/domain/http/index.mjs +0 -0
  1111. /package/{esm2022 → esm2020}/lib/shared/domain/index.mjs +0 -0
  1112. /package/{esm2022 → esm2020}/lib/shared/domain/jurisdiction/index.mjs +0 -0
  1113. /package/{esm2022 → esm2020}/lib/shared/domain/jurisdiction/judicial-user.model.mjs +0 -0
  1114. /package/{esm2022 → esm2020}/lib/shared/domain/order/index.mjs +0 -0
  1115. /package/{esm2022 → esm2020}/lib/shared/domain/order/orderable.model.mjs +0 -0
  1116. /package/{esm2022 → esm2020}/lib/shared/domain/organisation/index.mjs +0 -0
  1117. /package/{esm2022 → esm2020}/lib/shared/domain/organisation/simple-organisation.model.mjs +0 -0
  1118. /package/{esm2022 → esm2020}/lib/shared/domain/predicate.model.mjs +0 -0
  1119. /package/{esm2022 → esm2020}/lib/shared/domain/profile/index.mjs +0 -0
  1120. /package/{esm2022 → esm2020}/lib/shared/domain/search/index.mjs +0 -0
  1121. /package/{esm2022 → esm2020}/lib/shared/domain/search/sorting/search-result-view-item-comparator.mjs +0 -0
  1122. /package/{esm2022 → esm2020}/lib/shared/domain/sort-order.enum.mjs +0 -0
  1123. /package/{esm2022 → esm2020}/lib/shared/domain/user/user-details.model.mjs +0 -0
  1124. /package/{esm2022 → esm2020}/lib/shared/domain/user/user-info.model.mjs +0 -0
  1125. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/Task.mjs +0 -0
  1126. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/TaskPayload.mjs +0 -0
  1127. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/case-worker.model.mjs +0 -0
  1128. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/index.mjs +0 -0
  1129. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/judicial-worker.model.mjs +0 -0
  1130. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/task-response.model.mjs +0 -0
  1131. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/task-search-parameter.model.mjs +0 -0
  1132. /package/{esm2022 → esm2020}/lib/shared/domain/work-allocation/wa-service-config.model.mjs +0 -0
  1133. /package/{esm2022 → esm2020}/lib/shared/domain/workbasket/index.mjs +0 -0
  1134. /package/{esm2022 → esm2020}/lib/shared/fixture/shared.test.fixture.mjs +0 -0
  1135. /package/{esm2022 → esm2020}/lib/shared/index.mjs +0 -0
  1136. /package/{esm2022 → esm2020}/lib/shared/pipes/case-reference/index.mjs +0 -0
  1137. /package/{esm2022 → esm2020}/lib/shared/pipes/case-title/index.mjs +0 -0
  1138. /package/{esm2022 → esm2020}/lib/shared/pipes/complex/index.mjs +0 -0
  1139. /package/{esm2022 → esm2020}/lib/shared/pipes/generic/index.mjs +0 -0
  1140. /package/{esm2022 → esm2020}/lib/shared/pipes/index.mjs +0 -0
  1141. /package/{esm2022 → esm2020}/lib/shared/pipes/link-cases-from-reason-code/index.mjs +0 -0
  1142. /package/{esm2022 → esm2020}/lib/shared/pipes/link-cases-reason-code/index.mjs +0 -0
  1143. /package/{esm2022 → esm2020}/lib/shared/services/activity/index.mjs +0 -0
  1144. /package/{esm2022 → esm2020}/lib/shared/services/addresses/address-type.enum.mjs +0 -0
  1145. /package/{esm2022 → esm2020}/lib/shared/services/addresses/index.mjs +0 -0
  1146. /package/{esm2022 → esm2020}/lib/shared/services/alert/index.mjs +0 -0
  1147. /package/{esm2022 → esm2020}/lib/shared/services/auth/index.mjs +0 -0
  1148. /package/{esm2022 → esm2020}/lib/shared/services/banners/index.mjs +0 -0
  1149. /package/{esm2022 → esm2020}/lib/shared/services/browser/index.mjs +0 -0
  1150. /package/{esm2022 → esm2020}/lib/shared/services/case-fields/index.mjs +0 -0
  1151. /package/{esm2022 → esm2020}/lib/shared/services/case-file-view/index.mjs +0 -0
  1152. /package/{esm2022 → esm2020}/lib/shared/services/case-flag/index.mjs +0 -0
  1153. /package/{esm2022 → esm2020}/lib/shared/services/case-flag/refdata-case-flag-type.enum.mjs +0 -0
  1154. /package/{esm2022 → esm2020}/lib/shared/services/definitions/index.mjs +0 -0
  1155. /package/{esm2022 → esm2020}/lib/shared/services/document-management/index.mjs +0 -0
  1156. /package/{esm2022 → esm2020}/lib/shared/services/draft/index.mjs +0 -0
  1157. /package/{esm2022 → esm2020}/lib/shared/services/error/index.mjs +0 -0
  1158. /package/{esm2022 → esm2020}/lib/shared/services/eventStatusService/index.mjs +0 -0
  1159. /package/{esm2022 → esm2020}/lib/shared/services/fields/index.mjs +0 -0
  1160. /package/{esm2022 → esm2020}/lib/shared/services/form/index.mjs +0 -0
  1161. /package/{esm2022 → esm2020}/lib/shared/services/http/index.mjs +0 -0
  1162. /package/{esm2022 → esm2020}/lib/shared/services/index.mjs +0 -0
  1163. /package/{esm2022 → esm2020}/lib/shared/services/jurisdiction/index.mjs +0 -0
  1164. /package/{esm2022 → esm2020}/lib/shared/services/loading/index.mjs +0 -0
  1165. /package/{esm2022 → esm2020}/lib/shared/services/navigation/index.mjs +0 -0
  1166. /package/{esm2022 → esm2020}/lib/shared/services/navigation/navigation-origin.model.mjs +0 -0
  1167. /package/{esm2022 → esm2020}/lib/shared/services/order/index.mjs +0 -0
  1168. /package/{esm2022 → esm2020}/lib/shared/services/organisation/index.mjs +0 -0
  1169. /package/{esm2022 → esm2020}/lib/shared/services/profile/index.mjs +0 -0
  1170. /package/{esm2022 → esm2020}/lib/shared/services/request/index.mjs +0 -0
  1171. /package/{esm2022 → esm2020}/lib/shared/services/router/index.mjs +0 -0
  1172. /package/{esm2022 → esm2020}/lib/shared/services/search/index.mjs +0 -0
  1173. /package/{esm2022 → esm2020}/lib/shared/services/session/index.mjs +0 -0
  1174. /package/{esm2022 → esm2020}/lib/shared/services/utils/retry/index.mjs +0 -0
  1175. /package/{esm2022 → esm2020}/lib/shared/services/window/index.mjs +0 -0
  1176. /package/{esm2022 → esm2020}/lib/shared/services/workbasket/index.mjs +0 -0
  1177. /package/{esm2022 → esm2020}/public-api.mjs +0 -0
@@ -0,0 +1,615 @@
1
+ import { CurrencyPipe } from '@angular/common';
2
+ import { Injectable } from '@angular/core';
3
+ import { FormArray, FormControl, FormGroup } from '@angular/forms';
4
+ import { plainToClassFromExist } from 'class-transformer';
5
+ import { CaseFlagDisplayContextParameter, CaseFlagStatus } from '../../components/palette/case-flag/enums';
6
+ import { DatePipe } from '../../components/palette/utils';
7
+ import { CaseField } from '../../domain';
8
+ import { FormatTranslatorService } from '../case-fields/format-translator.service';
9
+ import * as i0 from "@angular/core";
10
+ // @dynamic
11
+ export class FieldsUtils {
12
+ static isValidDisplayContext(ctx) {
13
+ return (ctx === 'MANDATORY' || ctx === 'READONLY'
14
+ || ctx === 'OPTIONAL' || ctx === 'HIDDEN'
15
+ || ctx === 'COMPLEX');
16
+ }
17
+ static convertToCaseField(obj) {
18
+ if (!(obj instanceof CaseField)) {
19
+ return plainToClassFromExist(new CaseField(), obj);
20
+ }
21
+ return obj;
22
+ }
23
+ static toValuesMap(caseFields) {
24
+ const valueMap = {};
25
+ caseFields.forEach(field => {
26
+ valueMap[field.id] = FieldsUtils.prepareValue(field);
27
+ });
28
+ return valueMap;
29
+ }
30
+ // public static getType(elem: any): string {
31
+ // return Object.prototype.toString.call(elem).slice(8, -1);
32
+ // }
33
+ static isObject(elem) {
34
+ return typeof elem === 'object' && elem !== null;
35
+ }
36
+ static isNonEmptyObject(elem) {
37
+ return this.isObject(elem) && Object.keys(elem).length !== 0;
38
+ }
39
+ static isArray(elem) {
40
+ return Array.isArray(elem);
41
+ }
42
+ static areCollectionValuesSimpleFields(fieldValue) {
43
+ return !this.isObject(fieldValue[0]['value']) && !Array.isArray(fieldValue[0]['value']) && fieldValue[0]['value'] !== undefined;
44
+ }
45
+ static isCollectionOfSimpleTypes(fieldValue) {
46
+ return this.isCollection(fieldValue) && this.areCollectionValuesSimpleFields(fieldValue);
47
+ }
48
+ static isMultiSelectValue(form) {
49
+ return this.isNonEmptyArray(form) && !this.isCollectionWithValue(form);
50
+ }
51
+ static isNonEmptyArray(pageFormFields) {
52
+ return Array.isArray(pageFormFields) && pageFormFields[0] !== undefined;
53
+ }
54
+ static isCollection(pageFormFields) {
55
+ return this.isNonEmptyArray(pageFormFields) && this.isCollectionWithValue(pageFormFields);
56
+ }
57
+ static isCollectionWithValue(pageFormFields) {
58
+ return pageFormFields[0]['value'] !== undefined;
59
+ }
60
+ static cloneObject(obj) {
61
+ return Object.assign({}, obj);
62
+ }
63
+ // temporary function until this can be moved to CaseView class (RDM-2681)
64
+ static getCaseFields(caseView) {
65
+ const caseDataFields = caseView.tabs.reduce((acc, tab) => {
66
+ return acc.concat(tab.fields);
67
+ }, []);
68
+ const metadataFields = caseView.metadataFields;
69
+ return metadataFields.concat(caseDataFields.filter((caseField) => {
70
+ return metadataFields.findIndex(metadataField => metadataField.id === caseField.id) < 0;
71
+ }));
72
+ }
73
+ static addCaseFieldAndComponentReferences(c, cf, comp) {
74
+ c['caseField'] = cf;
75
+ c['component'] = comp;
76
+ }
77
+ /**
78
+ * Recursive check of an array or object and its descendants for the presence of any non-empty values.
79
+ *
80
+ * @param object The array or object to check
81
+ * @returns `true` if the array or object (or a descendant) contains at least one non-empty value; `false` otherwise
82
+ */
83
+ static containsNonEmptyValues(object) {
84
+ if (!object) {
85
+ return false;
86
+ }
87
+ const values = Object.keys(object).map(key => object[key]);
88
+ const objectRefs = [];
89
+ // Also test for numeric values, and length > 0 for non-numeric values because this covers both strings and arrays.
90
+ // Note: Deliberate use of non-equality (!=) operator for null check, to handle both null and undefined values.
91
+ // tslint:disable-next-line: triple-equals
92
+ const hasNonNullPrimitive = values.some(x => (x != null &&
93
+ ((typeof x === 'object' && x.constructor === Object) || Array.isArray(x)
94
+ ? !objectRefs.push(x)
95
+ : typeof x === 'number' || x.length > 0)));
96
+ return !hasNonNullPrimitive ? objectRefs.some(y => this.containsNonEmptyValues(y)) : hasNonNullPrimitive;
97
+ }
98
+ /**
99
+ * handleNestedDynamicLists()
100
+ * Reassigns list_item and value data to DynamicList children
101
+ * down the tree. Server response returns data only in
102
+ * the `value` object of parent complex type
103
+ *
104
+ * EUI-2530 Dynamic Lists for Elements in a Complex Type
105
+ *
106
+ * @param jsonBody - { case_fields: [ CaseField, CaseField ] }
107
+ */
108
+ static handleNestedDynamicLists(jsonBody) {
109
+ if (jsonBody.case_fields) {
110
+ jsonBody.case_fields.forEach(caseField => {
111
+ if (caseField.field_type) {
112
+ this.setDynamicListDefinition(caseField, caseField.field_type, caseField);
113
+ }
114
+ });
115
+ }
116
+ return jsonBody;
117
+ }
118
+ static prepareValue(field) {
119
+ if (field.value) {
120
+ return field.value;
121
+ }
122
+ else if (field.isComplex()) {
123
+ const valueMap = {};
124
+ field.field_type.complex_fields.forEach(complexField => {
125
+ valueMap[complexField.id] = FieldsUtils.prepareValue(complexField);
126
+ });
127
+ return valueMap;
128
+ }
129
+ }
130
+ /**
131
+ * Formats a `MoneyGBP` value to include currency units.
132
+ * @param fieldValue The CurrencyPipe expects an `any` parameter so this must also be `any`,
133
+ * but it should be "number-like" (e.g., '1234')
134
+ * @returns A formatted string (e.g., £12.34)
135
+ */
136
+ static getMoneyGBP(fieldValue) {
137
+ return fieldValue ? FieldsUtils.currencyPipe.transform(fieldValue / 100, 'GBP', 'symbol') : fieldValue;
138
+ }
139
+ static getLabel(fieldValue) {
140
+ return fieldValue ? fieldValue.label : '';
141
+ }
142
+ static getDate(fieldValue) {
143
+ try {
144
+ // Format specified here wasn't previously working and lots of tests depend on it not working
145
+ // Now that formats work correctly many test would break - and this could affect services which may depend on
146
+ // the orginal behaviour of returning dates in "d MMM yyyy"
147
+ // Note - replaced 'd' with 'D' as datepipe using moment to avoid timezone discrepancies
148
+ return FieldsUtils.datePipe.transform(fieldValue, null, 'D MMM yyyy');
149
+ }
150
+ catch (e) {
151
+ return this.textForInvalidField('Date', fieldValue);
152
+ }
153
+ }
154
+ static getFixedListLabelByCodeOrEmpty(field, code) {
155
+ const relevantItem = code ? field.field_type.fixed_list_items.find(item => item.code === code) : null;
156
+ return relevantItem ? relevantItem.label : '';
157
+ }
158
+ static textForInvalidField(type, invalidValue) {
159
+ return `{ Invalid ${type}: ${invalidValue} }`;
160
+ }
161
+ static setDynamicListDefinition(caseField, caseFieldType, rootCaseField) {
162
+ if (caseFieldType.type === FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COMPLEX) {
163
+ caseFieldType.complex_fields.forEach(field => {
164
+ try {
165
+ const isDynamicField = FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE.indexOf(field.field_type.type) !== -1;
166
+ if (isDynamicField) {
167
+ const dynamicListValue = this.getDynamicListValue(rootCaseField.value, field.id);
168
+ if (dynamicListValue) {
169
+ const list_items = dynamicListValue[0].list_items;
170
+ const complexValue = dynamicListValue.map(data => data.value);
171
+ const value = {
172
+ list_items,
173
+ value: complexValue.length > 0 ? complexValue : undefined
174
+ };
175
+ field.value = {
176
+ ...value
177
+ };
178
+ field.formatted_value = {
179
+ ...field.formatted_value,
180
+ ...value
181
+ };
182
+ }
183
+ }
184
+ else {
185
+ this.setDynamicListDefinition(field, field.field_type, rootCaseField);
186
+ }
187
+ }
188
+ catch (error) {
189
+ console.log(error);
190
+ }
191
+ });
192
+ }
193
+ else if (caseFieldType.type === FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COLLECTION) {
194
+ if (caseFieldType.collection_field_type) {
195
+ this.setDynamicListDefinition(caseField, caseFieldType.collection_field_type, rootCaseField);
196
+ }
197
+ }
198
+ }
199
+ static getDynamicListValue(jsonBlock, key) {
200
+ const data = jsonBlock ? this.getNestedFieldValues(jsonBlock, key, []) : [];
201
+ return data.length > 0 ? data : null;
202
+ }
203
+ static getNestedFieldValues(jsonData, key, output = []) {
204
+ if (jsonData && jsonData[key]) {
205
+ output.push(jsonData[key]);
206
+ }
207
+ else {
208
+ for (const elementKey in jsonData) {
209
+ if (typeof jsonData === 'object' && jsonData.hasOwnProperty(elementKey)) {
210
+ this.getNestedFieldValues(jsonData[elementKey], key, output);
211
+ }
212
+ }
213
+ }
214
+ return output;
215
+ }
216
+ static isFlagsCaseField(caseField) {
217
+ if (!caseField) {
218
+ return false;
219
+ }
220
+ return this.isFlagsFieldType(caseField.field_type);
221
+ }
222
+ /**
223
+ * @deprecated Use {@link isCaseFieldOfType} instead, passing 'FlagLauncher' as the single type in the `types` array
224
+ */
225
+ static isFlagLauncherCaseField(caseField) {
226
+ if (!caseField) {
227
+ return false;
228
+ }
229
+ return caseField.field_type.type === 'FlagLauncher';
230
+ }
231
+ /**
232
+ * @deprecated Use {@link isCaseFieldOfType} instead, passing 'ComponentLauncher' as the single type in the `types`
233
+ * array
234
+ */
235
+ static isComponentLauncherCaseField(caseField) {
236
+ if (!caseField) {
237
+ return false;
238
+ }
239
+ return caseField.field_type.type === 'ComponentLauncher';
240
+ }
241
+ /**
242
+ * Checks if a {@link CaseField} is of one of the given field types.
243
+ *
244
+ * @param caseField The `CaseField` to check
245
+ * @param types An array of one or more field types
246
+ * @returns `true` if the `CaseField` type is one of those in the array of types to check against; `false`
247
+ * otherwise or if `caseField` or `types` are falsy
248
+ */
249
+ static isCaseFieldOfType(caseField, types) {
250
+ if (!caseField || !types) {
251
+ return false;
252
+ }
253
+ return types.some(type => type === caseField.field_type.type || type === caseField.field_type.id);
254
+ }
255
+ static isLinkedCasesCaseField(caseField) {
256
+ return FieldsUtils.isComponentLauncherCaseField(caseField) &&
257
+ caseField.id === 'LinkedCasesComponentLauncher';
258
+ }
259
+ static containsLinkedCasesCaseField(caseFields) {
260
+ return caseFields?.some(caseField => FieldsUtils.isLinkedCasesCaseField(caseField));
261
+ }
262
+ static isFlagsFieldType(fieldType) {
263
+ if (!fieldType) {
264
+ return false;
265
+ }
266
+ // Note: This implementation supports the dummy field type ID of "CaseFlag" for testing and the real field type
267
+ // ID of "Flags"
268
+ return (fieldType.type === 'Complex' && (fieldType.id === 'CaseFlag' || fieldType.id === 'Flags'));
269
+ }
270
+ /**
271
+ * Extract flags data from a `CaseField` instance, recursing and iterating through sub-fields of a Complex field or
272
+ * each field in a Collection field.
273
+ *
274
+ * @param flags An array for accumulating extracted flags data and derived `FormGroup` paths
275
+ * @param caseField A `CaseField` instance from which to extract the flags data
276
+ * @param pathToFlagsFormGroup A (dot-delimited) string for concatenating the name of each control that forms the path
277
+ * to the `FormGroup` for the `Flags` instance
278
+ * @param topLevelCaseField The top-level `CaseField` that contains the value property. This is required because _only
279
+ * top-level_ `CaseField`s contain actual values and a reference needs to be maintained to such a field
280
+ * @param currentValue The current value object of a `CaseField` that is a sub-field of a non root-level Complex field.
281
+ * Required for mapping the `CaseField` value to a `Flags` object if it is a "Flags" `CaseField`. (For Complex types,
282
+ * only the _root-level_ `CaseField` contains a value property - all sub-fields, including any nested Complex fields,
283
+ * do *not* contain any values themselves.)
284
+ * @returns An array of `FlagsWithFormGroupPath`, each instance comprising a `Flags` object derived from a `CaseField`
285
+ * of type "Flags", and the dot-delimited path string to the corresponding `FormGroup`
286
+ */
287
+ static extractFlagsDataFromCaseField(flags, caseField, pathToFlagsFormGroup, topLevelCaseField, currentValue) {
288
+ const fieldType = caseField.field_type;
289
+ switch (fieldType.type) {
290
+ case 'Complex':
291
+ // If the field is a Flags CaseField (these are implemented as Complex types), it can be mapped to a Flags
292
+ // object immediately
293
+ if (FieldsUtils.isFlagsCaseField(caseField)) {
294
+ // If the Flags CaseField has a value, it is a root-level Complex field; if it does not, it is a Flags
295
+ // CaseField that is a sub-field within another Complex field, so use the currentValue value (if any)
296
+ // instead. The exception to this is the "caseFlags" Flags CaseField, which will have an empty object value
297
+ // initially, because no party name is required
298
+ if (caseField.value && FieldsUtils.isNonEmptyObject(caseField.value) ||
299
+ caseField.id === this.caseLevelCaseFlagsFieldId) {
300
+ flags.push(this.mapCaseFieldToFlagsWithFormGroupPathObject(caseField, pathToFlagsFormGroup));
301
+ }
302
+ else if (currentValue && FieldsUtils.isNonEmptyObject(currentValue)) {
303
+ pathToFlagsFormGroup += `.${caseField.id}`;
304
+ flags.push(this.mapValueToFlagsWithFormGroupPathObject(caseField.id, currentValue, pathToFlagsFormGroup, topLevelCaseField));
305
+ }
306
+ }
307
+ else if (fieldType.complex_fields) {
308
+ const value = caseField.value ? caseField.value : currentValue;
309
+ if (value && FieldsUtils.isNonEmptyObject(value)) {
310
+ flags = fieldType.complex_fields.reduce((flagsOfComplexField, subField) => {
311
+ return this.extractFlagsDataFromCaseField(flagsOfComplexField, subField, pathToFlagsFormGroup, topLevelCaseField, value[subField.id]);
312
+ }, flags);
313
+ }
314
+ }
315
+ break;
316
+ // For a Collection field, the values are stored directly as key-value pairs in the CaseField's value property
317
+ // as an array, unless the collection is a sub-field of a Complex type - sub-fields never contain values
318
+ case 'Collection':
319
+ // If this is a collection of Flags CaseFields, these can be mapped to Flags objects immediately
320
+ if (FieldsUtils.isFlagsFieldType(fieldType.collection_field_type)) {
321
+ // If the Collection CaseField has a value (an array), it is a root-level Collection field; if it does not,
322
+ // it is a Collection CaseField that is a sub-field within a Complex field, so use the currentValue value
323
+ // (if any) instead
324
+ const pathFragment = pathToFlagsFormGroup += '.index.value';
325
+ if (caseField.value) {
326
+ caseField.value.forEach((item, index) => {
327
+ // At each iteration, replace the "index" placeholder with the actual index
328
+ pathToFlagsFormGroup = pathFragment.replace('index', index.toString(10));
329
+ flags.push(this.mapValueToFlagsWithFormGroupPathObject(item.id, item.value, pathToFlagsFormGroup, caseField));
330
+ });
331
+ }
332
+ else if (currentValue) {
333
+ currentValue.forEach((item, index) => {
334
+ pathToFlagsFormGroup = pathFragment.replace('index', index.toString(10));
335
+ flags.push(this.mapValueToFlagsWithFormGroupPathObject(item.id, item.value, pathToFlagsFormGroup, topLevelCaseField));
336
+ });
337
+ }
338
+ }
339
+ else if (fieldType.collection_field_type.type === 'Complex' && fieldType.collection_field_type.complex_fields) {
340
+ if (caseField.value) {
341
+ // Perform a reduction over each Complex field's sub-fields (similar to what is done above for non-Flags
342
+ // Complex fields)
343
+ // (Cannot just call this function recursively for each Complex field in the collection because the CaseField
344
+ // for each one is not part of the collection)
345
+ const pathFragment = pathToFlagsFormGroup += '.index.value';
346
+ caseField.value.forEach((item, index) => {
347
+ // At each iteration, replace the "index" placeholder with the actual index
348
+ pathToFlagsFormGroup = pathFragment.replace('index', index.toString(10));
349
+ flags = fieldType.collection_field_type.complex_fields.reduce((flagsOfComplexField, subField) => {
350
+ return this.extractFlagsDataFromCaseField(flagsOfComplexField, subField, pathToFlagsFormGroup, topLevelCaseField, item.value[subField.id]);
351
+ }, flags);
352
+ });
353
+ }
354
+ }
355
+ break;
356
+ default:
357
+ // Ignore all other field types
358
+ }
359
+ return flags;
360
+ }
361
+ static mapCaseFieldToFlagsWithFormGroupPathObject(caseField, pathToFlagsFormGroup) {
362
+ return this.mapValueToFlagsWithFormGroupPathObject(caseField.id, caseField.value, pathToFlagsFormGroup, caseField);
363
+ }
364
+ static mapValueToFlagsWithFormGroupPathObject(id, value, pathToFlagsFormGroup, caseField) {
365
+ return {
366
+ flags: {
367
+ flagsCaseFieldId: id,
368
+ partyName: value ? value['partyName'] : null,
369
+ roleOnCase: value ? value['roleOnCase'] : null,
370
+ details: value && value['details'] && value['details'].length > 0
371
+ ? value['details'].map(detail => {
372
+ return Object.assign({}, ...Object.keys(detail.value).map((k) => {
373
+ // The id property set below will be null for a new case flag, and a unique id returned from CCD when
374
+ // updating an existing flag
375
+ switch (k) {
376
+ // These two fields are date-time fields
377
+ case 'dateTimeModified':
378
+ case 'dateTimeCreated':
379
+ return { [k]: detail.value[k] ? new Date(detail.value[k]) : null, id: detail.id };
380
+ // This field is a "yes/no" field
381
+ case 'hearingRelevant':
382
+ return detail.value[k].toUpperCase() === 'YES' ? { [k]: true, id: detail.id } : { [k]: false, id: detail.id };
383
+ default:
384
+ return { [k]: detail.value[k], id: detail.id };
385
+ }
386
+ }));
387
+ })
388
+ : null,
389
+ visibility: value ? value['visibility'] : null,
390
+ groupId: value ? value['groupId'] : null
391
+ },
392
+ pathToFlagsFormGroup,
393
+ caseField
394
+ };
395
+ }
396
+ /**
397
+ * Count active flags in a `CaseField` instance, recursing and iterating through sub-fields of a Complex field or each
398
+ * field in a Collection field.
399
+ *
400
+ * @param activeCount An accumulation of the total number of active flags
401
+ * @param caseField A `CaseField` instance for which to count the active flags
402
+ * @param currentValue The current value object of a `CaseField` that is a sub-field of a non root-level Complex field.
403
+ * (For Complex types, only the _root-level_ `CaseField` contains a value property - all sub-fields, including any
404
+ * nested Complex fields, do *not* contain any values themselves.)
405
+ * @returns The count of active flags
406
+ */
407
+ static countActiveFlagsInCaseField(activeCount, caseField, currentValue) {
408
+ const fieldType = caseField.field_type;
409
+ switch (fieldType.type) {
410
+ case 'Complex':
411
+ if (FieldsUtils.isFlagsCaseField(caseField)) {
412
+ // If the Flags CaseField has a value, it is a root-level Complex field; if it does not, it is a Flags
413
+ // CaseField that is a sub-field within another Complex field, so use the currentValue value (if any) instead
414
+ const value = caseField.value ? caseField.value : currentValue;
415
+ if (value && FieldsUtils.isNonEmptyObject(value) && value.details) {
416
+ activeCount = value.details.reduce((count, detail) => detail.value.status === CaseFlagStatus.ACTIVE ? count + 1 : count, activeCount);
417
+ }
418
+ }
419
+ else if (fieldType.complex_fields) {
420
+ const value = caseField.value ? caseField.value : currentValue;
421
+ if (value && FieldsUtils.isNonEmptyObject(value)) {
422
+ activeCount = fieldType.complex_fields.reduce((activeFlagsCountOfComplexField, subField) => {
423
+ return this.countActiveFlagsInCaseField(activeFlagsCountOfComplexField, subField, value[subField.id]);
424
+ }, activeCount);
425
+ }
426
+ }
427
+ break;
428
+ // For a Collection field, the values are stored directly as key-value pairs in the CaseField's value property
429
+ // as an array, unless the collection is a sub-field of a Complex type - sub-fields never contain values
430
+ case 'Collection':
431
+ if (FieldsUtils.isFlagsFieldType(fieldType.collection_field_type)) {
432
+ // If the Collection CaseField has a value (an array), it is a root-level Collection field; if it does not,
433
+ // it is a Collection CaseField that is a sub-field within a Complex field, so use the currentValue value
434
+ // (if any) instead
435
+ const value = caseField.value ? caseField.value : currentValue;
436
+ if (value) {
437
+ value.forEach((item) => {
438
+ if (item.value['details']) {
439
+ activeCount = item.value['details'].reduce((count, detail) => detail.value.status === CaseFlagStatus.ACTIVE ? count + 1 : count, activeCount);
440
+ }
441
+ });
442
+ }
443
+ }
444
+ else if (fieldType.collection_field_type.type === 'Complex' && fieldType.collection_field_type.complex_fields) {
445
+ if (caseField.value) {
446
+ // Perform a reduction over each Complex field's sub-fields (similar to what is done above for non-Flags
447
+ // Complex fields)
448
+ // (Cannot just call this function recursively for each Complex field in the collection because the CaseField
449
+ // for each one is not part of the collection)
450
+ caseField.value.forEach((item) => {
451
+ activeCount = fieldType.collection_field_type.complex_fields.reduce((activeFlagsCountOfComplexField, subField) => {
452
+ return this.countActiveFlagsInCaseField(activeFlagsCountOfComplexField, subField, item.value[subField.id]);
453
+ }, activeCount);
454
+ });
455
+ }
456
+ }
457
+ break;
458
+ default:
459
+ // Ignore all other field types
460
+ }
461
+ return activeCount;
462
+ }
463
+ static getValidationErrorMessageForFlagLauncherCaseField(caseField) {
464
+ switch (caseField.display_context_parameter) {
465
+ case CaseFlagDisplayContextParameter.CREATE:
466
+ case CaseFlagDisplayContextParameter.CREATE_2_POINT_1:
467
+ return 'Please select Next to complete the creation of the case flag';
468
+ case CaseFlagDisplayContextParameter.CREATE_EXTERNAL:
469
+ return 'Please select Next to complete the creation of the support request';
470
+ case CaseFlagDisplayContextParameter.UPDATE:
471
+ case CaseFlagDisplayContextParameter.UPDATE_2_POINT_1:
472
+ return 'Please select Next to complete the update of the selected case flag';
473
+ case CaseFlagDisplayContextParameter.UPDATE_EXTERNAL:
474
+ return 'Please select Next to complete the update of the selected support request';
475
+ default:
476
+ return '';
477
+ }
478
+ }
479
+ buildCanShowPredicate(eventTrigger, form) {
480
+ const currentState = this.getCurrentEventState(eventTrigger, form);
481
+ return (page) => {
482
+ return page.parsedShowCondition.match(currentState);
483
+ };
484
+ }
485
+ getCurrentEventState(eventTrigger, form) {
486
+ return this.mergeCaseFieldsAndFormFields(eventTrigger.case_fields, form.controls['data'].value);
487
+ }
488
+ cloneCaseField(obj) {
489
+ return Object.assign(new CaseField(), obj);
490
+ }
491
+ mergeCaseFieldsAndFormFields(caseFields, formFields) {
492
+ return this.mergeFields(caseFields, formFields, FieldsUtils.DEFAULT_MERGE_FUNCTION);
493
+ }
494
+ mergeLabelCaseFieldsAndFormFields(caseFields, formFields) {
495
+ return this.mergeFields(caseFields, formFields, FieldsUtils.LABEL_MERGE_FUNCTION);
496
+ }
497
+ controlIterator(aControl, formArrayFn, formGroupFn, controlFn) {
498
+ if (aControl instanceof FormArray) { // We're in a collection
499
+ formArrayFn(aControl);
500
+ }
501
+ else if (aControl instanceof FormGroup) { // We're in a complex type.
502
+ formGroupFn(aControl);
503
+ }
504
+ else if (aControl instanceof FormControl) { // FormControl
505
+ controlFn(aControl);
506
+ }
507
+ }
508
+ mergeFields(caseFields, formFields, mergeFunction) {
509
+ const result = FieldsUtils.cloneObject(formFields);
510
+ caseFields.forEach(field => {
511
+ mergeFunction(field, result);
512
+ if (field.field_type && field.field_type.complex_fields && field.field_type.complex_fields.length > 0) {
513
+ result[field.id] = this.mergeFields(field.field_type.complex_fields, result[field.id], mergeFunction);
514
+ }
515
+ });
516
+ return result;
517
+ }
518
+ }
519
+ FieldsUtils.caseLevelCaseFlagsFieldId = 'caseFlags';
520
+ FieldsUtils.currencyPipe = new CurrencyPipe('en-GB');
521
+ FieldsUtils.datePipe = new DatePipe(new FormatTranslatorService());
522
+ // EUI-4244. 3 dashes instead of 1 to make this less likely to clash with a real field.
523
+ FieldsUtils.LABEL_SUFFIX = '---LABEL';
524
+ // Handling of Dynamic Lists in Complex Types
525
+ FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COLLECTION = 'Collection';
526
+ FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COMPLEX = 'Complex';
527
+ FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE = ['DynamicList', 'DynamicRadioList'];
528
+ FieldsUtils.DEFAULT_MERGE_FUNCTION = function mergeFunction(field, result) {
529
+ if (!result.hasOwnProperty(field.id)) {
530
+ result[field.id] = field.value;
531
+ }
532
+ };
533
+ FieldsUtils.LABEL_MERGE_FUNCTION = function mergeFunction(field, result) {
534
+ if (!result) {
535
+ result = {};
536
+ }
537
+ if (!result.hasOwnProperty(field.id)) {
538
+ result[field.id] = field.value;
539
+ }
540
+ // tslint:disable-next-line: switch-default
541
+ switch (field.field_type.type) {
542
+ case 'FixedList':
543
+ case 'FixedRadioList': {
544
+ result[field.id] = FieldsUtils.getFixedListLabelByCodeOrEmpty(field, result[field.id] || field.value);
545
+ break;
546
+ }
547
+ case 'MultiSelectList': {
548
+ const fieldValue = result[field.id] || [];
549
+ result[field.id + FieldsUtils.LABEL_SUFFIX] = [];
550
+ fieldValue.forEach((code, idx) => {
551
+ result[field.id + FieldsUtils.LABEL_SUFFIX][idx] = FieldsUtils.getFixedListLabelByCodeOrEmpty(field, code);
552
+ });
553
+ break;
554
+ }
555
+ case 'Label': {
556
+ result[field.id] = FieldsUtils.getLabel(field);
557
+ break;
558
+ }
559
+ case 'MoneyGBP': {
560
+ const fieldValue = (result[field.id] || field.value);
561
+ result[field.id] = FieldsUtils.getMoneyGBP(fieldValue);
562
+ break;
563
+ }
564
+ case 'Date': {
565
+ const fieldValue = (result[field.id] || field.value);
566
+ result[field.id] = FieldsUtils.getDate(fieldValue);
567
+ break;
568
+ }
569
+ case 'Complex': {
570
+ if (result[field.id] && field.field_type.complex_fields) {
571
+ field.field_type.complex_fields.forEach((f) => {
572
+ if (['Collection', 'Complex', 'MultiSelectList'].indexOf(f.field_type.type) > -1) {
573
+ FieldsUtils.LABEL_MERGE_FUNCTION(f, result[field.id]);
574
+ }
575
+ });
576
+ }
577
+ break;
578
+ }
579
+ case 'Collection': {
580
+ const elements = (result[field.id] || field.value);
581
+ if (elements) {
582
+ elements.forEach((elem) => {
583
+ // tslint:disable-next-line:switch-default
584
+ switch (field.field_type.collection_field_type.type) {
585
+ case 'MoneyGBP': {
586
+ elem.value = FieldsUtils.getMoneyGBP(elem.value);
587
+ break;
588
+ }
589
+ case 'Date': {
590
+ elem.value = FieldsUtils.getDate(elem.value);
591
+ break;
592
+ }
593
+ case 'Complex': {
594
+ if (field.field_type.collection_field_type.complex_fields) {
595
+ field.field_type.collection_field_type.complex_fields.forEach((f) => {
596
+ if (['Collection', 'Complex', 'MultiSelectList'].indexOf(f.field_type.type) > -1) {
597
+ FieldsUtils.LABEL_MERGE_FUNCTION(f, elem.value);
598
+ }
599
+ });
600
+ }
601
+ break;
602
+ }
603
+ }
604
+ });
605
+ }
606
+ break;
607
+ }
608
+ }
609
+ };
610
+ FieldsUtils.ɵfac = function FieldsUtils_Factory(t) { return new (t || FieldsUtils)(); };
611
+ FieldsUtils.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FieldsUtils, factory: FieldsUtils.ɵfac });
612
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldsUtils, [{
613
+ type: Injectable
614
+ }], null, null); })();
615
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUkxRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0csT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sRUFBb0IsU0FBUyxFQUF5RSxNQUFNLGNBQWMsQ0FBQztBQUNsSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFFbkYsV0FBVztBQUVYLE1BQU0sT0FBTyxXQUFXO0lBV2YsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQVc7UUFDN0MsT0FBTyxDQUFDLEdBQUcsS0FBSyxXQUFXLElBQUksR0FBRyxLQUFLLFVBQVU7ZUFDNUMsR0FBRyxLQUFLLFVBQVUsSUFBSSxHQUFHLEtBQUssUUFBUTtlQUN0QyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFRO1FBQ3ZDLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxTQUFTLENBQUMsRUFBRTtZQUMvQixPQUFPLHFCQUFxQixDQUFDLElBQUksU0FBUyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7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QU0sQ0FBQyxDQUFDOzRCQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQzdDLE1BQU07eUJBQ1A7d0JBQ0QsS0FBSyxTQUFTLENBQUMsQ0FBQzs0QkFDZCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFO2dDQUN6RCxLQUFLLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFZLEVBQUUsRUFBRTtvQ0FDN0UsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTt3Q0FDaEYsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUNBQ2pEO2dDQUNILENBQUMsQ0FBQyxDQUFDOzZCQUNKOzRCQUNELE1BQU07eUJBQ1A7cUJBQ0Y7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELE1BQU07U0FDUDtLQUNGO0FBQ0gsQ0FBQyxDQUFDO3NFQXpPUyxXQUFXO2lFQUFYLFdBQVcsV0FBWCxXQUFXO3VGQUFYLFdBQVc7Y0FEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFdpemFyZFBhZ2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2RvbWFpbic7XG5pbXBvcnQgeyBBYnN0cmFjdEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2Fic3RyYWN0LWZvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEZsYWdEZXRhaWwsIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2RvbWFpbi9jYXNlLWZsYWcubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlciwgQ2FzZUZsYWdTdGF0dXMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2VudW1zJztcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9wYWxldHRlL3V0aWxzJztcbmltcG9ydCB7IENhc2VFdmVudFRyaWdnZXIsIENhc2VGaWVsZCwgQ2FzZVRhYiwgQ2FzZVZpZXcsIEZpZWxkVHlwZSwgRmllbGRUeXBlRW51bSwgRml4ZWRMaXN0SXRlbSwgUHJlZGljYXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZvcm1hdFRyYW5zbGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vY2FzZS1maWVsZHMvZm9ybWF0LXRyYW5zbGF0b3Iuc2VydmljZSc7XG5cbi8vIEBkeW5hbWljXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmllbGRzVXRpbHMge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBjYXNlTGV2ZWxDYXNlRmxhZ3NGaWVsZElkID0gJ2Nhc2VGbGFncyc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGN1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlID0gbmV3IEN1cnJlbmN5UGlwZSgnZW4tR0InKTtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgZGF0ZVBpcGU6IERhdGVQaXBlID0gbmV3IERhdGVQaXBlKG5ldyBGb3JtYXRUcmFuc2xhdG9yU2VydmljZSgpKTtcbiAgLy8gRVVJLTQyNDQuIDMgZGFzaGVzIGluc3RlYWQgb2YgMSB0byBtYWtlIHRoaXMgbGVzcyBsaWtlbHkgdG8gY2xhc2ggd2l0aCBhIHJlYWwgZmllbGQuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTEFCRUxfU1VGRklYID0gJy0tLUxBQkVMJztcbiAgLy8gSGFuZGxpbmcgb2YgRHluYW1pYyBMaXN0cyBpbiBDb21wbGV4IFR5cGVzXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0VSVkVSX1JFU1BPTlNFX0ZJRUxEX1RZUEVfQ09MTEVDVElPTiA9ICdDb2xsZWN0aW9uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRVJWRVJfUkVTUE9OU0VfRklFTERfVFlQRV9DT01QTEVYID0gJ0NvbXBsZXgnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNFUlZFUl9SRVNQT05TRV9GSUVMRF9UWVBFX0RZTkFNSUNfTElTVF9UWVBFOiBGaWVsZFR5cGVFbnVtW10gPSBbJ0R5bmFtaWNMaXN0JywgJ0R5bmFtaWNSYWRpb0xpc3QnXTtcblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWREaXNwbGF5Q29udGV4dChjdHg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoY3R4ID09PSAnTUFOREFUT1JZJyB8fCBjdHggPT09ICdSRUFET05MWSdcbiAgICAgIHx8IGN0eCA9PT0gJ09QVElPTkFMJyB8fCBjdHggPT09ICdISURERU4nXG4gICAgICB8fCBjdHggPT09ICdDT01QTEVYJyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRUb0Nhc2VGaWVsZChvYmo6IGFueSk6IENhc2VGaWVsZCB7XG4gICAgaWYgKCEob2JqIGluc3RhbmNlb2YgQ2FzZUZpZWxkKSkge1xuICAgICAgcmV0dXJuIHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZUZpZWxkKCksIG9iaik7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRvVmFsdWVzTWFwKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdKTogYW55IHtcbiAgICBjb25zdCB2YWx1ZU1hcCA9IHt9O1xuICAgIGNhc2VGaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICB2YWx1ZU1hcFtmaWVsZC5pZF0gPSBGaWVsZHNVdGlscy5wcmVwYXJlVmFsdWUoZmllbGQpO1xuICAgIH0pO1xuICAgIHJldHVybiB2YWx1ZU1hcDtcbiAgfVxuXG4gIC8vIHB1YmxpYyBzdGF0aWMgZ2V0VHlwZShlbGVtOiBhbnkpOiBzdHJpbmcge1xuICAvLyAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZWxlbSkuc2xpY2UoOCwgLTEpO1xuICAvLyB9XG5cbiAgcHVibGljIHN0YXRpYyBpc09iamVjdChlbGVtOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIGVsZW0gPT09ICdvYmplY3QnICYmIGVsZW0gIT09IG51bGw7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTm9uRW1wdHlPYmplY3QoZWxlbTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNPYmplY3QoZWxlbSkgJiYgT2JqZWN0LmtleXMoZWxlbSkubGVuZ3RoICE9PSAwO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0FycmF5KGVsZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGVsZW0pO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBhcmVDb2xsZWN0aW9uVmFsdWVzU2ltcGxlRmllbGRzKGZpZWxkVmFsdWU6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmlzT2JqZWN0KGZpZWxkVmFsdWVbMF1bJ3ZhbHVlJ10pICYmICFBcnJheS5pc0FycmF5KGZpZWxkVmFsdWVbMF1bJ3ZhbHVlJ10pICYmIGZpZWxkVmFsdWVbMF1bJ3ZhbHVlJ10gIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNDb2xsZWN0aW9uT2ZTaW1wbGVUeXBlcyhmaWVsZFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0NvbGxlY3Rpb24oZmllbGRWYWx1ZSkgJiYgdGhpcy5hcmVDb2xsZWN0aW9uVmFsdWVzU2ltcGxlRmllbGRzKGZpZWxkVmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc011bHRpU2VsZWN0VmFsdWUoZm9ybTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNOb25FbXB0eUFycmF5KGZvcm0pICYmICF0aGlzLmlzQ29sbGVjdGlvbldpdGhWYWx1ZShmb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNOb25FbXB0eUFycmF5KHBhZ2VGb3JtRmllbGRzOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYWdlRm9ybUZpZWxkcykgJiYgcGFnZUZvcm1GaWVsZHNbMF0gIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNDb2xsZWN0aW9uKHBhZ2VGb3JtRmllbGRzOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc05vbkVtcHR5QXJyYXkocGFnZUZvcm1GaWVsZHMpICYmIHRoaXMuaXNDb2xsZWN0aW9uV2l0aFZhbHVlKHBhZ2VGb3JtRmllbGRzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNDb2xsZWN0aW9uV2l0aFZhbHVlKHBhZ2VGb3JtRmllbGRzOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwYWdlRm9ybUZpZWxkc1swXVsndmFsdWUnXSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjbG9uZU9iamVjdChvYmo6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIG9iaik7XG4gIH1cblxuICAvLyB0ZW1wb3JhcnkgZnVuY3Rpb24gdW50aWwgdGhpcyBjYW4gYmUgbW92ZWQgdG8gQ2FzZVZpZXcgY2xhc3MgKFJETS0yNjgxKVxuICBwdWJsaWMgc3RhdGljIGdldENhc2VGaWVsZHMoY2FzZVZpZXc6IENhc2VWaWV3KTogQ2FzZUZpZWxkW10ge1xuICAgIGNvbnN0IGNhc2VEYXRhRmllbGRzOiBDYXNlRmllbGRbXSA9IGNhc2VWaWV3LnRhYnMucmVkdWNlKChhY2M6IENhc2VGaWVsZFtdLCB0YWI6IENhc2VUYWIpID0+IHtcbiAgICAgIHJldHVybiBhY2MuY29uY2F0KHRhYi5maWVsZHMpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IG1ldGFkYXRhRmllbGRzOiBDYXNlRmllbGRbXSA9IGNhc2VWaWV3Lm1ldGFkYXRhRmllbGRzO1xuICAgIHJldHVybiBtZXRhZGF0YUZpZWxkcy5jb25jYXQoY2FzZURhdGFGaWVsZHMuZmlsdGVyKChjYXNlRmllbGQ6IENhc2VGaWVsZCkgPT4ge1xuICAgICAgcmV0dXJuIG1ldGFkYXRhRmllbGRzLmZpbmRJbmRleChtZXRhZGF0YUZpZWxkID0+IG1ldGFkYXRhRmllbGQuaWQgPT09IGNhc2VGaWVsZC5pZCkgPCAwO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgYWRkQ2FzZUZpZWxkQW5kQ29tcG9uZW50UmVmZXJlbmNlcyhjOiBBYnN0cmFjdENvbnRyb2wsIGNmOiBDYXNlRmllbGQsIGNvbXA6IEFic3RyYWN0Rm9ybUZpZWxkQ29tcG9uZW50KTogdm9pZCB7XG4gICAgY1snY2FzZUZpZWxkJ10gPSBjZjtcbiAgICBjWydjb21wb25lbnQnXSA9IGNvbXA7XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlIGNoZWNrIG9mIGFuIGFycmF5IG9yIG9iamVjdCBhbmQgaXRzIGRlc2NlbmRhbnRzIGZvciB0aGUgcHJlc2VuY2Ugb2YgYW55IG5vbi1lbXB0eSB2YWx1ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBvYmplY3QgVGhlIGFycmF5IG9yIG9iamVjdCB0byBjaGVja1xuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFycmF5IG9yIG9iamVjdCAob3IgYSBkZXNjZW5kYW50KSBjb250YWlucyBhdCBsZWFzdCBvbmUgbm9uLWVtcHR5IHZhbHVlOyBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb250YWluc05vbkVtcHR5VmFsdWVzKG9iamVjdDogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgaWYgKCFvYmplY3QpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LmtleXMob2JqZWN0KS5tYXAoa2V5ID0+IG9iamVjdFtrZXldKTtcbiAgICBjb25zdCBvYmplY3RSZWZzID0gW107XG4gICAgLy8gQWxzbyB0ZXN0IGZvciBudW1lcmljIHZhbHVlcywgYW5kIGxlbmd0aCA+IDAgZm9yIG5vbi1udW1lcmljIHZhbHVlcyBiZWNhdXNlIHRoaXMgY292ZXJzIGJvdGggc3RyaW5ncyBhbmQgYXJyYXlzLlxuICAgIC8vIE5vdGU6IERlbGliZXJhdGUgdXNlIG9mIG5vbi1lcXVhbGl0eSAoIT0pIG9wZXJhdG9yIGZvciBudWxsIGNoZWNrLCB0byBoYW5kbGUgYm90aCBudWxsIGFuZCB1bmRlZmluZWQgdmFsdWVzLlxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdHJpcGxlLWVxdWFsc1xuICAgIGNvbnN0IGhhc05vbk51bGxQcmltaXRpdmUgPSB2YWx1ZXMuc29tZSh4ID0+ICh4ICE9IG51bGwgJiZcbiAgICAgICgodHlwZW9mIHggPT09ICdvYmplY3QnICYmIHguY29uc3RydWN0b3IgPT09IE9iamVjdCkgfHwgQXJyYXkuaXNBcnJheSh4KVxuICAgICAgICA/ICFvYmplY3RSZWZzLnB1c2goeClcbiAgICAgICAgOiB0eXBlb2YgeCA9PT0gJ251bWJlcicgfHwgeC5sZW5ndGggPiAwKVxuICAgICkpO1xuICAgIHJldHVybiAhaGFzTm9uTnVsbFByaW1pdGl2ZSA/IG9iamVjdFJlZnMuc29tZSh5ID0+IHRoaXMuY29udGFpbnNOb25FbXB0eVZhbHVlcyh5KSkgOiBoYXNOb25OdWxsUHJpbWl0aXZlO1xuICB9XG5cbiAgLyoqXG4gICAqIGhhbmRsZU5lc3RlZER5bmFtaWNMaXN0cygpXG4gICAqIFJlYXNzaWducyBsaXN0X2l0ZW0gYW5kIHZhbHVlIGRhdGEgdG8gRHluYW1pY0xpc3QgY2hpbGRyZW5cbiAgICogZG93biB0aGUgdHJlZS4gU2VydmVyIHJlc3BvbnNlIHJldHVybnMgZGF0YSBvbmx5IGluXG4gICAqIHRoZSBgdmFsdWVgIG9iamVjdCBvZiBwYXJlbnQgY29tcGxleCB0eXBlXG4gICAqXG4gICAqIEVVSS0yNTMwIER5bmFtaWMgTGlzdHMgZm9yIEVsZW1lbnRzIGluIGEgQ29tcGxleCBUeXBlXG4gICAqXG4gICAqIEBwYXJhbSBqc29uQm9keSAtIHsgY2FzZV9maWVsZHM6IFsgQ2FzZUZpZWxkLCBDYXNlRmllbGQgXSB9XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhhbmRsZU5lc3RlZER5bmFtaWNMaXN0cyhqc29uQm9keTogeyBjYXNlX2ZpZWxkczogQ2FzZUZpZWxkW10gfSk6IGFueSB7XG4gICAgaWYgKGpzb25Cb2R5LmNhc2VfZmllbGRzKSB7XG4gICAgICBqc29uQm9keS5jYXNlX2ZpZWxkcy5mb3JFYWNoKGNhc2VGaWVsZCA9PiB7XG4gICAgICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZSkge1xuICAgICAgICAgIHRoaXMuc2V0RHluYW1pY0xpc3REZWZpbml0aW9uKGNhc2VGaWVsZCwgY2FzZUZpZWxkLmZpZWxkX3R5cGUsIGNhc2VGaWVsZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBqc29uQm9keTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHByZXBhcmVWYWx1ZShmaWVsZDogQ2FzZUZpZWxkKTogYW55IHtcbiAgICBpZiAoZmllbGQudmFsdWUpIHtcbiAgICAgIHJldHVybiBmaWVsZC52YWx1ZTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkLmlzQ29tcGxleCgpKSB7XG4gICAgICBjb25zdCB2YWx1ZU1hcCA9IHt9O1xuICAgICAgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5mb3JFYWNoKGNvbXBsZXhGaWVsZCA9PiB7XG4gICAgICAgIHZhbHVlTWFwW2NvbXBsZXhGaWVsZC5pZF0gPSBGaWVsZHNVdGlscy5wcmVwYXJlVmFsdWUoY29tcGxleEZpZWxkKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHZhbHVlTWFwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTUVSR0VfRlVOQ1RJT04gPSBmdW5jdGlvbiBtZXJnZUZ1bmN0aW9uKGZpZWxkOiBDYXNlRmllbGQsIHJlc3VsdDogb2JqZWN0KTogdm9pZCB7XG4gICAgaWYgKCFyZXN1bHQuaGFzT3duUHJvcGVydHkoZmllbGQuaWQpKSB7XG4gICAgICByZXN1bHRbZmllbGQuaWRdID0gZmllbGQudmFsdWU7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IExBQkVMX01FUkdFX0ZVTkNUSU9OID0gZnVuY3Rpb24gbWVyZ2VGdW5jdGlvbihmaWVsZDogQ2FzZUZpZWxkLCByZXN1bHQ6IG9iamVjdCk6IHZvaWQge1xuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICByZXN1bHQgPSB7fTtcbiAgICB9XG4gICAgaWYgKCFyZXN1bHQuaGFzT3duUHJvcGVydHkoZmllbGQuaWQpKSB7XG4gICAgICByZXN1bHRbZmllbGQuaWRdID0gZmllbGQudmFsdWU7XG4gICAgfVxuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBzd2l0Y2gtZGVmYXVsdFxuICAgIHN3aXRjaCAoZmllbGQuZmllbGRfdHlwZS50eXBlKSB7XG4gICAgICBjYXNlICdGaXhlZExpc3QnOlxuICAgICAgY2FzZSAnRml4ZWRSYWRpb0xpc3QnOiB7XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZF0gPSBGaWVsZHNVdGlscy5nZXRGaXhlZExpc3RMYWJlbEJ5Q29kZU9yRW1wdHkoZmllbGQsIHJlc3VsdFtmaWVsZC5pZF0gfHwgZmllbGQudmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ011bHRpU2VsZWN0TGlzdCc6IHtcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IHJlc3VsdFtmaWVsZC5pZF0gfHwgW107XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZCArIEZpZWxkc1V0aWxzLkxBQkVMX1NVRkZJWF0gPSBbXTtcbiAgICAgICAgZmllbGRWYWx1ZS5mb3JFYWNoKChjb2RlOiBhbnksIGlkeDogYW55KSA9PiB7XG4gICAgICAgICAgcmVzdWx0W2ZpZWxkLmlkICsgRmllbGRzVXRpbHMuTEFCRUxfU1VGRklYXVtpZHhdID0gRmllbGRzVXRpbHMuZ2V0Rml4ZWRMaXN0TGFiZWxCeUNvZGVPckVtcHR5KGZpZWxkLCBjb2RlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnTGFiZWwnOiB7XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZF0gPSBGaWVsZHNVdGlscy5nZXRMYWJlbChmaWVsZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnTW9uZXlHQlAnOiB7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSAocmVzdWx0W2ZpZWxkLmlkXSB8fCBmaWVsZC52YWx1ZSk7XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZF0gPSBGaWVsZHNVdGlscy5nZXRNb25leUdCUChmaWVsZFZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdEYXRlJzoge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gKHJlc3VsdFtmaWVsZC5pZF0gfHwgZmllbGQudmFsdWUpO1xuICAgICAgICByZXN1bHRbZmllbGQuaWRdID0gRmllbGRzVXRpbHMuZ2V0RGF0ZShmaWVsZFZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdDb21wbGV4Jzoge1xuICAgICAgICBpZiAocmVzdWx0W2ZpZWxkLmlkXSAmJiBmaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzKSB7XG4gICAgICAgICAgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5mb3JFYWNoKChmOiBDYXNlRmllbGQpID0+IHtcbiAgICAgICAgICAgIGlmIChbJ0NvbGxlY3Rpb24nLCAnQ29tcGxleCcsICdNdWx0aVNlbGVjdExpc3QnXS5pbmRleE9mKGYuZmllbGRfdHlwZS50eXBlKSA+IC0xKSB7XG4gICAgICAgICAgICAgIEZpZWxkc1V0aWxzLkxBQkVMX01FUkdFX0ZVTkNUSU9OKGYsIHJlc3VsdFtmaWVsZC5pZF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQ29sbGVjdGlvbic6IHtcbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSAocmVzdWx0W2ZpZWxkLmlkXSB8fCBmaWVsZC52YWx1ZSk7XG4gICAgICAgIGlmIChlbGVtZW50cykge1xuICAgICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnN3aXRjaC1kZWZhdWx0XG4gICAgICAgICAgICBzd2l0Y2ggKGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSAnTW9uZXlHQlAnOiB7XG4gICAgICAgICAgICAgICAgZWxlbS52YWx1ZSA9IEZpZWxkc1V0aWxzLmdldE1vbmV5R0JQKGVsZW0udmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNhc2UgJ0RhdGUnOiB7XG4gICAgICAgICAgICAgICAgZWxlbS52YWx1ZSA9IEZpZWxkc1V0aWxzLmdldERhdGUoZWxlbS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2FzZSAnQ29tcGxleCc6IHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLmZvckVhY2goKGY6IENhc2VGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoWydDb2xsZWN0aW9uJywgJ0NvbXBsZXgnLCAnTXVsdGlTZWxlY3RMaXN0J10uaW5kZXhPZihmLmZpZWxkX3R5cGUudHlwZSkgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgIEZpZWxkc1V0aWxzLkxBQkVMX01FUkdFX0ZVTkNUSU9OKGYsIGVsZW0udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgYSBgTW9uZXlHQlBgIHZhbHVlIHRvIGluY2x1ZGUgY3VycmVuY3kgdW5pdHMuXG4gICAqIEBwYXJhbSBmaWVsZFZhbHVlIFRoZSBDdXJyZW5jeVBpcGUgZXhwZWN0cyBhbiBgYW55YCBwYXJhbWV0ZXIgc28gdGhpcyBtdXN0IGFsc28gYmUgYGFueWAsXG4gICAqIGJ1dCBpdCBzaG91bGQgYmUgXCJudW1iZXItbGlrZVwiIChlLmcuLCAnMTIzNCcpXG4gICAqIEByZXR1cm5zIEEgZm9ybWF0dGVkIHN0cmluZyAoZS5nLiwgwqMxMi4zNClcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGdldE1vbmV5R0JQKGZpZWxkVmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZpZWxkVmFsdWUgPyBGaWVsZHNVdGlscy5jdXJyZW5jeVBpcGUudHJhbnNmb3JtKGZpZWxkVmFsdWUgLyAxMDAsICdHQlAnLCAnc3ltYm9sJykgOiBmaWVsZFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0TGFiZWwoZmllbGRWYWx1ZTogQ2FzZUZpZWxkKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZmllbGRWYWx1ZSA/IGZpZWxkVmFsdWUubGFiZWwgOiAnJztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldERhdGUoZmllbGRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgLy8gRm9ybWF0IHNwZWNpZmllZCBoZXJlIHdhc24ndCBwcmV2aW91c2x5IHdvcmtpbmcgYW5kIGxvdHMgb2YgdGVzdHMgZGVwZW5kIG9uIGl0IG5vdCB3b3JraW5nXG4gICAgICAvLyBOb3cgdGhhdCBmb3JtYXRzIHdvcmsgY29ycmVjdGx5IG1hbnkgdGVzdCB3b3VsZCBicmVhayAtIGFuZCB0aGlzIGNvdWxkIGFmZmVjdCBzZXJ2aWNlcyB3aGljaCBtYXkgZGVwZW5kIG9uXG4gICAgICAvLyB0aGUgb3JnaW5hbCBiZWhhdmlvdXIgb2YgcmV0dXJuaW5nIGRhdGVzIGluIFwiZCBNTU0geXl5eVwiXG4gICAgICAvLyBOb3RlIC0gcmVwbGFjZWQgJ2QnIHdpdGggJ0QnIGFzIGRhdGVwaXBlIHVzaW5nIG1vbWVudCB0byBhdm9pZCB0aW1lem9uZSBkaXNjcmVwYW5jaWVzXG4gICAgICByZXR1cm4gRmllbGRzVXRpbHMuZGF0ZVBpcGUudHJhbnNmb3JtKGZpZWxkVmFsdWUsIG51bGwsICdEIE1NTSB5eXl5Jyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHRoaXMudGV4dEZvckludmFsaWRGaWVsZCgnRGF0ZScsIGZpZWxkVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldEZpeGVkTGlzdExhYmVsQnlDb2RlT3JFbXB0eShmaWVsZDogQ2FzZUZpZWxkLCBjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJlbGV2YW50SXRlbTogRml4ZWRMaXN0SXRlbSA9IGNvZGUgPyBmaWVsZC5maWVsZF90eXBlLmZpeGVkX2xpc3RfaXRlbXMuZmluZChpdGVtID0+IGl0ZW0uY29kZSA9PT0gY29kZSkgOiBudWxsO1xuICAgIHJldHVybiByZWxldmFudEl0ZW0gPyByZWxldmFudEl0ZW0ubGFiZWwgOiAnJztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHRleHRGb3JJbnZhbGlkRmllbGQodHlwZTogc3RyaW5nLCBpbnZhbGlkVmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGB7IEludmFsaWQgJHt0eXBlfTogJHtpbnZhbGlkVmFsdWV9IH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgc2V0RHluYW1pY0xpc3REZWZpbml0aW9uKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBjYXNlRmllbGRUeXBlOiBGaWVsZFR5cGUsIHJvb3RDYXNlRmllbGQ6IENhc2VGaWVsZCkge1xuICAgIGlmIChjYXNlRmllbGRUeXBlLnR5cGUgPT09IEZpZWxkc1V0aWxzLlNFUlZFUl9SRVNQT05TRV9GSUVMRF9UWVBFX0NPTVBMRVgpIHtcblxuICAgICAgY2FzZUZpZWxkVHlwZS5jb21wbGV4X2ZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBpc0R5bmFtaWNGaWVsZCA9IEZpZWxkc1V0aWxzLlNFUlZFUl9SRVNQT05TRV9GSUVMRF9UWVBFX0RZTkFNSUNfTElTVF9UWVBFLmluZGV4T2YoZmllbGQuZmllbGRfdHlwZS50eXBlKSAhPT0gLTE7XG5cbiAgICAgICAgICBpZiAoaXNEeW5hbWljRmllbGQpIHtcbiAgICAgICAgICAgIGNvbnN0IGR5bmFtaWNMaXN0VmFsdWUgPSB0aGlzLmdldER5bmFtaWNMaXN0VmFsdWUocm9vdENhc2VGaWVsZC52YWx1ZSwgZmllbGQuaWQpO1xuICAgICAgICAgICAgaWYgKGR5bmFtaWNMaXN0VmFsdWUpIHtcbiAgICAgICAgICAgICAgY29uc3QgbGlzdF9pdGVtcyA9IGR5bmFtaWNMaXN0VmFsdWVbMF0ubGlzdF9pdGVtcztcbiAgICAgICAgICAgICAgY29uc3QgY29tcGxleFZhbHVlID0gZHluYW1pY0xpc3RWYWx1ZS5tYXAoZGF0YSA9PiBkYXRhLnZhbHVlKTtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgbGlzdF9pdGVtcyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29tcGxleFZhbHVlLmxlbmd0aCA+IDAgPyBjb21wbGV4VmFsdWUgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgZmllbGQudmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgLi4udmFsdWVcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgZmllbGQuZm9ybWF0dGVkX3ZhbHVlID0ge1xuICAgICAgICAgICAgICAgIC4uLmZpZWxkLmZvcm1hdHRlZF92YWx1ZSxcbiAgICAgICAgICAgICAgICAuLi52YWx1ZVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNldER5bmFtaWNMaXN0RGVmaW5pdGlvbihmaWVsZCwgZmllbGQuZmllbGRfdHlwZSwgcm9vdENhc2VGaWVsZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChjYXNlRmllbGRUeXBlLnR5cGUgPT09IEZpZWxkc1V0aWxzLlNFUlZFUl9SRVNQT05TRV9GSUVMRF9UWVBFX0NPTExFQ1RJT04pIHtcbiAgICAgIGlmIChjYXNlRmllbGRUeXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZSkge1xuICAgICAgICB0aGlzLnNldER5bmFtaWNMaXN0RGVmaW5pdGlvbihjYXNlRmllbGQsIGNhc2VGaWVsZFR5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLCByb290Q2FzZUZpZWxkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXREeW5hbWljTGlzdFZhbHVlKGpzb25CbG9jazogYW55LCBrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IGRhdGEgPSBqc29uQmxvY2sgPyB0aGlzLmdldE5lc3RlZEZpZWxkVmFsdWVzKGpzb25CbG9jaywga2V5LCBbXSkgOiBbXTtcblxuICAgIHJldHVybiBkYXRhLmxlbmd0aCA+IDAgPyBkYXRhIDogbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldE5lc3RlZEZpZWxkVmFsdWVzKGpzb25EYXRhOiBhbnksIGtleTogc3RyaW5nLCBvdXRwdXQ6IGFueVtdID0gW10pIHtcbiAgICBpZiAoanNvbkRhdGEgJiYganNvbkRhdGFba2V5XSkge1xuICAgICAgb3V0cHV0LnB1c2goanNvbkRhdGFba2V5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudEtleSBpbiBqc29uRGF0YSkge1xuICAgICAgICBpZiAodHlwZW9mIGpzb25EYXRhID09PSAnb2JqZWN0JyAmJiBqc29uRGF0YS5oYXNPd25Qcm9wZXJ0eShlbGVtZW50S2V5KSkge1xuICAgICAgICAgIHRoaXMuZ2V0TmVzdGVkRmllbGRWYWx1ZXMoanNvbkRhdGFbZWxlbWVudEtleV0sIGtleSwgb3V0cHV0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0ZsYWdzQ2FzZUZpZWxkKGNhc2VGaWVsZDogQ2FzZUZpZWxkKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjYXNlRmllbGQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5pc0ZsYWdzRmllbGRUeXBlKGNhc2VGaWVsZC5maWVsZF90eXBlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIGlzQ2FzZUZpZWxkT2ZUeXBlfSBpbnN0ZWFkLCBwYXNzaW5nICdGbGFnTGF1bmNoZXInIGFzIHRoZSBzaW5nbGUgdHlwZSBpbiB0aGUgYHR5cGVzYCBhcnJheVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0ZsYWdMYXVuY2hlckNhc2VGaWVsZChjYXNlRmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIGlmICghY2FzZUZpZWxkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdGbGFnTGF1bmNoZXInO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgaXNDYXNlRmllbGRPZlR5cGV9IGluc3RlYWQsIHBhc3NpbmcgJ0NvbXBvbmVudExhdW5jaGVyJyBhcyB0aGUgc2luZ2xlIHR5cGUgaW4gdGhlIGB0eXBlc2BcbiAgICogYXJyYXlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNDb21wb25lbnRMYXVuY2hlckNhc2VGaWVsZChjYXNlRmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIGlmICghY2FzZUZpZWxkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wb25lbnRMYXVuY2hlcic7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEge0BsaW5rIENhc2VGaWVsZH0gaXMgb2Ygb25lIG9mIHRoZSBnaXZlbiBmaWVsZCB0eXBlcy5cbiAgICpcbiAgICogQHBhcmFtIGNhc2VGaWVsZCBUaGUgYENhc2VGaWVsZGAgdG8gY2hlY2tcbiAgICogQHBhcmFtIHR5cGVzIEFuIGFycmF5IG9mIG9uZSBvciBtb3JlIGZpZWxkIHR5cGVzXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgYENhc2VGaWVsZGAgdHlwZSBpcyBvbmUgb2YgdGhvc2UgaW4gdGhlIGFycmF5IG9mIHR5cGVzIHRvIGNoZWNrIGFnYWluc3Q7IGBmYWxzZWBcbiAgICogb3RoZXJ3aXNlIG9yIGlmIGBjYXNlRmllbGRgIG9yIGB0eXBlc2AgYXJlIGZhbHN5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQ2FzZUZpZWxkT2ZUeXBlKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCB0eXBlczogRmllbGRUeXBlRW51bVtdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFjYXNlRmllbGQgfHwgIXR5cGVzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVzLnNvbWUodHlwZSA9PiB0eXBlID09PSBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlIHx8IHR5cGUgPT09IGNhc2VGaWVsZC5maWVsZF90eXBlLmlkKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNMaW5rZWRDYXNlc0Nhc2VGaWVsZChjYXNlRmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBGaWVsZHNVdGlscy5pc0NvbXBvbmVudExhdW5jaGVyQ2FzZUZpZWxkKGNhc2VGaWVsZCkgJiZcbiAgICAgIGNhc2VGaWVsZC5pZCA9PT0gJ0xpbmtlZENhc2VzQ29tcG9uZW50TGF1bmNoZXInO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb250YWluc0xpbmtlZENhc2VzQ2FzZUZpZWxkKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNhc2VGaWVsZHM/LnNvbWUoY2FzZUZpZWxkID0+IEZpZWxkc1V0aWxzLmlzTGlua2VkQ2FzZXNDYXNlRmllbGQoY2FzZUZpZWxkKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzRmxhZ3NGaWVsZFR5cGUoZmllbGRUeXBlOiBGaWVsZFR5cGUpOiBib29sZWFuIHtcbiAgICBpZiAoIWZpZWxkVHlwZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIE5vdGU6IFRoaXMgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMgdGhlIGR1bW15IGZpZWxkIHR5cGUgSUQgb2YgXCJDYXNlRmxhZ1wiIGZvciB0ZXN0aW5nIGFuZCB0aGUgcmVhbCBmaWVsZCB0eXBlXG4gICAgLy8gSUQgb2YgXCJGbGFnc1wiXG4gICAgcmV0dXJuIChmaWVsZFR5cGUudHlwZSA9PT0gJ0NvbXBsZXgnICYmIChmaWVsZFR5cGUuaWQgPT09ICdDYXNlRmxhZycgfHwgZmllbGRUeXBlLmlkID09PSAnRmxhZ3MnKSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdCBmbGFncyBkYXRhIGZyb20gYSBgQ2FzZUZpZWxkYCBpbnN0YW5jZSwgcmVjdXJzaW5nIGFuZCBpdGVyYXRpbmcgdGhyb3VnaCBzdWItZmllbGRzIG9mIGEgQ29tcGxleCBmaWVsZCBvclxuICAgKiBlYWNoIGZpZWxkIGluIGEgQ29sbGVjdGlvbiBmaWVsZC5cbiAgICpcbiAgICogQHBhcmFtIGZsYWdzIEFuIGFycmF5IGZvciBhY2N1bXVsYXRpbmcgZXh0cmFjdGVkIGZsYWdzIGRhdGEgYW5kIGRlcml2ZWQgYEZvcm1Hcm91cGAgcGF0aHNcbiAgICogQHBhcmFtIGNhc2VGaWVsZCBBIGBDYXNlRmllbGRgIGluc3RhbmNlIGZyb20gd2hpY2ggdG8gZXh0cmFjdCB0aGUgZmxhZ3MgZGF0YVxuICAgKiBAcGFyYW0gcGF0aFRvRmxhZ3NGb3JtR3JvdXAgQSAoZG90LWRlbGltaXRlZCkgc3RyaW5nIGZvciBjb25jYXRlbmF0aW5nIHRoZSBuYW1lIG9mIGVhY2ggY29udHJvbCB0aGF0IGZvcm1zIHRoZSBwYXRoXG4gICAqIHRvIHRoZSBgRm9ybUdyb3VwYCBmb3IgdGhlIGBGbGFnc2AgaW5zdGFuY2VcbiAgICogQHBhcmFtIHRvcExldmVsQ2FzZUZpZWxkIFRoZSB0b3AtbGV2ZWwgYENhc2VGaWVsZGAgdGhhdCBjb250YWlucyB0aGUgdmFsdWUgcHJvcGVydHkuIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBfb25seVxuICAgKiB0b3AtbGV2ZWxfIGBDYXNlRmllbGRgcyBjb250YWluIGFjdHVhbCB2YWx1ZXMgYW5kIGEgcmVmZXJlbmNlIG5lZWRzIHRvIGJlIG1haW50YWluZWQgdG8gc3VjaCBhIGZpZWxkXG4gICAqIEBwYXJhbSBjdXJyZW50VmFsdWUgVGhlIGN1cnJlbnQgdmFsdWUgb2JqZWN0IG9mIGEgYENhc2VGaWVsZGAgdGhhdCBpcyBhIHN1Yi1maWVsZCBvZiBhIG5vbiByb290LWxldmVsIENvbXBsZXggZmllbGQuXG4gICAqIFJlcXVpcmVkIGZvciBtYXBwaW5nIHRoZSBgQ2FzZUZpZWxkYCB2YWx1ZSB0byBhIGBGbGFnc2Agb2JqZWN0IGlmIGl0IGlzIGEgXCJGbGFnc1wiIGBDYXNlRmllbGRgLiAoRm9yIENvbXBsZXggdHlwZXMsXG4gICAqIG9ubHkgdGhlIF9yb290LWxldmVsXyBgQ2FzZUZpZWxkYCBjb250YWlucyBhIHZhbHVlIHByb3BlcnR5IC0gYWxsIHN1Yi1maWVsZHMsIGluY2x1ZGluZyBhbnkgbmVzdGVkIENvbXBsZXggZmllbGRzLFxuICAgKiBkbyAqbm90KiBjb250YWluIGFueSB2YWx1ZXMgdGhlbXNlbHZlcy4pXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoYCwgZWFjaCBpbnN0YW5jZSBjb21wcmlzaW5nIGEgYEZsYWdzYCBvYmplY3QgZGVyaXZlZCBmcm9tIGEgYENhc2VGaWVsZGBcbiAgICogb2YgdHlwZSBcIkZsYWdzXCIsIGFuZCB0aGUgZG90LWRlbGltaXRlZCBwYXRoIHN0cmluZyB0byB0aGUgY29ycmVzcG9uZGluZyBgRm9ybUdyb3VwYFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBleHRyYWN0RmxhZ3NEYXRhRnJvbUNhc2VGaWVsZChmbGFnczogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdLCBjYXNlRmllbGQ6IENhc2VGaWVsZCxcbiAgICBwYXRoVG9GbGFnc0Zvcm1Hcm91cDogc3RyaW5nLCB0b3BMZXZlbENhc2VGaWVsZDogQ2FzZUZpZWxkLCBjdXJyZW50VmFsdWU/OiBvYmplY3QpOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoW10ge1xuICAgIGNvbnN0IGZpZWxkVHlwZSA9IGNhc2VGaWVsZC5maWVsZF90eXBlO1xuICAgIHN3aXRjaCAoZmllbGRUeXBlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0NvbXBsZXgnOlxuICAgICAgICAvLyBJZiB0aGUgZmllbGQgaXMgYSBGbGFncyBDYXNlRmllbGQgKHRoZXNlIGFyZSBpbXBsZW1lbnRlZCBhcyBDb21wbGV4IHR5cGVzKSwgaXQgY2FuIGJlIG1hcHBlZCB0byBhIEZsYWdzXG4gICAgICAgIC8vIG9iamVjdCBpbW1lZGlhdGVseVxuICAgICAgICBpZiAoRmllbGRzVXRpbHMuaXNGbGFnc0Nhc2VGaWVsZChjYXNlRmllbGQpKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIEZsYWdzIENhc2VGaWVsZCBoYXMgYSB2YWx1ZSwgaXQgaXMgYSByb290LWxldmVsIENvbXBsZXggZmllbGQ7IGlmIGl0IGRvZXMgbm90LCBpdCBpcyBhIEZsYWdzXG4gICAgICAgICAgLy8gQ2FzZUZpZWxkIHRoYXQgaXMgYSBzdWItZmllbGQgd2l0aGluIGFub3RoZXIgQ29tcGxleCBmaWVsZCwgc28gdXNlIHRoZSBjdXJyZW50VmFsdWUgdmFsdWUgKGlmIGFueSlcbiAgICAgICAgICAvLyBpbnN0ZWFkLiBUaGUgZXhjZXB0aW9uIHRvIHRoaXMgaXMgdGhlIFwiY2FzZUZsYWdzXCIgRmxhZ3MgQ2FzZUZpZWxkLCB3aGljaCB3aWxsIGhhdmUgYW4gZW1wdHkgb2JqZWN0IHZhbHVlXG4gICAgICAgICAgLy8gaW5pdGlhbGx5LCBiZWNhdXNlIG5vIHBhcnR5IG5hbWUgaXMgcmVxdWlyZWRcbiAgICAgICAgICBpZiAoY2FzZUZpZWxkLnZhbHVlICYmIEZpZWxkc1V0aWxzLmlzTm9uRW1wdHlPYmplY3QoY2FzZUZpZWxkLnZhbHVlKSB8fFxuICAgICAgICAgICAgY2FzZUZpZWxkLmlkID09PSB0aGlzLmNhc2VMZXZlbENhc2VGbGFnc0ZpZWxkSWQpIHtcbiAgICAgICAgICAgIGZsYWdzLnB1c2godGhpcy5tYXBDYXNlRmllbGRUb0ZsYWdzV2l0aEZvcm1Hcm91cFBhdGhPYmplY3QoY2FzZUZpZWxkLCBwYXRoVG9GbGFnc0Zvcm1Hcm91cCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFZhbHVlICYmIEZpZWxkc1V0aWxzLmlzTm9uRW1wdHlPYmplY3QoY3VycmVudFZhbHVlKSkge1xuICAgICAgICAgICAgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgKz0gYC4ke2Nhc2VGaWVsZC5pZH1gO1xuICAgICAgICAgICAgZmxhZ3MucHVzaCh0aGlzLm1hcFZhbHVlVG9GbGFnc1dpdGhGb3JtR3JvdXBQYXRoT2JqZWN0KFxuICAgICAgICAgICAgICBjYXNlRmllbGQuaWQsIGN1cnJlbnRWYWx1ZSwgcGF0aFRvRmxhZ3NGb3JtR3JvdXAsIHRvcExldmVsQ2FzZUZpZWxkKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGZpZWxkVHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gY2FzZUZpZWxkLnZhbHVlID8gY2FzZUZpZWxkLnZhbHVlIDogY3VycmVudFZhbHVlO1xuICAgICAgICAgIGlmICh2YWx1ZSAmJiBGaWVsZHNVdGlscy5pc05vbkVtcHR5T2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgZmxhZ3MgPSBmaWVsZFR5cGUuY29tcGxleF9maWVsZHMucmVkdWNlKChmbGFnc09mQ29tcGxleEZpZWxkLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5leHRyYWN0RmxhZ3NEYXRhRnJvbUNhc2VGaWVsZChcbiAgICAgICAgICAgICAgICBmbGFnc09mQ29tcGxleEZpZWxkLCBzdWJGaWVsZCwgcGF0aFRvRmxhZ3NGb3JtR3JvdXAsIHRvcExldmVsQ2FzZUZpZWxkLCB2YWx1ZVtzdWJGaWVsZC5pZF0pO1xuICAgICAgICAgICAgfSwgZmxhZ3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIC8vIEZvciBhIENvbGxlY3Rpb24gZmllbGQsIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBkaXJlY3RseSBhcyBrZXktdmFsdWUgcGFpcnMgaW4gdGhlIENhc2VGaWVsZCdzIHZhbHVlIHByb3BlcnR5XG4gICAgICAvLyBhcyBhbiBhcnJheSwgdW5sZXNzIHRoZSBjb2xsZWN0aW9uIGlzIGEgc3ViLWZpZWxkIG9mIGEgQ29tcGxleCB0eXBlIC0gc3ViLWZpZWxkcyBuZXZlciBjb250YWluIHZhbHVlc1xuICAgICAgY2FzZSAnQ29sbGVjdGlvbic6XG4gICAgICAgIC8vIElmIHRoaXMgaXMgYSBjb2xsZWN0aW9uIG9mIEZsYWdzIENhc2VGaWVsZHMsIHRoZXNlIGNhbiBiZSBtYXBwZWQgdG8gRmxhZ3Mgb2JqZWN0cyBpbW1lZGlhdGVseVxuICAgICAgICBpZiAoRmllbGRzVXRpbHMuaXNGbGFnc0ZpZWxkVHlwZShmaWVsZFR5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlKSkge1xuICAgICAgICAgIC8vIElmIHRoZSBDb2xsZWN0aW9uIENhc2VGaWVsZCBoYXMgYSB2YWx1ZSAoYW4gYXJyYXkpLCBpdCBpcyBhIHJvb3QtbGV2ZWwgQ29sbGVjdGlvbiBmaWVsZDsgaWYgaXQgZG9lcyBub3QsXG4gICAgICAgICAgLy8gaXQgaXMgYSBDb2xsZWN0aW9uIENhc2VGaWVsZCB0aGF0IGlzIGEgc3ViLWZpZWxkIHdpdGhpbiBhIENvbXBsZXggZmllbGQsIHNvIHVzZSB0aGUgY3VycmVudFZhbHVlIHZhbHVlXG4gICAgICAgICAgLy8gKGlmIGFueSkgaW5zdGVhZFxuICAgICAgICAgIGNvbnN0IHBhdGhGcmFnbWVudCA9IHBhdGhUb0ZsYWdzRm9ybUdyb3VwICs9ICcuaW5kZXgudmFsdWUnO1xuICAgICAgICAgIGlmIChjYXNlRmllbGQudmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2VGaWVsZC52YWx1ZS5mb3JFYWNoKChpdGVtOiB7IGlkOiBzdHJpbmc7IHZhbHVlOiBvYmplY3Q7IH0sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgLy8gQXQgZWFjaCBpdGVyYXRpb24sIHJlcGxhY2UgdGhlIFwiaW5kZXhcIiBwbGFjZWhvbGRlciB3aXRoIHRoZSBhY3R1YWwgaW5kZXhcbiAgICAgICAgICAgICAgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgPSBwYXRoRnJhZ21lbnQucmVwbGFjZSgnaW5kZXgnLCBpbmRleC50b1N0cmluZygxMCkpO1xuICAgICAgICAgICAgICBmbGFncy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMubWFwVmFsdWVUb0ZsYWdzV2l0aEZvcm1Hcm91cFBhdGhPYmplY3QoaXRlbS5pZCwgaXRlbS52YWx1ZSwgcGF0aFRvRmxhZ3NGb3JtR3JvdXAsIGNhc2VGaWVsZCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIChjdXJyZW50VmFsdWUgYXMgW10pLmZvckVhY2goKGl0ZW06IHsgaWQ6IHN0cmluZzsgdmFsdWU6IG9iamVjdDsgfSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICBwYXRoVG9GbGFnc0Zvcm1Hcm91cCA9IHBhdGhGcmFnbWVudC5yZXBsYWNlKCdpbmRleCcsIGluZGV4LnRvU3RyaW5nKDEwKSk7XG4gICAgICAgICAgICAgIGZsYWdzLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5tYXBWYWx1ZVRvRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aE9iamVjdChpdGVtLmlkLCBpdGVtLnZhbHVlLCBwYXRoVG9GbGFnc0Zvcm1Hcm91cCwgdG9wTGV2ZWxDYXNlRmllbGQpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChmaWVsZFR5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4JyAmJiBmaWVsZFR5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzKSB7XG4gICAgICAgICAgaWYgKGNhc2VGaWVsZC52YWx1ZSkge1xuICAgICAgICAgICAgLy8gUGVyZm9ybSBhIHJlZHVjdGlvbiBvdmVyIGVhY2ggQ29tcGxleCBmaWVsZCdzIHN1Yi1maWVsZHMgKHNpbWlsYXIgdG8gd2hhdCBpcyBkb25lIGFib3ZlIGZvciBub24tRmxhZ3NcbiAgICAgICAgICAgIC8vIENvbXBsZXggZmllbGRzKVxuICAgICAgICAgICAgLy8gKENhbm5vdCBqdXN0IGNhbGwgdGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSBmb3IgZWFjaCBDb21wbGV4IGZpZWxkIGluIHRoZSBjb2xsZWN0aW9uIGJlY2F1c2UgdGhlIENhc2VGaWVsZFxuICAgICAgICAgICAgLy8gZm9yIGVhY2ggb25lIGlzIG5vdCBwYXJ0IG9mIHRoZSBjb2xsZWN0aW9uKVxuICAgICAgICAgICAgY29uc3QgcGF0aEZyYWdtZW50ID0gcGF0aFRvRmxhZ3NGb3JtR3JvdXAgKz0gJy5pbmRleC52YWx1ZSc7XG4gICAgICAgICAgICBjYXNlRmllbGQudmFsdWUuZm9yRWFjaCgoaXRlbTogeyBpZDogc3RyaW5nOyB2YWx1ZTogb2JqZWN0OyB9LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgIC8vIEF0IGVhY2ggaXRlcmF0aW9uLCByZXBsYWNlIHRoZSBcImluZGV4XCIgcGxhY2Vob2xkZXIgd2l0aCB0aGUgYWN0dWFsIGluZGV4XG4gICAgICAgICAgICAgIHBhdGhUb0ZsYWdzRm9ybUdyb3VwID0gcGF0aEZyYWdtZW50LnJlcGxhY2UoJ2luZGV4JywgaW5kZXgudG9TdHJpbmcoMTApKTtcbiAgICAgICAgICAgICAgZmxhZ3MgPSBmaWVsZFR5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLnJlZHVjZSgoZmxhZ3NPZkNvbXBsZXhGaWVsZCwgc3ViRmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5leHRyYWN0RmxhZ3NEYXRhRnJvbUNhc2VGaWVsZChcbiAgICAgICAgICAgICAgICAgIGZsYWdzT2ZDb21wbGV4RmllbGQsIHN1YkZpZWxkLCBwYXRoVG9GbGFnc0Zvcm1Hcm91cCwgdG9wTGV2ZWxDYXNlRmllbGQsIGl0ZW0udmFsdWVbc3ViRmllbGQuaWRdKTtcbiAgICAgICAgICAgICAgfSwgZmxhZ3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgIC8vIElnbm9yZSBhbGwgb3RoZXIgZmllbGQgdHlwZXNcbiAgICB9XG4gICAgcmV0dXJuIGZsYWdzO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgbWFwQ2FzZUZpZWxkVG9GbGFnc1dpdGhGb3JtR3JvdXBQYXRoT2JqZWN0KGNhc2VGaWVsZDogQ2FzZUZpZWxkLFxuICAgIHBhdGhUb0ZsYWdzRm9ybUdyb3VwOiBzdHJpbmcpOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoIHtcbiAgICByZXR1cm4gdGhpcy5tYXBWYWx1ZVRvRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aE9iamVjdChjYXNlRmllbGQuaWQsIGNhc2VGaWVsZC52YWx1ZSwgcGF0aFRvRmxhZ3NGb3JtR3JvdXAsIGNhc2VGaWVsZCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtYXBWYWx1ZVRvRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aE9iamVjdChpZDogc3RyaW5nLCB2YWx1ZTogb2JqZWN0LFxuICAgIHBhdGhUb0ZsYWdzRm9ybUdyb3VwOiBzdHJpbmcsIGNhc2VGaWVsZDogQ2FzZUZpZWxkKTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZsYWdzOiB7XG4gICAgICAgIGZsYWdzQ2FzZUZpZWxkSWQ6IGlkLFxuICAgICAgICBwYXJ0eU5hbWU6IHZhbHVlID8gdmFsdWVbJ3BhcnR5TmFtZSddIDogbnVsbCxcbiAgICAgICAgcm9sZU9uQ2FzZTogdmFsdWUgPyB2YWx1ZVsncm9sZU9uQ2FzZSddIDogbnVsbCxcbiAgICAgICAgZGV0YWlsczogdmFsdWUgJiYgdmFsdWVbJ2RldGFpbHMnXSAmJiB2YWx1ZVsnZGV0YWlscyddLmxlbmd0aCA+IDBcbiAgICAgICAgICA/ICh2YWx1ZVsnZGV0YWlscyddIGFzIGFueVtdKS5tYXAoZGV0YWlsID0+IHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCAuLi5PYmplY3Qua2V5cyhkZXRhaWwudmFsdWUpLm1hcCgoaykgPT4ge1xuICAgICAgICAgICAgICAvLyBUaGUgaWQgcHJvcGVydHkgc2V0IGJlbG93IHdpbGwgYmUgbnVsbCBmb3IgYSBuZXcgY2FzZSBmbGFnLCBhbmQgYSB1bmlxdWUgaWQgcmV0dXJuZWQgZnJvbSBDQ0Qgd2hlblxuICAgICAgICAgICAgICAvLyB1cGRhdGluZyBhbiBleGlzdGluZyBmbGFnXG4gICAgICAgICAgICAgIHN3aXRjaCAoaykge1xuICAgICAgICAgICAgICAgIC8vIFRoZXNlIHR3byBmaWVsZHMgYXJlIGRhdGUtdGltZSBmaWVsZHNcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRlVGltZU1vZGlmaWVkJzpcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRlVGltZUNyZWF0ZWQnOlxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgW2tdOiBkZXRhaWwudmFsdWVba10gPyBuZXcgRGF0ZShkZXRhaWwudmFsdWVba10pIDogbnVsbCwgaWQ6IGRldGFpbC5pZCB9O1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgZmllbGQgaXMgYSBcInllcy9ub1wiIGZpZWxkXG4gICAgICAgICAgICAgICAgY2FzZSAnaGVhcmluZ1JlbGV2YW50JzpcbiAgICAgICAgICAgICAgICAgIHJldHVybiBkZXRhaWwudmFsdWVba10udG9VcHBlckNhc2UoKSA9PT0gJ1lFUycgPyB7IFtrXTogdHJ1ZSwgaWQ6IGRldGFpbC5pZCB9IDogeyBba106IGZhbHNlLCBpZDogZGV0YWlsLmlkIH07XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIHJldHVybiB7IFtrXTogZGV0YWlsLnZhbHVlW2tdLCBpZDogZGV0YWlsLmlkIH07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9KSBhcyBGbGFnRGV0YWlsW11cbiAgICAgICAgICA6IG51bGwsXG4gICAgICAgIHZpc2liaWxpdHk6IHZhbHVlID8gdmFsdWVbJ3Zpc2liaWxpdHknXSA6IG51bGwsXG4gICAgICAgIGdyb3VwSWQ6IHZhbHVlID8gdmFsdWVbJ2dyb3VwSWQnXSA6IG51bGxcbiAgICAgIH0sXG4gICAgICBwYXRoVG9GbGFnc0Zvcm1Hcm91cCxcbiAgICAgIGNhc2VGaWVsZFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ291bnQgYWN0aXZlIGZsYWdzIGluIGEgYENhc2VGaWVsZGAgaW5zdGFuY2UsIHJlY3Vyc2luZyBhbmQgaXRlcmF0aW5nIHRocm91Z2ggc3ViLWZpZWxkcyBvZiBhIENvbXBsZXggZmllbGQgb3IgZWFjaFxuICAgKiBmaWVsZCBpbiBhIENvbGxlY3Rpb24gZmllbGQuXG4gICAqXG4gICAqIEBwYXJhbSBhY3RpdmVDb3VudCBBbiBhY2N1bXVsYXRpb24gb2YgdGhlIHRvdGFsIG51bWJlciBvZiBhY3RpdmUgZmxhZ3NcbiAgICogQHBhcmFtIGNhc2VGaWVsZCBBIGBDYXNlRmllbGRgIGluc3RhbmNlIGZvciB3aGljaCB0byBjb3VudCB0aGUgYWN0aXZlIGZsYWdzXG4gICAqIEBwYXJhbSBjdXJyZW50VmFsdWUgVGhlIGN1cnJlbnQgdmFsdWUgb2JqZWN0IG9mIGEgYENhc2VGaWVsZGAgdGhhdCBpcyBhIHN1Yi1maWVsZCBvZiBhIG5vbiByb290LWxldmVsIENvbXBsZXggZmllbGQuXG4gICAqIChGb3IgQ29tcGxleCB0eXBlcywgb25seSB0aGUgX3Jvb3QtbGV2ZWxfIGBDYXNlRmllbGRgIGNvbnRhaW5zIGEgdmFsdWUgcHJvcGVydHkgLSBhbGwgc3ViLWZpZWxkcywgaW5jbHVkaW5nIGFueVxuICAgKiBuZXN0ZWQgQ29tcGxleCBmaWVsZHMsIGRvICpub3QqIGNvbnRhaW4gYW55IHZhbHVlcyB0aGVtc2VsdmVzLilcbiAgICogQHJldHVybnMgVGhlIGNvdW50IG9mIGFjdGl2ZSBmbGFnc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb3VudEFjdGl2ZUZsYWdzSW5DYXNlRmllbGQoYWN0aXZlQ291bnQ6IG51bWJlciwgY2FzZUZpZWxkOiBDYXNlRmllbGQsIGN1cnJlbnRWYWx1ZT86IG9iamVjdCk6IG51bWJlciB7XG4gICAgY29uc3QgZmllbGRUeXBlID0gY2FzZUZpZWxkLmZpZWxkX3R5cGU7XG4gICAgc3dpdGNoIChmaWVsZFR5cGUudHlwZSkge1xuICAgICAgY2FzZSAnQ29tcGxleCc6XG4gICAgICAgIGlmIChGaWVsZHNVdGlscy5pc0ZsYWdzQ2FzZUZpZWxkKGNhc2VGaWVsZCkpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgRmxhZ3MgQ2FzZUZpZWxkIGhhcyBhIHZhbHVlLCBpdCBpcyBhIHJvb3QtbGV2ZWwgQ29tcGxleCBmaWVsZDsgaWYgaXQgZG9lcyBub3QsIGl0IGlzIGEgRmxhZ3NcbiAgICAgICAgICAvLyBDYXNlRmllbGQgdGhhdCBpcyBhIHN1Yi1maWVsZCB3aXRoaW4gYW5vdGhlciBDb21wbGV4IGZpZWxkLCBzbyB1c2UgdGhlIGN1cnJlbnRWYWx1ZSB2YWx1ZSAoaWYgYW55KSBpbnN0ZWFkXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBjYXNlRmllbGQudmFsdWUgPyBjYXNlRmllbGQudmFsdWUgOiBjdXJyZW50VmFsdWU7XG4gICAgICAgICAgaWYgKHZhbHVlICYmIEZpZWxkc1V0aWxzLmlzTm9uRW1wdHlPYmplY3QodmFsdWUpICYmIHZhbHVlLmRldGFpbHMpIHtcbiAgICAgICAgICAgIGFjdGl2ZUNvdW50ID0gdmFsdWUuZGV0YWlscy5yZWR1Y2UoXG4gICAgICAgICAgICAgIChjb3VudCwgZGV0YWlsKSA9PiBkZXRhaWwudmFsdWUuc3RhdHVzID09PSBDYXNlRmxhZ1N0YXR1cy5BQ1RJVkUgPyBjb3VudCArIDEgOiBjb3VudCxcbiAgICAgICAgICAgICAgYWN0aXZlQ291bnRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGZpZWxkVHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gY2FzZUZpZWxkLnZhbHVlID8gY2FzZUZpZWxkLnZhbHVlIDogY3VycmVudFZhbHVlO1xuICAgICAgICAgIGlmICh2YWx1ZSAmJiBGaWVsZHNVdGlscy5pc05vbkVtcHR5T2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgYWN0aXZlQ291bnQgPSBmaWVsZFR5cGUuY29tcGxleF9maWVsZHMucmVkdWNlKChhY3RpdmVGbGFnc0NvdW50T2ZDb21wbGV4RmllbGQsIHN1YkZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvdW50QWN0aXZlRmxhZ3NJbkNhc2VGaWVsZChcbiAgICAgICAgICAgICAgICBhY3RpdmVGbGFnc0NvdW50T2ZDb21wbGV4RmllbGQsXG4gICAgICAgICAgICAgICAgc3ViRmllbGQsXG4gICAgICAgICAgICAgICAgdmFsdWVbc3ViRmllbGQuaWRdXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LCBhY3RpdmVDb3VudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gRm9yIGEgQ29sbGVjdGlvbiBmaWVsZCwgdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGRpcmVjdGx5IGFzIGtleS12YWx1ZSBwYWlycyBpbiB0aGUgQ2FzZUZpZWxkJ3MgdmFsdWUgcHJvcGVydHlcbiAgICAgIC8vIGFzIGFuIGFycmF5LCB1bmxlc3MgdGhlIGNvbGxlY3Rpb24gaXMgYSBzdWItZmllbGQgb2YgYSBDb21wbGV4IHR5cGUgLSBzdWItZmllbGRzIG5ldmVyIGNvbnRhaW4gdmFsdWVzXG4gICAgICBjYXNlICdDb2xsZWN0aW9uJzpcbiAgICAgICAgaWYgKEZpZWxkc1V0aWxzLmlzRmxhZ3NGaWVsZFR5cGUoZmllbGRUeXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZSkpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgQ29sbGVjdGlvbiBDYXNlRmllbGQgaGFzIGEgdmFsdWUgKGFuIGFycmF5KSwgaXQgaXMgYSByb290LWxldmVsIENvbGxlY3Rpb24gZmllbGQ7IGlmIGl0IGRvZXMgbm90LFxuICAgICAgICAgIC8vIGl0IGlzIGEgQ29sbGVjdGlvbiBDYXNlRmllbGQgdGhhdCBpcyBhIHN1Yi1maWVsZCB3aXRoaW4gYSBDb21wbGV4IGZpZWxkLCBzbyB1c2UgdGhlIGN1cnJlbnRWYWx1ZSB2YWx1ZVxuICAgICAgICAgIC8vIChpZiBhbnkpIGluc3RlYWRcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNhc2VGaWVsZC52YWx1ZSA/IGNhc2VGaWVsZC52YWx1ZSA6IGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKGl0ZW06IHsgaWQ6IHN0cmluZzsgdmFsdWU6IG9iamVjdDsgfSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoaXRlbS52YWx1ZVsnZGV0YWlscyddKSB7XG4gICAgICAgICAgICAgICAgYWN0aXZlQ291bnQgPSBpdGVtLnZhbHVlWydkZXRhaWxzJ10ucmVkdWNlKFxuICAgICAgICAgICAgICAgICAgKGNvdW50LCBkZXRhaWwpID0+IGRldGFpbC52YWx1ZS5zdGF0dXMgPT09IENhc2VGbGFnU3RhdHVzLkFDVElWRSA/IGNvdW50ICsgMSA6IGNvdW50LFxuICAgICAgICAgICAgICAgICAgYWN0aXZlQ291bnRcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZmllbGRUeXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCcgJiYgZmllbGRUeXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcykge1xuICAgICAgICAgIGlmIChjYXNlRmllbGQudmFsdWUpIHtcbiAgICAgICAgICAgIC8vIFBlcmZvcm0gYSByZWR1Y3Rpb24gb3ZlciBlYWNoIENvbXBsZXggZmllbGQncyBzdWItZmllbGRzIChzaW1pbGFyIHRvIHdoYXQgaXMgZG9uZSBhYm92ZSBmb3Igbm9uLUZsYWdzXG4gICAgICAgICAgICAvLyBDb21wbGV4IGZpZWxkcylcbiAgICAgICAgICAgIC8vIChDYW5ub3QganVzdCBjYWxsIHRoaXMgZnVuY3Rpb24gcmVjdXJzaXZlbHkgZm9yIGVhY2ggQ29tcGxleCBmaWVsZCBpbiB0aGUgY29sbGVjdGlvbiBiZWNhdXNlIHRoZSBDYXNlRmllbGRcbiAgICAgICAgICAgIC8vIGZvciBlYWNoIG9uZSBpcyBub3QgcGFydCBvZiB0aGUgY29sbGVjdGlvbilcbiAgICAgICAgICAgIGNhc2VGaWVsZC52YWx1ZS5mb3JFYWNoKChpdGVtOiB7IGlkOiBzdHJpbmc7IHZhbHVlOiBvYmplY3Q7IH0pID0+IHtcbiAgICAgICAgICAgICAgYWN0aXZlQ291bnQgPSBmaWVsZFR5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLnJlZHVjZShcbiAgICAgICAgICAgICAgICAoYWN0aXZlRmxhZ3NDb3VudE9mQ29tcGxleEZpZWxkLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY291bnRBY3RpdmVGbGFnc0luQ2FzZUZpZWxkKGFjdGl2ZUZsYWdzQ291bnRPZkNvbXBsZXhGaWVsZCwgc3ViRmllbGQsIGl0ZW0udmFsdWVbc3ViRmllbGQuaWRdKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFjdGl2ZUNvdW50XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgLy8gSWdub3JlIGFsbCBvdGhlciBmaWVsZCB0eXBlc1xuICAgIH1cbiAgICByZXR1cm4gYWN0aXZlQ291bnQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2VGb3JGbGFnTGF1bmNoZXJDYXNlRmllbGQoY2FzZUZpZWxkOiBDYXNlRmllbGQpOiBzdHJpbmcge1xuICAgIHN3aXRjaChjYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcikge1xuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLkNSRUFURTpcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfMl9QT0lOVF8xOlxuICAgICAgICByZXR1cm4gJ1BsZWFzZSBzZWxlY3QgTmV4dCB0byBjb21wbGV0ZSB0aGUgY3JlYXRpb24gb2YgdGhlIGNhc2UgZmxhZyc7XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFX0VYVEVSTkFMOlxuICAgICAgICByZXR1cm4gJ1BsZWFzZSBzZWxlY3QgTmV4dCB0byBjb21wbGV0ZSB0aGUgY3JlYXRpb24gb2YgdGhlIHN1cHBvcnQgcmVxdWVzdCc7XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFOlxuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV8yX1BPSU5UXzE6XG4gICAgICAgIHJldHVybiAnUGxlYXNlIHNlbGVjdCBOZXh0IHRvIGNvbXBsZXRlIHRoZSB1cGRhdGUgb2YgdGhlIHNlbGVjdGVkIGNhc2UgZmxhZyc7XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMOlxuICAgICAgICByZXR1cm4gJ1BsZWFzZSBzZWxlY3QgTmV4dCB0byBjb21wbGV0ZSB0aGUgdXBkYXRlIG9mIHRoZSBzZWxlY3RlZCBzdXBwb3J0IHJlcXVlc3QnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBidWlsZENhblNob3dQcmVkaWNhdGUoZXZlbnRUcmlnZ2VyOiBDYXNlRXZlbnRUcmlnZ2VyLCBmb3JtOiBhbnkpOiBQcmVkaWNhdGU8V2l6YXJkUGFnZT4ge1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuZ2V0Q3VycmVudEV2ZW50U3RhdGUoZXZlbnRUcmlnZ2VyLCBmb3JtKTtcbiAgICByZXR1cm4gKHBhZ2U6IFdpemFyZFBhZ2UpOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBwYWdlLnBhcnNlZFNob3dDb25kaXRpb24ubWF0Y2goY3VycmVudFN0YXRlKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGdldEN1cnJlbnRFdmVudFN0YXRlKGV2ZW50VHJpZ2dlcjogeyBjYXNlX2ZpZWxkczogQ2FzZUZpZWxkW10gfSwgZm9ybTogRm9ybUdyb3VwKTogb2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5tZXJnZUNhc2VGaWVsZHNBbmRGb3JtRmllbGRzKGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcywgZm9ybS5jb250cm9sc1snZGF0YSddLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9uZUNhc2VGaWVsZChvYmo6IGFueSk6IENhc2VGaWVsZCB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCBvYmopO1xuICB9XG5cbiAgcHVibGljIG1lcmdlQ2FzZUZpZWxkc0FuZEZvcm1GaWVsZHMoY2FzZUZpZWxkczogQ2FzZUZpZWxkW10sIGZvcm1GaWVsZHM6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMubWVyZ2VGaWVsZHMoY2FzZUZpZWxkcywgZm9ybUZpZWxkcywgRmllbGRzVXRpbHMuREVGQVVMVF9NRVJHRV9GVU5DVElPTik7XG4gIH1cblxuICBwdWJsaWMgbWVyZ2VMYWJlbENhc2VGaWVsZHNBbmRGb3JtRmllbGRzKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdLCBmb3JtRmllbGRzOiBvYmplY3QpOiBvYmplY3Qge1xuICAgIHJldHVybiB0aGlzLm1lcmdlRmllbGRzKGNhc2VGaWVsZHMsIGZvcm1GaWVsZHMsIEZpZWxkc1V0aWxzLkxBQkVMX01FUkdFX0ZVTkNUSU9OKTtcbiAgfVxuXG4gIHB1YmxpYyBjb250cm9sSXRlcmF0b3IoXG4gICAgYUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCxcbiAgICBmb3JtQXJyYXlGbjogKGFycmF5OiBGb3JtQXJyYXkpID0+IHZvaWQsXG4gICAgZm9ybUdyb3VwRm46IChncm91cDogRm9ybUdyb3VwKSA9PiB2b2lkLFxuICAgIGNvbnRyb2xGbjogKGNvbnRyb2w6IEZvcm1Db250cm9sKSA9PiB2b2lkXG4gICk6IHZvaWQge1xuICAgIGlmIChhQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkgeyAvLyBXZSdyZSBpbiBhIGNvbGxlY3Rpb25cbiAgICAgIGZvcm1BcnJheUZuKGFDb250cm9sKTtcbiAgICB9IGVsc2UgaWYgKGFDb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7IC8vIFdlJ3JlIGluIGEgY29tcGxleCB0eXBlLlxuICAgICAgZm9ybUdyb3VwRm4oYUNvbnRyb2wpO1xuICAgIH0gZWxzZSBpZiAoYUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkgeyAvLyBGb3JtQ29udHJvbFxuICAgICAgY29udHJvbEZuKGFDb250cm9sKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1lcmdlRmllbGRzKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdLCBmb3JtRmllbGRzOiBvYmplY3QsIG1lcmdlRnVuY3Rpb246IChmaWVsZDogQ2FzZUZpZWxkLCByZXN1bHQ6IG9iamVjdCkgPT4gdm9pZCk6IG9iamVjdCB7XG4gICAgY29uc3QgcmVzdWx0OiBvYmplY3QgPSBGaWVsZHNVdGlscy5jbG9uZU9iamVjdChmb3JtRmllbGRzKTtcbiAgICBjYXNlRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgbWVyZ2VGdW5jdGlvbihmaWVsZCwgcmVzdWx0KTtcbiAgICAgIGlmIChmaWVsZC5maWVsZF90eXBlICYmIGZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMgJiYgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHJlc3VsdFtmaWVsZC5pZF0gPSB0aGlzLm1lcmdlRmllbGRzKGZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMsIHJlc3VsdFtmaWVsZC5pZF0sIG1lcmdlRnVuY3Rpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==