@hmcts/ccd-case-ui-toolkit 7.0.6 → 7.0.7

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 (339) hide show
  1. package/esm2020/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +3 -3
  2. package/esm2020/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +2 -2
  3. package/esm2020/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +2 -2
  4. package/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +2 -11
  5. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.mjs +7 -0
  6. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +165 -124
  7. package/esm2020/lib/shared/components/case-editor/case-editor.module.mjs +17 -22
  8. package/esm2020/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +2 -3
  9. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +2 -2
  10. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +2 -2
  11. package/esm2020/lib/shared/components/case-editor/services/case-flag-state.service.mjs +19 -0
  12. package/esm2020/lib/shared/components/case-editor/services/cases.service.mjs +6 -1
  13. package/esm2020/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +4 -17
  14. package/esm2020/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +40 -15
  15. package/esm2020/lib/shared/components/case-viewer/case-viewer.module.mjs +8 -5
  16. package/esm2020/lib/shared/components/palette/address/write-address-field.component.mjs +19 -20
  17. package/esm2020/lib/shared/components/palette/base-field/field-read.component.mjs +1 -1
  18. package/esm2020/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +70 -31
  19. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +249 -46
  20. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +140 -71
  21. package/esm2020/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +165 -0
  22. package/esm2020/lib/shared/components/palette/case-flag/components/index.mjs +4 -1
  23. package/esm2020/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +73 -78
  24. package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.mjs +6 -0
  25. package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +133 -99
  26. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +22 -9
  27. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +213 -112
  28. 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
  29. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +439 -104
  30. package/esm2020/lib/shared/components/palette/case-flag/domain/case-flag-state.model.mjs +1 -1
  31. package/esm2020/lib/shared/components/palette/case-flag/domain/case-flag.model.mjs +1 -1
  32. package/esm2020/lib/shared/components/palette/case-flag/domain/language.model.mjs +1 -1
  33. package/esm2020/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.mjs +2 -1
  34. package/esm2020/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.mjs +3 -1
  35. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.mjs +12 -0
  36. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.mjs +15 -0
  37. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.mjs +13 -0
  38. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.mjs +3 -2
  39. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.mjs +11 -3
  40. package/esm2020/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.mjs +6 -0
  41. package/esm2020/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.mjs +6 -0
  42. package/esm2020/lib/shared/components/palette/case-flag/enums/index.mjs +9 -2
  43. package/esm2020/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.mjs +3 -2
  44. package/esm2020/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.mjs +4 -1
  45. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.mjs +6 -0
  46. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.mjs +6 -0
  47. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.mjs +5 -1
  48. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.mjs +7 -2
  49. package/esm2020/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.mjs +10 -7
  50. package/esm2020/lib/shared/components/palette/case-flag/index.mjs +2 -1
  51. package/esm2020/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +41 -0
  52. package/esm2020/lib/shared/components/palette/case-flag/pipes/index.mjs +5 -0
  53. package/esm2020/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +41 -0
  54. package/esm2020/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +109 -0
  55. package/esm2020/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +77 -0
  56. package/esm2020/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +156 -57
  57. package/esm2020/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +385 -172
  58. package/esm2020/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +8 -10
  59. package/esm2020/lib/shared/components/palette/collection/write-collection-field.component.mjs +49 -54
  60. package/esm2020/lib/shared/components/palette/complex/read-complex-field.component.mjs +12 -14
  61. package/esm2020/lib/shared/components/palette/complex/sort-order.mjs +7 -0
  62. package/esm2020/lib/shared/components/palette/complex/write-complex-field.component.mjs +5 -6
  63. package/esm2020/lib/shared/components/palette/date/write-date-field.component.mjs +8 -10
  64. package/esm2020/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +8 -10
  65. package/esm2020/lib/shared/components/palette/document/write-document-field.component.mjs +23 -24
  66. package/esm2020/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +8 -10
  67. package/esm2020/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +8 -10
  68. package/esm2020/lib/shared/components/palette/email/write-email-field.component.mjs +8 -10
  69. package/esm2020/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +8 -10
  70. package/esm2020/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +8 -10
  71. package/esm2020/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +9 -7
  72. package/esm2020/lib/shared/components/palette/index.mjs +3 -1
  73. package/esm2020/lib/shared/components/palette/markdown/index.mjs +2 -1
  74. package/esm2020/lib/shared/components/palette/markdown/markdown-component.module.mjs +40 -0
  75. package/esm2020/lib/shared/components/palette/markdown/markdown.component.mjs +9 -7
  76. package/esm2020/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +8 -10
  77. package/esm2020/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +8 -10
  78. package/esm2020/lib/shared/components/palette/number/write-number-field.component.mjs +8 -10
  79. package/esm2020/lib/shared/components/palette/palette.module.mjs +148 -49
  80. package/esm2020/lib/shared/components/palette/palette.service.mjs +4 -2
  81. package/esm2020/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +8 -10
  82. package/esm2020/lib/shared/components/palette/query-management/__mocks__/index.mjs +210 -0
  83. package/esm2020/lib/shared/components/palette/query-management/components/index.mjs +13 -0
  84. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +42 -0
  85. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +144 -0
  86. package/esm2020/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +64 -0
  87. package/esm2020/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +60 -0
  88. package/esm2020/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +281 -0
  89. package/esm2020/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +327 -0
  90. package/esm2020/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +22 -0
  91. package/esm2020/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +164 -0
  92. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +74 -0
  93. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +107 -0
  94. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +201 -0
  95. 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
  96. package/esm2020/lib/shared/components/palette/query-management/enums/index.mjs +6 -0
  97. package/esm2020/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.mjs +5 -0
  98. package/esm2020/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.mjs +6 -0
  99. package/esm2020/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.mjs +10 -0
  100. package/esm2020/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.mjs +6 -0
  101. package/esm2020/lib/shared/components/palette/query-management/index.mjs +7 -0
  102. package/esm2020/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +2 -0
  103. package/esm2020/lib/shared/components/palette/query-management/models/index.mjs +8 -0
  104. package/esm2020/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.mjs +2 -0
  105. package/esm2020/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.mjs +2 -0
  106. package/esm2020/lib/shared/components/palette/query-management/models/query-create-context.enum.mjs +9 -0
  107. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.mjs +2 -0
  108. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +21 -0
  109. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +38 -0
  110. package/esm2020/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +121 -0
  111. package/esm2020/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +22 -0
  112. package/esm2020/lib/shared/components/palette/text/write-text-field.component.mjs +8 -10
  113. package/esm2020/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +8 -10
  114. package/esm2020/lib/shared/components/palette/utils/field-label.pipe.mjs +14 -7
  115. package/esm2020/lib/shared/components/palette/utils/first-error.pipe.mjs +16 -9
  116. package/esm2020/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +10 -5
  117. package/esm2020/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +12 -13
  118. package/esm2020/lib/shared/domain/case-flag/flag-type.model.mjs +16 -2
  119. package/esm2020/lib/shared/domain/case-view/case-view-event-ids.enum.mjs +6 -0
  120. package/esm2020/lib/shared/domain/case-view/case-view-trigger.model.mjs +1 -2
  121. package/esm2020/lib/shared/domain/definition/display-context-enum.model.mjs +3 -1
  122. package/esm2020/lib/shared/fixture/shared.test.fixture.mjs +2 -1
  123. package/esm2020/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +16 -0
  124. package/esm2020/lib/shared/pipes/generic/index.mjs +2 -0
  125. package/esm2020/lib/shared/pipes/index.mjs +3 -2
  126. package/esm2020/lib/shared/pipes/pipes.module.mjs +9 -5
  127. package/esm2020/lib/shared/services/case-flag/case-flag-refdata.service.mjs +9 -3
  128. package/esm2020/lib/shared/services/fields/fields.utils.mjs +22 -4
  129. package/esm2020/lib/shared/services/form/form-value.service.mjs +14 -11
  130. package/esm2020/lib/shared/services/jurisdiction/jurisdiction.service.mjs +2 -1
  131. package/esm2020/lib/shared/services/request/request.options.builder.mjs +7 -1
  132. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +8708 -4212
  133. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  134. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +15202 -11124
  135. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  136. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  137. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  138. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts +6 -0
  139. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts.map +1 -0
  140. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +1 -1
  141. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  142. package/lib/shared/components/case-editor/case-editor.module.d.ts +17 -20
  143. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  144. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  145. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  146. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +11 -0
  147. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -0
  148. package/lib/shared/components/case-editor/services/cases.service.d.ts +1 -0
  149. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  150. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  151. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +6 -2
  152. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  153. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +4 -4
  154. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  155. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  156. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +6 -2
  157. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  158. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +25 -8
  159. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  160. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +2 -1
  161. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  162. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +28 -0
  163. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -0
  164. package/lib/shared/components/palette/case-flag/components/index.d.ts +3 -0
  165. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  166. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +4 -8
  167. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  168. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +5 -0
  169. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +1 -0
  170. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +10 -8
  171. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  172. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +2 -1
  173. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  174. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +16 -9
  175. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  176. 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
  177. 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
  178. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +26 -11
  179. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  180. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +1 -10
  181. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  182. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +12 -1
  183. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  184. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +1 -0
  185. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  186. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts +1 -0
  187. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts.map +1 -1
  188. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts +3 -1
  189. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts.map +1 -1
  190. package/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.d.ts +11 -0
  191. package/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.d.ts.map +1 -0
  192. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +14 -0
  193. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +1 -0
  194. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +12 -0
  195. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +1 -0
  196. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +2 -1
  197. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  198. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +11 -3
  199. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  200. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +5 -0
  201. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +1 -0
  202. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +5 -0
  203. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +1 -0
  204. package/lib/shared/components/palette/case-flag/enums/index.d.ts +8 -1
  205. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  206. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +2 -1
  207. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  208. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +3 -0
  209. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  210. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +5 -0
  211. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +1 -0
  212. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +5 -0
  213. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +1 -0
  214. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +5 -1
  215. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  216. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +7 -2
  217. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  218. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +7 -4
  219. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  220. package/lib/shared/components/palette/case-flag/index.d.ts +1 -0
  221. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  222. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +19 -0
  223. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +1 -0
  224. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +5 -0
  225. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +1 -0
  226. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +18 -0
  227. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +1 -0
  228. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +25 -0
  229. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +1 -0
  230. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +21 -0
  231. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +1 -0
  232. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +12 -8
  233. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  234. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +52 -27
  235. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  236. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +3 -2
  237. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  238. package/lib/shared/components/palette/complex/read-complex-field.component.d.ts.map +1 -1
  239. package/lib/shared/components/palette/complex/sort-order.d.ts +6 -0
  240. package/lib/shared/components/palette/complex/sort-order.d.ts.map +1 -0
  241. package/lib/shared/components/palette/index.d.ts +2 -0
  242. package/lib/shared/components/palette/index.d.ts.map +1 -1
  243. package/lib/shared/components/palette/markdown/index.d.ts +1 -0
  244. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  245. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +13 -0
  246. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +1 -0
  247. package/lib/shared/components/palette/palette.module.d.ts +140 -118
  248. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  249. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  250. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +11 -0
  251. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +1 -0
  252. package/lib/shared/components/palette/query-management/components/index.d.ts +13 -0
  253. package/lib/shared/components/palette/query-management/components/index.d.ts.map +1 -0
  254. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts +8 -0
  255. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts.map +1 -0
  256. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +22 -0
  257. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -0
  258. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts +11 -0
  259. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts.map +1 -0
  260. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +10 -0
  261. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +1 -0
  262. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +30 -0
  263. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -0
  264. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +16 -0
  265. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -0
  266. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts +9 -0
  267. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts.map +1 -0
  268. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +18 -0
  269. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +1 -0
  270. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +20 -0
  271. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +1 -0
  272. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts +20 -0
  273. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts.map +1 -0
  274. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +11 -0
  275. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -0
  276. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +21 -0
  277. 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
  278. package/lib/shared/components/palette/query-management/enums/index.d.ts +6 -0
  279. package/lib/shared/components/palette/query-management/enums/index.d.ts.map +1 -0
  280. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts +4 -0
  281. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts.map +1 -0
  282. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts +5 -0
  283. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts.map +1 -0
  284. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts +9 -0
  285. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts.map +1 -0
  286. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts +5 -0
  287. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts.map +1 -0
  288. package/lib/shared/components/palette/query-management/index.d.ts +7 -0
  289. package/lib/shared/components/palette/query-management/index.d.ts.map +1 -0
  290. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts +27 -0
  291. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts.map +1 -0
  292. package/lib/shared/components/palette/query-management/models/index.d.ts +8 -0
  293. package/lib/shared/components/palette/query-management/models/index.d.ts.map +1 -0
  294. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts +5 -0
  295. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts.map +1 -0
  296. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts +6 -0
  297. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts.map +1 -0
  298. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts +8 -0
  299. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts.map +1 -0
  300. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +7 -0
  301. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +1 -0
  302. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +10 -0
  303. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -0
  304. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +22 -0
  305. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -0
  306. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +18 -0
  307. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -0
  308. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +12 -0
  309. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -0
  310. package/lib/shared/components/palette/utils/field-label.pipe.d.ts +3 -0
  311. package/lib/shared/components/palette/utils/field-label.pipe.d.ts.map +1 -1
  312. package/lib/shared/components/palette/utils/first-error.pipe.d.ts +8 -5
  313. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  314. package/lib/shared/components/palette/yes-no/read-yes-no-field.component.d.ts.map +1 -1
  315. package/lib/shared/domain/case-flag/flag-type.model.d.ts +6 -1
  316. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  317. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +5 -0
  318. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +1 -0
  319. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +0 -1
  320. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  321. package/lib/shared/domain/definition/display-context-enum.model.d.ts +3 -1
  322. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  323. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  324. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +8 -0
  325. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +1 -0
  326. package/lib/shared/pipes/generic/index.d.ts +2 -0
  327. package/lib/shared/pipes/generic/index.d.ts.map +1 -0
  328. package/lib/shared/pipes/index.d.ts +2 -1
  329. package/lib/shared/pipes/index.d.ts.map +1 -1
  330. package/lib/shared/pipes/pipes.module.d.ts +3 -2
  331. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  332. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +3 -2
  333. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  334. package/lib/shared/services/fields/fields.utils.d.ts +1 -0
  335. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  336. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  337. package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts.map +1 -1
  338. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  339. package/package.json +1 -1
