@hmcts/ccd-case-ui-toolkit 6.19.13-restricted-case-access → 6.19.13-welsh-translation-FirstErrorPipe-fix

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