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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +8831 -4404
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +1 -1
  6. package/esm2015/lib/components/banners/alert/alert.component.js +7 -5
  7. package/esm2015/lib/components/banners/alert/alert.module.js +12 -4
  8. package/esm2015/lib/components/footer/footer.component.js +55 -30
  9. package/esm2015/lib/components/footer/footers.module.js +12 -4
  10. package/esm2015/lib/components/form/date-input/date-input.component.js +56 -37
  11. package/esm2015/lib/components/form/form.module.js +8 -4
  12. package/esm2015/lib/components/header/header-bar/header-bar.component.js +32 -19
  13. package/esm2015/lib/components/header/headers.module.js +6 -4
  14. package/esm2015/lib/components/header/navigation/navigation-item.component.js +9 -7
  15. package/esm2015/lib/components/header/phase/phase.component.js +20 -9
  16. package/esm2015/lib/components/tabs/tabs.component.js +8 -5
  17. package/esm2015/lib/components/tabs/tabs.module.js +6 -2
  18. package/esm2015/lib/shared/commons/case-edit-data/case-edit-validation.model.js +1 -1
  19. package/esm2015/lib/shared/components/activity/activity-banner/activity-banner.component.js +12 -9
  20. package/esm2015/lib/shared/components/activity/activity-icon/activity-icon.component.js +11 -8
  21. package/esm2015/lib/shared/components/activity/activity.component.js +15 -10
  22. package/esm2015/lib/shared/components/activity/activity.module.js +6 -2
  23. package/esm2015/lib/shared/components/case-editor/case-create/case-create.component.js +2 -2
  24. package/esm2015/lib/shared/components/case-editor/case-edit/case-edit.component.js +1 -1
  25. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +30 -26
  26. package/esm2015/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.js +2 -2
  27. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +51 -34
  28. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +111 -83
  29. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +35 -28
  30. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +51 -26
  31. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +51 -28
  32. package/esm2015/lib/shared/components/case-editor/case-progress/case-progress.component.js +2 -2
  33. package/esm2015/lib/shared/components/case-editor/services/case-edit-wizard.guard.js +3 -2
  34. package/esm2015/lib/shared/components/case-editor/services/case-flag-state.service.js +19 -0
  35. package/esm2015/lib/shared/components/case-editor/services/work-allocation.service.js +2 -2
  36. package/esm2015/lib/shared/components/case-history/case-history.component.js +89 -63
  37. package/esm2015/lib/shared/components/case-history/case-history.module.js +18 -14
  38. package/esm2015/lib/shared/components/case-list/case-list.component.js +56 -49
  39. package/esm2015/lib/shared/components/case-list/case-list.module.js +8 -4
  40. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +11 -7
  41. package/esm2015/lib/shared/components/case-timeline/case-timeline.component.js +9 -6
  42. package/esm2015/lib/shared/components/case-timeline/case-timeline.module.js +12 -8
  43. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +106 -61
  44. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +89 -69
  45. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.js +45 -23
  46. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +16 -13
  47. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +157 -117
  48. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.js +32 -20
  49. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +107 -79
  50. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +79 -49
  51. package/esm2015/lib/shared/components/case-viewer/case-view/case-view.component.js +1 -1
  52. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +37 -27
  53. package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +36 -22
  54. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.component.js +63 -40
  55. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.module.js +6 -2
  56. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.js +28 -14
  57. package/esm2015/lib/shared/components/dialogs/dialogs.module.js +6 -2
  58. package/esm2015/lib/shared/components/dialogs/document-dialog/document-dialog.component.js +28 -14
  59. package/esm2015/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.js +28 -14
  60. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.js +28 -14
  61. package/esm2015/lib/shared/components/error/callback-errors.component.js +34 -23
  62. package/esm2015/lib/shared/components/error/errors.module.js +6 -2
  63. package/esm2015/lib/shared/components/error-message/error-message.component.js +14 -11
  64. package/esm2015/lib/shared/components/error-message/error-message.module.js +8 -4
  65. package/esm2015/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.js +39 -20
  66. package/esm2015/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.js +34 -18
  67. package/esm2015/lib/shared/components/event-start/components/task-assigned/task-assigned.component.js +34 -19
  68. package/esm2015/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.js +50 -25
  69. package/esm2015/lib/shared/components/event-start/components/task-conflict/task-conflict.component.js +39 -20
  70. package/esm2015/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.js +34 -18
  71. package/esm2015/lib/shared/components/event-start/event-start.module.js +8 -4
  72. package/esm2015/lib/shared/components/event-trigger/event-trigger.component.js +27 -17
  73. package/esm2015/lib/shared/components/event-trigger/event-trigger.module.js +6 -2
  74. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.component.js +7 -5
  75. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.module.js +6 -2
  76. package/esm2015/lib/shared/components/pagination/pagination.component.js +84 -67
  77. package/esm2015/lib/shared/components/pagination/pagination.module.js +8 -4
  78. package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +50 -31
  79. package/esm2015/lib/shared/components/palette/base-field/abstract-field-read.component.js +1 -1
  80. package/esm2015/lib/shared/components/palette/base-field/field-read-label.component.js +10 -8
  81. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +5 -1
  82. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +1 -1
  83. package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +62 -37
  84. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +246 -42
  85. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +144 -73
  86. package/esm2015/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.js +181 -0
  87. package/esm2015/lib/shared/components/palette/case-flag/components/index.js +3 -1
  88. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +62 -87
  89. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.js +6 -0
  90. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +133 -101
  91. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +54 -34
  92. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +186 -113
  93. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.js +292 -0
  94. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +286 -99
  95. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +1 -1
  96. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
  97. package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +1 -1
  98. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.js +9 -0
  99. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.js +12 -0
  100. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +3 -2
  101. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +8 -3
  102. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.js +6 -0
  103. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.js +6 -0
  104. package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +8 -2
  105. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +3 -2
  106. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +2 -1
  107. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.js +6 -0
  108. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.js +6 -0
  109. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +3 -1
  110. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +3 -2
  111. package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +8 -4
  112. package/esm2015/lib/shared/components/palette/case-flag/index.js +2 -1
  113. package/esm2015/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.js +41 -0
  114. package/esm2015/lib/shared/components/palette/case-flag/pipes/index.js +5 -0
  115. package/esm2015/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.js +41 -0
  116. package/esm2015/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.js +109 -0
  117. package/esm2015/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.js +77 -0
  118. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +121 -50
  119. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +250 -141
  120. package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +16 -12
  121. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +68 -57
  122. package/esm2015/lib/shared/components/palette/complex/read-complex-field-collection-table.component.js +50 -46
  123. package/esm2015/lib/shared/components/palette/complex/read-complex-field-raw.component.js +7 -6
  124. package/esm2015/lib/shared/components/palette/complex/read-complex-field-table.component.js +22 -20
  125. package/esm2015/lib/shared/components/palette/complex/write-complex-field.component.js +5 -4
  126. package/esm2015/lib/shared/components/palette/date/write-date-field.component.js +16 -12
  127. package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +29 -17
  128. package/esm2015/lib/shared/components/palette/document/write-document-field.component.js +31 -25
  129. package/esm2015/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.js +9 -7
  130. package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +32 -20
  131. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +2 -2
  132. package/esm2015/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.js +9 -7
  133. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +27 -18
  134. package/esm2015/lib/shared/components/palette/email/write-email-field.component.js +16 -12
  135. package/esm2015/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.js +9 -7
  136. package/esm2015/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.js +19 -14
  137. package/esm2015/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.js +9 -7
  138. package/esm2015/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.js +20 -15
  139. package/esm2015/lib/shared/components/palette/history/event-log/event-log-details.component.js +87 -65
  140. package/esm2015/lib/shared/components/palette/history/event-log/event-log-table.component.js +60 -46
  141. package/esm2015/lib/shared/components/palette/index.js +3 -2
  142. package/esm2015/lib/shared/components/palette/label/label-field.component.js +24 -5
  143. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.js +1 -1
  144. package/esm2015/lib/shared/components/palette/markdown/index.js +2 -1
  145. package/esm2015/lib/shared/components/palette/markdown/markdown-component.module.js +42 -0
  146. package/esm2015/lib/shared/components/palette/markdown/markdown.component.js +4 -4
  147. package/esm2015/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.js +16 -12
  148. package/esm2015/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.js +15 -11
  149. package/esm2015/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +19 -14
  150. package/esm2015/lib/shared/components/palette/number/write-number-field.component.js +16 -12
  151. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +43 -25
  152. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +7 -6
  153. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-raw.component.js +41 -29
  154. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-table.component.js +48 -35
  155. package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +88 -50
  156. package/esm2015/lib/shared/components/palette/palette.module.js +185 -88
  157. package/esm2015/lib/shared/components/palette/palette.service.js +5 -2
  158. package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +16 -12
  159. package/esm2015/lib/shared/components/palette/query-management/__mocks__/index.js +120 -0
  160. package/esm2015/lib/shared/components/palette/query-management/components/index.js +9 -0
  161. package/esm2015/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.js +64 -0
  162. package/esm2015/lib/shared/components/palette/query-management/components/query-create/query-create.component.js +18 -0
  163. package/esm2015/lib/shared/components/palette/query-management/components/query-details/query-details.component.js +56 -0
  164. package/esm2015/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.js +150 -0
  165. package/esm2015/lib/shared/components/palette/query-management/components/query-list/query-list.component.js +175 -0
  166. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.js +67 -0
  167. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.js +214 -0
  168. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.js +108 -0
  169. package/esm2015/lib/shared/components/palette/query-management/index.js +6 -0
  170. package/esm2015/lib/shared/components/palette/query-management/models/index.js +7 -0
  171. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-message.model.js +2 -0
  172. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.js +2 -0
  173. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.js +2 -0
  174. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.js +18 -0
  175. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.js +35 -0
  176. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.js +6 -0
  177. package/esm2015/lib/shared/components/palette/query-management/read-query-management-field.component.js +83 -0
  178. package/esm2015/lib/shared/components/palette/query-management/utils/query-management.utils.js +12 -0
  179. package/esm2015/lib/shared/components/palette/query-management/write-query-management-field.component.js +45 -0
  180. package/esm2015/lib/shared/components/palette/text/read-text-field.component.js +7 -5
  181. package/esm2015/lib/shared/components/palette/text/write-text-field.component.js +16 -12
  182. package/esm2015/lib/shared/components/palette/text-area/read-text-area-field.component.js +7 -5
  183. package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +16 -12
  184. package/esm2015/lib/shared/components/palette/utils/first-error.pipe.js +22 -11
  185. package/esm2015/lib/shared/components/palette/utils/utils.module.js +12 -6
  186. package/esm2015/lib/shared/components/palette/yes-no/read-yes-no-field.component.js +7 -5
  187. package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +20 -15
  188. package/esm2015/lib/shared/components/search-filters/search-filters.component.js +60 -35
  189. package/esm2015/lib/shared/components/search-filters/search-filters.module.js +14 -10
  190. package/esm2015/lib/shared/components/search-result/search-result.component.js +132 -95
  191. package/esm2015/lib/shared/components/search-result/search-result.module.js +16 -13
  192. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +90 -52
  193. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.module.js +13 -9
  194. package/esm2015/lib/shared/domain/alert/alert-status-params.model.js +2 -0
  195. package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +17 -2
  196. package/esm2015/lib/shared/domain/case-view/case-view-event-ids.enum.js +6 -0
  197. package/esm2015/lib/shared/domain/case-view/case-view-trigger.model.js +1 -2
  198. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +3 -1
  199. package/esm2015/lib/shared/fixture/shared.test.fixture.js +2 -1
  200. package/esm2015/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.js +16 -0
  201. package/esm2015/lib/shared/pipes/generic/index.js +2 -0
  202. package/esm2015/lib/shared/pipes/index.js +3 -2
  203. package/esm2015/lib/shared/pipes/pipes.module.js +9 -5
  204. package/esm2015/lib/shared/services/alert/alert.service.js +28 -8
  205. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +9 -3
  206. package/esm2015/lib/shared/services/request/request.options.builder.js +7 -1
  207. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +10614 -6668
  208. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  209. package/lib/app.config.d.ts.map +1 -1
  210. package/lib/components/banners/alert/alert.module.d.ts +2 -1
  211. package/lib/components/banners/alert/alert.module.d.ts.map +1 -1
  212. package/lib/components/footer/footers.module.d.ts +2 -1
  213. package/lib/components/footer/footers.module.d.ts.map +1 -1
  214. package/lib/components/form/form.module.d.ts +2 -1
  215. package/lib/components/form/form.module.d.ts.map +1 -1
  216. package/lib/components/header/headers.module.d.ts +2 -1
  217. package/lib/components/header/headers.module.d.ts.map +1 -1
  218. package/lib/components/tabs/tabs.component.d.ts.map +1 -1
  219. package/lib/components/tabs/tabs.module.d.ts +2 -1
  220. package/lib/components/tabs/tabs.module.d.ts.map +1 -1
  221. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts +1 -0
  222. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
  223. package/lib/shared/components/activity/activity.module.d.ts +2 -1
  224. package/lib/shared/components/activity/activity.module.d.ts.map +1 -1
  225. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +6 -5
  226. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  227. package/lib/shared/components/case-editor/case-editor.module.d.ts +3 -2
  228. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  229. package/lib/shared/components/case-editor/services/case-edit-wizard.guard.d.ts.map +1 -1
  230. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +11 -0
  231. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -0
  232. package/lib/shared/components/case-history/case-history.module.d.ts +2 -1
  233. package/lib/shared/components/case-history/case-history.module.d.ts.map +1 -1
  234. package/lib/shared/components/case-list/case-list.module.d.ts +2 -1
  235. package/lib/shared/components/case-list/case-list.module.d.ts.map +1 -1
  236. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts +2 -1
  237. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts.map +1 -1
  238. package/lib/shared/components/case-timeline/case-timeline.module.d.ts +2 -1
  239. package/lib/shared/components/case-timeline/case-timeline.module.d.ts.map +1 -1
  240. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  241. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +3 -1
  242. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  243. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +6 -4
  244. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  245. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts +2 -1
  246. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts.map +1 -1
  247. package/lib/shared/components/dialogs/dialogs.module.d.ts +2 -1
  248. package/lib/shared/components/dialogs/dialogs.module.d.ts.map +1 -1
  249. package/lib/shared/components/error/errors.module.d.ts +2 -1
  250. package/lib/shared/components/error/errors.module.d.ts.map +1 -1
  251. package/lib/shared/components/error-message/error-message.module.d.ts +2 -1
  252. package/lib/shared/components/error-message/error-message.module.d.ts.map +1 -1
  253. package/lib/shared/components/event-start/event-start.module.d.ts +2 -1
  254. package/lib/shared/components/event-start/event-start.module.d.ts.map +1 -1
  255. package/lib/shared/components/event-trigger/event-trigger.module.d.ts +2 -1
  256. package/lib/shared/components/event-trigger/event-trigger.module.d.ts.map +1 -1
  257. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts +2 -1
  258. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts.map +1 -1
  259. package/lib/shared/components/pagination/pagination.module.d.ts +2 -1
  260. package/lib/shared/components/pagination/pagination.module.d.ts.map +1 -1
  261. package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts.map +1 -1
  262. package/lib/shared/components/palette/base-field/field-read.component.d.ts +1 -0
  263. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  264. package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
  265. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +2 -1
  266. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  267. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +20 -5
  268. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  269. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +2 -1
  270. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  271. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +28 -0
  272. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -0
  273. package/lib/shared/components/palette/case-flag/components/index.d.ts +2 -0
  274. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  275. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +4 -8
  276. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  277. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +5 -0
  278. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +1 -0
  279. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +10 -8
  280. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  281. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +2 -1
  282. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  283. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +12 -8
  284. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  285. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +27 -0
  286. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -0
  287. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +19 -9
  288. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  289. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +1 -10
  290. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  291. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +6 -0
  292. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  293. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +1 -0
  294. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  295. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +8 -0
  296. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +1 -0
  297. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +11 -0
  298. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +1 -0
  299. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +2 -1
  300. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  301. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +8 -3
  302. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  303. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +5 -0
  304. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +1 -0
  305. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +5 -0
  306. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +1 -0
  307. package/lib/shared/components/palette/case-flag/enums/index.d.ts +7 -1
  308. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  309. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +2 -1
  310. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  311. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +1 -0
  312. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  313. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +5 -0
  314. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +1 -0
  315. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +5 -0
  316. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +1 -0
  317. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +3 -1
  318. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  319. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +3 -2
  320. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  321. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +7 -3
  322. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  323. package/lib/shared/components/palette/case-flag/index.d.ts +1 -0
  324. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  325. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +19 -0
  326. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +1 -0
  327. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +5 -0
  328. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +1 -0
  329. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +18 -0
  330. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +1 -0
  331. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +25 -0
  332. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +1 -0
  333. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +21 -0
  334. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +1 -0
  335. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +11 -8
  336. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  337. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +23 -24
  338. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  339. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +3 -2
  340. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  341. package/lib/shared/components/palette/index.d.ts +2 -1
  342. package/lib/shared/components/palette/index.d.ts.map +1 -1
  343. package/lib/shared/components/palette/label/label-field.component.d.ts +2 -1
  344. package/lib/shared/components/palette/label/label-field.component.d.ts.map +1 -1
  345. package/lib/shared/components/palette/markdown/index.d.ts +1 -0
  346. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  347. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +13 -0
  348. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +1 -0
  349. package/lib/shared/components/palette/markdown/markdown.component.d.ts +3 -3
  350. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  351. package/lib/shared/components/palette/palette.module.d.ts +134 -117
  352. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  353. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  354. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +3 -0
  355. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +1 -0
  356. package/lib/shared/components/palette/query-management/components/index.d.ts +9 -0
  357. package/lib/shared/components/palette/query-management/components/index.d.ts.map +1 -0
  358. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +10 -0
  359. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +1 -0
  360. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts +9 -0
  361. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts.map +1 -0
  362. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +11 -0
  363. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -0
  364. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts +8 -0
  365. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts.map +1 -0
  366. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +18 -0
  367. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +1 -0
  368. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +17 -0
  369. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +1 -0
  370. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +8 -0
  371. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -0
  372. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +10 -0
  373. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -0
  374. package/lib/shared/components/palette/query-management/index.d.ts +6 -0
  375. package/lib/shared/components/palette/query-management/index.d.ts.map +1 -0
  376. package/lib/shared/components/palette/query-management/models/index.d.ts +7 -0
  377. package/lib/shared/components/palette/query-management/models/index.d.ts.map +1 -0
  378. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts +14 -0
  379. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts.map +1 -0
  380. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts +7 -0
  381. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts.map +1 -0
  382. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +7 -0
  383. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +1 -0
  384. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +10 -0
  385. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -0
  386. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +21 -0
  387. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -0
  388. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts +5 -0
  389. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts.map +1 -0
  390. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +17 -0
  391. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -0
  392. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +7 -0
  393. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -0
  394. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts +12 -0
  395. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts.map +1 -0
  396. package/lib/shared/components/palette/utils/first-error.pipe.d.ts +3 -0
  397. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  398. package/lib/shared/components/palette/utils/utils.module.d.ts +2 -1
  399. package/lib/shared/components/palette/utils/utils.module.d.ts.map +1 -1
  400. package/lib/shared/components/palette/yes-no/read-yes-no-field.component.d.ts.map +1 -1
  401. package/lib/shared/components/palette/yes-no/write-yes-no-field.component.d.ts.map +1 -1
  402. package/lib/shared/components/search-filters/search-filters.module.d.ts +2 -1
  403. package/lib/shared/components/search-filters/search-filters.module.d.ts.map +1 -1
  404. package/lib/shared/components/search-result/search-result.component.d.ts +1 -1
  405. package/lib/shared/components/search-result/search-result.module.d.ts +3 -2
  406. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -1
  407. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts +2 -1
  408. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts.map +1 -1
  409. package/lib/shared/domain/alert/alert-status-params.model.d.ts +6 -0
  410. package/lib/shared/domain/alert/alert-status-params.model.d.ts.map +1 -0
  411. package/lib/shared/domain/case-flag/flag-type.model.d.ts +6 -1
  412. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  413. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +5 -0
  414. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +1 -0
  415. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +0 -1
  416. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  417. package/lib/shared/domain/definition/display-context-enum.model.d.ts +3 -1
  418. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  419. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  420. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +8 -0
  421. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +1 -0
  422. package/lib/shared/pipes/generic/index.d.ts +2 -0
  423. package/lib/shared/pipes/generic/index.d.ts.map +1 -0
  424. package/lib/shared/pipes/index.d.ts +2 -1
  425. package/lib/shared/pipes/index.d.ts.map +1 -1
  426. package/lib/shared/pipes/pipes.module.d.ts +3 -2
  427. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  428. package/lib/shared/services/alert/alert.service.d.ts +8 -4
  429. package/lib/shared/services/alert/alert.service.d.ts.map +1 -1
  430. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +3 -2
  431. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  432. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  433. package/package.json +1 -1