@@ -0,0 +1,77 @@
1
+ import { AsyncPipe } from '@angular/common';
2
+ import { ChangeDetectorRef, Pipe } from '@angular/core';
3
+ import { RpxTranslationService } from 'rpx-xui-translation';
4
+ import { map } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "rpx-xui-translation";
7
+ export class UpdateFlagTitleDisplayPipe extends AsyncPipe {
8
+ constructor(translationService, ref) {
9
+ super(ref);
10
+ this.translationService = translationService;
11
+ this.ref = ref;
12
+ this.languageObservables = new Map();
13
+ }
14
+ transform(value) {
15
+ if (typeof value === 'object') {
16
+ // Use a map from FlagType code + name + name_cy to an Observable returned by RpxTranslationService, to keep
17
+ // track of which Observables exist already. This is to avoid problems with the async pipe, caused by a new
18
+ // Observable being created by the pipe() operator every time it is called for the same fieldName
19
+ const languageObservableKey = `${value['flagCode']}_${value['name']}_${value['name_cy']}`;
20
+ if (!this.languageObservables.has(languageObservableKey)) {
21
+ const o = this.translationService.language$.pipe(map((_) => {
22
+ const flagName = this.getFlagName(value);
23
+ const flagDescription = this.getFlagDescription(value);
24
+ const flagComment = this.getFlagComments(value);
25
+ return flagName === flagDescription
26
+ ? `${flagDescription}${flagComment}`
27
+ : `${flagName}, ${flagDescription}${flagComment}`;
28
+ }));
29
+ this.languageObservables.set(languageObservableKey, o);
30
+ return super.transform(o);
31
+ }
32
+ return super.transform(this.languageObservables.get(languageObservableKey));
33
+ }
34
+ return null;
35
+ }
36
+ getFlagName(flagDetail) {
37
+ return flagDetail.subTypeValue || flagDetail.subTypeValue_cy
38
+ ? this.translationService.language === 'cy'
39
+ ? `${flagDetail.name_cy || flagDetail.name}, ${flagDetail.subTypeValue_cy || flagDetail.subTypeValue}`
40
+ : `${flagDetail.name || flagDetail.name_cy}, ${flagDetail.subTypeValue || flagDetail.subTypeValue_cy}`
41
+ : this.translationService.language === 'cy'
42
+ ? flagDetail.name_cy || flagDetail.name
43
+ : flagDetail.name || flagDetail.name_cy;
44
+ }
45
+ getFlagDescription(flagDetail) {
46
+ /* istanbul ignore else */
47
+ if (flagDetail && flagDetail.name) {
48
+ /* istanbul ignore else */
49
+ if (flagDetail.name === 'Other' && flagDetail.otherDescription ||
50
+ flagDetail.name_cy === 'Arall' && flagDetail.otherDescription_cy) {
51
+ return this.translationService.language === 'cy'
52
+ ? flagDetail.otherDescription_cy || flagDetail.otherDescription
53
+ : flagDetail.otherDescription || flagDetail.otherDescription_cy;
54
+ }
55
+ return this.getFlagName(flagDetail);
56
+ }
57
+ return '';
58
+ }
59
+ getFlagComments(flagDetail) {
60
+ if (flagDetail.flagComment || flagDetail.flagComment_cy) {
61
+ return this.translationService.language === 'cy'
62
+ ? ` - ${flagDetail.flagComment_cy || flagDetail.flagComment}`
63
+ : ` - ${flagDetail.flagComment || flagDetail.flagComment_cy}`;
64
+ }
65
+ return '';
66
+ }
67
+ }
68
+ UpdateFlagTitleDisplayPipe.ɵfac = function UpdateFlagTitleDisplayPipe_Factory(t) { return new (t || UpdateFlagTitleDisplayPipe)(i0.ɵɵdirectiveInject(i1.RpxTranslationService, 16), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef, 16)); };
69
+ UpdateFlagTitleDisplayPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "updateFlagTitleDisplay", type: UpdateFlagTitleDisplayPipe, pure: false });
70
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UpdateFlagTitleDisplayPipe, [{
71
+ type: Pipe,
72
+ args: [{
73
+ name: 'updateFlagTitleDisplay',
74
+ pure: false
75
+ }]
76
+ }], function () { return [{ type: i1.RpxTranslationService }, { type: i0.ChangeDetectorRef }]; }, null); })();
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWZsYWctdGl0bGUtZGlzcGxheS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3BpcGVzL3VwZGF0ZS1mbGFnLXRpdGxlLWRpc3BsYXkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPckMsTUFBTSxPQUFPLDBCQUEyQixTQUFRLFNBQVM7SUFHdkQsWUFDbUIsa0JBQXlDLEVBQ3pDLEdBQXNCO1FBRXZDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUhNLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBdUI7UUFDekMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFKakMsd0JBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7SUFPcEUsQ0FBQztJQUtNLFNBQVMsQ0FBaUIsS0FBUTtRQUN2QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3Qiw0R0FBNEc7WUFDNUcsMkdBQTJHO1lBQzNHLGlHQUFpRztZQUNqRyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUMxRixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FB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QVcsRUFBRTtnQkFDN0QsQ0FBQyxDQUFDLE1BQU0sVUFBVSxDQUFDLFdBQVcsSUFBSSxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDakU7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7O29HQXRFVSwwQkFBMEI7eUdBQTFCLDBCQUEwQjt1RkFBMUIsMEJBQTBCO2NBSnRDLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsd0JBQXdCO2dCQUM5QixJQUFJLEVBQUUsS0FBSzthQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdycHgteHVpLXRyYW5zbGF0aW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRmxhZ0RldGFpbCB9IGZyb20gJy4uL2RvbWFpbic7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3VwZGF0ZUZsYWdUaXRsZURpc3BsYXknLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBVcGRhdGVGbGFnVGl0bGVEaXNwbGF5UGlwZSBleHRlbmRzIEFzeW5jUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIGxhbmd1YWdlT2JzZXJ2YWJsZXMgPSBuZXcgTWFwPHN0cmluZywgT2JzZXJ2YWJsZTxzdHJpbmc+PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25TZXJ2aWNlOiBScHhUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIHN1cGVyKHJlZik7XG4gIH1cblxuICBwdWJsaWMgdHJhbnNmb3JtPFQ+KG9iajogbnVsbHx1bmRlZmluZWQpOiBudWxsO1xuICBwdWJsaWMgdHJhbnNmb3JtPFQ+KG9iajogT2JzZXJ2YWJsZTxUPnxTdWJzY3JpYmFibGU8VD58UHJvbWlzZTxUPnxudWxsfHVuZGVmaW5lZCk6IFR8bnVsbDtcbiAgcHVibGljIHRyYW5zZm9ybTxUID0gRmxhZ0RldGFpbD4odmFsdWU6IFQpOiBzdHJpbmd8bnVsbDtcbiAgcHVibGljIHRyYW5zZm9ybTxUID0gRmxhZ0RldGFpbD4odmFsdWU6IFQpOiBzdHJpbmd8bnVsbCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIFVzZSBhIG1hcCBmcm9tIEZsYWdUeXBlIGNvZGUgKyBuYW1lICsgbmFtZV9jeSB0byBhbiBPYnNlcnZhYmxlIHJldHVybmVkIGJ5IFJweFRyYW5zbGF0aW9uU2VydmljZSwgdG8ga2VlcFxuICAgICAgLy8gdHJhY2sgb2Ygd2hpY2ggT2JzZXJ2YWJsZXMgZXhpc3QgYWxyZWFkeS4gVGhpcyBpcyB0byBhdm9pZCBwcm9ibGVtcyB3aXRoIHRoZSBhc3luYyBwaXBlLCBjYXVzZWQgYnkgYSBuZXdcbiAgICAgIC8vIE9ic2VydmFibGUgYmVpbmcgY3JlYXRlZCBieSB0aGUgcGlwZSgpIG9wZXJhdG9yIGV2ZXJ5IHRpbWUgaXQgaXMgY2FsbGVkIGZvciB0aGUgc2FtZSBmaWVsZE5hbWVcbiAgICAgIGNvbnN0IGxhbmd1YWdlT2JzZXJ2YWJsZUtleSA9IGAke3ZhbHVlWydmbGFnQ29kZSddfV8ke3ZhbHVlWyduYW1lJ119XyR7dmFsdWVbJ25hbWVfY3knXX1gO1xuICAgICAgaWYgKCF0aGlzLmxhbmd1YWdlT2JzZXJ2YWJsZXMuaGFzKGxhbmd1YWdlT2JzZXJ2YWJsZUtleSkpIHtcbiAgICAgICAgY29uc3QgbzogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UkLnBpcGUoXG4gICAgICAgICAgbWFwKChfKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmbGFnTmFtZSA9IHRoaXMuZ2V0RmxhZ05hbWUodmFsdWUgYXMgdW5rbm93biBhcyBGbGFnRGV0YWlsKTtcbiAgICAgICAgICAgIGNvbnN0IGZsYWdEZXNjcmlwdGlvbiA9IHRoaXMuZ2V0RmxhZ0Rlc2NyaXB0aW9uKHZhbHVlIGFzIHVua25vd24gYXMgRmxhZ0RldGFpbCk7XG4gICAgICAgICAgICBjb25zdCBmbGFnQ29tbWVudCA9IHRoaXMuZ2V0RmxhZ0NvbW1lbnRzKHZhbHVlIGFzIHVua25vd24gYXMgRmxhZ0RldGFpbCk7XG4gICAgICAgICAgICByZXR1cm4gZmxhZ05hbWUgPT09IGZsYWdEZXNjcmlwdGlvblxuICAgICAgICAgICAgICA/IGAke2ZsYWdEZXNjcmlwdGlvbn0ke2ZsYWdDb21tZW50fWBcbiAgICAgICAgICAgICAgOiBgJHtmbGFnTmFtZX0sICR7ZmxhZ0Rlc2NyaXB0aW9ufSR7ZmxhZ0NvbW1lbnR9YDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmxhbmd1YWdlT2JzZXJ2YWJsZXMuc2V0KGxhbmd1YWdlT2JzZXJ2YWJsZUtleSwgbyk7XG4gICAgICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm08c3RyaW5nPihvKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBzdXBlci50cmFuc2Zvcm08c3RyaW5nPih0aGlzLmxhbmd1YWdlT2JzZXJ2YWJsZXMuZ2V0KGxhbmd1YWdlT2JzZXJ2YWJsZUtleSkpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbGFnTmFtZShmbGFnRGV0YWlsOiBGbGFnRGV0YWlsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWUgfHwgZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWVfY3lcbiAgICAgID8gdGhpcy50cmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgPT09ICdjeSdcbiAgICAgICAgPyBgJHtmbGFnRGV0YWlsLm5hbWVfY3kgfHwgZmxhZ0RldGFpbC5uYW1lfSwgJHtmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZV9jeSB8fCBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZX1gXG4gICAgICAgIDogYCR7ZmxhZ0RldGFpbC5uYW1lIHx8IGZsYWdEZXRhaWwubmFtZV9jeX0sICR7ZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWUgfHwgZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWVfY3l9YFxuICAgICAgOiB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2N5J1xuICAgICAgICA/IGZsYWdEZXRhaWwubmFtZV9jeSB8fCBmbGFnRGV0YWlsLm5hbWVcbiAgICAgICAgOiBmbGFnRGV0YWlsLm5hbWUgfHwgZmxhZ0RldGFpbC5uYW1lX2N5O1xuICB9XG5cbiAgcHVibGljIGdldEZsYWdEZXNjcmlwdGlvbihmbGFnRGV0YWlsOiBGbGFnRGV0YWlsKTogc3RyaW5nIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChmbGFnRGV0YWlsICYmIGZsYWdEZXRhaWwubmFtZSkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChmbGFnRGV0YWlsLm5hbWUgPT09ICdPdGhlcicgJiYgZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uIHx8XG4gICAgICAgIGZsYWdEZXRhaWwubmFtZV9jeSA9PT0gJ0FyYWxsJyAmJiBmbGFnRGV0YWlsLm90aGVyRGVzY3JpcHRpb25fY3kpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnY3knXG4gICAgICAgICAgPyBmbGFnRGV0YWlsLm90aGVyRGVzY3JpcHRpb25fY3kgfHwgZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uXG4gICAgICAgICAgOiBmbGFnRGV0YWlsLm90aGVyRGVzY3JpcHRpb24gfHwgZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uX2N5O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RmxhZ05hbWUoZmxhZ0RldGFpbCk7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbGFnQ29tbWVudHMoZmxhZ0RldGFpbDogRmxhZ0RldGFpbCk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQgfHwgZmxhZ0RldGFpbC5mbGFnQ29tbWVudF9jeSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnY3knXG4gICAgICAgID8gYCAtICR7ZmxhZ0RldGFpbC5mbGFnQ29tbWVudF9jeSB8fCBmbGFnRGV0YWlsLmZsYWdDb21tZW50fWBcbiAgICAgICAgOiBgIC0gJHtmbGFnRGV0YWlsLmZsYWdDb21tZW50IHx8IGZsYWdEZXRhaWwuZmxhZ0NvbW1lbnRfY3l9YDtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=
@@ -1,111 +1,208 @@
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 i0.ɵɵresetView(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);
29
+ } }
30
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_2_div_4_Template(rf, ctx) { if (rf & 1) {
31
+ i0.ɵɵelementStart(0, "div");
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);
33
+ i0.ɵɵelementEnd();
34
+ } if (rf & 2) {
35
+ const flagData_r7 = ctx.$implicit;
36
+ i0.ɵɵadvance(1);
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);
23
53
  } }
