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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. package/esm2020/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +3 -3
  2. package/esm2020/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +2 -2
  3. package/esm2020/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +2 -2
  4. package/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +2 -11
  5. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.mjs +7 -0
  6. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +165 -124
  7. package/esm2020/lib/shared/components/case-editor/case-editor.module.mjs +17 -22
  8. package/esm2020/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +2 -3
  9. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +2 -2
  10. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +2 -2
  11. package/esm2020/lib/shared/components/case-editor/services/case-flag-state.service.mjs +19 -0
  12. package/esm2020/lib/shared/components/case-editor/services/cases.service.mjs +6 -1
  13. package/esm2020/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +4 -17
  14. package/esm2020/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +40 -15
  15. package/esm2020/lib/shared/components/case-viewer/case-viewer.module.mjs +8 -5
  16. package/esm2020/lib/shared/components/palette/address/write-address-field.component.mjs +19 -20
  17. package/esm2020/lib/shared/components/palette/base-field/field-read.component.mjs +1 -1
  18. package/esm2020/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +70 -31
  19. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +249 -46
  20. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +140 -71
  21. package/esm2020/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +165 -0
  22. package/esm2020/lib/shared/components/palette/case-flag/components/index.mjs +4 -1
  23. package/esm2020/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +73 -78
  24. package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.mjs +6 -0
  25. package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +133 -99
  26. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +22 -9
  27. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +213 -112
  28. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +267 -0
  29. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +439 -104
  30. package/esm2020/lib/shared/components/palette/case-flag/domain/case-flag-state.model.mjs +1 -1
  31. package/esm2020/lib/shared/components/palette/case-flag/domain/case-flag.model.mjs +1 -1
  32. package/esm2020/lib/shared/components/palette/case-flag/domain/language.model.mjs +1 -1
  33. package/esm2020/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.mjs +2 -1
  34. package/esm2020/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.mjs +3 -1
  35. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.mjs +12 -0
  36. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.mjs +15 -0
  37. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.mjs +13 -0
  38. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.mjs +3 -2
  39. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.mjs +11 -3
  40. package/esm2020/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.mjs +6 -0
  41. package/esm2020/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.mjs +6 -0
  42. package/esm2020/lib/shared/components/palette/case-flag/enums/index.mjs +9 -2
  43. package/esm2020/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.mjs +3 -2
  44. package/esm2020/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.mjs +4 -1
  45. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.mjs +6 -0
  46. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.mjs +6 -0
  47. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.mjs +5 -1
  48. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.mjs +7 -2
  49. package/esm2020/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.mjs +10 -7
  50. package/esm2020/lib/shared/components/palette/case-flag/index.mjs +2 -1
  51. package/esm2020/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +41 -0
  52. package/esm2020/lib/shared/components/palette/case-flag/pipes/index.mjs +5 -0
  53. package/esm2020/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +41 -0
  54. package/esm2020/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +109 -0
  55. package/esm2020/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +77 -0
  56. package/esm2020/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +156 -57
  57. package/esm2020/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +385 -172
  58. package/esm2020/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +8 -10
  59. package/esm2020/lib/shared/components/palette/collection/write-collection-field.component.mjs +49 -54
  60. package/esm2020/lib/shared/components/palette/complex/read-complex-field.component.mjs +12 -14
  61. package/esm2020/lib/shared/components/palette/complex/sort-order.mjs +7 -0
  62. package/esm2020/lib/shared/components/palette/complex/write-complex-field.component.mjs +5 -6
  63. package/esm2020/lib/shared/components/palette/date/write-date-field.component.mjs +8 -10
  64. package/esm2020/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +8 -10
  65. package/esm2020/lib/shared/components/palette/document/write-document-field.component.mjs +23 -24
  66. package/esm2020/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +8 -10
  67. package/esm2020/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +8 -10
  68. package/esm2020/lib/shared/components/palette/email/write-email-field.component.mjs +8 -10
  69. package/esm2020/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +8 -10
  70. package/esm2020/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +8 -10
  71. package/esm2020/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +9 -7
  72. package/esm2020/lib/shared/components/palette/index.mjs +3 -1
  73. package/esm2020/lib/shared/components/palette/markdown/index.mjs +2 -1
  74. package/esm2020/lib/shared/components/palette/markdown/markdown-component.module.mjs +40 -0
  75. package/esm2020/lib/shared/components/palette/markdown/markdown.component.mjs +9 -7
  76. package/esm2020/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +8 -10
  77. package/esm2020/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +8 -10
  78. package/esm2020/lib/shared/components/palette/number/write-number-field.component.mjs +8 -10
  79. package/esm2020/lib/shared/components/palette/palette.module.mjs +148 -49
  80. package/esm2020/lib/shared/components/palette/palette.service.mjs +4 -2
  81. package/esm2020/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +8 -10
  82. package/esm2020/lib/shared/components/palette/query-management/__mocks__/index.mjs +210 -0
  83. package/esm2020/lib/shared/components/palette/query-management/components/index.mjs +13 -0
  84. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +42 -0
  85. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +144 -0
  86. package/esm2020/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +64 -0
  87. package/esm2020/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +60 -0
  88. package/esm2020/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +281 -0
  89. package/esm2020/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +327 -0
  90. package/esm2020/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +22 -0
  91. package/esm2020/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +164 -0
  92. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +74 -0
  93. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +107 -0
  94. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +201 -0
  95. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +101 -0
  96. package/esm2020/lib/shared/components/palette/query-management/enums/index.mjs +6 -0
  97. package/esm2020/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.mjs +5 -0
  98. package/esm2020/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.mjs +6 -0
  99. package/esm2020/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.mjs +10 -0
  100. package/esm2020/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.mjs +6 -0
  101. package/esm2020/lib/shared/components/palette/query-management/index.mjs +7 -0
  102. package/esm2020/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +2 -0
  103. package/esm2020/lib/shared/components/palette/query-management/models/index.mjs +8 -0
  104. package/esm2020/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.mjs +2 -0
  105. package/esm2020/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.mjs +2 -0
  106. package/esm2020/lib/shared/components/palette/query-management/models/query-create-context.enum.mjs +9 -0
  107. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.mjs +2 -0
  108. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +21 -0
  109. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +38 -0
  110. package/esm2020/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +121 -0
  111. package/esm2020/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +22 -0
  112. package/esm2020/lib/shared/components/palette/text/write-text-field.component.mjs +8 -10
  113. package/esm2020/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +8 -10
  114. package/esm2020/lib/shared/components/palette/utils/field-label.pipe.mjs +14 -7
  115. package/esm2020/lib/shared/components/palette/utils/first-error.pipe.mjs +16 -9
  116. package/esm2020/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +10 -5
  117. package/esm2020/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +12 -13
  118. package/esm2020/lib/shared/domain/case-flag/flag-type.model.mjs +16 -2
  119. package/esm2020/lib/shared/domain/case-view/case-view-event-ids.enum.mjs +6 -0
  120. package/esm2020/lib/shared/domain/case-view/case-view-trigger.model.mjs +1 -2
  121. package/esm2020/lib/shared/domain/definition/display-context-enum.model.mjs +3 -1
  122. package/esm2020/lib/shared/fixture/shared.test.fixture.mjs +2 -1
  123. package/esm2020/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +16 -0
  124. package/esm2020/lib/shared/pipes/generic/index.mjs +2 -0
  125. package/esm2020/lib/shared/pipes/index.mjs +3 -2
  126. package/esm2020/lib/shared/pipes/pipes.module.mjs +9 -5
  127. package/esm2020/lib/shared/services/case-flag/case-flag-refdata.service.mjs +9 -3
  128. package/esm2020/lib/shared/services/fields/fields.utils.mjs +22 -4
  129. package/esm2020/lib/shared/services/form/form-value.service.mjs +14 -11
  130. package/esm2020/lib/shared/services/jurisdiction/jurisdiction.service.mjs +2 -1
  131. package/esm2020/lib/shared/services/request/request.options.builder.mjs +7 -1
  132. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +8708 -4212
  133. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  134. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +15202 -11124
  135. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  136. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  137. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  138. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts +6 -0
  139. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts.map +1 -0
  140. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +1 -1
  141. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  142. package/lib/shared/components/case-editor/case-editor.module.d.ts +17 -20
  143. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  144. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  145. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  146. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +11 -0
  147. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -0
  148. package/lib/shared/components/case-editor/services/cases.service.d.ts +1 -0
  149. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  150. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  151. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +6 -2
  152. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  153. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +4 -4
  154. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  155. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  156. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +6 -2
  157. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  158. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +25 -8
  159. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  160. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +2 -1
  161. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  162. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +28 -0
  163. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -0
  164. package/lib/shared/components/palette/case-flag/components/index.d.ts +3 -0
  165. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  166. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +4 -8
  167. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  168. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +5 -0
  169. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +1 -0
  170. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +10 -8
  171. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  172. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +2 -1
  173. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  174. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +16 -9
  175. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  176. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +27 -0
  177. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -0
  178. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +26 -11
  179. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  180. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +1 -10
  181. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  182. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +12 -1
  183. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  184. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +1 -0
  185. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  186. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts +1 -0
  187. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts.map +1 -1
  188. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts +3 -1
  189. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts.map +1 -1
  190. package/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.d.ts +11 -0
  191. package/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.d.ts.map +1 -0
  192. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +14 -0
  193. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +1 -0
  194. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +12 -0
  195. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +1 -0
  196. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +2 -1
  197. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  198. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +11 -3
  199. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  200. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +5 -0
  201. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +1 -0
  202. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +5 -0
  203. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +1 -0
  204. package/lib/shared/components/palette/case-flag/enums/index.d.ts +8 -1
  205. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  206. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +2 -1
  207. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  208. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +3 -0
  209. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  210. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +5 -0
  211. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +1 -0
  212. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +5 -0
  213. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +1 -0
  214. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +5 -1
  215. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  216. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +7 -2
  217. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  218. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +7 -4
  219. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  220. package/lib/shared/components/palette/case-flag/index.d.ts +1 -0
  221. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  222. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +19 -0
  223. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +1 -0
  224. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +5 -0
  225. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +1 -0
  226. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +18 -0
  227. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +1 -0
  228. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +25 -0
  229. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +1 -0
  230. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +21 -0
  231. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +1 -0
  232. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +12 -8
  233. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  234. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +52 -27
  235. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  236. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +3 -2
  237. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  238. package/lib/shared/components/palette/complex/read-complex-field.component.d.ts.map +1 -1
  239. package/lib/shared/components/palette/complex/sort-order.d.ts +6 -0
  240. package/lib/shared/components/palette/complex/sort-order.d.ts.map +1 -0
  241. package/lib/shared/components/palette/index.d.ts +2 -0
  242. package/lib/shared/components/palette/index.d.ts.map +1 -1
  243. package/lib/shared/components/palette/markdown/index.d.ts +1 -0
  244. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  245. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +13 -0
  246. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +1 -0
  247. package/lib/shared/components/palette/palette.module.d.ts +140 -118
  248. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  249. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  250. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +11 -0
  251. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +1 -0
  252. package/lib/shared/components/palette/query-management/components/index.d.ts +13 -0
  253. package/lib/shared/components/palette/query-management/components/index.d.ts.map +1 -0
  254. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts +8 -0
  255. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts.map +1 -0
  256. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +22 -0
  257. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -0
  258. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts +11 -0
  259. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts.map +1 -0
  260. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +10 -0
  261. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +1 -0
  262. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +30 -0
  263. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -0
  264. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +16 -0
  265. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -0
  266. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts +9 -0
  267. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts.map +1 -0
  268. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +18 -0
  269. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +1 -0
  270. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +20 -0
  271. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +1 -0
  272. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts +20 -0
  273. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts.map +1 -0
  274. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +11 -0
  275. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -0
  276. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +21 -0
  277. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -0
  278. package/lib/shared/components/palette/query-management/enums/index.d.ts +6 -0
  279. package/lib/shared/components/palette/query-management/enums/index.d.ts.map +1 -0
  280. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts +4 -0
  281. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts.map +1 -0
  282. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts +5 -0
  283. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts.map +1 -0
  284. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts +9 -0
  285. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts.map +1 -0
  286. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts +5 -0
  287. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts.map +1 -0
  288. package/lib/shared/components/palette/query-management/index.d.ts +7 -0
  289. package/lib/shared/components/palette/query-management/index.d.ts.map +1 -0
  290. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts +27 -0
  291. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts.map +1 -0
  292. package/lib/shared/components/palette/query-management/models/index.d.ts +8 -0
  293. package/lib/shared/components/palette/query-management/models/index.d.ts.map +1 -0
  294. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts +5 -0
  295. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts.map +1 -0
  296. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts +6 -0
  297. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts.map +1 -0
  298. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts +8 -0
  299. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts.map +1 -0
  300. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +7 -0
  301. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +1 -0
  302. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +10 -0
  303. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -0
  304. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +22 -0
  305. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -0
  306. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +18 -0
  307. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -0
  308. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +12 -0
  309. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -0
  310. package/lib/shared/components/palette/utils/field-label.pipe.d.ts +3 -0
  311. package/lib/shared/components/palette/utils/field-label.pipe.d.ts.map +1 -1
  312. package/lib/shared/components/palette/utils/first-error.pipe.d.ts +8 -5
  313. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  314. package/lib/shared/components/palette/yes-no/read-yes-no-field.component.d.ts.map +1 -1
  315. package/lib/shared/domain/case-flag/flag-type.model.d.ts +6 -1
  316. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  317. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +5 -0
  318. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +1 -0
  319. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +0 -1
  320. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  321. package/lib/shared/domain/definition/display-context-enum.model.d.ts +3 -1
  322. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  323. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  324. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +8 -0
  325. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +1 -0
  326. package/lib/shared/pipes/generic/index.d.ts +2 -0
  327. package/lib/shared/pipes/generic/index.d.ts.map +1 -0
  328. package/lib/shared/pipes/index.d.ts +2 -1
  329. package/lib/shared/pipes/index.d.ts.map +1 -1
  330. package/lib/shared/pipes/pipes.module.d.ts +3 -2
  331. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  332. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +3 -2
  333. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  334. package/lib/shared/services/fields/fields.utils.d.ts +1 -0
  335. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  336. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  337. package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts.map +1 -1
  338. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  339. package/package.json +1 -1
