@hmcts/ccd-case-ui-toolkit 5.0.29-angular11-upgrade → 5.0.31-angular11-upgrade

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 (224) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +12829 -9709
  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/banners.module.js +13 -6
  7. package/esm2015/lib/components/banners/index.js +2 -1
  8. package/esm2015/lib/components/banners/notification-banner/domain/index.js +2 -0
  9. package/esm2015/lib/components/banners/notification-banner/domain/notification-banner-config.model.js +2 -0
  10. package/esm2015/lib/components/banners/notification-banner/enums/index.js +3 -0
  11. package/esm2015/lib/components/banners/notification-banner/enums/notification-banner-style.enum.js +8 -0
  12. package/esm2015/lib/components/banners/notification-banner/enums/notification-banner-type.enum.js +8 -0
  13. package/esm2015/lib/components/banners/notification-banner/index.js +4 -0
  14. package/esm2015/lib/components/banners/notification-banner/notification-banner.component.js +130 -0
  15. package/esm2015/lib/components/banners/notification-banner/notification-banner.module.js +19 -0
  16. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +2 -7
  17. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +42 -31
  18. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +157 -153
  19. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +19 -16
  20. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.component.js +2 -4
  21. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +4 -1
  22. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +2 -5
  23. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +32 -17
  24. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +197 -104
  25. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +2 -4
  26. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +2 -5
  27. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +18 -10
  28. package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +2 -5
  29. package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +2 -6
  30. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +2 -4
  31. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +5 -1
  32. package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +145 -0
  33. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +97 -0
  34. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +148 -0
  35. package/esm2015/lib/shared/components/palette/case-flag/components/index.js +9 -0
  36. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +200 -0
  37. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +295 -0
  38. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +188 -0
  39. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +251 -0
  40. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +192 -0
  41. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +2 -0
  42. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +2 -0
  43. package/esm2015/lib/shared/components/palette/case-flag/domain/index.js +4 -0
  44. package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +2 -0
  45. package/esm2015/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.js +6 -0
  46. package/esm2015/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.js +6 -0
  47. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +7 -0
  48. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.js +6 -0
  49. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +12 -0
  50. package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +14 -0
  51. package/esm2015/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.js +7 -0
  52. package/esm2015/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.js +8 -0
  53. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +6 -0
  54. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.js +6 -0
  55. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +7 -0
  56. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +6 -0
  57. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +6 -0
  58. package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +14 -0
  59. package/esm2015/lib/shared/components/palette/case-flag/index.js +6 -0
  60. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +152 -0
  61. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +455 -0
  62. package/esm2015/lib/shared/components/palette/complex/read-complex-field.component.js +2 -6
  63. package/esm2015/lib/shared/components/palette/date/write-date-container-field.component.js +2 -6
  64. package/esm2015/lib/shared/components/palette/history/case-history-viewer-field.component.js +2 -3
  65. package/esm2015/lib/shared/components/palette/history/event-log/event-log.component.js +2 -5
  66. package/esm2015/lib/shared/components/palette/index.js +2 -1
  67. package/esm2015/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.js +4 -4
  68. package/esm2015/lib/shared/components/palette/label/label-field.component.js +2 -4
  69. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +2 -5
  70. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +2 -3
  71. package/esm2015/lib/shared/components/palette/order-summary/write-order-summary-field.component.js +2 -3
  72. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field.component.js +2 -5
  73. package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +2 -6
  74. package/esm2015/lib/shared/components/palette/palette.module.js +69 -17
  75. package/esm2015/lib/shared/components/palette/palette.service.js +5 -1
  76. package/esm2015/lib/shared/components/search-result/search-result.component.js +45 -50
  77. package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +13 -0
  78. package/esm2015/lib/shared/domain/case-flag/hmcts-service-detail.model.js +9 -0
  79. package/esm2015/lib/shared/domain/case-flag/index.js +3 -0
  80. package/esm2015/lib/shared/domain/case-view/case-view.model.js +1 -1
  81. package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
  82. package/esm2015/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.js +2 -2
  83. package/esm2015/lib/shared/services/addresses/address-parser.js +6 -6
  84. package/esm2015/lib/shared/services/addresses/address-type.enum.js +7 -0
  85. package/esm2015/lib/shared/services/addresses/addresses.service.js +3 -5
  86. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +75 -0
  87. package/esm2015/lib/shared/services/case-flag/index.js +3 -0
  88. package/esm2015/lib/shared/services/case-flag/refdata-case-flag-type.enum.js +6 -0
  89. package/esm2015/lib/shared/services/fields/fields.utils.js +220 -5
  90. package/esm2015/lib/shared/services/form/form-value.service.js +100 -73
  91. package/esm2015/lib/shared/services/index.js +2 -1
  92. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +13996 -11169
  93. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  94. package/lib/app.config.d.ts +2 -0
  95. package/lib/app.config.d.ts.map +1 -1
  96. package/lib/components/banners/banners.module.d.ts +2 -1
  97. package/lib/components/banners/banners.module.d.ts.map +1 -1
  98. package/lib/components/banners/index.d.ts +1 -0
  99. package/lib/components/banners/index.d.ts.map +1 -1
  100. package/lib/components/banners/notification-banner/domain/index.d.ts +2 -0
  101. package/lib/components/banners/notification-banner/domain/index.d.ts.map +1 -0
  102. package/lib/components/banners/notification-banner/domain/notification-banner-config.model.d.ts +13 -0
  103. package/lib/components/banners/notification-banner/domain/notification-banner-config.model.d.ts.map +1 -0
  104. package/lib/components/banners/notification-banner/enums/index.d.ts +3 -0
  105. package/lib/components/banners/notification-banner/enums/index.d.ts.map +1 -0
  106. package/lib/components/banners/notification-banner/enums/notification-banner-style.enum.d.ts +7 -0
  107. package/lib/components/banners/notification-banner/enums/notification-banner-style.enum.d.ts.map +1 -0
  108. package/lib/components/banners/notification-banner/enums/notification-banner-type.enum.d.ts +7 -0
  109. package/lib/components/banners/notification-banner/enums/notification-banner-type.enum.d.ts.map +1 -0
  110. package/lib/components/banners/notification-banner/index.d.ts +4 -0
  111. package/lib/components/banners/notification-banner/index.d.ts.map +1 -0
  112. package/lib/components/banners/notification-banner/notification-banner.component.d.ts +13 -0
  113. package/lib/components/banners/notification-banner/notification-banner.component.d.ts.map +1 -0
  114. package/lib/components/banners/notification-banner/notification-banner.module.d.ts +9 -0
  115. package/lib/components/banners/notification-banner/notification-banner.module.d.ts.map +1 -0
  116. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +11 -5
  117. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  118. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +14 -25
  119. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  120. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +6 -10
  121. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  122. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +18 -4
  123. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  124. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  125. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  126. package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
  127. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +25 -0
  128. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -0
  129. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +20 -0
  130. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -0
  131. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +12 -0
  132. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -0
  133. package/lib/shared/components/palette/case-flag/components/index.d.ts +9 -0
  134. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -0
  135. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +28 -0
  136. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -0
  137. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +39 -0
  138. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -0
  139. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +26 -0
  140. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -0
  141. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +40 -0
  142. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -0
  143. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +26 -0
  144. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -0
  145. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +18 -0
  146. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -0
  147. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +47 -0
  148. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -0
  149. package/lib/shared/components/palette/case-flag/domain/index.d.ts +4 -0
  150. package/lib/shared/components/palette/case-flag/domain/index.d.ts.map +1 -0
  151. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +5 -0
  152. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -0
  153. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts +5 -0
  154. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts.map +1 -0
  155. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts +5 -0
  156. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts.map +1 -0
  157. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +6 -0
  158. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -0
  159. package/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.d.ts +5 -0
  160. package/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.d.ts.map +1 -0
  161. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +11 -0
  162. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -0
  163. package/lib/shared/components/palette/case-flag/enums/index.d.ts +14 -0
  164. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -0
  165. package/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.d.ts +6 -0
  166. package/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.d.ts.map +1 -0
  167. package/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.d.ts +7 -0
  168. package/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.d.ts.map +1 -0
  169. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +5 -0
  170. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -0
  171. package/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.d.ts +5 -0
  172. package/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.d.ts.map +1 -0
  173. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +6 -0
  174. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -0
  175. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +5 -0
  176. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -0
  177. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +5 -0
  178. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -0
  179. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +12 -0
  180. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -0
  181. package/lib/shared/components/palette/case-flag/index.d.ts +6 -0
  182. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -0
  183. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +27 -0
  184. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -0
  185. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +61 -0
  186. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -0
  187. package/lib/shared/components/palette/index.d.ts +1 -0
  188. package/lib/shared/components/palette/index.d.ts.map +1 -1
  189. package/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.d.ts +3 -3
  190. package/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.d.ts.map +1 -1
  191. package/lib/shared/components/palette/palette.module.d.ts +94 -84
  192. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  193. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  194. package/lib/shared/domain/case-flag/flag-type.model.d.ts +21 -0
  195. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -0
  196. package/lib/shared/domain/case-flag/hmcts-service-detail.model.d.ts +17 -0
  197. package/lib/shared/domain/case-flag/hmcts-service-detail.model.d.ts.map +1 -0
  198. package/lib/shared/domain/case-flag/index.d.ts +3 -0
  199. package/lib/shared/domain/case-flag/index.d.ts.map +1 -0
  200. package/lib/shared/domain/case-view/case-view.model.d.ts +2 -0
  201. package/lib/shared/domain/case-view/case-view.model.d.ts.map +1 -1
  202. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  203. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  204. package/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.d.ts.map +1 -1
  205. package/lib/shared/services/addresses/address-type.enum.d.ts +6 -0
  206. package/lib/shared/services/addresses/address-type.enum.d.ts.map +1 -0
  207. package/lib/shared/services/addresses/addresses.service.d.ts +0 -3
  208. package/lib/shared/services/addresses/addresses.service.d.ts.map +1 -1
  209. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +31 -0
  210. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -0
  211. package/lib/shared/services/case-flag/index.d.ts +3 -0
  212. package/lib/shared/services/case-flag/index.d.ts.map +1 -0
  213. package/lib/shared/services/case-flag/refdata-case-flag-type.enum.d.ts +5 -0
  214. package/lib/shared/services/case-flag/refdata-case-flag-type.enum.d.ts.map +1 -0
  215. package/lib/shared/services/fields/fields.utils.d.ts +41 -8
  216. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  217. package/lib/shared/services/form/form-value.service.d.ts +20 -19
  218. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  219. package/lib/shared/services/index.d.ts +1 -0
  220. package/lib/shared/services/index.d.ts.map +1 -1
  221. package/package.json +1 -1
  222. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page-text.enum.js +0 -11
  223. package/lib/shared/components/case-editor/case-edit-page/case-edit-page-text.enum.d.ts +0 -10
  224. package/lib/shared/components/case-editor/case-edit-page/case-edit-page-text.enum.d.ts.map +0 -1