24
- function ReadCaseFlagFieldComponent_ng_container_2_div_3_Template(rf, ctx) { if (rf & 1) {
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"));
60
+ } }
61
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_div_4_Template(rf, ctx) { if (rf & 1) {
25
62
  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);
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);
27
64
  i0.ɵɵelementEnd();
28
65
  } if (rf & 2) {
29
- const flagData_r4 = ctx.$implicit;
66
+ const flagData_r12 = ctx.$implicit;
30
67
  i0.ɵɵadvance(1);
31
- i0.ɵɵproperty("ngIf", flagData_r4.flags.partyName);
68
+ i0.ɵɵproperty("ngIf", flagData_r12.flags.partyName);
32
69
  } }
33
- function ReadCaseFlagFieldComponent_ng_container_2_div_4_Template(rf, ctx) { if (rf & 1) {
70
+ function ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_div_5_Template(rf, ctx) { if (rf & 1) {
34
71
  i0.ɵɵelementStart(0, "div");
35
- i0.ɵɵelement(1, "ccd-case-flag-table", 8);
72
+ i0.ɵɵelement(1, "ccd-case-flag-table", 10);
73
+ i0.ɵɵpipe(2, "rpxTranslate");
74
+ i0.ɵɵpipe(3, "rpxTranslate");
36
75
  i0.ɵɵelementEnd();
37
76
  } if (rf & 2) {
38
- const ctx_r3 = i0.ɵɵnextContext(2);
77
+ const ctx_r11 = i0.ɵɵnextContext(3);
39
78
  i0.ɵɵadvance(1);
40
- i0.ɵɵproperty("tableCaption", "Case level flags")("flagData", ctx_r3.caseLevelCaseFlagData)("firstColumnHeader", "Case flags");
79
+ i0.ɵɵproperty("tableCaption", i0.ɵɵpipeBind1(2, 3, "Case level flags"))("flagData", ctx_r11.caseLevelCaseFlagData)("firstColumnHeader", i0.ɵɵpipeBind1(3, 5, "Case flags"));
41
80
  } }
42
- function ReadCaseFlagFieldComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
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);
49
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)(1, 2);
101
+ i0.ɵɵtemplate(2, ReadCaseFlagFieldComponent_ng_container_1_ng_container_2_Template, 5, 4, "ng-container", 3);
102
+ i0.ɵɵtemplate(3, ReadCaseFlagFieldComponent_ng_container_1_ng_container_3_Template, 6, 5, "ng-container", 4);
103
+ i0.ɵɵelementContainerEnd()();
50
104
  } if (rf & 2) {
51
105
  const ctx_r1 = i0.ɵɵnextContext();
52
- i0.ɵɵadvance(3);
53
- i0.ɵɵproperty("ngForOf", ctx_r1.partyLevelCaseFlagData);
54
106
  i0.ɵɵadvance(1);
55
- i0.ɵɵproperty("ngIf", ctx_r1.caseLevelCaseFlagData);
107
+ i0.ɵɵproperty("ngSwitch", ctx_r1.displayContextParameter);
108
+ i0.ɵɵadvance(1);
109
+ i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagDisplayContextParameter.READ_EXTERNAL);
56
110
  } }
57
111
  export class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
