@hmcts/ccd-case-ui-toolkit 6.16.2-ccpay-upgrade → 6.18.0-welsh-release

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 (433) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +8831 -4404
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +1 -1
  6. package/esm2015/lib/components/banners/alert/alert.component.js +7 -5
  7. package/esm2015/lib/components/banners/alert/alert.module.js +12 -4
  8. package/esm2015/lib/components/footer/footer.component.js +55 -30
  9. package/esm2015/lib/components/footer/footers.module.js +12 -4
  10. package/esm2015/lib/components/form/date-input/date-input.component.js +56 -37
  11. package/esm2015/lib/components/form/form.module.js +8 -4
  12. package/esm2015/lib/components/header/header-bar/header-bar.component.js +32 -19
  13. package/esm2015/lib/components/header/headers.module.js +6 -4
  14. package/esm2015/lib/components/header/navigation/navigation-item.component.js +9 -7
  15. package/esm2015/lib/components/header/phase/phase.component.js +20 -9
  16. package/esm2015/lib/components/tabs/tabs.component.js +8 -5
  17. package/esm2015/lib/components/tabs/tabs.module.js +6 -2
  18. package/esm2015/lib/shared/commons/case-edit-data/case-edit-validation.model.js +1 -1
  19. package/esm2015/lib/shared/components/activity/activity-banner/activity-banner.component.js +12 -9
  20. package/esm2015/lib/shared/components/activity/activity-icon/activity-icon.component.js +11 -8
  21. package/esm2015/lib/shared/components/activity/activity.component.js +15 -10
  22. package/esm2015/lib/shared/components/activity/activity.module.js +6 -2
  23. package/esm2015/lib/shared/components/case-editor/case-create/case-create.component.js +2 -2
  24. package/esm2015/lib/shared/components/case-editor/case-edit/case-edit.component.js +1 -1
  25. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +30 -26
  26. package/esm2015/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.js +2 -2
  27. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +51 -34
  28. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +111 -83
  29. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +35 -28
  30. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +51 -26
  31. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +51 -28
  32. package/esm2015/lib/shared/components/case-editor/case-progress/case-progress.component.js +2 -2
  33. package/esm2015/lib/shared/components/case-editor/services/case-edit-wizard.guard.js +3 -2
  34. package/esm2015/lib/shared/components/case-editor/services/case-flag-state.service.js +19 -0
  35. package/esm2015/lib/shared/components/case-editor/services/work-allocation.service.js +2 -2
  36. package/esm2015/lib/shared/components/case-history/case-history.component.js +89 -63
  37. package/esm2015/lib/shared/components/case-history/case-history.module.js +18 -14
  38. package/esm2015/lib/shared/components/case-list/case-list.component.js +56 -49
  39. package/esm2015/lib/shared/components/case-list/case-list.module.js +8 -4
  40. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +11 -7
  41. package/esm2015/lib/shared/components/case-timeline/case-timeline.component.js +9 -6
  42. package/esm2015/lib/shared/components/case-timeline/case-timeline.module.js +12 -8
  43. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +106 -61
  44. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +89 -69
  45. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.js +45 -23
  46. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +16 -13
  47. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +157 -117
  48. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.js +32 -20
  49. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +107 -79
  50. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +79 -49
  51. package/esm2015/lib/shared/components/case-viewer/case-view/case-view.component.js +1 -1
  52. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +37 -27
  53. package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +36 -22
  54. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.component.js +63 -40
  55. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.module.js +6 -2
  56. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.js +28 -14
  57. package/esm2015/lib/shared/components/dialogs/dialogs.module.js +6 -2
  58. package/esm2015/lib/shared/components/dialogs/document-dialog/document-dialog.component.js +28 -14
  59. package/esm2015/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.js +28 -14
  60. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.js +28 -14
  61. package/esm2015/lib/shared/components/error/callback-errors.component.js +34 -23
  62. package/esm2015/lib/shared/components/error/errors.module.js +6 -2
  63. package/esm2015/lib/shared/components/error-message/error-message.component.js +14 -11
  64. package/esm2015/lib/shared/components/error-message/error-message.module.js +8 -4
  65. package/esm2015/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.js +39 -20
  66. package/esm2015/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.js +34 -18
  67. package/esm2015/lib/shared/components/event-start/components/task-assigned/task-assigned.component.js +34 -19
  68. package/esm2015/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.js +50 -25
  69. package/esm2015/lib/shared/components/event-start/components/task-conflict/task-conflict.component.js +39 -20
  70. package/esm2015/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.js +34 -18
  71. package/esm2015/lib/shared/components/event-start/event-start.module.js +8 -4
  72. package/esm2015/lib/shared/components/event-trigger/event-trigger.component.js +27 -17
  73. package/esm2015/lib/shared/components/event-trigger/event-trigger.module.js +6 -2
  74. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.component.js +7 -5
  75. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.module.js +6 -2
  76. package/esm2015/lib/shared/components/pagination/pagination.component.js +84 -67
  77. package/esm2015/lib/shared/components/pagination/pagination.module.js +8 -4
  78. package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +50 -31
  79. package/esm2015/lib/shared/components/palette/base-field/abstract-field-read.component.js +1 -1
  80. package/esm2015/lib/shared/components/palette/base-field/field-read-label.component.js +10 -8
  81. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +5 -1
  82. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +1 -1
  83. package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +62 -37
  84. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +246 -42
  85. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +144 -73
  86. package/esm2015/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.js +181 -0
  87. package/esm2015/lib/shared/components/palette/case-flag/components/index.js +3 -1
  88. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +62 -87
  89. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.js +6 -0
  90. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +133 -101
  91. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +54 -34
  92. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +186 -113
  93. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.js +292 -0
  94. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +286 -99
  95. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +1 -1
  96. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
  97. package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +1 -1
  98. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.js +9 -0
  99. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.js +12 -0
  100. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +3 -2
  101. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +8 -3
  102. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.js +6 -0
  103. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.js +6 -0
  104. package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +8 -2
  105. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +3 -2
  106. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +2 -1
  107. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.js +6 -0
  108. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.js +6 -0
  109. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +3 -1
  110. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +3 -2
  111. package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +8 -4
  112. package/esm2015/lib/shared/components/palette/case-flag/index.js +2 -1
  113. package/esm2015/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.js +41 -0
  114. package/esm2015/lib/shared/components/palette/case-flag/pipes/index.js +5 -0
  115. package/esm2015/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.js +41 -0
  116. package/esm2015/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.js +109 -0
  117. package/esm2015/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.js +77 -0
  118. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +121 -50
  119. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +250 -141
  120. package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +16 -12
  121. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +68 -57
  122. package/esm2015/lib/shared/components/palette/complex/read-complex-field-collection-table.component.js +50 -46
  123. package/esm2015/lib/shared/components/palette/complex/read-complex-field-raw.component.js +7 -6
  124. package/esm2015/lib/shared/components/palette/complex/read-complex-field-table.component.js +22 -20
  125. package/esm2015/lib/shared/components/palette/complex/write-complex-field.component.js +5 -4
  126. package/esm2015/lib/shared/components/palette/date/write-date-field.component.js +16 -12
  127. package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +29 -17
  128. package/esm2015/lib/shared/components/palette/document/write-document-field.component.js +31 -25
  129. package/esm2015/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.js +9 -7
  130. package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +32 -20
  131. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +2 -2
  132. package/esm2015/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.js +9 -7
  133. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +27 -18
  134. package/esm2015/lib/shared/components/palette/email/write-email-field.component.js +16 -12
  135. package/esm2015/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.js +9 -7
  136. package/esm2015/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.js +19 -14
  137. package/esm2015/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.js +9 -7
  138. package/esm2015/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.js +20 -15
  139. package/esm2015/lib/shared/components/palette/history/event-log/event-log-details.component.js +87 -65
  140. package/esm2015/lib/shared/components/palette/history/event-log/event-log-table.component.js +60 -46
  141. package/esm2015/lib/shared/components/palette/index.js +3 -2
  142. package/esm2015/lib/shared/components/palette/label/label-field.component.js +24 -5
  143. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.js +1 -1
  144. package/esm2015/lib/shared/components/palette/markdown/index.js +2 -1
  145. package/esm2015/lib/shared/components/palette/markdown/markdown-component.module.js +42 -0
  146. package/esm2015/lib/shared/components/palette/markdown/markdown.component.js +4 -4
  147. package/esm2015/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.js +16 -12
  148. package/esm2015/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.js +15 -11
  149. package/esm2015/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +19 -14
  150. package/esm2015/lib/shared/components/palette/number/write-number-field.component.js +16 -12
  151. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +43 -25
  152. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +7 -6
  153. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-raw.component.js +41 -29
  154. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-table.component.js +48 -35
  155. package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +88 -50
  156. package/esm2015/lib/shared/components/palette/palette.module.js +185 -88
  157. package/esm2015/lib/shared/components/palette/palette.service.js +5 -2
  158. package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +16 -12
  159. package/esm2015/lib/shared/components/palette/query-management/__mocks__/index.js +120 -0
  160. package/esm2015/lib/shared/components/palette/query-management/components/index.js +9 -0
  161. package/esm2015/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.js +64 -0
  162. package/esm2015/lib/shared/components/palette/query-management/components/query-create/query-create.component.js +18 -0
  163. package/esm2015/lib/shared/components/palette/query-management/components/query-details/query-details.component.js +56 -0
  164. package/esm2015/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.js +150 -0
  165. package/esm2015/lib/shared/components/palette/query-management/components/query-list/query-list.component.js +175 -0
  166. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.js +67 -0
  167. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.js +214 -0
  168. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.js +108 -0
  169. package/esm2015/lib/shared/components/palette/query-management/index.js +6 -0
  170. package/esm2015/lib/shared/components/palette/query-management/models/index.js +7 -0
  171. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-message.model.js +2 -0
  172. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.js +2 -0
  173. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.js +2 -0
  174. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.js +18 -0
  175. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.js +35 -0
  176. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.js +6 -0
  177. package/esm2015/lib/shared/components/palette/query-management/read-query-management-field.component.js +83 -0
  178. package/esm2015/lib/shared/components/palette/query-management/utils/query-management.utils.js +12 -0
  179. package/esm2015/lib/shared/components/palette/query-management/write-query-management-field.component.js +45 -0
  180. package/esm2015/lib/shared/components/palette/text/read-text-field.component.js +7 -5
  181. package/esm2015/lib/shared/components/palette/text/write-text-field.component.js +16 -12
  182. package/esm2015/lib/shared/components/palette/text-area/read-text-area-field.component.js +7 -5
  183. package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +16 -12
  184. package/esm2015/lib/shared/components/palette/utils/first-error.pipe.js +22 -11
  185. package/esm2015/lib/shared/components/palette/utils/utils.module.js +12 -6
  186. package/esm2015/lib/shared/components/palette/yes-no/read-yes-no-field.component.js +7 -5
  187. package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +20 -15
  188. package/esm2015/lib/shared/components/search-filters/search-filters.component.js +60 -35
  189. package/esm2015/lib/shared/components/search-filters/search-filters.module.js +14 -10
  190. package/esm2015/lib/shared/components/search-result/search-result.component.js +132 -95
  191. package/esm2015/lib/shared/components/search-result/search-result.module.js +16 -13
  192. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +90 -52
  193. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.module.js +13 -9
  194. package/esm2015/lib/shared/domain/alert/alert-status-params.model.js +2 -0
  195. package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +17 -2
  196. package/esm2015/lib/shared/domain/case-view/case-view-event-ids.enum.js +6 -0
  197. package/esm2015/lib/shared/domain/case-view/case-view-trigger.model.js +1 -2
  198. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +3 -1
  199. package/esm2015/lib/shared/fixture/shared.test.fixture.js +2 -1
  200. package/esm2015/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.js +16 -0
  201. package/esm2015/lib/shared/pipes/generic/index.js +2 -0
  202. package/esm2015/lib/shared/pipes/index.js +3 -2
  203. package/esm2015/lib/shared/pipes/pipes.module.js +9 -5
  204. package/esm2015/lib/shared/services/alert/alert.service.js +28 -8
  205. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +9 -3
  206. package/esm2015/lib/shared/services/request/request.options.builder.js +7 -1
  207. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +10614 -6668
  208. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  209. package/lib/app.config.d.ts.map +1 -1
  210. package/lib/components/banners/alert/alert.module.d.ts +2 -1
  211. package/lib/components/banners/alert/alert.module.d.ts.map +1 -1
  212. package/lib/components/footer/footers.module.d.ts +2 -1
  213. package/lib/components/footer/footers.module.d.ts.map +1 -1
  214. package/lib/components/form/form.module.d.ts +2 -1
  215. package/lib/components/form/form.module.d.ts.map +1 -1
  216. package/lib/components/header/headers.module.d.ts +2 -1
  217. package/lib/components/header/headers.module.d.ts.map +1 -1
  218. package/lib/components/tabs/tabs.component.d.ts.map +1 -1
  219. package/lib/components/tabs/tabs.module.d.ts +2 -1
  220. package/lib/components/tabs/tabs.module.d.ts.map +1 -1
  221. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts +1 -0
  222. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
  223. package/lib/shared/components/activity/activity.module.d.ts +2 -1
  224. package/lib/shared/components/activity/activity.module.d.ts.map +1 -1
  225. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +6 -5
  226. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  227. package/lib/shared/components/case-editor/case-editor.module.d.ts +3 -2
  228. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  229. package/lib/shared/components/case-editor/services/case-edit-wizard.guard.d.ts.map +1 -1
  230. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +11 -0
  231. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -0
  232. package/lib/shared/components/case-history/case-history.module.d.ts +2 -1
  233. package/lib/shared/components/case-history/case-history.module.d.ts.map +1 -1
  234. package/lib/shared/components/case-list/case-list.module.d.ts +2 -1
  235. package/lib/shared/components/case-list/case-list.module.d.ts.map +1 -1
  236. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts +2 -1
  237. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts.map +1 -1
  238. package/lib/shared/components/case-timeline/case-timeline.module.d.ts +2 -1
  239. package/lib/shared/components/case-timeline/case-timeline.module.d.ts.map +1 -1
  240. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  241. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +3 -1
  242. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  243. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +6 -4
  244. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  245. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts +2 -1
  246. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts.map +1 -1
  247. package/lib/shared/components/dialogs/dialogs.module.d.ts +2 -1
  248. package/lib/shared/components/dialogs/dialogs.module.d.ts.map +1 -1
  249. package/lib/shared/components/error/errors.module.d.ts +2 -1
  250. package/lib/shared/components/error/errors.module.d.ts.map +1 -1
  251. package/lib/shared/components/error-message/error-message.module.d.ts +2 -1
  252. package/lib/shared/components/error-message/error-message.module.d.ts.map +1 -1
  253. package/lib/shared/components/event-start/event-start.module.d.ts +2 -1
  254. package/lib/shared/components/event-start/event-start.module.d.ts.map +1 -1
  255. package/lib/shared/components/event-trigger/event-trigger.module.d.ts +2 -1
  256. package/lib/shared/components/event-trigger/event-trigger.module.d.ts.map +1 -1
  257. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts +2 -1
  258. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts.map +1 -1
  259. package/lib/shared/components/pagination/pagination.module.d.ts +2 -1
  260. package/lib/shared/components/pagination/pagination.module.d.ts.map +1 -1
  261. package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts.map +1 -1
  262. package/lib/shared/components/palette/base-field/field-read.component.d.ts +1 -0
  263. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  264. package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
  265. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +2 -1
  266. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  267. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +20 -5
  268. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  269. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +2 -1
  270. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  271. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +28 -0
  272. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -0
  273. package/lib/shared/components/palette/case-flag/components/index.d.ts +2 -0
  274. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  275. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +4 -8
  276. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  277. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +5 -0
  278. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +1 -0
  279. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +10 -8
  280. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  281. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +2 -1
  282. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  283. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +12 -8
  284. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  285. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +27 -0
  286. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -0
  287. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +19 -9
  288. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  289. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +1 -10
  290. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  291. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +6 -0
  292. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  293. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +1 -0
  294. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  295. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +8 -0
  296. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +1 -0
  297. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +11 -0
  298. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +1 -0
  299. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +2 -1
  300. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  301. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +8 -3
  302. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  303. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +5 -0
  304. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +1 -0
  305. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +5 -0
  306. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +1 -0
  307. package/lib/shared/components/palette/case-flag/enums/index.d.ts +7 -1
  308. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  309. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +2 -1
  310. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  311. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +1 -0
  312. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  313. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +5 -0
  314. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +1 -0
  315. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +5 -0
  316. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +1 -0
  317. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +3 -1
  318. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  319. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +3 -2
  320. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  321. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +7 -3
  322. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  323. package/lib/shared/components/palette/case-flag/index.d.ts +1 -0
  324. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  325. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +19 -0
  326. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +1 -0
  327. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +5 -0
  328. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +1 -0
  329. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +18 -0
  330. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +1 -0
  331. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +25 -0
  332. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +1 -0
  333. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +21 -0
  334. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +1 -0
  335. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +11 -8
  336. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  337. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +23 -24
  338. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  339. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +3 -2
  340. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  341. package/lib/shared/components/palette/index.d.ts +2 -1
  342. package/lib/shared/components/palette/index.d.ts.map +1 -1
  343. package/lib/shared/components/palette/label/label-field.component.d.ts +2 -1
  344. package/lib/shared/components/palette/label/label-field.component.d.ts.map +1 -1
  345. package/lib/shared/components/palette/markdown/index.d.ts +1 -0
  346. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  347. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +13 -0
  348. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +1 -0
  349. package/lib/shared/components/palette/markdown/markdown.component.d.ts +3 -3
  350. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  351. package/lib/shared/components/palette/palette.module.d.ts +134 -117
  352. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  353. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  354. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +3 -0
  355. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +1 -0
  356. package/lib/shared/components/palette/query-management/components/index.d.ts +9 -0
  357. package/lib/shared/components/palette/query-management/components/index.d.ts.map +1 -0
  358. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +10 -0
  359. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +1 -0
  360. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts +9 -0
  361. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts.map +1 -0
  362. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +11 -0
  363. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -0
  364. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts +8 -0
  365. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts.map +1 -0
  366. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +18 -0
  367. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +1 -0
  368. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +17 -0
  369. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +1 -0
  370. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +8 -0
  371. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -0
  372. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +10 -0
  373. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -0
  374. package/lib/shared/components/palette/query-management/index.d.ts +6 -0
  375. package/lib/shared/components/palette/query-management/index.d.ts.map +1 -0
  376. package/lib/shared/components/palette/query-management/models/index.d.ts +7 -0
  377. package/lib/shared/components/palette/query-management/models/index.d.ts.map +1 -0
  378. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts +14 -0
  379. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts.map +1 -0
  380. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts +7 -0
  381. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts.map +1 -0
  382. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +7 -0
  383. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +1 -0
  384. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +10 -0
  385. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -0
  386. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +21 -0
  387. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -0
  388. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts +5 -0
  389. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts.map +1 -0
  390. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +17 -0
  391. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -0
  392. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +7 -0
  393. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -0
  394. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts +12 -0
  395. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts.map +1 -0
  396. package/lib/shared/components/palette/utils/first-error.pipe.d.ts +3 -0
  397. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  398. package/lib/shared/components/palette/utils/utils.module.d.ts +2 -1
  399. package/lib/shared/components/palette/utils/utils.module.d.ts.map +1 -1
  400. package/lib/shared/components/palette/yes-no/read-yes-no-field.component.d.ts.map +1 -1
  401. package/lib/shared/components/palette/yes-no/write-yes-no-field.component.d.ts.map +1 -1
  402. package/lib/shared/components/search-filters/search-filters.module.d.ts +2 -1
  403. package/lib/shared/components/search-filters/search-filters.module.d.ts.map +1 -1
  404. package/lib/shared/components/search-result/search-result.component.d.ts +1 -1
  405. package/lib/shared/components/search-result/search-result.module.d.ts +3 -2
  406. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -1
  407. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts +2 -1
  408. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts.map +1 -1
  409. package/lib/shared/domain/alert/alert-status-params.model.d.ts +6 -0
  410. package/lib/shared/domain/alert/alert-status-params.model.d.ts.map +1 -0
  411. package/lib/shared/domain/case-flag/flag-type.model.d.ts +6 -1
  412. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  413. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +5 -0
  414. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +1 -0
  415. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +0 -1
  416. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  417. package/lib/shared/domain/definition/display-context-enum.model.d.ts +3 -1
  418. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  419. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  420. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +8 -0
  421. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +1 -0
  422. package/lib/shared/pipes/generic/index.d.ts +2 -0
  423. package/lib/shared/pipes/generic/index.d.ts.map +1 -0
  424. package/lib/shared/pipes/index.d.ts +2 -1
  425. package/lib/shared/pipes/index.d.ts.map +1 -1
  426. package/lib/shared/pipes/pipes.module.d.ts +3 -2
  427. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  428. package/lib/shared/services/alert/alert.service.d.ts +8 -4
  429. package/lib/shared/services/alert/alert.service.d.ts.map +1 -1
  430. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +3 -2
  431. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  432. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  433. package/package.json +1 -1