@@ -1,100 +1,121 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { FormControl, FormGroup } from '@angular/forms';
3
+ import { RpxTranslationService } from 'rpx-xui-translation';
3
4
  import { map, tap } from 'rxjs/operators';
4
- import { CaseFlagFieldState, CaseFlagWizardStepTitle, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep } from '../../enums';
5
+ import { FlagType } from '../../../../../domain/case-flag';
6
+ import { CaseFlagFieldState, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep } from '../../enums';
7
+ import { SearchLanguageInterpreterControlNames } from './search-language-interpreter-control-names.enum';
5
8
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "@angular/material/legacy-input";
9
- import * as i4 from "@angular/material/legacy-autocomplete";
10
- import * as i5 from "@angular/material/legacy-core";
11
- function SearchLanguageInterpreterComponent_div_8_Template(rf, ctx) { if (rf & 1) {
9
+ import * as i1 from "rpx-xui-translation";
10
+ function SearchLanguageInterpreterComponent_div_10_Template(rf, ctx) { if (rf & 1) {
12
11
  i0.ɵɵelementStart(0, "div", 20)(1, "span", 21);
13
- i0.ɵɵtext(2, "Error:");
12
+ i0.ɵɵtext(2);
13
+ i0.ɵɵpipe(3, "rpxTranslate");
14
14
  i0.ɵɵelementEnd();
15
- i0.ɵɵtext(3);
15
+ i0.ɵɵtext(4);
16
+ i0.ɵɵpipe(5, "rpxTranslate");
16
17
  i0.ɵɵelementEnd();
17
18
  } if (rf & 2) {
18
19
  const ctx_r0 = i0.ɵɵnextContext();
19
- i0.ɵɵadvance(3);
20
- i0.ɵɵtextInterpolate1(" ", ctx_r0.languageNotSelectedErrorMessage, " ");
20
+ i0.ɵɵadvance(2);
21
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Error:"));
22
+ i0.ɵɵadvance(2);
23
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r0.languageNotSelectedErrorMessage), " ");
21
24
  } }
22
- function SearchLanguageInterpreterComponent_div_9_Template(rf, ctx) { if (rf & 1) {
25
+ function SearchLanguageInterpreterComponent_div_11_Template(rf, ctx) { if (rf & 1) {
23
26
  i0.ɵɵelementStart(0, "div", 22)(1, "span", 21);
24
- i0.ɵɵtext(2, "Error:");
27
+ i0.ɵɵtext(2);
28
+ i0.ɵɵpipe(3, "rpxTranslate");
25
29
  i0.ɵɵelementEnd();
26
- i0.ɵɵtext(3);
30
+ i0.ɵɵtext(4);
31
+ i0.ɵɵpipe(5, "rpxTranslate");
27
32
  i0.ɵɵelementEnd();
28
33
  } if (rf & 2) {
29
34
  const ctx_r1 = i0.ɵɵnextContext();
30
- i0.ɵɵadvance(3);
31
- i0.ɵɵtextInterpolate1(" ", ctx_r1.languageEnteredInBothFieldsErrorMessage, " ");
35
+ i0.ɵɵadvance(2);
36
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Error:"));
37
+ i0.ɵɵadvance(2);
38
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r1.languageEnteredInBothFieldsErrorMessage), " ");
32
39
  } }
33
- function SearchLanguageInterpreterComponent_mat_option_13_Template(rf, ctx) { if (rf & 1) {
40
+ function SearchLanguageInterpreterComponent_mat_option_15_Template(rf, ctx) { if (rf & 1) {
34
41
  i0.ɵɵelementStart(0, "mat-option", 23);
35
42
  i0.ɵɵtext(1);
43
+ i0.ɵɵpipe(2, "languageInterpreterDisplay");
36
44
  i0.ɵɵelementEnd();
37
45
  } if (rf & 2) {
38
46
  const language_r6 = ctx.$implicit;
39
47
  i0.ɵɵproperty("value", language_r6);
40
48
  i0.ɵɵadvance(1);
41
- i0.ɵɵtextInterpolate1(" ", language_r6.value, " ");
49
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, language_r6), " ");
42
50
  } }
43
- function SearchLanguageInterpreterComponent_mat_option_15_Template(rf, ctx) { if (rf & 1) {
51
+ function SearchLanguageInterpreterComponent_mat_option_17_Template(rf, ctx) { if (rf & 1) {
44
52
  i0.ɵɵelementStart(0, "mat-option", 24);
45
- i0.ɵɵtext(1, "No results found");
53
+ i0.ɵɵtext(1);
54
+ i0.ɵɵpipe(2, "rpxTranslate");
46
55
  i0.ɵɵelementEnd();
56
+ } if (rf & 2) {
57
+ i0.ɵɵadvance(1);
58
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "No results found"));
47
59
  } }
48
- function SearchLanguageInterpreterComponent_div_21_div_4_Template(rf, ctx) { if (rf & 1) {
60
+ function SearchLanguageInterpreterComponent_div_24_div_5_Template(rf, ctx) { if (rf & 1) {
49
61
  i0.ɵɵelementStart(0, "div", 30)(1, "span", 21);
50
- i0.ɵɵtext(2, "Error:");
62
+ i0.ɵɵtext(2);
63
+ i0.ɵɵpipe(3, "rpxTranslate");
51
64
  i0.ɵɵelementEnd();
52
- i0.ɵɵtext(3);
65
+ i0.ɵɵtext(4);
66
+ i0.ɵɵpipe(5, "rpxTranslate");
53
67
  i0.ɵɵelementEnd();
54
68
  } if (rf & 2) {
55
69
  const ctx_r7 = i0.ɵɵnextContext(2);
56
- i0.ɵɵadvance(3);
57
- i0.ɵɵtextInterpolate1(" ", ctx_r7.languageNotEnteredErrorMessage, " ");
70
+ i0.ɵɵadvance(2);
71
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Error:"));
72
+ i0.ɵɵadvance(2);
73
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r7.languageNotEnteredErrorMessage), " ");
58
74
  } }
59
- function SearchLanguageInterpreterComponent_div_21_div_5_Template(rf, ctx) { if (rf & 1) {
75
+ function SearchLanguageInterpreterComponent_div_24_div_6_Template(rf, ctx) { if (rf & 1) {
60
76
  i0.ɵɵelementStart(0, "div", 31)(1, "span", 21);
61
- i0.ɵɵtext(2, "Error:");
77
+ i0.ɵɵtext(2);
78
+ i0.ɵɵpipe(3, "rpxTranslate");
62
79
  i0.ɵɵelementEnd();
63
- i0.ɵɵtext(3);
80
+ i0.ɵɵtext(4);
81
+ i0.ɵɵpipe(5, "rpxTranslate");
64
82
  i0.ɵɵelementEnd();
65
83
  } if (rf & 2) {
66
84
  const ctx_r8 = i0.ɵɵnextContext(2);
67
- i0.ɵɵadvance(3);
68
- i0.ɵɵtextInterpolate1(" ", ctx_r8.languageCharLimitErrorMessage, " ");
85
+ i0.ɵɵadvance(2);
86
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "Error:"));
87
+ i0.ɵɵadvance(2);
88
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 4, ctx_r8.languageCharLimitErrorMessage), " ");
69
89
  } }
70
90
  const _c0 = function (a0) { return { "form-group-error": a0 }; };
71
- function SearchLanguageInterpreterComponent_div_21_Template(rf, ctx) { if (rf & 1) {
91
+ function SearchLanguageInterpreterComponent_div_24_Template(rf, ctx) { if (rf & 1) {
72
92
  i0.ɵɵelementStart(0, "div", 25)(1, "div", 1)(2, "label", 26);
73
93
  i0.ɵɵtext(3);
94
+ i0.ɵɵpipe(4, "rpxTranslate");
74
95
  i0.ɵɵelementEnd();
75
- i0.ɵɵtemplate(4, SearchLanguageInterpreterComponent_div_21_div_4_Template, 4, 1, "div", 27);
76
- i0.ɵɵtemplate(5, SearchLanguageInterpreterComponent_div_21_div_5_Template, 4, 1, "div", 28);
77
- i0.ɵɵelement(6, "input", 29);
96
+ i0.ɵɵtemplate(5, SearchLanguageInterpreterComponent_div_24_div_5_Template, 6, 6, "div", 27);
97
+ i0.ɵɵtemplate(6, SearchLanguageInterpreterComponent_div_24_div_6_Template, 6, 6, "div", 28);
98
+ i0.ɵɵelement(7, "input", 29);
78
99
  i0.ɵɵelementEnd()();
79
100
  } if (rf & 2) {
80
101
  const ctx_r5 = i0.ɵɵnextContext();
81
102
  i0.ɵɵadvance(1);
82
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0, ctx_r5.languageNotEnteredErrorMessage || ctx_r5.languageCharLimitErrorMessage));
103
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0, ctx_r5.languageNotEnteredErrorMessage || ctx_r5.languageCharLimitErrorMessage));
104
+ i0.ɵɵadvance(2);
105
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 6, ctx_r5.searchLanguageInterpreterStep.INPUT_LABEL));
83
106
  i0.ɵɵadvance(2);