58
- constructor(route) {
112
+ constructor(route, router, caseFlagStateService) {
59
113
  super();
60
114
  this.route = route;
115
+ this.router = router;
116
+ this.caseFlagStateService = caseFlagStateService;
61
117
  this.paletteContext = PaletteContext;
118
+ this.caseFlagsExternalUser = false;
62
119
  this.caseLevelCaseFlagsFieldId = 'caseFlags';
63
- this.caseNameMissing = 'Case name missing';
64
- this.createMode = '#ARGUMENT(CREATE)';
65
- this.updateMode = '#ARGUMENT(UPDATE)';
120
+ }
121
+ get caseFlagDisplayContextParameter() {
122
+ return CaseFlagDisplayContextParameter;
66
123
  }
67
124
  ngOnInit() {
125
+ const flagLauncherControlName = Object.keys(this.formGroup.controls).find(controlName => FieldsUtils.isCaseFieldOfType(this.formGroup.get(controlName)['caseField'], ['FlagLauncher']));
126
+ const flagLauncherComponent = this.formGroup.get(flagLauncherControlName)?.['component'];
127
+ this.displayContextParameter = flagLauncherComponent?.caseField?.display_context_parameter;
128
+ this.caseFlagsExternalUser = this.displayContextParameter === CaseFlagDisplayContextParameter.READ_EXTERNAL;
68
129
  // If the context is PaletteContext.DEFAULT, the Flags fields need to be located by CaseTab (they won't be present
69
130
  // in the FormGroup - only the FlagLauncher field is present)
70
131
  if (this.context === PaletteContext.DEFAULT) {
71
132
  // Determine the tab this CaseField belongs to (should be only one), from the CaseView object in the snapshot
72
133
  // data, and extract all flags-related data from its Flags fields
73
- if (this.route.snapshot.data.case && this.route.snapshot.data.case.tabs) {
134
+ if (this.route.snapshot.data.case?.tabs) {
74
135
  this.flagsData = this.route.snapshot.data.case.tabs
75
- .filter(tab => tab.fields && tab.fields
76
- .some(caseField => caseField.field_type.type === 'FlagLauncher'))[0].fields.reduce((flags, caseField) => {
77
- return FieldsUtils.extractFlagsDataFromCaseField(flags, caseField, caseField.id, caseField);
78
- }, []);
136
+ .filter((tab) => tab.fields?.some(
137
+ // There could be more than one FlagLauncher field instance so an additional check of caseField ID is
138
+ // required to ensure the correct instance is obtained
139
+ (caseField) => caseField.field_type.type === 'FlagLauncher' && caseField.id === this.caseField.id))[0].fields?.reduce((flags, caseField) => FieldsUtils.extractFlagsDataFromCaseField(flags, caseField, caseField.id, caseField), []);
79
140
  }
80
141
  // Separate the party-level and case-level flags
81
- this.partyLevelCaseFlagData = this.flagsData.filter(instance => instance.pathToFlagsFormGroup !== this.caseLevelCaseFlagsFieldId);
142
+ this.partyLevelCaseFlagData = this.flagsData.filter((instance) => instance.pathToFlagsFormGroup !== this.caseLevelCaseFlagsFieldId);
143
+ // If the user is internal, group all flags data by groupId where present so they see a combined collection of
144
+ // internal and external flags data for each party
145
+ if (!this.caseFlagsExternalUser) {
146
+ const groupedFlagsData = this.partyLevelCaseFlagData
147
+ .filter((f) => f.flags.groupId)
148
+ .reduce((mergedFlagDetails, f) => {
149
+ mergedFlagDetails[f.flags.groupId] = mergedFlagDetails[f.flags.groupId] || [];
150
+ // The flags.details property (which should be an array) could be falsy; spread an empty array if so
151
+ mergedFlagDetails[f.flags.groupId].push(...(f.flags.details || []));
152
+ return mergedFlagDetails;
153
+ }, Object.create(null));
154
+ // Remove duplicate flags objects with the same groupId (which are going to be treated as one for display
155
+ // purposes)
156
+ const uniquePartyData = this.partyLevelCaseFlagData
157
+ .filter((f) => f.flags.groupId)
158
+ .reduce((flagsUniqueByGroupId, f) => {
159
+ if (flagsUniqueByGroupId.findIndex(flag => flag.flags.groupId === f.flags.groupId) === -1) {
160
+ // Set the corresponding grouped flags data
161
+ f.flags.details = groupedFlagsData[f.flags.groupId];
162
+ flagsUniqueByGroupId.push(f);
163
+ }
164
+ return flagsUniqueByGroupId;
165
+ }, []);
166
+ // Append flags objects with no groupId
167
+ this.partyLevelCaseFlagData.filter((f) => !f.flags.groupId).forEach((f) => uniquePartyData.push(f));
168
+ this.partyLevelCaseFlagData = uniquePartyData;
169
+ }
82
170
  // There will be only one case-level flags instance containing all case-level flag details
83
- this.caseLevelCaseFlagData = this.flagsData.find(instance => instance.pathToFlagsFormGroup === this.caseLevelCaseFlagsFieldId);
171
+ this.caseLevelCaseFlagData = this.flagsData.find((instance) => instance.pathToFlagsFormGroup === this.caseLevelCaseFlagsFieldId);
84
172
  }
85
173
  else if (this.context === PaletteContext.CHECK_YOUR_ANSWER) {
86
174
  // If the context is PaletteContext.CHECK_YOUR_ANSWER, the Flags data is already present within the FormGroup.
87
175
  // The FlagLauncher component, WriteCaseFlagFieldComponent, holds a reference to:
88
176
  // i) the parent FormGroup for the Flags instance where changes have been made;
89
177
  // 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'];
178
+ if (flagLauncherComponent) {
93
179
  // The FlagLauncher component holds a reference (selectedFlagsLocation) containing the CaseField instance to
94
180
  // which the new flag has been added
95
- if (flagLauncherComponent.caseField.display_context_parameter === this.createMode &&
181
+ if ((flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.CREATE ||
182
+ flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.CREATE_2_POINT_1 ||
183
+ flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.CREATE_EXTERNAL) &&
96
184
  flagLauncherComponent.selectedFlagsLocation) {
185
+ this.pathToFlagsFormGroup = flagLauncherComponent.selectedFlagsLocation.pathToFlagsFormGroup;
97
186
  this.flagForSummaryDisplay = this.extractNewFlagToFlagDetailDisplayObject(flagLauncherComponent.selectedFlagsLocation);
98
- // Set the display mode for the "Review flag details" summary page
99
- this.summaryListDisplayMode = CaseFlagSummaryListDisplayMode.CREATE;
100
187
  // The FlagLauncher component holds a reference (selectedFlag), which gets set after the selection step of the
101
188
  // Manage Case Flags journey
102
189
  }
103
- else if (flagLauncherComponent.caseField.display_context_parameter === this.updateMode &&
190
+ else if ((flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE ||
191
+ flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1 ||
192
+ flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL) &&
104
193
  flagLauncherComponent.selectedFlag) {
105
194
  this.flagForSummaryDisplay =
106
195
  this.formGroup.get(flagLauncherControlName)['component'].selectedFlag.flagDetailDisplay;
107
- // Set the display mode for the "Review flag details" summary page
108
- this.summaryListDisplayMode = CaseFlagSummaryListDisplayMode.MANAGE;
196
+ // TODO: not the best solution, the caseFlagStateService should have all the fields, then we can delete a lot of the transformations here
197
+ // in Create Case Flag it already has all fields
198
+ const caseFlagFormGroupValue = this.caseFlagStateService.formGroup?.value;
199
+ if (caseFlagFormGroupValue) {
200
+ caseFlagFormGroupValue.status = CaseFlagStatus[caseFlagFormGroupValue.status];
201
+ this.flagForSummaryDisplay.flagDetail = {
202
+ ...this.flagForSummaryDisplay.flagDetail,
203
+ ...caseFlagFormGroupValue
204
+ };
205
+ }
109
206
  }
110
207
  }
111
208
  }
@@ -113,7 +210,7 @@ export class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
113
210
  extractNewFlagToFlagDetailDisplayObject(selectedFlagsLocation) {
114
211
  // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the
115
212
  // CaseField value containing the new flag
116
- let flagsCaseFieldValue = selectedFlagsLocation.caseField.value;
213
+ let flagsCaseFieldValue = selectedFlagsLocation.caseField?.value;
117
214
  const path = selectedFlagsLocation.pathToFlagsFormGroup;
118
215
  // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
119
216
  if (path.indexOf('.') > -1) {
@@ -123,25 +220,27 @@ export class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
123
220
  return {
124
221
  partyName: flagsCaseFieldValue.partyName,
125
222
  // 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
223
+ flagDetail: flagsCaseFieldValue.details?.find(element => !element.hasOwnProperty('id'))?.value
127
224
  };
128
225
  }
129
226
  return null;
130
227
  }
228
+ navigateBackToForm(fieldState) {
229
+ this.caseFlagStateService.fieldStateToNavigate = fieldState;
230
+ this.router.navigate([`../${this.caseFlagStateService.pageLocation}`], { relativeTo: this.route });
231
+ }
131
232
  }
132
- ReadCaseFlagFieldComponent.ɵfac = function ReadCaseFlagFieldComponent_Factory(t) { return new (t || ReadCaseFlagFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute)); };
133
- ReadCaseFlagFieldComponent.ɵcmp = /*@__PURE__*/ 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();
233
+ ReadCaseFlagFieldComponent.ɵfac = function ReadCaseFlagFieldComponent_Factory(t) { return new (t || ReadCaseFlagFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.CaseFlagStateService)); };
234
+ ReadCaseFlagFieldComponent.ɵcmp = /*@__PURE__*/ 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) {
235
+ i0.ɵɵtemplate(0, ReadCaseFlagFieldComponent_ng_container_0_Template, 2, 2, "ng-container", 0);
236
+ i0.ɵɵtemplate(1, ReadCaseFlagFieldComponent_ng_container_1_Template, 4, 2, "ng-container", 0);
138
237
  } if (rf & 2) {
139
- i0.ɵɵproperty("ngSwitch", ctx.context);
238
+ i0.ɵɵproperty("ngIf", ctx.context === ctx.paletteContext.CHECK_YOUR_ANSWER);
140
239
  i0.ɵɵadvance(1);
141
- i0.ɵɵproperty("ngSwitchCase", ctx.paletteContext.CHECK_YOUR_ANSWER);
240
+ i0.ɵɵproperty("ngIf", ctx.context !== ctx.paletteContext.CHECK_YOUR_ANSWER);
142
241
  } }, styles: [".govuk-heading-l[_ngcontent-%COMP%]{margin-top:30px}"] });