@@ -1,70 +1,132 @@
1
1
  import { Component } from '@angular/core';
2
- import { ActivatedRoute } from '@angular/router';
2
+ import { ActivatedRoute, Router } from '@angular/router';
3
3
  import { FieldsUtils } from '../../../services/fields';
4
+ import { CaseFlagStateService } from '../../case-editor/services/case-flag-state.service';
4
5
  import { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';
5
6
  import { PaletteContext } from '../base-field/palette-context.enum';
6
- import { CaseFlagSummaryListDisplayMode } from './enums';
7
+ import { CaseFlagDisplayContextParameter, CaseFlagStatus } from './enums';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/router";
9
- function ReadCaseFlagFieldComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
10
+ import * as i2 from "../../case-editor/services/case-flag-state.service";
11
+ function ReadCaseFlagFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
12
+ const _r3 = i0.ɵɵgetCurrentView();
10
13
  i0.ɵɵelementContainerStart(0);
11
- i0.ɵɵelement(1, "ccd-case-flag-summary-list", 3);
14
+ i0.ɵɵelementStart(1, "ccd-case-flag-summary-list", 1);
15
+ i0.ɵɵlistener("changeButtonEmitter", function ReadCaseFlagFieldComponent_ng_container_0_Template_ccd_case_flag_summary_list_changeButtonEmitter_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return ctx_r2.navigateBackToForm($event); });
16
+ i0.ɵɵelementEnd();
12
17
  i0.ɵɵelementContainerEnd();