@@ -0,0 +1,455 @@
1
+ import { Component } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { ActivatedRoute } from '@angular/router';
4
+ import { FieldsUtils } from '../../../services/fields';
5
+ import { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';
6
+ import { CaseFlagFieldState, CaseFlagStatus, CaseFlagText } from './enums';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/router";
9
+ function WriteCaseFlagFieldComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
10
+ const _r6 = i0.ɵɵgetCurrentView();
11
+ i0.ɵɵelementStart(0, "div", 5);
12
+ i0.ɵɵelementStart(1, "ul", 6);
13
+ i0.ɵɵelementStart(2, "li");
14
+ i0.ɵɵelementStart(3, "a", 7);
15
+ i0.ɵɵlistener("click", function WriteCaseFlagFieldComponent_div_0_div_3_Template_a_click_3_listener() { i0.ɵɵrestoreView(_r6); const errorMessage_r4 = ctx.$implicit; const ctx_r5 = i0.ɵɵnextContext(2); return ctx_r5.navigateToErrorElement(errorMessage_r4.fieldId); });
16
+ i0.ɵɵtext(4);
17
+ i0.ɵɵelementEnd();
18
+ i0.ɵɵelementEnd();
19
+ i0.ɵɵelementEnd();
20
+ i0.ɵɵelementEnd();
21
+ } if (rf & 2) {
22
+ const errorMessage_r4 = ctx.$implicit;
23
+ i0.ɵɵadvance(4);
24
+ i0.ɵɵtextInterpolate(errorMessage_r4.description);
25
+ } }
26
+ function WriteCaseFlagFieldComponent_div_0_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelementStart(0, "div", 2);
28
+ i0.ɵɵelementStart(1, "h2", 3);
29
+ i0.ɵɵtext(2, " There is a problem ");
30
+ i0.ɵɵelementEnd();
31
+ i0.ɵɵtemplate(3, WriteCaseFlagFieldComponent_div_0_div_3_Template, 5, 1, "div", 4);
32
+ i0.ɵɵelementEnd();
33
+ } if (rf & 2) {
34
+ const ctx_r0 = i0.ɵɵnextContext();
35
+ i0.ɵɵadvance(3);
36
+ i0.ɵɵproperty("ngForOf", ctx_r0.errorMessages);
37
+ } }
38
+ function WriteCaseFlagFieldComponent_div_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
39
+ const _r12 = i0.ɵɵgetCurrentView();
40
+ i0.ɵɵelementContainerStart(0);
41
+ i0.ɵɵelementStart(1, "ccd-select-flag-location", 12);
42
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_4_Template_ccd_select_flag_location_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(2); return ctx_r11.onCaseFlagStateEmitted($event); });
43
+ i0.ɵɵelementEnd();
44
+ i0.ɵɵelementContainerEnd();
45
+ } if (rf & 2) {
46
+ const ctx_r7 = i0.ɵɵnextContext(2);
47
+ i0.ɵɵadvance(1);
48
+ i0.ɵɵproperty("formGroup", ctx_r7.caseFlagParentFormGroup)("flagsData", ctx_r7.flagsData);
49
+ } }
50
+ function WriteCaseFlagFieldComponent_div_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
51
+ const _r14 = i0.ɵɵgetCurrentView();
52
+ i0.ɵɵelementContainerStart(0);
53
+ i0.ɵɵelementStart(1, "ccd-select-flag-type", 13);
54
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_5_Template_ccd_select_flag_type_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return ctx_r13.onCaseFlagStateEmitted($event); })("flagCommentsOptionalEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_5_Template_ccd_select_flag_type_flagCommentsOptionalEmitter_1_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r15 = i0.ɵɵnextContext(2); return ctx_r15.onFlagCommentsOptionalEmitted($event); });
55
+ i0.ɵɵelementEnd();
56
+ i0.ɵɵelementContainerEnd();
57
+ } if (rf & 2) {
58
+ const ctx_r8 = i0.ɵɵnextContext(2);
59
+ i0.ɵɵadvance(1);
60
+ i0.ɵɵproperty("formGroup", ctx_r8.caseFlagParentFormGroup)("jurisdiction", ctx_r8.jurisdiction);
61
+ } }
62
+ function WriteCaseFlagFieldComponent_div_1_ng_container_6_Template(rf, ctx) { if (rf & 1) {
63
+ const _r17 = i0.ɵɵgetCurrentView();
64
+ i0.ɵɵelementContainerStart(0);
65
+ i0.ɵɵelementStart(1, "ccd-search-language-interpreter", 14);
66
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_6_Template_ccd_search_language_interpreter_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(2); return ctx_r16.onCaseFlagStateEmitted($event); });
67
+ i0.ɵɵelementEnd();
68
+ i0.ɵɵelementContainerEnd();
69
+ } if (rf & 2) {
70
+ const ctx_r9 = i0.ɵɵnextContext(2);
71
+ i0.ɵɵadvance(1);
72
+ i0.ɵɵproperty("formGroup", ctx_r9.caseFlagParentFormGroup)("languages", ctx_r9.listOfValues)("flagCode", ctx_r9.flagCode);
73
+ } }
74
+ function WriteCaseFlagFieldComponent_div_1_ng_container_7_Template(rf, ctx) { if (rf & 1) {
75
+ const _r19 = i0.ɵɵgetCurrentView();
76
+ i0.ɵɵelementContainerStart(0);
77
+ i0.ɵɵelementStart(1, "ccd-add-comments", 15);
78
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_7_Template_ccd_add_comments_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(2); return ctx_r18.onCaseFlagStateEmitted($event); });
79
+ i0.ɵɵelementEnd();
80
+ i0.ɵɵelementContainerEnd();
81
+ } if (rf & 2) {
82
+ const ctx_r10 = i0.ɵɵnextContext(2);
83
+ i0.ɵɵadvance(1);
84
+ i0.ɵɵproperty("formGroup", ctx_r10.caseFlagParentFormGroup)("optional", ctx_r10.flagCommentsOptional);
85
+ } }
86
+ const _c0 = function (a0) { return { "form-group-error": a0 }; };
87
+ function WriteCaseFlagFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
88
+ i0.ɵɵelementStart(0, "div", 8);
89
+ i0.ɵɵelementStart(1, "div", 9);
90
+ i0.ɵɵelementStart(2, "div", 10);
91
+ i0.ɵɵtext(3);
92
+ i0.ɵɵelementEnd();
93
+ i0.ɵɵtemplate(4, WriteCaseFlagFieldComponent_div_1_ng_container_4_Template, 2, 2, "ng-container", 11);
94
+ i0.ɵɵtemplate(5, WriteCaseFlagFieldComponent_div_1_ng_container_5_Template, 2, 2, "ng-container", 11);
95
+ i0.ɵɵtemplate(6, WriteCaseFlagFieldComponent_div_1_ng_container_6_Template, 2, 3, "ng-container", 11);
96
+ i0.ɵɵtemplate(7, WriteCaseFlagFieldComponent_div_1_ng_container_7_Template, 2, 2, "ng-container", 11);
97
+ i0.ɵɵelementEnd();
98
+ i0.ɵɵelementEnd();
99
+ } if (rf & 2) {
100
+ const ctx_r1 = i0.ɵɵnextContext();
101
+ i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
102
+ i0.ɵɵadvance(1);
103
+ i0.ɵɵproperty("ngSwitch", ctx_r1.fieldState);
104
+ i0.ɵɵadvance(1);
105
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0, ctx_r1.errorMessages.length > 0));
106
+ i0.ɵɵadvance(1);
107
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.createFlagCaption, " ");
108
+ i0.ɵɵadvance(1);
109
+ i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagFieldState.FLAG_LOCATION);
110
+ i0.ɵɵadvance(1);
111
+ i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagFieldState.FLAG_TYPE);
112
+ i0.ɵɵadvance(1);
113
+ i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagFieldState.FLAG_LANGUAGE_INTERPRETER);
114
+ i0.ɵɵadvance(1);
115
+ i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagFieldState.FLAG_COMMENTS);
116
+ } }
117
+ function WriteCaseFlagFieldComponent_div_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {
118
+ const _r23 = i0.ɵɵgetCurrentView();
119
+ i0.ɵɵelementContainerStart(0);
120
+ i0.ɵɵelementStart(1, "ccd-manage-case-flags", 16);
121
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_2_ng_container_2_Template_ccd_manage_case_flags_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(2); return ctx_r22.onCaseFlagStateEmitted($event); });
122
+ i0.ɵɵelementEnd();
123
+ i0.ɵɵelementContainerEnd();
124
+ } if (rf & 2) {
125
+ const ctx_r20 = i0.ɵɵnextContext(2);
126
+ i0.ɵɵadvance(1);
127
+ i0.ɵɵproperty("formGroup", ctx_r20.caseFlagParentFormGroup)("flagsData", ctx_r20.flagsData)("caseTitle", ctx_r20.caseTitle);
128
+ } }
129
+ function WriteCaseFlagFieldComponent_div_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
130
+ const _r25 = i0.ɵɵgetCurrentView();
131
+ i0.ɵɵelementContainerStart(0);
132
+ i0.ɵɵelementStart(1, "ccd-update-flag", 17);
133
+ i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_2_ng_container_3_Template_ccd_update_flag_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r25); const ctx_r24 = i0.ɵɵnextContext(2); return ctx_r24.onCaseFlagStateEmitted($event); });
134
+ i0.ɵɵelementEnd();
135
+ i0.ɵɵelementContainerEnd();
136
+ } if (rf & 2) {
137
+ const ctx_r21 = i0.ɵɵnextContext(2);
138
+ i0.ɵɵadvance(1);
139
+ i0.ɵɵproperty("formGroup", ctx_r21.caseFlagParentFormGroup)("selectedFlag", ctx_r21.selectedFlag);
140
+ } }
141
+ function WriteCaseFlagFieldComponent_div_2_Template(rf, ctx) { if (rf & 1) {
142
+ i0.ɵɵelementStart(0, "div", 8);
143
+ i0.ɵɵelementStart(1, "div", 9);
144
+ i0.ɵɵtemplate(2, WriteCaseFlagFieldComponent_div_2_ng_container_2_Template, 2, 3, "ng-container", 11);
145
+ i0.ɵɵtemplate(3, WriteCaseFlagFieldComponent_div_2_ng_container_3_Template, 2, 2, "ng-container", 11);
146
+ i0.ɵɵelementEnd();
147
+ i0.ɵɵelementEnd();
148
+ } if (rf & 2) {
149
+ const ctx_r2 = i0.ɵɵnextContext();
150
+ i0.ɵɵproperty("formGroup", ctx_r2.formGroup);
151
+ i0.ɵɵadvance(1);
152
+ i0.ɵɵproperty("ngSwitch", ctx_r2.fieldState);
153
+ i0.ɵɵadvance(1);
154
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS);
155
+ i0.ɵɵadvance(1);
156
+ i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_UPDATE);
157
+ } }
158
+ export class WriteCaseFlagFieldComponent extends AbstractFieldWriteComponent {
159
+ constructor(route) {
160
+ super();
161
+ this.route = route;
162
+ this.caseFlagFieldState = CaseFlagFieldState;
163
+ this.errorMessages = [];
164
+ this.caseFlagParentFormGroup = new FormGroup({});
165
+ this.flagCommentsOptional = false;
166
+ this.listOfValues = null;
167
+ this.allCaseFlagStagesCompleted = false;
168
+ this.updateMode = '#ARGUMENT(UPDATE)';
169
+ // Code for "Other" flag type as defined in Reference Data
170
+ this.otherFlagTypeCode = 'OT0001';
171
+ this.caseNameMissing = 'Case name missing';
172
+ }
173
+ ngOnInit() {
174
+ // Check for existing FlagLauncher control in parent and remove it - this is the only way to ensure its invalidity
175
+ // is set correctly at the start, when the component is reloaded and the control is re-registered. Otherwise, the
176
+ // validator state gets carried over
177
+ if (this.formGroup && this.formGroup.get(this.caseField.id)) {
178
+ this.formGroup.removeControl(this.caseField.id);
179
+ }
180
+ // From this point, this.formGroup refers to the FormGroup for the FlagLauncher field, not the parent FormGroup
181
+ this.formGroup = this.registerControl(new FormGroup({}, {
182
+ validators: (_) => {
183
+ if (!this.allCaseFlagStagesCompleted) {
184
+ // Return an error to mark the FormGroup as invalid if not all Case Flag stages have been completed
185
+ return { notAllCaseFlagStagesCompleted: true };
186
+ }
187
+ return null;
188
+ }
189
+ }), true);
190
+ this.createFlagCaption = CaseFlagText.CAPTION;
191
+ // Get the jurisdiction from the CaseView object in the snapshot data (required for retrieving the available flag
192
+ // types for a case)
193
+ if (this.route.snapshot.data.case && this.route.snapshot.data.case.case_type &&
194
+ this.route.snapshot.data.case.case_type.jurisdiction) {
195
+ this.jurisdiction = this.route.snapshot.data.case.case_type.jurisdiction.id;
196
+ }
197
+ // Extract all flags-related data from the CaseEventTrigger object in the snapshot data
198
+ if (this.route.snapshot.data.eventTrigger && this.route.snapshot.data.eventTrigger.case_fields) {
199
+ this.flagsData = (this.route.snapshot.data.eventTrigger.case_fields)
200
+ .reduce((flags, caseField) => {
201
+ return FieldsUtils.extractFlagsDataFromCaseField(flags, caseField, caseField.id, caseField);
202
+ }, []);
203
+ // Set boolean indicating the display_context_parameter is "update"
204
+ this.isDisplayContextParameterUpdate =
205
+ this.setDisplayContextParameterUpdate((this.route.snapshot.data.eventTrigger.case_fields));
206
+ // Set starting field state
207
+ this.fieldState = this.isDisplayContextParameterUpdate ? CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : CaseFlagFieldState.FLAG_LOCATION;
208
+ // Get case title, to be used by child components
209
+ this.caseTitle = this.caseNameMissing;
210
+ }
211
+ }
212
+ setDisplayContextParameterUpdate(caseFields) {
213
+ return caseFields.some(caseField => FieldsUtils.isFlagLauncherCaseField(caseField) && caseField.display_context_parameter === this.updateMode);
214
+ }
215
+ onCaseFlagStateEmitted(caseFlagState) {
216
+ // If the current state is CaseFlagFieldState.FLAG_LOCATION and a flag location (a Flags instance) has been selected,
217
+ // set the parent Case Flag FormGroup for this component's children by using the provided pathToFlagsFormGroup, and
218
+ // set the selected flag location on this component
219
+ if (caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_LOCATION
220
+ && caseFlagState.selectedFlagsLocation
221
+ && caseFlagState.selectedFlagsLocation.pathToFlagsFormGroup) {
222
+ this.setCaseFlagParentFormGroup(caseFlagState.selectedFlagsLocation.pathToFlagsFormGroup);
223
+ this.selectedFlagsLocation = caseFlagState.selectedFlagsLocation;
224
+ }
225
+ // If the current state is CaseFlagFieldState.FLAG_TYPE, cache the flag name, path, hearing relevant indicator, code,
226
+ // and "list of values" (currently applicable to language flag types)
227
+ if (caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_TYPE) {
228
+ this.flagName = caseFlagState.flagName;
229
+ this.flagPath = caseFlagState.flagPath;
230
+ this.hearingRelevantFlag = caseFlagState.hearingRelevantFlag;
231
+ this.flagCode = caseFlagState.flagCode;
232
+ this.listOfValues = caseFlagState.listOfValues;
233
+ }
234
+ // If the current state is CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS and a flag has been selected, set the parent
235
+ // Case Flag FormGroup for this component's children by using the provided pathToFlagsFormGroup
236
+ if (caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS
237
+ && caseFlagState.selectedFlag
238
+ && caseFlagState.selectedFlag.pathToFlagsFormGroup) {
239
+ this.setCaseFlagParentFormGroup(caseFlagState.selectedFlag.pathToFlagsFormGroup);
240
+ }
241
+ this.errorMessages = caseFlagState.errorMessages;
242
+ this.selectedFlag = caseFlagState.selectedFlag;
243
+ // Validation succeeded; proceed to next state or final review stage ("Check your answers")
244
+ if (this.errorMessages.length === 0) {
245
+ // If the current state is CaseFlagFieldState.FLAG_COMMENTS or CaseFlagFieldState.FLAG_UPDATE, move to final
246
+ // review stage
247
+ if (caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_COMMENTS ||
248
+ caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE) {
249
+ this.moveToFinalReviewStage();
250
+ // Don't move to next state if current state is CaseFlagFieldState.FLAG_TYPE and the flag type is a parent - this
251
+ // means the user needs to select from the next set of flag types before they can move on
252
+ }
253
+ else if (!caseFlagState.isParentFlagType) {
254
+ // Proceed to next state
255
+ this.proceedToNextState();
256
+ }
257
+ }
258
+ }
259
+ proceedToNextState() {
260
+ if (!this.isAtFinalState()) {
261
+ // Skip the "language interpreter" state if current state is CaseFlagFieldState.FLAG_TYPE and the flag type doesn't
262
+ // have a "list of values" - currently, this is present only for those flag types that require language interpreter
263
+ // selection
264
+ if (this.fieldState === CaseFlagFieldState.FLAG_TYPE && !this.listOfValues) {
265
+ this.fieldState = CaseFlagFieldState.FLAG_COMMENTS;
266
+ }
267
+ else {
268
+ this.fieldState++;
269
+ }
270
+ }
271
+ }
272
+ setFlagsCaseFieldValue() {
273
+ // tslint:disable-next-line: switch-default
274
+ switch (this.fieldState) {
275
+ case CaseFlagFieldState.FLAG_COMMENTS:
276
+ this.addFlagToCollection();
277
+ break;
278
+ case CaseFlagFieldState.FLAG_UPDATE:
279
+ this.updateFlagInCollection();
280
+ break;
281
+ }
282
+ }
283
+ addFlagToCollection() {
284
+ // Ensure no more than one new flag is being added at a time, by iterating through each Flags case field and removing
285
+ // any previous entry from the details array where that entry has no id (hence it is new - and there should be only
286
+ // one such entry). (This scenario occurs if the user repeats the Case Flag creation journey by using the "Change"
287
+ // link and selects either the same flag location as before or a different one.)
288
+ this.flagsData.forEach(instance => {
289
+ // Use the pathToFlagsFormGroup property for each Flags case field to drill down to the correct part of the
290
+ // CaseField value to remove the new value from
291
+ let value = instance.caseField.value;
292
+ const pathToValue = instance.pathToFlagsFormGroup;
293
+ // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
294
+ if (pathToValue.indexOf('.') > -1) {
295
+ pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach(part => value = value[part]);
296
+ }
297
+ if (value && value.details && value.details.length > 0) {
298
+ const indexOfNewFlagDetail = value.details.findIndex(element => !element.hasOwnProperty('id'));
299
+ if (indexOfNewFlagDetail > -1) {
300
+ value.details.splice(indexOfNewFlagDetail, 1);
301
+ }
302
+ }
303
+ });
304
+ let flagsCaseFieldValue = this.selectedFlagsLocation.caseField.value;
305
+ // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the
306
+ // CaseField value to apply changes to
307
+ const path = this.selectedFlagsLocation.pathToFlagsFormGroup;
308
+ // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
309
+ if (path.indexOf('.') > -1) {
310
+ path.slice(path.indexOf('.') + 1).split('.').forEach(part => flagsCaseFieldValue = flagsCaseFieldValue[part]);
311
+ }
312
+ if (flagsCaseFieldValue) {
313
+ // Create a details array if one does not exist
314
+ if (!flagsCaseFieldValue.hasOwnProperty('details')) {
315
+ flagsCaseFieldValue.details = [];
316
+ }
317
+ // Populate new FlagDetail instance and add to the Flags data within the CaseField instance of the selected flag
318
+ // location
319
+ flagsCaseFieldValue.details.push({ value: this.populateNewFlagDetailInstance() });
320
+ }
321
+ }
322
+ updateFlagInCollection() {
323
+ // Ensure no more than one flag is being updated at a time, by iterating through each Flags case field and resetting
324
+ // the comments, status, and date/time modified (if present) for each entry in the details array, with original values
325
+ // from the corresponding formatted_value property. (This scenario occurs if the user repeats the Manage Case Flag
326
+ // journey by using the "Change" link and selects a different flag to update.)
327
+ this.flagsData.forEach(instance => {
328
+ // Use the pathToFlagsFormGroup property for each Flags case field to drill down to the correct part of the
329
+ // CaseField value for which to restore the original values
330
+ let value = instance.caseField.value;
331
+ let formattedValue = instance.caseField.formatted_value;
332
+ const pathToValue = instance.pathToFlagsFormGroup;
333
+ // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
334
+ if (pathToValue.indexOf('.') > -1) {
335
+ pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach(part => {
336
+ value = value[part];
337
+ if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
338
+ formattedValue = formattedValue[part];
339
+ }
340
+ });
341
+ }
342
+ if (value && value.details && value.details.length > 0 && formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
343
+ value.details.forEach(flagDetail => {
344
+ const originalFlagDetail = formattedValue.details.find(detail => detail.id === flagDetail.id);
345
+ if (originalFlagDetail) {
346
+ flagDetail.value.flagComment = originalFlagDetail.value.flagComment
347
+ ? originalFlagDetail.value.flagComment
348
+ : null;
349
+ flagDetail.value.status = originalFlagDetail.value.status;
350
+ flagDetail.value.dateTimeModified = originalFlagDetail.value.dateTimeModified
351
+ ? originalFlagDetail.value.dateTimeModified
352
+ : null;
353
+ }
354
+ });
355
+ }
356
+ });
357
+ let flagsCaseFieldValue = this.selectedFlag.caseField.value;
358
+ // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the
359
+ // CaseField value to apply changes to
360
+ const path = this.selectedFlag.pathToFlagsFormGroup;
361
+ // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
362
+ if (path.indexOf('.') > -1) {
363
+ path.slice(path.indexOf('.') + 1).split('.').forEach(part => flagsCaseFieldValue = flagsCaseFieldValue[part]);
364
+ }
365
+ if (flagsCaseFieldValue) {
366
+ const flagDetailToUpdate = flagsCaseFieldValue.details.find(detail => detail.id === this.selectedFlag.flagDetailDisplay.flagDetail.id);
367
+ if (flagDetailToUpdate) {
368
+ flagDetailToUpdate.value.flagComment = this.caseFlagParentFormGroup.value.flagComments
369
+ ? this.caseFlagParentFormGroup.value.flagComments
370
+ : null;
371
+ flagDetailToUpdate.value.status = this.selectedFlag.flagDetailDisplay.flagDetail.status;
372
+ flagDetailToUpdate.value.dateTimeModified = new Date().toISOString();
373
+ }
374
+ }
375
+ }
376
+ isAtFinalState() {
377
+ return this.isDisplayContextParameterUpdate
378
+ ? this.fieldState === CaseFlagFieldState.FLAG_UPDATE
379
+ : this.fieldState === CaseFlagFieldState.FLAG_COMMENTS;
380
+ }
381
+ navigateToErrorElement(elementId) {
382
+ if (elementId) {
383
+ const htmlElement = document.getElementById(elementId);
384
+ if (htmlElement) {
385
+ htmlElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
386
+ htmlElement.focus();
387
+ }
388
+ }
389
+ }
390
+ onFlagCommentsOptionalEmitted(_) {
391
+ this.flagCommentsOptional = true;
392
+ }
393
+ /**
394
+ * Set the parent {@link FormGroup} for this component's children, depending on the `Flags` {@link CaseField} instance
395
+ * to which data should be attached. **Note:** The parent is not _this_ component's `FormGroup` (as might otherwise be
396
+ * expected) because this component is not expected to have a value, given it is used for the empty `FlagLauncher` base
397
+ * field type.
398
+ *
399
+ * @param pathToFlagsFormGroup The dot-delimited string that is the path to the `FormGroup` for a `Flags` instance
400
+ */
401
+ setCaseFlagParentFormGroup(pathToFlagsFormGroup) {
402
+ this.caseFlagParentFormGroup = this.formGroup.parent.get(pathToFlagsFormGroup);
403
+ }
404
+ populateNewFlagDetailInstance() {
405
+ return {
406
+ name: this.flagName,
407
+ // Currently, subTypeValue and subTypeKey are applicable only to language flag types
408
+ subTypeValue: this.caseFlagParentFormGroup.value.languageSearchTerm
409
+ ? this.caseFlagParentFormGroup.value.languageSearchTerm.value
410
+ : this.caseFlagParentFormGroup.value.manualLanguageEntry
411
+ ? this.caseFlagParentFormGroup.value.manualLanguageEntry
412
+ : null,
413
+ // For user-entered (i.e. non-Reference Data) languages, there is no key
414
+ subTypeKey: this.caseFlagParentFormGroup.value.languageSearchTerm
415
+ ? this.caseFlagParentFormGroup.value.languageSearchTerm.key
416
+ : null,
417
+ otherDescription: this.flagCode === this.otherFlagTypeCode && this.caseFlagParentFormGroup.value.otherFlagTypeDescription
418
+ ? this.caseFlagParentFormGroup.value.otherFlagTypeDescription
419
+ : null,
420
+ flagComment: this.caseFlagParentFormGroup.value.flagComments ? this.caseFlagParentFormGroup.value.flagComments : null,
421
+ dateTimeCreated: new Date().toISOString(),
422
+ path: this.flagPath,
423
+ hearingRelevant: this.hearingRelevantFlag ? 'Yes' : 'No',
424
+ flagCode: this.flagCode,
425
+ status: CaseFlagStatus.ACTIVE
426
+ };
427
+ }
428
+ moveToFinalReviewStage() {
429
+ this.setFlagsCaseFieldValue();
430
+ // Clear the "notAllCaseFlagStagesCompleted" error
431
+ this.allCaseFlagStagesCompleted = true;
432
+ this.formGroup.updateValueAndValidity();
433
+ }
434
+ }
435
+ WriteCaseFlagFieldComponent.ɵfac = function WriteCaseFlagFieldComponent_Factory(t) { return new (t || WriteCaseFlagFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute)); };
436
+ WriteCaseFlagFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteCaseFlagFieldComponent, selectors: [["ccd-write-case-flag-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 3, consts: [["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], ["class", "form-group", 3, "formGroup", 4, "ngIf"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], ["class", "govuk-error-summary__body", 4, "ngFor", "ngForOf"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [1, "validation-error", 3, "click"], [1, "form-group", 3, "formGroup"], [1, "govuk-form-group", 3, "ngSwitch"], ["id", "create-flag-caption", 1, "govuk-caption-l", 3, "ngClass"], [4, "ngSwitchCase"], [3, "formGroup", "flagsData", "caseFlagStateEmitter"], [3, "formGroup", "jurisdiction", "caseFlagStateEmitter", "flagCommentsOptionalEmitter"], [3, "formGroup", "languages", "flagCode", "caseFlagStateEmitter"], [3, "formGroup", "optional", "caseFlagStateEmitter"], [3, "formGroup", "flagsData", "caseTitle", "caseFlagStateEmitter"], [3, "formGroup", "selectedFlag", "caseFlagStateEmitter"]], template: function WriteCaseFlagFieldComponent_Template(rf, ctx) { if (rf & 1) {
437
+ i0.ɵɵtemplate(0, WriteCaseFlagFieldComponent_div_0_Template, 4, 1, "div", 0);
438
+ i0.ɵɵtemplate(1, WriteCaseFlagFieldComponent_div_1_Template, 8, 10, "div", 1);
439
+ i0.ɵɵtemplate(2, WriteCaseFlagFieldComponent_div_2_Template, 4, 4, "div", 1);
440
+ } if (rf & 2) {
441
+ i0.ɵɵproperty("ngIf", ctx.errorMessages.length > 0);
442
+ i0.ɵɵadvance(1);
443
+ i0.ɵɵproperty("ngIf", !ctx.isDisplayContextParameterUpdate);
444
+ i0.ɵɵadvance(1);
445
+ i0.ɵɵproperty("ngIf", ctx.isDisplayContextParameterUpdate);
446
+ } }, styles: [".validation-error[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:#d4351c}"] });
447
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteCaseFlagFieldComponent, [{
448
+ type: Component,
449
+ args: [{
450
+ selector: 'ccd-write-case-flag-field',
451
+ templateUrl: './write-case-flag-field.component.html',
452
+ styleUrls: ['./write-case-flag-field.component.scss']
453
+ }]
454
+ }], function () { return [{ type: i1.ActivatedRoute }]; }, null); })();
455
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy93cml0ZS1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3dyaXRlLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7O0lDRnpFLDhCQUFrRjtJQUNoRiw2QkFBaUQ7SUFDL0MsMEJBQUk7SUFDRiw0QkFBbUY7SUFBaEYsMlFBQXNEO0lBQTBCLFlBQTRCO0lBQUEsaUJBQUk7SUFDckgsaUJBQUs7SUFDUCxpQkFBSztJQUNQLGlCQUFNOzs7SUFIbUYsZUFBNEI7SUFBNUIsaURBQTRCOzs7SUFQdkgsOEJBQXFLO0lBQ25LLDZCQUFnRTtJQUM5RCxvQ0FDRjtJQUFBLGlCQUFLO0lBQ0wsa0ZBTU07SUFDUixpQkFBTTs7O0lBUDBCLGVBQWdCO0lBQWhC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QUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtnQkFDckMsV0FBVyxFQUFFLHdDQUF3QztnQkFDckQsU0FBUyxFQUFFLENBQUMsd0NBQXdDLENBQUM7YUFDdEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgRmxhZ0RldGFpbCwgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCwgRmxhZ1BhdGgsIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmxhZ0ZpZWxkU3RhdGUsIENhc2VGbGFnU3RhdHVzLCBDYXNlRmxhZ1RleHQgfSBmcm9tICcuL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWNhc2UtZmxhZy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93cml0ZS1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBXcml0ZUNhc2VGbGFnRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgcHVibGljIGZpZWxkU3RhdGU6IG51bWJlcjtcbiAgcHVibGljIGNhc2VGbGFnRmllbGRTdGF0ZSA9IENhc2VGbGFnRmllbGRTdGF0ZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW107XG4gIHB1YmxpYyBjcmVhdGVGbGFnQ2FwdGlvbjogQ2FzZUZsYWdUZXh0O1xuICBwdWJsaWMgZmxhZ3NEYXRhOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoW107XG4gIHB1YmxpYyBzZWxlY3RlZEZsYWc6IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGg7XG4gIHB1YmxpYyBzZWxlY3RlZEZsYWdzTG9jYXRpb246IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGg7XG4gIHB1YmxpYyBjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBwdWJsaWMgZmxhZ0NvbW1lbnRzT3B0aW9uYWwgPSBmYWxzZTtcbiAgcHVibGljIGp1cmlzZGljdGlvbjogc3RyaW5nO1xuICBwdWJsaWMgZmxhZ05hbWU6IHN0cmluZztcbiAgcHVibGljIGZsYWdQYXRoOiBGbGFnUGF0aFtdO1xuICBwdWJsaWMgaGVhcmluZ1JlbGV2YW50RmxhZzogYm9vbGVhbjtcbiAgcHVibGljIGZsYWdDb2RlOiBzdHJpbmc7XG4gIHB1YmxpYyBsaXN0T2ZWYWx1ZXM6IHtrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZ31bXSA9IG51bGw7XG4gIHB1YmxpYyBpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyVXBkYXRlOiBib29sZWFuO1xuICBwdWJsaWMgY2FzZVRpdGxlOiBzdHJpbmc7XG4gIHByaXZhdGUgYWxsQ2FzZUZsYWdTdGFnZXNDb21wbGV0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSB1cGRhdGVNb2RlID0gJyNBUkdVTUVOVChVUERBVEUpJztcbiAgLy8gQ29kZSBmb3IgXCJPdGhlclwiIGZsYWcgdHlwZSBhcyBkZWZpbmVkIGluIFJlZmVyZW5jZSBEYXRhXG4gIHByaXZhdGUgcmVhZG9ubHkgb3RoZXJGbGFnVHlwZUNvZGUgPSAnT1QwMDAxJztcbiAgcHVibGljIHJlYWRvbmx5IGNhc2VOYW1lTWlzc2luZyA9ICdDYXNlIG5hbWUgbWlzc2luZyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGVcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBmb3IgZXhpc3RpbmcgRmxhZ0xhdW5jaGVyIGNvbnRyb2wgaW4gcGFyZW50IGFuZCByZW1vdmUgaXQgLSB0aGlzIGlzIHRoZSBvbmx5IHdheSB0byBlbnN1cmUgaXRzIGludmFsaWRpdHlcbiAgICAvLyBpcyBzZXQgY29ycmVjdGx5IGF0IHRoZSBzdGFydCwgd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbG9hZGVkIGFuZCB0aGUgY29udHJvbCBpcyByZS1yZWdpc3RlcmVkLiBPdGhlcndpc2UsIHRoZVxuICAgIC8vIHZhbGlkYXRvciBzdGF0ZSBnZXRzIGNhcnJpZWQgb3ZlclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCAmJiB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5jYXNlRmllbGQuaWQpKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5yZW1vdmVDb250cm9sKHRoaXMuY2FzZUZpZWxkLmlkKTtcbiAgICB9XG4gICAgLy8gRnJvbSB0aGlzIHBvaW50LCB0aGlzLmZvcm1Hcm91cCByZWZlcnMgdG8gdGhlIEZvcm1Hcm91cCBmb3IgdGhlIEZsYWdMYXVuY2hlciBmaWVsZCwgbm90IHRoZSBwYXJlbnQgRm9ybUdyb3VwXG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUdyb3VwKHt9LCB7XG4gICAgICB2YWxpZGF0b3JzOiAoXzogQWJzdHJhY3RDb250cm9sKToge1trZXk6IHN0cmluZ106IGJvb2xlYW59IHwgbnVsbCA9PiB7XG4gICAgICAgIGlmICghdGhpcy5hbGxDYXNlRmxhZ1N0YWdlc0NvbXBsZXRlZCkge1xuICAgICAgICAgIC8vIFJldHVybiBhbiBlcnJvciB0byBtYXJrIHRoZSBGb3JtR3JvdXAgYXMgaW52YWxpZCBpZiBub3QgYWxsIENhc2UgRmxhZyBzdGFnZXMgaGF2ZSBiZWVuIGNvbXBsZXRlZFxuICAgICAgICAgIHJldHVybiB7bm90QWxsQ2FzZUZsYWdTdGFnZXNDb21wbGV0ZWQ6IHRydWV9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH0pLCB0cnVlKSBhcyBGb3JtR3JvdXA7XG5cbiAgICB0aGlzLmNyZWF0ZUZsYWdDYXB0aW9uID0gQ2FzZUZsYWdUZXh0LkNBUFRJT047XG4gICAgLy8gR2V0IHRoZSBqdXJpc2RpY3Rpb24gZnJvbSB0aGUgQ2FzZVZpZXcgb2JqZWN0IGluIHRoZSBzbmFwc2hvdCBkYXRhIChyZXF1aXJlZCBmb3IgcmV0cmlldmluZyB0aGUgYXZhaWxhYmxlIGZsYWdcbiAgICAvLyB0eXBlcyBmb3IgYSBjYXNlKVxuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZSAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS5jYXNlX3R5cGUgJiZcbiAgICAgIHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlLmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24pIHtcbiAgICAgIHRoaXMuanVyaXNkaWN0aW9uID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UuY2FzZV90eXBlLmp1cmlzZGljdGlvbi5pZDtcbiAgICB9XG4gICAgLy8gRXh0cmFjdCBhbGwgZmxhZ3MtcmVsYXRlZCBkYXRhIGZyb20gdGhlIENhc2VFdmVudFRyaWdnZXIgb2JqZWN0IGluIHRoZSBzbmFwc2hvdCBkYXRhXG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5ldmVudFRyaWdnZXIgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcykge1xuICAgICAgdGhpcy5mbGFnc0RhdGEgPSAoKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpIGFzIENhc2VGaWVsZFtdKVxuICAgICAgICAucmVkdWNlKChmbGFncywgY2FzZUZpZWxkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIEZpZWxkc1V0aWxzLmV4dHJhY3RGbGFnc0RhdGFGcm9tQ2FzZUZpZWxkKGZsYWdzLCBjYXNlRmllbGQsIGNhc2VGaWVsZC5pZCwgY2FzZUZpZWxkKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAvLyBTZXQgYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBkaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyIGlzIFwidXBkYXRlXCJcbiAgICAgIHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlclVwZGF0ZSA9XG4gICAgICAgIHRoaXMuc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGUoKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpIGFzIENhc2VGaWVsZFtdKTtcblxuICAgICAgLy8gU2V0IHN0YXJ0aW5nIGZpZWxkIHN0YXRlXG4gICAgICB0aGlzLmZpZWxkU3RhdGUgPSB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGUgPyBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19NQU5BR0VfQ0FTRV9GTEFHUyA6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xPQ0FUSU9OO1xuICAgICAgLy8gR2V0IGNhc2UgdGl0bGUsIHRvIGJlIHVzZWQgYnkgY2hpbGQgY29tcG9uZW50c1xuICAgICAgdGhpcy5jYXNlVGl0bGUgPSB0aGlzLmNhc2VOYW1lTWlzc2luZztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGUoY2FzZUZpZWxkczogQ2FzZUZpZWxkW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY2FzZUZpZWxkcy5zb21lKFxuICAgICAgY2FzZUZpZWxkID0+IEZpZWxkc1V0aWxzLmlzRmxhZ0xhdW5jaGVyQ2FzZUZpZWxkKGNhc2VGaWVsZCkgJiYgY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IHRoaXMudXBkYXRlTW9kZSk7XG4gIH1cblxuICBwdWJsaWMgb25DYXNlRmxhZ1N0YXRlRW1pdHRlZChjYXNlRmxhZ1N0YXRlOiBDYXNlRmxhZ1N0YXRlKTogdm9pZCB7XG4gICAgLy8gSWYgdGhlIGN1cnJlbnQgc3RhdGUgaXMgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTE9DQVRJT04gYW5kIGEgZmxhZyBsb2NhdGlvbiAoYSBGbGFncyBpbnN0YW5jZSkgaGFzIGJlZW4gc2VsZWN0ZWQsXG4gICAgLy8gc2V0IHRoZSBwYXJlbnQgQ2FzZSBGbGFnIEZvcm1Hcm91cCBmb3IgdGhpcyBjb21wb25lbnQncyBjaGlsZHJlbiBieSB1c2luZyB0aGUgcHJvdmlkZWQgcGF0aFRvRmxhZ3NGb3JtR3JvdXAsIGFuZFxuICAgIC8vIHNldCB0aGUgc2VsZWN0ZWQgZmxhZyBsb2NhdGlvbiBvbiB0aGlzIGNvbXBvbmVudFxuICAgIGlmIChjYXNlRmxhZ1N0YXRlLmN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGUgPT09IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xPQ0FUSU9OXG4gICAgICAmJiBjYXNlRmxhZ1N0YXRlLnNlbGVjdGVkRmxhZ3NMb2NhdGlvblxuICAgICAgJiYgY2FzZUZsYWdTdGF0ZS5zZWxlY3RlZEZsYWdzTG9jYXRpb24ucGF0aFRvRmxhZ3NGb3JtR3JvdXApIHtcbiAgICAgIHRoaXMuc2V0Q2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAoY2FzZUZsYWdTdGF0ZS5zZWxlY3RlZEZsYWdzTG9jYXRpb24ucGF0aFRvRmxhZ3NGb3JtR3JvdXApO1xuICAgICAgdGhpcy5zZWxlY3RlZEZsYWdzTG9jYXRpb24gPSBjYXNlRmxhZ1N0YXRlLnNlbGVjdGVkRmxhZ3NMb2NhdGlvbjtcbiAgICB9XG4gICAgLy8gSWYgdGhlIGN1cnJlbnQgc3RhdGUgaXMgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSwgY2FjaGUgdGhlIGZsYWcgbmFtZSwgcGF0aCwgaGVhcmluZyByZWxldmFudCBpbmRpY2F0b3IsIGNvZGUsXG4gICAgLy8gYW5kIFwibGlzdCBvZiB2YWx1ZXNcIiAoY3VycmVudGx5IGFwcGxpY2FibGUgdG8gbGFuZ3VhZ2UgZmxhZyB0eXBlcylcbiAgICBpZiAoY2FzZUZsYWdTdGF0ZS5jdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlID09PSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19UWVBFKSB7XG4gICAgICB0aGlzLmZsYWdOYW1lID0gY2FzZUZsYWdTdGF0ZS5mbGFnTmFtZTtcbiAgICAgIHRoaXMuZmxhZ1BhdGggPSBjYXNlRmxhZ1N0YXRlLmZsYWdQYXRoO1xuICAgICAgdGhpcy5oZWFyaW5nUmVsZXZhbnRGbGFnID0gY2FzZUZsYWdTdGF0ZS5oZWFyaW5nUmVsZXZhbnRGbGFnO1xuICAgICAgdGhpcy5mbGFnQ29kZSA9IGNhc2VGbGFnU3RhdGUuZmxhZ0NvZGU7XG4gICAgICB0aGlzLmxpc3RPZlZhbHVlcyA9IGNhc2VGbGFnU3RhdGUubGlzdE9mVmFsdWVzO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgY3VycmVudCBzdGF0ZSBpcyBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19NQU5BR0VfQ0FTRV9GTEFHUyBhbmQgYSBmbGFnIGhhcyBiZWVuIHNlbGVjdGVkLCBzZXQgdGhlIHBhcmVudFxuICAgIC8vIENhc2UgRmxhZyBGb3JtR3JvdXAgZm9yIHRoaXMgY29tcG9uZW50J3MgY2hpbGRyZW4gYnkgdXNpbmcgdGhlIHByb3ZpZGVkIHBhdGhUb0ZsYWdzRm9ybUdyb3VwXG4gICAgaWYgKGNhc2VGbGFnU3RhdGUuY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTUFOQUdFX0NBU0VfRkxBR1NcbiAgICAgICYmIGNhc2VGbGFnU3RhdGUuc2VsZWN0ZWRGbGFnXG4gICAgICAmJiBjYXNlRmxhZ1N0YXRlLnNlbGVjdGVkRmxhZy5wYXRoVG9GbGFnc0Zvcm1Hcm91cCkge1xuICAgICAgdGhpcy5zZXRDYXNlRmxhZ1BhcmVudEZvcm1Hcm91cChjYXNlRmxhZ1N0YXRlLnNlbGVjdGVkRmxhZy5wYXRoVG9GbGFnc0Zvcm1Hcm91cCk7XG4gICAgfVxuXG5cbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBjYXNlRmxhZ1N0YXRlLmVycm9yTWVzc2FnZXM7XG4gICAgdGhpcy5zZWxlY3RlZEZsYWcgPSBjYXNlRmxhZ1N0YXRlLnNlbGVjdGVkRmxhZztcbiAgICAvLyBWYWxpZGF0aW9uIHN1Y2NlZWRlZDsgcHJvY2VlZCB0byBuZXh0IHN0YXRlIG9yIGZpbmFsIHJldmlldyBzdGFnZSAoXCJDaGVjayB5b3VyIGFuc3dlcnNcIilcbiAgICBpZiAodGhpcy5lcnJvck1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgc3RhdGUgaXMgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFMgb3IgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFLCBtb3ZlIHRvIGZpbmFsXG4gICAgICAvLyByZXZpZXcgc3RhZ2VcbiAgICAgIGlmIChjYXNlRmxhZ1N0YXRlLmN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGUgPT09IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0NPTU1FTlRTIHx8XG4gICAgICAgICAgY2FzZUZsYWdTdGF0ZS5jdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlID09PSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEUpIHtcbiAgICAgICAgdGhpcy5tb3ZlVG9GaW5hbFJldmlld1N0YWdlKCk7XG4gICAgICAgIC8vIERvbid0IG1vdmUgdG8gbmV4dCBzdGF0ZSBpZiBjdXJyZW50IHN0YXRlIGlzIENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1RZUEUgYW5kIHRoZSBmbGFnIHR5cGUgaXMgYSBwYXJlbnQgLSB0aGlzXG4gICAgICAgIC8vIG1lYW5zIHRoZSB1c2VyIG5lZWRzIHRvIHNlbGVjdCBmcm9tIHRoZSBuZXh0IHNldCBvZiBmbGFnIHR5cGVzIGJlZm9yZSB0aGV5IGNhbiBtb3ZlIG9uXG4gICAgICB9IGVsc2UgaWYgKCFjYXNlRmxhZ1N0YXRlLmlzUGFyZW50RmxhZ1R5cGUpIHtcbiAgICAgICAgLy8gUHJvY2VlZCB0byBuZXh0IHN0YXRlXG4gICAgICAgIHRoaXMucHJvY2VlZFRvTmV4dFN0YXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHByb2NlZWRUb05leHRTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNBdEZpbmFsU3RhdGUoKSkge1xuICAgICAgLy8gU2tpcCB0aGUgXCJsYW5ndWFnZSBpbnRlcnByZXRlclwiIHN0YXRlIGlmIGN1cnJlbnQgc3RhdGUgaXMgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSBhbmQgdGhlIGZsYWcgdHlwZSBkb2Vzbid0XG4gICAgICAvLyBoYXZlIGEgXCJsaXN0IG9mIHZhbHVlc1wiIC0gY3VycmVudGx5LCB0aGlzIGlzIHByZXNlbnQgb25seSBmb3IgdGhvc2UgZmxhZyB0eXBlcyB0aGF0IHJlcXVpcmUgbGFuZ3VhZ2UgaW50ZXJwcmV0ZXJcbiAgICAgIC8vIHNlbGVjdGlvblxuICAgICAgaWYgKHRoaXMuZmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSAmJiAhdGhpcy5saXN0T2ZWYWx1ZXMpIHtcbiAgICAgICAgdGhpcy5maWVsZFN0YXRlID0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpZWxkU3RhdGUrKztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RmxhZ3NDYXNlRmllbGRWYWx1ZSgpOiB2b2lkIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IHN3aXRjaC1kZWZhdWx0XG4gICAgc3dpdGNoICh0aGlzLmZpZWxkU3RhdGUpIHtcbiAgICAgIGNhc2UgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFM6XG4gICAgICAgIHRoaXMuYWRkRmxhZ1RvQ29sbGVjdGlvbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFOlxuICAgICAgICB0aGlzLnVwZGF0ZUZsYWdJbkNvbGxlY3Rpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZEZsYWdUb0NvbGxlY3Rpb24oKTogdm9pZCB7XG4gICAgLy8gRW5zdXJlIG5vIG1vcmUgdGhhbiBvbmUgbmV3IGZsYWcgaXMgYmVpbmcgYWRkZWQgYXQgYSB0aW1lLCBieSBpdGVyYXRpbmcgdGhyb3VnaCBlYWNoIEZsYWdzIGNhc2UgZmllbGQgYW5kIHJlbW92aW5nXG4gICAgLy8gYW55IHByZXZpb3VzIGVudHJ5IGZyb20gdGhlIGRldGFpbHMgYXJyYXkgd2hlcmUgdGhhdCBlbnRyeSBoYXMgbm8gaWQgKGhlbmNlIGl0IGlzIG5ldyAtIGFuZCB0aGVyZSBzaG91bGQgYmUgb25seVxuICAgIC8vIG9uZSBzdWNoIGVudHJ5KS4gKFRoaXMgc2NlbmFyaW8gb2NjdXJzIGlmIHRoZSB1c2VyIHJlcGVhdHMgdGhlIENhc2UgRmxhZyBjcmVhdGlvbiBqb3VybmV5IGJ5IHVzaW5nIHRoZSBcIkNoYW5nZVwiXG4gICAgLy8gbGluayBhbmQgc2VsZWN0cyBlaXRoZXIgdGhlIHNhbWUgZmxhZyBsb2NhdGlvbiBhcyBiZWZvcmUgb3IgYSBkaWZmZXJlbnQgb25lLilcbiAgICB0aGlzLmZsYWdzRGF0YS5mb3JFYWNoKGluc3RhbmNlID0+IHtcbiAgICAgIC8vIFVzZSB0aGUgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgcHJvcGVydHkgZm9yIGVhY2ggRmxhZ3MgY2FzZSBmaWVsZCB0byBkcmlsbCBkb3duIHRvIHRoZSBjb3JyZWN0IHBhcnQgb2YgdGhlXG4gICAgICAvLyBDYXNlRmllbGQgdmFsdWUgdG8gcmVtb3ZlIHRoZSBuZXcgdmFsdWUgZnJvbVxuICAgICAgbGV0IHZhbHVlID0gaW5zdGFuY2UuY2FzZUZpZWxkLnZhbHVlO1xuICAgICAgY29uc3QgcGF0aFRvVmFsdWUgPSBpbnN0YW5jZS5wYXRoVG9GbGFnc0Zvcm1Hcm91cDtcbiAgICAgIC8vIFJvb3QtbGV2ZWwgRmxhZ3MgQ2FzZUZpZWxkcyBkb24ndCBoYXZlIGEgZG90LWRlbGltaXRlZCBwYXRoIC0ganVzdCB0aGUgQ2FzZUZpZWxkIElEIGl0c2VsZiAtIHNvIGRvbid0IGRyaWxsIGRvd25cbiAgICAgIGlmIChwYXRoVG9WYWx1ZS5pbmRleE9mKCcuJykgPiAtMSkge1xuICAgICAgICBwYXRoVG9WYWx1ZS5zbGljZShwYXRoVG9WYWx1ZS5pbmRleE9mKCcuJykgKyAxKS5zcGxpdCgnLicpLmZvckVhY2gocGFydCA9PiB2YWx1ZSA9IHZhbHVlW3BhcnRdKTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5kZXRhaWxzICYmIHZhbHVlLmRldGFpbHMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBpbmRleE9mTmV3RmxhZ0RldGFpbCA9IHZhbHVlLmRldGFpbHMuZmluZEluZGV4KGVsZW1lbnQgPT4gIWVsZW1lbnQuaGFzT3duUHJvcGVydHkoJ2lkJykpO1xuICAgICAgICBpZiAoaW5kZXhPZk5ld0ZsYWdEZXRhaWwgPiAtMSkge1xuICAgICAgICAgIHZhbHVlLmRldGFpbHMuc3BsaWNlKGluZGV4T2ZOZXdGbGFnRGV0YWlsLCAxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gdGhpcy5zZWxlY3RlZEZsYWdzTG9jYXRpb24uY2FzZUZpZWxkLnZhbHVlO1xuICAgIC8vIFVzZSB0aGUgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgcHJvcGVydHkgZnJvbSB0aGUgc2VsZWN0ZWQgZmxhZyBsb2NhdGlvbiB0byBkcmlsbCBkb3duIHRvIHRoZSBjb3JyZWN0IHBhcnQgb2YgdGhlXG4gICAgLy8gQ2FzZUZpZWxkIHZhbHVlIHRvIGFwcGx5IGNoYW5nZXMgdG9cbiAgICBjb25zdCBwYXRoID0gdGhpcy5zZWxlY3RlZEZsYWdzTG9jYXRpb24ucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgLy8gUm9vdC1sZXZlbCBGbGFncyBDYXNlRmllbGRzIGRvbid0IGhhdmUgYSBkb3QtZGVsaW1pdGVkIHBhdGggLSBqdXN0IHRoZSBDYXNlRmllbGQgSUQgaXRzZWxmIC0gc28gZG9uJ3QgZHJpbGwgZG93blxuICAgIGlmIChwYXRoLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICBwYXRoLnNsaWNlKHBhdGguaW5kZXhPZignLicpICsgMSkuc3BsaXQoJy4nKS5mb3JFYWNoKHBhcnQgPT4gZmxhZ3NDYXNlRmllbGRWYWx1ZSA9IGZsYWdzQ2FzZUZpZWxkVmFsdWVbcGFydF0pO1xuICAgIH1cbiAgICBpZiAoZmxhZ3NDYXNlRmllbGRWYWx1ZSkge1xuICAgICAgLy8gQ3JlYXRlIGEgZGV0YWlscyBhcnJheSBpZiBvbmUgZG9lcyBub3QgZXhpc3RcbiAgICAgIGlmICghZmxhZ3NDYXNlRmllbGRWYWx1ZS5oYXNPd25Qcm9wZXJ0eSgnZGV0YWlscycpKSB7XG4gICAgICAgIGZsYWdzQ2FzZUZpZWxkVmFsdWUuZGV0YWlscyA9IFtdO1xuICAgICAgfVxuICAgICAgLy8gUG9wdWxhdGUgbmV3IEZsYWdEZXRhaWwgaW5zdGFuY2UgYW5kIGFkZCB0byB0aGUgRmxhZ3MgZGF0YSB3aXRoaW4gdGhlIENhc2VGaWVsZCBpbnN0YW5jZSBvZiB0aGUgc2VsZWN0ZWQgZmxhZ1xuICAgICAgLy8gbG9jYXRpb25cbiAgICAgIGZsYWdzQ2FzZUZpZWxkVmFsdWUuZGV0YWlscy5wdXNoKHt2YWx1ZTogdGhpcy5wb3B1bGF0ZU5ld0ZsYWdEZXRhaWxJbnN0YW5jZSgpfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZsYWdJbkNvbGxlY3Rpb24oKTogdm9pZCB7XG4gICAgLy8gRW5zdXJlIG5vIG1vcmUgdGhhbiBvbmUgZmxhZyBpcyBiZWluZyB1cGRhdGVkIGF0IGEgdGltZSwgYnkgaXRlcmF0aW5nIHRocm91Z2ggZWFjaCBGbGFncyBjYXNlIGZpZWxkIGFuZCByZXNldHRpbmdcbiAgICAvLyB0aGUgY29tbWVudHMsIHN0YXR1cywgYW5kIGRhdGUvdGltZSBtb2RpZmllZCAoaWYgcHJlc2VudCkgZm9yIGVhY2ggZW50cnkgaW4gdGhlIGRldGFpbHMgYXJyYXksIHdpdGggb3JpZ2luYWwgdmFsdWVzXG4gICAgLy8gZnJvbSB0aGUgY29ycmVzcG9uZGluZyBmb3JtYXR0ZWRfdmFsdWUgcHJvcGVydHkuIChUaGlzIHNjZW5hcmlvIG9jY3VycyBpZiB0aGUgdXNlciByZXBlYXRzIHRoZSBNYW5hZ2UgQ2FzZSBGbGFnXG4gICAgLy8gam91cm5leSBieSB1c2luZyB0aGUgXCJDaGFuZ2VcIiBsaW5rIGFuZCBzZWxlY3RzIGEgZGlmZmVyZW50IGZsYWcgdG8gdXBkYXRlLilcbiAgICB0aGlzLmZsYWdzRGF0YS5mb3JFYWNoKGluc3RhbmNlID0+IHtcbiAgICAgIC8vIFVzZSB0aGUgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgcHJvcGVydHkgZm9yIGVhY2ggRmxhZ3MgY2FzZSBmaWVsZCB0byBkcmlsbCBkb3duIHRvIHRoZSBjb3JyZWN0IHBhcnQgb2YgdGhlXG4gICAgICAvLyBDYXNlRmllbGQgdmFsdWUgZm9yIHdoaWNoIHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIHZhbHVlc1xuICAgICAgbGV0IHZhbHVlID0gaW5zdGFuY2UuY2FzZUZpZWxkLnZhbHVlO1xuICAgICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gaW5zdGFuY2UuY2FzZUZpZWxkLmZvcm1hdHRlZF92YWx1ZTtcbiAgICAgIGNvbnN0IHBhdGhUb1ZhbHVlID0gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgICAvLyBSb290LWxldmVsIEZsYWdzIENhc2VGaWVsZHMgZG9uJ3QgaGF2ZSBhIGRvdC1kZWxpbWl0ZWQgcGF0aCAtIGp1c3QgdGhlIENhc2VGaWVsZCBJRCBpdHNlbGYgLSBzbyBkb24ndCBkcmlsbCBkb3duXG4gICAgICBpZiAocGF0aFRvVmFsdWUuaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgICAgcGF0aFRvVmFsdWUuc2xpY2UocGF0aFRvVmFsdWUuaW5kZXhPZignLicpICsgMSkuc3BsaXQoJy4nKS5mb3JFYWNoKHBhcnQgPT4ge1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVbcGFydF07XG4gICAgICAgICAgaWYgKGZvcm1hdHRlZFZhbHVlICYmIEZpZWxkc1V0aWxzLmlzTm9uRW1wdHlPYmplY3QoZm9ybWF0dGVkVmFsdWUpKSB7XG4gICAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlZFZhbHVlW3BhcnRdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUuZGV0YWlscyAmJiB2YWx1ZS5kZXRhaWxzLmxlbmd0aCA+IDAgJiYgZm9ybWF0dGVkVmFsdWUgJiYgRmllbGRzVXRpbHMuaXNOb25FbXB0eU9iamVjdChmb3JtYXR0ZWRWYWx1ZSkpIHtcbiAgICAgICAgdmFsdWUuZGV0YWlscy5mb3JFYWNoKGZsYWdEZXRhaWwgPT4ge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsRmxhZ0RldGFpbCA9IGZvcm1hdHRlZFZhbHVlLmRldGFpbHMuZmluZChkZXRhaWwgPT4gZGV0YWlsLmlkID09PSBmbGFnRGV0YWlsLmlkKTtcbiAgICAgICAgICBpZiAob3JpZ2luYWxGbGFnRGV0YWlsKSB7XG4gICAgICAgICAgICBmbGFnRGV0YWlsLnZhbHVlLmZsYWdDb21tZW50ID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlLmZsYWdDb21tZW50XG4gICAgICAgICAgICAgID8gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlLmZsYWdDb21tZW50XG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICAgIGZsYWdEZXRhaWwudmFsdWUuc3RhdHVzID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlLnN0YXR1cztcbiAgICAgICAgICAgIGZsYWdEZXRhaWwudmFsdWUuZGF0ZVRpbWVNb2RpZmllZCA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZS5kYXRlVGltZU1vZGlmaWVkXG4gICAgICAgICAgICAgID8gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlLmRhdGVUaW1lTW9kaWZpZWRcbiAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbGV0IGZsYWdzQ2FzZUZpZWxkVmFsdWUgPSB0aGlzLnNlbGVjdGVkRmxhZy5jYXNlRmllbGQudmFsdWU7XG4gICAgLy8gVXNlIHRoZSBwYXRoVG9GbGFnc0Zvcm1Hcm91cCBwcm9wZXJ0eSBmcm9tIHRoZSBzZWxlY3RlZCBmbGFnIGxvY2F0aW9uIHRvIGRyaWxsIGRvd24gdG8gdGhlIGNvcnJlY3QgcGFydCBvZiB0aGVcbiAgICAvLyBDYXNlRmllbGQgdmFsdWUgdG8gYXBwbHkgY2hhbmdlcyB0b1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnNlbGVjdGVkRmxhZy5wYXRoVG9GbGFnc0Zvcm1Hcm91cDtcbiAgICAvLyBSb290LWxldmVsIEZsYWdzIENhc2VGaWVsZHMgZG9uJ3QgaGF2ZSBhIGRvdC1kZWxpbWl0ZWQgcGF0aCAtIGp1c3QgdGhlIENhc2VGaWVsZCBJRCBpdHNlbGYgLSBzbyBkb24ndCBkcmlsbCBkb3duXG4gICAgaWYgKHBhdGguaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgIHBhdGguc2xpY2UocGF0aC5pbmRleE9mKCcuJykgKyAxKS5zcGxpdCgnLicpLmZvckVhY2gocGFydCA9PiBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gZmxhZ3NDYXNlRmllbGRWYWx1ZVtwYXJ0XSk7XG4gICAgfVxuICAgIGlmIChmbGFnc0Nhc2VGaWVsZFZhbHVlKSB7XG4gICAgICBjb25zdCBmbGFnRGV0YWlsVG9VcGRhdGUgPSBmbGFnc0Nhc2VGaWVsZFZhbHVlLmRldGFpbHMuZmluZChcbiAgICAgICAgZGV0YWlsID0+IGRldGFpbC5pZCA9PT0gdGhpcy5zZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXkuZmxhZ0RldGFpbC5pZCk7XG4gICAgICBpZiAoZmxhZ0RldGFpbFRvVXBkYXRlKSB7XG4gICAgICAgIGZsYWdEZXRhaWxUb1VwZGF0ZS52YWx1ZS5mbGFnQ29tbWVudCA9IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAudmFsdWUuZmxhZ0NvbW1lbnRzXG4gICAgICAgICAgPyB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLnZhbHVlLmZsYWdDb21tZW50c1xuICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgZmxhZ0RldGFpbFRvVXBkYXRlLnZhbHVlLnN0YXR1cyA9IHRoaXMuc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5LmZsYWdEZXRhaWwuc3RhdHVzO1xuICAgICAgICBmbGFnRGV0YWlsVG9VcGRhdGUudmFsdWUuZGF0ZVRpbWVNb2RpZmllZCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNBdEZpbmFsU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlclVwZGF0ZVxuICAgICAgPyB0aGlzLmZpZWxkU3RhdGUgPT09IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURVxuICAgICAgOiB0aGlzLmZpZWxkU3RhdGUgPT09IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0NPTU1FTlRTO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG9FcnJvckVsZW1lbnQoZWxlbWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoZWxlbWVudElkKSB7XG4gICAgICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7XG4gICAgICBpZiAoaHRtbEVsZW1lbnQpIHtcbiAgICAgICAgaHRtbEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTtcbiAgICAgICAgaHRtbEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25GbGFnQ29tbWVudHNPcHRpb25hbEVtaXR0ZWQoXzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mbGFnQ29tbWVudHNPcHRpb25hbCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBwYXJlbnQge0BsaW5rIEZvcm1Hcm91cH0gZm9yIHRoaXMgY29tcG9uZW50J3MgY2hpbGRyZW4sIGRlcGVuZGluZyBvbiB0aGUgYEZsYWdzYCB7QGxpbmsgQ2FzZUZpZWxkfSBpbnN0YW5jZVxuICAgKiB0byB3aGljaCBkYXRhIHNob3VsZCBiZSBhdHRhY2hlZC4gKipOb3RlOioqIFRoZSBwYXJlbnQgaXMgbm90IF90aGlzXyBjb21wb25lbnQncyBgRm9ybUdyb3VwYCAoYXMgbWlnaHQgb3RoZXJ3aXNlIGJlXG4gICAqIGV4cGVjdGVkKSBiZWNhdXNlIHRoaXMgY29tcG9uZW50IGlzIG5vdCBleHBlY3RlZCB0byBoYXZlIGEgdmFsdWUsIGdpdmVuIGl0IGlzIHVzZWQgZm9yIHRoZSBlbXB0eSBgRmxhZ0xhdW5jaGVyYCBiYXNlXG4gICAqIGZpZWxkIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoVG9GbGFnc0Zvcm1Hcm91cCBUaGUgZG90LWRlbGltaXRlZCBzdHJpbmcgdGhhdCBpcyB0aGUgcGF0aCB0byB0aGUgYEZvcm1Hcm91cGAgZm9yIGEgYEZsYWdzYCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHNldENhc2VGbGFnUGFyZW50Rm9ybUdyb3VwKHBhdGhUb0ZsYWdzRm9ybUdyb3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwID0gdGhpcy5mb3JtR3JvdXAucGFyZW50LmdldChwYXRoVG9GbGFnc0Zvcm1Hcm91cCkgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgcHVibGljIHBvcHVsYXRlTmV3RmxhZ0RldGFpbEluc3RhbmNlKCk6IEZsYWdEZXRhaWwge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLmZsYWdOYW1lLFxuICAgICAgLy8gQ3VycmVudGx5LCBzdWJUeXBlVmFsdWUgYW5kIHN1YlR5cGVLZXkgYXJlIGFwcGxpY2FibGUgb25seSB0byBsYW5ndWFnZSBmbGFnIHR5cGVzXG4gICAgICBzdWJUeXBlVmFsdWU6IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAudmFsdWUubGFuZ3VhZ2VTZWFyY2hUZXJtXG4gICAgICAgID8gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC52YWx1ZS5sYW5ndWFnZVNlYXJjaFRlcm0udmFsdWVcbiAgICAgICAgOiB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLnZhbHVlLm1hbnVhbExhbmd1YWdlRW50cnlcbiAgICAgICAgICA/IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAudmFsdWUubWFudWFsTGFuZ3VhZ2VFbnRyeVxuICAgICAgICAgIDogbnVsbCxcbiAgICAgIC8vIEZvciB1c2VyLWVudGVyZWQgKGkuZS4gbm9uLVJlZmVyZW5jZSBEYXRhKSBsYW5ndWFnZXMsIHRoZXJlIGlzIG5vIGtleVxuICAgICAgc3ViVHlwZUtleTogdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC52YWx1ZS5sYW5ndWFnZVNlYXJjaFRlcm1cbiAgICAgICAgPyB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLnZhbHVlLmxhbmd1YWdlU2VhcmNoVGVybS5rZXlcbiAgICAgICAgOiBudWxsLFxuICAgICAgb3RoZXJEZXNjcmlwdGlvbjogdGhpcy5mbGFnQ29kZSA9PT0gdGhpcy5vdGhlckZsYWdUeXBlQ29kZSAmJiB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLnZhbHVlLm90aGVyRmxhZ1R5cGVEZXNjcmlwdGlvblxuICAgICAgICA/IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAudmFsdWUub3RoZXJGbGFnVHlwZURlc2NyaXB0aW9uXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGZsYWdDb21tZW50OiB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLnZhbHVlLmZsYWdDb21tZW50cyA/IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAudmFsdWUuZmxhZ0NvbW1lbnRzIDogbnVsbCxcbiAgICAgIGRhdGVUaW1lQ3JlYXRlZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgcGF0aDogdGhpcy5mbGFnUGF0aCxcbiAgICAgIGhlYXJpbmdSZWxldmFudDogdGhpcy5oZWFyaW5nUmVsZXZhbnRGbGFnID8gJ1llcycgOiAnTm8nLFxuICAgICAgZmxhZ0NvZGU6IHRoaXMuZmxhZ0NvZGUsXG4gICAgICBzdGF0dXM6IENhc2VGbGFnU3RhdHVzLkFDVElWRVxuICAgIH0gYXMgRmxhZ0RldGFpbDtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVG9GaW5hbFJldmlld1N0YWdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RmxhZ3NDYXNlRmllbGRWYWx1ZSgpO1xuICAgIC8vIENsZWFyIHRoZSBcIm5vdEFsbENhc2VGbGFnU3RhZ2VzQ29tcGxldGVkXCIgZXJyb3JcbiAgICB0aGlzLmFsbENhc2VGbGFnU3RhZ2VzQ29tcGxldGVkID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cbn1cbiIsIjwhLS0gRXJyb3IgbWVzc2FnZSBzdW1tYXJ5IC0tPlxuPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiByb2xlPVwiYWxlcnRcIiB0YWJpbmRleD1cIi0xXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5XCI+XG4gIDxoMiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlXCIgaWQ9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAgVGhlcmUgaXMgYSBwcm9ibGVtXG4gIDwvaDI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBlcnJvck1lc3NhZ2VzXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgPHVsIGNsYXNzPVwiZ292dWstbGlzdCBnb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0XCI+XG4gICAgICA8bGk+XG4gICAgICAgIDxhIChjbGljayk9XCJuYXZpZ2F0ZVRvRXJyb3JFbGVtZW50KGVycm9yTWVzc2FnZS5maWVsZElkKVwiIGNsYXNzPVwidmFsaWRhdGlvbi1lcnJvclwiPnt7ZXJyb3JNZXNzYWdlLmRlc2NyaXB0aW9ufX08L2E+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiIWlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGVcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ1N3aXRjaF09XCJmaWVsZFN0YXRlXCI+XG4gICAgPGRpdiBpZD1cImNyZWF0ZS1mbGFnLWNhcHRpb25cIiBjbGFzcz1cImdvdnVrLWNhcHRpb24tbFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGVycm9yTWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgICAgIHt7Y3JlYXRlRmxhZ0NhcHRpb259fVxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xPQ0FUSU9OXCI+XG4gICAgICA8Y2NkLXNlbGVjdC1mbGFnLWxvY2F0aW9uIFtmb3JtR3JvdXBdPVwiY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBcIiBbZmxhZ3NEYXRhXT1cImZsYWdzRGF0YVwiXG4gICAgICAgIChjYXNlRmxhZ1N0YXRlRW1pdHRlcik9XCJvbkNhc2VGbGFnU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1zZWxlY3QtZmxhZy1sb2NhdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19UWVBFXCI+XG4gICAgICA8Y2NkLXNlbGVjdC1mbGFnLXR5cGUgW2Zvcm1Hcm91cF09XCJjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cFwiIFtqdXJpc2RpY3Rpb25dPVwianVyaXNkaWN0aW9uXCJcbiAgICAgICAgKGNhc2VGbGFnU3RhdGVFbWl0dGVyKT1cIm9uQ2FzZUZsYWdTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiXG4gICAgICAgIChmbGFnQ29tbWVudHNPcHRpb25hbEVtaXR0ZXIpPVwib25GbGFnQ29tbWVudHNPcHRpb25hbEVtaXR0ZWQoJGV2ZW50KVwiPjwvY2NkLXNlbGVjdC1mbGFnLXR5cGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTEFOR1VBR0VfSU5URVJQUkVURVJcIj5cbiAgICAgIDxjY2Qtc2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyIFtmb3JtR3JvdXBdPVwiY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBcIiBbbGFuZ3VhZ2VzXT1cImxpc3RPZlZhbHVlc1wiIFtmbGFnQ29kZV09XCJmbGFnQ29kZVwiXG4gICAgICAgIChjYXNlRmxhZ1N0YXRlRW1pdHRlcik9XCJvbkNhc2VGbGFnU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFNcIj5cbiAgICAgIDxjY2QtYWRkLWNvbW1lbnRzIFtmb3JtR3JvdXBdPVwiY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBcIiBbb3B0aW9uYWxdPVwiZmxhZ0NvbW1lbnRzT3B0aW9uYWxcIlxuICAgICAgICAoY2FzZUZsYWdTdGF0ZUVtaXR0ZXIpPVwib25DYXNlRmxhZ1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtYWRkLWNvbW1lbnRzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGVcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ1N3aXRjaF09XCJmaWVsZFN0YXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTUFOQUdFX0NBU0VfRkxBR1NcIj5cbiAgICAgIDxjY2QtbWFuYWdlLWNhc2UtZmxhZ3MgW2Zvcm1Hcm91cF09XCJjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cFwiIFtmbGFnc0RhdGFdPVwiZmxhZ3NEYXRhXCIgW2Nhc2VUaXRsZV09XCJjYXNlVGl0bGVcIlxuICAgICAgICAoY2FzZUZsYWdTdGF0ZUVtaXR0ZXIpPVwib25DYXNlRmxhZ1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtbWFuYWdlLWNhc2UtZmxhZ3M+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFXCI+XG4gICAgICA8Y2NkLXVwZGF0ZS1mbGFnIFtmb3JtR3JvdXBdPVwiY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBcIiBbc2VsZWN0ZWRGbGFnXT1cInNlbGVjdGVkRmxhZ1wiXG4gICAgICAgIChjYXNlRmxhZ1N0YXRlRW1pdHRlcik9XCJvbkNhc2VGbGFnU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC11cGRhdGUtZmxhZz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -2,10 +2,6 @@ import { Component, Input } from '@angular/core';
2
2
  import { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';
3
3
  import { PaletteContext } from '../base-field/palette-context.enum';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "./read-complex-field-raw.component";
7
- import * as i3 from "./read-complex-field-collection-table.component";
8
- import * as i4 from "./read-complex-field-table.component";
9
5
  function ReadComplexFieldComponent_ccd_read_complex_field_raw_1_Template(rf, ctx) { if (rf & 1) {
10
6
  i0.ɵɵelement(0, "ccd-read-complex-field-raw", 4);
11
7
  } if (rf & 2) {
@@ -69,7 +65,7 @@ ReadComplexFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ReadComplexFiel
69
65
  i0.ɵɵproperty("ngSwitchCase", ctx.paletteContext.CHECK_YOUR_ANSWER);
70
66
  i0.ɵɵadvance(1);
71
67
  i0.ɵɵproperty("ngSwitchCase", ctx.paletteContext.TABLE_VIEW);
72
- } }, directives: [i1.NgSwitch, i1.NgSwitchCase, i1.NgSwitchDefault, i2.ReadComplexFieldRawComponent, i3.ReadComplexFieldCollectionTableComponent, i4.ReadComplexFieldTableComponent], encapsulation: 2 });
68
+ } }, encapsulation: 2 });
73
69
  const ɵReadComplexFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(ReadComplexFieldComponent);