84
- i0.ɵɵtextInterpolate(ctx_r5.searchLanguageInterpreterStep.INPUT_LABEL);
85
- i0.ɵɵadvance(1);
86
107
  i0.ɵɵproperty("ngIf", ctx_r5.languageNotEnteredErrorMessage);
87
108
  i0.ɵɵadvance(1);
88
109
  i0.ɵɵproperty("ngIf", ctx_r5.languageCharLimitErrorMessage);
89
110
  i0.ɵɵadvance(1);
90
- i0.ɵɵproperty("name", ctx_r5.manualLanguageEntryControlName)("formControlName", ctx_r5.manualLanguageEntryControlName);
111
+ i0.ɵɵproperty("name", ctx_r5.SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY)("formControlName", ctx_r5.SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY);
91
112
  } }
92
113
  export class SearchLanguageInterpreterComponent {
93
- constructor() {
114
+ constructor(rpxTranslationService) {
115
+ this.rpxTranslationService = rpxTranslationService;
116
+ this.SearchLanguageInterpreterControlNames = SearchLanguageInterpreterControlNames;
94
117
  this.caseFlagStateEmitter = new EventEmitter();
95
118
  this.minSearchCharacters = 3;
96
- this.languageSearchTermControlName = 'languageSearchTerm';
97
- this.manualLanguageEntryControlName = 'manualLanguageEntry';
98
119
  this.searchTerm = '';
99
120
  this.isCheckboxEnabled = false;
100
121
  this.errorMessages = [];
@@ -110,15 +131,12 @@ export class SearchLanguageInterpreterComponent {
110
131
  return SearchLanguageInterpreterStep;
111
132
  }
112
133
  ngOnInit() {
113
- this.searchLanguageInterpreterTitle = this.flagCode === this.signLanguageFlagCode
114
- ? CaseFlagWizardStepTitle.SEARCH_SIGN_LANGUAGE_INTERPRETER
115
- : CaseFlagWizardStepTitle.SEARCH_LANGUAGE_INTERPRETER;
116
- this.searchLanguageInterpreterHint = this.flagCode === this.signLanguageFlagCode
134
+ this.searchLanguageInterpreterHint = this.flagType.flagCode === this.signLanguageFlagCode
117
135
  ? SearchLanguageInterpreterStep.SIGN_HINT_TEXT
118
136
  : SearchLanguageInterpreterStep.HINT_TEXT;
119
- this.formGroup.addControl(this.languageSearchTermControlName, new FormControl());
120
- this.formGroup.addControl(this.manualLanguageEntryControlName, new FormControl());
121
- this.filteredLanguages$ = this.formGroup.get(this.languageSearchTermControlName).valueChanges.pipe(
137
+ this.formGroup.addControl(SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM, new FormControl());
138
+ this.formGroup.addControl(SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY, new FormControl());
139
+ this.filteredLanguages$ = this.formGroup.get(SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM).valueChanges.pipe(
122
140
  // Need to check type of input because it changes to object (i.e. Language) when a value is selected from the
123
141
  // autocomplete panel, instead of string when a value is being typed in
124
142
  map(input => typeof input === 'string' ? input : input.value), map(searchTerm => {
@@ -141,7 +159,7 @@ export class SearchLanguageInterpreterComponent {
141
159
  // If the checkbox is disabled, i.e. unchecked, then clear the manual language entry FormControl of any value to
142
160
  // prevent it being retained even when the field itself is hidden
143
161
  if (!this.isCheckboxEnabled) {
144
- this.formGroup.get(this.manualLanguageEntryControlName).setValue(null);
162
+ this.formGroup.get(SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY).setValue(null);
145
163
  }
146
164
  }
147
165
  displayLanguage(language) {
@@ -154,39 +172,39 @@ export class SearchLanguageInterpreterComponent {
154
172
  this.languageEnteredInBothFieldsErrorMessage = null;
155
173
  this.errorMessages = [];
156
174
  // Checkbox not enabled means the user has opted to search for and select the language
157
- if (!this.isCheckboxEnabled && !this.formGroup.get(this.languageSearchTermControlName).value) {
175
+ if (!this.isCheckboxEnabled && !this.formGroup.get(SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM).value) {
158
176
  this.languageNotSelectedErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED;
159
177
  this.errorMessages.push({
160
178
  title: '',
161
179
  description: SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED,
162
- fieldId: this.languageSearchTermControlName
180
+ fieldId: SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM
163
181
  });
164
182
  }
165
183
  // Checkbox enabled means the user has opted to enter the language manually
166
184
  if (this.isCheckboxEnabled) {
167
- if (!this.formGroup.get(this.manualLanguageEntryControlName).value) {
185
+ if (!this.formGroup.get(SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY).value) {
168
186
  this.languageNotEnteredErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED;
169
187
  this.errorMessages.push({
170
188
  title: '',
171
189
  description: SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED,
172
- fieldId: this.manualLanguageEntryControlName
190
+ fieldId: SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY
173
191
  });
174
192
  }
175
- else if (this.formGroup.get(this.manualLanguageEntryControlName).value.length > this.languageMaxCharLimit) {
193
+ else if (this.formGroup.get(SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY).value.length > this.languageMaxCharLimit) {
176
194
  this.languageCharLimitErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_CHAR_LIMIT_EXCEEDED;
177
195
  this.errorMessages.push({
178
196
  title: '',
179
197
  description: SearchLanguageInterpreterErrorMessage.LANGUAGE_CHAR_LIMIT_EXCEEDED,
180
- fieldId: this.manualLanguageEntryControlName
198
+ fieldId: SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY
181
199
  });
182
200
  }
183
- else if (this.formGroup.get(this.languageSearchTermControlName).value) {
201
+ else if (this.formGroup.get(SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM).value) {
184
202
  // Language entry is permitted in only one field at a time
185
203
  this.languageEnteredInBothFieldsErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_ENTERED_IN_BOTH_FIELDS;
186
204
  this.errorMessages.push({
187
205
  title: '',
188
206
  description: SearchLanguageInterpreterErrorMessage.LANGUAGE_ENTERED_IN_BOTH_FIELDS,
189
- fieldId: this.languageSearchTermControlName
207
+ fieldId: SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM
190
208
  });
191
209
  }
192
210
  }
@@ -195,78 +213,94 @@ export class SearchLanguageInterpreterComponent {
195
213
  if (searchTerm.length < this.minSearchCharacters) {
196
214
  return [];
197
215
  }
198
- return this.languages
199
- ? this.languages.filter(language => language.value.toLowerCase().includes(searchTerm.toLowerCase(), 0))
216
+ return this.flagType.listOfValues
217
+ ? this.flagType.listOfValues.filter(language =>
218
+ // If a language has both English and Welsh values, match only on the value appropriate for the page language,
219
+ // i.e. if RpxTranslationService.language is 'cy' then match on the value_cy property only. This is to prevent
220
+ // cross-matches, where a user enters a search term in English and sees the corresponding Welsh value (because
221
+ // the page language is Welsh) and vice versa
222
+ this.rpxTranslationService.language === 'cy' && language.value && language.value_cy &&
223
+ language.value_cy.toLowerCase().includes(searchTerm.toLowerCase(), 0) ||
224
+ this.rpxTranslationService.language !== 'cy' && language.value && language.value_cy &&
225
+ language.value.toLowerCase().includes(searchTerm.toLowerCase(), 0) ||
226
+ !language.value_cy && language.value.toLowerCase().includes(searchTerm.toLowerCase(), 0) ||
227
+ !language.value && language.value_cy.toLowerCase().includes(searchTerm.toLowerCase(), 0))
200
228
  : [];
201
229
  }
202
230
  }
203
- SearchLanguageInterpreterComponent.ɵfac = function SearchLanguageInterpreterComponent_Factory(t) { return new (t || SearchLanguageInterpreterComponent)(); };
204
- SearchLanguageInterpreterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchLanguageInterpreterComponent, selectors: [["ccd-search-language-interpreter"]], inputs: { formGroup: "formGroup", languages: "languages", flagCode: "flagCode" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 25, vars: 18, consts: [[1, "form-group", 3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper"], [1, "govuk-label", "govuk-label--l", 3, "for"], ["id", "language-search-box-hint", 1, "govuk-hint"], [1, "auto-complete-container"], ["id", "language-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "language-entered-in-both-fields-error-message", "class", "govuk-error-message", 4, "ngIf"], ["aria-label", "Language search box", "matInput", "", "type", "text", 1, "govuk-input", "search-language__input", 3, "formControlName", "matAutocomplete"], ["autoActiveFirstOption", "", 1, "mat-autocomplete-panel-extend", 3, "displayWith"], ["autoSearchLanguage", "matAutocomplete"], [3, "value", 4, "ngFor", "ngForOf"], ["disabled", "", 4, "ngIf"], ["data-module", "govuk-checkboxes", 1, "govuk-checkboxes", "govuk-checkboxes--small", "govuk-checkboxes--conditional"], [1, "govuk-radios__item"], ["id", "enter-language-manually", "name", "enter-language-manually", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change"], ["for", "enter-language-manually", 1, "govuk-label", "govuk-checkboxes__label"], ["class", "govuk-radios__conditional", 4, "ngIf"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"], ["id", "language-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "language-entered-in-both-fields-error-message", 1, "govuk-error-message"], [3, "value"], ["disabled", ""], [1, "govuk-radios__conditional"], ["for", "manual-language-entry", 1, "govuk-label"], ["id", "language-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "language-char-limit-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "manual-language-entry", "type", "text", 1, "govuk-input", "govuk-input--width-20", 3, "name", "formControlName"], ["id", "language-not-entered-error-message", 1, "govuk-error-message"], ["id", "language-char-limit-error-message", 1, "govuk-error-message"]], template: function SearchLanguageInterpreterComponent_Template(rf, ctx) { if (rf & 1) {
205
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h1", 2)(3, "label", 3);
231
+ SearchLanguageInterpreterComponent.ɵfac = function SearchLanguageInterpreterComponent_Factory(t) { return new (t || SearchLanguageInterpreterComponent)(i0.ɵɵdirectiveInject(i1.RpxTranslationService)); };
232
+ SearchLanguageInterpreterComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchLanguageInterpreterComponent, selectors: [["ccd-search-language-interpreter"]], inputs: { formGroup: "formGroup", flagType: "flagType" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 29, vars: 28, consts: [[3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper"], [1, "govuk-label", "govuk-label--m", 3, "for"], ["id", "language-search-box-hint", 1, "govuk-hint"], [1, "auto-complete-container"], ["id", "language-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "language-entered-in-both-fields-error-message", "class", "govuk-error-message", 4, "ngIf"], ["aria-label", "Language search box", "matInput", "", "type", "text", 1, "govuk-input", "search-language__input", 3, "formControlName", "matAutocomplete"], ["autoActiveFirstOption", "", 1, "mat-autocomplete-panel-extend", 3, "displayWith"], ["autoSearchLanguage", "matAutocomplete"], [3, "value", 4, "ngFor", "ngForOf"], ["disabled", "", 4, "ngIf"], ["data-module", "govuk-checkboxes", 1, "govuk-checkboxes", "govuk-checkboxes--small", "govuk-checkboxes--conditional"], [1, "govuk-radios__item"], ["id", "enter-language-manually", "name", "enter-language-manually", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change"], ["for", "enter-language-manually", 1, "govuk-label", "govuk-checkboxes__label"], ["class", "govuk-radios__conditional", 4, "ngIf"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"], ["id", "language-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "language-entered-in-both-fields-error-message", 1, "govuk-error-message"], [3, "value"], ["disabled", ""], [1, "govuk-radios__conditional"], ["for", "manual-language-entry", 1, "govuk-label"], ["id", "language-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "language-char-limit-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "manual-language-entry", "type", "text", 1, "govuk-input", "govuk-input--width-20", 3, "name", "formControlName"], ["id", "language-not-entered-error-message", 1, "govuk-error-message"], ["id", "language-char-limit-error-message", 1, "govuk-error-message"]], template: function SearchLanguageInterpreterComponent_Template(rf, ctx) { if (rf & 1) {
233
+ i0.ɵɵelementContainerStart(0, 0);
234
+ i0.ɵɵelementStart(1, "div", 1)(2, "h1", 2)(3, "label", 3);
206
235
  i0.ɵɵtext(4);
236
+ i0.ɵɵpipe(5, "flagFieldDisplay");
207
237
  i0.ɵɵelementEnd()();
208
- i0.ɵɵelementStart(5, "div", 4);
209
- i0.ɵɵtext(6);
238
+ i0.ɵɵelementStart(6, "div", 4);
239
+ i0.ɵɵtext(7);
240
+ i0.ɵɵpipe(8, "rpxTranslate");
210
241
  i0.ɵɵelementEnd();
211
- i0.ɵɵelementStart(7, "div", 5);
212
- i0.ɵɵtemplate(8, SearchLanguageInterpreterComponent_div_8_Template, 4, 1, "div", 6);
213
- i0.ɵɵtemplate(9, SearchLanguageInterpreterComponent_div_9_Template, 4, 1, "div", 7);
214
- i0.ɵɵelement(10, "input", 8);
215
- i0.ɵɵelementStart(11, "mat-autocomplete", 9, 10);
216
- i0.ɵɵtemplate(13, SearchLanguageInterpreterComponent_mat_option_13_Template, 2, 2, "mat-option", 11);
217
- i0.ɵɵpipe(14, "async");
218
- i0.ɵɵtemplate(15, SearchLanguageInterpreterComponent_mat_option_15_Template, 2, 0, "mat-option", 12);
242
+ i0.ɵɵelementStart(9, "div", 5);
243
+ i0.ɵɵtemplate(10, SearchLanguageInterpreterComponent_div_10_Template, 6, 6, "div", 6);
244
+ i0.ɵɵtemplate(11, SearchLanguageInterpreterComponent_div_11_Template, 6, 6, "div", 7);
245
+ i0.ɵɵelement(12, "input", 8);
246
+ i0.ɵɵelementStart(13, "mat-autocomplete", 9, 10);
247
+ i0.ɵɵtemplate(15, SearchLanguageInterpreterComponent_mat_option_15_Template, 3, 4, "mat-option", 11);
248
+ i0.ɵɵpipe(16, "async");
249
+ i0.ɵɵtemplate(17, SearchLanguageInterpreterComponent_mat_option_17_Template, 3, 3, "mat-option", 12);
219
250
  i0.ɵɵelementEnd()();
220
- i0.ɵɵelementStart(16, "div", 13)(17, "div", 14)(18, "input", 15);
221
- i0.ɵɵlistener("change", function SearchLanguageInterpreterComponent_Template_input_change_18_listener($event) { return ctx.onEnterLanguageManually($event); });
251
+ i0.ɵɵelementStart(18, "div", 13)(19, "div", 14)(20, "input", 15);
252
+ i0.ɵɵlistener("change", function SearchLanguageInterpreterComponent_Template_input_change_20_listener($event) { return ctx.onEnterLanguageManually($event); });
222
253
  i0.ɵɵelementEnd();
223
- i0.ɵɵelementStart(19, "label", 16);
224
- i0.ɵɵtext(20);
254
+ i0.ɵɵelementStart(21, "label", 16);
255
+ i0.ɵɵtext(22);
256
+ i0.ɵɵpipe(23, "rpxTranslate");
225
257
  i0.ɵɵelementEnd()();
226
- i0.ɵɵtemplate(21, SearchLanguageInterpreterComponent_div_21_Template, 7, 8, "div", 17);
258
+ i0.ɵɵtemplate(24, SearchLanguageInterpreterComponent_div_24_Template, 8, 10, "div", 17);
259
+ i0.ɵɵelementEnd()();
260
+ i0.ɵɵelementContainerEnd();
261
+ i0.ɵɵelementStart(25, "div", 18)(26, "button", 19);
262
+ i0.ɵɵlistener("click", function SearchLanguageInterpreterComponent_Template_button_click_26_listener() { return ctx.onNext(); });
263
+ i0.ɵɵtext(27);
264
+ i0.ɵɵpipe(28, "rpxTranslate");
227
265
  i0.ɵɵelementEnd()();
228
- i0.ɵɵelementStart(22, "div", 18)(23, "button", 19);
229
- i0.ɵɵlistener("click", function SearchLanguageInterpreterComponent_Template_button_click_23_listener() { return ctx.onNext(); });
230
- i0.ɵɵtext(24, "Next");
231
- i0.ɵɵelementEnd()()();
232
266
  } if (rf & 2) {
233
- const _r2 = i0.ɵɵreference(12);
267
+ const _r2 = i0.ɵɵreference(14);
234
268
  i0.ɵɵproperty("formGroup", ctx.formGroup);
235
269
  i0.ɵɵadvance(1);
236
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c0, ctx.languageNotSelectedErrorMessage || ctx.languageEnteredInBothFieldsErrorMessage));
270
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(26, _c0, ctx.languageNotSelectedErrorMessage || ctx.languageEnteredInBothFieldsErrorMessage));
237
271
  i0.ɵɵadvance(2);
238
- i0.ɵɵproperty("for", ctx.languageSearchTermControlName);
272
+ i0.ɵɵproperty("for", ctx.SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM);
239
273
  i0.ɵɵadvance(1);
240
- i0.ɵɵtextInterpolate1(" ", ctx.searchLanguageInterpreterTitle, " ");
241
- i0.ɵɵadvance(2);
242
- i0.ɵɵtextInterpolate1(" ", ctx.searchLanguageInterpreterHint, " ");
243
- i0.ɵɵadvance(2);
274
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(5, 15, ctx.flagType, "name"), " ");
275
+ i0.ɵɵadvance(3);
276
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 18, ctx.searchLanguageInterpreterHint), " ");
277
+ i0.ɵɵadvance(3);
244
278
  i0.ɵɵproperty("ngIf", ctx.languageNotSelectedErrorMessage);
245
279
  i0.ɵɵadvance(1);
246
280
  i0.ɵɵproperty("ngIf", ctx.languageEnteredInBothFieldsErrorMessage);
247
281
  i0.ɵɵadvance(1);
248
- i0.ɵɵproperty("formControlName", ctx.languageSearchTermControlName)("matAutocomplete", _r2);
282
+ i0.ɵɵproperty("formControlName", ctx.SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM)("matAutocomplete", _r2);
249
283
  i0.ɵɵadvance(1);
250
284
  i0.ɵɵproperty("displayWith", ctx.displayLanguage);
251
285
  i0.ɵɵadvance(2);
252
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(14, 14, ctx.filteredLanguages$));
286
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(16, 20, ctx.filteredLanguages$));
253
287
  i0.ɵɵadvance(2);
254
288
  i0.ɵɵproperty("ngIf", ctx.noResults && ctx.searchTerm && ctx.searchTerm.length >= ctx.minSearchCharacters);
255
289
  i0.ɵɵadvance(5);
256
- i0.ɵɵtextInterpolate1(" ", ctx.searchLanguageInterpreterStep.CHECKBOX_LABEL, " ");
257
- i0.ɵɵadvance(1);
290
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 22, ctx.searchLanguageInterpreterStep.CHECKBOX_LABEL), " ");
291
+ i0.ɵɵadvance(2);
258
292
  i0.ɵɵproperty("ngIf", ctx.isCheckboxEnabled);
259
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3.MatLegacyInput, i4.MatLegacyAutocomplete, i4.MatLegacyAutocompleteTrigger, i5.MatLegacyOption, i1.AsyncPipe], styles: [".autocomplete__input--show-all-values[_ngcontent-%COMP%]{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down[_ngcontent-%COMP%]{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu[_ngcontent-%COMP%]{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible[_ngcontent-%COMP%]{display:block}.autocomplete__menu--hidden[_ngcontent-%COMP%]{display:none}.autocomplete__menu--overlay[_ngcontent-%COMP%]{box-shadow:#00000042 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline[_ngcontent-%COMP%]{position:relative}.autocomplete__option[_ngcontent-%COMP%]{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{pointer-events:none}.autocomplete__option[_ngcontent-%COMP%]:first-of-type{border-top-width:0}.autocomplete__option[_ngcontent-%COMP%]:last-of-type{border-bottom-width:0}.autocomplete__option--odd[_ngcontent-%COMP%]{background-color:#fafafa}.autocomplete__option--focused[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results[_ngcontent-%COMP%]{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.25}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{padding:5px}@media (min-width: 641px){.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.31579}}.div-action[_ngcontent-%COMP%]{display:inline-block}.add-location[_ngcontent-%COMP%]{display:inline}.remove-location-button[_ngcontent-%COMP%]{margin:5px}.hide-autocomplete[_ngcontent-%COMP%]{display:none}.auto-complete-container[_ngcontent-%COMP%]{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input[_ngcontent-%COMP%]{line-height:24px;font-size:19px}.hidden[_ngcontent-%COMP%]{display:none}.search-language__input[_ngcontent-%COMP%]{position:relative;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='%23505a5f'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center left -2px;background-size:40px 40px;padding-left:35px}"] });
293
+ i0.ɵɵadvance(3);
294
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(28, 24, "Next"));
295
+ } }, styles: [".autocomplete__input--show-all-values[_ngcontent-%COMP%]{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down[_ngcontent-%COMP%]{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu[_ngcontent-%COMP%]{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible[_ngcontent-%COMP%]{display:block}.autocomplete__menu--hidden[_ngcontent-%COMP%]{display:none}.autocomplete__menu--overlay[_ngcontent-%COMP%]{box-shadow:#00000042 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline[_ngcontent-%COMP%]{position:relative}.autocomplete__option[_ngcontent-%COMP%]{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{pointer-events:none}.autocomplete__option[_ngcontent-%COMP%]:first-of-type{border-top-width:0}.autocomplete__option[_ngcontent-%COMP%]:last-of-type{border-bottom-width:0}.autocomplete__option--odd[_ngcontent-%COMP%]{background-color:#fafafa}.autocomplete__option--focused[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results[_ngcontent-%COMP%]{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.25}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{padding:5px}@media (min-width: 641px){.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.31579}}.div-action[_ngcontent-%COMP%]{display:inline-block}.add-location[_ngcontent-%COMP%]{display:inline}.remove-location-button[_ngcontent-%COMP%]{margin:5px}.hide-autocomplete[_ngcontent-%COMP%]{display:none}.auto-complete-container[_ngcontent-%COMP%]{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input[_ngcontent-%COMP%]{line-height:24px;font-size:19px}.hidden[_ngcontent-%COMP%]{display:none}.search-language__input[_ngcontent-%COMP%]{position:relative;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='%23505a5f'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center left -2px;background-size:40px 40px;padding-left:35px}"] });
260
296
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchLanguageInterpreterComponent, [{
261
297
  type: Component,
262
- args: [{ selector: 'ccd-search-language-interpreter', template: "<div class=\"form-group\" [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': languageNotSelectedErrorMessage || languageEnteredInBothFieldsErrorMessage}\">\n <h1 class=\"govuk-label-wrapper\"><label class=\"govuk-label govuk-label--l\" [for]=\"languageSearchTermControlName\">\n {{searchLanguageInterpreterTitle}}\n </label>\n </h1>\n <div id=\"language-search-box-hint\" class=\"govuk-hint\">\n {{searchLanguageInterpreterHint}}\n </div>\n <div class=\"auto-complete-container\">\n <div id=\"language-not-selected-error-message\" class=\"govuk-error-message\"\n *ngIf=\"languageNotSelectedErrorMessage\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{languageNotSelectedErrorMessage}}\n </div>\n <div id=\"language-entered-in-both-fields-error-message\" class=\"govuk-error-message\"\n *ngIf=\"languageEnteredInBothFieldsErrorMessage\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{languageEnteredInBothFieldsErrorMessage}}\n </div>\n <input aria-label=\"Language search box\" matInput [formControlName]=\"languageSearchTermControlName\" [matAutocomplete]=\"autoSearchLanguage\"\n class=\"govuk-input search-language__input\" type=\"text\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLanguage=\"matAutocomplete\"\n [displayWith]=\"displayLanguage\">\n <mat-option *ngFor=\"let language of filteredLanguages$ | async\" [value]=\"language\">\n {{language.value}}\n </mat-option>\n <mat-option *ngIf=\"noResults && searchTerm && searchTerm.length >= minSearchCharacters\" disabled>No results found</mat-option>\n </mat-autocomplete>\n </div>\n <div class=\"govuk-checkboxes govuk-checkboxes--small govuk-checkboxes--conditional\" data-module=\"govuk-checkboxes\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-checkboxes__input\" id=\"enter-language-manually\" name=\"enter-language-manually\" type=\"checkbox\"\n (change)=\"onEnterLanguageManually($event)\">\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"enter-language-manually\">\n {{searchLanguageInterpreterStep.CHECKBOX_LABEL}}\n </label>\n </div>\n <div class=\"govuk-radios__conditional\" *ngIf=\"isCheckboxEnabled\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': languageNotEnteredErrorMessage || languageCharLimitErrorMessage }\">\n <label class=\"govuk-label\" for=\"manual-language-entry\">{{searchLanguageInterpreterStep.INPUT_LABEL}}</label>\n <div id=\"language-not-entered-error-message\" class=\"govuk-error-message\"\n *ngIf=\"languageNotEnteredErrorMessage\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{languageNotEnteredErrorMessage}}\n </div>\n <div id=\"language-char-limit-error-message\" class=\"govuk-error-message\"\n *ngIf=\"languageCharLimitErrorMessage\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{languageCharLimitErrorMessage}}\n </div>\n <input class=\"govuk-input govuk-input--width-20\" id=\"manual-language-entry\" [name]=\"manualLanguageEntryControlName\" type=\"text\"\n [formControlName]=\"manualLanguageEntryControlName\">\n </div>\n </div>\n </div>\n </div>\n <div class=\"govuk-button-group\">\n <button class=\"button button-primary\" type=\"button\" (click)=\"onNext()\">Next</button>\n </div>\n</div>\n", styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:#00000042 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width: 641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}.hidden{display:none}.search-language__input{position:relative;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='%23505a5f'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center left -2px;background-size:40px 40px;padding-left:35px}\n"] }]
263
- }], null, { formGroup: [{
264
- type: Input
265
- }], languages: [{
298
+ args: [{ selector: 'ccd-search-language-interpreter', template: "<ng-container [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': languageNotSelectedErrorMessage || languageEnteredInBothFieldsErrorMessage}\">\n <h1 class=\"govuk-label-wrapper\">\n <label class=\"govuk-label govuk-label--m\" [for]=\"SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM\">\n {{flagType | flagFieldDisplay:'name'}}\n </label>\n </h1>\n <div id=\"language-search-box-hint\" class=\"govuk-hint\">\n {{searchLanguageInterpreterHint | rpxTranslate}}\n </div>\n <div class=\"auto-complete-container\">\n <div id=\"language-not-selected-error-message\" class=\"govuk-error-message\"\n *ngIf=\"languageNotSelectedErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{languageNotSelectedErrorMessage | rpxTranslate}}\n </div>\n <div id=\"language-entered-in-both-fields-error-message\" class=\"govuk-error-message\"\n *ngIf=\"languageEnteredInBothFieldsErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{languageEnteredInBothFieldsErrorMessage | rpxTranslate}}\n </div>\n <input aria-label=\"Language search box\" matInput [formControlName]=\"SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM\" [matAutocomplete]=\"autoSearchLanguage\"\n class=\"govuk-input search-language__input\" type=\"text\">\n <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLanguage=\"matAutocomplete\"\n [displayWith]=\"displayLanguage\">\n <mat-option *ngFor=\"let language of filteredLanguages$ | async\" [value]=\"language\">\n {{language | languageInterpreterDisplay}}\n </mat-option>\n <mat-option *ngIf=\"noResults && searchTerm && searchTerm.length >= minSearchCharacters\" disabled>{{'No results found' | rpxTranslate}}</mat-option>\n </mat-autocomplete>\n </div>\n <div class=\"govuk-checkboxes govuk-checkboxes--small govuk-checkboxes--conditional\" data-module=\"govuk-checkboxes\">\n <div class=\"govuk-radios__item\">\n <input class=\"govuk-checkboxes__input\" id=\"enter-language-manually\" name=\"enter-language-manually\" type=\"checkbox\"\n (change)=\"onEnterLanguageManually($event)\">\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"enter-language-manually\">\n {{searchLanguageInterpreterStep.CHECKBOX_LABEL | rpxTranslate}}\n </label>\n </div>\n <div class=\"govuk-radios__conditional\" *ngIf=\"isCheckboxEnabled\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': languageNotEnteredErrorMessage || languageCharLimitErrorMessage }\">\n <label class=\"govuk-label\" for=\"manual-language-entry\">{{searchLanguageInterpreterStep.INPUT_LABEL | rpxTranslate}}</label>\n <div id=\"language-not-entered-error-message\" class=\"govuk-error-message\"\n *ngIf=\"languageNotEnteredErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{languageNotEnteredErrorMessage | rpxTranslate}}\n </div>\n <div id=\"language-char-limit-error-message\" class=\"govuk-error-message\"\n *ngIf=\"languageCharLimitErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{languageCharLimitErrorMessage | rpxTranslate}}\n </div>\n <input class=\"govuk-input govuk-input--width-20\" id=\"manual-language-entry\" [name]=\"SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY\" type=\"text\"\n [formControlName]=\"SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY\">\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n\n<div class=\"govuk-button-group\">\n <button class=\"button button-primary\" type=\"button\" (click)=\"onNext()\">{{'Next' | rpxTranslate}}</button>\n</div>\n", styles: [".autocomplete__input--show-all-values{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible{display:block}.autocomplete__menu--hidden{display:none}.autocomplete__menu--overlay{box-shadow:#00000042 0 2px 6px;left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline{position:relative}.autocomplete__option{border-bottom:solid #b1b4b6;border-width:1px 0;cursor:pointer;display:block;position:relative}.autocomplete__option>*{pointer-events:none}.autocomplete__option:first-of-type{border-top-width:0}.autocomplete__option:last-of-type{border-bottom-width:0}.autocomplete__option--odd{background-color:#fafafa}.autocomplete__option--focused,.autocomplete__option:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.25}.autocomplete__hint,.autocomplete__option{padding:5px}@media (min-width: 641px){.autocomplete__hint,.autocomplete__input,.autocomplete__option{font-size:13px;line-height:1.31579}}.div-action{display:inline-block}.add-location{display:inline}.remove-location-button{margin:5px}.hide-autocomplete{display:none}.auto-complete-container{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input{line-height:24px;font-size:19px}.hidden{display:none}.search-language__input{position:relative;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='%23505a5f'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center left -2px;background-size:40px 40px;padding-left:35px}\n"] }]
299
+ }], function () { return [{ type: i1.RpxTranslationService }]; }, { formGroup: [{
266
300
  type: Input
267
- }], flagCode: [{
301
+ }], flagType: [{
268
302
  type: Input
269
303
  }], caseFlagStateEmitter: [{
270
304
  type: Output
271
305
  }] }); })();
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9jb21wb25lbnRzL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixxQ0FBcUMsRUFDckMsNkJBQTZCLEVBQzlCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7OztJQ0RmLCtCQUMwQyxlQUFBO0lBQ0osc0JBQU07SUFBQSxpQkFBTztJQUFDLFlBQ3BEO0lBQUEsaUJBQU07OztJQUQ4QyxlQUNwRDtJQURvRCx1RUFDcEQ7OztJQUNBLCtCQUNrRCxlQUFBO0lBQ1osc0JBQU07SUFBQSxpQkFBTztJQUFDLFlBQ3BEO0lBQUEsaUJB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QztRQUNoQyxvR0FFYTs7UUFDYixvR0FBOEg7UUFDaEksaUJBQW1CLEVBQUE7UUFFckIsZ0NBQW1ILGVBQUEsaUJBQUE7UUFHN0csdUhBQVUsbUNBQStCLElBQUM7UUFENUMsaUJBQzZDO1FBQzdDLGtDQUFpRjtRQUMvRSxhQUNGO1FBQUEsaUJBQVEsRUFBQTtRQUVWLHNGQWNNO1FBQ1IsaUJBQU0sRUFBQTtRQUVSLGdDQUFnQyxrQkFBQTtRQUNzQixnSEFBUyxZQUFRLElBQUM7UUFBQyxxQkFBSTtRQUFBLGlCQUFTLEVBQUEsRUFBQTs7O1FBdERoRSx5Q0FBdUI7UUFDZixlQUE0RztRQUE1Ryx5SUFBNEc7UUFDOUQsZUFBcUM7UUFBckMsdURBQXFDO1FBQzNHLGVBQ0Y7UUFERSxtRUFDRjtRQUdBLGVBQ0Y7UUFERSxrRUFDRjtRQUdLLGVBQXFDO1FBQXJDLDBEQUFxQztRQUlyQyxlQUE2QztRQUE3QyxrRUFBNkM7UUFHQyxlQUFpRDtRQUFqRCxtRUFBaUQsd0JBQUE7UUFHaEcsZUFBK0I7UUFBL0IsaURBQStCO1FBQ0UsZUFBNkI7UUFBN0Isd0VBQTZCO1FBR2pELGVBQXlFO1FBQXpFLDBHQUF5RTtRQVFwRixlQUNGO1FBREUsaUZBQ0Y7UUFFc0MsZUFBdUI7UUFBdkIsNENBQXVCOzt1RkRsQnhELGtDQUFrQztjQUw5QyxTQUFTOzJCQUNFLGlDQUFpQztnQkFPcEMsU0FBUztrQkFEZixLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsUUFBUTtrQkFEZCxLQUFLO1lBSUMsb0JBQW9CO2tCQUQxQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUsIExhbmd1YWdlIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIENhc2VGbGFnRmllbGRTdGF0ZSxcbiAgQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUsXG4gIFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UsXG4gIFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwXG59IGZyb20gJy4uLy4uL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxhbmd1YWdlczogTGFuZ3VhZ2VbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxhZ0NvZGU6IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAzO1xuICBwdWJsaWMgcmVhZG9ubHkgbGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWUgPSAnbGFuZ3VhZ2VTZWFyY2hUZXJtJztcbiAgcHVibGljIHJlYWRvbmx5IG1hbnVhbExhbmd1YWdlRW50cnlDb250cm9sTmFtZSA9ICdtYW51YWxMYW5ndWFnZUVudHJ5JztcbiAgcHVibGljIGZpbHRlcmVkTGFuZ3VhZ2VzJDogT2JzZXJ2YWJsZTxMYW5ndWFnZVtdPjtcbiAgcHVibGljIHNlYXJjaFRlcm0gPSAnJztcbiAgcHVibGljIGlzQ2hlY2tib3hFbmFibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBzZWFyY2hMYW5ndWFnZUludGVycHJldGVyVGl0bGU6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlO1xuICBwdWJsaWMgc2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckhpbnQ6IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIGxhbmd1YWdlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIGxhbmd1YWdlTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgbGFuZ3VhZ2VDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIGxhbmd1YWdlRW50ZXJlZEluQm90aEZpZWxkc0Vycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgbm9SZXN1bHRzID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VNYXhDaGFyTGltaXQgPSA4MDtcbiAgcHJpdmF0ZSByZWFkb25seSBzaWduTGFuZ3VhZ2VGbGFnQ29kZSA9ICdSQTAwNDInO1xuXG4gIHB1YmxpYyBnZXQgc2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlclN0ZXAoKTogdHlwZW9mIFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwIHtcbiAgICByZXR1cm4gU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlclN0ZXA7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hMYW5ndWFnZUludGVycHJldGVyVGl0bGUgPSB0aGlzLmZsYWdDb2RlID09PSB0aGlzLnNpZ25MYW5ndWFnZUZsYWdDb2RlXG4gICAgICA/IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLlNFQVJDSF9TSUdOX0xBTkdVQUdFX0lOVEVSUFJFVEVSXG4gICAgICA6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLlNFQVJDSF9MQU5HVUFHRV9JTlRFUlBSRVRFUjtcbiAgICB0aGlzLnNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJIaW50ID0gdGhpcy5mbGFnQ29kZSA9PT0gdGhpcy5zaWduTGFuZ3VhZ2VGbGFnQ29kZVxuICAgICAgPyBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcC5TSUdOX0hJTlRfVEVYVFxuICAgICAgOiBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcC5ISU5UX1RFWFQ7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLmxhbmd1YWdlU2VhcmNoVGVybUNvbnRyb2xOYW1lLCBuZXcgRm9ybUNvbnRyb2woKSk7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLm1hbnVhbExhbmd1YWdlRW50cnlDb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKCkpO1xuICAgIHRoaXMuZmlsdGVyZWRMYW5ndWFnZXMkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMubGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWUpLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgLy8gTmVlZCB0byBjaGVjayB0eXBlIG9mIGlucHV0IGJlY2F1c2UgaXQgY2hhbmdlcyB0byBvYmplY3QgKGkuZS4gTGFuZ3VhZ2UpIHdoZW4gYSB2YWx1ZSBpcyBzZWxlY3RlZCBmcm9tIHRoZVxuICAgICAgLy8gYXV0b2NvbXBsZXRlIHBhbmVsLCBpbnN0ZWFkIG9mIHN0cmluZyB3aGVuIGEgdmFsdWUgaXMgYmVpbmcgdHlwZWQgaW5cbiAgICAgIG1hcChpbnB1dCA9PiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnID8gaW5wdXQgOiBpbnB1dC52YWx1ZSksXG4gICAgICBtYXAoc2VhcmNoVGVybSA9PiB7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgY3VycmVudCBzZWFyY2ggdGVybVxuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtO1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJMYW5ndWFnZXMoc2VhcmNoVGVybSk7XG4gICAgICB9KSxcbiAgICAgIHRhcChsYW5ndWFnZXMgPT4gdGhpcy5ub1Jlc3VsdHMgPSBsYW5ndWFnZXMubGVuZ3RoID09PSAwKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIC8vIFZhbGlkYXRlIGxhbmd1YWdlIGludGVycHJldGVyIGVudHJ5XG4gICAgdGhpcy52YWxpZGF0ZUxhbmd1YWdlRW50cnkoKTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xBTkdVQUdFX0lOVEVSUFJFVEVSLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25FbnRlckxhbmd1YWdlTWFudWFsbHkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pc0NoZWNrYm94RW5hYmxlZCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcblxuICAgIC8vIElmIHRoZSBjaGVja2JveCBpcyBkaXNhYmxlZCwgaS5lLiB1bmNoZWNrZWQsIHRoZW4gY2xlYXIgdGhlIG1hbnVhbCBsYW5ndWFnZSBlbnRyeSBGb3JtQ29udHJvbCBvZiBhbnkgdmFsdWUgdG9cbiAgICAvLyBwcmV2ZW50IGl0IGJlaW5nIHJldGFpbmVkIGV2ZW4gd2hlbiB0aGUgZmllbGQgaXRzZWxmIGlzIGhpZGRlblxuICAgIGlmICghdGhpcy5pc0NoZWNrYm94RW5hYmxlZCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMubWFudWFsTGFuZ3VhZ2VFbnRyeUNvbnRyb2xOYW1lKS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheUxhbmd1YWdlKGxhbmd1YWdlPzogTGFuZ3VhZ2UpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBsYW5ndWFnZSA/IGxhbmd1YWdlLnZhbHVlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUxhbmd1YWdlRW50cnkoKTogdm9pZCB7XG4gICAgdGhpcy5sYW5ndWFnZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmxhbmd1YWdlTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5sYW5ndWFnZUNoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5sYW5ndWFnZUVudGVyZWRJbkJvdGhGaWVsZHNFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIC8vIENoZWNrYm94IG5vdCBlbmFibGVkIG1lYW5zIHRoZSB1c2VyIGhhcyBvcHRlZCB0byBzZWFyY2ggZm9yIGFuZCBzZWxlY3QgdGhlIGxhbmd1YWdlXG4gICAgaWYgKCF0aGlzLmlzQ2hlY2tib3hFbmFibGVkICYmICF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5sYW5ndWFnZVNlYXJjaFRlcm1Db250cm9sTmFtZSkudmFsdWUpIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2VOb3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfTk9UX0VOVEVSRUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfTk9UX0VOVEVSRUQsXG4gICAgICAgIGZpZWxkSWQ6IHRoaXMubGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBDaGVja2JveCBlbmFibGVkIG1lYW5zIHRoZSB1c2VyIGhhcyBvcHRlZCB0byBlbnRlciB0aGUgbGFuZ3VhZ2UgbWFudWFsbHlcbiAgICBpZiAodGhpcy5pc0NoZWNrYm94RW5hYmxlZCkge1xuICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5tYW51YWxMYW5ndWFnZUVudHJ5Q29udHJvbE5hbWUpLnZhbHVlKSB7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VOb3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckVycm9yTWVzc2FnZS5MQU5HVUFHRV9OT1RfRU5URVJFRDtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckVycm9yTWVzc2FnZS5MQU5HVUFHRV9OT1RfRU5URVJFRCxcbiAgICAgICAgICBmaWVsZElkOiB0aGlzLm1hbnVhbExhbmd1YWdlRW50cnlDb250cm9sTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMubWFudWFsTGFuZ3VhZ2VFbnRyeUNvbnRyb2xOYW1lKS52YWx1ZS5sZW5ndGggPiB0aGlzLmxhbmd1YWdlTWF4Q2hhckxpbWl0KSB7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyRXJyb3JNZXNzYWdlLkxBTkdVQUdFX0NIQVJfTElNSVRfRVhDRUVERUQ7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfQ0hBUl9MSU1JVF9FWENFRURFRCxcbiAgICAgICAgICBmaWVsZElkOiB0aGlzLm1hbnVhbExhbmd1YWdlRW50cnlDb250cm9sTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMubGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWUpLnZhbHVlKSB7XG4gICAgICAgIC8vIExhbmd1YWdlIGVudHJ5IGlzIHBlcm1pdHRlZCBpbiBvbmx5IG9uZSBmaWVsZCBhdCBhIHRpbWVcbiAgICAgICAgdGhpcy5sYW5ndWFnZUVudGVyZWRJbkJvdGhGaWVsZHNFcnJvck1lc3NhZ2UgPSBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyRXJyb3JNZXNzYWdlLkxBTkdVQUdFX0VOVEVSRURfSU5fQk9USF9GSUVMRFM7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfRU5URVJFRF9JTl9CT1RIX0ZJRUxEUyxcbiAgICAgICAgICBmaWVsZElkOiB0aGlzLmxhbmd1YWdlU2VhcmNoVGVybUNvbnRyb2xOYW1lXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyTGFuZ3VhZ2VzKHNlYXJjaFRlcm06IHN0cmluZyk6IExhbmd1YWdlW10ge1xuICAgIGlmIChzZWFyY2hUZXJtLmxlbmd0aCA8IHRoaXMubWluU2VhcmNoQ2hhcmFjdGVycykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlc1xuICAgICAgPyB0aGlzLmxhbmd1YWdlcy5maWx0ZXIobGFuZ3VhZ2UgPT4gbGFuZ3VhZ2UudmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCksIDApKVxuICAgICAgOiBbXTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGxhbmd1YWdlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UgfHwgbGFuZ3VhZ2VFbnRlcmVkSW5Cb3RoRmllbGRzRXJyb3JNZXNzYWdlfVwiPlxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWxhYmVsLXdyYXBwZXJcIj48bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tbFwiIFtmb3JdPVwibGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWVcIj5cbiAgICAgICAge3tzZWFyY2hMYW5ndWFnZUludGVycHJldGVyVGl0bGV9fVxuICAgICAgPC9sYWJlbD5cbiAgICA8L2gxPlxuICAgIDxkaXYgaWQ9XCJsYW5ndWFnZS1zZWFyY2gtYm94LWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgIHt7c2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckhpbnR9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhdXRvLWNvbXBsZXRlLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBpZD1cImxhbmd1YWdlLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJsYW5ndWFnZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e2xhbmd1YWdlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2V9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwibGFuZ3VhZ2UtZW50ZXJlZC1pbi1ib3RoLWZpZWxkcy1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJsYW5ndWFnZUVudGVyZWRJbkJvdGhGaWVsZHNFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7bGFuZ3VhZ2VFbnRlcmVkSW5Cb3RoRmllbGRzRXJyb3JNZXNzYWdlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGlucHV0IGFyaWEtbGFiZWw9XCJMYW5ndWFnZSBzZWFyY2ggYm94XCIgbWF0SW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJsYW5ndWFnZVNlYXJjaFRlcm1Db250cm9sTmFtZVwiIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1NlYXJjaExhbmd1YWdlXCJcbiAgICAgICAgY2xhc3M9XCJnb3Z1ay1pbnB1dCBzZWFyY2gtbGFuZ3VhZ2VfX2lucHV0XCIgdHlwZT1cInRleHRcIj5cbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlIGNsYXNzPVwibWF0LWF1dG9jb21wbGV0ZS1wYW5lbC1leHRlbmRcIiBhdXRvQWN0aXZlRmlyc3RPcHRpb24gI2F1dG9TZWFyY2hMYW5ndWFnZT1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAgIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5TGFuZ3VhZ2VcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGxhbmd1YWdlIG9mIGZpbHRlcmVkTGFuZ3VhZ2VzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cImxhbmd1YWdlXCI+XG4gICAgICAgICAge3tsYW5ndWFnZS52YWx1ZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJub1Jlc3VsdHMgJiYgc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+PSBtaW5TZWFyY2hDaGFyYWN0ZXJzXCIgZGlzYWJsZWQ+Tm8gcmVzdWx0cyBmb3VuZDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlcyBnb3Z1ay1jaGVja2JveGVzLS1zbWFsbCBnb3Z1ay1jaGVja2JveGVzLS1jb25kaXRpb25hbFwiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hlY2tib3hlc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiPlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwiZW50ZXItbGFuZ3VhZ2UtbWFudWFsbHlcIiBuYW1lPVwiZW50ZXItbGFuZ3VhZ2UtbWFudWFsbHlcIiB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIChjaGFuZ2UpPVwib25FbnRlckxhbmd1YWdlTWFudWFsbHkoJGV2ZW50KVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cImVudGVyLWxhbmd1YWdlLW1hbnVhbGx5XCI+XG4gICAgICAgICAge3tzZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcC5DSEVDS0JPWF9MQUJFTH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2NvbmRpdGlvbmFsXCIgKm5nSWY9XCJpc0NoZWNrYm94RW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGxhbmd1YWdlTm90RW50ZXJlZEVycm9yTWVzc2FnZSB8fCBsYW5ndWFnZUNoYXJMaW1pdEVycm9yTWVzc2FnZSB9XCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWxcIiBmb3I9XCJtYW51YWwtbGFuZ3VhZ2UtZW50cnlcIj57e3NlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwLklOUFVUX0xBQkVMfX08L2xhYmVsPlxuICAgICAgICAgIDxkaXYgaWQ9XCJsYW5ndWFnZS1ub3QtZW50ZXJlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgICAgICpuZ0lmPVwibGFuZ3VhZ2VOb3RFbnRlcmVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tsYW5ndWFnZU5vdEVudGVyZWRFcnJvck1lc3NhZ2V9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgaWQ9XCJsYW5ndWFnZS1jaGFyLWxpbWl0LWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAgICAgKm5nSWY9XCJsYW5ndWFnZUNoYXJMaW1pdEVycm9yTWVzc2FnZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7bGFuZ3VhZ2VDaGFyTGltaXRFcnJvck1lc3NhZ2V9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWlucHV0IGdvdnVrLWlucHV0LS13aWR0aC0yMFwiIGlkPVwibWFudWFsLWxhbmd1YWdlLWVudHJ5XCIgW25hbWVdPVwibWFudWFsTGFuZ3VhZ2VFbnRyeUNvbnRyb2xOYW1lXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJtYW51YWxMYW5ndWFnZUVudHJ5Q29udHJvbE5hbWVcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tZ3JvdXBcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk5leHQoKVwiPk5leHQ8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9jb21wb25lbnRzL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHFDQUFxQyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7O0lDRW5HLCtCQUMwQyxlQUFBO0lBQ0osWUFBMkI7O0lBQUEs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QUVWLDBCQUFlO1FBRWYsZ0NBQWdDLGtCQUFBO1FBQ3NCLGdIQUFTLFlBQVEsSUFBQztRQUFDLGFBQXlCOztRQUFBLGlCQUFTLEVBQUE7OztRQXpEN0YseUNBQXVCO1FBQ0wsZUFBNEc7UUFBNUcseUlBQTRHO1FBRTVGLGVBQWtFO1FBQWxFLG9GQUFrRTtRQUMxRyxlQUNGO1FBREUsNEVBQ0Y7UUFHQSxlQUNGO1FBREUseUZBQ0Y7UUFHSyxlQUFxQztRQUFyQywwREFBcUM7UUFJckMsZUFBNkM7UUFBN0Msa0VBQTZDO1FBR0MsZUFBOEU7UUFBOUUsZ0dBQThFLHdCQUFBO1FBRzdILGVBQStCO1FBQS9CLGlEQUErQjtRQUNFLGVBQTZCO1FBQTdCLHdFQUE2QjtRQUdqRCxlQUF5RTtRQUF6RSwwR0FBeUU7UUFRcEYsZUFDRjtRQURFLHlHQUNGO1FBRXNDLGVBQXVCO1FBQXZCLDRDQUF1QjtRQW9CSSxlQUF5QjtRQUF6QixvREFBeUI7O3VGRHpDckYsa0NBQWtDO2NBTDlDLFNBQVM7MkJBQ0UsaUNBQWlDO3dFQVdwQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxRQUFRO2tCQURkLEtBQUs7WUFJQyxvQkFBb0I7a0JBRDFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUnB4VHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGbGFnVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbi9jYXNlLWZsYWcnO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgTGFuZ3VhZ2UgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdGaWVsZFN0YXRlLCBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyRXJyb3JNZXNzYWdlLCBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcCB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJDb250cm9sTmFtZXMgfSBmcm9tICcuL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci1jb250cm9sLW5hbWVzLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtc2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZ2V0IHNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwKCk6IHR5cGVvZiBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcCB7XG4gICAgcmV0dXJuIFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwO1xuICB9XG4gIHB1YmxpYyByZWFkb25seSBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzID0gU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZsYWdUeXBlOiBGbGFnVHlwZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAzO1xuICBwdWJsaWMgZmlsdGVyZWRMYW5ndWFnZXMkOiBPYnNlcnZhYmxlPExhbmd1YWdlW10+O1xuICBwdWJsaWMgc2VhcmNoVGVybSA9ICcnO1xuICBwdWJsaWMgaXNDaGVja2JveEVuYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJIaW50OiBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcDtcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW107XG4gIHB1YmxpYyBsYW5ndWFnZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlID0gJyc7XG4gIHB1YmxpYyBsYW5ndWFnZU5vdEVudGVyZWRFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIGxhbmd1YWdlQ2hhckxpbWl0RXJyb3JNZXNzYWdlID0gJyc7XG4gIHB1YmxpYyBsYW5ndWFnZUVudGVyZWRJbkJvdGhGaWVsZHNFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIG5vUmVzdWx0cyA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGxhbmd1YWdlTWF4Q2hhckxpbWl0ID0gODA7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2lnbkxhbmd1YWdlRmxhZ0NvZGUgPSAnUkEwMDQyJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJweFRyYW5zbGF0aW9uU2VydmljZTogUnB4VHJhbnNsYXRpb25TZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hMYW5ndWFnZUludGVycHJldGVySGludCA9IHRoaXMuZmxhZ1R5cGUuZmxhZ0NvZGUgPT09IHRoaXMuc2lnbkxhbmd1YWdlRmxhZ0NvZGVcbiAgICAgID8gU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlclN0ZXAuU0lHTl9ISU5UX1RFWFRcbiAgICAgIDogU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlclN0ZXAuSElOVF9URVhUO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcy5MQU5HVUFHRV9TRUFSQ0hfVEVSTSwgbmV3IEZvcm1Db250cm9sKCkpO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2woU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcy5NQU5VQUxfTEFOR1VBR0VfRU5UUlksIG5ldyBGb3JtQ29udHJvbCgpKTtcbiAgICB0aGlzLmZpbHRlcmVkTGFuZ3VhZ2VzJCA9IHRoaXMuZm9ybUdyb3VwLmdldChTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzLkxBTkdVQUdFX1NFQVJDSF9URVJNKS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIC8vIE5lZWQgdG8gY2hlY2sgdHlwZSBvZiBpbnB1dCBiZWNhdXNlIGl0IGNoYW5nZXMgdG8gb2JqZWN0IChpLmUuIExhbmd1YWdlKSB3aGVuIGEgdmFsdWUgaXMgc2VsZWN0ZWQgZnJvbSB0aGVcbiAgICAgIC8vIGF1dG9jb21wbGV0ZSBwYW5lbCwgaW5zdGVhZCBvZiBzdHJpbmcgd2hlbiBhIHZhbHVlIGlzIGJlaW5nIHR5cGVkIGluXG4gICAgICBtYXAoaW5wdXQgPT4gdHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyA/IGlucHV0IDogaW5wdXQudmFsdWUpLFxuICAgICAgbWFwKHNlYXJjaFRlcm0gPT4ge1xuICAgICAgICAvLyBVcGRhdGUgdGhlIGN1cnJlbnQgc2VhcmNoIHRlcm1cbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtID0gc2VhcmNoVGVybTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyTGFuZ3VhZ2VzKHNlYXJjaFRlcm0pO1xuICAgICAgfSksXG4gICAgICB0YXAobGFuZ3VhZ2VzID0+IHRoaXMubm9SZXN1bHRzID0gbGFuZ3VhZ2VzLmxlbmd0aCA9PT0gMClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICAvLyBWYWxpZGF0ZSBsYW5ndWFnZSBpbnRlcnByZXRlciBlbnRyeVxuICAgIHRoaXMudmFsaWRhdGVMYW5ndWFnZUVudHJ5KCk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19MQU5HVUFHRV9JTlRFUlBSRVRFUixcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlc1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uRW50ZXJMYW5ndWFnZU1hbnVhbGx5KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXNDaGVja2JveEVuYWJsZWQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQ7XG5cbiAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgZGlzYWJsZWQsIGkuZS4gdW5jaGVja2VkLCB0aGVuIGNsZWFyIHRoZSBtYW51YWwgbGFuZ3VhZ2UgZW50cnkgRm9ybUNvbnRyb2wgb2YgYW55IHZhbHVlIHRvXG4gICAgLy8gcHJldmVudCBpdCBiZWluZyByZXRhaW5lZCBldmVuIHdoZW4gdGhlIGZpZWxkIGl0c2VsZiBpcyBoaWRkZW5cbiAgICBpZiAoIXRoaXMuaXNDaGVja2JveEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzLk1BTlVBTF9MQU5HVUFHRV9FTlRSWSkuc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRpc3BsYXlMYW5ndWFnZShsYW5ndWFnZT86IExhbmd1YWdlKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gbGFuZ3VhZ2UgPyBsYW5ndWFnZS52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVMYW5ndWFnZUVudHJ5KCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ3VhZ2VOb3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5sYW5ndWFnZU5vdEVudGVyZWRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMubGFuZ3VhZ2VDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMubGFuZ3VhZ2VFbnRlcmVkSW5Cb3RoRmllbGRzRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICAvLyBDaGVja2JveCBub3QgZW5hYmxlZCBtZWFucyB0aGUgdXNlciBoYXMgb3B0ZWQgdG8gc2VhcmNoIGZvciBhbmQgc2VsZWN0IHRoZSBsYW5ndWFnZVxuICAgIGlmICghdGhpcy5pc0NoZWNrYm94RW5hYmxlZCAmJiAhdGhpcy5mb3JtR3JvdXAuZ2V0KFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJDb250cm9sTmFtZXMuTEFOR1VBR0VfU0VBUkNIX1RFUk0pLnZhbHVlKSB7XG4gICAgICB0aGlzLmxhbmd1YWdlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyRXJyb3JNZXNzYWdlLkxBTkdVQUdFX05PVF9FTlRFUkVEO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyRXJyb3JNZXNzYWdlLkxBTkdVQUdFX05PVF9FTlRFUkVELFxuICAgICAgICBmaWVsZElkOiBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzLkxBTkdVQUdFX1NFQVJDSF9URVJNXG4gICAgICB9KTtcbiAgICB9XG4gICAgLy8gQ2hlY2tib3ggZW5hYmxlZCBtZWFucyB0aGUgdXNlciBoYXMgb3B0ZWQgdG8gZW50ZXIgdGhlIGxhbmd1YWdlIG1hbnVhbGx5XG4gICAgaWYgKHRoaXMuaXNDaGVja2JveEVuYWJsZWQpIHtcbiAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZ2V0KFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJDb250cm9sTmFtZXMuTUFOVUFMX0xBTkdVQUdFX0VOVFJZKS52YWx1ZSkge1xuICAgICAgICB0aGlzLmxhbmd1YWdlTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfTk9UX0VOVEVSRUQ7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfTk9UX0VOVEVSRUQsXG4gICAgICAgICAgZmllbGRJZDogU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcy5NQU5VQUxfTEFOR1VBR0VfRU5UUllcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzLk1BTlVBTF9MQU5HVUFHRV9FTlRSWSkudmFsdWUubGVuZ3RoID4gdGhpcy5sYW5ndWFnZU1heENoYXJMaW1pdCkge1xuICAgICAgICB0aGlzLmxhbmd1YWdlQ2hhckxpbWl0RXJyb3JNZXNzYWdlID0gU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckVycm9yTWVzc2FnZS5MQU5HVUFHRV9DSEFSX0xJTUlUX0VYQ0VFREVEO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyRXJyb3JNZXNzYWdlLkxBTkdVQUdFX0NIQVJfTElNSVRfRVhDRUVERUQsXG4gICAgICAgICAgZmllbGRJZDogU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcy5NQU5VQUxfTEFOR1VBR0VfRU5UUllcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzLkxBTkdVQUdFX1NFQVJDSF9URVJNKS52YWx1ZSkge1xuICAgICAgICAvLyBMYW5ndWFnZSBlbnRyeSBpcyBwZXJtaXR0ZWQgaW4gb25seSBvbmUgZmllbGQgYXQgYSB0aW1lXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VFbnRlcmVkSW5Cb3RoRmllbGRzRXJyb3JNZXNzYWdlID0gU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckVycm9yTWVzc2FnZS5MQU5HVUFHRV9FTlRFUkVEX0lOX0JPVEhfRklFTERTO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyRXJyb3JNZXNzYWdlLkxBTkdVQUdFX0VOVEVSRURfSU5fQk9USF9GSUVMRFMsXG4gICAgICAgICAgZmllbGRJZDogU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcy5MQU5HVUFHRV9TRUFSQ0hfVEVSTVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckxhbmd1YWdlcyhzZWFyY2hUZXJtOiBzdHJpbmcpOiBMYW5ndWFnZVtdIHtcbiAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPCB0aGlzLm1pblNlYXJjaENoYXJhY3RlcnMpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mbGFnVHlwZS5saXN0T2ZWYWx1ZXNcbiAgICAgID8gdGhpcy5mbGFnVHlwZS5saXN0T2ZWYWx1ZXMuZmlsdGVyKGxhbmd1YWdlID0+XG4gICAgICAgIC8vIElmIGEgbGFuZ3VhZ2UgaGFzIGJvdGggRW5nbGlzaCBhbmQgV2Vsc2ggdmFsdWVzLCBtYXRjaCBvbmx5IG9uIHRoZSB2YWx1ZSBhcHByb3ByaWF0ZSBmb3IgdGhlIHBhZ2UgbGFuZ3VhZ2UsXG4gICAgICAgIC8vIGkuZS4gaWYgUnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlIGlzICdjeScgdGhlbiBtYXRjaCBvbiB0aGUgdmFsdWVfY3kgcHJvcGVydHkgb25seS4gVGhpcyBpcyB0byBwcmV2ZW50XG4gICAgICAgIC8vIGNyb3NzLW1hdGNoZXMsIHdoZXJlIGEgdXNlciBlbnRlcnMgYSBzZWFyY2ggdGVybSBpbiBFbmdsaXNoIGFuZCBzZWVzIHRoZSBjb3JyZXNwb25kaW5nIFdlbHNoIHZhbHVlIChiZWNhdXNlXG4gICAgICAgIC8vIHRoZSBwYWdlIGxhbmd1YWdlIGlzIFdlbHNoKSBhbmQgdmljZSB2ZXJzYVxuICAgICAgICB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2N5JyAmJiBsYW5ndWFnZS52YWx1ZSAmJiBsYW5ndWFnZS52YWx1ZV9jeSAmJlxuICAgICAgICBsYW5ndWFnZS52YWx1ZV9jeS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSwgMCkgfHxcbiAgICAgICAgdGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgIT09ICdjeScgJiYgbGFuZ3VhZ2UudmFsdWUgJiYgbGFuZ3VhZ2UudmFsdWVfY3kgJiZcbiAgICAgICAgbGFuZ3VhZ2UudmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCksIDApIHx8XG4gICAgICAgICFsYW5ndWFnZS52YWx1ZV9jeSAmJiBsYW5ndWFnZS52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSwgMCkgfHxcbiAgICAgICAgIWxhbmd1YWdlLnZhbHVlICYmIGxhbmd1YWdlLnZhbHVlX2N5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpLCAwKSlcbiAgICAgIDogW107XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiBsYW5ndWFnZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlIHx8IGxhbmd1YWdlRW50ZXJlZEluQm90aEZpZWxkc0Vycm9yTWVzc2FnZX1cIj5cbiAgICA8aDEgY2xhc3M9XCJnb3Z1ay1sYWJlbC13cmFwcGVyXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tbVwiIFtmb3JdPVwiU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbnRyb2xOYW1lcy5MQU5HVUFHRV9TRUFSQ0hfVEVSTVwiPlxuICAgICAgICB7e2ZsYWdUeXBlIHwgZmxhZ0ZpZWxkRGlzcGxheTonbmFtZSd9fVxuICAgICAgPC9sYWJlbD5cbiAgICA8L2gxPlxuICAgIDxkaXYgaWQ9XCJsYW5ndWFnZS1zZWFyY2gtYm94LWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgIHt7c2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckhpbnQgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhdXRvLWNvbXBsZXRlLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBpZD1cImxhbmd1YWdlLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJsYW5ndWFnZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e2xhbmd1YWdlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwibGFuZ3VhZ2UtZW50ZXJlZC1pbi1ib3RoLWZpZWxkcy1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJsYW5ndWFnZUVudGVyZWRJbkJvdGhGaWVsZHNFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7bGFuZ3VhZ2VFbnRlcmVkSW5Cb3RoRmllbGRzRXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGlucHV0IGFyaWEtbGFiZWw9XCJMYW5ndWFnZSBzZWFyY2ggYm94XCIgbWF0SW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzLkxBTkdVQUdFX1NFQVJDSF9URVJNXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvU2VhcmNoTGFuZ3VhZ2VcIlxuICAgICAgICBjbGFzcz1cImdvdnVrLWlucHV0IHNlYXJjaC1sYW5ndWFnZV9faW5wdXRcIiB0eXBlPVwidGV4dFwiPlxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgY2xhc3M9XCJtYXQtYXV0b2NvbXBsZXRlLXBhbmVsLWV4dGVuZFwiIGF1dG9BY3RpdmVGaXJzdE9wdGlvbiAjYXV0b1NlYXJjaExhbmd1YWdlPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlMYW5ndWFnZVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbGFuZ3VhZ2Ugb2YgZmlsdGVyZWRMYW5ndWFnZXMkIHwgYXN5bmNcIiBbdmFsdWVdPVwibGFuZ3VhZ2VcIj5cbiAgICAgICAgICB7e2xhbmd1YWdlIHwgbGFuZ3VhZ2VJbnRlcnByZXRlckRpc3BsYXl9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwibm9SZXN1bHRzICYmIHNlYXJjaFRlcm0gJiYgc2VhcmNoVGVybS5sZW5ndGggPj0gbWluU2VhcmNoQ2hhcmFjdGVyc1wiIGRpc2FibGVkPnt7J05vIHJlc3VsdHMgZm91bmQnIHwgcnB4VHJhbnNsYXRlfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXMgZ292dWstY2hlY2tib3hlcy0tc21hbGwgZ292dWstY2hlY2tib3hlcy0tY29uZGl0aW9uYWxcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWNoZWNrYm94ZXNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cImVudGVyLWxhbmd1YWdlLW1hbnVhbGx5XCIgbmFtZT1cImVudGVyLWxhbmd1YWdlLW1hbnVhbGx5XCIgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9uRW50ZXJMYW5ndWFnZU1hbnVhbGx5KCRldmVudClcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJlbnRlci1sYW5ndWFnZS1tYW51YWxseVwiPlxuICAgICAgICAgIHt7c2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlclN0ZXAuQ0hFQ0tCT1hfTEFCRUwgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19jb25kaXRpb25hbFwiICpuZ0lmPVwiaXNDaGVja2JveEVuYWJsZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiBsYW5ndWFnZU5vdEVudGVyZWRFcnJvck1lc3NhZ2UgfHwgbGFuZ3VhZ2VDaGFyTGltaXRFcnJvck1lc3NhZ2UgfVwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsXCIgZm9yPVwibWFudWFsLWxhbmd1YWdlLWVudHJ5XCI+e3tzZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcC5JTlBVVF9MQUJFTCB8IHJweFRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICAgICAgICA8ZGl2IGlkPVwibGFuZ3VhZ2Utbm90LWVudGVyZWQtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICAqbmdJZj1cImxhbmd1YWdlTm90RW50ZXJlZEVycm9yTWVzc2FnZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7bGFuZ3VhZ2VOb3RFbnRlcmVkRXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGlkPVwibGFuZ3VhZ2UtY2hhci1saW1pdC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgICAgICpuZ0lmPVwibGFuZ3VhZ2VDaGFyTGltaXRFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e2xhbmd1YWdlQ2hhckxpbWl0RXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay1pbnB1dC0td2lkdGgtMjBcIiBpZD1cIm1hbnVhbC1sYW5ndWFnZS1lbnRyeVwiIFtuYW1lXT1cIlNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJDb250cm9sTmFtZXMuTUFOVUFMX0xBTkdVQUdFX0VOVFJZXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29udHJvbE5hbWVzLk1BTlVBTF9MQU5HVUFHRV9FTlRSWVwiPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCI+XG4gIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCI+e3snTmV4dCcgfCBycHhUcmFuc2xhdGV9fTwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=