13
18
  } if (rf & 2) {
14
19
  const ctx_r0 = i0.ɵɵnextContext();
15
20
  i0.ɵɵadvance(1);
16
- i0.ɵɵproperty("flagForSummaryDisplay", ctx_r0.flagForSummaryDisplay)("summaryListDisplayMode", ctx_r0.summaryListDisplayMode);
21
+ i0.ɵɵproperty("flagForSummaryDisplay", ctx_r0.flagForSummaryDisplay)("displayContextParameter", ctx_r0.displayContextParameter);
17
22
  } }
18
- function ReadCaseFlagFieldComponent_ng_container_2_div_3_ccd_case_flag_table_1_Template(rf, ctx) { if (rf & 1) {
23
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_2_div_4_ccd_case_flag_table_1_Template(rf, ctx) { if (rf & 1) {
19
24
  i0.ɵɵelement(0, "ccd-case-flag-table", 8);
20
25
  } if (rf & 2) {
21
- const flagData_r4 = i0.ɵɵnextContext().$implicit;
22
- i0.ɵɵproperty("tableCaption", flagData_r4.flags.partyName)("flagData", flagData_r4)("firstColumnHeader", "Party level flags");
26
+ const flagData_r7 = i0.ɵɵnextContext().$implicit;
27
+ const ctx_r8 = i0.ɵɵnextContext(3);
28
+ i0.ɵɵproperty("tableCaption", "")("flagData", flagData_r7)("firstColumnHeader", flagData_r7.flags.partyName)("caseFlagsExternalUser", ctx_r8.caseFlagsExternalUser);
23
29
  } }
24
- function ReadCaseFlagFieldComponent_ng_container_2_div_3_Template(rf, ctx) { if (rf & 1) {
30
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_2_div_4_Template(rf, ctx) { if (rf & 1) {
25
31
  i0.ɵɵelementStart(0, "div");
26
- i0.ɵɵtemplate(1, ReadCaseFlagFieldComponent_ng_container_2_div_3_ccd_case_flag_table_1_Template, 1, 3, "ccd-case-flag-table", 7);
32
+ i0.ɵɵtemplate(1, ReadCaseFlagFieldComponent_ng_container_1_ng_container_2_div_4_ccd_case_flag_table_1_Template, 1, 4, "ccd-case-flag-table", 7);
27
33
  i0.ɵɵelementEnd();
28
34
  } if (rf & 2) {
29
- const flagData_r4 = ctx.$implicit;
35
+ const flagData_r7 = ctx.$implicit;
30
36
  i0.ɵɵadvance(1);
31
- i0.ɵɵproperty("ngIf", flagData_r4.flags.partyName);
37
+ i0.ɵɵproperty("ngIf", flagData_r7.flags.partyName);
38
+ } }
39
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵelementContainerStart(0);
41
+ i0.ɵɵelementStart(1, "h2", 5);
42
+ i0.ɵɵtext(2);
43
+ i0.ɵɵpipe(3, "rpxTranslate");
44
+ i0.ɵɵelementEnd();
45
+ i0.ɵɵtemplate(4, ReadCaseFlagFieldComponent_ng_container_1_ng_container_2_div_4_Template, 2, 1, "div", 6);
46
+ i0.ɵɵelementContainerEnd();
47
+ } if (rf & 2) {
48
+ const ctx_r4 = i0.ɵɵnextContext(2);
49
+ i0.ɵɵadvance(2);
50
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "Support requested"), " ");
51
+ i0.ɵɵadvance(2);
52
+ i0.ɵɵproperty("ngForOf", ctx_r4.partyLevelCaseFlagData);
53
+ } }
54
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_div_4_ccd_case_flag_table_1_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵelement(0, "ccd-case-flag-table", 10);
56
+ i0.ɵɵpipe(1, "rpxTranslate");
57
+ } if (rf & 2) {
58
+ const flagData_r12 = i0.ɵɵnextContext().$implicit;
59
+ i0.ɵɵproperty("tableCaption", flagData_r12.flags.partyName)("flagData", flagData_r12)("firstColumnHeader", i0.ɵɵpipeBind1(1, 3, "Party level flags"));
32
60
  } }