74
70
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadComplexFieldComponent, [{
75
71
  type: Component,
@@ -80,4 +76,4 @@ const ɵReadComplexFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInherite
80
76
  }], null, { caseFields: [{
81
77
  type: Input
82
78
  }] }); })();
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jb21wbGV4LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2NvbXBsZXgvcmVhZC1jb21wbGV4LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2NvbXBsZXgvcmVhZC1jb21wbGV4LWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7O0lDRmxFLGdEQU84Qjs7O0lBTDVCLDRDQUF1QixpQ0FBQSwyQkFBQSwrQ0FBQSw2QkFBQTs7O0lBTXpCLDZEQU0yQzs7O0lBSnpDLDRDQUF1QiwyQkFBQSwrQ0FBQSw2QkFBQTs7O0lBS3pCLGtEQU9nQzs7O0lBTDlCLDRDQUF1QixpQ0FBQSwyQkFBQSwrQ0FBQSw2QkFBQTs7QURUM0IsTUFBTSxPQUFPLHlCQUEwQixTQUFRLDBCQUEwQjtJQUp6RTs7UUFPUyxlQUFVLEdBQWdCLEVBQUUsQ0FBQztRQUU3QixtQkFBYyxHQUFHLGNBQWMsQ0FBQztLQTJCeEM7SUF6QlEsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLEVBQUU7WUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDO1NBQzFDO2FBQU07WUFDTCwyQkFBMkI7WUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDO2FBQ3ZDO1NBQ0Y7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZELElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFO29CQUNyQixLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUM7b0JBQzdELEtBQUssQ0FBQyxLQUFLLEdBQUc7d0JBQ1osVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO3dCQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNsRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSztxQkFDN0MsQ0FBQztpQkFDSDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztvSUE5QlUseUJBQXlCOzhEQUF6Qix5QkFBeUI7UUNUdEMsZ0NBQW1DO1FBQ2pDLHdIQU84QjtRQUM5QixrSkFNMkM7UUFDM0MsNEhBT2dDO1FBQ2xDLDBCQUFlOztRQXhCRCxzQ0FBb0I7UUFFN0IsZUFBOEM7UUFBOUMsbUVBQThDO1FBUTlDLGVBQXVDO1FBQXZDLDREQUF1Qzs7c0ZERC9CLHlCQUF5Qjt1RkFBekIseUJBQXlCO2NBSnJDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUsMkJBQTJCO2FBQ3pDO2dCQUlRLFVBQVU7a0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uJztcbmltcG9ydCB7IEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC1yZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWxldHRlQ29udGV4dCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvcGFsZXR0ZS1jb250ZXh0LmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtcmVhZC1jb21wbGV4LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWQtY29tcGxleC1maWVsZC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUmVhZENvbXBsZXhGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRSZWFkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcblxuICBwdWJsaWMgcGFsZXR0ZUNvbnRleHQgPSBQYWxldHRlQ29udGV4dDtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICBpZiAodGhpcy5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcikge1xuICAgICAgdGhpcy5jb250ZXh0ID0gUGFsZXR0ZUNvbnRleHQuVEFCTEVfVklFVztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZGVmYXVsdCB0byBkZWZhdWx0IHZpZXdzXG4gICAgICBpZiAoIXRoaXMuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IFBhbGV0dGVDb250ZXh0LkRFRkFVTFQ7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBpZiAoZmllbGQuaXNEeW5hbWljKCkpIHtcbiAgICAgICAgICBmaWVsZC5saXN0X2l0ZW1zID0gdGhpcy5jYXNlRmllbGQudmFsdWVbZmllbGQuaWRdLmxpc3RfaXRlbXM7XG4gICAgICAgICAgZmllbGQudmFsdWUgPSB7XG4gICAgICAgICAgICBsaXN0X2l0ZW1zOiBmaWVsZC5saXN0X2l0ZW1zLFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuY2FzZUZpZWxkLnZhbHVlW2ZpZWxkLmlkXS52YWx1ZSAmJiB0aGlzLmNhc2VGaWVsZC52YWx1ZVtmaWVsZC5pZF0udmFsdWUuY29kZSA/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlW2ZpZWxkLmlkXS52YWx1ZS5jb2RlIDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWVbZmllbGQuaWRdLnZhbHVlXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbnRleHRcIj5cbiAgPGNjZC1yZWFkLWNvbXBsZXgtZmllbGQtcmF3XG4gICAgKm5nU3dpdGNoQ2FzZT1cInBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW2Nhc2VGaWVsZHNdPVwiY2FzZUZpZWxkc1wiXG4gICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgW3RvcExldmVsRm9ybUdyb3VwXT1cInRvcExldmVsRm9ybUdyb3VwXCJcbiAgICBbaWRQcmVmaXhdPVwiaWRQcmVmaXhcIlxuICA+PC9jY2QtcmVhZC1jb21wbGV4LWZpZWxkLXJhdz5cbiAgPGNjZC1yZWFkLWNvbXBsZXgtZmllbGQtY29sbGVjdGlvbi10YWJsZVxuICAgICpuZ1N3aXRjaENhc2U9XCJwYWxldHRlQ29udGV4dC5UQUJMRV9WSUVXXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgW3RvcExldmVsRm9ybUdyb3VwXT1cInRvcExldmVsRm9ybUdyb3VwXCJcbiAgICBbaWRQcmVmaXhdPVwiaWRQcmVmaXhcIlxuICA+PC9jY2QtcmVhZC1jb21wbGV4LWZpZWxkLWNvbGxlY3Rpb24tdGFibGU+XG4gIDxjY2QtcmVhZC1jb21wbGV4LWZpZWxkLXRhYmxlXG4gICAgKm5nU3dpdGNoRGVmYXVsdFxuICAgIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCJcbiAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICBbdG9wTGV2ZWxGb3JtR3JvdXBdPVwidG9wTGV2ZWxGb3JtR3JvdXBcIlxuICAgIFtpZFByZWZpeF09XCJpZFByZWZpeFwiXG4gID48L2NjZC1yZWFkLWNvbXBsZXgtZmllbGQtdGFibGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jb21wbGV4LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2NvbXBsZXgvcmVhZC1jb21wbGV4LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2NvbXBsZXgvcmVhZC1jb21wbGV4LWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7SUNGbEUsZ0RBTzhCOzs7SUFMNUIsNENBQXVCLGlDQUFBLDJCQUFBLCtDQUFBLDZCQUFBOzs7SUFNekIsNkRBTTJDOzs7SUFKekMsNENBQXVCLDJCQUFBLCtDQUFBLDZCQUFBOzs7SUFLekIsa0RBT2dDOzs7SUFMOUIsNENBQXVCLGlDQUFBLDJCQUFBLCtDQUFBLDZCQUFBOztBRFQzQixNQUFNLE9BQU8seUJBQTBCLFNBQVEsMEJBQTBCO0lBSnpFOztRQU9TLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBRTdCLG1CQUFjLEdBQUcsY0FBYyxDQUFDO0tBMkJ4QztJQXpCUSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsRUFBRTtZQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUM7U0FDMUM7YUFBTTtZQUNMLDJCQUEyQjtZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUM3RCxJQUFJLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUM7YUFDdkM7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUU7b0JBQ3JCLEtBQUssQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQztvQkFDN0QsS0FBSyxDQUFDLEtBQUssR0FBRzt3QkFDWixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7d0JBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7NEJBQ2xGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7NEJBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUM3QyxDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O29JQTlCVSx5QkFBeUI7OERBQXpCLHlCQUF5QjtRQ1R0QyxnQ0FBbUM7UUFDakMsd0hBTzhCO1FBQzlCLGtKQU0yQztRQUMzQyw0SEFPZ0M7UUFDbEMsMEJBQWU7O1FBeEJELHNDQUFvQjtRQUU3QixlQUE4QztRQUE5QyxtRUFBOEM7UUFROUMsZUFBdUM7UUFBdkMsNERBQXVDOztzRkREL0IseUJBQXlCO3VGQUF6Qix5QkFBeUI7Y0FKckMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFdBQVcsRUFBRSwyQkFBMkI7YUFDekM7Z0JBSVEsVUFBVTtrQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24nO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9wYWxldHRlLWNvbnRleHQuZW51bSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLWNvbXBsZXgtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1jb21wbGV4LWZpZWxkLmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBSZWFkQ29tcGxleEZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRmllbGRzOiBDYXNlRmllbGRbXSA9IFtdO1xuXG4gIHB1YmxpYyBwYWxldHRlQ29udGV4dCA9IFBhbGV0dGVDb250ZXh0O1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyKSB7XG4gICAgICB0aGlzLmNvbnRleHQgPSBQYWxldHRlQ29udGV4dC5UQUJMRV9WSUVXO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBkZWZhdWx0IHRvIGRlZmF1bHQgdmlld3NcbiAgICAgIGlmICghdGhpcy5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciAmJiB0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gUGFsZXR0ZUNvbnRleHQuREVGQVVMVDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGlmIChmaWVsZC5pc0R5bmFtaWMoKSkge1xuICAgICAgICAgIGZpZWxkLmxpc3RfaXRlbXMgPSB0aGlzLmNhc2VGaWVsZC52YWx1ZVtmaWVsZC5pZF0ubGlzdF9pdGVtcztcbiAgICAgICAgICBmaWVsZC52YWx1ZSA9IHtcbiAgICAgICAgICAgIGxpc3RfaXRlbXM6IGZpZWxkLmxpc3RfaXRlbXMsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy5jYXNlRmllbGQudmFsdWVbZmllbGQuaWRdLnZhbHVlICYmIHRoaXMuY2FzZUZpZWxkLnZhbHVlW2ZpZWxkLmlkXS52YWx1ZS5jb2RlID9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWVbZmllbGQuaWRdLnZhbHVlLmNvZGUgOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZVtmaWVsZC5pZF0udmFsdWVcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29udGV4dFwiPlxuICA8Y2NkLXJlYWQtY29tcGxleC1maWVsZC1yYXdcbiAgICAqbmdTd2l0Y2hDYXNlPVwicGFsZXR0ZUNvbnRleHQuQ0hFQ0tfWU9VUl9BTlNXRVJcIlxuICAgIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCJcbiAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICBbdG9wTGV2ZWxGb3JtR3JvdXBdPVwidG9wTGV2ZWxGb3JtR3JvdXBcIlxuICAgIFtpZFByZWZpeF09XCJpZFByZWZpeFwiXG4gID48L2NjZC1yZWFkLWNvbXBsZXgtZmllbGQtcmF3PlxuICA8Y2NkLXJlYWQtY29tcGxleC1maWVsZC1jb2xsZWN0aW9uLXRhYmxlXG4gICAgKm5nU3dpdGNoQ2FzZT1cInBhbGV0dGVDb250ZXh0LlRBQkxFX1ZJRVdcIlxuICAgIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCJcbiAgICBbY29udGV4dF09XCJjb250ZXh0XCJcbiAgICBbdG9wTGV2ZWxGb3JtR3JvdXBdPVwidG9wTGV2ZWxGb3JtR3JvdXBcIlxuICAgIFtpZFByZWZpeF09XCJpZFByZWZpeFwiXG4gID48L2NjZC1yZWFkLWNvbXBsZXgtZmllbGQtY29sbGVjdGlvbi10YWJsZT5cbiAgPGNjZC1yZWFkLWNvbXBsZXgtZmllbGQtdGFibGVcbiAgICAqbmdTd2l0Y2hEZWZhdWx0XG4gICAgW2Nhc2VGaWVsZF09XCJjYXNlRmllbGRcIlxuICAgIFtjYXNlRmllbGRzXT1cImNhc2VGaWVsZHNcIlxuICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxuICAgIFt0b3BMZXZlbEZvcm1Hcm91cF09XCJ0b3BMZXZlbEZvcm1Hcm91cFwiXG4gICAgW2lkUHJlZml4XT1cImlkUHJlZml4XCJcbiAgPjwvY2NkLXJlYWQtY29tcGxleC1maWVsZC10YWJsZT5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,10 +1,6 @@
1
1
  import { Component } from '@angular/core';
