@hmcts/ccd-case-ui-toolkit 6.18.0-welsh-release → 6.18.2

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