33
- function ReadCaseFlagFieldComponent_ng_container_2_div_4_Template(rf, ctx) { if (rf & 1) {
61
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_div_4_Template(rf, ctx) { if (rf & 1) {
34
62
  i0.ɵɵelementStart(0, "div");
35
- i0.ɵɵelement(1, "ccd-case-flag-table", 8);
63
+ i0.ɵɵtemplate(1, ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_div_4_ccd_case_flag_table_1_Template, 2, 5, "ccd-case-flag-table", 9);
36
64
  i0.ɵɵelementEnd();
37
65
  } if (rf & 2) {
38
- const ctx_r3 = i0.ɵɵnextContext(2);
66
+ const flagData_r12 = ctx.$implicit;
39
67
  i0.ɵɵadvance(1);
40
- i0.ɵɵproperty("tableCaption", "Case level flags")("flagData", ctx_r3.caseLevelCaseFlagData)("firstColumnHeader", "Case flags");
68
+ i0.ɵɵproperty("ngIf", flagData_r12.flags.partyName);
41
69
  } }
42
- function ReadCaseFlagFieldComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
70
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_div_5_Template(rf, ctx) { if (rf & 1) {
71
+ i0.ɵɵelementStart(0, "div");
72
+ i0.ɵɵelement(1, "ccd-case-flag-table", 10);
73
+ i0.ɵɵpipe(2, "rpxTranslate");
74
+ i0.ɵɵpipe(3, "rpxTranslate");
75
+ i0.ɵɵelementEnd();
76
+ } if (rf & 2) {
77
+ const ctx_r11 = i0.ɵɵnextContext(3);
78
+ i0.ɵɵadvance(1);
79
+ i0.ɵɵproperty("tableCaption", i0.ɵɵpipeBind1(2, 3, "Case level flags"))("flagData", ctx_r11.caseLevelCaseFlagData)("firstColumnHeader", i0.ɵɵpipeBind1(3, 5, "Case flags"));
80
+ } }
81
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
43
82
  i0.ɵɵelementContainerStart(0);
44
- i0.ɵɵelementStart(1, "h2", 4);
45
- i0.ɵɵtext(2, "Case flags");
83
+ i0.ɵɵelementStart(1, "h2", 5);
84
+ i0.ɵɵtext(2);
85
+ i0.ɵɵpipe(3, "rpxTranslate");
46
86
  i0.ɵɵelementEnd();
47
- i0.ɵɵtemplate(3, ReadCaseFlagFieldComponent_ng_container_2_div_3_Template, 2, 1, "div", 5);
48
- i0.ɵɵtemplate(4, ReadCaseFlagFieldComponent_ng_container_2_div_4_Template, 2, 3, "div", 6);
87
+ i0.ɵɵtemplate(4, ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_div_4_Template, 2, 1, "div", 6);
88
+ i0.ɵɵtemplate(5, ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_div_5_Template, 4, 7, "div", 0);
89
+ i0.ɵɵelementContainerEnd();
90
+ } if (rf & 2) {
91
+ const ctx_r5 = i0.ɵɵnextContext(2);
92
+ i0.ɵɵadvance(2);
93
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 3, "Case flags"), "");
94
+ i0.ɵɵadvance(2);
95
+ i0.ɵɵproperty("ngForOf", ctx_r5.partyLevelCaseFlagData);
96
+ i0.ɵɵadvance(1);
97
+ i0.ɵɵproperty("ngIf", ctx_r5.caseLevelCaseFlagData);
98
+ } }
99
+ function ReadCaseFlagFieldComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
100
+ i0.ɵɵelementContainerStart(0);
101
+ i0.ɵɵelementContainerStart(1, 2);
102
+ i0.ɵɵtemplate(2, ReadCaseFlagFieldComponent_ng_container_1_ng_container_2_Template, 5, 4, "ng-container", 3);
103
+ i0.ɵɵtemplate(3, ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_Template, 6, 5, "ng-container", 4);
104
+ i0.ɵɵelementContainerEnd();
49
105
  i0.ɵɵelementContainerEnd();
50
106
  } if (rf & 2) {
51
107
  const ctx_r1 = i0.ɵɵnextContext();
52
- i0.ɵɵadvance(3);
53
- i0.ɵɵproperty("ngForOf", ctx_r1.partyLevelCaseFlagData);
54
108
  i0.ɵɵadvance(1);
55
- i0.ɵɵproperty("ngIf", ctx_r1.caseLevelCaseFlagData);
109
+ i0.ɵɵproperty("ngSwitch", ctx_r1.displayContextParameter);
110
+ i0.ɵɵadvance(1);
111
+ i0.ɵɵproperty("ngSwitchCase", ctx_r1.readSupportMode);
56
112
  } }
57
113
  export class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