2
2
  import { AbstractFormFieldComponent } from '../base-field/abstract-form-field.component';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "../datetime-picker/datetime-picker.component";
6
- import * as i3 from "@angular/forms";
7
- import * as i4 from "./write-date-field.component";
8
4
  function WriteDateContainerFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
9
5
  i0.ɵɵelementContainerStart(0);
10
6
  i0.ɵɵelement(1, "ccd-datetime-picker", 2);
@@ -29,7 +25,7 @@ WriteDateContainerFieldComponent.ɵcmp = i0.ɵɵdefineComponent({ type: WriteDat
29
25
  } if (rf & 2) {
30
26
  const _r1 = i0.ɵɵreference(2);
31
27
  i0.ɵɵproperty("ngIf", ctx.caseField.dateTimeEntryFormat)("ngIfElse", _r1);
32
- } }, directives: [i1.NgIf, i2.DatetimePickerComponent, i3.NgControlStatusGroup, i3.FormGroupDirective, i4.WriteDateFieldComponent], encapsulation: 2 });
28
+ } }, encapsulation: 2 });
33
29
  const ɵWriteDateContainerFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInheritedFactory(WriteDateContainerFieldComponent);
34
30
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteDateContainerFieldComponent, [{
35
31
  type: Component,
@@ -38,4 +34,4 @@ const ɵWriteDateContainerFieldComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetI
38
34
  templateUrl: './write-date-container-field.html'
39
35
  }]