143
242
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadCaseFlagFieldComponent, [{
144
243
  type: Component,
145
- args: [{ selector: 'ccd-read-case-flag-field', template: "<ng-container [ngSwitch]=\"context\">\n <ng-container *ngSwitchCase=\"paletteContext.CHECK_YOUR_ANSWER\">\n <ccd-case-flag-summary-list [flagForSummaryDisplay]=\"flagForSummaryDisplay\"\n [summaryListDisplayMode]=\"summaryListDisplayMode\"></ccd-case-flag-summary-list>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <h2 class=\"govuk-heading-l\">Case flags</h2>\n <div *ngFor=\"let flagData of partyLevelCaseFlagData\">\n <ccd-case-flag-table *ngIf=\"flagData.flags.partyName\"\n [tableCaption]=\"flagData.flags.partyName\"\n [flagData]=\"flagData\"\n [firstColumnHeader]=\"'Party level flags'\"\n ></ccd-case-flag-table>\n </div>\n <div *ngIf=\"caseLevelCaseFlagData\">\n <ccd-case-flag-table\n [tableCaption]=\"'Case level flags'\"\n [flagData]=\"caseLevelCaseFlagData\"\n [firstColumnHeader]=\"'Case flags'\"\n ></ccd-case-flag-table>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".govuk-heading-l{margin-top:30px}\n"] }]
146
- }], function () { return [{ type: i1.ActivatedRoute }]; }, null); })();
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7OztJQ052RCw2QkFBK0Q7SUFDN0QsZ0RBQ2lGO0lBQ25GLDBCQUFlOzs7SUFGZSxlQUErQztJQUEvQyxvRUFBK0MseURBQUE7OztJQU16RSx5Q0FJdUI7OztJQUhyQiwwREFBeUMseUJBQUEsMENBQUE7OztJQUY3QywyQkFBcUQ7SUFDbkQsZ0lBSXVCO0lBQ3pCLGlCQUFNOzs7SUFMa0IsZUFBOEI7SUFBOUIsa0RBQThCOzs7SUFNdEQsMkJBQW1DO0lBQ2pDLHlDQUl1QjtJQUN6QixpQkFBTTs7O0lBSkYsZUFBbUM7SUFBbkMsaURBQW1DLDBDQUFBLG1DQUFBOzs7SUFYekMs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LENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDL0c7UUFDRCxJQUFJLG1CQUFtQixFQUFFO1lBQ3ZCLE9BQU87Z0JBQ0wsU0FBUyxFQUFFLG1CQUFtQixDQUFDLFNBQVM7Z0JBQ3hDLDBHQUEwRztnQkFDMUcsVUFBVSxFQUFFLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO2FBQ3hFLENBQUM7U0FDeEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O29HQXhGVSwwQkFBMEI7NkVBQTFCLDBCQUEwQjtRQ2R2QyxnQ0FBbUM7UUFDakMsNkZBR2U7UUFDZiw2RkFnQmU7UUFDakIsMEJBQWU7O1FBdEJELHNDQUFvQjtRQUNqQixlQUE4QztRQUE5QyxtRUFBOEM7O3VGRGFsRCwwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FzZVRhYiB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtcmVhZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFsZXR0ZUNvbnRleHQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL3BhbGV0dGUtY29udGV4dC5lbnVtJztcbmltcG9ydCB7IEZsYWdEZXRhaWxEaXNwbGF5LCBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdW1tYXJ5TGlzdERpc3BsYXlNb2RlIH0gZnJvbSAnLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLWNhc2UtZmxhZy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVhZENhc2VGbGFnRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBwdWJsaWMgcGFydHlMZXZlbENhc2VGbGFnRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBwdWJsaWMgY2FzZUxldmVsQ2FzZUZsYWdEYXRhOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoO1xuICBwdWJsaWMgcGFsZXR0ZUNvbnRleHQgPSBQYWxldHRlQ29udGV4dDtcbiAgcHVibGljIGZsYWdGb3JTdW1tYXJ5RGlzcGxheTogRmxhZ0RldGFpbERpc3BsYXk7XG4gIHB1YmxpYyBzdW1tYXJ5TGlzdERpc3BsYXlNb2RlOiBDYXNlRmxhZ1N1bW1hcnlMaXN0RGlzcGxheU1vZGU7XG4gIHB1YmxpYyByZWFkb25seSBjYXNlTGV2ZWxDYXNlRmxhZ3NGaWVsZElkID0gJ2Nhc2VGbGFncyc7XG4gIHB1YmxpYyByZWFkb25seSBjYXNlTmFtZU1pc3NpbmcgPSAnQ2FzZSBuYW1lIG1pc3NpbmcnO1xuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZU1vZGUgPSAnI0FSR1VNRU5UKENSRUFURSknO1xuICBwcml2YXRlIHJlYWRvbmx5IHVwZGF0ZU1vZGUgPSAnI0FSR1VNRU5UKFVQREFURSknO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgdGhlIGNvbnRleHQgaXMgUGFsZXR0ZUNvbnRleHQuREVGQVVMVCwgdGhlIEZsYWdzIGZpZWxkcyBuZWVkIHRvIGJlIGxvY2F0ZWQgYnkgQ2FzZVRhYiAodGhleSB3b24ndCBiZSBwcmVzZW50XG4gICAgLy8gaW4gdGhlIEZvcm1Hcm91cCAtIG9ubHkgdGhlIEZsYWdMYXVuY2hlciBmaWVsZCBpcyBwcmVzZW50KVxuICAgIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkRFRkFVTFQpIHtcbiAgICAgIC8vIERldGVybWluZSB0aGUgdGFiIHRoaXMgQ2FzZUZpZWxkIGJlbG9uZ3MgdG8gKHNob3VsZCBiZSBvbmx5IG9uZSksIGZyb20gdGhlIENhc2VWaWV3IG9iamVjdCBpbiB0aGUgc25hcHNob3RcbiAgICAgIC8vIGRhdGEsIGFuZCBleHRyYWN0IGFsbCBmbGFncy1yZWxhdGVkIGRhdGEgZnJvbSBpdHMgRmxhZ3MgZmllbGRzXG4gICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UudGFicykge1xuICAgICAgICB0aGlzLmZsYWdzRGF0YSA9ICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS50YWJzIGFzIENhc2VUYWJbXSlcbiAgICAgICAgICAuZmlsdGVyKHRhYiA9PiB0YWIuZmllbGRzICYmIHRhYi5maWVsZHNcbiAgICAgICAgICAgIC5zb21lKGNhc2VGaWVsZCA9PiBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnRmxhZ0xhdW5jaGVyJykpXG4gICAgICAgIFswXS5maWVsZHMucmVkdWNlKChmbGFncywgY2FzZUZpZWxkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIEZpZWxkc1V0aWxzLmV4dHJhY3RGbGFnc0RhdGFGcm9tQ2FzZUZpZWxkKGZsYWdzLCBjYXNlRmllbGQsIGNhc2VGaWVsZC5pZCwgY2FzZUZpZWxkKTtcbiAgICAgICAgfSwgW10pO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXBhcmF0ZSB0aGUgcGFydHktbGV2ZWwgYW5kIGNhc2UtbGV2ZWwgZmxhZ3NcbiAgICAgIHRoaXMucGFydHlMZXZlbENhc2VGbGFnRGF0YSA9IHRoaXMuZmxhZ3NEYXRhLmZpbHRlcihcbiAgICAgICAgaW5zdGFuY2UgPT4gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgIT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCk7XG4gICAgICAvLyBUaGVyZSB3aWxsIGJlIG9ubHkgb25lIGNhc2UtbGV2ZWwgZmxhZ3MgaW5zdGFuY2UgY29udGFpbmluZyBhbGwgY2FzZS1sZXZlbCBmbGFnIGRldGFpbHNcbiAgICAgIHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdEYXRhID0gdGhpcy5mbGFnc0RhdGEuZmluZChcbiAgICAgICAgaW5zdGFuY2UgPT4gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSKSB7XG4gICAgICAvLyBJZiB0aGUgY29udGV4dCBpcyBQYWxldHRlQ29udGV4dC5DSEVDS19ZT1VSX0FOU1dFUiwgdGhlIEZsYWdzIGRhdGEgaXMgYWxyZWFkeSBwcmVzZW50IHdpdGhpbiB0aGUgRm9ybUdyb3VwLlxuICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQsIFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudCwgaG9sZHMgYSByZWZlcmVuY2UgdG86XG4gICAgICAvLyBpKSB0aGUgcGFyZW50IEZvcm1Hcm91cCBmb3IgdGhlIEZsYWdzIGluc3RhbmNlIHdoZXJlIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGU7XG4gICAgICAvLyBpaSkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmbGFnIChzZWxlY3RlZEZsYWcpIGlmIG9uZSBleGlzdHNcbiAgICAgIGNvbnN0IGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lID0gT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZpbmQoXG4gICAgICAgIGNvbnRyb2xOYW1lID0+IEZpZWxkc1V0aWxzLmlzRmxhZ0xhdW5jaGVyQ2FzZUZpZWxkKHRoaXMuZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSlbJ2Nhc2VGaWVsZCddKSk7XG4gICAgICBpZiAoZmxhZ0xhdW5jaGVyQ29udHJvbE5hbWUgJiYgdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKVsnY29tcG9uZW50J10pIHtcbiAgICAgICAgY29uc3QgZmxhZ0xhdW5jaGVyQ29tcG9uZW50ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKVsnY29tcG9uZW50J107XG4gICAgICAgIC8vIFRoZSBGbGFnTGF1bmNoZXIgY29tcG9uZW50IGhvbGRzIGEgcmVmZXJlbmNlIChzZWxlY3RlZEZsYWdzTG9jYXRpb24pIGNvbnRhaW5pbmcgdGhlIENhc2VGaWVsZCBpbnN0YW5jZSB0b1xuICAgICAgICAvLyB3aGljaCB0aGUgbmV3IGZsYWcgaGFzIGJlZW4gYWRkZWRcbiAgICAgICAgaWYgKGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gdGhpcy5jcmVhdGVNb2RlICYmXG4gICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LnNlbGVjdGVkRmxhZ3NMb2NhdGlvbikge1xuICAgICAgICAgIHRoaXMuZmxhZ0ZvclN1bW1hcnlEaXNwbGF5ID0gdGhpcy5leHRyYWN0TmV3RmxhZ1RvRmxhZ0RldGFpbERpc3BsYXlPYmplY3QoXG4gICAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uKTtcbiAgICAgICAgICAvLyBTZXQgdGhlIGRpc3BsYXkgbW9kZSBmb3IgdGhlIFwiUmV2aWV3IGZsYWcgZGV0YWlsc1wiIHN1bW1hcnkgcGFnZVxuICAgICAgICAgIHRoaXMuc3VtbWFyeUxpc3REaXNwbGF5TW9kZSA9IENhc2VGbGFnU3VtbWFyeUxpc3REaXNwbGF5TW9kZS5DUkVBVEU7XG4gICAgICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQgaG9sZHMgYSByZWZlcmVuY2UgKHNlbGVjdGVkRmxhZyksIHdoaWNoIGdldHMgc2V0IGFmdGVyIHRoZSBzZWxlY3Rpb24gc3RlcCBvZiB0aGVcbiAgICAgICAgICAvLyBNYW5hZ2UgQ2FzZSBGbGFncyBqb3VybmV5XG4gICAgICAgIH0gZWxzZSBpZiAoZmxhZ0xhdW5jaGVyQ29tcG9uZW50LmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSB0aGlzLnVwZGF0ZU1vZGUgJiZcbiAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuc2VsZWN0ZWRGbGFnKSB7XG4gICAgICAgICAgdGhpcy5mbGFnRm9yU3VtbWFyeURpc3BsYXkgPVxuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKVsnY29tcG9uZW50J10uc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5O1xuICAgICAgICAgIC8vIFNldCB0aGUgZGlzcGxheSBtb2RlIGZvciB0aGUgXCJSZXZpZXcgZmxhZyBkZXRhaWxzXCIgc3VtbWFyeSBwYWdlXG4gICAgICAgICAgdGhpcy5zdW1tYXJ5TGlzdERpc3BsYXlNb2RlID0gQ2FzZUZsYWdTdW1tYXJ5TGlzdERpc3BsYXlNb2RlLk1BTkFHRTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdE5ld0ZsYWdUb0ZsYWdEZXRhaWxEaXNwbGF5T2JqZWN0KHNlbGVjdGVkRmxhZ3NMb2NhdGlvbjogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCk6IEZsYWdEZXRhaWxEaXNwbGF5IHtcbiAgICAvLyBVc2UgdGhlIHBhdGhUb0ZsYWdzRm9ybUdyb3VwIHByb3BlcnR5IGZyb20gdGhlIHNlbGVjdGVkIGZsYWcgbG9jYXRpb24gdG8gZHJpbGwgZG93biB0byB0aGUgY29ycmVjdCBwYXJ0IG9mIHRoZVxuICAgIC8vIENhc2VGaWVsZCB2YWx1ZSBjb250YWluaW5nIHRoZSBuZXcgZmxhZ1xuICAgIGxldCBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLmNhc2VGaWVsZC52YWx1ZTtcbiAgICBjb25zdCBwYXRoID0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLnBhdGhUb0ZsYWdzRm9ybUdyb3VwO1xuICAgIC8vIFJvb3QtbGV2ZWwgRmxhZ3MgQ2FzZUZpZWxkcyBkb24ndCBoYXZlIGEgZG90LWRlbGltaXRlZCBwYXRoIC0ganVzdCB0aGUgQ2FzZUZpZWxkIElEIGl0c2VsZiAtIHNvIGRvbid0IGRyaWxsIGRvd25cbiAgICBpZiAocGF0aC5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgcGF0aC5zbGljZShwYXRoLmluZGV4T2YoJy4nKSArIDEpLnNwbGl0KCcuJykuZm9yRWFjaChwYXJ0ID0+IGZsYWdzQ2FzZUZpZWxkVmFsdWUgPSBmbGFnc0Nhc2VGaWVsZFZhbHVlW3BhcnRdKTtcbiAgICB9XG4gICAgaWYgKGZsYWdzQ2FzZUZpZWxkVmFsdWUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhcnR5TmFtZTogZmxhZ3NDYXNlRmllbGRWYWx1ZS5wYXJ0eU5hbWUsXG4gICAgICAgIC8vIExvb2sgaW4gdGhlIGRldGFpbHMgYXJyYXkgZm9yIHRoZSBvYmplY3QgdGhhdCBkb2VzICpub3QqIGhhdmUgYW4gaWQgLSB0aGlzIGluZGljYXRlcyBpdCBpcyB0aGUgbmV3IGZsYWdcbiAgICAgICAgZmxhZ0RldGFpbDogZmxhZ3NDYXNlRmllbGRWYWx1ZS5kZXRhaWxzLmZpbmQoZWxlbWVudCA9PiAhZWxlbWVudC5oYXNPd25Qcm9wZXJ0eSgnaWQnKSkudmFsdWVcbiAgICAgIH0gYXMgRmxhZ0RldGFpbERpc3BsYXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbnRleHRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwicGFsZXR0ZUNvbnRleHQuQ0hFQ0tfWU9VUl9BTlNXRVJcIj5cbiAgICA8Y2NkLWNhc2UtZmxhZy1zdW1tYXJ5LWxpc3QgW2ZsYWdGb3JTdW1tYXJ5RGlzcGxheV09XCJmbGFnRm9yU3VtbWFyeURpc3BsYXlcIlxuICAgICAgW3N1bW1hcnlMaXN0RGlzcGxheU1vZGVdPVwic3VtbWFyeUxpc3REaXNwbGF5TW9kZVwiPjwvY2NkLWNhc2UtZmxhZy1zdW1tYXJ5LWxpc3Q+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPGgyIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+Q2FzZSBmbGFnczwvaDI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgZmxhZ0RhdGEgb2YgcGFydHlMZXZlbENhc2VGbGFnRGF0YVwiPlxuICAgICAgPGNjZC1jYXNlLWZsYWctdGFibGUgKm5nSWY9XCJmbGFnRGF0YS5mbGFncy5wYXJ0eU5hbWVcIlxuICAgICAgICBbdGFibGVDYXB0aW9uXT1cImZsYWdEYXRhLmZsYWdzLnBhcnR5TmFtZVwiXG4gICAgICAgIFtmbGFnRGF0YV09XCJmbGFnRGF0YVwiXG4gICAgICAgIFtmaXJzdENvbHVtbkhlYWRlcl09XCInUGFydHkgbGV2ZWwgZmxhZ3MnXCJcbiAgICAgID48L2NjZC1jYXNlLWZsYWctdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNhc2VMZXZlbENhc2VGbGFnRGF0YVwiPlxuICAgICAgPGNjZC1jYXNlLWZsYWctdGFibGVcbiAgICAgICAgW3RhYmxlQ2FwdGlvbl09XCInQ2FzZSBsZXZlbCBmbGFncydcIlxuICAgICAgICBbZmxhZ0RhdGFdPVwiY2FzZUxldmVsQ2FzZUZsYWdEYXRhXCJcbiAgICAgICAgW2ZpcnN0Q29sdW1uSGVhZGVyXT1cIidDYXNlIGZsYWdzJ1wiXG4gICAgICA+PC9jY2QtY2FzZS1mbGFnLXRhYmxlPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
244
+ args: [{ selector: 'ccd-read-case-flag-field', template: "<ng-container *ngIf=\"context === paletteContext.CHECK_YOUR_ANSWER\">\n <ccd-case-flag-summary-list\n [flagForSummaryDisplay]=\"flagForSummaryDisplay\"\n [displayContextParameter]=\"displayContextParameter\"\n (changeButtonEmitter)=\"navigateBackToForm($event)\">\n </ccd-case-flag-summary-list>\n</ng-container>\n\n<ng-container *ngIf=\"context !== paletteContext.CHECK_YOUR_ANSWER\">\n <ng-container [ngSwitch]=\"displayContextParameter\">\n <ng-container *ngSwitchCase=\"caseFlagDisplayContextParameter.READ_EXTERNAL\">\n <h2 id=\"read-case-flag-title\" class=\"govuk-heading-l\">\n {{ 'Support requested' | rpxTranslate }}\n </h2>\n\n <div *ngFor=\"let flagData of partyLevelCaseFlagData\">\n <ccd-case-flag-table *ngIf=\"flagData.flags.partyName\"\n [tableCaption]=\"''\"\n [flagData]=\"flagData\"\n [firstColumnHeader]=\"flagData.flags.partyName\"\n [caseFlagsExternalUser]=\"caseFlagsExternalUser\"\n ></ccd-case-flag-table>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <h2 id=\"read-case-flag-title\" class=\"govuk-heading-l\">\n {{ 'Case flags' | rpxTranslate }}\n </h2>\n\n <div *ngFor=\"let flagData of partyLevelCaseFlagData\">\n <ccd-case-flag-table *ngIf=\"flagData.flags.partyName\"\n [tableCaption]=\"flagData.flags.partyName\"\n [flagData]=\"flagData\"\n [firstColumnHeader]=\"'Party level flags' | rpxTranslate\"\n ></ccd-case-flag-table>\n </div>\n <div *ngIf=\"caseLevelCaseFlagData\">\n <ccd-case-flag-table\n [tableCaption]=\"'Case level flags' | rpxTranslate\"\n [flagData]=\"caseLevelCaseFlagData\"\n [firstColumnHeader]=\"'Case flags' | rpxTranslate\"\n ></ccd-case-flag-table>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [".govuk-heading-l{margin-top:30px}\n"] }]
245
+ }], function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.CaseFlagStateService }]; }, null); })();
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7SUNSMUUsNkJBQW1FO0lBQ2pFLHFEQUdxRDtJQUFuRCxzT0FBdUIsZUFBQSxpQ0FBMEIsQ0FBQSxJQUFDO0lBQ3BELGlCQUE2QjtJQUMvQiwwQkFBZTs7O0lBSlgsZUFBK0M7SUFBL0Msb0VBQStDLDJEQUFBOzs7SUFjM0MseUNBS3VCOzs7O0lBSkQsaUNBQW1CLHlCQUFBLGtEQUFBLHVEQUFBOzs7SUFGM0MsMkJBQXFEO0lBQ25ELCtJQUt1QjtJQUN6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RUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLO2FBQzFFLENBQUM7U0FDeEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxVQUFrQjtRQUMxQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRyxDQUFDOztvR0E1SVUsMEJBQTBCOzZFQUExQiwwQkFBMEI7UUNmdkMsNkZBTWU7UUFFZiw2RkFzQ2U7O1FBOUNBLDJFQUFrRDtRQVFsRCxlQUFrRDtRQUFsRCwyRUFBa0Q7O3VGRE9wRCwwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDYXNlVGFiIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGRzJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZS1mbGFnLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9wYWxldHRlLWNvbnRleHQuZW51bSc7XG5pbXBvcnQgeyBGbGFnRGV0YWlsRGlzcGxheSwgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIsIENhc2VGbGFnU3RhdHVzIH0gZnJvbSAnLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLWNhc2UtZmxhZy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVhZENhc2VGbGFnRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBmbGFnc0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgcHVibGljIHBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgcHVibGljIGNhc2VMZXZlbENhc2VGbGFnRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aDtcbiAgcHVibGljIHBhbGV0dGVDb250ZXh0ID0gUGFsZXR0ZUNvbnRleHQ7XG4gIHB1YmxpYyBmbGFnRm9yU3VtbWFyeURpc3BsYXk6IEZsYWdEZXRhaWxEaXNwbGF5O1xuICBwdWJsaWMgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXI6IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXI7XG4gIHB1YmxpYyBjYXNlRmxhZ3NFeHRlcm5hbFVzZXIgPSBmYWxzZTtcbiAgcHVibGljIHBhdGhUb0ZsYWdzRm9ybUdyb3VwOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCA9ICdjYXNlRmxhZ3MnO1xuXG4gIHB1YmxpYyBnZXQgY2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlcigpOiB0eXBlb2YgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlciB7XG4gICAgcmV0dXJuIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUZsYWdTdGF0ZVNlcnZpY2U6IENhc2VGbGFnU3RhdGVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZmxhZ0xhdW5jaGVyQ29udHJvbE5hbWUgPSBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZmluZChcbiAgICAgIGNvbnRyb2xOYW1lID0+IEZpZWxkc1V0aWxzLmlzQ2FzZUZpZWxkT2ZUeXBlKHRoaXMuZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSlbJ2Nhc2VGaWVsZCddLCBbJ0ZsYWdMYXVuY2hlciddKSk7XG4gICAgY29uc3QgZmxhZ0xhdW5jaGVyQ29tcG9uZW50ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKT8uWydjb21wb25lbnQnXTtcbiAgICB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID0gZmxhZ0xhdW5jaGVyQ29tcG9uZW50Py5jYXNlRmllbGQ/LmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI7XG4gICAgdGhpcy5jYXNlRmxhZ3NFeHRlcm5hbFVzZXIgPSB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlJFQURfRVhURVJOQUw7XG5cbiAgICAvLyBJZiB0aGUgY29udGV4dCBpcyBQYWxldHRlQ29udGV4dC5ERUZBVUxULCB0aGUgRmxhZ3MgZmllbGRzIG5lZWQgdG8gYmUgbG9jYXRlZCBieSBDYXNlVGFiICh0aGV5IHdvbid0IGJlIHByZXNlbnRcbiAgICAvLyBpbiB0aGUgRm9ybUdyb3VwIC0gb25seSB0aGUgRmxhZ0xhdW5jaGVyIGZpZWxkIGlzIHByZXNlbnQpXG4gICAgaWYgKHRoaXMuY29udGV4dCA9PT0gUGFsZXR0ZUNvbnRleHQuREVGQVVMVCkge1xuICAgICAgLy8gRGV0ZXJtaW5lIHRoZSB0YWIgdGhpcyBDYXNlRmllbGQgYmVsb25ncyB0byAoc2hvdWxkIGJlIG9ubHkgb25lKSwgZnJvbSB0aGUgQ2FzZVZpZXcgb2JqZWN0IGluIHRoZSBzbmFwc2hvdFxuICAgICAgLy8gZGF0YSwgYW5kIGV4dHJhY3QgYWxsIGZsYWdzLXJlbGF0ZWQgZGF0YSBmcm9tIGl0cyBGbGFncyBmaWVsZHNcbiAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZT8udGFicykge1xuICAgICAgICB0aGlzLmZsYWdzRGF0YSA9ICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS50YWJzIGFzIENhc2VUYWJbXSlcbiAgICAgICAgICAuZmlsdGVyKCh0YWIpID0+IHRhYi5maWVsZHM/LnNvbWUoXG4gICAgICAgICAgICAvLyBUaGVyZSBjb3VsZCBiZSBtb3JlIHRoYW4gb25lIEZsYWdMYXVuY2hlciBmaWVsZCBpbnN0YW5jZSBzbyBhbiBhZGRpdGlvbmFsIGNoZWNrIG9mIGNhc2VGaWVsZCBJRCBpc1xuICAgICAgICAgICAgLy8gcmVxdWlyZWQgdG8gZW5zdXJlIHRoZSBjb3JyZWN0IGluc3RhbmNlIGlzIG9idGFpbmVkXG4gICAgICAgICAgICAoY2FzZUZpZWxkKSA9PiBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnRmxhZ0xhdW5jaGVyJyAmJiBjYXNlRmllbGQuaWQgPT09IHRoaXMuY2FzZUZpZWxkLmlkKSlcbiAgICAgICAgICBbMF0uZmllbGRzPy5yZWR1Y2UoKGZsYWdzLCBjYXNlRmllbGQpID0+IEZpZWxkc1V0aWxzLmV4dHJhY3RGbGFnc0RhdGFGcm9tQ2FzZUZpZWxkKFxuICAgICAgICAgICAgZmxhZ3MsIGNhc2VGaWVsZCwgY2FzZUZpZWxkLmlkLCBjYXNlRmllbGQpLCBbXSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcGFyYXRlIHRoZSBwYXJ0eS1sZXZlbCBhbmQgY2FzZS1sZXZlbCBmbGFnc1xuICAgICAgdGhpcy5wYXJ0eUxldmVsQ2FzZUZsYWdEYXRhID0gdGhpcy5mbGFnc0RhdGEuZmlsdGVyKFxuICAgICAgICAoaW5zdGFuY2UpID0+IGluc3RhbmNlLnBhdGhUb0ZsYWdzRm9ybUdyb3VwICE9PSB0aGlzLmNhc2VMZXZlbENhc2VGbGFnc0ZpZWxkSWQpO1xuICAgICAgLy8gSWYgdGhlIHVzZXIgaXMgaW50ZXJuYWwsIGdyb3VwIGFsbCBmbGFncyBkYXRhIGJ5IGdyb3VwSWQgd2hlcmUgcHJlc2VudCBzbyB0aGV5IHNlZSBhIGNvbWJpbmVkIGNvbGxlY3Rpb24gb2ZcbiAgICAgIC8vIGludGVybmFsIGFuZCBleHRlcm5hbCBmbGFncyBkYXRhIGZvciBlYWNoIHBhcnR5XG4gICAgICBpZiAoIXRoaXMuY2FzZUZsYWdzRXh0ZXJuYWxVc2VyKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwZWRGbGFnc0RhdGEgPSB0aGlzLnBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGFcbiAgICAgICAgLmZpbHRlcigoZikgPT4gZi5mbGFncy5ncm91cElkKVxuICAgICAgICAucmVkdWNlKChtZXJnZWRGbGFnRGV0YWlscywgZikgPT4ge1xuICAgICAgICAgIG1lcmdlZEZsYWdEZXRhaWxzW2YuZmxhZ3MuZ3JvdXBJZF0gPSBtZXJnZWRGbGFnRGV0YWlsc1tmLmZsYWdzLmdyb3VwSWRdIHx8IFtdO1xuICAgICAgICAgIC8vIFRoZSBmbGFncy5kZXRhaWxzIHByb3BlcnR5ICh3aGljaCBzaG91bGQgYmUgYW4gYXJyYXkpIGNvdWxkIGJlIGZhbHN5OyBzcHJlYWQgYW4gZW1wdHkgYXJyYXkgaWYgc29cbiAgICAgICAgICBtZXJnZWRGbGFnRGV0YWlsc1tmLmZsYWdzLmdyb3VwSWRdLnB1c2goLi4uKGYuZmxhZ3MuZGV0YWlscyB8fCBbXSkpO1xuICAgICAgICAgIHJldHVybiBtZXJnZWRGbGFnRGV0YWlscztcbiAgICAgICAgfSwgT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gICAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGUgZmxhZ3Mgb2JqZWN0cyB3aXRoIHRoZSBzYW1lIGdyb3VwSWQgKHdoaWNoIGFyZSBnb2luZyB0byBiZSB0cmVhdGVkIGFzIG9uZSBmb3IgZGlzcGxheVxuICAgICAgICAvLyBwdXJwb3NlcylcbiAgICAgICAgY29uc3QgdW5pcXVlUGFydHlEYXRhID0gdGhpcy5wYXJ0eUxldmVsQ2FzZUZsYWdEYXRhXG4gICAgICAgIC5maWx0ZXIoKGYpID0+IGYuZmxhZ3MuZ3JvdXBJZClcbiAgICAgICAgLnJlZHVjZSgoZmxhZ3NVbmlxdWVCeUdyb3VwSWQsIGYpID0+IHtcbiAgICAgICAgICBpZiAoZmxhZ3NVbmlxdWVCeUdyb3VwSWQuZmluZEluZGV4KGZsYWcgPT4gZmxhZy5mbGFncy5ncm91cElkID09PSBmLmZsYWdzLmdyb3VwSWQpID09PSAtMSkge1xuICAgICAgICAgICAgLy8gU2V0IHRoZSBjb3JyZXNwb25kaW5nIGdyb3VwZWQgZmxhZ3MgZGF0YVxuICAgICAgICAgICAgZi5mbGFncy5kZXRhaWxzID0gZ3JvdXBlZEZsYWdzRGF0YVtmLmZsYWdzLmdyb3VwSWRdO1xuICAgICAgICAgICAgZmxhZ3NVbmlxdWVCeUdyb3VwSWQucHVzaChmKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZsYWdzVW5pcXVlQnlHcm91cElkO1xuICAgICAgICB9LCBbXSk7XG4gICAgICAgIC8vIEFwcGVuZCBmbGFncyBvYmplY3RzIHdpdGggbm8gZ3JvdXBJZFxuICAgICAgICB0aGlzLnBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGEuZmlsdGVyKChmKSA9PiAhZi5mbGFncy5ncm91cElkKS5mb3JFYWNoKChmKSA9PiB1bmlxdWVQYXJ0eURhdGEucHVzaChmKSk7XG4gICAgICAgIHRoaXMucGFydHlMZXZlbENhc2VGbGFnRGF0YSA9IHVuaXF1ZVBhcnR5RGF0YTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBjYXNlLWxldmVsIGZsYWdzIGluc3RhbmNlIGNvbnRhaW5pbmcgYWxsIGNhc2UtbGV2ZWwgZmxhZyBkZXRhaWxzXG4gICAgICB0aGlzLmNhc2VMZXZlbENhc2VGbGFnRGF0YSA9IHRoaXMuZmxhZ3NEYXRhLmZpbmQoXG4gICAgICAgIChpbnN0YW5jZSkgPT4gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSKSB7XG4gICAgICAvLyBJZiB0aGUgY29udGV4dCBpcyBQYWxldHRlQ29udGV4dC5DSEVDS19ZT1VSX0FOU1dFUiwgdGhlIEZsYWdzIGRhdGEgaXMgYWxyZWFkeSBwcmVzZW50IHdpdGhpbiB0aGUgRm9ybUdyb3VwLlxuICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQsIFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudCwgaG9sZHMgYSByZWZlcmVuY2UgdG86XG4gICAgICAvLyBpKSB0aGUgcGFyZW50IEZvcm1Hcm91cCBmb3IgdGhlIEZsYWdzIGluc3RhbmNlIHdoZXJlIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGU7XG4gICAgICAvLyBpaSkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmbGFnIChzZWxlY3RlZEZsYWcpIGlmIG9uZSBleGlzdHNcbiAgICAgIGlmIChmbGFnTGF1bmNoZXJDb21wb25lbnQpIHtcbiAgICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQgaG9sZHMgYSByZWZlcmVuY2UgKHNlbGVjdGVkRmxhZ3NMb2NhdGlvbikgY29udGFpbmluZyB0aGUgQ2FzZUZpZWxkIGluc3RhbmNlIHRvXG4gICAgICAgIC8vIHdoaWNoIHRoZSBuZXcgZmxhZyBoYXMgYmVlbiBhZGRlZFxuICAgICAgICBpZiAoKGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEUgfHxcbiAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFXzJfUE9JTlRfMSB8fFxuICAgICAgICAgIGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfRVhURVJOQUwpICYmXG4gICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LnNlbGVjdGVkRmxhZ3NMb2NhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wYXRoVG9GbGFnc0Zvcm1Hcm91cCA9IGZsYWdMYXVuY2hlckNvbXBvbmVudC5zZWxlY3RlZEZsYWdzTG9jYXRpb24ucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgICAgICAgICB0aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheSA9IHRoaXMuZXh0cmFjdE5ld0ZsYWdUb0ZsYWdEZXRhaWxEaXNwbGF5T2JqZWN0KFxuICAgICAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uKTtcbiAgICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQgaG9sZHMgYSByZWZlcmVuY2UgKHNlbGVjdGVkRmxhZyksIHdoaWNoIGdldHMgc2V0IGFmdGVyIHRoZSBzZWxlY3Rpb24gc3RlcCBvZiB0aGVcbiAgICAgICAgLy8gTWFuYWdlIENhc2UgRmxhZ3Mgam91cm5leVxuICAgICAgICB9IGVsc2UgaWYgKChmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFIHx8XG4gICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV8yX1BPSU5UXzEgfHxcbiAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMKSAmJlxuICAgICAgICAgIGZsYWdMYXVuY2hlckNvbXBvbmVudC5zZWxlY3RlZEZsYWcpIHtcbiAgICAgICAgICAgIHRoaXMuZmxhZ0ZvclN1bW1hcnlEaXNwbGF5ID1cbiAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKVsnY29tcG9uZW50J10uc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5O1xuICAgICAgICAgIC8vIFRPRE86IG5vdCB0aGUgYmVzdCBzb2x1dGlvbiwgdGhlIGNhc2VGbGFnU3RhdGVTZXJ2aWNlIHNob3VsZCBoYXZlIGFsbCB0aGUgZmllbGRzLCB0aGVuIHdlIGNhbiBkZWxldGUgYSBsb3Qgb2YgdGhlIHRyYW5zZm9ybWF0aW9ucyBoZXJlXG4gICAgICAgICAgLy8gaW4gQ3JlYXRlIENhc2UgRmxhZyBpdCBhbHJlYWR5IGhhcyBhbGwgZmllbGRzXG4gICAgICAgICAgY29uc3QgY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZSA9IHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZm9ybUdyb3VwPy52YWx1ZTtcbiAgICAgICAgICBpZiAoY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZSkge1xuICAgICAgICAgICAgY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZS5zdGF0dXMgPSBDYXNlRmxhZ1N0YXR1c1tjYXNlRmxhZ0Zvcm1Hcm91cFZhbHVlLnN0YXR1c107XG4gICAgICAgICAgICB0aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheS5mbGFnRGV0YWlsID0ge1xuICAgICAgICAgICAgICAuLi50aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheS5mbGFnRGV0YWlsLFxuICAgICAgICAgICAgICAuLi5jYXNlRmxhZ0Zvcm1Hcm91cFZhbHVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdE5ld0ZsYWdUb0ZsYWdEZXRhaWxEaXNwbGF5T2JqZWN0KHNlbGVjdGVkRmxhZ3NMb2NhdGlvbjogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCk6IEZsYWdEZXRhaWxEaXNwbGF5IHtcbiAgICAvLyBVc2UgdGhlIHBhdGhUb0ZsYWdzRm9ybUdyb3VwIHByb3BlcnR5IGZyb20gdGhlIHNlbGVjdGVkIGZsYWcgbG9jYXRpb24gdG8gZHJpbGwgZG93biB0byB0aGUgY29ycmVjdCBwYXJ0IG9mIHRoZVxuICAgIC8vIENhc2VGaWVsZCB2YWx1ZSBjb250YWluaW5nIHRoZSBuZXcgZmxhZ1xuICAgIGxldCBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLmNhc2VGaWVsZD8udmFsdWU7XG4gICAgY29uc3QgcGF0aCA9IHNlbGVjdGVkRmxhZ3NMb2NhdGlvbi5wYXRoVG9GbGFnc0Zvcm1Hcm91cDtcbiAgICAvLyBSb290LWxldmVsIEZsYWdzIENhc2VGaWVsZHMgZG9uJ3QgaGF2ZSBhIGRvdC1kZWxpbWl0ZWQgcGF0aCAtIGp1c3QgdGhlIENhc2VGaWVsZCBJRCBpdHNlbGYgLSBzbyBkb24ndCBkcmlsbCBkb3duXG4gICAgaWYgKHBhdGguaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgIHBhdGguc2xpY2UocGF0aC5pbmRleE9mKCcuJykgKyAxKS5zcGxpdCgnLicpLmZvckVhY2gocGFydCA9PiBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gZmxhZ3NDYXNlRmllbGRWYWx1ZVtwYXJ0XSk7XG4gICAgfVxuICAgIGlmIChmbGFnc0Nhc2VGaWVsZFZhbHVlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0eU5hbWU6IGZsYWdzQ2FzZUZpZWxkVmFsdWUucGFydHlOYW1lLFxuICAgICAgICAvLyBMb29rIGluIHRoZSBkZXRhaWxzIGFycmF5IGZvciB0aGUgb2JqZWN0IHRoYXQgZG9lcyAqbm90KiBoYXZlIGFuIGlkIC0gdGhpcyBpbmRpY2F0ZXMgaXQgaXMgdGhlIG5ldyBmbGFnXG4gICAgICAgIGZsYWdEZXRhaWw6IGZsYWdzQ2FzZUZpZWxkVmFsdWUuZGV0YWlscz8uZmluZChlbGVtZW50ID0+ICFlbGVtZW50Lmhhc093blByb3BlcnR5KCdpZCcpKT8udmFsdWVcbiAgICAgIH0gYXMgRmxhZ0RldGFpbERpc3BsYXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVCYWNrVG9Gb3JtKGZpZWxkU3RhdGU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZmllbGRTdGF0ZVRvTmF2aWdhdGUgPSBmaWVsZFN0YXRlO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi4vJHt0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLnBhZ2VMb2NhdGlvbn1gXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dCA9PT0gcGFsZXR0ZUNvbnRleHQuQ0hFQ0tfWU9VUl9BTlNXRVJcIj5cbiAgPGNjZC1jYXNlLWZsYWctc3VtbWFyeS1saXN0XG4gICAgW2ZsYWdGb3JTdW1tYXJ5RGlzcGxheV09XCJmbGFnRm9yU3VtbWFyeURpc3BsYXlcIlxuICAgIFtkaXNwbGF5Q29udGV4dFBhcmFtZXRlcl09XCJkaXNwbGF5Q29udGV4dFBhcmFtZXRlclwiXG4gICAgKGNoYW5nZUJ1dHRvbkVtaXR0ZXIpPVwibmF2aWdhdGVCYWNrVG9Gb3JtKCRldmVudClcIj5cbiAgPC9jY2QtY2FzZS1mbGFnLXN1bW1hcnktbGlzdD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dCAhPT0gcGFsZXR0ZUNvbnRleHQuQ0hFQ0tfWU9VUl9BTlNXRVJcIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlJFQURfRVhURVJOQUxcIj5cbiAgICAgIDxoMiBpZD1cInJlYWQtY2FzZS1mbGFnLXRpdGxlXCIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj5cbiAgICAgICAge3sgJ1N1cHBvcnQgcmVxdWVzdGVkJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9oMj5cblxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmxhZ0RhdGEgb2YgcGFydHlMZXZlbENhc2VGbGFnRGF0YVwiPlxuICAgICAgICA8Y2NkLWNhc2UtZmxhZy10YWJsZSAqbmdJZj1cImZsYWdEYXRhLmZsYWdzLnBhcnR5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFibGVDYXB0aW9uXT1cIicnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmbGFnRGF0YV09XCJmbGFnRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlyc3RDb2x1bW5IZWFkZXJdPVwiZmxhZ0RhdGEuZmxhZ3MucGFydHlOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNlRmxhZ3NFeHRlcm5hbFVzZXJdPVwiY2FzZUZsYWdzRXh0ZXJuYWxVc2VyXCJcbiAgICAgICAgPjwvY2NkLWNhc2UtZmxhZy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgPGgyIGlkPVwicmVhZC1jYXNlLWZsYWctdGl0bGVcIiBjbGFzcz1cImdvdnVrLWhlYWRpbmctbFwiPlxuICAgICAgICB7eyAnQ2FzZSBmbGFncycgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvaDI+XG5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZsYWdEYXRhIG9mIHBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGFcIj5cbiAgICAgICAgPGNjZC1jYXNlLWZsYWctdGFibGUgKm5nSWY9XCJmbGFnRGF0YS5mbGFncy5wYXJ0eU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmxlQ2FwdGlvbl09XCJmbGFnRGF0YS5mbGFncy5wYXJ0eU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZsYWdEYXRhXT1cImZsYWdEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaXJzdENvbHVtbkhlYWRlcl09XCInUGFydHkgbGV2ZWwgZmxhZ3MnIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgPjwvY2NkLWNhc2UtZmxhZy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNhc2VMZXZlbENhc2VGbGFnRGF0YVwiPlxuICAgICAgICA8Y2NkLWNhc2UtZmxhZy10YWJsZVxuICAgICAgICAgIFt0YWJsZUNhcHRpb25dPVwiJ0Nhc2UgbGV2ZWwgZmxhZ3MnIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgICBbZmxhZ0RhdGFdPVwiY2FzZUxldmVsQ2FzZUZsYWdEYXRhXCJcbiAgICAgICAgICBbZmlyc3RDb2x1bW5IZWFkZXJdPVwiJ0Nhc2UgZmxhZ3MnIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgPjwvY2NkLWNhc2UtZmxhZy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19