58
- constructor(route) {
114
+ constructor(route, router, caseFlagStateService) {
59
115
  super();
60
116
  this.route = route;
117
+ this.router = router;
118
+ this.caseFlagStateService = caseFlagStateService;
61
119
  this.paletteContext = PaletteContext;
120
+ this.caseFlagsExternalUser = false;
121
+ this.readSupportMode = '#ARGUMENT(READ,EXTERNAL)';
62
122
  this.caseLevelCaseFlagsFieldId = 'caseFlags';
63
- this.caseNameMissing = 'Case name missing';
64
- this.createMode = '#ARGUMENT(CREATE)';
65
- this.updateMode = '#ARGUMENT(UPDATE)';
66
123
  }
67
124
  ngOnInit() {
125
+ var _a, _b, _c;
126
+ const flagLauncherControlName = Object.keys(this.formGroup.controls).find(controlName => FieldsUtils.isFlagLauncherCaseField(this.formGroup.get(controlName)['caseField']));
127
+ const flagLauncherComponent = (_a = this.formGroup.get(flagLauncherControlName)) === null || _a === void 0 ? void 0 : _a['component'];
128
+ this.displayContextParameter = (_b = flagLauncherComponent === null || flagLauncherComponent === void 0 ? void 0 : flagLauncherComponent.caseField) === null || _b === void 0 ? void 0 : _b.display_context_parameter;
129
+ this.caseFlagsExternalUser = this.displayContextParameter === this.readSupportMode;
68
130
  // If the context is PaletteContext.DEFAULT, the Flags fields need to be located by CaseTab (they won't be present
69
131
  // in the FormGroup - only the FlagLauncher field is present)
70
132
  if (this.context === PaletteContext.DEFAULT) {
@@ -73,7 +135,9 @@ export class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
73
135
  if (this.route.snapshot.data.case && this.route.snapshot.data.case.tabs) {
74
136
  this.flagsData = this.route.snapshot.data.case.tabs
75
137
  .filter(tab => tab.fields && tab.fields
76
- .some(caseField => caseField.field_type.type === 'FlagLauncher'))[0].fields.reduce((flags, caseField) => {
138
+ // There could be more than one FlagLauncher field instance so an additional check of caseField ID is
139
+ // required to ensure the correct instance is obtained
140
+ .some(caseField => caseField.field_type.type === 'FlagLauncher' && caseField.id === this.caseField.id))[0].fields.reduce((flags, caseField) => {
77
141
  return FieldsUtils.extractFlagsDataFromCaseField(flags, caseField, caseField.id, caseField);
78
142
  }, []);
79
143
  }
@@ -87,30 +151,35 @@ export class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
87
151
  // The FlagLauncher component, WriteCaseFlagFieldComponent, holds a reference to:
88
152
  // i) the parent FormGroup for the Flags instance where changes have been made;
89
153
  // ii) the currently selected flag (selectedFlag) if one exists
90
- const flagLauncherControlName = Object.keys(this.formGroup.controls).find(controlName => FieldsUtils.isFlagLauncherCaseField(this.formGroup.get(controlName)['caseField']));
91
- if (flagLauncherControlName && this.formGroup.get(flagLauncherControlName)['component']) {
92
- const flagLauncherComponent = this.formGroup.get(flagLauncherControlName)['component'];
154
+ if (flagLauncherComponent) {
93
155
  // The FlagLauncher component holds a reference (selectedFlagsLocation) containing the CaseField instance to
94
156
  // which the new flag has been added
95
- if (flagLauncherComponent.caseField.display_context_parameter === this.createMode &&
96
- flagLauncherComponent.selectedFlagsLocation) {
157
+ if ((flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.CREATE ||
158
+ flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.CREATE_EXTERNAL)
159
+ && flagLauncherComponent.selectedFlagsLocation) {
160
+ this.pathToFlagsFormGroup = flagLauncherComponent.selectedFlagsLocation.pathToFlagsFormGroup;
97
161
  this.flagForSummaryDisplay = this.extractNewFlagToFlagDetailDisplayObject(flagLauncherComponent.selectedFlagsLocation);
98
- // Set the display mode for the "Review flag details" summary page
99
- this.summaryListDisplayMode = CaseFlagSummaryListDisplayMode.CREATE;
100
162
  // The FlagLauncher component holds a reference (selectedFlag), which gets set after the selection step of the
101
163
  // Manage Case Flags journey
102
164
  }
103
- else if (flagLauncherComponent.caseField.display_context_parameter === this.updateMode &&
165
+ else if ((flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE ||
166
+ flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL) &&
104
167
  flagLauncherComponent.selectedFlag) {
105
168
  this.flagForSummaryDisplay =
106
169
  this.formGroup.get(flagLauncherControlName)['component'].selectedFlag.flagDetailDisplay;
107
- // Set the display mode for the "Review flag details" summary page
108
- this.summaryListDisplayMode = CaseFlagSummaryListDisplayMode.MANAGE;
170
+ // TODO: not the best solution, the caseFlagStateService should have all the fields, then we can delete a lot of the transformations here
171
+ // in Create Case Flag it already has all fields
172
+ const caseFlagFormGroupValue = (_c = this.caseFlagStateService.formGroup) === null || _c === void 0 ? void 0 : _c.value;
173
+ if (caseFlagFormGroupValue) {
174
+ caseFlagFormGroupValue.status = CaseFlagStatus[caseFlagFormGroupValue.status];
175
+ this.flagForSummaryDisplay.flagDetail = Object.assign(Object.assign({}, this.flagForSummaryDisplay.flagDetail), caseFlagFormGroupValue);
176
+ }
109
177
  }
110
178
  }
111
179
  }
112
180
  }
113
181
  extractNewFlagToFlagDetailDisplayObject(selectedFlagsLocation) {
182
+ var _a;
114
183
  // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the
115
184
  // CaseField value containing the new flag
116
185
  let flagsCaseFieldValue = selectedFlagsLocation.caseField.value;
@@ -123,22 +192,24 @@ export class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
123
192
  return {
124
193
  partyName: flagsCaseFieldValue.partyName,
125
194
  // Look in the details array for the object that does *not* have an id - this indicates it is the new flag
126
- flagDetail: flagsCaseFieldValue.details.find(element => !element.hasOwnProperty('id')).value
195
+ flagDetail: (_a = flagsCaseFieldValue.details.find(element => !element.hasOwnProperty('id'))) === null || _a === void 0 ? void 0 : _a.value
127
196
  };
128
197
  }
129
198
  return null;
130
199
  }
200
+ navigateBackToForm(fieldState) {
201
+ this.caseFlagStateService.fieldStateToNavigate = fieldState;
202
+ this.router.navigate([`../${this.caseFlagStateService.pageLocation}`], { relativeTo: this.route });
203
+ }
131
204
  }
132
- ReadCaseFlagFieldComponent.ɵfac = function ReadCaseFlagFieldComponent_Factory(t) { return new (t || ReadCaseFlagFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute)); };
133
- ReadCaseFlagFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ReadCaseFlagFieldComponent, selectors: [["ccd-read-case-flag-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [[3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], [3, "flagForSummaryDisplay", "summaryListDisplayMode"], [1, "govuk-heading-l"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [3, "tableCaption", "flagData", "firstColumnHeader", 4, "ngIf"], [3, "tableCaption", "flagData", "firstColumnHeader"]], template: function ReadCaseFlagFieldComponent_Template(rf, ctx) { if (rf & 1) {
134
- i0.ɵɵelementContainerStart(0, 0);
135
- i0.ɵɵtemplate(1, ReadCaseFlagFieldComponent_ng_container_1_Template, 2, 2, "ng-container", 1);
136
- i0.ɵɵtemplate(2, ReadCaseFlagFieldComponent_ng_container_2_Template, 5, 2, "ng-container", 2);
137
- i0.ɵɵelementContainerEnd();
205
+ ReadCaseFlagFieldComponent.ɵfac = function ReadCaseFlagFieldComponent_Factory(t) { return new (t || ReadCaseFlagFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.CaseFlagStateService)); };
206
+ ReadCaseFlagFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ReadCaseFlagFieldComponent, selectors: [["ccd-read-case-flag-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "flagForSummaryDisplay", "displayContextParameter", "changeButtonEmitter"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], ["id", "read-case-flag-title", 1, "govuk-heading-l"], [4, "ngFor", "ngForOf"], [3, "tableCaption", "flagData", "firstColumnHeader", "caseFlagsExternalUser", 4, "ngIf"], [3, "tableCaption", "flagData", "firstColumnHeader", "caseFlagsExternalUser"], [3, "tableCaption", "flagData", "firstColumnHeader", 4, "ngIf"], [3, "tableCaption", "flagData", "firstColumnHeader"]], template: function ReadCaseFlagFieldComponent_Template(rf, ctx) { if (rf & 1) {
207
+ i0.ɵɵtemplate(0, ReadCaseFlagFieldComponent_ng_container_0_Template, 2, 2, "ng-container", 0);
208
+ i0.ɵɵtemplate(1, ReadCaseFlagFieldComponent_ng_container_1_Template, 4, 2, "ng-container", 0);
138
209
  } if (rf & 2) {
139
- i0.ɵɵproperty("ngSwitch", ctx.context);
210
+ i0.ɵɵproperty("ngIf", ctx.context === ctx.paletteContext.CHECK_YOUR_ANSWER);
140
211
  i0.ɵɵadvance(1);
141
- i0.ɵɵproperty("ngSwitchCase", ctx.paletteContext.CHECK_YOUR_ANSWER);
212
+ i0.ɵɵproperty("ngIf", ctx.context !== ctx.paletteContext.CHECK_YOUR_ANSWER);
142
213
  } }, styles: [".govuk-heading-l[_ngcontent-%COMP%]{margin-top:30px}"] });
143
214
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadCaseFlagFieldComponent, [{
144
215
  type: Component,
@@ -147,5 +218,5 @@ ReadCaseFlagFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ReadCaseFlagFi
147
218
  templateUrl: './read-case-flag-field.component.html',
148
219
  styleUrls: ['./read-case-flag-field.component.scss']
149
220
  }]
150
- }], function () { return [{ type: i1.ActivatedRoute }]; }, null); })();
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztJQ052RCw2QkFBK0Q7SUFDN0QsZ0RBQ2lGO0lBQ25GLDBCQUFlOzs7SUFGZSxlQUErQztJQUEvQyxvRUFBK0MseURBQUE7OztJQU16RSx5Q0FJdUI7OztJQUhyQiwwREFBeUMseUJBQUEsMENBQUE7OztJQUY3QywyQkFBcUQ7SUFDbkQsZ0lBSXVCO0lBQ3pCLGlCQUFNOzs7SUFMa0IsZUFBOEI7SUFBOUIsa0RBQThCOzs7SUFNdEQsMkJBQW1DO0lBQ2pDLHlDQUl1QjtJQUN6QixpQkFBTTs7O0lBSkYsZUFBbUM7SUFBbkMsaURBQW1DLDBDQUFBLG1DQUFBOzs7SUFYekMs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LENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDL0c7UUFDRCxJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLE9BQU87Z0JBQ0wsU0FBUyxFQUFFLG1CQUFtQixDQUFDLFNBQVM7Z0JBQ3hDLDBHQUEwRztnQkFDMUcsVUFBVSxFQUFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO2FBQ3hFLENBQUM7U0FDeEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O29HQXhGVSwwQkFBMEI7K0RBQTFCLDBCQUEwQjtRQ2R2QyxnQ0FBbUM7UUFDakMsNkZBR2U7UUFDZiw2RkFnQmU7UUFDakIsMEJBQWU7O1FBdEJELHNDQUFvQjtRQUNqQixlQUE4QztRQUE5QyxtRUFBOEM7O3VGRGFsRCwwQkFBMEI7Y0FMdEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLFdBQVcsRUFBRSx1Q0FBdUM7Z0JBQ3BELFNBQVMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDO2FBQ3JEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENhc2VUYWIgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9wYWxldHRlLWNvbnRleHQuZW51bSc7XG5pbXBvcnQgeyBGbGFnRGV0YWlsRGlzcGxheSwgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnU3VtbWFyeUxpc3REaXNwbGF5TW9kZSB9IGZyb20gJy4vZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtcmVhZC1jYXNlLWZsYWctZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRDYXNlRmxhZ0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBmbGFnc0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgcHVibGljIHBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgcHVibGljIGNhc2VMZXZlbENhc2VGbGFnRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aDtcbiAgcHVibGljIHBhbGV0dGVDb250ZXh0ID0gUGFsZXR0ZUNvbnRleHQ7XG4gIHB1YmxpYyBmbGFnRm9yU3VtbWFyeURpc3BsYXk6IEZsYWdEZXRhaWxEaXNwbGF5O1xuICBwdWJsaWMgc3VtbWFyeUxpc3REaXNwbGF5TW9kZTogQ2FzZUZsYWdTdW1tYXJ5TGlzdERpc3BsYXlNb2RlO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCA9ICdjYXNlRmxhZ3MnO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FzZU5hbWVNaXNzaW5nID0gJ0Nhc2UgbmFtZSBtaXNzaW5nJztcbiAgcHJpdmF0ZSByZWFkb25seSBjcmVhdGVNb2RlID0gJyNBUkdVTUVOVChDUkVBVEUpJztcbiAgcHJpdmF0ZSByZWFkb25seSB1cGRhdGVNb2RlID0gJyNBUkdVTUVOVChVUERBVEUpJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIElmIHRoZSBjb250ZXh0IGlzIFBhbGV0dGVDb250ZXh0LkRFRkFVTFQsIHRoZSBGbGFncyBmaWVsZHMgbmVlZCB0byBiZSBsb2NhdGVkIGJ5IENhc2VUYWIgKHRoZXkgd29uJ3QgYmUgcHJlc2VudFxuICAgIC8vIGluIHRoZSBGb3JtR3JvdXAgLSBvbmx5IHRoZSBGbGFnTGF1bmNoZXIgZmllbGQgaXMgcHJlc2VudClcbiAgICBpZiAodGhpcy5jb250ZXh0ID09PSBQYWxldHRlQ29udGV4dC5ERUZBVUxUKSB7XG4gICAgICAvLyBEZXRlcm1pbmUgdGhlIHRhYiB0aGlzIENhc2VGaWVsZCBiZWxvbmdzIHRvIChzaG91bGQgYmUgb25seSBvbmUpLCBmcm9tIHRoZSBDYXNlVmlldyBvYmplY3QgaW4gdGhlIHNuYXBzaG90XG4gICAgICAvLyBkYXRhLCBhbmQgZXh0cmFjdCBhbGwgZmxhZ3MtcmVsYXRlZCBkYXRhIGZyb20gaXRzIEZsYWdzIGZpZWxkc1xuICAgICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlICYmIHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlLnRhYnMpIHtcbiAgICAgICAgdGhpcy5mbGFnc0RhdGEgPSAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UudGFicyBhcyBDYXNlVGFiW10pXG4gICAgICAgIC5maWx0ZXIodGFiID0+IHRhYi5maWVsZHMgJiYgdGFiLmZpZWxkc1xuICAgICAgICAgIC5zb21lKGNhc2VGaWVsZCA9PiBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnRmxhZ0xhdW5jaGVyJykpXG4gICAgICAgIFswXS5maWVsZHMucmVkdWNlKChmbGFncywgY2FzZUZpZWxkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIEZpZWxkc1V0aWxzLmV4dHJhY3RGbGFnc0RhdGFGcm9tQ2FzZUZpZWxkKGZsYWdzLCBjYXNlRmllbGQsIGNhc2VGaWVsZC5pZCwgY2FzZUZpZWxkKTtcbiAgICAgICAgfSwgW10pO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXBhcmF0ZSB0aGUgcGFydHktbGV2ZWwgYW5kIGNhc2UtbGV2ZWwgZmxhZ3NcbiAgICAgIHRoaXMucGFydHlMZXZlbENhc2VGbGFnRGF0YSA9IHRoaXMuZmxhZ3NEYXRhLmZpbHRlcihcbiAgICAgICAgaW5zdGFuY2UgPT4gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgIT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCk7XG4gICAgICAvLyBUaGVyZSB3aWxsIGJlIG9ubHkgb25lIGNhc2UtbGV2ZWwgZmxhZ3MgaW5zdGFuY2UgY29udGFpbmluZyBhbGwgY2FzZS1sZXZlbCBmbGFnIGRldGFpbHNcbiAgICAgIHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdEYXRhID0gdGhpcy5mbGFnc0RhdGEuZmluZChcbiAgICAgICAgaW5zdGFuY2UgPT4gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSKSB7XG4gICAgICAvLyBJZiB0aGUgY29udGV4dCBpcyBQYWxldHRlQ29udGV4dC5DSEVDS19ZT1VSX0FOU1dFUiwgdGhlIEZsYWdzIGRhdGEgaXMgYWxyZWFkeSBwcmVzZW50IHdpdGhpbiB0aGUgRm9ybUdyb3VwLlxuICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQsIFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudCwgaG9sZHMgYSByZWZlcmVuY2UgdG86XG4gICAgICAvLyBpKSB0aGUgcGFyZW50IEZvcm1Hcm91cCBmb3IgdGhlIEZsYWdzIGluc3RhbmNlIHdoZXJlIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGU7XG4gICAgICAvLyBpaSkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmbGFnIChzZWxlY3RlZEZsYWcpIGlmIG9uZSBleGlzdHNcbiAgICAgIGNvbnN0IGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lID0gT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZpbmQoXG4gICAgICAgIGNvbnRyb2xOYW1lID0+IEZpZWxkc1V0aWxzLmlzRmxhZ0xhdW5jaGVyQ2FzZUZpZWxkKHRoaXMuZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSlbJ2Nhc2VGaWVsZCddKSk7XG4gICAgICBpZiAoZmxhZ0xhdW5jaGVyQ29udHJvbE5hbWUgJiYgdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKVsnY29tcG9uZW50J10pIHtcbiAgICAgICAgY29uc3QgZmxhZ0xhdW5jaGVyQ29tcG9uZW50ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKVsnY29tcG9uZW50J107XG4gICAgICAgIC8vIFRoZSBGbGFnTGF1bmNoZXIgY29tcG9uZW50IGhvbGRzIGEgcmVmZXJlbmNlIChzZWxlY3RlZEZsYWdzTG9jYXRpb24pIGNvbnRhaW5pbmcgdGhlIENhc2VGaWVsZCBpbnN0YW5jZSB0b1xuICAgICAgICAvLyB3aGljaCB0aGUgbmV3IGZsYWcgaGFzIGJlZW4gYWRkZWRcbiAgICAgICAgaWYgKGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gdGhpcy5jcmVhdGVNb2RlICYmXG4gICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LnNlbGVjdGVkRmxhZ3NMb2NhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5mbGFnRm9yU3VtbWFyeURpc3BsYXkgPSB0aGlzLmV4dHJhY3ROZXdGbGFnVG9GbGFnRGV0YWlsRGlzcGxheU9iamVjdChcbiAgICAgICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LnNlbGVjdGVkRmxhZ3NMb2NhdGlvbik7XG4gICAgICAgICAgICAvLyBTZXQgdGhlIGRpc3BsYXkgbW9kZSBmb3IgdGhlIFwiUmV2aWV3IGZsYWcgZGV0YWlsc1wiIHN1bW1hcnkgcGFnZVxuICAgICAgICAgICAgdGhpcy5zdW1tYXJ5TGlzdERpc3BsYXlNb2RlID0gQ2FzZUZsYWdTdW1tYXJ5TGlzdERpc3BsYXlNb2RlLkNSRUFURTtcbiAgICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQgaG9sZHMgYSByZWZlcmVuY2UgKHNlbGVjdGVkRmxhZyksIHdoaWNoIGdldHMgc2V0IGFmdGVyIHRoZSBzZWxlY3Rpb24gc3RlcCBvZiB0aGVcbiAgICAgICAgLy8gTWFuYWdlIENhc2UgRmxhZ3Mgam91cm5leVxuICAgICAgICB9IGVsc2UgaWYgKGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gdGhpcy51cGRhdGVNb2RlICYmXG4gICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LnNlbGVjdGVkRmxhZykge1xuICAgICAgICAgICAgdGhpcy5mbGFnRm9yU3VtbWFyeURpc3BsYXkgPVxuICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmxhZ0xhdW5jaGVyQ29udHJvbE5hbWUpWydjb21wb25lbnQnXS5zZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXk7XG4gICAgICAgICAgICAvLyBTZXQgdGhlIGRpc3BsYXkgbW9kZSBmb3IgdGhlIFwiUmV2aWV3IGZsYWcgZGV0YWlsc1wiIHN1bW1hcnkgcGFnZVxuICAgICAgICAgICAgdGhpcy5zdW1tYXJ5TGlzdERpc3BsYXlNb2RlID0gQ2FzZUZsYWdTdW1tYXJ5TGlzdERpc3BsYXlNb2RlLk1BTkFHRTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdE5ld0ZsYWdUb0ZsYWdEZXRhaWxEaXNwbGF5T2JqZWN0KHNlbGVjdGVkRmxhZ3NMb2NhdGlvbjogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCk6IEZsYWdEZXRhaWxEaXNwbGF5IHtcbiAgICAvLyBVc2UgdGhlIHBhdGhUb0ZsYWdzRm9ybUdyb3VwIHByb3BlcnR5IGZyb20gdGhlIHNlbGVjdGVkIGZsYWcgbG9jYXRpb24gdG8gZHJpbGwgZG93biB0byB0aGUgY29ycmVjdCBwYXJ0IG9mIHRoZVxuICAgIC8vIENhc2VGaWVsZCB2YWx1ZSBjb250YWluaW5nIHRoZSBuZXcgZmxhZ1xuICAgIGxldCBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLmNhc2VGaWVsZC52YWx1ZTtcbiAgICBjb25zdCBwYXRoID0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLnBhdGhUb0ZsYWdzRm9ybUdyb3VwO1xuICAgIC8vIFJvb3QtbGV2ZWwgRmxhZ3MgQ2FzZUZpZWxkcyBkb24ndCBoYXZlIGEgZG90LWRlbGltaXRlZCBwYXRoIC0ganVzdCB0aGUgQ2FzZUZpZWxkIElEIGl0c2VsZiAtIHNvIGRvbid0IGRyaWxsIGRvd25cbiAgICBpZiAocGF0aC5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgcGF0aC5zbGljZShwYXRoLmluZGV4T2YoJy4nKSArIDEpLnNwbGl0KCcuJykuZm9yRWFjaChwYXJ0ID0+IGZsYWdzQ2FzZUZpZWxkVmFsdWUgPSBmbGFnc0Nhc2VGaWVsZFZhbHVlW3BhcnRdKTtcbiAgICB9XG4gICAgaWYgKGZsYWdzQ2FzZUZpZWxkVmFsdWUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcnR5TmFtZTogZmxhZ3NDYXNlRmllbGRWYWx1ZS5wYXJ0eU5hbWUsXG4gICAgICAgIC8vIExvb2sgaW4gdGhlIGRldGFpbHMgYXJyYXkgZm9yIHRoZSBvYmplY3QgdGhhdCBkb2VzICpub3QqIGhhdmUgYW4gaWQgLSB0aGlzIGluZGljYXRlcyBpdCBpcyB0aGUgbmV3IGZsYWdcbiAgICAgICAgZmxhZ0RldGFpbDogZmxhZ3NDYXNlRmllbGRWYWx1ZS5kZXRhaWxzLmZpbmQoZWxlbWVudCA9PiAhZWxlbWVudC5oYXNPd25Qcm9wZXJ0eSgnaWQnKSkudmFsdWVcbiAgICAgIH0gYXMgRmxhZ0RldGFpbERpc3BsYXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbnRleHRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwicGFsZXR0ZUNvbnRleHQuQ0hFQ0tfWU9VUl9BTlNXRVJcIj5cbiAgICA8Y2NkLWNhc2UtZmxhZy1zdW1tYXJ5LWxpc3QgW2ZsYWdGb3JTdW1tYXJ5RGlzcGxheV09XCJmbGFnRm9yU3VtbWFyeURpc3BsYXlcIlxuICAgICAgW3N1bW1hcnlMaXN0RGlzcGxheU1vZGVdPVwic3VtbWFyeUxpc3REaXNwbGF5TW9kZVwiPjwvY2NkLWNhc2UtZmxhZy1zdW1tYXJ5LWxpc3Q+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPGgyIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+Q2FzZSBmbGFnczwvaDI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgZmxhZ0RhdGEgb2YgcGFydHlMZXZlbENhc2VGbGFnRGF0YVwiPlxuICAgICAgPGNjZC1jYXNlLWZsYWctdGFibGUgKm5nSWY9XCJmbGFnRGF0YS5mbGFncy5wYXJ0eU5hbWVcIlxuICAgICAgICBbdGFibGVDYXB0aW9uXT1cImZsYWdEYXRhLmZsYWdzLnBhcnR5TmFtZVwiXG4gICAgICAgIFtmbGFnRGF0YV09XCJmbGFnRGF0YVwiXG4gICAgICAgIFtmaXJzdENvbHVtbkhlYWRlcl09XCInUGFydHkgbGV2ZWwgZmxhZ3MnXCJcbiAgICAgID48L2NjZC1jYXNlLWZsYWctdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNhc2VMZXZlbENhc2VGbGFnRGF0YVwiPlxuICAgICAgPGNjZC1jYXNlLWZsYWctdGFibGVcbiAgICAgICAgW3RhYmxlQ2FwdGlvbl09XCInQ2FzZSBsZXZlbCBmbGFncydcIlxuICAgICAgICBbZmxhZ0RhdGFdPVwiY2FzZUxldmVsQ2FzZUZsYWdEYXRhXCJcbiAgICAgICAgW2ZpcnN0Q29sdW1uSGVhZGVyXT1cIidDYXNlIGZsYWdzJ1wiXG4gICAgICA+PC9jY2QtY2FzZS1mbGFnLXRhYmxlPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
221
+ }], function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.CaseFlagStateService }]; }, null); })();
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7SUNSMUUsNkJBQW1FO0lBQ2pFLHFEQUdxRDtJQUFuRCwyUUFBa0Q7SUFDcEQsaUJBQTZCO0lBQy9CLDBCQUFlOzs7SUFKWCxlQUErQztJQUEvQyxvRUFBK0MsMkRBQUE7OztJQWMzQyx5Q0FLdUI7Ozs7SUFKRCxpQ0FBbUIseUJBQUEsa0RBQUEsdURBQUE7OztJQUYzQywyQkFBcUQ7SUFDbkQsK0lBS3VCO0lBQ3pCLGlCQUFNOzs7SUFOa0IsZUFBOEI7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QyxXQUFXLEVBQUUsdUNBQXVDO2dCQUNwRCxTQUFTLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQzthQUNyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENhc2VUYWIgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMnO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlLWZsYWctc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtcmVhZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFsZXR0ZUNvbnRleHQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL3BhbGV0dGUtY29udGV4dC5lbnVtJztcbmltcG9ydCB7IEZsYWdEZXRhaWxEaXNwbGF5LCBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlciwgQ2FzZUZsYWdTdGF0dXMgfSBmcm9tICcuL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXJlYWQtY2FzZS1mbGFnLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVhZC1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZWFkQ2FzZUZsYWdGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBwdWJsaWMgcGFydHlMZXZlbENhc2VGbGFnRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBwdWJsaWMgY2FzZUxldmVsQ2FzZUZsYWdEYXRhOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoO1xuICBwdWJsaWMgcGFsZXR0ZUNvbnRleHQgPSBQYWxldHRlQ29udGV4dDtcbiAgcHVibGljIGZsYWdGb3JTdW1tYXJ5RGlzcGxheTogRmxhZ0RldGFpbERpc3BsYXk7XG4gIHB1YmxpYyBkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nO1xuICBwdWJsaWMgY2FzZUZsYWdzRXh0ZXJuYWxVc2VyID0gZmFsc2U7XG4gIHB1YmxpYyBwYXRoVG9GbGFnc0Zvcm1Hcm91cDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVhZFN1cHBvcnRNb2RlID0gJyNBUkdVTUVOVChSRUFELEVYVEVSTkFMKSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCA9ICdjYXNlRmxhZ3MnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlRmxhZ1N0YXRlU2VydmljZTogQ2FzZUZsYWdTdGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmbGFnTGF1bmNoZXJDb250cm9sTmFtZSA9IE9iamVjdC5rZXlzKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKS5maW5kKFxuICAgICAgY29udHJvbE5hbWUgPT4gRmllbGRzVXRpbHMuaXNGbGFnTGF1bmNoZXJDYXNlRmllbGQodGhpcy5mb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lKVsnY2FzZUZpZWxkJ10pKTtcbiAgICBjb25zdCBmbGFnTGF1bmNoZXJDb21wb25lbnQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoZmxhZ0xhdW5jaGVyQ29udHJvbE5hbWUpPy5bJ2NvbXBvbmVudCddO1xuICAgIHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPSBmbGFnTGF1bmNoZXJDb21wb25lbnQ/LmNhc2VGaWVsZD8uZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcjtcbiAgICB0aGlzLmNhc2VGbGFnc0V4dGVybmFsVXNlciA9IHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IHRoaXMucmVhZFN1cHBvcnRNb2RlO1xuXG4gICAgLy8gSWYgdGhlIGNvbnRleHQgaXMgUGFsZXR0ZUNvbnRleHQuREVGQVVMVCwgdGhlIEZsYWdzIGZpZWxkcyBuZWVkIHRvIGJlIGxvY2F0ZWQgYnkgQ2FzZVRhYiAodGhleSB3b24ndCBiZSBwcmVzZW50XG4gICAgLy8gaW4gdGhlIEZvcm1Hcm91cCAtIG9ubHkgdGhlIEZsYWdMYXVuY2hlciBmaWVsZCBpcyBwcmVzZW50KVxuICAgIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkRFRkFVTFQpIHtcbiAgICAgIC8vIERldGVybWluZSB0aGUgdGFiIHRoaXMgQ2FzZUZpZWxkIGJlbG9uZ3MgdG8gKHNob3VsZCBiZSBvbmx5IG9uZSksIGZyb20gdGhlIENhc2VWaWV3IG9iamVjdCBpbiB0aGUgc25hcHNob3RcbiAgICAgIC8vIGRhdGEsIGFuZCBleHRyYWN0IGFsbCBmbGFncy1yZWxhdGVkIGRhdGEgZnJvbSBpdHMgRmxhZ3MgZmllbGRzXG4gICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UudGFicykge1xuICAgICAgICB0aGlzLmZsYWdzRGF0YSA9ICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS50YWJzIGFzIENhc2VUYWJbXSlcbiAgICAgICAgLmZpbHRlcih0YWIgPT4gdGFiLmZpZWxkcyAmJiB0YWIuZmllbGRzXG4gICAgICAgICAgLy8gVGhlcmUgY291bGQgYmUgbW9yZSB0aGFuIG9uZSBGbGFnTGF1bmNoZXIgZmllbGQgaW5zdGFuY2Ugc28gYW4gYWRkaXRpb25hbCBjaGVjayBvZiBjYXNlRmllbGQgSUQgaXNcbiAgICAgICAgICAvLyByZXF1aXJlZCB0byBlbnN1cmUgdGhlIGNvcnJlY3QgaW5zdGFuY2UgaXMgb2J0YWluZWRcbiAgICAgICAgICAuc29tZShjYXNlRmllbGQgPT4gY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0ZsYWdMYXVuY2hlcicgJiYgY2FzZUZpZWxkLmlkID09PSB0aGlzLmNhc2VGaWVsZC5pZCkpXG4gICAgICAgIFswXS5maWVsZHMucmVkdWNlKChmbGFncywgY2FzZUZpZWxkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIEZpZWxkc1V0aWxzLmV4dHJhY3RGbGFnc0RhdGFGcm9tQ2FzZUZpZWxkKGZsYWdzLCBjYXNlRmllbGQsIGNhc2VGaWVsZC5pZCwgY2FzZUZpZWxkKTtcbiAgICAgICAgfSwgW10pO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXBhcmF0ZSB0aGUgcGFydHktbGV2ZWwgYW5kIGNhc2UtbGV2ZWwgZmxhZ3NcbiAgICAgIHRoaXMucGFydHlMZXZlbENhc2VGbGFnRGF0YSA9IHRoaXMuZmxhZ3NEYXRhLmZpbHRlcihcbiAgICAgICAgaW5zdGFuY2UgPT4gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgIT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCk7XG4gICAgICAvLyBUaGVyZSB3aWxsIGJlIG9ubHkgb25lIGNhc2UtbGV2ZWwgZmxhZ3MgaW5zdGFuY2UgY29udGFpbmluZyBhbGwgY2FzZS1sZXZlbCBmbGFnIGRldGFpbHNcbiAgICAgIHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdEYXRhID0gdGhpcy5mbGFnc0RhdGEuZmluZChcbiAgICAgICAgaW5zdGFuY2UgPT4gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSKSB7XG4gICAgICAvLyBJZiB0aGUgY29udGV4dCBpcyBQYWxldHRlQ29udGV4dC5DSEVDS19ZT1VSX0FOU1dFUiwgdGhlIEZsYWdzIGRhdGEgaXMgYWxyZWFkeSBwcmVzZW50IHdpdGhpbiB0aGUgRm9ybUdyb3VwLlxuICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQsIFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudCwgaG9sZHMgYSByZWZlcmVuY2UgdG86XG4gICAgICAvLyBpKSB0aGUgcGFyZW50IEZvcm1Hcm91cCBmb3IgdGhlIEZsYWdzIGluc3RhbmNlIHdoZXJlIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGU7XG4gICAgICAvLyBpaSkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmbGFnIChzZWxlY3RlZEZsYWcpIGlmIG9uZSBleGlzdHNcbiAgICAgIGlmIChmbGFnTGF1bmNoZXJDb21wb25lbnQpIHtcbiAgICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQgaG9sZHMgYSByZWZlcmVuY2UgKHNlbGVjdGVkRmxhZ3NMb2NhdGlvbikgY29udGFpbmluZyB0aGUgQ2FzZUZpZWxkIGluc3RhbmNlIHRvXG4gICAgICAgIC8vIHdoaWNoIHRoZSBuZXcgZmxhZyBoYXMgYmVlbiBhZGRlZFxuICAgICAgICBpZiAoKGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEUgfHxcbiAgICAgICAgICAgIGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfRVhURVJOQUwpXG4gICAgICAgICAgICAmJiBmbGFnTGF1bmNoZXJDb21wb25lbnQuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uKSB7XG4gICAgICAgICAgdGhpcy5wYXRoVG9GbGFnc0Zvcm1Hcm91cCA9IGZsYWdMYXVuY2hlckNvbXBvbmVudC5zZWxlY3RlZEZsYWdzTG9jYXRpb24ucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgICAgICAgdGhpcy5mbGFnRm9yU3VtbWFyeURpc3BsYXkgPSB0aGlzLmV4dHJhY3ROZXdGbGFnVG9GbGFnRGV0YWlsRGlzcGxheU9iamVjdChcbiAgICAgICAgICAgIGZsYWdMYXVuY2hlckNvbXBvbmVudC5zZWxlY3RlZEZsYWdzTG9jYXRpb24pO1xuICAgICAgICAvLyBUaGUgRmxhZ0xhdW5jaGVyIGNvbXBvbmVudCBob2xkcyBhIHJlZmVyZW5jZSAoc2VsZWN0ZWRGbGFnKSwgd2hpY2ggZ2V0cyBzZXQgYWZ0ZXIgdGhlIHNlbGVjdGlvbiBzdGVwIG9mIHRoZVxuICAgICAgICAvLyBNYW5hZ2UgQ2FzZSBGbGFncyBqb3VybmV5XG4gICAgICAgIH0gZWxzZSBpZiAoKGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEUgfHxcbiAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMKSAmJlxuICAgICAgICAgIGZsYWdMYXVuY2hlckNvbXBvbmVudC5zZWxlY3RlZEZsYWcpIHtcbiAgICAgICAgICAgIHRoaXMuZmxhZ0ZvclN1bW1hcnlEaXNwbGF5ID1cbiAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKVsnY29tcG9uZW50J10uc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5O1xuICAgICAgICAgIC8vIFRPRE86IG5vdCB0aGUgYmVzdCBzb2x1dGlvbiwgdGhlIGNhc2VGbGFnU3RhdGVTZXJ2aWNlIHNob3VsZCBoYXZlIGFsbCB0aGUgZmllbGRzLCB0aGVuIHdlIGNhbiBkZWxldGUgYSBsb3Qgb2YgdGhlIHRyYW5zZm9ybWF0aW9ucyBoZXJlXG4gICAgICAgICAgLy8gaW4gQ3JlYXRlIENhc2UgRmxhZyBpdCBhbHJlYWR5IGhhcyBhbGwgZmllbGRzXG4gICAgICAgICAgY29uc3QgY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZSA9IHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZm9ybUdyb3VwPy52YWx1ZTtcbiAgICAgICAgICBpZiAoY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZSkge1xuICAgICAgICAgICAgY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZS5zdGF0dXMgPSBDYXNlRmxhZ1N0YXR1c1tjYXNlRmxhZ0Zvcm1Hcm91cFZhbHVlLnN0YXR1c107XG4gICAgICAgICAgICB0aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheS5mbGFnRGV0YWlsID0ge1xuICAgICAgICAgICAgICAuLi50aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheS5mbGFnRGV0YWlsLFxuICAgICAgICAgICAgICAuLi5jYXNlRmxhZ0Zvcm1Hcm91cFZhbHVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdE5ld0ZsYWdUb0ZsYWdEZXRhaWxEaXNwbGF5T2JqZWN0KHNlbGVjdGVkRmxhZ3NMb2NhdGlvbjogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCk6IEZsYWdEZXRhaWxEaXNwbGF5IHtcbiAgICAvLyBVc2UgdGhlIHBhdGhUb0ZsYWdzRm9ybUdyb3VwIHByb3BlcnR5IGZyb20gdGhlIHNlbGVjdGVkIGZsYWcgbG9jYXRpb24gdG8gZHJpbGwgZG93biB0byB0aGUgY29ycmVjdCBwYXJ0IG9mIHRoZVxuICAgIC8vIENhc2VGaWVsZCB2YWx1ZSBjb250YWluaW5nIHRoZSBuZXcgZmxhZ1xuICAgIGxldCBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLmNhc2VGaWVsZC52YWx1ZTtcbiAgICBjb25zdCBwYXRoID0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLnBhdGhUb0ZsYWdzRm9ybUdyb3VwO1xuICAgIC8vIFJvb3QtbGV2ZWwgRmxhZ3MgQ2FzZUZpZWxkcyBkb24ndCBoYXZlIGEgZG90LWRlbGltaXRlZCBwYXRoIC0ganVzdCB0aGUgQ2FzZUZpZWxkIElEIGl0c2VsZiAtIHNvIGRvbid0IGRyaWxsIGRvd25cbiAgICBpZiAocGF0aC5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgcGF0aC5zbGljZShwYXRoLmluZGV4T2YoJy4nKSArIDEpLnNwbGl0KCcuJykuZm9yRWFjaChwYXJ0ID0+IGZsYWdzQ2FzZUZpZWxkVmFsdWUgPSBmbGFnc0Nhc2VGaWVsZFZhbHVlW3BhcnRdKTtcbiAgICB9XG4gICAgaWYgKGZsYWdzQ2FzZUZpZWxkVmFsdWUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcnR5TmFtZTogZmxhZ3NDYXNlRmllbGRWYWx1ZS5wYXJ0eU5hbWUsXG4gICAgICAgIC8vIExvb2sgaW4gdGhlIGRldGFpbHMgYXJyYXkgZm9yIHRoZSBvYmplY3QgdGhhdCBkb2VzICpub3QqIGhhdmUgYW4gaWQgLSB0aGlzIGluZGljYXRlcyBpdCBpcyB0aGUgbmV3IGZsYWdcbiAgICAgICAgZmxhZ0RldGFpbDogZmxhZ3NDYXNlRmllbGRWYWx1ZS5kZXRhaWxzLmZpbmQoZWxlbWVudCA9PiAhZWxlbWVudC5oYXNPd25Qcm9wZXJ0eSgnaWQnKSk/LnZhbHVlXG4gICAgICB9IGFzIEZsYWdEZXRhaWxEaXNwbGF5O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlQmFja1RvRm9ybShmaWVsZFN0YXRlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLmZpZWxkU3RhdGVUb05hdmlnYXRlID0gZmllbGRTdGF0ZTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC4uLyR7dGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5wYWdlTG9jYXRpb259YF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHQgPT09IHBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSXCI+XG4gIDxjY2QtY2FzZS1mbGFnLXN1bW1hcnktbGlzdFxuICAgIFtmbGFnRm9yU3VtbWFyeURpc3BsYXldPVwiZmxhZ0ZvclN1bW1hcnlEaXNwbGF5XCJcbiAgICBbZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJdPVwiZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJcIlxuICAgIChjaGFuZ2VCdXR0b25FbWl0dGVyKT1cIm5hdmlnYXRlQmFja1RvRm9ybSgkZXZlbnQpXCI+XG4gIDwvY2NkLWNhc2UtZmxhZy1zdW1tYXJ5LWxpc3Q+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHQgIT09IHBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSXCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRpc3BsYXlDb250ZXh0UGFyYW1ldGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwicmVhZFN1cHBvcnRNb2RlXCI+XG4gICAgICA8aDIgaWQ9XCJyZWFkLWNhc2UtZmxhZy10aXRsZVwiIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+XG4gICAgICAgIHt7ICdTdXBwb3J0IHJlcXVlc3RlZCcgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvaDI+XG5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZsYWdEYXRhIG9mIHBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGFcIj5cbiAgICAgICAgPGNjZC1jYXNlLWZsYWctdGFibGUgKm5nSWY9XCJmbGFnRGF0YS5mbGFncy5wYXJ0eU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmxlQ2FwdGlvbl09XCInJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmxhZ0RhdGFdPVwiZmxhZ0RhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpcnN0Q29sdW1uSGVhZGVyXT1cImZsYWdEYXRhLmZsYWdzLnBhcnR5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZsYWdzRXh0ZXJuYWxVc2VyXT1cImNhc2VGbGFnc0V4dGVybmFsVXNlclwiXG4gICAgICAgID48L2NjZC1jYXNlLWZsYWctdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxoMiBpZD1cInJlYWQtY2FzZS1mbGFnLXRpdGxlXCIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj5cbiAgICAgICAge3sgJ0Nhc2UgZmxhZ3MnIHwgcnB4VHJhbnNsYXRlIH19PC9oMj5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmbGFnRGF0YSBvZiBwYXJ0eUxldmVsQ2FzZUZsYWdEYXRhXCI+XG4gICAgICA8Y2NkLWNhc2UtZmxhZy10YWJsZSAqbmdJZj1cImZsYWdEYXRhLmZsYWdzLnBhcnR5TmFtZVwiXG4gICAgICAgIFt0YWJsZUNhcHRpb25dPVwiZmxhZ0RhdGEuZmxhZ3MucGFydHlOYW1lXCJcbiAgICAgICAgW2ZsYWdEYXRhXT1cImZsYWdEYXRhXCJcbiAgICAgICAgW2ZpcnN0Q29sdW1uSGVhZGVyXT1cIidQYXJ0eSBsZXZlbCBmbGFncycgfCBycHhUcmFuc2xhdGVcIlxuICAgICAgPjwvY2NkLWNhc2UtZmxhZy10YWJsZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiY2FzZUxldmVsQ2FzZUZsYWdEYXRhXCI+XG4gICAgICA8Y2NkLWNhc2UtZmxhZy10YWJsZVxuICAgICAgICBbdGFibGVDYXB0aW9uXT1cIidDYXNlIGxldmVsIGZsYWdzJyB8IHJweFRyYW5zbGF0ZVwiXG4gICAgICAgIFtmbGFnRGF0YV09XCJjYXNlTGV2ZWxDYXNlRmxhZ0RhdGFcIlxuICAgICAgICBbZmlyc3RDb2x1bW5IZWFkZXJdPVwiJ0Nhc2UgZmxhZ3MnIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgPjwvY2NkLWNhc2UtZmxhZy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19