40
36
  }], null, null); })();
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZGF0ZS1jb250YWluZXItZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZGF0ZS93cml0ZS1kYXRlLWNvbnRhaW5lci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9kYXRlL3dyaXRlLWRhdGUtY29udGFpbmVyLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7OztJQ0R6Riw2QkFBMkU7SUFDekUseUNBSXNCO0lBQ3hCLDBCQUFlOzs7SUFKWCxlQUF1QjtJQUF2Qiw0Q0FBdUIsK0JBQUEseUJBQUE7OztJQU16QiwwQ0FJd0I7OztJQUh0Qiw0Q0FBdUIsK0JBQUEseUJBQUE7O0FERjNCLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSwwQkFBMEI7O3lKQUFuRSxnQ0FBZ0M7cUVBQWhDLGdDQUFnQztRQ1A3QyxtR0FNZTtRQUNmLGtJQU1jOzs7UUFiQyx3REFBcUMsaUJBQUE7OzZGRE92QyxnQ0FBZ0M7dUZBQWhDLGdDQUFnQztjQUo1QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztnQkFDMUMsV0FBVyxFQUFFLG1DQUFtQzthQUNqRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZvcm0tZmllbGQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWRhdGUtY29udGFpbmVyLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWRhdGUtY29udGFpbmVyLWZpZWxkLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlRGF0ZUNvbnRhaW5lckZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGb3JtRmllbGRDb21wb25lbnQge31cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjYXNlRmllbGQuZGF0ZVRpbWVFbnRyeUZvcm1hdDsgZWxzZSBuYXRpdmVEYXRlcGlja2VyXCI+XG4gIDxjY2QtZGF0ZXRpbWUtcGlja2VyXG4gICAgW2Nhc2VGaWVsZF09XCJjYXNlRmllbGRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICBbcGFyZW50XT1cInBhcmVudFwiPlxuICA8L2NjZC1kYXRldGltZS1waWNrZXI+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjbmF0aXZlRGF0ZXBpY2tlcj5cbiAgPGNjZC13cml0ZS1kYXRlLWZpZWxkXG4gICAgW2Nhc2VGaWVsZF09XCJjYXNlRmllbGRcIlxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCJcbiAgICBbcGFyZW50XT1cInBhcmVudFwiXG4gID48L2NjZC13cml0ZS1kYXRlLWZpZWxkPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZGF0ZS1jb250YWluZXItZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZGF0ZS93cml0ZS1kYXRlLWNvbnRhaW5lci1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9kYXRlL3dyaXRlLWRhdGUtY29udGFpbmVyLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7O0lDRHpGLDZCQUEyRTtJQUN6RSx5Q0FJc0I7SUFDeEIsMEJBQWU7OztJQUpYLGVBQXVCO0lBQXZCLDRDQUF1QiwrQkFBQSx5QkFBQTs7O0lBTXpCLDBDQUl3Qjs7O0lBSHRCLDRDQUF1QiwrQkFBQSx5QkFBQTs7QURGM0IsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLDBCQUEwQjs7eUpBQW5FLGdDQUFnQztxRUFBaEMsZ0NBQWdDO1FDUDdDLG1HQU1lO1FBQ2Ysa0lBTWM7OztRQWJDLHdEQUFxQyxpQkFBQTs7NkZET3ZDLGdDQUFnQzt1RkFBaEMsZ0NBQWdDO2NBSjVDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO2dCQUMxQyxXQUFXLEVBQUUsbUNBQW1DO2FBQ2pEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZm9ybS1maWVsZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtd3JpdGUtZGF0ZS1jb250YWluZXItZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vd3JpdGUtZGF0ZS1jb250YWluZXItZmllbGQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVEYXRlQ29udGFpbmVyRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZvcm1GaWVsZENvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhc2VGaWVsZC5kYXRlVGltZUVudHJ5Rm9ybWF0OyBlbHNlIG5hdGl2ZURhdGVwaWNrZXJcIj5cbiAgPGNjZC1kYXRldGltZS1waWNrZXJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFtwYXJlbnRdPVwicGFyZW50XCI+XG4gIDwvY2NkLWRhdGV0aW1lLXBpY2tlcj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNuYXRpdmVEYXRlcGlja2VyPlxuICA8Y2NkLXdyaXRlLWRhdGUtZmllbGRcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFtwYXJlbnRdPVwicGFyZW50XCJcbiAgPjwvY2NkLXdyaXRlLWRhdGUtZmllbGQ+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=