@@ -77,21 +77,16 @@ export class CaseEventTriggerComponent {
77
77
  // Bypass validation if the CaseEventData data object contains a FlagLauncher field; this field type cannot be
78
78
  // validated like regular fields. Need to match this field id against that of the defined FlagLauncher CaseField
79
79
  // (if it exists on any CaseTab)
80
- let flagLauncherCaseField;
80
+ const flagLauncherCaseFields = [];
81
81
  if (this.caseDetails.tabs) {
82
82
  for (const tab of this.caseDetails.tabs) {
83
83
  if (tab.fields) {
84
- flagLauncherCaseField = tab.fields.find(caseField => FieldsUtils.isFlagLauncherCaseField(caseField));
85
- // Stop searching for a FlagLauncher field as soon as it is found
86
- if (flagLauncherCaseField) {
87
- break;
88
- }
84
+ flagLauncherCaseFields.push(...tab.fields.filter(caseField => FieldsUtils.isFlagLauncherCaseField(caseField)));
89
85
  }
90
86
  }
91
87
  }
92
- return flagLauncherCaseField && sanitizedEditForm.data.hasOwnProperty(flagLauncherCaseField.id)
93
- ? of(null)
94
- : this.casesService.validateCase(this.caseDetails.case_type.id, sanitizedEditForm, pageId);
88
+ const isThereAnyFlagLauncherField = flagLauncherCaseFields.length > 0;
89
+ return isThereAnyFlagLauncherField ? of(null) : this.casesService.validateCase(this.caseDetails.case_type.id, sanitizedEditForm, pageId);
95
90
  };
96
91
  }
97
92
  submitted(event) {
@@ -100,12 +95,20 @@ export class CaseEventTriggerComponent {
100
95
  .navigate([this.parentUrl])
101
96
  .then(() => {
102
97
  const caseReference = this.caseReferencePipe.transform(this.caseDetails.case_id.toString());
98
+ const replacements = { CASEREFERENCE: caseReference, NAME: this.eventTrigger.name };
103
99
  if (EventStatusService.isIncomplete(eventStatus)) {
104
- this.alertService.warning(`Case #${caseReference} has been updated with event: ${this.eventTrigger.name} `
105
- + `but the callback service cannot be completed`);
100
+ this.alertService.warning({
101
+ phrase: `Case #%CASEREFERENCE% has been updated with event: %NAME%
102
+ but the callback service cannot be completed`,
103
+ replacements
104
+ });
106
105
  }
107
106
  else {
108
- this.alertService.success(`Case #${caseReference} has been updated with event: ${this.eventTrigger.name}`, true);
107
+ this.alertService.success({
108
+ phrase: 'Case #%CASEREFERENCE% has been updated with event: %NAME%',
109
+ replacements,
110
+ preserve: true
111
+ });
109
112
  }
110
113
  });
111
114
  }
@@ -134,4 +137,4 @@ CaseEventTriggerComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEventTrigge
134
137
  templateUrl: './case-event-trigger.html'
135
138
  }]
136
139
  }], function () { return [{ type: i0.NgZone }, { type: i1.CasesService }, { type: i1.CaseNotifier }, { type: i2.Router }, { type: i3.AlertService }, { type: i2.ActivatedRoute }, { type: i4.CaseReferencePipe }, { type: i3.ActivityPollingService }]; }, null); })();
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQWtFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7SUNQL0QsOEJBQStDO0lBQzdDLGtDQUFtRjtJQUNuRix3Q0FLK0M7SUFEaEMsd01BQXNCLDBNQUFBO0lBQ1UsaUJBQWdCO0lBQ2pFLGlCQUFNOzs7SUFQVSxlQUE4QjtJQUE5QixtREFBOEIsOEJBQUE7SUFDN0IsZUFBMkI7SUFBM0IsZ0RBQTJCLDJCQUFB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TyxDQUFDLFNBQVMsYUFBYSxpQ0FBaUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUc7c0JBQ3RHLDhDQUE4QyxDQUFDLENBQUM7YUFDckQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxhQUFhLGlDQUFpQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2xIO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7U0FDekc7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQzs7a0dBNUdVLHlCQUF5Qjs4REFBekIseUJBQXlCO1FDYnRDLDBFQVFNOztRQVJBLHlDQUFvQjs7dUZEYWIseUJBQXlCO2NBSnJDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUsMkJBQTJCO2FBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBBY3Rpdml0eSwgQ2FzZUV2ZW50RGF0YSwgQ2FzZUV2ZW50VHJpZ2dlciwgQ2FzZUZpZWxkLCBDYXNlVmlldywgRGlzcGxheU1vZGUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZVJlZmVyZW5jZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBBY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLCBBbGVydFNlcnZpY2UsIEV2ZW50U3RhdHVzU2VydmljZSwgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZXZlbnQtdHJpZ2dlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLWV2ZW50LXRyaWdnZXIuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUV2ZW50VHJpZ2dlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIEJBTk5FUiA9IERpc3BsYXlNb2RlLkJBTk5FUjtcbiAgcHVibGljIGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcjtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIGFjdGl2aXR5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjYXNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBwYXJlbnRVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlUmVmZXJlbmNlUGlwZTogQ2FzZVJlZmVyZW5jZVBpcGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVBvbGxpbmdTZXJ2aWNlOiBBY3Rpdml0eVBvbGxpbmdTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZSkge1xuICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2FzZVN1YnNjcmlwdGlvbiA9IHRoaXMuY2FzZU5vdGlmaWVyLmNhc2VWaWV3LnN1YnNjcmliZShjYXNlRGV0YWlscyA9PiB7XG4gICAgICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IGNhc2VEZXRhaWxzO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5ldmVudFRyaWdnZXIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZXZlbnRUcmlnZ2VyO1xuICAgIGlmICh0aGlzLmFjdGl2aXR5UG9sbGluZ1NlcnZpY2UuaXNFbmFibGVkKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhciggKCkgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2aXR5U3Vic2NyaXB0aW9uID0gdGhpcy5wb3N0RWRpdEFjdGl2aXR5KCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnUG9zdGVkIEVESVQgYWN0aXZpdHkgYW5kIHJlc3VsdCBpczogJyArIEpTT04uc3RyaW5naWZ5KF9yZXNvbHZlZCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlLnBhcmVudC51cmwuc3Vic2NyaWJlKHBhdGggPT4ge1xuICAgICAgdGhpcy5wYXJlbnRVcmwgPSBgLyR7cGF0aC5qb2luKCcvJyl9YDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbiAmJiB0aGlzLmFjdGl2aXR5UG9sbGluZ1NlcnZpY2UuaXNFbmFibGVkKSB7XG4gICAgICB0aGlzLmFjdGl2aXR5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UgJiYgdGhpcy5jYXNlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNhc2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcG9zdEVkaXRBY3Rpdml0eSgpOiBPYnNlcnZhYmxlPEFjdGl2aXR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLnBvc3RFZGl0QWN0aXZpdHkodGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogKHNhbml0aXplZEVkaXRGb3JtOiBDYXNlRXZlbnREYXRhKSA9PiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiAoc2FuaXRpemVkRWRpdEZvcm06IENhc2VFdmVudERhdGEpID0+XG4gICAgICB0aGlzLmNhc2VzU2VydmljZS5jcmVhdGVFdmVudCh0aGlzLmNhc2VEZXRhaWxzLCBzYW5pdGl6ZWRFZGl0Rm9ybSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoKTogKHNhbml0aXplZEVkaXRGb3JtOiBDYXNlRXZlbnREYXRhLCBwYWdlSWQ6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gKHNhbml0aXplZEVkaXRGb3JtOiBDYXNlRXZlbnREYXRhLCBwYWdlSWQ6IHN0cmluZykgPT4ge1xuICAgICAgLy8gQnlwYXNzIHZhbGlkYXRpb24gaWYgdGhlIENhc2VFdmVudERhdGEgZGF0YSBvYmplY3QgY29udGFpbnMgYSBGbGFnTGF1bmNoZXIgZmllbGQ7IHRoaXMgZmllbGQgdHlwZSBjYW5ub3QgYmVcbiAgICAgIC8vIHZhbGlkYXRlZCBsaWtlIHJlZ3VsYXIgZmllbGRzLiBOZWVkIHRvIG1hdGNoIHRoaXMgZmllbGQgaWQgYWdhaW5zdCB0aGF0IG9mIHRoZSBkZWZpbmVkIEZsYWdMYXVuY2hlciBDYXNlRmllbGRcbiAgICAgIC8vIChpZiBpdCBleGlzdHMgb24gYW55IENhc2VUYWIpXG4gICAgICBsZXQgZmxhZ0xhdW5jaGVyQ2FzZUZpZWxkOiBDYXNlRmllbGQ7XG4gICAgICBpZiAodGhpcy5jYXNlRGV0YWlscy50YWJzKSB7XG4gICAgICAgIGZvciAoY29uc3QgdGFiIG9mIHRoaXMuY2FzZURldGFpbHMudGFicykge1xuICAgICAgICAgIGlmICh0YWIuZmllbGRzKSB7XG4gICAgICAgICAgICBmbGFnTGF1bmNoZXJDYXNlRmllbGQgPSB0YWIuZmllbGRzLmZpbmQoY2FzZUZpZWxkID0+IEZpZWxkc1V0aWxzLmlzRmxhZ0xhdW5jaGVyQ2FzZUZpZWxkKGNhc2VGaWVsZCkpO1xuICAgICAgICAgICAgLy8gU3RvcCBzZWFyY2hpbmcgZm9yIGEgRmxhZ0xhdW5jaGVyIGZpZWxkIGFzIHNvb24gYXMgaXQgaXMgZm91bmRcbiAgICAgICAgICAgIGlmIChmbGFnTGF1bmNoZXJDYXNlRmllbGQpIHtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBmbGFnTGF1bmNoZXJDYXNlRmllbGQgJiYgc2FuaXRpemVkRWRpdEZvcm0uZGF0YS5oYXNPd25Qcm9wZXJ0eShmbGFnTGF1bmNoZXJDYXNlRmllbGQuaWQpXG4gICAgICAgID8gb2YobnVsbClcbiAgICAgICAgOiB0aGlzLmNhc2VzU2VydmljZS52YWxpZGF0ZUNhc2UodGhpcy5jYXNlRGV0YWlscy5jYXNlX3R5cGUuaWQsIHNhbml0aXplZEVkaXRGb3JtLCBwYWdlSWQpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3VibWl0dGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudFN0YXR1czogc3RyaW5nID0gZXZlbnRbJ3N0YXR1cyddO1xuICAgIHRoaXMucm91dGVyXG4gICAgICAubmF2aWdhdGUoW3RoaXMucGFyZW50VXJsXSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2FzZVJlZmVyZW5jZSA9IHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHRoaXMuY2FzZURldGFpbHMuY2FzZV9pZC50b1N0cmluZygpKTtcbiAgICAgICAgaWYgKEV2ZW50U3RhdHVzU2VydmljZS5pc0luY29tcGxldGUoZXZlbnRTdGF0dXMpKSB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybmluZyhgQ2FzZSAjJHtjYXNlUmVmZXJlbmNlfSBoYXMgYmVlbiB1cGRhdGVkIHdpdGggZXZlbnQ6ICR7dGhpcy5ldmVudFRyaWdnZXIubmFtZX0gYFxuICAgICAgICAgICAgKyBgYnV0IHRoZSBjYWxsYmFjayBzZXJ2aWNlIGNhbm5vdCBiZSBjb21wbGV0ZWRgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKGBDYXNlICMke2Nhc2VSZWZlcmVuY2V9IGhhcyBiZWVuIHVwZGF0ZWQgd2l0aCBldmVudDogJHt0aGlzLmV2ZW50VHJpZ2dlci5uYW1lfWAsIHRydWUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLnJvdXRlci51cmwgJiYgdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdsaW5rQ2FzZXMnKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWRdLCB7IGZyYWdtZW50OiAnTGlua2VkIGNhc2VzJyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnBhcmVudFVybF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0RhdGFMb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuZXZlbnRUcmlnZ2VyICYmIHRoaXMuY2FzZURldGFpbHMpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNEYXRhTG9hZGVkKClcIiBjbGFzcz1cInNjcmVlbi05OTBcIj5cbiAgPGNjZC1hY3Rpdml0eSBbY2FzZUlkXT1cImNhc2VEZXRhaWxzLmNhc2VfaWRcIiBbZGlzcGxheU1vZGVdPVwiQkFOTkVSXCI+PC9jY2QtYWN0aXZpdHk+XG4gIDxjY2QtY2FzZS1lZGl0IFtjYXNlRGV0YWlsc109XCJjYXNlRGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgIFtzdWJtaXRdPVwic3VibWl0KClcIlxuICAgICAgICAgICAgICAgICBbdmFsaWRhdGVdPVwidmFsaWRhdGUoKVwiXG4gICAgICAgICAgICAgICAgIFtldmVudFRyaWdnZXJdPVwiZXZlbnRUcmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgKGNhbmNlbGxlZCk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgICAgICAgIChzdWJtaXR0ZWQpPVwic3VibWl0dGVkKCRldmVudClcIj48L2NjZC1jYXNlLWVkaXQ+XG48L2Rpdj5cbiJdfQ==
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQWtFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUcsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7SUNQL0QsOEJBQStDO0lBQzdDLGtDQUFtRjtJQUNuRix3Q0FLK0M7SUFEaEMsd01BQXNCLDBNQUFBO0lBQ1UsaUJBQWdCO0lBQ2pFLGlCQUFNOzs7SUFQVSxlQUE4QjtJQUE5QixtREFBOEIsOEJBQUE7SUFDN0IsZUFBMkI7SUFBM0IsZ0RBQTJCLDJCQUFB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T25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzL1N1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBBY3Rpdml0eSwgQ2FzZUV2ZW50RGF0YSwgQ2FzZUV2ZW50VHJpZ2dlciwgQ2FzZUZpZWxkLCBDYXNlVmlldywgRGlzcGxheU1vZGUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZVJlZmVyZW5jZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBBY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLCBBbGVydFNlcnZpY2UsIEV2ZW50U3RhdHVzU2VydmljZSwgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZXZlbnQtdHJpZ2dlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLWV2ZW50LXRyaWdnZXIuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUV2ZW50VHJpZ2dlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIEJBTk5FUiA9IERpc3BsYXlNb2RlLkJBTk5FUjtcbiAgcHVibGljIGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcjtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIGFjdGl2aXR5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjYXNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBwYXJlbnRVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlUmVmZXJlbmNlUGlwZTogQ2FzZVJlZmVyZW5jZVBpcGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVBvbGxpbmdTZXJ2aWNlOiBBY3Rpdml0eVBvbGxpbmdTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZSkge1xuICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2FzZVN1YnNjcmlwdGlvbiA9IHRoaXMuY2FzZU5vdGlmaWVyLmNhc2VWaWV3LnN1YnNjcmliZShjYXNlRGV0YWlscyA9PiB7XG4gICAgICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IGNhc2VEZXRhaWxzO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5ldmVudFRyaWdnZXIgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZXZlbnRUcmlnZ2VyO1xuICAgIGlmICh0aGlzLmFjdGl2aXR5UG9sbGluZ1NlcnZpY2UuaXNFbmFibGVkKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhciggKCkgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2aXR5U3Vic2NyaXB0aW9uID0gdGhpcy5wb3N0RWRpdEFjdGl2aXR5KCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZygnUG9zdGVkIEVESVQgYWN0aXZpdHkgYW5kIHJlc3VsdCBpczogJyArIEpTT04uc3RyaW5naWZ5KF9yZXNvbHZlZCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlLnBhcmVudC51cmwuc3Vic2NyaWJlKHBhdGggPT4ge1xuICAgICAgdGhpcy5wYXJlbnRVcmwgPSBgLyR7cGF0aC5qb2luKCcvJyl9YDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbiAmJiB0aGlzLmFjdGl2aXR5UG9sbGluZ1NlcnZpY2UuaXNFbmFibGVkKSB7XG4gICAgICB0aGlzLmFjdGl2aXR5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICghdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UgJiYgdGhpcy5jYXNlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmNhc2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcG9zdEVkaXRBY3Rpdml0eSgpOiBPYnNlcnZhYmxlPEFjdGl2aXR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLnBvc3RFZGl0QWN0aXZpdHkodGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogKHNhbml0aXplZEVkaXRGb3JtOiBDYXNlRXZlbnREYXRhKSA9PiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiAoc2FuaXRpemVkRWRpdEZvcm06IENhc2VFdmVudERhdGEpID0+XG4gICAgICB0aGlzLmNhc2VzU2VydmljZS5jcmVhdGVFdmVudCh0aGlzLmNhc2VEZXRhaWxzLCBzYW5pdGl6ZWRFZGl0Rm9ybSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoKTogKHNhbml0aXplZEVkaXRGb3JtOiBDYXNlRXZlbnREYXRhLCBwYWdlSWQ6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gKHNhbml0aXplZEVkaXRGb3JtOiBDYXNlRXZlbnREYXRhLCBwYWdlSWQ6IHN0cmluZykgPT4ge1xuICAgICAgLy8gQnlwYXNzIHZhbGlkYXRpb24gaWYgdGhlIENhc2VFdmVudERhdGEgZGF0YSBvYmplY3QgY29udGFpbnMgYSBGbGFnTGF1bmNoZXIgZmllbGQ7IHRoaXMgZmllbGQgdHlwZSBjYW5ub3QgYmVcbiAgICAgIC8vIHZhbGlkYXRlZCBsaWtlIHJlZ3VsYXIgZmllbGRzLiBOZWVkIHRvIG1hdGNoIHRoaXMgZmllbGQgaWQgYWdhaW5zdCB0aGF0IG9mIHRoZSBkZWZpbmVkIEZsYWdMYXVuY2hlciBDYXNlRmllbGRcbiAgICAgIC8vIChpZiBpdCBleGlzdHMgb24gYW55IENhc2VUYWIpXG4gICAgICBjb25zdCBmbGFnTGF1bmNoZXJDYXNlRmllbGRzOiBDYXNlRmllbGRbXSA9IFtdO1xuICAgICAgaWYgKHRoaXMuY2FzZURldGFpbHMudGFicykge1xuICAgICAgICBmb3IgKGNvbnN0IHRhYiBvZiB0aGlzLmNhc2VEZXRhaWxzLnRhYnMpIHtcbiAgICAgICAgICBpZiAodGFiLmZpZWxkcykge1xuICAgICAgICAgICAgZmxhZ0xhdW5jaGVyQ2FzZUZpZWxkcy5wdXNoKC4uLnRhYi5maWVsZHMuZmlsdGVyKGNhc2VGaWVsZCA9PiBGaWVsZHNVdGlscy5pc0ZsYWdMYXVuY2hlckNhc2VGaWVsZChjYXNlRmllbGQpKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzVGhlcmVBbnlGbGFnTGF1bmNoZXJGaWVsZCA9IGZsYWdMYXVuY2hlckNhc2VGaWVsZHMubGVuZ3RoID4gMDtcblxuICAgICAgcmV0dXJuIGlzVGhlcmVBbnlGbGFnTGF1bmNoZXJGaWVsZCA/IG9mKG51bGwpIDogdGhpcy5jYXNlc1NlcnZpY2UudmFsaWRhdGVDYXNlKHRoaXMuY2FzZURldGFpbHMuY2FzZV90eXBlLmlkLCBzYW5pdGl6ZWRFZGl0Rm9ybSwgcGFnZUlkKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdHRlZChldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRTdGF0dXM6IHN0cmluZyA9IGV2ZW50WydzdGF0dXMnXTtcbiAgICB0aGlzLnJvdXRlclxuICAgICAgLm5hdmlnYXRlKFt0aGlzLnBhcmVudFVybF0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhc2VSZWZlcmVuY2UgPSB0aGlzLmNhc2VSZWZlcmVuY2VQaXBlLnRyYW5zZm9ybSh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbnN0IHJlcGxhY2VtZW50cyA9IHsgQ0FTRVJFRkVSRU5DRTogY2FzZVJlZmVyZW5jZSwgTkFNRTogdGhpcy5ldmVudFRyaWdnZXIubmFtZSB9O1xuICAgICAgICBpZiAoRXZlbnRTdGF0dXNTZXJ2aWNlLmlzSW5jb21wbGV0ZShldmVudFN0YXR1cykpIHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS53YXJuaW5nKHtcbiAgICAgICAgICAgIHBocmFzZTogYENhc2UgIyVDQVNFUkVGRVJFTkNFJSBoYXMgYmVlbiB1cGRhdGVkIHdpdGggZXZlbnQ6ICVOQU1FJVxuICAgICAgICAgICAgYnV0IHRoZSBjYWxsYmFjayBzZXJ2aWNlIGNhbm5vdCBiZSBjb21wbGV0ZWRgLFxuICAgICAgICAgICAgcmVwbGFjZW1lbnRzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc3VjY2Vzcyh7XG4gICAgICAgICAgICBwaHJhc2U6ICdDYXNlICMlQ0FTRVJFRkVSRU5DRSUgaGFzIGJlZW4gdXBkYXRlZCB3aXRoIGV2ZW50OiAlTkFNRSUnLFxuICAgICAgICAgICAgcmVwbGFjZW1lbnRzLFxuICAgICAgICAgICAgcHJlc2VydmU6IHRydWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICYmIHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnbGlua0Nhc2VzJykpIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnY2FzZXMnLCAnY2FzZS1kZXRhaWxzJywgdGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkXSwgeyBmcmFnbWVudDogJ0xpbmtlZCBjYXNlcycgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5wYXJlbnRVcmxdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEYXRhTG9hZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLmV2ZW50VHJpZ2dlciAmJiB0aGlzLmNhc2VEZXRhaWxzKTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzRGF0YUxvYWRlZCgpXCIgY2xhc3M9XCJzY3JlZW4tOTkwXCI+XG4gIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJjYXNlRGV0YWlscy5jYXNlX2lkXCIgW2Rpc3BsYXlNb2RlXT1cIkJBTk5FUlwiPjwvY2NkLWFjdGl2aXR5PlxuICA8Y2NkLWNhc2UtZWRpdCBbY2FzZURldGFpbHNdPVwiY2FzZURldGFpbHNcIlxuICAgICAgICAgICAgICAgICBbc3VibWl0XT1cInN1Ym1pdCgpXCJcbiAgICAgICAgICAgICAgICAgW3ZhbGlkYXRlXT1cInZhbGlkYXRlKClcIlxuICAgICAgICAgICAgICAgICBbZXZlbnRUcmlnZ2VyXT1cImV2ZW50VHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgIChjYW5jZWxsZWQpPVwiY2FuY2VsKClcIlxuICAgICAgICAgICAgICAgICAoc3VibWl0dGVkKT1cInN1Ym1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtY2FzZS1lZGl0PlxuPC9kaXY+XG4iXX0=