{"version":3,"file":"hmcts-ccd-case-ui-toolkit.mjs","sources":["../../../projects/ccd-case-ui-toolkit/src/lib/components/footer/footer.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/footer/footer.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/header/header-bar/header-bar.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/header/header-bar/header-bar.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/header/navigation/navigation.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/header/navigation/navigation.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/header/navigation/navigation-item.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/header/navigation/navigation-item.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/header/phase/phase.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/header/phase/phase.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/header/headers.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/body/body.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/body/body.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/form/date-input/date-input.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/form/date-input/date-input.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/alert/alert.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/alert/alert.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/alert/alert-icon-class.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/alert/alert.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/notification-banner/enums/notification-banner-style.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/notification-banner/enums/notification-banner-type.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/notification-banner/notification-banner.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/notification-banner/notification-banner.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/tabs/tab.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/tabs/tab.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/tabs/tabs.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/tabs/tabs.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/tabs/tabs.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/activity/activity-banner/activity-banner.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/activity/activity-banner/activity-banner.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/activity/activity-icon/activity-icon.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/activity/activity-icon/activity-icon.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/activity/activity.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/app.config.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/http/http-error.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/auth/auth.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/loading/loading.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/loading/loading.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/http/http-error.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/http/http.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/session/session-storage.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/utils.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/activity/activity.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/activity/activity.polling.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/activity/activity.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/activity/activity.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/activity/activity.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/alert/alert.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/draft.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/draft/draft.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/conditional-show/services/grey-bar.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/utils/dash.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/case-fields/format-translator.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/utils/date.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/utils/field-label.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/utils/first-error.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/utils/is-compound.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/case-fields/case-field.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/utils/is-mandatory.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/utils/is-read-only.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/utils/utils.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/addresses/address.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/alert/alert.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-details.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-event-data.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/domain/wizard-page-field.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/fixed-list-item.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/field-type.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/case-field.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/domain/wizard-page.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-view/case-event-trigger.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-view/case-view-event.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-view/case-view-trigger.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/case-event.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/case-state.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/case-type-lite.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/case-type.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/event-case-field.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/jurisdiction.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/banner.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-view/case-tab.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-view/case-view.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-view/case-print-document.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/document/document-data.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/organisation/organisation-converter.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/pagination-metadata.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/profile/profile.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/search/field.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/search/search-result-view-column.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/search/search-result-view-item.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/search/search-result-view.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/search/sorting/sort-parameters.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/sort-order.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/workbasket/workbasket-input.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/fields/fields.utils.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/conditional-show/services/condition.peg.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/conditional-show/services/condition-parser.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/conditional-show/domain/conditional-show.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/commons/constants.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/form/form-validators.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/abstract-form-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/abstract-field-write.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/conditional-show/conditional-show-form.directive.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/conditional-show/conditional-show.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/fields/fields.purger.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/form/field-type-sanitiser.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/form/form-value.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/substitutor/services/placeholder.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/substitutor/label-substitutor.directive.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/substitutor/label-substitutor.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/focus-element/focus-element.directive.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/focus-element/focus-element.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.directive.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/directives/welsh-translated-markdown/welsh-translated-markdown.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/addresses/address-type.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/addresses/country-language.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/addresses/address-parser.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/addresses/addresses.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/case-file-view/case-file-view.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/case-flag-refdata.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/refdata-case-flag-type.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/cookie/read-cookie-service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/document-management/document-management.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/error/error-notifier.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/eventStatusService/event-status.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/form/form-error.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/journey/multipage-component-state.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/jurisdiction/jurisdiction.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/banners/banners.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/navigation/navigation-origin.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/navigation/navigation-notifier.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/order/order.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/profile/profile.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/profile/profile.notifier.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/request/request.options.builder.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/search/search.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/router/router-helper.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/utils/retry/retry.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/window/window.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/workbasket/workbasket-input-filter.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/definitions/definitions.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/definitions/definitions.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/organisation/organisation.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/browser/browser.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-access-utils/index.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/domain/confirmation.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/domain/event-completion-return-states.enum.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/domain/event-completion-states.enum.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/domain/wizard.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/convert-href-to-router.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/event-trigger.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/wizard-factory.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/case-edit-wizard.guard.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/case-worker.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/case.notifier.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/work-allocation/Task.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/domain/event-completion-task-states.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/event-completion-state-machine.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/judicial-worker.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/page-validation.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/work-allocation.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit/case-edit.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit/case-edit.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-utils/case-edit.utils.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/cases.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-create/case-create.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-create/case-create.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-form/case-edit-form.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/commons/case-edit-data/case-edit-data.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/commons/case-edit-data/case-edit-data.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/helpers/init-dialog-helper.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/services/linked-cases.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/services/case-flag-state.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-page/case-edit-page.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/error/domain/error-context.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/error/callback-errors.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/error/callback-errors.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-event-completion/case-event-completion.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/address/address-option.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/commons/address-validation-constants.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/complex/fields-filter.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/write-complex-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/write-complex-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/address/write-address-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/address/write-address-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/palette-context.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/abstract-field-read.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/abstract-field-write-journey.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/abstract-journey.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/definition/display-context-enum.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/case-file-view-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/case-file-view-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/utils/case-flag-priority.utils.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/read-case-flag-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/read-case-flag-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/write-case-flag-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/write-case-flag-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/case-reference/case-reference.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-link/read-case-link-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-link/read-case-link-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-link/write-case-link-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-link/write-case-link-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/collection/read-collection-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/collection/read-collection-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/collection/write-collection-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/collection/write-collection-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/read-complex-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/read-complex-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/date/read-date-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/date/write-date-container-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/date/write-date-container-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/document/read-document-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/document/read-document-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/dialogs/document-dialog/document-dialog.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/dialogs/document-dialog/document-dialog.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/document/file-upload-state.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/document/write-document-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/document/write-document-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/markdown/markdown.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/markdown/markdown.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/fixed-list/fixed-list.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/email/read-email-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/email/write-email-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/email/write-email-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/fixed-list/write-fixed-list-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/history/case-history-viewer-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/history/case-history-viewer-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/label/label-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/label/label-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/utils/validators.utils.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/domain/linked-cases.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/services/common-data-service/common-data-service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/money-gbp/money-gbp-input.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/money-gbp/write-money-gbp-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/number/read-number-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/number/write-number-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/number/write-number-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/order-summary/read-order-summary-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/order-summary/read-order-summary-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/order-summary/write-order-summary-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/order-summary/write-order-summary-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/read-organisation-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/read-organisation-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/write-organisation-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/write-organisation-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/payment-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/payment/case-payment-history-viewer-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/phone-uk/write-phone-uk-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/__mocks__/index.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/services/qualifying-question.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/models/query-create-context.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/utils/query-management.utils.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/constants/query-management.constants.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/services/query-management.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-details/query-details.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-details/query-details.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/sort-order.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-list/query-list.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-list/query-list.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/close-query/close-query.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/components/close-query/close-query.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/read-query-management-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/query-management/read-query-management-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/text-area/read-text-area-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/text-area/write-text-area-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/text-area/write-text-area-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/text/read-text-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/text/write-text-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/text/write-text-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/unsupported-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/waystopay/waystopay-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/waystopay/waystopay-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/yes-no/yes-no.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/yes-no/read-yes-no-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/yes-no/write-yes-no-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/yes-no/write-yes-no-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/palette.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/field-read.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/field-read.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/field-write.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/field-write.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/field-read-label.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/base-field/field-read-label.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-file-view/case-file-view-sort-columns.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-toggle/case-file-view-folder-toggle.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-toggle/case-file-view-folder-toggle.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-file-view/case-file-view-category.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-file-view/case-file-view-document.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-file-view/categories-and-documents.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-file-view/document-tree-node/document-tree-node-type.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-flag/flag-type.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-flag/hmcts-service-detail.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/read-complex-field-raw.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/read-complex-field-raw.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/read-complex-field-table.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/read-complex-field-table.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/read-complex-field-collection-table.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/complex/read-complex-field-collection-table.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/date/write-date-field.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/date/write-date-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/datetime-picker/datetime-picker-utils.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/datetime-picker/datetime-picker.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/datetime-picker/datetime-picker.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/document/document-url.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/history/event-log/event-log-details.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/history/event-log/event-log-details.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/history/event-log/event-log-table.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/history/event-log/event-log-table.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/history/event-log/event-log.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/history/event-log/event-log.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/markdown/routerlink.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/case-title/ccd-case-title.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/complex/ccd-tab-fields.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/complex/ccd-page-fields.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/pipes/pipes.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/markdown/markdown-component.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/order-summary/fee-value.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/order-summary/fee.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/order-summary/order-summary.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/order-summary/read-order-summary-row.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/order-summary/read-order-summary-row.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/read-organisation-field-raw.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/read-organisation-field-raw.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/read-organisation-field-table.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/read-organisation-field-table.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/write-organisation-complex-field.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/organisation/write-organisation-complex-field.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/notification-banner/notification-banner.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/banners/banners.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/body/body.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/footer/footers.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/components/form/form.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/collection/collection-create-checker.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/document/file-upload-progress.guard.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/error/errors.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/palette/palette.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-progress/case-progress.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-progress/case-progress.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/loading-spinner/loading-spinner.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/loading-spinner/loading-spinner.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/loading-spinner/loading-spinner.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/case-editor.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/editor.routing.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-header/case-header.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-header/case-header.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-header/case-header.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/pagination/pagination.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/pagination/pagination.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-list/case-list.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-list/case-list.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/pagination/pagination.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-list/case-list.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/workbasket-filters/workbasket-filters.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/workbasket-filters/workbasket-filters.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/workbasket-filters/workbasket-filters.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-view/access-types.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-list-filters/case-list-filters.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-list-filters/case-list-filters.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-list-filters/case-list-filters.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-history/domain/case-history.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-history/services/case-history.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-history/case-history.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-history/case-history.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-history/case-history.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-timeline/case-timeline.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-timeline/case-timeline.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-timeline/case-timeline.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/services/case.resolver.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/services/event-trigger.resolver.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-view/case-view.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-view/case-view.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/domain/case-view/case-view-event-ids.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/dialogs/dialogs.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/printer/case-printer.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/printer/case-printer.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-viewer.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-viewer.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/error-message/error-message.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/error-message/error-message.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/error-message/error-message.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/task-assigned/task-assigned.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/task-assigned/task-assigned.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/task-conflict/task-conflict.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/task-conflict/task-conflict.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/event-guard/event-start.guard.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/models/event-start-states-enum.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/services/event-start-state-machine.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/event-start.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-start/event-start.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-trigger/event-trigger.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-trigger/event-trigger.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/event-trigger/event-trigger.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-challenged-access-request/models/case-challenged-access-request.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-review-specific-access-request/models/case-review-specific-access-request.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/case-viewer.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-viewer/viewer.routing.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/create-case-filters/create-case-filters.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/create-case-filters/create-case-filters.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/create-case-filters/create-case-filters.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/create-case-filters/create-case-filters-selection.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/search-filters/domain/search-input.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/search-filters/search-filters.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/search-filters/search-filters.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/search-filters/search-filters-wrapper.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/search-filters/search-filters-wrapper.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/search-filters/search-filters.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.html","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.component.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/search-result/search-result.module.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/fixture/case-field-builder.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/fixture/shared.test.fixture.ts","../../../projects/ccd-case-ui-toolkit/src/lib/shared/test/test-route-snapshot-builder.ts","../../../projects/ccd-case-ui-toolkit/src/hmcts-ccd-case-ui-toolkit.ts"],"sourcesContent":["<footer class=\"group js-footer\" id=\"footer\" role=\"footer\">\n  <div [class.full-screen]=\"!isSolicitor\" class=\"footer-wrapper\">\n\n    <!-- Condition: Solicitor -->\n    <div *ngIf=\"isSolicitor\" class=\"footer-meta\">\n      <div class=\"footer-meta-inner\">\n        <ng-content select=\"[footerSolsNavLinks]\"></ng-content>\n        <div class=\"open-government-licence\">\n          <p class=\"logo\"><a href=\"https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/\" rel=\"license\">{{'Open Government Licence' | rpxTranslate}}</a></p>\n          <p>{{'All content is available under the' | rpxTranslate}} <a href=\"https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/\" rel=\"license\">{{'Open Government Licence v3.0' | rpxTranslate}}</a>, {{'except where otherwise stated' | rpxTranslate}}</p>\n        </div>\n      </div>\n\n      <div class=\"copyright\">\n        <a href=\"https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/copyright-and-re-use/crown-copyright/\">\n          © {{'Crown copyright' | rpxTranslate}}\n        </a>\n      </div>\n    </div>\n\n    <!-- Condition: Case Worker -->\n    <div *ngIf=\"!isSolicitor\" class=\"footer-meta\">\n      <div class=\"title\">\n        <span class=\"footer-text\">{{'Help' | rpxTranslate}}</span>\n      </div>\n      <div class=\"email\">\n        <span class=\"footer-text\">{{'Email' | rpxTranslate}}: <a href=\"mailto:{{email}}\">{{email}}</a></span>\n      </div>\n      <div class=\"phone\">\n        <span class=\"footer-text\">{{'Phone' | rpxTranslate}}: {{phone}}</span>\n      </div>\n      <div class=\"work-hours\">\n        <span class=\"footer-text\">{{workhours | rpxTranslate}}</span>\n      </div>\n      <ng-content select=\"[footerCaseWorkerNavLinks]\"></ng-content>\n    </div>\n\n  </div>\n</footer>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'cut-footer-bar',\n    templateUrl: './footer.html',\n    styleUrls: ['./footer.scss'],\n    standalone: false\n})\nexport class FooterComponent {\n\n  @Input()\n  public email: string;\n\n  @Input()\n  public isSolicitor: boolean;\n\n  @Input()\n  public phone: string;\n\n  @Input()\n  public workhours: string;\n\n}\n","<header role=\"banner\" id=\"global-header\" class=\"with-proposition\">\n  <div [class.full-screen]=\"!isSolicitor\" class=\"header-wrapper\">\n\n    <div class=\"header-global\" [class.header-logo]=\"isSolicitor\">\n      <div *ngIf=\"isSolicitor\">\n        <a href=\"https://www.gov.uk\" title=\"Go to the GOV.UK homepage\" id=\"logo\" class=\"content\" style=\"margin-left: 0px;\">\n          <img src=\"/img/gov.uk_logotype_crown_invert_trans.png?0.23.0\" width=\"36\" height=\"32\" alt=\"\"> {{'GOV.UK'}}\n        </a>\n      </div>\n      <div class=\"global-header\" *ngIf=\"!isSolicitor\">\n        <div class=\"title\">\n          <span>{{title | rpxTranslate}}</span>\n        </div>\n      </div>\n    </div>\n\n    <div class=\"header-proposition\">\n      <div class=\"content\">\n        <a href=\"#proposition-links\" class=\"js-header-toggle menu\">{{'Menu' | rpxTranslate}}</a>\n        <div *ngIf=\"isSolicitor\" id=\"proposition-menu\">\n          <div class=\"title-solicitor\">\n            <span id=\"proposition-name\">{{title | rpxTranslate}}</span>\n            <ng-content select=\"[headerNavigation]\"></ng-content>\n          </div>\n        </div>\n\n        <div class=\"proposition-right\">\n          <span id=\"user-name\">{{username}}</span>\n          <button type=\"button\" class=\"govuk-js-link\" (click)=\"signOut()\" id=\"sign-out\">{{'Sign Out' | rpxTranslate}}</button>\n        </div>\n      </div>\n    </div>\n\n  </div>\n</header>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  selector: 'cut-header-bar',\n  templateUrl: './header-bar.html',\n  styleUrls: ['./header-bar.scss'],\n  standalone: false\n})\nexport class HeaderBarComponent {\n\n  @Input()\n  public title: string;\n\n  @Input()\n  public isSolicitor: boolean;\n\n  @Input()\n  public username: string;\n\n  @Output()\n  private readonly signOutRequest: EventEmitter<any> = new EventEmitter();\n\n  public signOut() {\n    this.signOutRequest.emit();\n  }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'cut-nav-bar',\n    templateUrl: './navigation.html',\n    styleUrls: ['./navigation.scss'],\n    standalone: false\n})\nexport class NavigationComponent {\n\n  @Input()\n  public isSolicitor: boolean;\n\n}\n","<div>\n  <nav [class.full-screen]=\"!isSolicitor\" class=\"cut-nav-bar\">\n      <ng-content select=\"[leftNavLinks]\"></ng-content>\n      <ng-content select=\"[rightNavLinks]\"></ng-content>\n  </nav>\n</div>\n","<div>\n  <a [routerLinkActive]=\"'item-bold'\" [routerLink]=\"link\">{{label | rpxTranslate}}</a>\n  <input type=\"image\" alt=\"{{label}} button\" *ngIf=\"imageLink\" src=\"{{imageLink}}\"/>\n</div>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'cut-nav-item',\n    templateUrl: './navigation-item.html',\n    styleUrls: ['./navigation-item.scss'],\n    standalone: false\n})\nexport class NavigationItemComponent {\n\n  @Input()\n  public label: string;\n\n  @Input()\n  public link: string;\n\n  @Input()\n  public imageLink: string;\n\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n    selector: 'cut-phase-bar',\n    templateUrl: './phase.html',\n    styleUrls: ['./phase.scss'],\n    standalone: false\n})\nexport class PhaseComponent {\n\n  @Input()\n  public phaseLabel: string;\n\n  @Input()\n  public phaseLink: string;\n\n  @Input()\n  public isSolicitor: boolean;\n\n}\n","<div [class.full-screen]=\"!isSolicitor\" class=\"phase-banner\">\n  <p>\n    <strong class=\"phase-tag\">{{phaseLabel | rpxTranslate}}</strong>\n    <span class=\"text-16\">{{'This  is a new service – your' | rpxTranslate}} <a href=\"{{phaseLink}}\" target=\"_blank\" rel=\"noopener\">{{'feedback' | rpxTranslate}}</a> {{'will help us to improve it' | rpxTranslate}}.</span>\n  </p>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { HeaderBarComponent } from './header-bar/header-bar.component';\nimport { NavigationItemComponent } from './navigation/navigation-item.component';\nimport { NavigationComponent } from './navigation/navigation.component';\nimport { PhaseComponent } from './phase/phase.component';\n\n@NgModule({\n    imports: [CommonModule, RouterModule, RpxTranslationModule.forChild()],\n    declarations: [PhaseComponent, HeaderBarComponent, NavigationComponent, NavigationItemComponent],\n    exports: [PhaseComponent, HeaderBarComponent, NavigationComponent, NavigationItemComponent]\n})\nexport class HeadersModule {}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n    selector: 'cut-body',\n    templateUrl: './body.html',\n    styleUrls: ['./fonts.scss'],\n    encapsulation: ViewEncapsulation.None,\n    standalone: false\n})\nexport class BodyComponent {\n\n}\n","<div class=\"global-display\">\n  <ng-content select=\"[topBody]\"></ng-content>\n  <ng-content select=\"[leftBody]\"></ng-content>\n  <ng-content select=\"[rightBody]\"></ng-content>\n</div>\n","<div class=\"form-date\">\n  <div class=\"form-group form-group-day\">\n    <span class=\"form-label\" [attr.id]=\"'day-label-'+dayId()\">{{'Day' | rpxTranslate}}</span>\n    <input #dayInput\n           class=\"form-control\"\n           [id]=\"dayId()\"\n           [name]=\"dayId()\"\n           type=\"text\"\n           pattern=\"[0-9]*\"\n           inputmode=\"numeric\"\n           [attr.aria-labelledby]=\"'day-label-'+dayId()\"\n           [value]=\"displayDay\"\n           (change)=\"dayChange(dayInput.value)\"\n           (keyup)=\"dayChange(dayInput.value)\"\n           (focus)=\"inputFocus()\"\n           [ngClass]=\"{'govuk-input--error': isInvalid}\">\n  </div>\n\n  <div class=\"form-group form-group-month\">\n    <span class=\"form-label\" [attr.id]=\"'month-label-'+ monthId()\">{{'Month' | rpxTranslate}}</span>\n    <input #monthInput\n           class=\"form-control\"\n           [id]=\"monthId()\"\n           [name]=\"monthId()\"\n           type=\"text\"\n           pattern=\"[0-9]*\"\n           inputmode=\"numeric\"\n           [attr.aria-labelledby]=\"'month-label-'+ monthId()\"\n           [value]=\"displayMonth\"\n           (change)=\"monthChange(monthInput.value)\"\n           (keyup)=\"monthChange(monthInput.value)\"\n           (focus)=\"inputFocus()\"\n           [ngClass]=\"{'govuk-input--error': isInvalid}\">\n  </div>\n\n  <div class=\"form-group form-group-year\">\n    <span class=\"form-label\" [attr.id]=\"'year-label-'+ yearId()\">{{'Year' | rpxTranslate}}</span>\n    <input #yearInput\n           class=\"form-control\"\n           [id]=\"yearId()\"\n           [name]=\"yearId()\"\n           type=\"text\"\n           pattern=\"[0-9]*\"\n           inputmode=\"numeric\"\n           [attr.aria-labelledby]=\"'year-label-'+ yearId()\"\n           [value]=\"displayYear\"\n           (change)=\"yearChange(yearInput.value)\"\n           (keyup)=\"yearChange(yearInput.value)\"\n           (focus)=\"inputFocus()\"\n           [ngClass]=\"{'govuk-input--error': isInvalid}\">\n  </div>\n\n  <div class=\"form-group form-group-hour\" *ngIf=\"isDateTime\">\n    <span class=\"form-label\" [attr.id]=\"'hour-label-'+ hourId()\">{{'Hour' | rpxTranslate}}</span>\n    <input #hourInput\n           class=\"form-control\"\n           [id]=\"hourId()\"\n           [name]=\"hourId()\"\n           type=\"text\"\n           pattern=\"[0-9]*\"\n           inputmode=\"numeric\"\n           [attr.aria-labelledby]=\"'hour-label-'+ hourId()\"\n           [value]=\"displayHour\"\n           (input)=\"hourChange(hourInput.value)\"\n           (keyup)=\"hourChange(hourInput.value)\"\n           (focus)=\"inputFocus()\"\n           [ngClass]=\"{'govuk-input--error': isInvalid}\">\n  </div>\n\n  <div class=\"form-group form-group-minute\" *ngIf=\"isDateTime\">\n    <span class=\"form-label\" [attr.id]=\"'minute-label-'+ minuteId()\">{{'Minute' | rpxTranslate}}</span>\n    <input #minuteInput\n           class=\"form-control\"\n           [id]=\"minuteId()\"\n           [name]=\"minuteId()\"\n           type=\"text\"\n           pattern=\"[0-9]*\"\n           inputmode=\"numeric\"\n           [attr.aria-labelledby]=\"'minute-label-'+ minuteId()\"\n           [value]=\"displayMinute\"\n           (input)=\"minuteChange(minuteInput.value)\"\n           (keyup)=\"minuteChange(minuteInput.value)\"\n           (focus)=\"inputFocus()\"\n           [ngClass]=\"{'govuk-input--error': isInvalid}\">\n  </div>\n\n  <div class=\"form-group form-group-second\" *ngIf=\"isDateTime\">\n    <span class=\"form-label\" [attr.id]=\"'second-label-'+ secondId()\">{{'Second' | rpxTranslate}}</span>\n    <input #secondInput\n           class=\"form-control\"\n           [id]=\"secondId()\"\n           [name]=\"secondId()\"\n           type=\"text\"\n           pattern=\"[0-9]*\"\n           inputmode=\"numeric\"\n           [attr.aria-labelledby]=\"'second-label-'+ secondId()\"\n           [value]=\"displaySecond\"\n           (input)=\"secondChange(secondInput.value)\"\n           (keyup)=\"secondChange(secondInput.value)\"\n           (focus)=\"inputFocus()\"\n           [ngClass]=\"{'govuk-input--error': isInvalid}\">\n  </div>\n</div>\n","import { Component, forwardRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\n\n@Component({\n  selector: 'cut-date-input',\n  templateUrl: './date-input.html',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => DateInputComponent),\n      multi: true\n    },\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => DateInputComponent),\n      multi: true\n    }\n  ],\n  standalone: false\n})\nexport class DateInputComponent implements ControlValueAccessor, Validator, OnInit, OnDestroy {\n  @Input()\n  public id: string;\n\n  @Input()\n  public mandatory: boolean;\n\n  @Input()\n  public isDateTime: boolean;\n\n  @Input()\n  public formControl: FormControl;\n\n  @Input()\n  public isInvalid: boolean;\n\n  public isTouched = false;\n  public displayDay: string = null;\n  public displayMonth: string = null;\n  public displayYear: string = null;\n\n  public displayHour: string = null;\n  public displayMinute: string = null;\n  public displaySecond: string = null;\n  // Works with\n  // 2018-04-09T08:02:27.542\n  // 2018-04-09T08:02:27.542Z\n  // 2018-04-09T08:02:27.542+01:00\n  private readonly DATE_FORMAT =\n    /^(19|20)\\d{2}-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?|Z)?$/;\n  //    year - month -  day     T   HH     :   MM      :  SS       .000        Z or +     01 :   00\n  private propagateChange: (_: any) => {};\n  private rawValue = '';\n  private day: string;\n  private month: string;\n  private year: string;\n  private hour: string;\n  private minute: string;\n  private second: string;\n\n  public ngOnInit() {\n    if (this.mandatory && this.isDateTime) {\n      this.displayHour = '00';\n      this.displayMinute = '00';\n      this.displaySecond = '00';\n      this.hour = '00';\n      this.minute = '00';\n      this.second = '00';\n    }\n  }\n\n  public writeValue(obj: string): void { // 2018-04-09T08:02:27.542\n    if (obj) {\n      this.rawValue = this.removeMilliseconds(obj);\n      // needs to handle also partial dates, e.g. -05-2016 (missing day)\n      const [datePart, timePart] = this.rawValue.split('T');\n      const dateValues = datePart.split('-');\n      this.year = this.displayYear = dateValues[0] || '';\n      this.month = this.displayMonth = dateValues[1] || '';\n      this.day = this.displayDay = dateValues[2] || '';\n      if (timePart) {\n        const timeParts = timePart.split(':');\n        this.hour = this.displayHour = timeParts[0] || '';\n        this.minute = this.displayMinute = timeParts[1] || '';\n        this.second = this.displaySecond = timeParts[2] || '';\n      }\n    }\n  }\n\n  public validate(control: AbstractControl): ValidationErrors {\n    if (this.mandatory && !this.viewValue()) {\n      return {\n        required: 'This field is required'\n      };\n    }\n    if (control.value && !this.isDateFormat(this.getValueForValidation(control))) {\n      return {\n        pattern: 'Date is not valid'\n      };\n    }\n    return undefined;\n  }\n\n  public registerOnChange(fn: any): void {\n    this.propagateChange = fn;\n  }\n\n  public registerOnTouched(fn: any): void {\n    // Do nothing.\n  }\n\n  public ngOnDestroy() {\n    this.validate = (control: AbstractControl): ValidationErrors => {\n      return undefined;\n    };\n  }\n\n  public dayChange(value: string) {\n    // get value from input\n    this.day = value;\n\n    this.rawValue = this.viewValue();\n\n    // update the form\n    this.propagateChange(this.rawValue);\n  }\n\n  public monthChange(value: string) {\n    // get value from input\n    this.month = value;\n\n    this.rawValue = this.viewValue();\n\n    // update the form\n    this.propagateChange(this.rawValue);\n\n  }\n\n  public yearChange(value: string) {\n    // get value from input\n    this.year = value;\n\n    this.rawValue = this.viewValue();\n\n    // update the form\n    this.propagateChange(this.rawValue);\n  }\n\n  public hourChange(value: string) {\n    // get value from input\n    this.hour = value;\n\n    this.rawValue = this.viewValue();\n\n    // update the form\n    this.propagateChange(this.rawValue);\n  }\n\n  public minuteChange(value: string) {\n    // get value from input\n    this.minute = value;\n\n    this.rawValue = this.viewValue();\n\n    // update the form\n    this.propagateChange(this.rawValue);\n\n  }\n\n  public secondChange(value: string) {\n    // get value from input\n    this.second = value;\n\n    this.rawValue = this.viewValue();\n\n    // update the form\n    this.propagateChange(this.rawValue);\n  }\n\n  public inputFocus() {\n    this.isTouched = false;\n    this.touch();\n  }\n\n  public touch() {\n    if (this.isTouched) {\n      this.formControl.markAsTouched();\n      this.propagateChange(this.rawValue);\n    } else {\n      this.formControl.markAsUntouched();\n    }\n  }\n\n  public dayId() {\n    return this.id + '-day';\n  }\n\n  public monthId() {\n    return this.id + '-month';\n  }\n\n  public yearId() {\n    return this.id + '-year';\n  }\n\n  public hourId() {\n    return this.id + '-hour';\n  }\n\n  public minuteId() {\n    return this.id + '-minute';\n  }\n\n  public secondId() {\n    return this.id + '-second';\n  }\n\n  private viewValue(): string {\n    if (this.day || this.month || this.year || this.hour || this.minute || this.second) {\n      const date = [\n        this.year ? this.year : '',\n        this.month ? this.pad(this.month) : '',\n        this.day ? this.pad(this.day) : ''\n      ].join('-');\n      if (this.isDateTime) {\n        const time = [\n          this.hour ? this.pad(this.hour) : '',\n          this.minute ? this.pad(this.minute) : '',\n          this.second ? this.pad(this.second) : ''\n        ].join(':');\n        return `${date}T${time}.000`;\n      } else {\n        return date;\n      }\n    }\n    return null;\n  }\n\n  private isDateFormat(val: any): boolean {\n    return this.DATE_FORMAT.test(val);\n  }\n\n  private pad(num: any, padNum = 2): string {\n    const val = num !== undefined ? num.toString() : '';\n    return val.length >= padNum ? val : new Array(padNum - val.length + 1).join('0') + val;\n  }\n\n  private getValueForValidation(control: any) {\n    if (this.isDateTime) {\n      return control.value;\n    } else {\n      return control.value.replace(/Z.*/, 'T00:00:00Z');\n    }\n  }\n\n  private removeMilliseconds(dateTime: string): string {\n    return dateTime.replace(/\\..*/, '');\n  }\n}","<div\n  class=\"hmcts-banner\"\n  [class.hmcts-banner--warning]=\"type === alertMessageType.WARNING || type === alertMessageType.ERROR\"\n  [class.hmcts-banner--success]=\"type === alertMessageType.SUCCESS\"\n>\n  <ng-container [ngSwitch]=\"type\">\n    <ng-container *ngSwitchCase=\"alertMessageType.WARNING\">\n      <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n        xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n        <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\"></path>\n      </svg>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"alertMessageType.ERROR\">\n      <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n        xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n        <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\"></path>\n      </svg>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"alertMessageType.SUCCESS\">\n      <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n        xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n        <path d=\"M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z\"></path>\n      </svg>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"alertMessageType.INFORMATION\">\n      <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n        xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n        <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n      C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\"></path>\n      </svg>\n    </ng-container>\n  </ng-container>\n  <div class=\"hmcts-banner__message\">\n    <span class=\"hmcts-banner__assistive\">{{type | rpxTranslate}}</span>\n    <ng-content></ng-content>\n  </div>\n</div>\n","import { Component, Input } from '@angular/core';\n\nexport enum AlertMessageType {\n  WARNING = 'warning',\n  SUCCESS = 'success',\n  ERROR = 'error',\n  INFORMATION = 'information'\n}\n\n@Component({\n  selector: 'cut-alert',\n  templateUrl: './alert.component.html',\n  styleUrls: [\n    './alert.component.scss'\n  ],\n  standalone: false\n})\nexport class AlertComponent {\n\n  // confirmation type has been removed as per EUI-3232\n  public static readonly TYPE_WARNING = 'warning';\n  public static readonly TYPE_SUCCESS = 'success';\n  public static readonly TYPE_ERROR = 'error';\n  public static readonly TYPE_INFORMATION = 'information';\n\n  @Input()\n  public type: AlertMessageType;\n\n  @Input()\n  public showIcon = true;\n\n  public alertMessageType = AlertMessageType;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AlertComponent } from './alert.component';\n\n@Pipe({\n  name: 'cutAlertIconClass',\n  standalone: false\n})\nexport class AlertIconClassPipe implements PipeTransform {\n  private static readonly CLASS_WARNING = 'icon-alert';\n  private static readonly CLASS_SUCCESS = 'icon-tick';\n\n  public transform(type: string): string {\n    switch (type) {\n      case AlertComponent.TYPE_SUCCESS:\n        return AlertIconClassPipe.CLASS_SUCCESS;\n      case AlertComponent.TYPE_WARNING:\n      default:\n        return AlertIconClassPipe.CLASS_WARNING;\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { AlertIconClassPipe } from './alert-icon-class.pipe';\nimport { AlertComponent } from './alert.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    AlertComponent,\n    AlertIconClassPipe\n  ],\n  exports: [\n    AlertComponent\n  ]\n})\nexport class AlertModule {}\n","export enum NotificationBannerHeaderClass {\n  INFORMATION = 'notification-banner-information',\n  ERROR = 'notification-banner-error',\n  SUCCESS = 'notification-banner-warning',\n  WARNING = 'notification-banner-success'\n}\n","export enum NotificationBannerType {\n  WARNING = 'warning',\n  SUCCESS = 'success',\n  ERROR = 'error',\n  INFORMATION = 'information'\n}\n","<div *ngIf=\"notificationBannerConfig\"\n  class=\"govuk-notification-banner\"\n  [ngClass]=\"notificationBannerConfig.headerClass\"\n  role=\"region\"\n  aria-labelledby=\"govuk-notification-banner-title\"\n  data-module=\"govuk-notification-banner\">\n\n  <div class=\"govuk-notification-banner__header\">\n    <h2 class=\"govuk-notification-banner__title\" id=\"govuk-notification-banner-title\">\n      {{notificationBannerConfig.headingText}}\n    </h2>\n  </div>\n  <div class=\"govuk-notification-banner__content\">\n    <p class=\"govuk-notification-banner__heading\">\n      <ng-container [ngSwitch]=\"notificationBannerConfig.bannerType\">\n        <ng-container *ngSwitchCase=\"notificationBannerType.WARNING\">\n          <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n            xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"36\" width=\"36\">\n            <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\"></path>\n          </svg>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"notificationBannerType.ERROR\">\n          <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n            xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"36\" width=\"36\">\n            <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\"></path>\n          </svg>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"notificationBannerType.SUCCESS\">\n          <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n            xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"36\" width=\"36\">\n            <path d=\"M25,6.2L8.7,23.2L0,14.1l4-4.2l4.7,4.9L21,2L25,6.2z\"></path>\n          </svg>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"notificationBannerType.INFORMATION\">\n          <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\"\n            xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"36\" width=\"36\">\n            <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n          C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\"></path>\n          </svg>\n        </ng-container>\n      </ng-container>\n      {{notificationBannerConfig.description}}\n      <a *ngIf=\"notificationBannerConfig.showLink && !notificationBannerConfig.triggerOutputEvent\"\n        class=\"govuk-notification-banner__link\"\n        href=\"{{notificationBannerConfig.linkUrl}}\">{{notificationBannerConfig.linkText}}</a>\n      <a *ngIf=\"notificationBannerConfig.showLink && notificationBannerConfig.triggerOutputEvent\"\n        class=\"govuk-notification-banner__link\"\n        href=\"#\"\n        (click)=\"onLinkClick(notificationBannerConfig.triggerOutputEventText); $event.preventDefault()\">{{notificationBannerConfig.linkText}}</a>\n    </p>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { NotificationBannerConfig } from './domain';\nimport { NotificationBannerType } from './enums';\n\n@Component({\n  selector: 'ccd-notification-banner',\n  templateUrl: './notification-banner.component.html',\n  styleUrls: ['./notification-banner.component.scss'],\n  standalone: false\n})\nexport class NotificationBannerComponent {\n  @Input()\n  public notificationBannerConfig: NotificationBannerConfig;\n\n  @Output()\n  public linkClicked: EventEmitter<string> = new EventEmitter<string>();\n\n  public get notificationBannerType(): typeof NotificationBannerType {\n    return NotificationBannerType;\n  }\n\n  public onLinkClick(triggerOutputEventText: string): void {\n    this.linkClicked.emit(triggerOutputEventText);\n  }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'cut-tab',\n  templateUrl: './tab.component.html',\n  styleUrls: [\n    './tabs.component.scss'\n  ],\n  standalone: false\n})\nexport class TabComponent {\n\n  @Input()\n  public id: string;\n\n  @Input()\n  public title: string;\n\n  @Input()\n  public selected: boolean;\n\n}\n","<div\n  class=\"tabs-panel\"\n  [id]=\"id\"\n  role=\"tabpanel\"\n  [ngClass]=\"{\n          'js-hidden': !selected\n        }\"\n  [attr.aria-hidden]=\"!selected\"\n>\n  <ng-content></ng-content>\n</div>\n","<div class=\"tabs\">\n\n  <ul class=\"tabs-list\" role=\"list\">\n    <li class=\"tabs-list-item\" *ngFor=\"let panel of panels\">\n      <a\n        class=\"tabs-toggle\"\n        [routerLink]=\"['.']\"\n        [fragment]=\"panel.id\"\n        role=\"tab\"\n        (click)=\"show(panel.id)\"\n        [attr.aria-controls]=\"panel.id\"\n        [attr.aria-selected]=\"panel.selected\"\n        tabindex=\"0\"\n        [ngClass]=\"{\n          'tabs-toggle-selected': panel.selected\n        }\"\n        #tab\n      >{{panel.title | rpxTranslate}}</a>\n    </li>\n  </ul>\n\n  <div class=\"tabs-content\">\n    <ng-content></ng-content>\n  </div>\n\n</div>\n","import { AfterContentInit, Component, ContentChildren, ElementRef, QueryList, ViewChildren } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { TabComponent } from './tab.component';\n\n@Component({\n  selector: 'cut-tabs',\n  templateUrl: './tabs.component.html',\n  styleUrls: [\n    './tabs.component.scss'\n  ],\n  standalone: false\n})\nexport class TabsComponent implements AfterContentInit {\n\n  @ViewChildren('tab') public tabs!: QueryList<ElementRef>;\n\n  @ContentChildren(TabComponent)\n  public panels: QueryList<TabComponent>;\n\n  private readonly panelIds: string[] = [];\n\n  constructor(private readonly route: ActivatedRoute) {}\n\n  public ngAfterContentInit(): void {\n    this.panels.forEach((panel) => this.panelIds.push(panel.id));\n\n    this.show(this.route.snapshot.fragment);\n  }\n\n  public show(id: string) {\n    const panels: TabComponent[] = this.panels.toArray();\n\n    id = id || panels[0].id;\n\n    /* istanbul ignore else */\n    if (0 > this.panelIds.indexOf(id)) {\n      id = panels[0].id;\n    }\n\n    panels.forEach((panel) => panel.selected = id === panel.id);\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { TabComponent } from './tab.component';\nimport { TabsComponent } from './tabs.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RouterModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    TabsComponent,\n    TabComponent,\n  ],\n  exports: [\n    TabsComponent,\n    TabComponent,\n  ]\n})\nexport class TabsModule {}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'ccd-activity-banner',\n  templateUrl: './activity-banner.component.html',\n  styleUrls: ['./activity-banner.component.css'],\n  standalone: false\n})\nexport class ActivityBannerComponent implements OnInit {\n  @Input()\n  public bannerType: string;\n\n  @Input()\n  public description: string;\n\n  @Input()\n  public imageLink: string;\n\n  constructor() { }\n\n  public ngOnInit() {\n  }\n}\n","<div [ngClass]=\"{caseLocked: bannerType === 'editor', someoneViewing: bannerType === 'viewer'}\">\n  <div class=\"bannerIcon\"><img alt=\"{{description | rpxTranslate}}\" class=\"img-responsive\" src=\"{{imageLink}}\" /></div>\n  <div class=\"bannerText\">{{description | rpxTranslate}}</div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'ccd-activity-icon',\n  templateUrl: './activity-icon.component.html',\n  styleUrls: ['./activity-icon.component.css'],\n  standalone: false\n})\nexport class ActivityIconComponent implements OnInit {\n  @Input()\n  public description: string;\n\n  @Input()\n  public imageLink: string;\n\n  constructor() { }\n\n  public ngOnInit() {\n  }\n}\n","<div class=\"tooltip\">\n  <img alt=\"{{description | rpxTranslate}}\" class=\"img-responsive\" src=\"{{imageLink}}\" />\n  <span class=\"tooltiptext\">{{description | rpxTranslate}}</span>\n</div>\n","export class ActivityInfo {\n  public forename: string;\n  public surname: string;\n}\n\nexport class Activity {\n  public caseId: string;\n  public viewers: ActivityInfo[];\n  public editors: ActivityInfo[];\n  public unknownViewers: number;\n  public unknownEditors: number;\n}\n\nexport enum DisplayMode {\n  BANNER,\n  ICON\n}\n","/* istanbul ignore file */\n\n// tslint:disable:variable-name\nexport interface AccessManagementBasicViewMockModel {\n  active?: boolean;\n  basicFields?: {\n    caseNameHmctsInternal?: string,\n    caseManagementLocation?: {\n      baseLocation?: number\n    }\n  };\n  accessProcess?: string;\n}\n\nexport interface AccessManagementRequestReviewMockModel {\n  active?: boolean;\n  details?: {\n    caseName: string;\n    caseReference: string;\n    dateSubmitted: string;\n    requestFrom: string;\n    reasonForCaseAccess: string;\n  };\n  accessProcess?: string;\n}\n\nexport abstract class AbstractAppConfig {\n  public abstract load(): Promise<void>;\n  public abstract getLoginUrl(): string;\n  public abstract getApiUrl(): string;\n  public abstract getCaseDataUrl(): string;\n  public abstract getDocumentManagementUrl(): string;\n  public abstract getDocumentManagementUrlV2(): string;\n  public abstract getCdamExclusionList(): string;\n  public abstract getDocumentSecureModeCaseTypeExclusions(): string;\n  public abstract getRemoteDocumentManagementUrl(): string;\n  public abstract getHrsUrl(): string;\n  public abstract getRemoteHrsUrl(): string;\n  public abstract getAnnotationApiUrl(): string;\n  public abstract getPostcodeLookupUrl(): string;\n  public abstract getOAuth2ClientId(): string;\n  public abstract getPaymentsUrl(): string;\n  public abstract getPayBulkScanBaseUrl(): string;\n  public abstract getCreateOrUpdateDraftsUrl(ctid: string): string;\n  public abstract getViewOrDeleteDraftsUrl(did: string): string;\n  public abstract getActivityUrl(): string;\n  public abstract getActivityNexPollRequestMs(): number;\n  public abstract getActivityRetry(): number;\n  public abstract getTimeoutsForCaseRetrieval(): number[];\n  public abstract getTimeoutsCaseRetrievalArtificialDelay(): number;\n  public abstract getActivityBatchCollectionDelayMs(): number;\n  public abstract getActivityMaxRequestPerBatch(): number;\n  public abstract getCaseHistoryUrl(caseId: string, eventId: string): string;\n  public abstract getPrintServiceUrl(): string;\n  public abstract getIcpEnable(): boolean;\n  public abstract getIcpJurisdictions(): string[];\n  public abstract logMessage(logMessage: string): void;\n  public abstract getEnableServiceSpecificMultiFollowups(): string[];\n\n  /**\n   * Dummy version replacing deprecated `getRemotePrintServiceUrl()`, to be removed in next major release\n   * @deprecated\n   * @returns `undefined`\n   */\n  public getRemotePrintServiceUrl(): string {\n    return undefined;\n  }\n\n  public abstract getPaginationPageSize(): number;\n  public abstract getBannersUrl(): string;\n  public abstract getPrdUrl(): string;\n  public abstract getCacheTimeOut(): number;\n  public abstract getWorkAllocationApiUrl(): string;\n  public getUserInfoApiUrl(): string {\n    return undefined;\n  }\n\n  public getWAServiceConfig(): any {\n    return undefined;\n  }\n\n  public getAccessManagementBasicViewMock(): AccessManagementBasicViewMockModel {\n    return undefined;\n  }\n\n  public getAccessManagementRequestReviewMockModel(): AccessManagementRequestReviewMockModel {\n    return undefined;\n  }\n\n  public getLocationRefApiUrl(): string {\n    return undefined;\n  }\n\n  public getEnvironment() {\n    if (this.getActivityUrl()?.includes('.aat.'))\n      return 'aat';\n    else if (this.getActivityUrl()?.includes('.preview.'))\n      return 'preview';\n    else if (this.getActivityUrl()?.includes('.demo.'))\n      return 'demo';\n    else if (this.getActivityUrl()?.includes('.ithc.'))\n      return 'ithc';\n    return 'prod';\n  }\n\n\n  public abstract getRefundsUrl(): string;\n  public abstract getNotificationUrl(): string;\n  public abstract getPaymentReturnUrl(): string;\n  public abstract getCategoriesAndDocumentsUrl(): string;\n  public abstract getDocumentDataUrl(): string;\n  public getCamRoleAssignmentsApiUrl(): string {\n    return undefined;\n  }\n\n  public abstract getCaseFlagsRefdataApiUrl(): string;\n  public abstract getRDCommonDataApiUrl(): string;\n  public abstract getCaseDataStoreApiUrl(): string;\n  public abstract getEventsToHide(): string[];\n}\nexport class CaseEditorConfig {\n  public api_url: string;\n  public case_data_url: string;\n  public document_management_url: string;\n  public document_management_url_v2: string;\n  public hrs_url: string;\n  public document_management_secure_enabled: boolean;\n  public documentSecureModeCaseTypeExclusions: string;\n  public mc_cdam_exclusion_list: string;\n  public login_url: string;\n  public oauth2_client_id: string;\n  public postcode_lookup_url: string;\n  public remote_document_management_url: string;\n  public remote_hrs_url: string;\n  public annotation_api_url: string;\n  public payments_url: string;\n  public pay_bulk_scan_url: string;\n  public activity_batch_collection_delay_ms: number;\n  public activity_next_poll_request_ms: number;\n  public activity_retry: number;\n  public timeouts_case_retrieval: number[];\n  public timeouts_case_retrieval_artificial_delay: number;\n  public activity_url: string;\n  public activity_max_request_per_batch: number;\n  public print_service_url: string;\n\n  /**\n   * remote_print_service_url marked as optional since deprecation, ahead of removal in next major release\n   * @deprecated\n   */\n  public remote_print_service_url?: string;\n  public pagination_page_size: number;\n  public prd_url: string;\n  public cache_time_out: number;\n  public work_allocation_api_url: string;\n  public user_info_api_url: string;\n  public wa_service_config?: any;\n  public access_management_basic_view_mock?: {\n    active?: boolean,\n    basicFields?: {\n      caseNameHmctsInternal?: string,\n      caseManagementLocation?: {\n        baseLocation?: number\n      }\n    },\n    accessProcess?: string\n  };\n\n  public access_management_request_review_mock?: {\n    active?: boolean;\n    details?: {\n      caseName: string;\n      caseReference: string;\n      dateSubmitted: string;\n      requestFrom: string;\n      reasonForCaseAccess: string;\n    };\n    accessProcess?: string;\n  };\n\n  public location_ref_api_url?: string;\n  public cam_role_assignments_api_url?: string;\n  public refunds_url: string;\n  public notification_url: string;\n  public payment_return_url: string;\n  public categories_and_documents_url: string;\n  public document_data_url: string;\n  public case_flags_refdata_api_url: string;\n  public rd_common_data_api_url: string;\n  public case_data_store_api_url: string;\n  public icp_enabled: boolean;\n  public icp_jurisdictions: string[];\n  public events_to_hide: string[];\n  public enable_service_specific_multi_followups: string[];\n}\n","import { HttpErrorResponse } from '@angular/common/http';\n\nexport class HttpError {\n\n  constructor() {\n    this.timestamp = new Date().toISOString();\n    this.error = HttpError.DEFAULT_ERROR;\n    this.message = HttpError.DEFAULT_MESSAGE;\n    this.status = HttpError.DEFAULT_STATUS;\n    this.exception = null;\n    this.path = null;\n    this.details = null;\n    this.callbackErrors = null;\n    this.callbackWarnings = null;\n  }\n  private static readonly DEFAULT_ERROR = 'Unknown error';\n  private static readonly DEFAULT_MESSAGE = 'Something unexpected happened, our technical staff have been automatically notified';\n  private static readonly DEFAULT_STATUS = 500;\n\n  private static readonly MESSAGE_ERROR_429 ='Your request was rate limited. Please wait a few seconds before retrying your document upload';\n\n  public timestamp: string;\n  public status: number;\n  public error: string;\n  public exception: string;\n  public message: string;\n  public path: string;\n  public details?: any;\n  public callbackErrors?: any;\n  public callbackWarnings?: any;\n\n  public static from(response: HttpErrorResponse): HttpError {\n    const error = new HttpError();\n\n    if (response?.status === 429) {\n      error.error = HttpError.MESSAGE_ERROR_429;\n      error.status = response.status;\n      error.message = response.message;\n    }\n\n    // Check that the HttpErrorResponse contains an \"error\" object before mapping the error properties\n    if (!!(response && response.error)) {\n      Object.keys(error).forEach((key) => {\n        error[key] = response.error.hasOwnProperty(key) && response.error[key] ? response.error[key] : error[key];\n      });\n    }\n\n    // Error object in HttpErrorResponse will be empty for 403 errors\n    // Set the error properties of HttpError accordingly\n    if (response?.status === 403) {\n      error.error = response.statusText;\n      error.status = response.status;\n      error.message = response.message;\n    }\n\n    return error;\n  }\n}\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\nimport { AbstractAppConfig } from '../../../app.config';\n\n/**\n * `Oauth2Service` and `AuthService` cannot be merged as it creates a cyclic dependency on `AuthService` through `HttpErrorService`.\n */\n@Injectable()\nexport class AuthService {\n\n  private static readonly PATH_OAUTH2_REDIRECT = '/oauth2redirect';\n\n  constructor(private readonly appConfig: AbstractAppConfig,\n              @Inject(DOCUMENT) private readonly document: any) {}\n\n  public signIn(): void {\n    const loginUrl = this.appConfig.getLoginUrl();\n    const clientId = this.appConfig.getOAuth2ClientId();\n    const redirectUri = encodeURIComponent(this.redirectUri());\n\n    this.document.location.href = `${loginUrl}?response_type=code&client_id=${clientId}&redirect_uri=${redirectUri}`;\n  }\n\n  public redirectUri(): string {\n    return this.document.location.origin + AuthService.PATH_OAUTH2_REDIRECT;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Injectable()\nexport class LoadingService {\n  private readonly registered = new Map<string, string>();\n  private readonly loading = new BehaviorSubject<boolean>(false);\n  private readonly sharedSpinners = [];\n\n  public get isLoading(): Observable<boolean> {\n    return this.loading.pipe(distinctUntilChanged());\n  }\n\n  public register(): string {\n    const token = this.generateToken();\n    this.registered.set(token, token);\n    this.loading.next(true);\n    return token;\n  }\n\n  public unregister(token: string): void {\n    this.registered.delete(token);\n    this.loading.next(this.registered.size > 0);\n  }\n\n  public addSharedSpinner(spinnerId: string){\n    this.sharedSpinners.push(spinnerId);\n  }\n\n  public hasSharedSpinner(): boolean {\n    return this.sharedSpinners.length > 0;\n  }\n\n  public unregisterSharedSpinner(): void {\n    this.registered.delete(this.sharedSpinners[0]);\n    this.sharedSpinners.shift();\n    this.loading.next(this.registered.size > 0);\n  }\n\n  private generateToken(): string {\n    const timestamp = window.performance.now();\n    return `toolkit-loading-${timestamp}`; // format: [source-library]-[unique incrementing number]\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { LoadingService } from './loading.service';\n\n@NgModule({\n    imports: [\n    ],\n    declarations: [\n    ],\n    exports: [\n    ],\n    providers: [\n        LoadingService\n    ]\n})\n\nexport class LoadingModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { HttpError } from '../../domain/http/http-error.model';\nimport { AuthService } from '../auth/auth.service';\nimport { LoadingService } from '../loading';\n\n\n@Injectable()\nexport class HttpErrorService {\n\n  constructor(private readonly authService: AuthService,\n        private readonly loadingService: LoadingService\n  ) {}\n\n  private static readonly CONTENT_TYPE = 'Content-Type';\n  private static readonly JSON = 'json';\n\n  private error: HttpError;\n  public static convertToHttpError(error: HttpErrorResponse | any): HttpError {\n    if (error instanceof HttpError) {\n      return error;\n    }\n    let httpError = new HttpError();\n    if (error instanceof HttpErrorResponse) {\n      if (error.headers?.get(HttpErrorService.CONTENT_TYPE).indexOf(HttpErrorService.JSON) !== -1) {\n        try {\n          httpError = HttpError.from(error);\n        } catch (e) {\n          console.error(e, e.message);\n        }\n      }\n      if (!httpError.status) {\n        httpError.status = error.status;\n      }\n    } else if (error) {\n      if (error.message) {\n        httpError.message = error.message;\n      }\n      if (error.status) {\n        httpError.status = error.status;\n      }\n    }\n    return httpError;\n  }\n\n  public setError(error: HttpError) {\n    this.error = error;\n  }\n\n  public removeError(): HttpError {\n    const error = this.error;\n    this.error = null;\n    return error;\n  }\n\n  public handle(error: HttpErrorResponse | any, redirectIfNotAuthorised = true): Observable<never> {\n    console.error('Handling error in http error service.');\n    console.error(error);\n    if (this.loadingService.hasSharedSpinner()){\n      this.loadingService.unregisterSharedSpinner();\n    }\n    const httpError: HttpError = HttpErrorService.convertToHttpError(error);\n    if (redirectIfNotAuthorised && httpError.status === 401) {\n      this.authService.signIn();\n    }\n    return throwError(httpError);\n  }\n}\n","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { HttpError } from '../../domain/http/http-error.model';\nimport { HttpErrorService } from './http-error.service';\n\n@Injectable()\nexport class HttpService {\n\n  private static readonly HEADER_ACCEPT = 'Accept';\n  private static readonly HEADER_CONTENT_TYPE = 'Content-Type';\n\n  constructor(\n    private readonly httpclient: HttpClient,\n    private readonly httpErrorService: HttpErrorService\n  ) {}\n\n  /**\n   *\n   * @param url Url resolved using UrlResolverService\n   * @param options OptionsType\n   * @returns Observable<any> return value\n   * @see UrlResolverService\n   */\n\n  public get(\n    url: string,\n    options?: OptionsType,\n    redirectIfNotAuthorised = true,\n    errorHandler?: (error: HttpErrorResponse) => HttpError): Observable<any> {\n    return this.httpclient\n      .get(url, this.setDefaultValue(options))\n      .pipe(\n        catchError((res: HttpErrorResponse) => {\n          let error: HttpErrorResponse | HttpError = res;\n          if (typeof errorHandler === 'function') {\n            error = errorHandler(res);\n          }\n          return this.httpErrorService.handle(error, redirectIfNotAuthorised);\n        })\n      );\n  }\n\n  /**\n   *\n   * @param url Url resolved using UrlResolverService\n   * @param body Body for post\n   * @param options OptionsType\n   * @returns Observable<any> return value\n   * @see UrlResolverService\n   */\n  public post(url: string, body: any, options?: OptionsType, redirectIfNotAuthorised = true): Observable<any> {\n    return this.httpclient\n      .post(url, body, this.setDefaultValue(options))\n      .pipe(\n        catchError((res: HttpErrorResponse) => {\n          return this.httpErrorService.handle(res, redirectIfNotAuthorised);\n        })\n      );\n  }\n\n  /**\n   *\n   * @param url Url resolved using UrlResolverService\n   * @param body Body for post\n   * @param options OptionsType\n   * @returns Observable<any> return value\n   * @see UrlResolverService\n   */\n  public put(url: string, body: any, options?: OptionsType): Observable<any> {\n    return this.httpclient\n      .put(url, body, this.setDefaultValue(options))\n      .pipe(\n        catchError((res: HttpErrorResponse) => {\n          return this.httpErrorService.handle(res);\n        })\n      );\n  }\n\n  /**\n   *\n   * @param url Url resolved using UrlResolverService\n   * @param options OptionsType\n   * @returns Observable<any> return value\n   * @see UrlResolverService\n   */\n  public delete(url: string, options?: OptionsType): Observable<any> {\n    return this.httpclient\n      .delete(url, this.setDefaultValue(options))\n      .pipe(\n        catchError((res: HttpErrorResponse) => {\n          return this.httpErrorService.handle(res);\n        })\n      );\n  }\n\n  public setDefaultValue(options?: OptionsType): OptionsType {\n    options = options || {observe: 'body'};\n    options.withCredentials = true;\n\n    if (!options.headers) {\n      options.headers = new HttpHeaders()\n        .set(HttpService.HEADER_ACCEPT, 'application/json')\n        .set(HttpService.HEADER_CONTENT_TYPE, 'application/json');\n    }\n    return options;\n  }\n}\n\nexport interface OptionsType {\n  headers?: HttpHeaders;\n  observe: 'body';\n  params?: HttpParams | { [param: string]: string | string[]; };\n  reportProgress?: boolean;\n  responseType?: 'json';\n  withCredentials?: boolean;\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class SessionStorageService {\n\n  /**\n   * Get an item from the session storage.\n   */\n  public getItem(key: string): string {\n    return sessionStorage.getItem(key);\n  }\n\n  /**\n   * Set an item in the session storage.\n   */\n  public setItem(key: string, value: string): void {\n    sessionStorage.setItem(key, value);\n  }\n\n  /**\n   * Remove an item from the session storage.\n   */\n  public removeItem(key: string): void {\n    sessionStorage.removeItem(key);\n  }\n\n  /**\n   * Clear all the items held in session storage.\n   */\n  public clear(): void {\n    sessionStorage.clear();\n  }\n}\n","import { SessionStorageService } from './services';\n\nexport const USER_DETAILS = 'userDetails';\nexport const PUI_CASE_MANAGER = 'pui-case-manager';\nexport const JUDGE = 'judge';\n\nfunction getUserDetails(sessionStorageService: SessionStorageService): any {\n  try {\n    const item = sessionStorageService?.getItem(USER_DETAILS);\n    return item ? JSON.parse(item) : null;\n  } catch {\n    return null;\n  }\n}\n\n\nexport function isInternalUser(sessionStorageService: SessionStorageService): boolean {\n  const userDetails = getUserDetails(sessionStorageService);\n  return userDetails && userDetails?.roles\n    && !(userDetails.roles.includes(PUI_CASE_MANAGER)\n      || userDetails.roles.some((role) => role.toLowerCase().includes(JUDGE)));\n}\n\nexport function isJudiciaryUser(sessionStorageService: SessionStorageService): boolean {\n  const userDetails = getUserDetails(sessionStorageService);\n  return userDetails && userDetails?.roles\n    && (userDetails.roles.some((role) => role.toLowerCase().includes(JUDGE)));\n}\n\n","import { HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { AbstractAppConfig } from '../../../app.config';\nimport { Activity } from '../../domain/activity/activity.model';\nimport { HttpError } from '../../domain/http/http-error.model';\nimport { HttpErrorService, HttpService, OptionsType } from '../http';\nimport { SessionStorageService } from '../session';\nimport { USER_DETAILS } from '../../utils';\n\n// @dynamic\n@Injectable()\nexport class ActivityService {\n  public static get ACTIVITY_VIEW() { return 'view'; }\n  public static get ACTIVITY_EDIT() { return 'edit'; }\n\n  constructor(\n    private readonly http: HttpService,\n    private readonly appConfig: AbstractAppConfig,\n    private readonly sessionStorageService: SessionStorageService\n  ) {}\n\n  public get isEnabled(): boolean {\n    return this.activityUrl() && this.userAuthorised;\n  }\n  public static readonly DUMMY_CASE_REFERENCE = '0';\n\n  private userAuthorised: boolean = undefined;\n\n  private static handleHttpError(response: HttpErrorResponse): HttpError {\n    const error: HttpError = HttpErrorService.convertToHttpError(response);\n    if (response?.status !== error.status) {\n      error.status = response.status;\n    }\n    return error;\n  }\n\n  public getOptions(): OptionsType {\n    const userDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));\n    const headers = new HttpHeaders().set('Content-Type', 'application/json').set('Authorization', userDetails.token);\n    return {\n      headers,\n      withCredentials: true,\n      observe: 'body',\n    };\n  }\n\n  public getActivities(...caseId: string[]): Observable<Activity[]> {\n    try {\n      const options = this.getOptions();\n      const url = `${this.activityUrl()}/cases/${caseId.join(',')}/activity`;\n      return this.http\n        .get(url, options, false, ActivityService.handleHttpError)\n        .pipe(\n          map(response => response)\n        );\n    } catch (error) {\n      console.log(`user may not be authenticated.${error}`);\n    }\n  }\n\n  public postActivity(caseId: string, activity: string): Observable<Activity[]> {\n    try {\n      const options = this.getOptions();\n      const url = `${this.activityUrl()}/cases/${caseId}/activity`;\n      const body = { activity };\n      return this.http\n        .post(url, body, options, false)\n        .pipe(\n          map(response => response)\n        );\n    } catch (error) {\n      console.log(`user may not be authenticated.${error}`);\n    }\n  }\n\n  public verifyUserIsAuthorized(): void {\n    if (this.sessionStorageService.getItem(USER_DETAILS) && this.activityUrl() && this.userAuthorised === undefined) {\n      this.getActivities(ActivityService.DUMMY_CASE_REFERENCE).subscribe(\n        () => this.userAuthorised = true,\n        error => {\n          this.userAuthorised = [401, 403].indexOf(error.status) <= -1;\n        }\n      );\n    }\n  }\n\n  private activityUrl(): string {\n    return this.appConfig.getActivityUrl();\n  }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { EMPTY, Observable, Subject, Subscription } from 'rxjs';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { Activity } from '../../domain/activity/activity.model';\nimport { ActivityService } from './activity.service';\nimport { polling, IOptions } from 'rx-polling-hmcts';\n\n// @dynamic\n@Injectable()\nexport class ActivityPollingService {\n  private readonly pendingRequests = new Map<string, Subject<Activity>>();\n  private currentTimeoutHandle: any;\n  private pollActivitiesSubscription: Subscription;\n  private readonly pollConfig: IOptions;\n  private readonly batchCollectionDelayMs: number;\n  private readonly maxRequestsPerBatch: number;\n\n  constructor(private readonly activityService: ActivityService, private readonly ngZone: NgZone, private readonly config: AbstractAppConfig) {\n    this.pollConfig = {\n      interval: config.getActivityNexPollRequestMs(),\n      attempts: config.getActivityRetry(),\n      backgroundPolling: true\n    };\n    this.batchCollectionDelayMs = config.getActivityBatchCollectionDelayMs();\n    this.maxRequestsPerBatch = config.getActivityMaxRequestPerBatch();\n  }\n\n  public get isEnabled(): boolean {\n    return this.activityService.isEnabled;\n  }\n\n  public subscribeToActivity(caseId: string, done: (activity: Activity) => void): Subject<Activity> {\n    if (!this.isEnabled) {\n      return new Subject<Activity>();\n    }\n\n    let subject = this.pendingRequests.get(caseId);\n    if (subject) {\n      subject.subscribe(done);\n    } else {\n      subject = new Subject<Activity>();\n      subject.subscribe(done);\n      this.pendingRequests.set(caseId, subject);\n    }\n    if (this.pendingRequests.size === 1) {\n      this.ngZone.runOutsideAngular(() => {\n        this.currentTimeoutHandle = setTimeout(\n          () => this.ngZone.run(() => {\n            // console.log('timeout: flushing requests')\n            this.flushRequests();\n          }),\n          this.batchCollectionDelayMs);\n      });\n    }\n\n    if (this.pendingRequests.size >= this.maxRequestsPerBatch) {\n      // console.log('max pending hit: flushing requests');\n      this.flushRequests();\n    }\n    return subject;\n  }\n\n  public stopPolling() {\n    if (this.pollActivitiesSubscription) {\n      this.pollActivitiesSubscription.unsubscribe();\n    }\n  }\n\n  public flushRequests(): void {\n    if (this.currentTimeoutHandle) {\n      clearTimeout(this.currentTimeoutHandle);\n      this.currentTimeoutHandle = undefined;\n    }\n\n    const requests = new Map(this.pendingRequests);\n    this.pendingRequests.clear();\n    this.performBatchRequest(requests);\n  }\n\n  public pollActivities(...caseIds: string[]): Observable<Activity[]> {\n    if (!this.isEnabled) {\n      return EMPTY;\n    }\n\n    return polling(this.activityService.getActivities(...caseIds), this.pollConfig);\n  }\n\n  public postViewActivity(caseId: string): Observable<Activity[]> {\n    return this.postActivity(caseId, ActivityService.ACTIVITY_VIEW);\n  }\n\n  public postEditActivity(caseId: string): Observable<Activity[]> {\n    return this.postActivity(caseId, ActivityService.ACTIVITY_EDIT);\n  }\n\n  protected performBatchRequest(requests: Map<string, Subject<Activity>>): void {\n    const caseIds = Array.from(requests.keys()).join();\n    // console.log('issuing batch request for cases: ' + caseIds);\n    this.ngZone.runOutsideAngular( () => {\n      // run polling outside angular zone so it does not trigger change detection\n      this.pollActivitiesSubscription = this.pollActivities(caseIds).subscribe(\n              // process activity inside zone so it triggers change detection for activity.component.ts\n        (activities: Activity[]) => this.ngZone.run( () => {\n            activities.forEach((activity) => {\n              // console.log('pushing activity: ' + activity.caseId);\n              requests.get(activity.caseId).next(activity);\n            });\n          },\n          (err) => {\n            console.log(`error: ${err}`);\n            Array.from(requests.values()).forEach((subject) => subject.error(err));\n          }\n        )\n      );\n    });\n  }\n\n  private postActivity(caseId: string, activityType: string): Observable<Activity[]> {\n    if (!this.isEnabled) {\n      return EMPTY;\n    }\n\n    const pollingConfig = {\n      ...this.pollConfig,\n      interval: 5000 // inline with CCD Backend\n    };\n\n    return polling(this.activityService.postActivity(caseId, activityType), pollingConfig);\n  }\n}\n","<div class=\"activityComponent\" *ngIf=\"isActivityEnabled()\">\n  <div *ngIf=\"displayMode === dspMode.ICON && editorsPresent()\" [class.activityEditorsAndViewersIcons]=\"viewersPresent()\" [class.activityEditorsIcon]=\"!viewersPresent()\">\n    <ccd-activity-icon imageLink=\"assets/img/editor.png\" [description]=\"editorsText | rpxTranslate\"></ccd-activity-icon>\n  </div>\n  <div *ngIf=\"displayMode === dspMode.ICON && viewersPresent()\" class=\"activityViewersIcon\">\n    <ccd-activity-icon imageLink=\"assets/img/viewer.png\" [description]=\"viewersText | rpxTranslate\"></ccd-activity-icon>\n  </div>\n  <div *ngIf=\"displayMode === dspMode.BANNER && editorsPresent()\">\n    <ccd-activity-banner imageLink=\"assets/img/editorBanner.png\" [description]=\"editorsText | rpxTranslate\" bannerType=\"editor\">\n    </ccd-activity-banner>\n  </div>\n  <div *ngIf=\"displayMode === dspMode.BANNER && viewersPresent()\">\n    <ccd-activity-banner imageLink=\"assets/img/viewerBanner.png\" [description]=\"viewersText | rpxTranslate\" bannerType=\"viewer\">\n    </ccd-activity-banner>\n  </div>\n</div>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Activity, ActivityInfo, DisplayMode } from '../../domain/activity/activity.model';\nimport { ActivityPollingService } from '../../services/activity/activity.polling.service';\n\n@Component({\n  selector: 'ccd-activity',\n  templateUrl: './activity.component.html',\n  styleUrls: ['./activity.component.css'],\n  standalone: false\n})\nexport class ActivityComponent implements OnInit, OnDestroy {\n  public activity: Activity;\n  public dspMode = DisplayMode;\n\n  public viewersText: string;\n  public editorsText: string;\n\n  public subscription: Subject<Activity>;\n\n  @Input()\n  public caseId: string;\n\n  @Input()\n  public displayMode: DisplayMode;\n  private readonly VIEWERS_PREFIX = '';\n  private readonly VIEWERS_SUFFIX = 'viewing this case';\n  private readonly EDITORS_PREFIX = 'This case is being updated by ';\n  private readonly EDITORS_SUFFIX = '';\n\n  constructor(private readonly activityPollingService: ActivityPollingService) {}\n\n  public ngOnInit() {\n    this.activity = new Activity();\n    this.activity.caseId = this.caseId;\n    this.activity.editors = [];\n    this.activity.unknownEditors = 0;\n    this.activity.viewers = [];\n    this.activity.unknownViewers = 0;\n    this.viewersText = '';\n    this.editorsText = '';\n    this.subscription = this.activityPollingService.subscribeToActivity(this.caseId, newActivity => this.onActivityChange(newActivity));\n  }\n\n  public onActivityChange(newActivity: Activity) {\n    this.activity = newActivity;\n    this.viewersText = this.generateDescription(this.VIEWERS_PREFIX,\n      this.VIEWERS_SUFFIX,\n      this.activity.viewers,\n      this.activity.unknownViewers);\n    this.editorsText = this.generateDescription(this.EDITORS_PREFIX,\n      this.EDITORS_SUFFIX,\n      this.activity.editors,\n      this.activity.unknownEditors);\n  }\n\n  public isActivityEnabled() {\n    return this.activityPollingService.isEnabled;\n  }\n\n  public isActiveCase() {\n    return this.activity.editors.length || this.activity.viewers.length || this.activity.unknownEditors || this.activity.unknownViewers;\n  }\n\n  public viewersPresent(): boolean {\n    return (this.activity.viewers.length > 0 || this.activity.unknownViewers > 0);\n  }\n\n  public editorsPresent(): boolean {\n    return (this.activity.editors.length > 0 || this.activity.unknownEditors > 0);\n  }\n\n  public ngOnDestroy(): void {\n    if (this.subscription) {\n      this.subscription.complete();\n    }\n    this.activityPollingService.stopPolling();\n  }\n\n  public generateDescription(prefix: string, suffix: string, namesArray: ActivityInfo[], unknownCount) {\n    let resultText = prefix;\n    resultText += namesArray.map(activityInfo => `${activityInfo.forename} ${activityInfo.surname}`).join(', ');\n    if (unknownCount > 0) {\n      resultText += (namesArray.length > 0 ? ` and ${unknownCount} other` : `${unknownCount} user`);\n      resultText += ( unknownCount > 1 ? 's' : '');\n    } else {\n      resultText = this.replaceLastCommaWithAnd(resultText);\n    }\n    if (suffix.length > 0) {\n      if (namesArray.length + unknownCount > 1) {\n        resultText += ` are ${suffix}`;\n      } else {\n        resultText += ` is ${suffix}`;\n      }\n    }\n    return resultText;\n  }\n\n  private replaceLastCommaWithAnd(str: string): string {\n    return str.trim().replace(/,([^,]*)$/, ' and $1').split('  ').join(' ');\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { ActivityPollingService } from '../../services/activity/activity.polling.service';\nimport { ActivityService } from '../../services/activity/activity.service';\nimport { SessionStorageService } from '../../services/session/session-storage.service';\nimport { ActivityBannerComponent } from './activity-banner';\nimport { ActivityIconComponent } from './activity-icon';\nimport { ActivityComponent } from './activity.component';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        RouterModule,\n        RpxTranslationModule.forChild()\n    ],\n    declarations: [\n        ActivityComponent,\n        ActivityBannerComponent,\n        ActivityIconComponent,\n    ],\n    exports: [\n        ActivityComponent,\n        ActivityBannerComponent,\n        ActivityIconComponent,\n    ],\n    providers: [\n        ActivityService,\n        ActivityPollingService,\n        SessionStorageService,\n    ]\n})\nexport class ActivityModule {}\n","import { Injectable } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { ConnectableObservable, Observable, Observer } from 'rxjs';\nimport { publish, refCount } from 'rxjs/operators';\nimport { AlertLevel } from '../../domain/alert/alert-level.model';\nimport { AlertStatusParams } from '../../domain/alert/alert-status-params.model';\nimport { Alert } from '../../domain/alert/alert.model';\n\n@Injectable()\nexport class AlertService {\n  // the preserved messages\n  public preservedError = '';\n  public preservedWarning = '';\n  public preservedSuccess = '';\n\n  // TODO: Remove\n  public message: string;\n  public level: AlertLevel;\n\n  public successes: ConnectableObservable<Alert>;\n  public errors: ConnectableObservable<Alert>;\n  public warnings: ConnectableObservable<Alert>;\n  // TODO: Remove\n  public alerts: ConnectableObservable<Alert>;\n\n  private successObserver: Observer<Alert>;\n  private errorObserver: Observer<Alert>;\n  private warningObserver: Observer<Alert>;\n  // TODO: Remove\n  private alertObserver: Observer<Alert>;\n\n  private preserveAlerts = false;\n\n  constructor(private readonly router: Router, private readonly rpxTranslationService: RpxTranslationService) {\n\n    this.successes = Observable\n      .create(observer => this.successObserver = observer).pipe(\n        publish(),\n        refCount()\n      );\n    this.successes.subscribe();\n\n    this.errors = Observable\n      .create(observer => this.errorObserver = observer).pipe(\n        publish(),\n        refCount()\n      );\n    this.errors.subscribe();\n\n    this.warnings = Observable\n      .create(observer => this.warningObserver = observer).pipe(\n        publish(),\n        refCount()\n      );\n    this.warnings.subscribe();\n\n    // TODO: Remove\n    this.alerts = Observable\n      .create(observer => this.alertObserver = observer).pipe(\n        publish(),\n        refCount()\n      );\n    this.alerts.subscribe();\n\n    this.router\n      .events\n      .subscribe(event => {\n        if (event instanceof NavigationStart) {\n          // if there is no longer a preserve alerts setting for the page then clear all observers and preserved messages\n          if (!this.preserveAlerts) {\n            this.clear();\n          }\n          // if not, then set the preserving of alerts to false so rendering to a new page\n          this.preserveAlerts = false;\n        }\n      });\n  }\n\n  public clear(): void {\n    this.successObserver.next(null);\n    this.errorObserver.next(null);\n    this.warningObserver.next(null);\n    this.preservedError = '';\n    this.preservedWarning = '';\n    this.preservedSuccess = '';\n\n    // EUI-3381.\n    this.alertObserver.next(null);\n    this.message = '';\n  }\n\n  public error({ phrase, replacements}: Omit<AlertStatusParams, 'preserve'>): void {\n    const message = this.getTranslationWithReplacements(phrase, replacements);\n\n    this.preservedError = this.preserveMessages(message);\n    const alert: Alert = { level: 'error', message };\n    this.errorObserver.next(alert);\n\n    // EUI-3381.\n    this.push(alert);\n  }\n\n  public warning({ phrase, replacements}: Omit<AlertStatusParams, 'preserve'>): void {\n    const message = this.getTranslationWithReplacements(phrase, replacements);\n\n    this.preservedWarning = this.preserveMessages(message);\n    const alert: Alert = { level: 'warning', message };\n    this.warningObserver.next(alert);\n\n    // EUI-3381.\n    this.push(alert);\n  }\n\n  public success({ preserve, phrase, replacements}: AlertStatusParams): void {\n    const message = this.getTranslationWithReplacements(phrase, replacements);\n\n    this.preserveAlerts = preserve || this.preserveAlerts;\n    const alert: Alert = { level: 'success', message };\n    this.preservedSuccess = this.preserveMessages(message);\n    this.successObserver.next(alert);\n\n    // EUI-3381.\n    this.push(alert);\n  }\n\n  private getTranslationWithReplacements(phrase: string, replacements: AlertStatusParams['replacements']): string {\n    let message: string;\n    if (replacements) {\n      this.rpxTranslationService.getTranslationWithReplacements$(phrase, replacements).subscribe(translation => {\n        message = translation;\n      });\n    } else {\n      this.rpxTranslationService.getTranslation$(phrase).subscribe(translation => {\n        message = translation;\n      });\n    }\n\n    return message;\n  }\n\n  public setPreserveAlerts(preserve: boolean, urlInfo?: string[]) {\n    // if there is no url setting then just preserve the messages\n    if (!urlInfo) {\n      this.preserveAlerts = preserve;\n    } else {\n      // check if the url includes the sting given\n      this.preserveAlerts = this.currentUrlIncludesInfo(preserve, urlInfo);\n    }\n  }\n\n  public currentUrlIncludesInfo(preserve: boolean, urlInfo: string[]): boolean {\n    // loop through the list of strings and check the router includes all of them\n    for (const urlSnip of urlInfo) {\n      if (!this.router.url.includes(urlSnip)) {\n        // return the opposite boolean value if the router does not include one of the strings\n        return !preserve;\n      }\n    }\n    // return the boolean value if all strings are in the url\n    return preserve;\n  }\n\n  public isPreserveAlerts(): boolean {\n    return this.preserveAlerts;\n  }\n\n  public preserveMessages(message: string): string {\n    // preserve the messages if set to preserve them\n    if (this.isPreserveAlerts()) {\n      return message;\n    } else {\n      return '';\n    }\n  }\n\n  // TODO: Remove\n  public push(msgObject) {\n    this.message = msgObject.message;\n    this.level = msgObject.level;\n\n    this.alertObserver.next({\n      level: this.level,\n      message: this.message\n    });\n  }\n}\n","import { CaseDetails } from './case-details.model';\n\nexport const DRAFT_PREFIX = 'DRAFT';\nexport const DRAFT_QUERY_PARAM = 'draft';\nexport class Draft {\n\n  public id: string;\n  public document?: CaseDetails;\n  public type?: string;\n  public created?: string;\n  public updated?: string;\n  public static stripDraftId(draftId: string): string {\n    return draftId.slice(DRAFT_PREFIX.length);\n  }\n\n  public static isDraft(id: string): boolean {\n    return String(id).startsWith(DRAFT_PREFIX);\n  }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { CaseEventData } from '../../domain/case-event-data.model';\nimport { CaseView } from '../../domain/case-view/case-view.model';\nimport { Draft, DRAFT_PREFIX } from '../../domain/draft.model';\nimport { HttpErrorService, HttpService } from '../http';\n\n@Injectable()\nexport class DraftService {\n\n  public static readonly V2_MEDIATYPE_DRAFT_CREATE =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-draft-create.v2+json;charset=UTF-8';\n  public static readonly V2_MEDIATYPE_DRAFT_UPDATE =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-draft-update.v2+json;charset=UTF-8';\n  public static readonly V2_MEDIATYPE_DRAFT_READ =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-draft-read.v2+json;charset=UTF-8';\n  public static readonly V2_MEDIATYPE_DRAFT_DELETE =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-draft-delete.v2+json;charset=UTF-8';\n\n  constructor(\n    private readonly http: HttpService,\n    private readonly appConfig: AbstractAppConfig,\n    private readonly errorService: HttpErrorService\n  ) {}\n\n  public createDraft(ctid: string, eventData: CaseEventData): Observable<Draft> {\n    const saveDraftEndpoint = this.appConfig.getCreateOrUpdateDraftsUrl(ctid);\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', DraftService.V2_MEDIATYPE_DRAFT_CREATE)\n      .set('Content-Type', 'application/json');\n    return this.http\n      .post(saveDraftEndpoint, eventData, {headers, observe: 'body'})\n      .pipe(catchError((error: any): any => {\n        this.errorService.setError(error);\n        return throwError(error);\n      }));\n  }\n\n  public updateDraft(ctid: string, draftId: string, eventData: CaseEventData): Observable<Draft> {\n    const saveDraftEndpoint = `${this.appConfig.getCreateOrUpdateDraftsUrl(ctid)}/${draftId}`;\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', DraftService.V2_MEDIATYPE_DRAFT_UPDATE)\n      .set('Content-Type', 'application/json');\n    return this.http\n      .put(saveDraftEndpoint, eventData, {headers, observe: 'body'})\n      .pipe(catchError((error: any): any => {\n        this.errorService.setError(error);\n        return throwError(error);\n      }));\n  }\n\n  public getDraft(draftId: string): Observable<CaseView> {\n    const url = this.appConfig.getViewOrDeleteDraftsUrl(draftId.slice(DRAFT_PREFIX.length));\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', DraftService.V2_MEDIATYPE_DRAFT_READ)\n      .set('Content-Type', 'application/json');\n    return this.http\n      .get(url, {headers, observe: 'body'})\n      .pipe(\n        catchError((error: any): any => {\n          this.errorService.setError(error);\n          return throwError(error);\n        })\n      );\n  }\n\n  public deleteDraft(draftId: string): Observable<{} | any> {\n    const url = this.appConfig.getViewOrDeleteDraftsUrl(draftId.slice(DRAFT_PREFIX.length));\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', DraftService.V2_MEDIATYPE_DRAFT_DELETE)\n      .set('Content-Type', 'application/json');\n    return this.http\n      .delete(url, {headers, observe: 'body'}).pipe(\n        catchError((error: any): any => {\n          this.errorService.setError(error);\n          return throwError(error);\n        })\n      );\n  }\n\n  public createOrUpdateDraft(caseTypeId: string, draftId: string, caseEventData: CaseEventData): Observable<Draft> {\n    if (!draftId) {\n      return this.createDraft(caseTypeId, caseEventData);\n    } else {\n      return this.updateDraft(caseTypeId, Draft.stripDraftId(draftId), caseEventData);\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ConditionalShowFormDirective } from '../conditional-show-form.directive';\n\n@Injectable()\nexport class ConditionalShowRegistrarService {\n  public registeredDirectives: ConditionalShowFormDirective[] = [];\n\n  public register(newDirective: ConditionalShowFormDirective): void {\n      this.registeredDirectives.push(newDirective);\n  }\n\n  public reset(): void {\n    this.registeredDirectives = [];\n  }\n}\n","import { ElementRef, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { CaseField } from '../../../domain/definition/case-field.model';\n\n/** Keeps track of initially hidden fields that toggle to show on the page (parent page).\n *  Used to decide whether to redisplay the grey bar when returning to the page during\n *  navigation between pages.\n */\n@Injectable()\nexport class GreyBarService {\n\n  private fieldsToggledToShow: string[] = [];\n  private readonly renderer: Renderer2;\n\n  constructor(rendererFactory: RendererFactory2) {\n      this.renderer = rendererFactory.createRenderer(null, null);\n  }\n\n  public showGreyBar(field: CaseField, el: ElementRef) {\n    if (!field.isCollection()) {\n      this.addGreyBar(el);\n    }\n  }\n\n  public removeGreyBar(el: ElementRef) {\n    const divSelector = el.nativeElement.querySelector('div');\n    if (divSelector) {\n      this.renderer.removeClass(divSelector, 'show-condition-grey-bar');\n    }\n  }\n\n  public addToggledToShow(fieldId: string) {\n    this.fieldsToggledToShow.push(fieldId);\n  }\n\n  public removeToggledToShow(fieldId: string) {\n    this.fieldsToggledToShow = this.fieldsToggledToShow.filter(id => id !== fieldId);\n  }\n\n  public wasToggledToShow(fieldId: string): boolean {\n    return this.fieldsToggledToShow.find(id => id === fieldId) !== undefined;\n  }\n\n  public reset() {\n    this.fieldsToggledToShow = [];\n  }\n\n  private addGreyBar(el: ElementRef) {\n    const divSelector = el.nativeElement.querySelector('div');\n    if (divSelector) {\n      this.renderer.addClass(divSelector, 'show-condition-grey-bar');\n    }\n  }\n}\n","export enum AddCommentsErrorMessage {\n  FLAG_COMMENTS_NOT_ENTERED = 'Please enter comments for this flag',\n  FLAG_COMMENTS_NOT_ENTERED_EXTERNAL = 'Please enter comments for this support request',\n  FLAG_COMMENTS_CHAR_LIMIT_EXCEEDED = 'Comments for this flag must be 200 characters or fewer'\n}\n","export enum AddCommentsStep {\n  HINT_TEXT = 'Explain why you are creating this flag. Do not include any sensitive information such as personal details.',\n  HINT_TEXT_EXTERNAL = 'Explain why you are creating this support request. Do not include any sensitive information such as personal details.',\n  CHARACTER_LIMIT_INFO = 'You can enter up to 200 characters',\n  WARNING_TEXT = 'The details entered here MAY be visible to the party in the future.'\n}\n","export enum CaseFlagCheckYourAnswersPageStep {\n  CASE_LEVEL_LOCATION = 'Case level',\n  ADD_FLAG_HEADER_TEXT = 'Add flag to',\n  ADD_FLAG_HEADER_TEXT_EXTERNAL = 'Add support to',\n  UPDATE_FLAG_HEADER_TEXT = 'Update flag for',\n  UPDATE_FLAG_HEADER_TEXT_EXTERNAL = 'Update support for',\n  FLAG_TYPE_HEADER_TEXT = 'Flag type',\n  FLAG_TYPE_HEADER_TEXT_EXTERNAL = 'Support type',\n  NONE = ''\n}\n","/**\n * Create and update contexts for external users are, by definition, part of Case Flags 2.1 - thus there is no enum\n * value for these.\n */\nexport enum CaseFlagDisplayContextParameter {\n  CREATE = '#ARGUMENT(CREATE)',\n  CREATE_EXTERNAL = '#ARGUMENT(CREATE,EXTERNAL)',\n  CREATE_2_POINT_1 = '#ARGUMENT(CREATE,VERSION2.1)',\n  READ_EXTERNAL = '#ARGUMENT(READ,EXTERNAL)',\n  UPDATE = '#ARGUMENT(UPDATE)',\n  UPDATE_EXTERNAL = '#ARGUMENT(UPDATE,EXTERNAL)',\n  UPDATE_2_POINT_1 = '#ARGUMENT(UPDATE,VERSION2.1)'\n}\n","export enum CaseFlagFormFields {\n  FLAG_TYPE = 'flagType',\n  COMMENTS = 'flagComment',\n  COMMENTS_WELSH = 'flagComment_cy',\n  OTHER_FLAG_DESCRIPTION = 'otherDescription',\n  OTHER_FLAG_DESCRIPTION_WELSH = 'otherDescription_cy',\n  STATUS = 'status',\n  STATUS_CHANGE_REASON = 'flagStatusReasonChange',\n  IS_WELSH_TRANSLATION_NEEDED = 'flagIsWelshTranslationNeeded',\n  IS_VISIBLE_INTERNALLY_ONLY = 'flagIsVisibleInternallyOnly'\n}\n","export enum CaseFlagStatus {\n  REQUESTED = 'Requested',\n  ACTIVE = 'Active',\n  INACTIVE = 'Inactive',\n  NOT_APPROVED = 'Not approved'\n}\n","export enum CaseFlagSummaryListDisplayMode {\n  CREATE,\n  MANAGE\n}\n","export enum CaseFlagWizardStepTitle {\n  SELECT_FLAG_LOCATION = 'Where should this flag be added?',\n  SELECT_FLAG_LOCATION_EXTERNAL = 'Who is the support for?',\n  SELECT_CASE_FLAG = 'Select flag type',\n  SELECT_CASE_FLAG_EXTERNAL = 'Select support type',\n  OTHER_FLAG_TYPE_DESCRIPTION = 'Enter a flag type',\n  OTHER_FLAG_TYPE_DESCRIPTION_EXTERNAL = 'Enter a support type',\n  ADD_FLAG_COMMENTS = 'Add comments for this flag',\n  ADD_FLAG_COMMENTS_EXTERNAL_MODE = 'Tell us more about the request',\n  CONFIRM_FLAG_STATUS = 'Confirm the status of the flag',\n  FLAG_STATUS = 'Flag status',\n  MANAGE_CASE_FLAGS = 'Manage case flags',\n  MANAGE_SUPPORT = 'Which support is no longer needed?',\n  UPDATE_FLAG_TITLE = 'Update flag',\n  UPDATE_FLAG_TITLE_EXTERNAL = 'Tell us why the support is no longer needed',\n  UPDATE_FLAG_ADD_TRANSLATION = 'Add translations to flag',\n  NONE = ''\n}\n","export enum ConfirmStatusErrorMessage {\n  STATUS_REASON_NOT_ENTERED = 'Comments and/or the name of the person approving the decision should be entered',\n  STATUS_REASON_CHAR_LIMIT_EXCEEDED = 'Comments must be 200 characters or fewer'\n}\n","export enum ConfirmStatusStep {\n  HINT_TEXT = 'Describe reason for status; if choosing \\'Not approved\\' provide name of person approving decision.',\n  CHARACTER_LIMIT_INFO = 'You can enter up to 200 characters'\n}\n","export enum SearchLanguageInterpreterErrorMessage {\n  LANGUAGE_NOT_ENTERED = 'Enter the language that will need to be interpreted',\n  LANGUAGE_CHAR_LIMIT_EXCEEDED = 'You can enter up to 80 characters for the required language',\n  LANGUAGE_ENTERED_IN_BOTH_FIELDS = 'The language can only be entered in one of the fields'\n}\n","export enum SearchLanguageInterpreterStep {\n  HINT_TEXT = 'Enter the language that will need to be interpreted. If this language is not listed, you can enter it manually.',\n  SIGN_HINT_TEXT = 'Enter the sign language that will need to be interpreted. If this language is not listed, you can enter it manually.',\n  CHECKBOX_LABEL = 'Enter the language manually',\n  INPUT_LABEL = 'Enter the language'\n}\n","export enum SelectFlagErrorMessage {\n  MANAGE_CASE_FLAGS_FLAG_NOT_SELECTED = 'Please make a selection',\n  MANAGE_SUPPORT_FLAG_NOT_SELECTED = 'Select which support is no longer needed',\n  NO_FLAGS = 'This case has no flags',\n}\n","export enum SelectFlagLocationErrorMessage {\n  FLAG_LOCATION_NOT_SELECTED = 'Please make a selection',\n  FLAGS_NOT_CONFIGURED = 'Flags have not been configured for this case type',\n}\n","export enum SelectFlagTypeErrorMessage {\n  FLAG_TYPE_NOT_SELECTED = 'Please select a flag type',\n  FLAG_TYPE_NOT_SELECTED_EXTERNAL = 'Please select a support type',\n  FLAG_TYPE_OPTION_NOT_SELECTED = 'Select an option',\n  FLAG_TYPE_NOT_ENTERED = 'Please enter a flag type',\n  FLAG_TYPE_NOT_ENTERED_EXTERNAL = 'Please enter a support type',\n  FLAG_TYPE_LIMIT_EXCEEDED = 'You can enter up to 80 characters only'\n}\n","export enum UpdateFlagAddTranslationErrorMessage {\n  DESCRIPTION_CHAR_LIMIT_EXCEEDED = 'Original description or translation must be 200 characters or fewer',\n  COMMENTS_CHAR_LIMIT_EXCEEDED = 'Original comments or translation must be 200 characters or fewer'\n}\n","export enum UpdateFlagAddTranslationStep {\n  HINT_TEXT = 'Write translation for flag description or comments in the boxes provided.',\n  CHARACTER_LIMIT_INFO = 'You can enter up to 200 characters'\n}\n","export enum UpdateFlagErrorMessage {\n  FLAG_COMMENTS_NOT_ENTERED = 'Please enter comments for this flag',\n  FLAG_COMMENTS_CHAR_LIMIT_EXCEEDED = 'Comments for this flag must be 200 characters or fewer',\n  STATUS_REASON_NOT_ENTERED = 'Comments and/or the name of the person approving the decision should be entered',\n  STATUS_REASON_NOT_ENTERED_EXTERNAL = 'You must explain why the support is no longer needed',\n  STATUS_REASON_CHAR_LIMIT_EXCEEDED = 'Comments must be 200 characters or fewer',\n  NONE = ''\n}\n","export enum UpdateFlagStep {\n  COMMENT_HINT_TEXT_INTERNAL = 'Explain why you are updating this flag. Do not include any sensitive information such as personal details.',\n  COMMENT_HINT_TEXT_INTERNAL_2_POINT_1 = 'Update the comments describing the user\\'s support needs or flag description. Do not include any sensitive information such as personal details.',\n  COMMENT_HINT_TEXT_EXTERNAL = 'Do not include any sensitive information such as personal details.',\n  COMMENT_FIELD_LABEL_EXTERNAL = 'Please provide your comments below',\n  CHARACTER_LIMIT_INFO = 'You can enter up to 200 characters',\n  STATUS_HINT_TEXT = 'Describe reason for status change.',\n  WARNING_TEXT = 'The details entered here MAY be visible to the party in the future.'\n}\n","export enum CaseFlagFieldState {\n  FLAG_LOCATION,\n  FLAG_TYPE,\n  FLAG_LANGUAGE_INTERPRETER,\n  FLAG_COMMENTS,\n  FLAG_STATUS,\n  FLAG_MANAGE_CASE_FLAGS,\n  FLAG_UPDATE,\n  FLAG_UPDATE_WELSH_TRANSLATION,\n}\n\nexport enum CaseFlagErrorMessage {\n  NO_EXTERNAL_FLAGS_COLLECTION = 'External collection for storing this case flag has not been configured for this case type',\n  NO_INTERNAL_FLAGS_COLLECTION = 'Internal collection for storing this case flag has not been configured for this case type'\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'ccdDash',\n  standalone: false\n})\nexport class DashPipe implements PipeTransform {\n\n  public transform(value: string): string {\n    return value ? value : '-';\n  }\n}\n","import { Injectable } from '@angular/core';\n\n/*\nTranslate a date time format string from the Java format provided by CCD to the format supported by Angular formatDate()\nVery simple translator that maps unsupported chars to the nearest equivalent.\nIf there is no equivalent puts ***x*** into the output where x is the unsupported character\n\nJava format\nG       era                         text              AD; Anno Domini; A\n   u       year                        year              2004; 04\n   y       year-of-era                 year              2004; 04\n   D       day-of-year                 number            189\n   M/L     month-of-year               number/text       7; 07; Jul; July; J\n   d       day-of-month                number            10\n\n   Q/q     quarter-of-year             number/text       3; 03; Q3; 3rd quarter\n   Y       week-based-year             year              1996; 96\n   w       week-of-week-based-year     number            27\n   W       week-of-month               number            4\n   E       day-of-week                 text              Tue; Tuesday; T\n   e/c     localized day-of-week       number/text       2; 02; Tue; Tuesday; T\n   F       week-of-month               number            3\n\n   a       am-pm-of-day                text              PM\n   h       clock-hour-of-am-pm (1-12)  number            12\n   K       hour-of-am-pm (0-11)        number            0\n   k       clock-hour-of-am-pm (1-24)  number            0\n\n   H       hour-of-day (0-23)          number            0\n   m       minute-of-hour              number            30\n   s       second-of-minute            number            55\n   S       fraction-of-second          fraction          978\n   A       milli-of-day                number            1234\n   n       nano-of-second              number            987654321\n   N       nano-of-day                 number            1234000000\n\n   V       time-zone ID                zone-id           America/Los_Angeles; Z; -08:30\n   z       time-zone name              zone-name         Pacific Standard Time; PST\n   O       localized zone-offset       offset-O          GMT+8; GMT+08:00; UTC-08:00;\n   X       zone-offset 'Z' for zero    offset-X          Z; -08; -0830; -08:30; -083015; -08:30:15;\n   x       zone-offset                 offset-x          +0000; -08; -0830; -08:30; -083015; -08:30:15;\n   Z       zone-offset                 offset-Z          +0000; -0800; -08:00;\n\n   p       pad next                    pad modifier      1\n\n   '       escape for text             delimiter\n   ''      single quote                literal           '\n   [       optional section start\n   ]       optional section end\n   #       reserved for future use\n   {       reserved for future use\n   }       reserved for future use\n\n Angular dateFormat characters\n Era\tG, GG & GGG\tAbbreviated\tAD\nGGGG\tWide\tAnno Domini\nGGGGG\tNarrow\tA\nYear\ty\tNumeric: minimum digits\t2, 20, 201, 2017, 20173\nyy\tNumeric: 2 digits + zero padded\t02, 20, 01, 17, 73\nyyy\tNumeric: 3 digits + zero padded\t002, 020, 201, 2017, 20173\nyyyy\tNumeric: 4 digits or more + zero padded\t0002, 0020, 0201, 2017, 20173\nMonth\tM\tNumeric: 1 digit\t9, 12\nMM\tNumeric: 2 digits + zero padded\t09, 12\nMMM\tAbbreviated\tSep\nMMMM\tWide\tSeptember\nMMMMM\tNarrow\tS\nMonth standalone\tL\tNumeric: 1 digit\t9, 12\nLL\tNumeric: 2 digits + zero padded\t09, 12\nLLL\tAbbreviated\tSep\nLLLL\tWide\tSeptember\nLLLLL\tNarrow\tS\nWeek of year\tw\tNumeric: minimum digits\t1... 53\nww\tNumeric: 2 digits + zero padded\t01... 53\nWeek of month\tW\tNumeric: 1 digit\t1... 5\nDay of month\td\tNumeric: minimum digits\t1\ndd\tNumeric: 2 digits + zero padded\t01\nWeek day\tE, EE & EEE\tAbbreviated\tTue\nEEEE\tWide\tTuesday\nEEEEE\tNarrow\tT\nEEEEEE\tShort\tTu\nPeriod\ta, aa & aaa\tAbbreviated\tam/pm or AM/PM\naaaa\tWide (fallback to a when missing)\tante meridiem/post meridiem\naaaaa\tNarrow\ta/p\nPeriod*\tB, BB & BBB\tAbbreviated\tmid.\nBBBB\tWide\tam, pm, midnight, noon, morning, afternoon, evening, night\nBBBBB\tNarrow\tmd\nPeriod standalone*\tb, bb & bbb\tAbbreviated\tmid.\nbbbb\tWide\tam, pm, midnight, noon, morning, afternoon, evening, night\nbbbbb\tNarrow\tmd\nHour 1-12\th\tNumeric: minimum digits\t1, 12\nhh\tNumeric: 2 digits + zero padded\t01, 12\nHour 0-23\tH\tNumeric: minimum digits\t0, 23\nHH\tNumeric: 2 digits + zero padded\t00, 23\nMinute\tm\tNumeric: minimum digits\t8, 59\nmm\tNumeric: 2 digits + zero padded\t08, 59\nSecond\ts\tNumeric: minimum digits\t0... 59\nss\tNumeric: 2 digits + zero padded\t00... 59\nFractional seconds\tS\tNumeric: 1 digit\t0... 9\nSS\tNumeric: 2 digits + zero padded\t00... 99\nSSS\tNumeric: 3 digits + zero padded (= milliseconds)\t000... 999\nZone\tz, zz & zzz\tShort specific non location format (fallback to O)\tGMT-8\nzzzz\tLong specific non location format (fallback to OOOO)\tGMT-08:00\nZ, ZZ & ZZZ\tISO8601 basic format\t-0800\nZZZZ\tLong localized GMT format\tGMT-8:00\nZZZZZ\tISO8601 extended format + Z indicator for offset 0 (= XXXXX)\t-08:00\nO, OO & OOO\tShort localized GMT format\tGMT-8\nOOOO\tLong localized GMT format\tGMT-08:00\n */\n\n@Injectable()\nexport class FormatTranslatorService {\n  public translate(javaFormat: string): string {\n    const result = [];\n    let prev = '\\0';\n    let inQuote = false;\n\n    const maybePush = <T>(target: T[], obj: T, flag: boolean) => {\n      if (!flag) {\n        target.push(obj);\n      }\n    };\n    for (const c of javaFormat) {\n      switch (c) {\n        case '\\'':\n          if (prev === '\\'') {\n            // literal single quote - ignore\n            inQuote = false;\n          } else {\n            inQuote = !inQuote;\n          }\n          break;\n        // Due to formatting constraints on the webapp, all 'd' characters should be replaced with 'D' (for Moment library)\n        // This is because we want the date, not the day (this format will need to be converted back)\n        case 'd':\n          maybePush(result, 'D', inQuote);\n          break;\n        // moment library defines year as capital y\n        case 'y':\n          maybePush(result, 'Y', inQuote);\n          break;\n        case 'e':\n        case 'c':\n          maybePush(result, 'E', inQuote); // no lower case E\n          break;\n        case 'F':\n          maybePush(result, 'W', inQuote);\n          break;\n        case 'K':\n          maybePush(result, 'H', inQuote);\n          break;\n        case 'k':\n          maybePush(result, 'h', inQuote);\n          break;\n        // commented out A change to '***' due to use in moment library for AM/PM\n        // added 'a' specification to stop discrepancy in am/AM pm/PM formatting\n        case 'a':\n          maybePush(result, 'A', inQuote);\n          break;\n        case 'n':\n        case 'N':\n          maybePush(result, `***${c}***`, inQuote); // No way to support A - millisec of day, n - nano of second, N - nano of Day\n          break;\n        case 'V':\n        case 'O':\n          maybePush(result, 'z', inQuote);\n          break;\n        case 'x':\n        case 'X':\n          maybePush(result, 'Z', inQuote);\n          break;\n        default:\n          maybePush(result, c, inQuote);\n      }\n      prev = c;\n    }\n    return result.join('');\n  }\n\n  public showOnlyDates(dateFormat: string): string {\n    // replace 'd' character with 'D' for the moment library\n    // This ensures only dates allowed\n    while (dateFormat.includes('d')) {\n      dateFormat = dateFormat.replace('d', 'D');\n    }\n    while (dateFormat.includes('y')) {\n      dateFormat = dateFormat.replace('y', 'Y');\n    }\n    return dateFormat;\n  }\n\n  public removeTime(dateFormat: string): string {\n    // remove hours irrelevant of whether 12 or 24 hour clock\n    while (dateFormat.includes('H') || dateFormat.includes('h')) {\n      dateFormat = dateFormat.replace('H', '');\n      dateFormat = dateFormat.replace('h', '');\n    }\n    // remove minutes\n    while (dateFormat.includes('m')) {\n      dateFormat = dateFormat.replace('m', '');\n    }\n    // remove seconds (s) and micro seconds (S)\n    while (dateFormat.includes('S') || dateFormat.includes('s')) {\n      dateFormat = dateFormat.replace('S', '');\n      dateFormat = dateFormat.replace('s', '');\n    }\n    // because there is time removal algorithm can make reasonable assumption to remove colons\n    while (dateFormat.includes(':')) {\n      dateFormat = dateFormat.replace(':', '');\n    }\n    return dateFormat.trim();\n  }\n\n  public hasDate(value: string): boolean {\n    return this.translate(value).length &&\n      value.toLowerCase().indexOf('d') >= 0 &&\n      value.indexOf('M') >= 0 && value.toLowerCase().indexOf('y') >= 0;\n  }\n\n  public is24Hour(value: string): boolean {\n    return this.translate(value).length &&\n      value.indexOf('H') >= 0;\n  }\n\n  public hasNoDay(value: string): boolean {\n    return this.translate(value).length && value.toLowerCase().indexOf('d') === -1 &&\n      value.indexOf('M') >= 0 && value.toLowerCase().indexOf('y') >= 0;\n  }\n\n  public hasNoDayAndMonth(value: string): boolean {\n    return this.translate(value).length &&\n      value.toLowerCase().indexOf('d') === -1 &&\n      value.indexOf('M') === -1 &&\n      value.toLowerCase().indexOf('y') >= 0;\n  }\n\n  public hasHours(value: string): boolean {\n    return this.translate(value).length && value.toLowerCase().indexOf('h') >= 0 && value.indexOf('m') === -1;\n  }\n\n  public hasMinutes(value: string): boolean {\n    return this.translate(value).length && value.indexOf('m') >= 0 && value.toLowerCase().indexOf('h') >= 0;\n  }\n\n  public hasSeconds(value: string): boolean {\n    return this.translate(value).length && value.toLowerCase().indexOf('s') >= 0;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport moment from 'moment';\n\nimport { FormatTranslatorService } from '../../../services/case-fields/format-translator.service';\n\n@Pipe({\n  name: 'ccdDate',\n  standalone: false\n})\nexport class DatePipe implements PipeTransform {\n  private static readonly DATE_FORMAT_REGEXP =\n    new RegExp('^(\\\\d{4})-?(\\\\d\\\\d)-?(\\\\d\\\\d)(?:T(\\\\d\\\\d)(?::?(\\\\d\\\\d)(?::?(\\\\d\\\\d)(?:\\\\.(\\\\d+))?)?)?(Z|([+-])(\\\\d\\\\d):?(\\\\d\\\\d))?|Z)?$');\n           //    1        2       3         4          5          6          7          8  9     10      11\n  private static readonly MONTHS = [\n    ['Jan'], ['Feb'], ['Mar'], ['Apr'], ['May'], ['Jun'], ['Jul'], ['Aug'], ['Sep'], ['Oct'], ['Nov'], ['Dec'],\n  ];\n\n  /**\n   * constructor to allow format translator to be injected\n   * @param formatTrans format translator\n   */\n  constructor(private readonly formatTrans: FormatTranslatorService) {\n  }\n\n  public transform(value: string, zone?: string, format?: string): string {\n    let resultDate = null;\n    const ISO_FORMAT = 'YYYY-MM-DDTHH:mm:ss.SSSZ';\n    if (value) {\n      // included to avoid editing the hour twice on second pass through\n      // this occurs on case details when datepipe is applied twice\n      if (!value.includes('T')) {\n        zone = 'utc';\n      }\n      const match: RegExpMatchArray = value.match(DatePipe.DATE_FORMAT_REGEXP);\n      // Make sure we actually have a match.\n      if (match) {\n        let offsetDate = null;\n        const date = this.getDate(match);\n        if (zone === 'local') {\n          offsetDate = this.getOffsetDate(date);\n        } else {\n          offsetDate = this.getDate(match);\n        }\n        // 'short' format is meaningful to formatDate, but not the same meaning as in the unit tests\n        if (this.formatTrans && format && format !== 'short') {\n          // support for java style formatting strings for dates\n          format = this.translateDateFormat(format);\n          resultDate = moment(offsetDate).format(format);\n        } else {\n          // RDM-1149 changed the pipe logic so that it doesn't add an hour to 'Summer Time' dates on DateTime field type\n          resultDate = `${offsetDate.getDate()} ${DatePipe.MONTHS[offsetDate.getMonth()]} ${offsetDate.getFullYear()}`;\n          if (match[4] && match[5] && match[6] && format !== 'short') {\n            resultDate += ', ';\n            resultDate += `${this.getHour(offsetDate.getHours().toString())}:`;\n            resultDate += `${this.pad(offsetDate.getMinutes())}:`;\n            resultDate += `${this.pad(offsetDate.getSeconds())} `;\n            resultDate += (this.toInt(offsetDate.getHours().toString()) >= 12) ? 'PM' : 'AM';\n          }\n        }\n      } else {\n        // EUI-2667. See if what we've been given is actually a formatted date that\n        // we could attempt to do something with.\n        const parsedDate: number = Date.parse(value);\n        // We successfully parsed it so let's use it.\n        if (!isNaN(parsedDate)) {\n          const d: Date = new Date(parsedDate);\n          // If what we received didn't include time, don't include it here either.\n          if (value.indexOf(':') < 0) {\n            const shortDate: string = d.toLocaleDateString('en-GB');\n            const shortISO: string = shortDate.split('/').reverse().join('-');\n            return this.transform(shortISO, zone, format);\n          }\n          // If it did include time, we want a full ISO string.\n          const thisMoment = moment(d).format(ISO_FORMAT);\n          return this.transform(thisMoment, zone, format);\n        }\n      }\n    }\n    return resultDate;\n  }\n\n  private translateDateFormat(format: string) {\n    if (this.formatTrans) {\n      return this.formatTrans.translate(format);\n    } else {\n      return format;\n    }\n  }\n\n  private getOffsetDate(date: Date): Date {\n    const localOffset = - date.getTimezoneOffset() / 60;\n    return new Date(date.getTime() + localOffset * 3600 * 1000);\n  }\n\n  private getDate(match: RegExpMatchArray): Date {\n    const year = this.toInt(match[1]);\n    const month = this.toInt(match[2]) - 1;\n    const day = this.toInt(match[3]);\n    let resultDate;\n    if (match[4] && match[5] && match[6]) {\n      const hour = this.toInt(match[4]);\n      const minutes = this.toInt(match[5]);\n      const seconds = this.toInt(match[6]);\n      resultDate = new Date(year, month, day, hour, minutes, seconds, 0);\n    } else {\n      resultDate = new Date(year, month, day);\n    }\n    return resultDate;\n  }\n\n  private getHour(hourStr: string): number {\n    let hourNum = this.toInt(hourStr);\n    if (hourNum > 12) {\n      hourNum = hourNum - 12;\n    } else if (hourNum === 0) {\n      hourNum = 12;\n    }\n    return hourNum;\n  }\n\n  private toInt(str: string): number {\n    return parseInt(str, 10);\n  }\n\n  private pad(num: any, padNum = 2): string {\n    const val = num !== undefined ? num.toString() : '';\n    return val.length >= padNum ? val : new Array(padNum - val.length + 1).join('0') + val;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { RpxTranslatePipe } from 'rpx-xui-translation';\nimport { CaseField } from '../../../domain/definition/case-field.model';\n\n@Pipe({\n  name: 'ccdFieldLabel',\n  pure: false,\n  standalone: false\n})\nexport class FieldLabelPipe implements PipeTransform {\n\n  constructor(\n    private readonly rpxTranslationPipe: RpxTranslatePipe\n  ) {\n  }\n\n  public transform(field: CaseField): string {\n    if (!field || !field.label) {\n      return '';\n    } else if (!field.display_context) {\n      return this.getTranslatedLabel(field);\n    }\n    return this.getTranslatedLabel(field) + (field.display_context.toUpperCase() === 'OPTIONAL' ?\n      ' (' + this.rpxTranslationPipe.transform('Optional') + ')' : '');\n  }\n\n  private getTranslatedLabel(field: CaseField): string {\n    if (!field.isTranslated) {\n      return this.rpxTranslationPipe.transform(field.label);\n    } else {\n      return field.label;\n    }\n  }\n\n  public getOriginalLabelForYesNoTranslation(field: CaseField): string {\n    return field.originalLabel || field.label;\n  }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, Injector, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { switchMap } from 'rxjs/operators';\n\n@Pipe({\n  name: 'ccdFirstError',\n  pure: false,\n  standalone: false\n})\nexport class FirstErrorPipe implements PipeTransform, OnDestroy {\n  private asyncPipe: AsyncPipe;\n\n  constructor(\n    private readonly rpxTranslationService: RpxTranslationService,\n    private readonly injector: Injector\n  ) {\n    this.asyncPipe = new AsyncPipe(this.injector.get(ChangeDetectorRef));\n  }\n\n  public transform(value: ValidationErrors, args?: string): string {\n    if (!value) {\n      return '';\n    }\n\n    if (!args) {\n      args = 'Field';\n    }\n\n    const keys = Object.keys(value);\n\n    if (!keys.length) {\n      return '';\n    }\n\n    let errorMessage: string;\n    if (keys[0] === 'required') {\n      errorMessage = '%FIELDLABEL% is required';\n    } else if (keys[0] === 'pattern') {\n      errorMessage = 'The data entered is not valid for %FIELDLABEL%';\n    } else if (keys[0] === 'markDownPattern') {\n      errorMessage = 'The data entered is not valid for %FIELDLABEL%. Link mark up characters are not allowed in this field';\n    } else if (keys[0] === 'minlength') {\n      errorMessage = '%FIELDLABEL% is below the minimum length';\n    } else if (keys[0] === 'maxlength') {\n      errorMessage = '%FIELDLABEL% exceeds the maximum length';\n    } else if (value.hasOwnProperty('matDatetimePickerParse')) {\n      errorMessage = 'The date entered is not valid. Please provide a valid date';\n    } else {\n      errorMessage = value[keys[0]];\n    }\n\n    const o = this.rpxTranslationService.getTranslation$(args).pipe(\n      switchMap(fieldLabel => this.rpxTranslationService.getTranslationWithReplacements$(errorMessage, { FIELDLABEL: fieldLabel }))\n    );\n\n    return this.asyncPipe.transform(o);\n  }\n\n  public ngOnDestroy(): void {\n    this.asyncPipe.ngOnDestroy();\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { FieldTypeEnum } from '../../../domain/definition/field-type-enum.model';\n\n@Pipe({\n  name: 'ccdIsCompound',\n  standalone: false\n})\nexport class IsCompoundPipe implements PipeTransform {\n\n  private static readonly COMPOUND_TYPES: FieldTypeEnum[] = [\n    'Complex',\n    'Label',\n    'AddressGlobal',\n    'AddressUK',\n    'AddressGlobalUK',\n    'CasePaymentHistoryViewer',\n    'CaseHistoryViewer',\n    'Organisation',\n    'WaysToPay',\n    'ComponentLauncher',\n    'FlagLauncher',\n    'CaseFlag'\n  ];\n\n  private static readonly EXCLUDE: string[] = [\n    'CaseLink',\n    'JudicialUser'\n  ];\n\n  public transform(field: CaseField): boolean {\n    if (!field || !field.field_type || !field.field_type.type) {\n      return false;\n    }\n\n    if (IsCompoundPipe.COMPOUND_TYPES.indexOf(field.field_type.type) !== -1) {\n      if (IsCompoundPipe.EXCLUDE.indexOf(field.field_type.id) !== -1) {\n        return false;\n      }\n      return true;\n    }\n\n    return false;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { CaseField } from '../../domain/definition/case-field.model';\n\n@Injectable()\nexport class CaseFieldService {\n\n  public isOptional (field: CaseField) {\n    if (!field || !field.display_context) {\n      return false;\n    }\n    return field.display_context.toUpperCase() === 'OPTIONAL';\n  }\n\n  public isReadOnly (field: CaseField) {\n    if (!field || !field.display_context) {\n      return false;\n    }\n    return field.display_context.toUpperCase() === 'READONLY';\n  }\n\n  public isMandatory (field: CaseField) {\n    if (!field || !field.display_context) {\n      return false;\n    }\n    return field.display_context.toUpperCase() === 'MANDATORY';\n  }\n\n  public isLabel (field: CaseField) {\n    if (!field || !field.field_type) {\n      return false;\n    }\n    return field.field_type.type === 'Label';\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { CaseFieldService } from '../../../services/case-fields/case-field.service';\n\n@Pipe({\n  name: 'ccdIsMandatory',\n  standalone: false\n})\nexport class IsMandatoryPipe implements PipeTransform {\n\n  constructor(private readonly  caseFieldService: CaseFieldService) {}\n\n  public transform(field: CaseField): boolean {\n    return this.caseFieldService.isMandatory(field);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { CaseFieldService } from '../../../services/case-fields/case-field.service';\n\n@Pipe({\n  name: 'ccdIsReadOnly',\n  standalone: false\n})\nexport class IsReadOnlyPipe implements PipeTransform {\n\n  constructor(private readonly caseFieldService: CaseFieldService) {}\n\n  public transform(field: CaseField): boolean {\n    return this.caseFieldService.isReadOnly(field);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaseField } from '../../../domain/definition';\nimport { CaseFieldService } from '../../../services/case-fields';\n\n@Pipe({\n  name: 'ccdIsReadOnlyAndNotCollection',\n  standalone: false\n})\nexport class IsReadOnlyAndNotCollectionPipe implements PipeTransform {\n\n  constructor(private readonly  caseFieldService: CaseFieldService) {}\n\n  public transform(field: CaseField): boolean {\n    if (!field || !field.field_type || !field.field_type.type) {\n      return false;\n    }\n    if (this.isCollection(field)) {\n      return false;\n    }\n    return this.caseFieldService.isReadOnly(field);\n  }\n\n  // CaseField @Expose() doesn't work with the pipe in here, so leaving the manual check\n  private isCollection(field: CaseField): boolean {\n    return field.field_type && field.field_type.type === 'Collection';\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RpxTranslatePipe, RpxTranslationModule } from 'rpx-xui-translation';\nimport { DashPipe } from './dash.pipe';\nimport { DatePipe } from './date.pipe';\nimport { FieldLabelPipe } from './field-label.pipe';\nimport { FirstErrorPipe } from './first-error.pipe';\nimport { IsCompoundPipe } from './is-compound.pipe';\nimport { IsMandatoryPipe } from './is-mandatory.pipe';\nimport { IsReadOnlyAndNotCollectionPipe } from './is-read-only-and-not-collection.pipe';\nimport { IsReadOnlyPipe } from './is-read-only.pipe';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    DatePipe,\n    FieldLabelPipe,\n    FirstErrorPipe,\n    IsCompoundPipe,\n    IsMandatoryPipe,\n    IsReadOnlyPipe,\n    IsReadOnlyAndNotCollectionPipe,\n    DashPipe\n  ],\n  exports: [\n    DatePipe,\n    FieldLabelPipe,\n    FirstErrorPipe,\n    IsCompoundPipe,\n    IsMandatoryPipe,\n    IsReadOnlyPipe,\n    IsReadOnlyAndNotCollectionPipe,\n    DashPipe\n  ],\n  providers:[\n    IsCompoundPipe,\n    RpxTranslatePipe\n  ]\n})\nexport class PaletteUtilsModule {}\n","// tslint:disable:variable-name\nexport class AddressModel {\n  public AddressLine1 = '';\n  public AddressLine2 = '';\n  public AddressLine3 = '';\n  public PostTown = '';\n  public County = '';\n  public PostCode = '';\n  public Country = '';\n}\n","import { AlertLevel } from './alert-level.model';\n\nexport class Alert {\n  public level: AlertLevel;\n  public message: string;\n}\n","// tslint:disable:variable-name\nexport class CaseDetails {\n  public id: string;\n  public jurisdiction: string;\n  public case_type_id: string;\n  public state: string;\n  public created_date?: string;\n  public last_modified?: string;\n  public locked_by_user_id?: string;\n  public security_level?: string;\n  public case_data?: object;\n}\n","// tslint:disable:variable-name\nexport class CaseEventData {\n  public event: {\n    id: string;\n    summary: string;\n    description: string;\n  };\n  public data?: object;\n  public event_data?: object; // full event data\n  public event_token: string;\n  public ignore_warning: boolean;\n  public draft_id?: string;\n  public case_reference?: string;\n}\n","// tslint:disable:variable-name\nimport { Orderable } from '../../../domain/order/orderable.model';\nimport { ComplexFieldOverride } from './wizard-page-field-complex-override.model';\n\nexport class WizardPageField implements Orderable {\n  public case_field_id: string;\n  public order?: number;\n  public page_column_no?: number;\n  public complex_field_overrides?: ComplexFieldOverride[];\n}\n","import { Orderable } from '../order';\n\nexport class FixedListItem implements Orderable {\n  public code: string;\n  public label: string;\n  public order?: number;\n}\n","// tslint:disable:variable-name\nimport { Type } from 'class-transformer';\nimport { CaseField } from './case-field.model';\nimport { FieldTypeEnum } from './field-type-enum.model';\nimport { FixedListItem } from './fixed-list-item.model';\nimport 'reflect-metadata';\n\n// @dynamic\nexport class FieldType {\n  public id: string;\n  public type: FieldTypeEnum;\n  public min?: number | Date;\n  public max?: number | Date;\n  public regular_expression?: string;\n\n  @Type(() => FixedListItem)\n  public fixed_list_items?: FixedListItem[];\n\n  @Type(() => CaseField)\n  public complex_fields?: CaseField[];\n\n  @Type(() => FieldType)\n  public collection_field_type?: FieldType;\n}\n","// tslint:disable:variable-name\nimport { Exclude, Expose, Type } from 'class-transformer';\nimport * as _ from 'underscore';\nimport { WizardPageField } from '../../components/case-editor/domain/wizard-page-field.model';\nimport { Orderable } from '../order';\nimport { AccessControlList } from './access-control-list.model';\nimport { FieldTypeEnum } from './field-type-enum.model';\nimport { FieldType } from './field-type.model';\n\n// @dynamic\nexport class CaseField implements Orderable {\n  public id: string;\n  public hidden: boolean;\n  public hiddenCannotChange: boolean;\n  public label: string;\n  public originalLabel?: string;\n  public noCacheLabel?: string;\n  public order?: number;\n  @Exclude()\n  public parent?: CaseField;\n\n  @Type(() => FieldType)\n  public field_type: FieldType;\n\n  public hint_text?: string;\n  public security_label?: string;\n  public display_context: string;\n  public display_context_parameter?: string;\n  public month_format?: string;\n  public show_condition?: string;\n  public show_summary_change_option?: boolean;\n  public show_summary_content_option?: number;\n  public acls?: AccessControlList[];\n  public metadata?: boolean;\n  public formatted_value?: any;\n  public retain_hidden_value: boolean;\n\n  @Type(() => WizardPageField)\n  public wizardProps?: WizardPageField;\n\n  public _value: any;\n  public _list_items: any = [];\n  private isTranslatedFlag: boolean = false;\n\n  @Expose()\n  public get value(): any {\n    if (this.field_type && (this.field_type.type === 'DynamicList' || this.field_type.type === 'DynamicRadioList')) {\n      return this._value && this._value.value ? this._value.value.code : this._value;\n    } else if (this.field_type && this.field_type.type === 'DynamicMultiSelectList') {\n      return this._value && this._value.value ? this._value.value : this._value;\n    } else {\n      return this._value;\n    }\n  }\n\n  public set value(value: any) {\n    if (this.isDynamic()) {\n      if (value && value instanceof Object && value.list_items) {\n        this._list_items = value.list_items;\n      } else if (!this._list_items || this._list_items.length === 0) {\n        // Extract the list items from the current value if that's the only place they exist.\n        this._list_items = this.list_items;\n        if (!value || !value.value) {\n          value = null;\n        }\n      }\n    }\n    this._value = value;\n  }\n\n  @Expose()\n  public get list_items(): any {\n    if (this.isDynamic()) {\n      return this._value && this._value.list_items ? this._value.list_items : this._list_items;\n    } else {\n      return this.field_type.fixed_list_items;\n    }\n  }\n\n  public set list_items(items: any) {\n    if ((items && !this._list_items) || (items?.length > this._list_items?.length)){\n      this._list_items = items;\n    }\n  }\n\n  @Expose()\n  public get dateTimeEntryFormat(): string {\n    if (this.isComplexDisplay()) {\n      return null;\n    }\n    if (this.display_context_parameter) {\n      return this.extractBracketValue(this.display_context_parameter, '#DATETIMEENTRY');\n    }\n    return null;\n  }\n\n  @Expose()\n  public get dateTimeDisplayFormat(): string {\n    if (this.isComplexEntry()) {\n      return null;\n    }\n    if (this.display_context_parameter) {\n      return this.extractBracketValue(this.display_context_parameter, '#DATETIMEDISPLAY');\n    }\n    return null;\n  }\n\n  @Expose()\n  public isComplexDisplay() {\n    return (this.isComplex() || this.isCollection()) && this.isReadonly();\n  }\n\n  @Expose()\n  public isComplexEntry() {\n    return (this.isComplex() || this.isCollection()) && (this.isOptional() || this.isMandatory());\n  }\n\n  @Expose()\n  public isReadonly() {\n    return !_.isEmpty(this.display_context)\n      && this.display_context.toUpperCase() === 'READONLY';\n  }\n\n  @Expose()\n  public isOptional() {\n    return !_.isEmpty(this.display_context)\n      && this.display_context.toUpperCase() === 'OPTIONAL';\n  }\n\n  @Expose()\n  public isMandatory() {\n    return !_.isEmpty(this.display_context)\n      && this.display_context.toUpperCase() === 'MANDATORY';\n  }\n\n  @Expose()\n  public isCollection(): boolean {\n    return this.field_type && this.field_type.type === 'Collection';\n  }\n\n  @Expose()\n  public isComplex(): boolean {\n    return this.field_type && this.field_type.type === 'Complex';\n  }\n\n  @Expose()\n  public isDynamic(): boolean {\n    const dynamicFieldTypes: FieldTypeEnum[] = ['DynamicList', 'DynamicRadioList', 'DynamicMultiSelectList'];\n\n    if (!this.field_type) {\n      return false;\n    }\n\n    return dynamicFieldTypes.some(t => t === this.field_type.type);\n  }\n\n  @Expose()\n  public isCaseLink(): boolean {\n    return this.isComplex()\n      && this.field_type.id === 'CaseLink'\n      && this.field_type.complex_fields.some(cf => cf.id === 'CaseReference');\n  }\n  public extractBracketValue(fmt: string, paramName: string, leftBracket= '(', rightBracket= ')' ): string {\n      fmt = fmt.split(',')\n        .find(a => a.trim().startsWith(paramName));\n      if (fmt) {\n        const s = fmt.indexOf(leftBracket) + 1;\n        const e = fmt.indexOf(rightBracket, s);\n        if (e > s && s >= 0) {\n          return fmt.substr(s, (e - s));\n        }\n      }\n      return null;\n  }\n\n  // Ascend the hierarchy to get the full path of the field\n  @Expose()\n  public getHierachicalId(curr?: string): string {\n    const prefix: string = curr ? curr + \"_\" : \"\";\n    if (prefix.length < 1024) {\n      if (this.parent) {\n        return this.parent.getHierachicalId(prefix + this.id);\n      } else {\n        return prefix + this.id;\n      }\n    } else {\n      console.log(\"Path too long, possible circular reference in case field hierarchy\");\n      return this.id;\n    }\n  }\n\n  public set isTranslated(val: boolean)\n  {\n    this.isTranslatedFlag = val;\n  }\n\n  public get isTranslated(): boolean {\n    return this.isTranslatedFlag;\n  }\n}\n","// tslint:disable:variable-name\nimport { Type } from 'class-transformer';\nimport { ShowCondition } from '../../../directives/conditional-show/domain/conditional-show.model';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { Orderable } from '../../../domain/order/orderable.model';\nimport { WizardPageField } from './wizard-page-field.model';\n\n// @dynamic\nexport class WizardPage implements Orderable {\n  public id: string;\n  public label: string;\n  public order?: number;\n\n  @Type(() => WizardPageField)\n  public wizard_page_fields: WizardPageField[];\n\n  @Type(() => CaseField)\n  public case_fields: CaseField[];\n\n  public show_condition?: string;\n\n  public parsedShowCondition: ShowCondition;\n\n  public getCol1Fields(): CaseField[] {\n    return this.case_fields?.filter(f =>\n      !f.wizardProps.page_column_no || f.wizardProps.page_column_no === 1);\n  }\n  public getCol2Fields(): CaseField[] {\n    return this.case_fields?.filter(f => f.wizardProps.page_column_no === 2);\n  }\n\n  public isMultiColumn(): boolean {\n    return this.getCol2Fields()?.length > 0;\n  }\n}\n","// tslint:disable:variable-name\nimport { Type } from 'class-transformer';\nimport { WizardPage } from '../../components/case-editor/domain/wizard-page.model';\nimport { CaseField } from '../definition/case-field.model';\n\n// @dynamic\nexport class CaseEventTrigger {\n  public id: string;\n  public name: string;\n  public description?: string;\n  public case_id?: string;\n\n  @Type(() => CaseField)\n  public case_fields: CaseField[];\n\n  public event_token: string;\n\n  @Type(() => WizardPage)\n  public wizard_pages: WizardPage[];\n\n  public show_summary?: boolean;\n  public show_event_notes?: boolean;\n  public end_button_label?: string;\n  public can_save_draft?: boolean;\n\n  public hasFields(): boolean {\n    return this.case_fields && this.case_fields.length !== 0;\n  }\n\n  public hasPages(): boolean {\n    return this.wizard_pages && this.wizard_pages.length !== 0;\n  }\n}\n","// tslint:disable:variable-name\nexport class CaseViewEvent {\n  public id: number;\n  public timestamp: string;\n  public summary: string;\n  public comment: string;\n  public event_id: string;\n  public event_name: string;\n  public state_id: string;\n  public state_name: string;\n  public user_id: number;\n  public user_last_name: string;\n  public user_first_name: string;\n  public significant_item: {\n    type: string,\n    description: string,\n    url: string\n  };\n}\n","import { Orderable } from '../order';\n\nexport class CaseViewTrigger implements Orderable {\n  public id: string;\n  public name: string;\n  public description: string;\n  public order?: number;\n}\n","// tslint:disable:variable-name\nimport { Orderable } from '../order';\nimport { AccessControlList } from './access-control-list.model';\nimport { EventCaseField } from './event-case-field.model';\n\nexport class CaseEvent implements Orderable {\n  public id: string;\n  public name: string;\n  public post_state: string;\n  public pre_states: string[];\n  public case_fields: EventCaseField[];\n  public description: string;\n  public order?: number;\n  public acls?: AccessControlList[];\n}\n","import { Orderable } from '../order';\n\nexport class CaseState implements Orderable {\n  public id: string;\n  public name: string;\n  public description: string;\n  public order?: number;\n}\n","import { CaseEvent } from './case-event.model';\nimport { CaseState } from './case-state.model';\n\n// Light clone of CaseType to be used in Jurisdiction class\n// to  avoid cyclic dependency\nexport class CaseTypeLite {\n  public id: string;\n  public name: string;\n  public events: CaseEvent[];\n  public states: CaseState[];\n  public description: string;\n}\n","// tslint:disable:variable-name\nimport { Type } from 'class-transformer';\nimport { CaseEvent } from './case-event.model';\nimport { CaseField } from './case-field.model';\nimport { CaseState } from './case-state.model';\nimport { Jurisdiction } from './jurisdiction.model';\n\n// @dynamics\nexport class CaseType {\n  public id: string;\n  public name: string;\n  public events: CaseEvent[];\n  public states: CaseState[];\n\n  @Type(() => CaseField)\n  public case_fields: CaseField[];\n\n  public description: string;\n  public jurisdiction: Jurisdiction;\n  public printEnabled?: boolean;\n}\n","// tslint:disable:variable-name\nexport class EventCaseField {\n  public case_field_id: string;\n  public showCondition: string;\n}\n","import { CaseTypeLite } from './case-type-lite.model';\n\nexport class Jurisdiction {\n  public id: string;\n  public name: string;\n  public description: string;\n  public caseTypes: CaseTypeLite[];\n  public currentCaseType?: CaseTypeLite;\n}\n","export class Banner {\n  public bannerDescription: string;\n  public bannerUrlText: string;\n  public bannerUrl: string;\n  public bannerViewed: boolean;\n  public bannerEnabled: boolean;\n}\n","// tslint:disable:variable-name\nimport { Type } from 'class-transformer';\nimport { CaseField } from '../definition';\nimport { Orderable } from '../order';\n\n// @dynamic\nexport class CaseTab implements Orderable {\n  public id: string;\n  public label: string;\n  public order?: number;\n  @Type(() => CaseField)\n  public fields: CaseField[];\n  public show_condition?: string;\n}\n","// tslint:disable:variable-name\nimport { Type } from 'class-transformer';\nimport { Flags } from '../../components/palette/case-flag';\nimport { CaseField } from '../definition';\nimport { CaseTab } from './case-tab.model';\nimport { CaseViewEvent } from './case-view-event.model';\nimport { CaseViewTrigger } from './case-view-trigger.model';\n\n// @dynamic\nexport class CaseView {\n  public case_id?: string;\n  public case_type: {\n    id: string,\n    name: string,\n    description?: string,\n    jurisdiction: {\n      id: string,\n      name: string,\n      description?: string\n    },\n    printEnabled?: boolean\n  };\n  public state: {\n    id: string,\n    name: string,\n    description?: string\n    title_display?: string\n  };\n  public channels: string[];\n  @Type(() => CaseTab)\n  public tabs: CaseTab[];\n  public triggers: CaseViewTrigger[];\n  public events: CaseViewEvent[];\n  @Type(() => CaseField)\n  public metadataFields?: CaseField[];\n  public basicFields?: {\n    caseNameHmctsInternal?: string,\n    caseManagementLocation?: {\n      baseLocation?: number\n    }\n  };\n  public case_flag?: Flags;\n}\n","export class CasePrintDocument {\n  public name: string;\n  public type: string;\n  public url: string;\n}\n","// tslint:disable:variable-name\nexport class HRef {\n  public href: string;\n}\n\nexport class DocumentLinks {\n  public self: HRef;\n  public binary: HRef;\n}\n\nexport class Document {\n  public _links: DocumentLinks;\n  public originalDocumentName: string;\n  public hashToken?: string;\n}\n\nexport class Embedded {\n  public documents: Document[];\n}\n\nexport class DocumentData {\n  public _embedded: Embedded;\n  public documents: Document[];\n}\n\nexport class FormDocument {\n  public document_url: string;\n  public document_binary_url: string;\n  public document_filename: string;\n  public document_hash?: string;\n  public upload_timestamp?: string;\n}\n","import { Injectable } from '@angular/core';\nimport { OrganisationVm } from '../../services/organisation';\nimport { SimpleOrganisationModel } from './simple-organisation.model';\n\n@Injectable()\nexport class OrganisationConverter {\n  private static toSimpleAddress(organisationModel: OrganisationVm): string {\n    let simpleAddress = '';\n    if (organisationModel.addressLine1) { simpleAddress += `${organisationModel.addressLine1}<br>`; }\n    if (organisationModel.addressLine2) { simpleAddress += `${organisationModel.addressLine2}<br>`; }\n    if (organisationModel.addressLine3) { simpleAddress += `${organisationModel.addressLine3}<br>`; }\n    if (organisationModel.townCity) { simpleAddress += `${organisationModel.townCity}<br>`; }\n    if (organisationModel.county) { simpleAddress += `${organisationModel.county}<br>`; }\n    if (organisationModel.country) { simpleAddress += `${organisationModel.country}<br>`; }\n    if (organisationModel.postCode) { simpleAddress += `${organisationModel.postCode}<br>`; }\n    return simpleAddress;\n  }\n\n  public toSimpleOrganisationModel(organisationModel: OrganisationVm): SimpleOrganisationModel {\n    return {\n      organisationIdentifier: organisationModel.organisationIdentifier,\n      name: organisationModel.name,\n      address: OrganisationConverter.toSimpleAddress(organisationModel)\n    };\n  }\n}\n","export class PaginationMetadata {\n  public totalResultsCount: number;\n  public totalPagesCount: number;\n}\n","import { Type } from 'class-transformer';\nimport { Jurisdiction } from '../definition/jurisdiction.model';\n\nfunction hasRoles(profile: Profile): boolean {\n  if (profile.user && profile.user.idam && Array.isArray(profile.user.idam.roles)) {\n    return profile.user.idam.roles.length > 0;\n  }\n  return false;\n}\n\n// @dynamic\nexport class Profile {\n  public user: {\n    idam: {\n      id: string,\n      email: string,\n      forename: string,\n      surname: string,\n      roles: string[]\n    }\n  };\n\n  public channels: string[];\n\n  @Type(() => Jurisdiction)\n  public jurisdictions: Jurisdiction[];\n\n  public default: {\n    workbasket: {\n      jurisdiction_id: string,\n      case_type_id: string,\n      state_id: string\n    }\n  };\n\n  public isSolicitor(): boolean {\n    if (hasRoles(this)) {\n      return this.user.idam.roles.find(r => r.endsWith('-solicitor')) !== undefined;\n    }\n    return false;\n  }\n\n  public isCourtAdmin(): boolean {\n    if (hasRoles(this)) {\n      return this.user.idam.roles.find(r => r.endsWith('-courtadmin')) !== undefined;\n    }\n    return false;\n  }\n}\n","// tslint:disable:variable-name\nimport { FieldType } from '../definition';\n\nexport class Field {\n  constructor(\n    public id: string,\n    public field_type: FieldType,\n    public elementPath?: string,\n    public value?: string,\n    public label?: string,\n    public metadata?: boolean\n  ) {}\n}\n","// tslint:disable:variable-name\nimport { FieldType } from '../definition';\n\nexport class SearchResultViewColumn {\n  public case_field_id: string;\n  public case_field_type: FieldType;\n  public display_context?: string;\n  public display_context_parameter?: string;\n  public label: string;\n  public order: number;\n}\n","// tslint:disable:variable-name\nimport { Type } from 'class-transformer';\nimport { CaseField } from '../definition';\n\n// @dynamic\nexport class SearchResultViewItem {\n  public case_id: string;\n  public case_fields: object;\n  @Type(() => CaseField)\n  public hydrated_case_fields?: CaseField[];\n  public columns?: object;\n  public supplementary_data?: any;\n  public display_context_parameter?: any;\n}\n","// tslint:disable:variable-name\nimport { Type } from 'class-transformer';\nimport { Draft } from '../draft.model';\nimport { SearchResultViewColumn } from './search-result-view-column.model';\nimport { SearchResultViewItem } from './search-result-view-item.model';\n\n// @dynamic\nexport class SearchResultView {\n  @Type(() => SearchResultViewColumn)\n  public columns: SearchResultViewColumn[];\n\n  @Type(() => SearchResultViewItem)\n  public results: SearchResultViewItem[];\n  public result_error?: string;\n\n  public hasDrafts() {\n    return this.results[0]\n    && this.results[0].case_id\n    && Draft.isDraft(this.results[0].case_id);\n  }\n}\n","import { SortOrder } from '../../sort-order.enum';\nimport { SearchResultViewItemComparator } from './search-result-view-item-comparator';\n\nexport class SortParameters {\n\n  public comparator: SearchResultViewItemComparator;\n  public sortOrder: SortOrder;\n\n  constructor(comparator: SearchResultViewItemComparator, sortOrder: SortOrder) {\n    this.comparator = comparator;\n    this.sortOrder = sortOrder;\n  }\n\n}\n","export enum SortOrder {\n  ASCENDING,\n  DESCENDING,\n  UNSORTED\n}\n","// tslint:disable:variable-name\nimport { Orderable } from '../order/orderable.model';\nimport { Field } from '../search/field.model';\n\nexport class WorkbasketInputModel implements Orderable {\n  public label: string;\n  public order: number;\n  public field: Field;\n  public metadata?: boolean;\n  public display_context_parameter?: string;\n}\n\nexport class WorkbasketInput {\n  public workbasketInputs: WorkbasketInputModel[];\n}\n","import { CurrencyPipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { WizardPage } from '../../components/case-editor/domain';\nimport { AbstractFormFieldComponent } from '../../components/palette/base-field/abstract-form-field.component';\nimport { FlagDetail, FlagsWithFormGroupPath } from '../../components/palette/case-flag/domain/case-flag.model';\nimport { CaseFlagDisplayContextParameter, CaseFlagStatus } from '../../components/palette/case-flag/enums';\nimport { DatePipe } from '../../components/palette/utils';\nimport { CaseEventTrigger, CaseField, CaseTab, CaseView, FieldType, FieldTypeEnum, FixedListItem, Predicate } from '../../domain';\nimport { UserTask } from '../../domain/work-allocation/Task';\nimport { FormatTranslatorService } from '../case-fields/format-translator.service';\n\n// @dynamic\n@Injectable()\nexport class FieldsUtils {\n  private static readonly caseLevelCaseFlagsFieldId = 'caseFlags';\n  private static readonly currencyPipe: CurrencyPipe = new CurrencyPipe('en-GB');\n  private static readonly datePipe: DatePipe = new DatePipe(new FormatTranslatorService());\n  // EUI-4244. 3 dashes instead of 1 to make this less likely to clash with a real field.\n  public static readonly LABEL_SUFFIX = '---LABEL';\n  // Handling of Dynamic Lists in Complex Types\n  public static readonly SERVER_RESPONSE_FIELD_TYPE_COLLECTION = 'Collection';\n  public static readonly SERVER_RESPONSE_FIELD_TYPE_COMPLEX = 'Complex';\n  public static readonly SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE: FieldTypeEnum[] = ['DynamicList', 'DynamicRadioList'];\n  public static readonly defaultTabList = {\n    \"PRLAPPS\": \"Summary\"\n  }\n\n  public static isValidDisplayContext(ctx: string): boolean {\n    return (ctx === 'MANDATORY' || ctx === 'READONLY'\n      || ctx === 'OPTIONAL' || ctx === 'HIDDEN'\n      || ctx === 'COMPLEX');\n  }\n\n  public static createToken(): string {\n    if (typeof window !== 'undefined' && window.crypto?.randomUUID) {\n      return window.crypto.randomUUID();\n    }\n    if (typeof window !== 'undefined' && window.crypto?.getRandomValues) {\n      const bytes = new Uint8Array(16);\n      window.crypto.getRandomValues(bytes);\n      return Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('');\n    }\n    return `${Date.now()}`;\n  }\n\n  public static isTranslatable(fieldType: FieldType): boolean {\n    if (fieldType.type === 'Label' || fieldType.type === 'FixedList') {\n      return true;\n    }\n  }\n\n  public static convertToCaseField(obj: any): CaseField {\n    if (!(obj instanceof CaseField)) {\n      return plainToClassFromExist(new CaseField(), obj);\n    }\n    return obj;\n  }\n\n  public static toValuesMap(caseFields: CaseField[]): any {\n    const valueMap = {};\n    caseFields.forEach(field => {\n      valueMap[field.id] = FieldsUtils.prepareValue(field);\n    });\n    return valueMap;\n  }\n\n  // public static getType(elem: any): string {\n  //   return Object.prototype.toString.call(elem).slice(8, -1);\n  // }\n\n  public static isObject(elem: any): boolean {\n    return typeof elem === 'object' && elem !== null;\n  }\n\n  public static isNonEmptyObject(elem: any): boolean {\n    return this.isObject(elem) && Object.keys(elem).length !== 0;\n  }\n\n  public static isArray(elem: any): boolean {\n    return Array.isArray(elem);\n  }\n\n  public static areCollectionValuesSimpleFields(fieldValue: any[]): boolean {\n    return !this.isObject(fieldValue[0]['value']) && !Array.isArray(fieldValue[0]['value']) && fieldValue[0]['value'] !== undefined;\n  }\n\n  public static isCollectionOfSimpleTypes(fieldValue: any): boolean {\n    return this.isCollection(fieldValue) && this.areCollectionValuesSimpleFields(fieldValue);\n  }\n\n  public static isMultiSelectValue(form: any): boolean {\n    return this.isNonEmptyArray(form) && !this.isCollectionWithValue(form);\n  }\n\n  public static isNonEmptyArray(pageFormFields: any): boolean {\n    return Array.isArray(pageFormFields) && pageFormFields[0] !== undefined;\n  }\n\n  public static isCollection(pageFormFields: any): boolean {\n    return this.isNonEmptyArray(pageFormFields) && this.isCollectionWithValue(pageFormFields);\n  }\n\n  public static isCollectionWithValue(pageFormFields: any[]): boolean {\n    return pageFormFields[0]['value'] !== undefined;\n  }\n\n  public static cloneObject(obj: any): any {\n    return Object.assign({}, obj);\n  }\n\n  // temporary function until this can be moved to CaseView class (RDM-2681)\n  public static getCaseFields(caseView: CaseView): CaseField[] {\n    const caseDataFields: CaseField[] = caseView.tabs.reduce((acc: CaseField[], tab: CaseTab) => {\n      return acc.concat(tab.fields);\n    }, []);\n\n    const metadataFields: CaseField[] = caseView.metadataFields;\n    return metadataFields.concat(caseDataFields.filter((caseField: CaseField) => {\n      return metadataFields.findIndex(metadataField => metadataField.id === caseField.id) < 0;\n    }));\n  }\n\n  public static addCaseFieldAndComponentReferences(c: AbstractControl, cf: CaseField, comp: AbstractFormFieldComponent): void {\n    c['caseField'] = cf;\n    c['component'] = comp;\n  }\n\n  /**\n   * Recursive check of an array or object and its descendants for the presence of any non-empty values.\n   *\n   * @param object The array or object to check\n   * @returns `true` if the array or object (or a descendant) contains at least one non-empty value; `false` otherwise\n   */\n  public static containsNonEmptyValues(object: object): boolean {\n    if (!object) {\n      return false;\n    }\n    const values = Object.keys(object).map(key => object[key]);\n    const objectRefs = [];\n    // Also test for numeric values, and length > 0 for non-numeric values because this covers both strings and arrays.\n    // Note: Deliberate use of non-equality (!=) operator for null check, to handle both null and undefined values.\n    // tslint:disable-next-line: triple-equals\n    const hasNonNullPrimitive = values.some(x => (x != null &&\n      ((typeof x === 'object' && x.constructor === Object) || Array.isArray(x)\n        ? !objectRefs.push(x)\n        : typeof x === 'number' || x.length > 0)\n    ));\n    return !hasNonNullPrimitive ? objectRefs.some(y => this.containsNonEmptyValues(y)) : hasNonNullPrimitive;\n  }\n\n  /**\n   * handleNestedDynamicLists()\n   * Reassigns list_item and value data to DynamicList children\n   * down the tree. Server response returns data only in\n   * the `value` object of parent complex type\n   *\n   * EUI-2530 Dynamic Lists for Elements in a Complex Type\n   *\n   * @param jsonBody - { case_fields: [ CaseField, CaseField ] }\n   */\n  public static handleNestedDynamicLists(jsonBody: { case_fields: CaseField[] }): any {\n    if (jsonBody.case_fields) {\n      jsonBody.case_fields.forEach(caseField => {\n        if (caseField.field_type) {\n          this.setDynamicListDefinition(caseField, caseField.field_type, caseField);\n        }\n      });\n    }\n\n    return jsonBody;\n  }\n\n  private static prepareValue(field: CaseField): any {\n    if (field.value) {\n      return field.value;\n    } else if (field.isComplex()) {\n      const valueMap = {};\n      field.field_type.complex_fields.forEach(complexField => {\n        valueMap[complexField.id] = FieldsUtils.prepareValue(complexField);\n      });\n      return valueMap;\n    }\n  }\n\n  private static readonly DEFAULT_MERGE_FUNCTION = function mergeFunction(field: CaseField, result: object): void {\n    if (!result.hasOwnProperty(field.id)) {\n      result[field.id] = field.value;\n    }\n  };\n\n  private static readonly LABEL_MERGE_FUNCTION = function mergeFunction(field: CaseField, result: object): void {\n    if (!result) {\n      result = {};\n    }\n    if (!result.hasOwnProperty(field.id)) {\n      result[field.id] = field.value;\n    }\n\n    // tslint:disable-next-line: switch-default\n    switch (field.field_type.type) {\n      case 'FixedList':\n      case 'FixedRadioList': {\n        result[field.id] = FieldsUtils.getFixedListLabelByCodeOrEmpty(field, result[field.id] || field.value);\n        break;\n      }\n      case 'MultiSelectList': {\n        const fieldValue = result[field.id] || [];\n        result[field.id + FieldsUtils.LABEL_SUFFIX] = [];\n        fieldValue.forEach((code: any, idx: any) => {\n          result[field.id + FieldsUtils.LABEL_SUFFIX][idx] = FieldsUtils.getFixedListLabelByCodeOrEmpty(field, code);\n        });\n        break;\n      }\n      case 'Label': {\n        result[field.id] = FieldsUtils.getLabel(field);\n        break;\n      }\n      case 'MoneyGBP': {\n        const fieldValue = (result[field.id] || field.value);\n        result[field.id] = FieldsUtils.getMoneyGBP(fieldValue);\n        break;\n      }\n      case 'Date': {\n        const fieldValue = (result[field.id] || field.value);\n        result[field.id] = FieldsUtils.getDate(fieldValue);\n        break;\n      }\n      case 'Complex': {\n        if (result[field.id] && field.field_type.complex_fields) {\n          field.field_type.complex_fields.forEach((f: CaseField) => {\n            if (['Collection', 'Complex', 'MultiSelectList'].indexOf(f.field_type.type) > -1) {\n              FieldsUtils.LABEL_MERGE_FUNCTION(f, result[field.id]);\n            }\n          });\n        }\n        break;\n      }\n      case 'Collection': {\n        const elements = (result[field.id] || field.value);\n        if (elements) {\n          elements.forEach((elem: any) => {\n            // tslint:disable-next-line:switch-default\n            switch (field.field_type.collection_field_type.type) {\n              case 'MoneyGBP': {\n                elem.value = FieldsUtils.getMoneyGBP(elem.value);\n                break;\n              }\n              case 'Date': {\n                elem.value = FieldsUtils.getDate(elem.value);\n                break;\n              }\n              case 'Complex': {\n                if (field.field_type.collection_field_type.complex_fields) {\n                  field.field_type.collection_field_type.complex_fields.forEach((f: CaseField) => {\n                    if (['Collection', 'Complex', 'MultiSelectList'].indexOf(f.field_type.type) > -1) {\n                      FieldsUtils.LABEL_MERGE_FUNCTION(f, elem.value);\n                    }\n                  });\n                }\n                break;\n              }\n            }\n          });\n        }\n        break;\n      }\n    }\n  };\n\n  /**\n   * Formats a `MoneyGBP` value to include currency units.\n   * @param fieldValue The CurrencyPipe expects an `any` parameter so this must also be `any`,\n   * but it should be \"number-like\" (e.g., '1234')\n   * @returns A formatted string (e.g., £12.34)\n   */\n  private static getMoneyGBP(fieldValue: any): string {\n    return fieldValue ? FieldsUtils.currencyPipe.transform(fieldValue / 100, 'GBP', 'symbol') : fieldValue;\n  }\n\n  private static getLabel(fieldValue: CaseField): string {\n    return fieldValue ? fieldValue.label : '';\n  }\n\n  private static getDate(fieldValue: string): string {\n    try {\n      // Format specified here wasn't previously working and lots of tests depend on it not working\n      // Now that formats work correctly many test would break - and this could affect services which may depend on\n      // the orginal behaviour of returning dates in \"d MMM yyyy\"\n      // Note - replaced 'd' with 'D' as datepipe using moment to avoid timezone discrepancies\n      return FieldsUtils.datePipe.transform(fieldValue, null, 'D MMM yyyy');\n    } catch (e) {\n      return this.textForInvalidField('Date', fieldValue);\n    }\n  }\n\n  private static getFixedListLabelByCodeOrEmpty(field: CaseField, code: string): string {\n    const relevantItem: FixedListItem = code ? field.field_type.fixed_list_items.find(item => item.code === code) : null;\n    return relevantItem ? relevantItem.label : '';\n  }\n\n  private static textForInvalidField(type: string, invalidValue: string): string {\n    return `{ Invalid ${type}: ${invalidValue} }`;\n  }\n\n  private static setDynamicListDefinition(caseField: CaseField, caseFieldType: FieldType, rootCaseField: CaseField) {\n    if (caseFieldType.type === FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COMPLEX) {\n\n      caseFieldType.complex_fields.forEach(field => {\n        try {\n          const isDynamicField = FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE.indexOf(field.field_type.type) !== -1;\n\n          if (isDynamicField) {\n            const dynamicListValue = this.getDynamicListValue(rootCaseField.value, field.id);\n            if (dynamicListValue) {\n              const list_items = dynamicListValue[0].list_items;\n              const complexValue = dynamicListValue.map(data => data.value);\n              const value = {\n                list_items,\n                value: complexValue.length > 0 ? complexValue : undefined\n              };\n              field.value = {\n                ...value\n              };\n              field.formatted_value = {\n                ...field.formatted_value,\n                ...value\n              };\n            }\n          } else {\n            this.setDynamicListDefinition(field, field.field_type, rootCaseField);\n          }\n        } catch (error) {\n          console.log(error);\n        }\n      });\n    } else if (caseFieldType.type === FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COLLECTION) {\n      if (caseFieldType.collection_field_type) {\n        this.setDynamicListDefinition(caseField, caseFieldType.collection_field_type, rootCaseField);\n      }\n    }\n  }\n\n  private static getDynamicListValue(jsonBlock: any, key: string) {\n    const data = jsonBlock ? this.getNestedFieldValues(jsonBlock, key, []) : [];\n\n    return data.length > 0 ? data : null;\n  }\n\n  private static getNestedFieldValues(jsonData: any, key: string, output: any[] = []) {\n    if (jsonData && jsonData[key]) {\n      output.push(jsonData[key]);\n    } else {\n      for (const elementKey in jsonData) {\n        if (typeof jsonData === 'object' && jsonData.hasOwnProperty(elementKey)) {\n          this.getNestedFieldValues(jsonData[elementKey], key, output);\n        }\n      }\n    }\n    return output;\n  }\n\n  public static isFlagsCaseField(caseField: CaseField): boolean {\n    if (!caseField) {\n      return false;\n    }\n\n    return this.isFlagsFieldType(caseField.field_type);\n  }\n\n  /**\n   * @deprecated Use {@link isCaseFieldOfType} instead, passing 'FlagLauncher' as the single type in the `types` array\n   */\n  public static isFlagLauncherCaseField(caseField: CaseField): boolean {\n    if (!caseField) {\n      return false;\n    }\n\n    return caseField.field_type.type === 'FlagLauncher';\n  }\n\n  /**\n   * @deprecated Use {@link isCaseFieldOfType} instead, passing 'ComponentLauncher' as the single type in the `types`\n   * array\n   */\n  public static isComponentLauncherCaseField(caseField: CaseField): boolean {\n    if (!caseField) {\n      return false;\n    }\n\n    return caseField.field_type.type === 'ComponentLauncher';\n  }\n\n  /**\n   * Checks if a {@link CaseField} is of one of the given field types.\n   *\n   * @param caseField The `CaseField` to check\n   * @param types An array of one or more field types\n   * @returns `true` if the `CaseField` type is one of those in the array of types to check against; `false`\n   * otherwise or if `caseField` or `types` are falsy\n   */\n  public static isCaseFieldOfType(caseField: CaseField, types: FieldTypeEnum[]): boolean {\n    if (!caseField || !types) {\n      return false;\n    }\n\n    return types.some(type => type === caseField.field_type?.type || type === caseField.field_type?.id);\n  }\n\n  public static isLinkedCasesCaseField(caseField: CaseField): boolean {\n    return FieldsUtils.isComponentLauncherCaseField(caseField) &&\n      caseField.id === 'LinkedCasesComponentLauncher';\n  }\n\n  public static containsLinkedCasesCaseField(caseFields: CaseField[]): boolean {\n    return caseFields?.some(caseField => FieldsUtils.isLinkedCasesCaseField(caseField));\n  }\n\n  public static isFlagsFieldType(fieldType: FieldType): boolean {\n    if (!fieldType) {\n      return false;\n    }\n\n    // Note: This implementation supports the dummy field type ID of \"CaseFlag\" for testing and the real field type\n    // ID of \"Flags\"\n    return (fieldType.type === 'Complex' && (fieldType.id === 'CaseFlag' || fieldType.id === 'Flags'));\n  }\n\n  /**\n   * Extract flags data from a `CaseField` instance, recursing and iterating through sub-fields of a Complex field or\n   * each field in a Collection field.\n   *\n   * @param flags An array for accumulating extracted flags data and derived `FormGroup` paths\n   * @param caseField A `CaseField` instance from which to extract the flags data\n   * @param pathToFlagsFormGroup A (dot-delimited) string for concatenating the name of each control that forms the path\n   * to the `FormGroup` for the `Flags` instance\n   * @param topLevelCaseField The top-level `CaseField` that contains the value property. This is required because _only\n   * top-level_ `CaseField`s contain actual values and a reference needs to be maintained to such a field\n   * @param currentValue The current value object of a `CaseField` that is a sub-field of a non root-level Complex field.\n   * Required for mapping the `CaseField` value to a `Flags` object if it is a \"Flags\" `CaseField`. (For Complex types,\n   * only the _root-level_ `CaseField` contains a value property - all sub-fields, including any nested Complex fields,\n   * do *not* contain any values themselves.)\n   * @returns An array of `FlagsWithFormGroupPath`, each instance comprising a `Flags` object derived from a `CaseField`\n   * of type \"Flags\", and the dot-delimited path string to the corresponding `FormGroup`\n   */\n  public static extractFlagsDataFromCaseField(flags: FlagsWithFormGroupPath[], caseField: CaseField,\n    pathToFlagsFormGroup: string, topLevelCaseField: CaseField, currentValue?: object): FlagsWithFormGroupPath[] {\n    const fieldType = caseField.field_type;\n    switch (fieldType.type) {\n      case 'Complex':\n        // If the field is a Flags CaseField (these are implemented as Complex types), it can be mapped to a Flags\n        // object immediately\n        if (FieldsUtils.isFlagsCaseField(caseField)) {\n          // If the Flags CaseField has a value, it is a root-level Complex field; if it does not, it is a Flags\n          // CaseField that is a sub-field within another Complex field, so use the currentValue value (if any)\n          // instead. The exception to this is the \"caseFlags\" Flags CaseField, which will have an empty object value\n          // initially, because no party name is required\n          if (caseField.value && FieldsUtils.isNonEmptyObject(caseField.value) ||\n            caseField.id === this.caseLevelCaseFlagsFieldId) {\n            flags.push(this.mapCaseFieldToFlagsWithFormGroupPathObject(caseField, pathToFlagsFormGroup));\n          } else if (currentValue && FieldsUtils.isNonEmptyObject(currentValue)) {\n            pathToFlagsFormGroup += `.${caseField.id}`;\n            flags.push(this.mapValueToFlagsWithFormGroupPathObject(\n              caseField.id, currentValue, pathToFlagsFormGroup, topLevelCaseField));\n          }\n        } else if (fieldType.complex_fields) {\n          const value = caseField.value ? caseField.value : currentValue;\n          if (value && FieldsUtils.isNonEmptyObject(value)) {\n            flags = fieldType.complex_fields.reduce((flagsOfComplexField, subField) => {\n              return this.extractFlagsDataFromCaseField(\n                flagsOfComplexField, subField, pathToFlagsFormGroup, topLevelCaseField, value[subField.id]);\n            }, flags);\n          }\n        }\n        break;\n      // For a Collection field, the values are stored directly as key-value pairs in the CaseField's value property\n      // as an array, unless the collection is a sub-field of a Complex type - sub-fields never contain values\n      case 'Collection':\n        // If this is a collection of Flags CaseFields, these can be mapped to Flags objects immediately\n        if (FieldsUtils.isFlagsFieldType(fieldType.collection_field_type)) {\n          // If the Collection CaseField has a value (an array), it is a root-level Collection field; if it does not,\n          // it is a Collection CaseField that is a sub-field within a Complex field, so use the currentValue value\n          // (if any) instead\n          const pathFragment = pathToFlagsFormGroup += '.index.value';\n          if (caseField.value) {\n            caseField.value.forEach((item: { id: string; value: object; }, index: number) => {\n              // At each iteration, replace the \"index\" placeholder with the actual index\n              pathToFlagsFormGroup = pathFragment.replace('index', index.toString(10));\n              flags.push(\n                this.mapValueToFlagsWithFormGroupPathObject(item.id, item.value, pathToFlagsFormGroup, caseField));\n            });\n          } else if (currentValue) {\n            (currentValue as []).forEach((item: { id: string; value: object; }, index: number) => {\n              pathToFlagsFormGroup = pathFragment.replace('index', index.toString(10));\n              flags.push(\n                this.mapValueToFlagsWithFormGroupPathObject(item.id, item.value, pathToFlagsFormGroup, topLevelCaseField));\n            });\n          }\n        } else if (fieldType.collection_field_type.type === 'Complex' && fieldType.collection_field_type.complex_fields) {\n          if (caseField.value) {\n            // Perform a reduction over each Complex field's sub-fields (similar to what is done above for non-Flags\n            // Complex fields)\n            // (Cannot just call this function recursively for each Complex field in the collection because the CaseField\n            // for each one is not part of the collection)\n            const pathFragment = pathToFlagsFormGroup += '.index.value';\n            caseField.value.forEach((item: { id: string; value: object; }, index: number) => {\n              // At each iteration, replace the \"index\" placeholder with the actual index\n              pathToFlagsFormGroup = pathFragment.replace('index', index.toString(10));\n              flags = fieldType.collection_field_type.complex_fields.reduce((flagsOfComplexField, subField) => {\n                return this.extractFlagsDataFromCaseField(\n                  flagsOfComplexField, subField, pathToFlagsFormGroup, topLevelCaseField, item.value[subField.id]);\n              }, flags);\n            });\n          }\n        }\n        break;\n      default:\n      // Ignore all other field types\n    }\n    return flags;\n  }\n\n  private static mapCaseFieldToFlagsWithFormGroupPathObject(caseField: CaseField,\n    pathToFlagsFormGroup: string): FlagsWithFormGroupPath {\n    return this.mapValueToFlagsWithFormGroupPathObject(caseField.id, caseField.value, pathToFlagsFormGroup, caseField);\n  }\n\n  private static mapValueToFlagsWithFormGroupPathObject(id: string, value: object,\n    pathToFlagsFormGroup: string, caseField: CaseField): FlagsWithFormGroupPath {\n    return {\n      flags: {\n        flagsCaseFieldId: id,\n        partyName: value ? value['partyName'] : null,\n        roleOnCase: value ? value['roleOnCase'] : null,\n        details: value && value['details'] && value['details'].length > 0\n          ? (value['details'] as any[]).map(detail => {\n            return Object.assign({}, ...Object.keys(detail.value).map((k) => {\n              // The id property set below will be null for a new case flag, and a unique id returned from CCD when\n              // updating an existing flag\n              switch (k) {\n                // These two fields are date-time fields\n                case 'dateTimeModified':\n                case 'dateTimeCreated':\n                  return { [k]: detail.value[k] ? new Date(detail.value[k]) : null, id: detail.id };\n                // This field is a \"yes/no\" field\n                case 'hearingRelevant':\n                  return detail.value[k].toUpperCase() === 'YES' ? { [k]: true, id: detail.id } : { [k]: false, id: detail.id };\n                default:\n                  return { [k]: detail.value[k], id: detail.id };\n              }\n            }));\n          }) as FlagDetail[]\n          : null,\n        visibility: value ? value['visibility'] : null,\n        groupId: value ? value['groupId'] : null\n      },\n      pathToFlagsFormGroup,\n      caseField\n    };\n  }\n\n  /**\n   * Count active flags in a `CaseField` instance, recursing and iterating through sub-fields of a Complex field or each\n   * field in a Collection field.\n   *\n   * @param activeCount An accumulation of the total number of active flags\n   * @param caseField A `CaseField` instance for which to count the active flags\n   * @param currentValue The current value object of a `CaseField` that is a sub-field of a non root-level Complex field.\n   * (For Complex types, only the _root-level_ `CaseField` contains a value property - all sub-fields, including any\n   * nested Complex fields, do *not* contain any values themselves.)\n   * @returns The count of active flags\n   */\n  public static countActiveFlagsInCaseField(activeCount: number, caseField: CaseField, currentValue?: object): number {\n    const fieldType = caseField.field_type;\n    switch (fieldType.type) {\n      case 'Complex':\n        if (FieldsUtils.isFlagsCaseField(caseField)) {\n          // If the Flags CaseField has a value, it is a root-level Complex field; if it does not, it is a Flags\n          // CaseField that is a sub-field within another Complex field, so use the currentValue value (if any) instead\n          const value = caseField.value ? caseField.value : currentValue;\n          if (value && FieldsUtils.isNonEmptyObject(value) && value.details) {\n            activeCount = value.details.reduce(\n              (count, detail) => detail.value.status === CaseFlagStatus.ACTIVE ? count + 1 : count,\n              activeCount\n            );\n          }\n        } else if (fieldType.complex_fields) {\n          const value = caseField.value ? caseField.value : currentValue;\n          if (value && FieldsUtils.isNonEmptyObject(value)) {\n            activeCount = fieldType.complex_fields.reduce((activeFlagsCountOfComplexField, subField) => {\n              return this.countActiveFlagsInCaseField(\n                activeFlagsCountOfComplexField,\n                subField,\n                value[subField.id]\n              );\n            }, activeCount);\n          }\n        }\n        break;\n      // For a Collection field, the values are stored directly as key-value pairs in the CaseField's value property\n      // as an array, unless the collection is a sub-field of a Complex type - sub-fields never contain values\n      case 'Collection':\n        if (FieldsUtils.isFlagsFieldType(fieldType.collection_field_type)) {\n          // If the Collection CaseField has a value (an array), it is a root-level Collection field; if it does not,\n          // it is a Collection CaseField that is a sub-field within a Complex field, so use the currentValue value\n          // (if any) instead\n          const value = caseField.value ? caseField.value : currentValue;\n          if (value) {\n            value.forEach((item: { id: string; value: object; }) => {\n              if (item.value['details']) {\n                activeCount = item.value['details'].reduce(\n                  (count, detail) => detail.value.status === CaseFlagStatus.ACTIVE ? count + 1 : count,\n                  activeCount\n                );\n              }\n            });\n          }\n        } else if (fieldType.collection_field_type.type === 'Complex' && fieldType.collection_field_type.complex_fields) {\n          if (caseField.value) {\n            // Perform a reduction over each Complex field's sub-fields (similar to what is done above for non-Flags\n            // Complex fields)\n            // (Cannot just call this function recursively for each Complex field in the collection because the CaseField\n            // for each one is not part of the collection)\n            caseField.value.forEach((item: { id: string; value: object; }) => {\n              activeCount = fieldType.collection_field_type.complex_fields.reduce(\n                (activeFlagsCountOfComplexField, subField) => {\n                  return this.countActiveFlagsInCaseField(activeFlagsCountOfComplexField, subField, item.value[subField.id]);\n                },\n                activeCount\n              );\n            });\n          }\n        }\n        break;\n      default:\n      // Ignore all other field types\n    }\n    return activeCount;\n  }\n\n  public static getValidationErrorMessageForFlagLauncherCaseField(caseField: CaseField): string {\n    switch(caseField.display_context_parameter) {\n      case CaseFlagDisplayContextParameter.CREATE:\n      case CaseFlagDisplayContextParameter.CREATE_2_POINT_1:\n        return 'Please select Next to complete the creation of the case flag';\n      case CaseFlagDisplayContextParameter.CREATE_EXTERNAL:\n        return 'Please select Next to complete the creation of the support request';\n      case CaseFlagDisplayContextParameter.UPDATE:\n      case CaseFlagDisplayContextParameter.UPDATE_2_POINT_1:\n        return 'Please select Next to complete the update of the selected case flag';\n      case CaseFlagDisplayContextParameter.UPDATE_EXTERNAL:\n        return 'Please select Next to complete the update of the selected support request';\n      default:\n        return '';\n    }\n  }\n\n  public static getUserTaskFromClientContext(clientContextStr: string): UserTask {\n    if (clientContextStr) {\n      let clientContext = JSON.parse(clientContextStr);\n      return clientContext.client_context.user_task;\n    }\n    return null;\n  }\n\n  public buildCanShowPredicate(eventTrigger: CaseEventTrigger, form: any): Predicate<WizardPage> {\n    const currentState = this.getCurrentEventState(eventTrigger, form);\n    return (page: WizardPage): boolean => {\n      return page.parsedShowCondition.match(currentState);\n    };\n  }\n\n  public getCurrentEventState(eventTrigger: { case_fields: CaseField[] }, form: FormGroup): object {\n    return this.mergeCaseFieldsAndFormFields(eventTrigger.case_fields, form.controls['data'].value);\n  }\n\n  public cloneCaseField(obj: any): CaseField {\n    return Object.assign(new CaseField(), obj);\n  }\n\n  public mergeCaseFieldsAndFormFields(caseFields: CaseField[], formFields: object): object {\n    return this.mergeFields(caseFields, formFields, FieldsUtils.DEFAULT_MERGE_FUNCTION);\n  }\n\n  public mergeLabelCaseFieldsAndFormFields(caseFields: CaseField[], formFields: object): object {\n    return this.mergeFields(caseFields, formFields, FieldsUtils.LABEL_MERGE_FUNCTION);\n  }\n\n  public controlIterator(\n    aControl: AbstractControl,\n    formArrayFn: (array: FormArray) => void,\n    formGroupFn: (group: FormGroup) => void,\n    controlFn: (control: FormControl) => void\n  ): void {\n    if (aControl instanceof FormArray) { // We're in a collection\n      formArrayFn(aControl);\n    } else if (aControl instanceof FormGroup) { // We're in a complex type.\n      formGroupFn(aControl);\n    } else if (aControl instanceof FormControl) { // FormControl\n      controlFn(aControl);\n    }\n  }\n\n  private mergeFields(caseFields: CaseField[], formFields: object, mergeFunction: (field: CaseField, result: object) => void): object {\n    const result: object = FieldsUtils.cloneObject(formFields);\n    caseFields.forEach(field => {\n      mergeFunction(field, result);\n      if (field.field_type && field.field_type.complex_fields && field.field_type.complex_fields.length > 0) {\n        result[field.id] = this.mergeFields(field.field_type.complex_fields, result[field.id], mergeFunction);\n      }\n    });\n    return result;\n  }\n}\n","import { generate } from 'pegjs';\n\nconst conditionSource =\n  `{\n    function flat(arr, depth = 1) {\n      var flatten = function (arr, depth = 1) {\n        if (depth) return arr;\n\n      // Otherwise, concatenate into the parent array\n      return arr.reduce(function (acc, val) {\n        return acc.concat(Array.isArray(val) ? flatten(val, depth - 1) : val);\n      }, []);\n\n      };\n\n    return flatten(arr, depth - 1);\n    }\n  }\n\n  Start\n    = Formula\n\n  Formula\n    = EnclosedFormula\n    / OpenFormula\n\n  EnclosedFormula\n    = bracket formula:OpenFormula bracket join:(JoinComparator)*\n      { return flat([ [formula], join[0] ], 1) }\n\n  OpenFormula\n    = eq:OpenEqualityCheck joins:(JoinComparator)*\n      { return flat([ eq, flat(joins) ]) }\n\n  JoinComparator\n    = comp:Comparator eq:OpenEqualityCheck\n      { return [comp, eq]; }\n      / CompoundJoinComparator\n\n  CompoundJoinComparator\n    = comp:Comparator bracket f:OpenFormula bracket\n      { return [comp, f ] }\n\n  OpenEqualityCheck\n    = fr:FieldRef _? op:operator _? val:Value\n     { return { fieldReference: fr, comparator: op, value: val } }\n\n  Comparator\n   = _? c:'AND' _?\n   { return c; }\n   / _? c:'OR' _?\n   { return c; }\n\n  Word\n   = l:Letter+\n   { return l.join(\"\"); }\n\n  Letter\n   = [a-zA-Z]\n\n  Value\n   = v:quotedValue / v:Word\n   { return v.join(\"\") }\n   / v:number\n   { return parseInt(v.join(\"\")) }\n\n  FieldRef\n   = FieldReference / MetadataFieldReference\n\n  MetadataFieldReference\n    = s1:openSquare fr:FieldReference s2:closeSquare\n    { return s1 + fr + s2 }\n\n  FieldReference\n    = characters:[A-Za-z0-9._-]+ { return characters.join(\"\"); }\n\n  openSquare\n   = \"[\"\n\n  closeSquare\n   = \"]\"\n\n  number\n   = [0-9]+\n\n  quotedValue\n   = '\"'val:[A-Za-z0-9.,* _&()/-]*'\"'\n   { return val.join(\"\"); }\n\n  bracket\n   = (_? \"(\"+ _? / _? \")\"+ _? )\n\n  operator\n   = \"=\" / \"!=\" / \"CONTAINS\"\n\n  ws \"Whitespace\"\n   = [ \\t]\n\n  _ \"One or more whitespaces\"\n   = ws+\n\n  nl \"New line\"\n   = \"\\\\n\"`;\n\nexport default generate(conditionSource);\n","import * as _score from 'underscore';\nimport { FieldsUtils } from '../../../services/fields/fields.utils';\nimport { ShowCondition } from '../../conditional-show/domain/conditional-show.model';\nimport peg from './condition.peg';\n\nexport class ConditionParser {\n  /**\n   * Parse the raw formula and output structured condition data\n   * that can be used in evaluating show/hide logic\n   * @param condition raw formula e.g. TextField = \"Hello\"\n   */\n  public static parse(condition: string): any {\n    if (!condition) { return null; }\n    condition = condition.replace(/CONTAINS/g, ' CONTAINS');\n    return peg.parse(condition.trim(), {});\n  }\n\n  /**\n   * Evaluate the current fields against the conditions\n   * @param fields the current page fields and their value\n   * @param conditions The PegJS formula output\n   */\n  public static evaluate(fields: any, conditions: any[], path?: string): boolean {\n    if (!conditions || conditions.length === 0) { return true; }\n    const validJoinComparators = ['AND', 'OR'];\n\n    return conditions.reduce((accumulator: boolean, condition, index: number) => {\n      const isJoinComparator = (comparator: string): boolean =>\n        (typeof comparator === 'string' && validJoinComparators.indexOf(comparator) !== -1);\n\n      if (isJoinComparator(condition)) { return accumulator; }\n\n      let currentConditionResult = true;\n\n      if (Array.isArray(condition)) {\n        currentConditionResult = this.evaluate(fields, condition);\n\n        if (isJoinComparator(conditions[index - 1])) {\n          return this.evaluateJoin(accumulator, conditions[index - 1], currentConditionResult);\n        }\n      }\n\n      if (condition.comparator) {\n        const formula = condition.fieldReference + condition.comparator + condition.value;\n        currentConditionResult = this.matchEqualityCondition(fields, formula, path);\n      }\n\n      if (isJoinComparator(conditions[index - 1])) {\n        return this.evaluateJoin(accumulator, conditions[index - 1], currentConditionResult);\n      }\n\n      return currentConditionResult;\n    }, true);\n  }\n\n  private static evaluateJoin(leftResult: boolean, comparator, rightResult: boolean): boolean {\n    // tslint:disable-next-line:switch-default\n    switch (comparator) {\n      case 'OR': return leftResult || rightResult;\n      case 'AND': return leftResult && rightResult;\n    }\n  }\n\n  private static matchEqualityCondition(fields: object, condition: string, path?: string): boolean {\n    const [field, conditionSeparator] = this.getField(condition);\n    const [head, ...tail] = field.split('.');\n    const currentValue = this.findValueForComplexCondition(fields, head, tail, path);\n    const expectedValue = this.unquoted(condition.split(conditionSeparator)[1]);\n    if (conditionSeparator === ShowCondition.CONTAINS) {\n      return this.checkValueContains(expectedValue, currentValue);\n    } else {\n      return this.checkValueEquals(expectedValue, currentValue, conditionSeparator);\n    }\n  }\n\n  private static getValue(fields: object, head: string): any {\n    if (this.isDynamicList(fields[head])) {\n      return fields[head]?.value?.code;\n    } else {\n      return fields[head];\n    }\n  }\n\n  private static isDynamicList(dynamiclist: object): boolean {\n    return !_score.isEmpty(dynamiclist) &&\n        (_score.has(dynamiclist, 'value') && _score.has(dynamiclist, 'list_items'));\n  }\n\n  private static getField(condition: string): [string, string?] {\n    let separator: string = ShowCondition.CONTAINS;\n    if (condition.indexOf(ShowCondition.CONTAINS) < 0) {\n      separator = ShowCondition.CONDITION_EQUALS;\n      if (condition.indexOf(ShowCondition.CONDITION_NOT_EQUALS) > -1) {\n        separator = ShowCondition.CONDITION_NOT_EQUALS;\n      }\n    }\n    return [ condition.split(separator)[0], separator ];\n  }\n\n  private static checkValueEquals(expectedValue: string, currentValue: any, conditionSeparaor: string): boolean {\n    if (expectedValue.search('[,]') > -1) { // for  multi-select list\n      return this.checkMultiSelectListEquals(expectedValue, currentValue, conditionSeparaor);\n    } else if (expectedValue.endsWith('*') && currentValue && conditionSeparaor !== ShowCondition.CONDITION_NOT_EQUALS) {\n      if (typeof currentValue === 'string') {\n        return currentValue.startsWith(this.removeStarChar(expectedValue));\n      }\n      return expectedValue === '*';\n    } else {\n      // changed from '===' to '==' to cover number field conditions\n      if (conditionSeparaor === ShowCondition.CONDITION_NOT_EQUALS) {\n        return this.checkValueNotEquals(expectedValue, currentValue);\n      } else {\n        return currentValue == expectedValue || this.okIfBothEmpty(expectedValue, currentValue); // tslint:disable-line\n      }\n    }\n  }\n\n  private static checkValueNotEquals(expectedValue: string, currentValue: any): boolean {\n    const formatCurrentValue = currentValue ? currentValue.toString().trim() : '';\n    if ('*' === expectedValue && formatCurrentValue !== '') {\n      return false;\n    }\n    const formatExpectedValue = expectedValue ? expectedValue.toString().trim() : '';\n    return formatCurrentValue != formatExpectedValue; // tslint:disable-line\n  }\n\n  private static checkMultiSelectListEquals(expectedValue: string, currentValue: any, conditionSeparator: string): boolean {\n    const expectedValues = expectedValue.split(',').sort().toString();\n    const values = currentValue ? currentValue.sort().toString() : '';\n    if (conditionSeparator === ShowCondition.CONDITION_NOT_EQUALS) {\n      return expectedValues !== values;\n    } else {\n      return expectedValues === values;\n    }\n  }\n\n  private static checkValueContains(expectedValue: string, currentValue: any): boolean {\n    if (expectedValue.search(',') > -1) {\n      const expectedValues = expectedValue.split(',').sort();\n      const values = currentValue ? currentValue.sort().toString() : '';\n      return expectedValues.every(item => values.search(item) >= 0);\n    } else {\n      const values = currentValue && Array.isArray(currentValue) ? currentValue.toString() : '';\n      return values.search(expectedValue) >= 0;\n    }\n  }\n\n  private static unquoted(str: string): string {\n    return str.replace(/^\"|\"$/g, '');\n  }\n\n  private static findValueForComplexCondition(fields: object, head: string, tail: string[], path?: string): any {\n    if (!fields) {\n      return undefined;\n    }\n    if (tail.length === 0) {\n      return this.getValue(fields, head);\n    } else {\n      if (FieldsUtils.isArray(fields[head])) {\n        return this.findValueForComplexConditionInArray(fields, head, tail, path);\n      } else {\n        return this.findValueForComplexConditionForPathIfAny(fields, head, tail, path);\n      }\n    }\n  }\n\n  private static findValueForComplexConditionForPathIfAny(fields: object, head: string, tail: string[], path?: string): any {\n    if (path) {\n      const [_, ...pathTail] = path.split(/[_]+/g);\n      return this.findValueForComplexCondition(fields[head], tail[0], tail.slice(1), pathTail.join('_'));\n    } else if (!fields[head]) {\n      return this.findValueForComplexCondition(fields, tail[0], tail.slice(1), path);\n    } else {\n      return this.findValueForComplexCondition(fields[head], tail[0], tail.slice(1), path);\n    }\n  }\n\n  private static findValueForComplexConditionInArray(fields: object, head: string, tail: string[], path?: string): any {\n    // use the path to resolve which array element we refer to\n    if (path && path.startsWith(head)) {\n      const [_, ...pathTail] = path.split(/[_]+/g);\n      if (pathTail.length > 0) {\n        try {\n          const arrayIndex = Number.parseInt(pathTail[0], 10);\n          const [__, ...dropNumberPath] = pathTail;\n          return (fields[head][arrayIndex] !== undefined) ? this.findValueForComplexCondition(\n            fields[head][arrayIndex]['value'], tail[0], tail.slice(1), dropNumberPath.join('_')) : null;\n        } catch (e) {\n          console.error('Error while parsing number', pathTail[0], e);\n        }\n      }\n    } else {\n      // EXUI-2460 - if path present then show error, otherwise log message to stop unnecessary console errors\n      path ? console.error('Path in formArray should start with ', head, ', full path: ', path) :\n        console.log('Path not present in formArray');\n    }\n  }\n\n  private static removeStarChar(str: string): string {\n    if (str && str.indexOf('*') > -1) {\n      return str.substring(0, str.indexOf('*'));\n    }\n    return str;\n  }\n\n  private static okIfBothEmpty(right: string, value: any): boolean {\n    return value === null && (right === '');\n  }\n}\n","import  * as _score from 'underscore';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { FieldsUtils } from '../../../services/fields/fields.utils';\nimport { ConditionParser } from '../services/condition-parser.service';\n\nexport class ShowCondition {\n  public static readonly CONDITION_NOT_EQUALS = '!=';\n  public static readonly CONDITION_EQUALS = '=';\n  public static readonly CONTAINS = 'CONTAINS';\n  private static instanceCache = new Map<string, ShowCondition>();\n  private static readonly validJoinComparators = ['AND', 'OR'];\n  private static processedList: string[] = [];\n  private conditions = [];\n\n  public static addPathPrefixToCondition(showCondition: string, pathPrefix: string): string {\n    if (!pathPrefix || pathPrefix === '') {\n      return showCondition;\n    }\n    if (!showCondition) {\n      return '';\n    }\n\n    const formula = ConditionParser.parse(showCondition);\n    if (!formula) {\n      return showCondition;\n    }\n    this.processedList = [];\n    showCondition = showCondition.replace(/CONTAINS/g, ' CONTAINS');\n    const processedCondition = this.processAddPathPrefixToCondition(formula, pathPrefix, showCondition);\n    return processedCondition.replace(/ CONTAINS/g, 'CONTAINS');\n  }\n\n  private static processAddPathPrefixToCondition(formula: any, pathPrefix: string, originalCondition: string): string {\n    let finalCondition: string = originalCondition;\n    if (Array.isArray(formula)) {\n      formula.forEach(condition => {\n        if (typeof condition === 'string' && this.validJoinComparators.indexOf(condition) !== -1) {\n          // do nothing\n        } else {\n          if (Array.isArray(condition)) {\n            finalCondition = this.processAddPathPrefixToCondition(condition, pathPrefix, finalCondition);\n          } else {\n            finalCondition = this.extractConditions(condition, pathPrefix, finalCondition);\n          }\n        }\n      });\n    } else {\n      finalCondition = this.extractConditions(formula, pathPrefix, finalCondition);\n    }\n    return finalCondition;\n  }\n\n  private static extractConditions(condition: any, pathPrefix: string, originalCondition: string): string {\n    if (condition.fieldReference.startsWith(pathPrefix)) {\n      return originalCondition;\n    } else {\n      if (originalCondition.indexOf(condition.fieldReference) > -1) {\n        if (this.processedList && this.processedList.indexOf(condition.fieldReference) === -1) {\n          this.processedList.push(condition.fieldReference);\n          const regularExp = new RegExp(`(\\\\b)${condition.fieldReference}(?=[^\"]*(?:\"[^\"]*\"[^\"]*)*$)(\\\\b)`, 'g');\n          return originalCondition.replace(regularExp, `${pathPrefix}.${condition.fieldReference}`);\n        } else {\n          return originalCondition;\n        }\n      }\n    }\n  }\n\n  // Cache instances so that we can cache results more effectively\n  public static getInstance(condition: string): ShowCondition {\n    let instance = this.instanceCache.get(condition);\n    if (!instance) {\n      instance = new ShowCondition(condition);\n      this.instanceCache.set(condition, instance);\n    }\n    return instance;\n  }\n\n  private static getField(condition: string): [string, string?] {\n    let separator: string = ShowCondition.CONTAINS;\n    if (condition.indexOf(ShowCondition.CONTAINS) < 0) {\n      separator = ShowCondition.CONDITION_EQUALS;\n      if (condition.indexOf(ShowCondition.CONDITION_NOT_EQUALS) > -1) {\n        separator = ShowCondition.CONDITION_NOT_EQUALS;\n      }\n    }\n    return [ condition.split(separator)[0], separator ];\n  }\n\n  private static getConditions(formula: any): string {\n    const conditionList: string[] = [];\n    if (!!formula) {\n      const newFormula = typeof formula === 'string' ? JSON.parse(formula) : formula;\n      if (Array.isArray(newFormula)) {\n        newFormula.forEach(condition => {\n          if (!(typeof condition === 'string' && this.validJoinComparators.indexOf(condition) !== -1)) {\n            if (Array.isArray(condition)) {\n              conditionList.push(ShowCondition.getConditions(condition).toString());\n            } else {\n              conditionList.push(condition.fieldReference + condition.comparator + condition.value);\n            }\n          }\n        });\n      } else {\n        conditionList.push(newFormula.fieldReference + newFormula.comparator + newFormula.value);\n      }\n    }\n    return conditionList.toString();\n  }\n\n  /**\n   * Determine whether a ShowCondition model is affected by fields that have\n   * a display_context of HIDDEN or READONLY, which means they aren't able to\n   * be changed by the user's actions.\n   *\n   * @param showCondition The ShowCondition model to evaluate.\n   * @param caseFields Inspected to see appropriate display_contexts.\n   */\n  public static hiddenCannotChange(showCondition: ShowCondition, caseFields: CaseField[]): boolean {\n    if (showCondition && showCondition.conditions.length && caseFields) {\n      const conditions: string[] = this.getConditions(showCondition.conditions).split(',');\n      if (conditions && conditions.length > 0) {\n        let allUnchangeable = true;\n        for (const condition of conditions) {\n          const [field] = ShowCondition.getField(condition);\n          const path: string[] = field.split('.');\n          let head = path.shift();\n          let caseField: CaseField = caseFields.find(cf => cf.id === head);\n          while (path.length > 0) {\n            head = path.shift();\n            if (caseField) {\n              // Jump out if this is HIDDEN or READONLY, regardless of whether or not it's\n              // complex or a collection - nested fields will \"inherit\" the display_context.\n              if (['HIDDEN', 'READONLY'].indexOf(caseField.display_context) > -1) {\n                break;\n              }\n\n              // Consider what type of field this is.\n              const ft = caseField.field_type;\n              // tslint:disable-next-line:switch-default\n              switch (ft.type) {\n                case 'Collection':\n                  if (ft.collection_field_type.type === 'Complex' && ft.collection_field_type.complex_fields) {\n                    caseField = ft.collection_field_type.complex_fields.find(cf => cf.id === head);\n                  }\n                  break;\n                case 'Complex':\n                  if (ft.complex_fields) {\n                    caseField = ft.complex_fields.find(cf => cf.id === head);\n                  }\n                  break;\n              }\n            }\n          }\n          if (caseField) {\n            allUnchangeable = allUnchangeable && ['HIDDEN', 'READONLY'].indexOf(caseField.display_context) > -1;\n          }\n        }\n        return allUnchangeable;\n      }\n    }\n    return false;\n  }\n\n  // Expects a show condition of the form: <fieldName>=\"string\"\n  constructor(public condition: string) {\n    if (!!condition) {\n      this.conditions = ConditionParser.parse(condition);\n    }\n  }\n\n  public match(fields: object, path?: string): boolean {\n    return ConditionParser.evaluate(fields, this.conditions, this.updatePathName(path));\n  }\n\n  private updatePathName(path: string): string {\n    if (path && path.split(/[_]+/g).length > 0) {\n       /* tslint:disable-next-line */\n      let [pathName, ...pathTail] = path.split(/[_]+/g);\n      const pathFinalIndex = pathTail.pop();\n      const pathTailString = pathTail.toString();\n\n      pathTail = pathTail.map((value) => {\n        return Number(pathFinalIndex) === Number(value) ? pathName : value;\n      });\n\n      return pathTailString !== pathTail.toString()\n        ? `${pathName}_${pathTail.join('_')}_${pathFinalIndex}`\n        : path;\n    } else {\n      return path;\n    }\n  }\n\n  public matchByContextFields(contextFields: CaseField[]): boolean {\n    return this.match(FieldsUtils.toValuesMap(contextFields));\n  }\n\n  /**\n   * Determine whether this is affected by fields that have a display_context\n   * of HIDDEN or READONLY, which means they aren't able to be changed by the\n   * user's actions.\n   *\n   * @param caseFields Inspected to see appropriate display_contexts.\n   */\n  public hiddenCannotChange(caseFields: CaseField[]): boolean {\n    return ShowCondition.hiddenCannotChange(this, caseFields);\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class Constants {\n  public static readonly MANDATORY: string = 'MANDATORY';\n  public static readonly REGEX_WHITESPACES: string = '^[^ ]+(?:\\\\s+[^ ]+)*$';\n  public static readonly TASK_COMPLETION_ERROR = 'The associated task for this event failed to complete automatically. Please complete the task manually in the Tasks tab on the case';\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\n\nimport { Constants } from '../../commons/constants';\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { FieldTypeEnum } from '../../domain/definition/field-type-enum.model';\n\n@Injectable()\nexport class FormValidatorsService {\n  private static readonly CUSTOM_VALIDATED_TYPES: FieldTypeEnum[] = [\n    'Date', 'MoneyGBP', 'Label', 'JudicialUser'\n  ];\n  private static readonly DEFAULT_INPUT_TEXT = 'text';\n  private static readonly DEFAULT_INPUT_TEXTAREA = 'textAreas';\n\n  public static addValidators(caseField: CaseField, control: AbstractControl): AbstractControl {\n    if (\n      caseField.display_context === Constants.MANDATORY &&\n      FormValidatorsService.CUSTOM_VALIDATED_TYPES.indexOf(caseField.field_type.type) === -1\n    ) {\n      const validators = [Validators.required];\n      if (caseField.field_type.type === 'Text') {\n        validators.push(this.markDownPatternValidator());\n        if (caseField.field_type.regular_expression) {\n          validators.push(Validators.pattern(caseField.field_type.regular_expression));\n        } else {\n          validators.push(this.emptyValidator());\n        }\n        if (caseField.field_type.min && (typeof caseField.field_type.min === 'number')) {\n          validators.push(Validators.minLength(caseField.field_type.min));\n        }\n        if (caseField.field_type.max && (typeof caseField.field_type.max === 'number')) {\n          validators.push(Validators.maxLength(caseField.field_type.max));\n        }\n      }\n\n      if (caseField.field_type.type === 'TextArea') {\n        validators.push(this.emptyValidator());\n        validators.push(this.markDownPatternValidator());\n      }\n\n      if (control.validator) {\n        validators.push(control.validator);\n      }\n      control.setValidators(validators);\n    } else if (caseField.display_context === 'OPTIONAL' && (caseField.field_type.type === 'Text' || caseField.field_type.type === 'TextArea')\n      || (caseField.display_context === 'COMPLEX' && caseField.field_type.type === 'Complex')) {\n      control.setValidators(this.markDownPatternValidator());\n    }\n\n    return control;\n  }\n\n  public static emptyValidator(): ValidatorFn {\n    const validator = (control: AbstractControl): ValidationErrors | null => {\n      if (control?.value?.toString().trim().length === 0) {\n        return { required: {} };\n      }\n      return null;\n    };\n    return validator;\n  }\n\n  public static markDownPatternValidator(): ValidatorFn {\n    // Matches: [text](url), ![alt](url), <img ...>, <a ...>...</a>\n    const inlineMarkdownPattern = /(?:!?\\[[^\\]]{0,500}\\]\\([^)]{0,500}\\)|<(?:img\\b[^>]{0,500}>|a\\b[^>]{0,500}>[\\s\\S]*?<\\/a>))/i;\n\n    // Matches: [text][id], ![alt][id], and the collapsed form [text][]\n    const referenceBoxPattern = /(!)?\\[((?:[^[\\]\\\\]|\\\\.){0,500})\\]\\s*\\[([^\\]]{0,100})\\]/;\n\n    // Matches: autolinks such as <http://example.com>\n    const autolinkPattern = /<(?:[A-Za-z][A-Za-z0-9+.-]*:[^ <>\\n]*|[A-Za-z0-9.!#$%&'*+/=?^_`{|}~-]+@[A-Za-z0-9-]+(?:\\.[A-Za-z0-9-]+)+)>/;\n\n    // Matches: bare www.example.com autolinks\n    // Separate pattern to reduce complexity of the main autolink pattern\n    const wwwAutolinkPattern = /<www.[a-z0-9-]{1,63}(?:.[a-z0-9-]{1,63}){1,10}(?:\\/[^\\s<>]{0,2048})?>/i;\n\n    return (control: AbstractControl): ValidationErrors | null => {\n      const value = control?.value?.toString().trim();\n      return (value && (inlineMarkdownPattern.test(value) || referenceBoxPattern.test(value) || this.matchesReferenceUrlDef(value) || autolinkPattern.test(value) || wwwAutolinkPattern.test(value) || this.hasMultiBracket(value as string))) ? { markDownPattern: {} } : null;\n    };\n  }\n\n  // TODO: Strip this out as it's only here for the moment because\n  // the service is being injected all over the place but it doesn't\n  // need to be as FormValidatorsService.addValidators is perfectly\n  // happy being static.\n  public addValidators(caseField: CaseField, control: AbstractControl): AbstractControl {\n    return FormValidatorsService.addValidators(caseField, control);\n  }\n\n  public addMarkDownValidators(formGroup: AbstractControl, controlPath: string): AbstractControl {\n    const control = formGroup.get(controlPath);\n    if (control) {\n      control.setValidators(FormValidatorsService.markDownPatternValidator());\n      control.updateValueAndValidity();\n    }\n    return control;\n  }\n\n  // Check for multi-bracket markdown links and validate destination URL\n  private static hasMultiBracket(value: string): boolean {\n\n    // Sonar-friendly detector: opening-run + text + first closing ']'\n    const openingTextClosePattern = /\\[{1,10}[^[\\]\\n]{1,60}\\]/;\n\n    // Can add an additional RegEx for additional URL validation rules if needed here\n\n    let scanIndex = 0;\n    const totalLength = value.length;\n\n    while (scanIndex < totalLength) {\n      const seg = this.findOpeningTextClose(value, scanIndex, openingTextClosePattern);\n      if (!seg) {\n        return false; // no candidate -> no match\n      }\n\n      const runs = this.extendClosingRunAndRequireParen(value, seg.absStart, seg.afterFirstClose);\n      // if there is more than one opening '[' and there is at least a matching number of closing ']'\n      if (runs && runs.openingRunCount > 1 && runs.openingRunCount === runs.closingRunCount) {\n        // If there were additional validation rules, they would be applied here\n        return true;\n      }\n\n      // Advance to avoid stalling on overlaps\n      scanIndex = seg.absStart + 1;\n    }\n    return false;\n  }\n\n  // Find opening '[' run, text, and first closing ']'\n  private static findOpeningTextClose(\n    source: string,\n    fromIndex: number,\n    pattern: RegExp\n  ): { absStart: number; afterFirstClose: number } | null {\n    const slice = source.slice(fromIndex);\n    const match = pattern.exec(slice);\n    if (!match) {\n      return null;\n    }\n    const absStart = fromIndex + match.index;\n    const afterFirstClose = absStart + match[0].length; // index just after the first ']'\n    return { absStart, afterFirstClose };\n  }\n\n  // Count opening '[' run, extend the ']' run, and require '(' right after the full ']' run\n  private static extendClosingRunAndRequireParen(\n    source: string,\n    absStart: number,\n    afterFirstClose: number\n  ): { openingRunCount: number; closingRunCount: number; afterOpenParen: number } | null {\n    const n = source.length;\n\n    // Count opening '[' run (e.g., '[[[')\n    let openingRunCount = 0;\n    for (let i = absStart; i < n && source[i] === '['; i++) {\n      openingRunCount++;\n    }\n\n    // Extend closing ']' run forward from the first one\n    let closingRunCount = 1;\n    let afterClosingRun = afterFirstClose;\n    while (afterClosingRun < n && source[afterClosingRun] === ']') {\n      closingRunCount++;\n      afterClosingRun++;\n    }\n\n    return { openingRunCount, closingRunCount, afterOpenParen: afterClosingRun + 1 };\n  }\n\n  private static isValidReferenceUrlTitleTail(tail: string): boolean {\n    const possibleTitle = tail.trim();\n    // Accept exactly one of: \"title\", 'title', (title) — bounded and single-line.\n    if (!possibleTitle || /^\"[^\"\\r\\n]{0,300}\"$/.test(possibleTitle) || /^'[^'\\r\\n]{0,300}'$/.test(possibleTitle) || /^\\([^)\\r\\n]{0,300}\\)$/.test(possibleTitle)) {\n      return true;\n    }\n    return false;\n  }\n\n\n  private static matchesReferenceUrlDef(line: string): boolean {\n    // Single-line, pragmatic CommonMark-style reference definition e.g. [text]: http://example.com\n    const baseReferenceUrlPattern = /^[ \\t]{0,3}\\[([^\\]]{1,100})\\]:[ \\t]*<?([^\\s>]{1,2048})>?[ \\t]*([^ \\t\\r\\n].*)?$/m;\n\n    const mainRegEx = baseReferenceUrlPattern.exec(line);\n    if (!mainRegEx) return false;\n    const tail = mainRegEx[3] ?? \"\";\n    return this.isValidReferenceUrlTitleTail(tail);\n  }\n}\n","import { Directive, Input } from '@angular/core';\nimport { AbstractControl, FormArray, FormGroup } from '@angular/forms';\n\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { FieldsUtils } from '../../../services/fields/fields.utils';\n\ntype FormContainer = FormGroup | FormArray;\n\n@Directive()\nexport abstract class AbstractFormFieldComponent {\n  @Input()\n  public caseField: CaseField;\n\n  @Input()\n  public formGroup: FormGroup;\n\n  @Input()\n  public parent?: FormContainer;\n\n  @Input()\n  public idPrefix = '';\n\n  public id() {\n    return this.idPrefix + this.caseField.id;\n  }\n\n  public isTranslatable(field: CaseField): boolean {\n    return FieldsUtils.isTranslatable(field.field_type);\n  }\n\n  protected registerControl<T extends AbstractControl>(control: T, replace = false): AbstractControl {\n    const container: FormContainer = this.parent || this.formGroup;\n    if (!container) {\n      return control;\n    }\n    const existing = container.controls[this.caseField.id];\n    // update the field value which has been set in mid-event call back\n    if (existing) {\n      if(existing.value === null && this.caseField?.value) {\n        existing.value = this.caseField.value;\n      }\n      if (replace) {\n        // Set the validators on the replacement with what already exists.\n        control.setValidators(existing.validator);\n      } else {\n        return existing;\n      }\n    }\n    this.addValidators(this.caseField, control);\n    FieldsUtils.addCaseFieldAndComponentReferences(control, this.caseField, this);\n    return this.addControlToParent(control, container, replace);\n  }\n\n  protected addValidators(caseField: CaseField, control: AbstractControl): void {\n    // No validators by default, override this method to add validators to the form control\n  }\n\n  private addControlToParent(control: AbstractControl, parent: FormContainer, replace: boolean): AbstractControl {\n    if (parent instanceof FormArray) {\n      return this.addControlToFormArray(control, parent, replace);\n    }\n    return this.addControlToFormGroup(control, parent, replace);\n  }\n\n  private addControlToFormArray(control: AbstractControl, parent: FormArray, replace: boolean): AbstractControl {\n    const index = parseInt(this.caseField.id, 10);\n    if (replace && !isNaN(index)) {\n      parent.setControl(index, control);\n    } else {\n      parent.push(control);\n    }\n    return control;\n  }\n\n  private addControlToFormGroup(control: AbstractControl, parent: FormGroup, replace: boolean): AbstractControl {\n    if (replace) {\n      if (this.caseField.field_type && this.caseField.field_type.id === 'CaseLink' && this.caseField.field_type.type === 'Complex' && /^-?\\d+$/.test(this.caseField.id)) {\n        parent.setControl('CaseReference', control['controls']['CaseReference']);\n      } else {\n        parent.setControl(this.caseField.id, control);\n      }\n    } else {\n      parent.addControl(this.caseField.id, control);\n    }\n    return control;\n  }\n}\n","import { Directive, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { CaseField } from '../../../domain/definition/case-field.model';\n\nimport { FormValidatorsService } from '../../../services/form/form-validators.service';\nimport { AbstractFormFieldComponent } from './abstract-form-field.component';\n\n@Directive()\nexport abstract class AbstractFieldWriteComponent extends AbstractFormFieldComponent implements OnChanges {\n\n  @Input()\n  public isExpanded = false;\n\n  @Input()\n  public isInSearchBlock = false;\n\n  public constructor() {\n    super();\n    this.fixCaseField();\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    const change = changes['caseField'];\n    if (change) {\n      const cfNew = change.currentValue;\n      if (!(cfNew instanceof CaseField)) {\n        this.fixCaseField();\n      }\n    }\n  }\n\n  public createElementId(elementId: string): string {\n    return `${this.id()}_${elementId}`;\n  }\n\n  protected addValidators(caseField: CaseField, control: AbstractControl): void {\n    FormValidatorsService.addValidators(caseField, control);\n  }\n\n  private fixCaseField() {\n    if (this.caseField && !(this.caseField instanceof CaseField)) {\n      this.caseField = plainToClassFromExist(new CaseField(), this.caseField);\n    }\n  }\n}\n","import { AfterViewInit, Directive, Input, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { AbstractFieldWriteComponent } from '../../components/palette/base-field/abstract-field-write.component';\nimport { AbstractFormFieldComponent } from '../../components/palette/base-field/abstract-form-field.component';\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\nimport { ShowCondition } from './domain/conditional-show.model';\n\n@Directive({\n  selector: '[ccdConditionalShowForm]',\n  standalone: false\n})\n/** Hides and shows all fields in a form. Works on read only fields and form fields.\n *  The show condition is evaluated on all the fields of the page. i.e. read only and form fields.\n *  Evaluation of the show condition includes disabled fields, which can be on their initial value or empty. Executes on the\n *  host field initialization and when any field of the form changes.\n *  Collaborates with the GreyBarService to show a vertical grey bar when a field initially hidden on the page is shown. When returning\n *  to the page after the page has been left, the grey bar has to be redisplayed. If instead on initial page load the field renders as\n *  initially shown, the grey bar is not displayed.\n */\nexport class ConditionalShowFormDirective implements OnInit, AfterViewInit, OnDestroy {\n\n  @Input() public caseFields: CaseField[];\n  @Input() public contextFields: CaseField[] = [];\n  @Input() public formGroup: FormGroup;\n\n  private allFieldValues: any;\n  private formChangesSubscription: Subscription;\n\n  constructor(private readonly fieldsUtils: FieldsUtils) {\n  }\n\n  public ngOnInit() {\n    if (!this.formGroup) {\n      this.formGroup = new FormGroup({});\n    }\n  }\n\n  /**\n   * Moved the evaluation of show/hide conditions and subscription\n   * to form changes until after the form has been fully created.\n   *\n   * Prior to this change, I traced more than 5,100,000 firings of\n   * the evaluateCondition INSIDE the show_condition check on page\n   * load for an event with a lot of content. After this change,\n   * that number dropped to fewer than 2,500 - that's a.\n   */\n  public ngAfterViewInit() {\n    this.evalAllShowHideConditions();\n    this.subscribeToFormChanges();\n  }\n\n  public ngOnDestroy() {\n    this.unsubscribeFromFormChanges();\n  }\n\n  /*\n  * Delay the execution of evalShowHideConditions for 100ms\n  * Evaluating showHideConditions on input is inefficient as all forms are evaluated\n  * whilst the user is still typing. We are better off allowing the user to finish typing\n  * then evaluate the show hide conditions.\n  */\n  private subscribeToFormChanges() {\n    this.unsubscribeFromFormChanges();\n    this.formChangesSubscription = this.formGroup.valueChanges\n      .pipe(\n        debounceTime(100)\n      )\n      .subscribe(_ => {\n        this.evalAllShowHideConditions();\n      });\n  }\n\n  private evaluateControl(control: AbstractControl) {\n    const cf = control['caseField'] as CaseField;\n    const component = control['component'] as AbstractFormFieldComponent;\n    this.evaluateCondition(cf, component, control);\n  }\n\n  private evaluateCondition(cf: CaseField, component: AbstractFormFieldComponent, control: AbstractControl) {\n    if (cf) {\n      if (cf.display_context === 'HIDDEN') {\n        cf.hidden = true; // display_context === 'HIDDEN' means always hide\n      } else if (cf.show_condition) {\n        const showCondition: ShowCondition = ShowCondition.getInstance(cf.show_condition);\n        const condResult = showCondition.match(this.allFieldValues, this.buildPath(component, cf));\n        if (cf.hidden === null || cf.hidden === undefined) {\n          cf.hidden = false;\n        }\n        if (condResult === cf.hidden) {\n          cf.hidden = !condResult;\n        }\n        // EUI-3267. If this field is showing, set the hiddenCannotChange flag.\n        // This is used in the display of the grey bar.\n        if (!cf.hidden) {\n          cf.hiddenCannotChange = showCondition.hiddenCannotChange(this.caseFields);\n        }\n        // Disable the control if it's hidden so that it doesn't count towards the\n        // validation state of the form, but only if it's actually being validated.\n        if (control.validator) {\n          if (cf.hidden === true && !control.disabled) {\n            control.disable({ emitEvent: false });\n          } else if (cf.hidden !== true) {\n            control.enable({ emitEvent: false });\n          }\n        }\n      }\n    }\n  }\n\n  // make sure for the 3 callbacks that we are bound to this via an arrow function\n  private readonly handleFormControl = (formControl: FormControl): void => {\n    this.evaluateControl(formControl);\n  }\n\n  private readonly handleFormArray = (formArray: FormArray): void => {\n    this.evaluateControl(formArray);\n    formArray.controls.forEach(formControl => {\n      this.fieldsUtils.controlIterator(formControl, this.handleFormArray, this.handleFormGroup, this.handleFormControl);\n    });\n  }\n\n  private readonly handleFormGroup = (formGroup: FormGroup): void => {\n    this.evaluateControl(formGroup);\n    let groupControl = formGroup;\n    if (formGroup.get('value') && formGroup.get('value') instanceof FormGroup) { // Complex Field\n      groupControl = formGroup.get('value') as FormGroup;\n    } else if (formGroup.controls) {\n      // Special Fields like AddressUK, AddressGlobal\n      groupControl = formGroup;\n    }\n    if (groupControl.controls) {\n      Object.keys(groupControl.controls).forEach(cKey => {\n        // EUI-3359.\n        // Get the control from groupControl.controls[cKey] rather than\n        // groupControl.get(cKey) as the latter does pathing and will interpret\n        // full stops in cKey as delimeters for being nested within an array,\n        // which makes no sense in this situation.\n        const control = groupControl.controls[cKey];\n        this.fieldsUtils.controlIterator(control, this.handleFormArray, this.handleFormGroup, this.handleFormControl);\n      });\n    }\n  }\n\n  private evalAllShowHideConditions(): void {\n    this.getCurrentPagesReadOnlyAndFormFieldValues();\n    this.fieldsUtils.controlIterator(this.formGroup, this.handleFormArray, this.handleFormGroup, this.handleFormControl);\n  }\n\n  private buildPath(c: AbstractFormFieldComponent, field: CaseField): string {\n    if (c && c instanceof AbstractFieldWriteComponent) {\n      if (c.idPrefix) {\n        return c.idPrefix + field.id;\n      }\n    }\n    return field.id;\n  }\n\n  private getCurrentPagesReadOnlyAndFormFieldValues(): any {\n    const formFields = this.getFormFieldsValuesIncludingDisabled();\n    this.allFieldValues = this.fieldsUtils.mergeCaseFieldsAndFormFields(this.contextFields, formFields);\n    return this.allFieldValues;\n  }\n\n  private getFormFieldsValuesIncludingDisabled(): any {\n    return this.formGroup.getRawValue();\n  }\n\n  private unsubscribeFromFormChanges(): void {\n    if (this.formChangesSubscription) {\n      this.formChangesSubscription.unsubscribe();\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\nimport { ConditionalShowFormDirective } from './conditional-show-form.directive';\nimport { ConditionalShowRegistrarService } from './services/conditional-show-registrar.service';\nimport { GreyBarService } from './services/grey-bar.service';\n\n@NgModule({\n  declarations: [\n    ConditionalShowFormDirective\n  ],\n  exports: [\n    ConditionalShowFormDirective\n  ],\n  providers: [\n    FieldsUtils,\n    ConditionalShowRegistrarService,\n    GreyBarService\n  ]\n})\nexport class ConditionalShowModule {}\n","import { Injectable } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\n\nimport { WizardPageField } from '../../components/case-editor/domain/wizard-page-field.model';\nimport { WizardPage } from '../../components/case-editor/domain/wizard-page.model';\nimport { Wizard } from '../../components/case-editor/domain/wizard.model';\nimport { ShowCondition } from '../../directives/conditional-show/domain/conditional-show.model';\nimport { CaseEventTrigger } from '../../domain/case-view/case-event-trigger.model';\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { FieldTypeEnum } from '../../domain/definition/field-type-enum.model';\nimport { FieldsUtils } from './fields.utils';\n\n// @dynamic\n@Injectable()\nexport class FieldsPurger {\n\n  constructor(private readonly fieldsUtils: FieldsUtils) { }\n\n  public clearHiddenFields(form: FormGroup, wizard: Wizard, eventTrigger: CaseEventTrigger, currentPageId: string): void {\n    this.clearHiddenFieldForFieldShowCondition(currentPageId, form, wizard, eventTrigger);\n    this.clearHiddenFieldForPageShowCondition(form, wizard, eventTrigger);\n  }\n\n  private clearHiddenFieldForPageShowCondition(form: FormGroup, wizard: Wizard, eventTrigger: CaseEventTrigger): void {\n    const currentEventState = this.fieldsUtils.getCurrentEventState(eventTrigger, form);\n    wizard.pages.forEach(wp => {\n      if (this.hasShowConditionPage(wp, currentEventState)) {\n        const condition = new ShowCondition(wp.show_condition);\n        if (this.isHidden(condition, currentEventState)) {\n          this.resetPage(form, wp);\n        }\n      }\n    });\n  }\n\n  private clearHiddenFieldForFieldShowCondition(currentPageId: string,\n    form: FormGroup,\n    wizard: Wizard,\n    eventTrigger: CaseEventTrigger): void {\n    const formFields = form.getRawValue();\n    const currentPage: WizardPage = wizard.getPage(currentPageId, this.fieldsUtils.buildCanShowPredicate(eventTrigger, form));\n    currentPage.wizard_page_fields.forEach(wpf => {\n      const caseField = this.findCaseFieldByWizardPageFieldId(currentPage, wpf);\n      if (this.hasShowConditionField(caseField, formFields)) {\n        const condition = new ShowCondition(caseField.show_condition);\n        if (this.isHidden(condition, formFields.data) && !(this.isReadonly(caseField))) {\n          this.resetField(form, caseField);\n        }\n      }\n      this.retainHiddenValueByFieldType(caseField, form);\n    });\n  }\n\n  private retainHiddenValueByFieldType(field: CaseField, form: any): void {\n    // so far only applies to the new field type OrganisationPolicy which needs to retain the default case role value\n    // for other case fields there should be no side effects\n    if (field && field.field_type && field.field_type.id === 'OrganisationPolicy') {\n      // <bubble_wrap>\n      // Doing some null checking to stop it from falling over.\n      const data: FormGroup = form.get('data') as FormGroup;\n      if (data) {\n        const fieldGroup: FormGroup = data.controls[field.id] as FormGroup;\n        if (fieldGroup) {\n          const caseRoleFormControl: FormControl = fieldGroup.get('OrgPolicyCaseAssignedRole') as FormControl;\n          if (caseRoleFormControl) {\n            caseRoleFormControl.enable();\n          }\n        }\n      }\n      // </bubble_wrap>\n    }\n  }\n\n  private isHidden(condition: ShowCondition, formFields: any): boolean {\n    return !condition.match(formFields);\n  }\n\n  private findCaseFieldByWizardPageFieldId(currentPage: WizardPage, wizardPageField: WizardPageField): CaseField {\n    return currentPage.case_fields.find(cf => cf.id === wizardPageField.case_field_id);\n  }\n\n  private hasShowConditionPage(wizardPage: WizardPage, formFields: any): boolean {\n    return wizardPage.show_condition && formFields[this.getShowConditionKey(wizardPage.show_condition)];\n  }\n\n  private hasShowConditionField(caseField: CaseField, formFields: any): boolean {\n    return caseField.show_condition && formFields.data[this.getShowConditionKey(caseField.show_condition)];\n  }\n\n  private getShowConditionKey(showCondition: string): string {\n    // Need to allow for negated conditions, i.e. !=, as well as regular ones (=)\n    // Also need to allow for conditions specified using the \"CONTAINS\" keyword\n    return showCondition.split(/!=|=|CONTAINS/)[0];\n  }\n\n  private resetField(form: FormGroup, field: CaseField): void {\n    /**\n     * If the hidden field's value is to be retained, do nothing (except if it is a Complex type or collection of\n     * Complex types). This is a change to the previous behaviour (which used to clear the field value but remove it\n     * from submission as an update to the back-end). The new behaviour is to leave the field as is, so if the field\n     * is hidden but then un-hidden before form submission, any previously entered value is retained.\n     *\n     * For Complex field types, an additional check of sub-fields is required. The same applies to a collection of\n     * Complex types.\n     */\n    if (field.retain_hidden_value) {\n      const fieldType: FieldTypeEnum = field.field_type.type;\n      // If the field is a Complex type, loop over its sub-fields and call deleteFieldValue() for any sub-fields\n      // where retain_hidden_value is false, OR for any Complex sub-fields *regardless of their retain_hidden_value*\n      // (in order to inspect the sub-fields of a Complex type within another Complex type)\n      if (fieldType === 'Complex' && field.field_type.complex_fields.length > 0) {\n        for (const complexSubField of field.field_type.complex_fields) {\n          if ((complexSubField.field_type.type === 'Complex' && complexSubField.field_type.complex_fields.length > 0) ||\n            !complexSubField.retain_hidden_value) {\n            // Check for the existence of the parent FormGroup corresponding to the Complex field; if it exists, call\n            // deleteFieldValue() to delete the sub-field\n            const parentFormGroup = (form.get('data') as FormGroup).controls[field.id] as FormGroup;\n            if (parentFormGroup) {\n              this.deleteFieldValue(parentFormGroup, complexSubField);\n            }\n          }\n        }\n      } else if (fieldType === 'Collection' && field.field_type.collection_field_type.type === 'Complex' &&\n        field.field_type.collection_field_type.complex_fields.length > 0) {\n        // If the field is a collection of Complex types, loop through each one and call deleteFieldValue() for any\n        // sub-fields where retain_hidden_value is false, OR for any Complex sub-fields *regardless of their\n        // retain_hidden_value* (in order to inspect the sub-fields of a Complex type within another Complex type)\n\n        // Get the array of field controls corresponding to the Complex field values\n        const fieldControls = (form.get('data') as FormGroup).controls[field.id] as FormArray;\n\n        if (fieldControls) {\n          // Get the array of Complex field values\n          const complexFieldValues = fieldControls.value as any[];\n\n          // For each Complex field value, get the ID of each sub-field within it and use as a key to find the\n          // corresponding sub-CaseField (which contains the field type information)\n          if (complexFieldValues) {\n            complexFieldValues.forEach((fieldValue, index) => Object.keys(fieldValue.value).forEach(subFieldId => {\n              // Find the sub-CaseField corresponding to the sub-field ID\n              let subCaseField: CaseField;\n              for (const caseField of field.field_type.collection_field_type.complex_fields) {\n                if (caseField.id === subFieldId) {\n                  subCaseField = caseField;\n                  break;\n                }\n              }\n\n              // Recursively delete the sub-field value if retain_hidden_value is false, OR if the sub-field type is\n              // Complex and regardless of retain_hidden_value, passing in the parent FormGroup\n              if (subCaseField &&\n                ((subCaseField.field_type.type === 'Complex' && subCaseField.field_type.complex_fields.length > 0) ||\n                  !subCaseField.retain_hidden_value)) {\n                const parentFormGroup: FormGroup = fieldControls.at(index).get('value') as FormGroup;\n                this.deleteFieldValue(parentFormGroup, subCaseField);\n              }\n            }));\n          }\n        }\n      }\n    } else {\n      // Delete the field from formGroup\n      const dataGroup = form.get('data') as FormGroup;\n      dataGroup.removeControl(field.id);\n    }\n  }\n\n  private resetPage(form: FormGroup, wizardPage: WizardPage): void {\n    wizardPage.wizard_page_fields.forEach(wpf => {\n      const caseField = this.findCaseFieldByWizardPageFieldId(wizardPage, wpf);\n      this.resetField(form, caseField);\n    });\n  }\n\n  private getType(elem: any): string {\n    return Object.prototype.toString.call(elem).slice(8, -1);\n  }\n\n  private isObject(elem: any): boolean {\n    return this.getType(elem) === 'Object';\n  }\n\n  // TODO: call isReadOnly on CaseFields once we make it available\n  private isReadonly(caseField: CaseField): boolean {\n    return caseField.display_context.toUpperCase() === 'READONLY';\n  }\n\n  /**\n   * Deletes a field value by setting the value of the corresponding {@link FormControl} to null (or an empty array\n   * if the field type is `Collection`), except when the field type is `Complex` or `Document`. For `Complex` field\n   * types, this recursive method is called until simple or \"base\" field types are reached. For `Document` field\n   * types, its _sub-field_ `FormControl` values are set to null.\n   *\n   * @param formGroup The `FormGroup` instance containing the `FormControl` for the specified field\n   * @param field The `CaseField` whose value is to be deleted in the backend\n   * @param parentField Reference to the parent `CaseField`. Used for checking specifically where a Complex field and\n   * its sub-fields have `retain_hidden_value` set to `true`, but the field's parent has it set to `false` or undefined\n   */\n  public deleteFieldValue(formGroup: FormGroup, field: CaseField, parentField?: CaseField): void {\n    const fieldType: FieldTypeEnum = field.field_type.type;\n    const fieldControl = formGroup.get(field.id);\n\n    if (fieldControl) {\n      switch (fieldType) {\n        case 'Complex':\n          /**\n           * If the field is a Complex type, loop over its sub-fields and call deleteFieldValue() for:\n           *\n           * * Any sub-fields where retain_hidden_value is false/undefined, if the parent field has\n           * retain_hidden_value = true;\n           * * ALL sub-fields if the parent field has retain_hidden_value = true BUT its _own_ parent has\n           * retain_hidden_value = false/undefined (thus overriding anything else);\n           * * ALL sub-fields if the parent field has retain_hidden_value = false/undefined;\n           * * Any Complex sub-fields *regardless of their retain_hidden_value* (in order to inspect the sub-fields\n           * of a Complex type within another Complex type)\n           */\n          if (field.field_type.complex_fields.length > 0) {\n            for (const complexSubField of field.field_type.complex_fields) {\n              if ((complexSubField.field_type.type === 'Complex' && complexSubField.field_type.complex_fields.length > 0) ||\n                (complexSubField.field_type.type !== 'Complex' &&\n                  (field.retain_hidden_value\n                    ? !complexSubField.retain_hidden_value || (parentField && !parentField.retain_hidden_value)\n                    : true))) {\n                // The fieldControl is cast to a FormGroup because a Complex field type uses this as its underlying\n                // implementation\n                this.deleteFieldValue(fieldControl as FormGroup, complexSubField, field);\n              }\n            }\n          }\n          break;\n        case 'Collection':\n          // If it is a collection of Complex types, loop through each one; else fall through to be handled as a\n          // collection of simple types (in the same way as MultiSelectList), unless it's a collection of Document\n          // types, which requires different handling\n          const collectionFieldType = field.field_type.collection_field_type;\n          if (collectionFieldType.type === 'Complex' && collectionFieldType.complex_fields.length > 0) {\n            // Get the array of Complex field values\n            const complexFieldValues = fieldControl.value as any[];\n\n            // For each Complex field value, get the ID of each sub-field within it and use as a key to find the\n            // corresponding sub-CaseField (which contains the field type information)\n            if (complexFieldValues) {\n              complexFieldValues.forEach((fieldValue, index) => Object.keys(fieldValue.value).forEach(subFieldId => {\n                // Find the sub-CaseField corresponding to the sub-field ID\n                let subCaseField: CaseField;\n                for (const caseField of collectionFieldType.complex_fields) {\n                  if (caseField.id === subFieldId) {\n                    subCaseField = caseField;\n                    break;\n                  }\n                }\n\n                // Recursively delete the sub-field value, passing in the parent FormGroup\n                const parentFormGroup: FormGroup = (fieldControl as FormArray).at(index).get('value') as FormGroup;\n                this.deleteFieldValue(parentFormGroup, subCaseField);\n              }));\n            }\n            break;\n          } else if (collectionFieldType.type === 'Document') {\n            // Get the array of Document field values\n            const documentFieldValues = fieldControl.value as any[];\n\n            // For each Document field value, set all its property values to null (this is not accepted by the\n            // back-end but will be handled by sanitiseObject() in FormValueService before sending - see below for\n            // the single Document case)\n            if (documentFieldValues) {\n              documentFieldValues.forEach((fieldValue, index) => Object.keys(fieldValue.value).forEach(subFieldId => {\n                // Get the FormGroup containing the FormControl for the sub-field and set its value to null\n                (fieldControl as FormArray).at(index).get(`value.${subFieldId}`).setValue(null);\n              }));\n            }\n            break;\n          }\n        // Omitted \"break\" is intentional because a collection should be handled as per MultiSelectList if it is\n        // not a collection of Complex types\n        // tslint:disable-next-line: no-switch-case-fall-through\n        case 'MultiSelectList':\n          // Field control should be a FormArray, so map each of its values to null\n          // NOTE: The FormArray cannot just be set to an empty array because Angular checks that all existing values\n          // of a FormArray are present; setting the control's value to an empty array causes a runtime error\n          if (fieldControl.value) {\n            // Need to allow for field values that are objects, not just primitives\n            fieldControl.setValue(this.mapArrayValuesToNull(fieldControl.value));\n          }\n          break;\n        case 'Document':\n          // NOTE: The field control (a FormGroup in this case) cannot just be set to null because Angular checks that\n          // all existing values of a FormGroup are present; setting the control's value to null causes a runtime error\n          const documentFieldValue = fieldControl.value;\n          for (const key in documentFieldValue) {\n            if (fieldControl.get(key)) {\n              // The back-end doesn't accept null as a valid value for any of the Document field type properties but\n              // this is handled by sanitiseObject() in FormValueService, returning a null object for the entire\n              // Document field, if any of its properties is null - which is accepted by the back-end\n              fieldControl.get(key).setValue(null);\n            }\n          }\n          break;\n        // Note: the default case applies to DynamicList fields, too\n        default:\n          fieldControl.setValue(null);\n      }\n    }\n  }\n\n  /**\n   * Maps all values of an array to `null`, retaining keys for any values that are objects. For example,\n   * `[{ id: '0', value: 'Test' }, 'Test']` would become `[{ id: null, value: null }, null]`.\n   * @param array The array of values to map\n   * @returns A new array with the mapped values\n   */\n  public mapArrayValuesToNull(array: any[]): any[] {\n    if (array && array.length > 0) {\n      return array.map(element => {\n        if (element !== undefined && element !== null) {\n          return typeof element === 'object'\n            ? Object.assign({}, ...Object.keys(element).map(k => ({ [k]: null })))\n            : null;\n        } else {\n          return {};\n        }\n      });\n    } else {\n      return array\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { FieldTypeEnum } from '../../domain/definition/field-type-enum.model';\n\n@Injectable()\nexport class FieldTypeSanitiser {\n  public static readonly FIELD_TYPE_COMPLEX: FieldTypeEnum = 'Complex';\n  public static readonly FIELD_TYPE_COLLECTION: FieldTypeEnum = 'Collection';\n  public static readonly FIELD_TYPE_DYNAMIC_LIST: FieldTypeEnum = 'DynamicList';\n  public static readonly FIELD_TYPE_DYNAMIC_RADIO_LIST: FieldTypeEnum = 'DynamicRadioList';\n  public static readonly FIELD_TYPE_DYNAMIC_MULTISELECT_LIST: FieldTypeEnum = 'DynamicMultiSelectList';\n  public static readonly DYNAMIC_LIST_TYPE: FieldTypeEnum[] = ['DynamicList', 'DynamicRadioList', 'DynamicMultiSelectList'];\n\n  /**\n   * This method finds dynamiclists in a form and replaces their string\n   * values, with a JSON object, as below:\n   * From: 'xyz'\n   * To  : {\n   *   value: { code:'xyz', label:'XYZ' },\n   *   list_items: [\n   *     { code:'xyz', label:'XYZ'},\n   *     { code:'abc', label:'ABC'}\n   *   ]\n   * }\n   * @param caseFields The CaseFields to assess.\n   * @param data The data in the form.\n   */\n  public sanitiseLists(caseFields: CaseField[], data: any) {\n    if (!data || !caseFields) {\n      return;\n    }\n    caseFields = this.ensureDynamicMultiSelectListPopulated(caseFields);\n    caseFields.forEach((caseField) => {\n      // tslint:disable-next-line:switch-default\n      switch (caseField.field_type.type) {\n        case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_MULTISELECT_LIST:\n          this.convertArrayToDynamicListOutput(caseField, data);\n          break;\n        case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_RADIO_LIST:\n        case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_LIST:\n          this.convertStringToDynamicListOutput(caseField, data);\n          break;\n\n        case FieldTypeSanitiser.FIELD_TYPE_COMPLEX:\n          this.sanitiseLists(caseField.field_type.complex_fields, data[caseField.id]);\n          break;\n\n        case FieldTypeSanitiser.FIELD_TYPE_COLLECTION:\n          if (Array.isArray(data[caseField.id])) {\n            data[caseField.id].forEach((formElement: any) => {\n              this.sanitiseLists(caseField.field_type.collection_field_type.complex_fields, formElement.value);\n            });\n          }\n          break;\n      }\n    });\n  }\n\n  public ensureDynamicMultiSelectListPopulated(caseFields: CaseField[]): CaseField[] {\n    return caseFields.map((field) => {\n      if (field.field_type.type !== 'Complex') {\n        return field;\n      }\n      const caseFieldData = field._value;\n      // Process each complex field\n      field.field_type.complex_fields.forEach((complexField) => {\n        if (complexField.field_type.type === FieldTypeSanitiser.FIELD_TYPE_COMPLEX) {\n          this.checkNestedDynamicList(complexField, caseFieldData?.[complexField.id]);\n        } else if (this.isDynamicList(complexField.field_type.type) &&\n          complexField.display_context !== 'HIDDEN' &&\n          field._value?.[complexField.id]\n        ) {\n          complexField.list_items = field._value[complexField.id]?.list_items;\n        }\n      });\n      // Final transformation: construct updated field object\n      return { ...field, field_type: { ...field?.field_type } } as CaseField;\n    });\n  }\n\n  private checkNestedDynamicList(caseField: CaseField, fieldData: any = null): void {\n    caseField.field_type.complex_fields.forEach((complexField) => {\n      if (complexField.field_type.type === FieldTypeSanitiser.FIELD_TYPE_COMPLEX) {\n        this.checkNestedDynamicList(complexField, fieldData?.[complexField.id]);\n      } else if (this.isDynamicList(complexField.field_type.type) &&\n        complexField.display_context !== 'HIDDEN' &&\n        fieldData?.[complexField.id]\n      ) {\n        complexField.list_items = fieldData?.[complexField.id]?.list_items;\n      }\n    });\n  }\n\n  private isDynamicList(fieldType: FieldTypeEnum): boolean {\n    return FieldTypeSanitiser.DYNAMIC_LIST_TYPE.indexOf(fieldType) !== -1;\n  }\n\n  private convertArrayToDynamicListOutput(field: CaseField, data: any): void {\n    const values = data[field.id];\n    if (Array.isArray(values)) {\n      const listItems = this.getListItems(field);\n      const matches = listItems.filter(item => values.map(v => v.code).indexOf(item.code) !== -1);\n\n      data[field.id] = {\n        value: matches,\n        list_items: listItems\n      };\n    }\n  }\n\n  private convertStringToDynamicListOutput(field: CaseField, data: any): void {\n    const stringValue = data[field.id];\n    if (typeof stringValue === 'string') {\n      const listItems = this.getListItems(field);\n      const matches = listItems.filter(value => value?.code === stringValue);\n      if (matches && matches.length > 0) {\n        data[field.id] = {\n          value: matches[0],\n          list_items: listItems\n        };\n      }\n    }\n  }\n\n  private getListItems(field: CaseField): any[] {\n    if (field) {\n      if (field.list_items) {\n        return field.list_items;\n      }\n      if (field.formatted_value && field.formatted_value.list_items) {\n        return field.formatted_value.list_items;\n      }\n    }\n    return [];\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { CaseField, FieldTypeEnum } from '../../domain';\nimport { FieldsUtils } from '../fields';\nimport { FieldTypeSanitiser } from './field-type-sanitiser';\n\n@Injectable()\nexport class FormValueService {\n  public static getFieldValue(form, fieldKey, colIndex) {\n    const fieldIds = fieldKey.split('.');\n    const currentFieldId = fieldIds[0];\n    const currentForm = form[currentFieldId];\n    if (FieldsUtils.isMultiSelectValue(currentForm)) {\n      return form[currentFieldId + FieldsUtils.LABEL_SUFFIX].join(', ');\n    } else if (FieldsUtils.isCollectionOfSimpleTypes(currentForm)) {\n      return currentForm.map(fieldValue => fieldValue['value']).join(', ');\n    } else if (FieldsUtils.isCollection(currentForm)) {\n      return this.getFieldValue(currentForm[colIndex]['value'], fieldIds.slice(1).join('.'), colIndex);\n    } else if (FieldsUtils.isNonEmptyObject(currentForm)) {\n      return this.getFieldValue(currentForm, fieldIds.slice(1).join('.'), colIndex);\n    } else {\n      return currentForm;\n    }\n  }\n\n  /**\n   * A recursive method to remove anything with a `---LABEL` suffix.\n   * @param data The data to recurse through and remove MultiSelect labels.\n   */\n  public static removeMultiSelectLabels(data: any): void {\n    if (data && typeof data === 'object') {\n      if (Array.isArray(data)) {\n        for (const item of data) {\n          FormValueService.removeMultiSelectLabels(item);\n        }\n      } else {\n        const keys: string[] = Object.keys(data);\n        for (const key of keys) {\n          // Have we found one a MultiSelect label?\n          if (key.indexOf(FieldsUtils.LABEL_SUFFIX) > 0) {\n            // If so, remove it.\n            delete data[key];\n          } else {\n            FormValueService.removeMultiSelectLabels(data[key]);\n          }\n        }\n      }\n    }\n  }\n\n  private static isReadOnly(field: CaseField): boolean {\n    return field.display_context ? field.display_context.toUpperCase() === 'READONLY' : false;\n  }\n\n  private static isOptional(field: CaseField): boolean {\n    return field.display_context ? field.display_context.toUpperCase() === 'OPTIONAL' : false;\n  }\n\n  private static isLabel(field: CaseField): boolean {\n    if (field.field_type) {\n      return field.field_type.type === 'Label';\n    } else {\n      return false;\n    }\n  }\n\n  private static isEmptyData(data: object): boolean {\n    if (data) {\n      let allEmpty = true;\n      for (const prop of Object.keys(data)) {\n        const value = data[prop];\n        if (value) {\n          if (typeof (value) === 'object') {\n            allEmpty = allEmpty && this.isEmptyData(value);\n          } else {\n            allEmpty = false;\n          }\n        }\n      }\n      return allEmpty;\n    }\n    return true;\n  }\n\n  /**\n   * Should we clear out optional, empty, complex objects?\n   * @param clearEmpty False property if we simply want to skip it.\n   * @param data The data to assess for \"emptiness\".\n   * @param field The CaseField that will tell us if this is optional.\n   */\n  private static clearOptionalEmpty(clearEmpty: boolean, data: object, field: CaseField): boolean {\n    if (clearEmpty) {\n      return FormValueService.isOptional(field) && FormValueService.isEmptyData(data);\n    }\n    return false;\n  }\n\n  constructor(private readonly fieldTypeSanitiser: FieldTypeSanitiser) {\n  }\n\n  public sanitise(rawValue: object, isCaseFlagJourney: boolean = false): object {\n    return this.sanitiseObject(rawValue, isCaseFlagJourney);\n  }\n\n  public sanitiseCaseReference(reference: string): string {\n    // strip non digits\n    const s: string = reference.replace(/[\\D]/g, '');\n    if (s.length > 16) {\n      return s.substr(s.length - 16, 16);\n    }\n    return s;\n  }\n\n  public filterCurrentPageFields(caseFields: CaseField[], editForm: any): any {\n    const cloneForm = JSON.parse(JSON.stringify(editForm));\n    Object.keys(cloneForm['data']).forEach((key) => {\n      if (caseFields.findIndex((element) => element.id === key) < 0) {\n        delete cloneForm['data'][key];\n      }\n    });\n    return cloneForm;\n  }\n\n  public sanitiseDynamicLists(caseFields: CaseField[], editForm: any): any {\n    return this.fieldTypeSanitiser.sanitiseLists(caseFields, editForm.data);\n  }\n\n  private sanitiseObject(rawObject: object, isCaseFlagJourney: boolean = false): object {\n    if (!rawObject) {\n      return rawObject;\n    }\n\n    let sanitisedObject = {};\n    const documentFieldKeys = ['document_url', 'document_binary_url', 'document_filename'];\n    for (const key in rawObject) {\n      // If the key is one of documentFieldKeys, it means the field is of Document type. If the value of any of these\n      // properties is null, the entire sanitised object to be returned should be null\n      if (documentFieldKeys.indexOf(key) > -1 && rawObject[key] === null) {\n        sanitisedObject = null;\n        break;\n      } else if ('CaseReference' === key) {\n        sanitisedObject[key] = this.sanitiseValue(this.sanitiseCaseReference(String(rawObject[key])), isCaseFlagJourney);\n      } else {\n        sanitisedObject[key] = this.sanitiseValue(rawObject[key], isCaseFlagJourney);\n        if (Array.isArray(sanitisedObject[key])) {\n          // If the 'sanitised' array is empty, whereas the original array had 1 or more items\n          // delete the property from the sanatised object\n          const shouldDeleteField = sanitisedObject[key].length === 0\n            && rawObject[key].length > 0\n            && !isCaseFlagJourney;\n          if (shouldDeleteField) {\n            delete sanitisedObject[key];\n          }\n        }\n      }\n    }\n    return sanitisedObject;\n  }\n\n  private sanitiseArray(rawArray: any[], isCaseFlagJourney: boolean = false): any[] {\n    if (!rawArray) {\n      return rawArray;\n    }\n\n    rawArray.forEach(item => {\n      if (item && item.hasOwnProperty('value')) {\n        item.value = this.sanitiseValue(item.value, isCaseFlagJourney);\n      }\n    });\n\n    // Filter the array to ensure only truthy values are returned; double-bang operator returns the boolean true/false\n    // association of a value. In addition, if the array contains items with a \"value\" object property, return only\n    // those whose value object contains non-empty values, including for any descendant objects\n    return rawArray\n      .filter(item => !!item)\n      .filter(item => item.hasOwnProperty('value') ? FieldsUtils.containsNonEmptyValues(item.value) : true);\n  }\n\n  private sanitiseValue(rawValue: any, isCaseFlagJourney: boolean = false): any {\n    if (Array.isArray(rawValue)) {\n      return this.sanitiseArray(rawValue, isCaseFlagJourney);\n    }\n\n    switch (typeof rawValue) {\n      case 'object':\n        return this.sanitiseObject(rawValue, isCaseFlagJourney);\n      case 'string':\n        return rawValue.trim();\n      case 'number':\n        return String(rawValue);\n      default:\n        return rawValue;\n    }\n  }\n\n  public clearNonCaseFields(data: object, caseFields: CaseField[]) {\n    for (const dataKey in data) {\n      if (!caseFields.find(cf => cf.id === dataKey)) {\n        delete data[dataKey];\n      }\n    }\n  }\n\n  // TODO refactor so that this and remove unnecessary fields have a common iterator that applies functions to each node visited\n  public removeNullLabels(data: object, caseFields: CaseField[]) {\n    if (data && caseFields && caseFields.length > 0) {\n      // check if there is any data at the top level of the form that's not in the caseFields\n      for (const field of caseFields) {\n        if (field.field_type) {\n          switch (field.field_type.type) {\n            case 'Label':\n              // Delete any labels that are null\n              if ((data[field.id] === null) || (data[field.id] === '')) {\n                delete data[field.id];\n              }\n              break;\n            case 'Complex':\n              // Recurse and remove anything unnecessary from within a complex field.\n              this.removeNullLabels(data[field.id], field.field_type.complex_fields);\n              break;\n            case 'Collection':\n              // Get hold of the collection.\n              const collection = data[field.id];\n              // Check if we actually have a collection to work with.\n              if (collection && Array.isArray(collection)) {\n                // If this is a collection of complex object, we need to iterate through\n                // and clear them out.\n                if (field.field_type.collection_field_type.type === 'Complex') {\n                  // Iterate through the elements and remove any unnecessary fields within.\n                  for (const item of collection) {\n                    this.removeNullLabels(item, field.field_type.collection_field_type.complex_fields);\n                    this.removeNullLabels(item.value, field.field_type.collection_field_type.complex_fields);\n                  }\n                }\n              }\n              break;\n            default:\n              break;\n          }\n        }\n      }\n    }\n  }\n  // TODO refactor so that this and remove unnecessary fields have a common iterator that applies functions to each node visited\n  public removeEmptyDocuments(data: object, caseFields: CaseField[]) {\n    if (data && caseFields && caseFields.length > 0) {\n      // check if there is any data at the top level of the form that's not in the caseFields\n      for (const field of caseFields) {\n        if (field.field_type) {\n          switch (field.field_type.type) {\n            case 'Complex':\n              // Recurse and remove any empty documents from within a complex field.\n              this.removeEmptyDocuments(data[field.id], field.field_type.complex_fields);\n              break;\n            case 'Collection':\n              // Get hold of the collection.\n              const collection = data[field.id];\n              // Check if we actually have a collection to work with.\n              if (collection && Array.isArray(collection)) {\n                // If this is a collection of complex object, we need to iterate through\n                // and clear out empty documents\n                if (field.field_type.collection_field_type.type === 'Complex') {\n                  // Iterate through the elements and remove any empty documents within.\n                  for (const item of collection) {\n                    this.removeEmptyDocuments(item, field.field_type.collection_field_type.complex_fields);\n                    this.removeEmptyDocuments(item.value, field.field_type.collection_field_type.complex_fields);\n                  }\n                }\n              }\n              break;\n            case 'Document':\n              // Ensure this is executed only if the Document field is NOT hidden and is empty of data; hidden Document\n              // fields are handled by the filterRawFormValues() function in CaseEditSubmit component\n              if (field.hidden !== true && FormValueService.isEmptyData(data[field.id])) {\n                delete data[field.id];\n              }\n              break;\n            default:\n              break;\n          }\n        }\n      }\n    }\n  }\n  /**\n   * Clear out unnecessary fields from a data object, based on an array of CaseFields.\n   * This method is recursive and will call itself if it encounters particular field types.\n   *\n   * @param data The object to be tidied up.\n   * @param caseFields The CaseFields that need to be cleaned up.\n   * @param clearEmpty Whether or not we should clear out empty, optional, complex objects.\n   * @param clearNonCase Whether or not we should clear out non-case fields at the top level.\n   */\n  public removeUnnecessaryFields(data: object, caseFields: CaseField[], clearEmpty = false, clearNonCase = false,\n    fromPreviousPage = false, currentPageCaseFields = []): void {\n    if (data && caseFields && caseFields.length > 0) {\n      // check if there is any data at the top level of the form that's not in the caseFields\n      if (clearNonCase) {\n        this.clearNonCaseFields(data, caseFields);\n      }\n      for (const field of caseFields) {\n        if (!FormValueService.isLabel(field) && FormValueService.isReadOnly(field)) {\n          // Retain anything that is readonly and not a label.\n          continue;\n        }\n        if (field.hidden === true && field.display_context !== 'HIDDEN' && field.display_context !== 'HIDDEN_TEMP' && field.id !== 'caseLinks' && !field.retain_hidden_value) {\n          // Delete anything that is hidden (that is NOT readonly), and that\n          // hasn't had its display_context overridden to make it hidden.\n          delete data[field.id];\n        } else if (field.field_type) {\n          switch (field.field_type.type) {\n            case 'Label':\n              // Delete any labels.\n              delete data[field.id];\n              break;\n            case 'Document':\n              if (FormValueService.isEmptyData(data[field.id])) {\n                delete data[field.id];\n              }\n              break;\n            case 'Complex':\n              this.removeUnnecessaryFields(data[field.id], field.field_type.complex_fields, clearEmpty);\n              // Also remove any optional complex objects that are completely empty.\n              // EUI-4244: Ritesh's fix, passing true instead of clearEmpty.\n              if (FormValueService.clearOptionalEmpty(true, data[field.id], field)) {\n                delete data[field.id];\n              }\n              if (data[field.id] && FormValueService.isEmptyData(data[field.id]) && fromPreviousPage\n                && currentPageCaseFields.findIndex((cField: any) => cField.id === field.id) === -1) {\n                delete data[field.id];\n              }\n              break;\n            case 'Collection':\n              // Check for valid collection data\n              this.removeInvalidCollectionData(data, field);\n              // Get hold of the collection.\n              const collection = data[field.id];\n              // Check if we actually have a collection to work with.\n              if (collection && Array.isArray(collection)) {\n                // If this is a collection of complex object, we need to iterate through\n                // and clear them out.\n                if (field.field_type.collection_field_type.type === 'Complex') {\n                  // Iterate through the elements and remove any unnecessary fields within.\n                  for (const item of collection) {\n                    this.removeUnnecessaryFields(item, field.field_type.collection_field_type.complex_fields, clearEmpty);\n                    this.removeUnnecessaryFields(item.value, field.field_type.collection_field_type.complex_fields, false);\n                  }\n                }\n              }\n              break;\n            default:\n              break;\n          }\n        }\n      }\n    }\n\n    // Clear out any MultiSelect labels.\n    FormValueService.removeMultiSelectLabels(data);\n  }\n\n  public removeInvalidCollectionData(data: object, field: CaseField) {\n    if (data[field.id] && data[field.id].length > 0) {\n      for (const objCollection of data[field.id]) {\n        if (Object.keys(objCollection).length === 1 && Object.keys(objCollection).indexOf('id') > -1) {\n          data[field.id] = [];\n        }\n      }\n    }\n  }\n\n  /**\n   * Remove any empty collection fields where a value of greater than zero is specified in the field's {@link FieldType}\n   * `min` attribute.\n   *\n   * @param data The object tree of form values on which to perform the removal\n   * @param caseFields The list of underlying {@link CaseField} domain model objects for each field\n   */\n  public removeEmptyCollectionsWithMinValidation(data: object, caseFields: CaseField[]): void {\n    if (data && caseFields && caseFields.length > 0) {\n      for (const field of caseFields) {\n        if (field.field_type.type === 'Collection' && typeof field.field_type.min === 'number' && field.field_type.min > 0 &&\n          data[field.id] && Array.isArray(data[field.id]) && data[field.id].length === 0) {\n          delete data[field.id];\n        }\n      }\n    }\n  }\n\n  /**\n   * Remove from the top level of the form data any case fields of a given type or types that are not intended to be\n   * persisted. This function is intended to remove \"special\" case field types from the data, such as FlagLauncher or\n   * ComponentLauncher fields.\n   *\n   * @param data The object tree of form values on which to perform the removal at the top level only\n   * @param caseFields The list of underlying {@link CaseField} domain model objects for each field\n   * @param types An array of one or more field types\n   */\n  public removeCaseFieldsOfType(data: object, caseFields: CaseField[], types: FieldTypeEnum[]): void {\n    if (data && caseFields && caseFields.length > 0 && types.length > 0) {\n      const caseFieldsToRemove = caseFields.filter(caseField => FieldsUtils.isCaseFieldOfType(caseField, types));\n      for (const caseField of caseFieldsToRemove) {\n        delete data[caseField.id];\n      }\n    }\n  }\n\n  /**\n   * Re-populate the form data from the values held in the case fields. This is necessary in order to pick up, for\n   * each `Flags` field, any flag details data not currently present.\n   *\n   * `Flags` fields may be contained in other `CaseField` instances, either as a sub-field of a Complex field, or\n   * fields in a collection (or sub-fields of Complex fields in a collection). Therefore, it is necessary to\n   * iterate through all `CaseField`s.\n   *\n   * @param data The object tree of form values on which to perform the data population\n   * @param caseFields The list of underlying {@link CaseField} domain model objects for each field\n   */\n  public repopulateFormDataFromCaseFieldValues(data: object, caseFields: CaseField[]): void {\n    if (data && caseFields && caseFields.length > 0 &&\n      caseFields.findIndex(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher'])) > -1) {\n      // Ignore the FlagLauncher CaseField because it does not hold any values\n      caseFields.filter(caseField => !FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']))\n        .forEach(caseField => {\n          // Ensure that the data object is populated for all CaseField keys it contains, even if for a given\n          // CaseField key, the data object has a falsy value (hence the use of hasOwnProperty() for the check below)\n          // See https://tools.hmcts.net/jira/browse/EUI-7377\n          if (data.hasOwnProperty(caseField.id) && caseField.value) {\n            // Create new object for the CaseField ID within the data object, if necessary (i.e. if the current value\n            // is falsy); populate from the corresponding CaseField\n            if (!data[caseField.id]) {\n              data[caseField.id] = {};\n              Object.keys(caseField.value).forEach((key) => data[caseField.id][key] = caseField.value[key]);\n            } else {\n              // Copy all values from the corresponding CaseField; this ensures all nested flag data (for example, a\n              // Flags field within a Complex field or a collection of Complex fields) is copied across\n              Object.keys(data[caseField.id]).forEach((key) => {\n                if (caseField.value.hasOwnProperty(key)) {\n                  data[caseField.id][key] = caseField.value[key];\n                }\n              });\n            }\n          }\n        });\n    }\n  }\n\n  /**\n   * Populate the linked cases from the data held in its corresponding CaseField.\n   *\n   * @param data The object tree of form values on which to perform the data population\n   * @param caseFields The list of underlying {@link CaseField} domain model objects for each field\n   */\n  public populateLinkedCasesDetailsFromCaseFields(data: object, caseFields: CaseField[]): void {\n    if (data && caseFields && caseFields.length > 0) {\n      caseFields.filter(caseField => !FieldsUtils.isCaseFieldOfType(caseField, ['ComponentLauncher']))\n        .forEach(caseField => {\n          if (data.hasOwnProperty('caseLinks') && caseField.value) {\n            data[caseField.id] = caseField.value;\n          }\n        });\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FieldsUtils } from '../../../services/fields/fields.utils';\nimport { FormValueService } from '../../../services/form/form-value.service';\n// This class implements ccd Field Interpolation\n\n// @dynamic\n@Injectable()\nexport class PlaceholderService {\n\n    public resolvePlaceholders(pageFormFields: object, stringToResolve: string): string {\n        const ps = new PlaceholderService.PlaceholderSubstitutor({pageFormFields, stringToResolve});\n        return ps.resolvePlaceholders();\n    }\n\n}\n\nexport namespace PlaceholderService {\n    export class PlaceholderSubstitutor {\n        private static readonly PLACEHOLDER_CONTENT_PATTERN = /^[a-zA-Z0-9_.\\]\\[]+$/;\n        private static readonly PLACEHOLDER_PATTERN = /\\$\\{[a-zA-Z0-9_.\\]\\[]+\\}/;\n        private static readonly STARTING_PLACEHOLDER = '$';\n        private static readonly CLOSING_PLACEHOLDER = '}';\n        private static readonly OPENING_PLACEHOLDER = '{';\n        private static readonly NEW_LINE = `\n___\n`;\n\n        private static readonly PLACEHOLDER_START =\n            PlaceholderSubstitutor.STARTING_PLACEHOLDER + PlaceholderSubstitutor.OPENING_PLACEHOLDER;\n        private static readonly PLACEHOLDER_END = PlaceholderSubstitutor.CLOSING_PLACEHOLDER;\n\n        private stringToResolve: string;\n        private scanIndex: number;\n        private numberCollectionItemsAsPlaceholder: number;\n        private collectionItemIndex: number;\n        private fieldIdToSubstitute: string;\n        private startSubstitutionIndex: number;\n        private isCollecting: boolean;\n        private readonly resolvedFormValues = [];\n        private readonly pageFormFields: object;\n        private readonly originalStringToResolve: string;\n\n        private static wrapPlaceholder(str: string): string {\n            return `${this.PLACEHOLDER_START}${str}${this.PLACEHOLDER_END}`;\n        }\n\n        constructor(values: { stringToResolve: string, pageFormFields: object }) {\n            this.stringToResolve = values.stringToResolve;\n            this.originalStringToResolve = values.stringToResolve;\n            this.pageFormFields = values.pageFormFields;\n        }\n\n        public resolvePlaceholders(): string {\n            while (this.hasUnresolvedPlaceholder()) {\n                this.resetPlaceholderSubstitutor();\n                while (this.doesPlaceholderContainCollectionItems()) {\n                    while (this.isScanningStringToResolve()) {\n                        if (this.isStartPlaceholderAndNotCollecting()) {\n                            this.setStartCollecting();\n                        } else if (this.isCollecting) {\n                            if (this.isClosingPlaceholder()) {\n                                this.substitute();\n                            } else if (!this.isOpeningPlaceholder()) {\n                                this.appendCharacter();\n                            }\n                        }\n                        this.scanIndex++;\n                    }\n                    this.appendOriginalStringIfCollectionItemAsPlaceholder();\n                }\n            }\n            return this.stringToResolve;\n        }\n\n        private isScanningStringToResolve(): boolean {\n            return this.scanIndex < this.stringToResolve.length;\n        }\n\n        private doesPlaceholderContainCollectionItems(): boolean {\n            return this.numberCollectionItemsAsPlaceholder-- > 0;\n        }\n\n        private hasUnresolvedPlaceholder(): boolean {\n            return this.stringToResolve\n                && typeof this.stringToResolve === 'string'\n                && !!this.stringToResolve.match(PlaceholderSubstitutor.PLACEHOLDER_PATTERN);\n        }\n\n        private isStartPlaceholderAndNotCollecting(): boolean {\n            return this.isStartingPlaceholder() && !this.isCollecting;\n        }\n\n        private isOpeningPlaceholder(): boolean {\n            return this.stringToResolve.charAt(this.scanIndex) === PlaceholderSubstitutor.OPENING_PLACEHOLDER;\n        }\n\n        private isClosingPlaceholder(): boolean {\n            return this.stringToResolve.charAt(this.scanIndex) === PlaceholderSubstitutor.CLOSING_PLACEHOLDER;\n        }\n\n        private resetPlaceholderSubstitutor(): void {\n            this.scanIndex = 0;\n            this.numberCollectionItemsAsPlaceholder = 1;\n            this.collectionItemIndex = 0;\n            this.fieldIdToSubstitute = '';\n            this.startSubstitutionIndex = -1;\n            this.isCollecting = false;\n            this.resolvedFormValues[this.collectionItemIndex] = {};\n        }\n\n        private substitute(): void {\n            if (this.isMatchingPlaceholderPattern() && this.isFieldIdInFormFields()) {\n                this.updateNumberOfCollectionItemsAsPlaceholder();\n                if (this.isFieldIdToSubstituteReferringItself()) {\n                    this.substituteWithEmptyString();\n                } else {\n                    this.substituteFromFormFields();\n                }\n            } else {\n                this.substituteWithEmptyString();\n            }\n            this.isCollecting = false;\n            this.fieldIdToSubstitute = '';\n        }\n\n        private appendOriginalStringIfCollectionItemAsPlaceholder(): void {\n            if (this.collectionItemIndex < this.numberCollectionItemsAsPlaceholder - 1) {\n                this.stringToResolve += PlaceholderSubstitutor.NEW_LINE + this.originalStringToResolve;\n                this.collectionItemIndex += 1;\n                this.resolvedFormValues[this.collectionItemIndex] = {};\n            }\n        }\n\n        private setStartCollecting(): void {\n            this.isCollecting = true;\n            this.startSubstitutionIndex = this.scanIndex;\n        }\n\n        private appendCharacter(): void {\n            this.fieldIdToSubstitute += this.stringToResolve.charAt(this.scanIndex);\n        }\n\n        private isMatchingPlaceholderPattern(): boolean {\n            return !!this.fieldIdToSubstitute.match(PlaceholderSubstitutor.PLACEHOLDER_CONTENT_PATTERN);\n        }\n\n        private isFieldIdInFormFields(): boolean {\n            return this.getFieldValue() !== undefined;\n        }\n\n        private isFieldIdToSubstituteReferringItself(): boolean {\n            const placeholder = PlaceholderSubstitutor.wrapPlaceholder(this.fieldIdToSubstitute);\n            const value = this.getSubstitutionValueOrEmpty();\n            return placeholder === value;\n        }\n\n        private getSubstitutionValueLengthOrZero(): number {\n            return this.pageFormFields[this.fieldIdToSubstitute] ? this.getSubstitutionValueOrEmpty().toString().length : 0;\n        }\n\n        /**\n         * Gets the value from `this` field, which could be any of a number of different types:\n         *   string | number | object | string[] | object[] | maybe others...\n         * @returns The value associated with `this` field.\n         */\n        private getFieldValue(): any {\n            if (this.resolvedFormValues[this.collectionItemIndex][this.fieldIdToSubstitute]) {\n                return this.resolvedFormValues[this.collectionItemIndex][this.fieldIdToSubstitute];\n            } else {\n                const fieldValue = FormValueService.getFieldValue(this.pageFormFields, this.fieldIdToSubstitute, this.collectionItemIndex);\n                this.resolvedFormValues[this.collectionItemIndex][this.fieldIdToSubstitute] = fieldValue;\n                return this.resolvedFormValues[this.collectionItemIndex][this.fieldIdToSubstitute];\n            }\n        }\n\n        private getSubstitutionValueOrEmpty(): string {\n            const fieldValue = this.getFieldValue();\n            return fieldValue ? fieldValue : '';\n        }\n\n        private getNumberOfCollectionItemsIfAny(): number {\n            const fieldIds = this.fieldIdToSubstitute.split('.');\n            let pageFormFieldsClone = FieldsUtils.cloneObject(this.pageFormFields);\n            let numberCollectionItemsAsPlaceholder = 1;\n\n            // tslint:disable-next-line\n            for (let index = 0; index < fieldIds.length; index++) {\n                if (FieldsUtils.isCollection(pageFormFieldsClone)) {\n                    numberCollectionItemsAsPlaceholder = pageFormFieldsClone.length;\n                    break;\n                } else if (pageFormFieldsClone[fieldIds[index]] === undefined) {\n                    break;\n                } else {\n                    pageFormFieldsClone = pageFormFieldsClone[fieldIds[index]];\n                }\n            }\n            return numberCollectionItemsAsPlaceholder;\n        }\n\n        private isStartingPlaceholder(): boolean {\n            return this.stringToResolve.charAt(this.scanIndex) === PlaceholderSubstitutor.STARTING_PLACEHOLDER;\n        }\n\n        private updateNumberOfCollectionItemsAsPlaceholder(): void {\n            if (this.fieldIdToSubstitute.split('.').length > 1) {\n                const newNumber = this.getNumberOfCollectionItemsIfAny();\n                this.numberCollectionItemsAsPlaceholder = Math.max(newNumber, this.numberCollectionItemsAsPlaceholder);\n            }\n        }\n\n        private substituteFromFormFields(): void {\n            this.doSubstitution(this.getSubstitutionValueOrEmpty());\n            this.resetScanIndexAfterSubstitution();\n        }\n\n        private substituteWithEmptyString(): void {\n            this.doSubstitution('');\n            this.scanIndex = this.startSubstitutionIndex;\n        }\n\n        private doSubstitution(value: string): void {\n            const placeholder = PlaceholderSubstitutor.wrapPlaceholder(this.fieldIdToSubstitute);\n            const replacedString = this.stringToResolve.substring(this.startSubstitutionIndex).replace(placeholder, value);\n            this.stringToResolve = this.stringToResolve.substring(0, this.startSubstitutionIndex).concat(replacedString);\n        }\n\n        private resetScanIndexAfterSubstitution(): void {\n            this.scanIndex = this.startSubstitutionIndex + this.getSubstitutionValueLengthOrZero();\n        }\n    }\n}\n","import { Directive, Input, OnDestroy, OnInit } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\nimport { PlaceholderService } from './services/placeholder.service';\nimport { RpxTranslatePipe, RpxTranslationService } from 'rpx-xui-translation';\nimport { skip, Subscription } from 'rxjs';\n\n@Directive({\n  selector: '[ccdLabelSubstitutor]',\n  standalone: false\n})\n/**\n * Checks all labels and substitutes any placholders that reference other fields values.\n */\nexport class LabelSubstitutorDirective implements OnInit, OnDestroy {\n\n  @Input() public caseField: CaseField;\n  @Input() public contextFields: CaseField[] = [];\n  @Input() public formGroup: FormGroup;\n  @Input() public elementsToSubstitute: string[] = ['label', 'hint_text'];\n\n  private initialLabel: string;\n  private initialHintText: string;\n  private languageSubscription: Subscription\n\n  constructor(\n    private readonly fieldsUtils: FieldsUtils,\n    private readonly placeholderService: PlaceholderService,\n    private readonly rpxTranslationPipe: RpxTranslatePipe,\n    private readonly rpxTranslationService: RpxTranslationService\n  ) {}\n\n  public ngOnInit(): void {\n    this.initialLabel = this.caseField.label;\n    this.initialHintText = this.caseField.hint_text;\n    this.noCacheProcessing();\n    this.caseField.originalLabel = this.caseField.originalLabel || this.caseField.label;\n    this.formGroup = this.formGroup || new FormGroup({});\n\n    this.languageSubscription = this.rpxTranslationService.language$.pipe(\n      skip(1)\n    ).subscribe(() => {\n      this.onLanguageChange();\n    });\n\n    this.applySubstitutions();\n  }\n\n  private noCacheProcessing() {\n    // Pattern ensures [NOCACHE] is inside ${...} and has other content (field name)\n    // Must have at least one character before or after [NOCACHE] inside the placeholder\n    const placeholderPattern = /\\$\\{(?:[^}]*\\[NOCACHE\\][^}]+|[^}]+\\[NOCACHE\\][^}]*)\\}/;\n\n    if (this.caseField?.label && placeholderPattern.test(this.caseField.label)) {\n      // Remove [NOCACHE] only when it appears inside ${...} placeholders\n      // This regex matches ${...} and removes [NOCACHE] only within those patterns\n      this.caseField.noCacheLabel = this.caseField.label.replace(/\\$\\{([^}]*)\\[NOCACHE\\]([^}]*)\\}/g, '${$1$2}');\n      this.caseField.label = this.caseField.noCacheLabel;\n    } else if (this.caseField?.noCacheLabel) {\n      if (this.formGroup !== undefined) {\n        this.caseField.label = this.caseField?.noCacheLabel;\n      }\n    }\n  }\n\n  private applySubstitutions(isLanguageChange = false): void {\n    const fields: object = this.getReadOnlyAndFormFields();\n\n    if (this.shouldSubstitute('label')) {\n      this.applyLabelSubstitution(fields, isLanguageChange);\n    }\n    if (this.shouldSubstitute('hint_text')) {\n      this.caseField.hint_text = this.resolvePlaceholders(fields, this.caseField.hint_text);\n    }\n    if (this.shouldSubstitute('value')) {\n      this.caseField.value = this.resolvePlaceholders(fields, this.caseField.value);\n    }\n  }\n\n  private applyLabelSubstitution(fields: object, isLanguageChange: boolean): void {\n    const currentLabel = this.caseField.label;\n    // `originalLabel` stores the label exactly as it came from the server, before any\n    // placeholder values were inserted. That gives us a clean starting point when the user\n    // changes language or returns to the page later.\n    const originalLabel = this.caseField.originalLabel || currentLabel;\n    const substitutedCurrentLabel = this.resolvePlaceholders(fields, currentLabel);\n    const substitutedOriginalLabel = originalLabel === currentLabel\n      ? substitutedCurrentLabel\n      : this.resolvePlaceholders(fields, originalLabel);\n    const substitutedLabel = substitutedCurrentLabel || substitutedOriginalLabel;\n    const hasAnyLabelSubstitution = (currentLabel && currentLabel !== substitutedCurrentLabel)\n      || (originalLabel && originalLabel !== substitutedOriginalLabel);\n\n    if (!hasAnyLabelSubstitution) {\n      // No placeholders were resolved, so keep the current label and allow the render layer\n      // to translate it normally if needed.\n      this.setLabelState(substitutedLabel);\n      return;\n    }\n\n    // Preserve the original template the first time we successfully interpolate it.\n    this.caseField.originalLabel = this.caseField.originalLabel || originalLabel;\n    this.applyTranslatedLabelState(fields, originalLabel, substitutedLabel, isLanguageChange);\n  }\n\n  private applyTranslatedLabelState(\n    fields: object,\n    originalLabel: string,\n    substitutedLabel: string,\n    isLanguageChange: boolean\n  ): void {\n    // Some labels only translate correctly if we translate the template first and then\n    // substitute the helper values into the translated sentence.\n    const translatedTemplateLabel = this.resolvePlaceholders(\n      fields,\n      isLanguageChange ? this.translateLabelOnLanguageChange(originalLabel) : this.translateLabel(originalLabel)\n    );\n\n    // Other labels only translate correctly if we first resolve the English phrase and let\n    // the render layer translate that final resolved string.\n    const translatedResolvedLabel = isLanguageChange\n      ? this.translateLabelOnLanguageChange(substitutedLabel)\n      : this.translateLabel(substitutedLabel);\n    const languageIsWelsh = this.rpxTranslationService.language === 'cy';\n    const hasResolvedWelshTranslation = languageIsWelsh\n      && translatedResolvedLabel\n      && translatedResolvedLabel !== substitutedLabel;\n    const hasTemplateWelshTranslation = languageIsWelsh\n      && translatedTemplateLabel\n      && translatedTemplateLabel !== substitutedLabel;\n\n    if (hasResolvedWelshTranslation) {\n      // Keep the resolved English label and mark it as not yet translated so the field\n      // template can run `rpxTranslate` on the full phrase at render time.\n      this.setLabelState(substitutedLabel);\n      return;\n    }\n\n    if (hasTemplateWelshTranslation) {\n      // Use the template-translated result when translating the fully resolved label does\n      // not improve the Welsh output.\n      this.setLabelState(translatedTemplateLabel, true);\n      return;\n    }\n\n    // English, untranslated Welsh, or labels whose translation is handled elsewhere.\n    this.setLabelState(substitutedLabel);\n  }\n\n  private translateLabel(label: string): string {\n    return this.rpxTranslationPipe.transform(label);\n  }\n\n  private translateLabelOnLanguageChange(label: string): string {\n    return this.rpxTranslationService.language === 'en'\n      ? label\n      : this.translateLabel(label);\n  }\n\n  private setLabelState(label: string, isTranslated = false): void {\n    this.caseField.label = label;\n    this.caseField.isTranslated = isTranslated;\n  }\n\n  private onLanguageChange(): void {\n    this.resetToInitialValues(true);\n    this.applySubstitutions(true);\n  }\n\n  private resetToInitialValues(isLanguageChange = false): void {\n    if (isLanguageChange && this.caseField?.originalLabel) {\n      this.caseField.label = this.caseField.originalLabel;\n    }\n    if (!isLanguageChange && this.initialLabel) {\n      this.caseField.label = this.initialLabel;\n    }\n    if (this.initialHintText) {\n      this.caseField.hint_text = this.initialHintText;\n    }\n\n    // Check if isTranslated is a property on caseField before setting it\n    if (this.caseField) {\n      this.caseField.isTranslated = false;\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.resetToInitialValues();\n    if (this.languageSubscription) {\n      this.languageSubscription.unsubscribe();\n    }\n  }\n\n  private shouldSubstitute(element: string): boolean {\n    return this.elementsToSubstitute.find(e => e === element) !== undefined;\n  }\n\n  private getReadOnlyAndFormFields(): object {\n    const formFields: object = this.getFormFieldsValuesIncludingDisabled();\n    // TODO: Delete following line when @Input contextFields is fixed - https://tools.hmcts.net/jira/browse/RDM-3504\n    const uniqueContextFields: CaseField[] = this.removeDuplicates(this.contextFields);\n    return this.fieldsUtils.mergeLabelCaseFieldsAndFormFields(uniqueContextFields, formFields);\n  }\n\n  private removeDuplicates(original: CaseField[]): CaseField[] {\n    const unique: CaseField[] = [];\n    original.forEach(caseField => {\n      const isUnique = unique.filter(e => e.id === caseField.id).length === 0;\n      if (isUnique) {\n        unique.push(caseField);\n      }\n    });\n    return unique;\n  }\n\n  private getFormFieldsValuesIncludingDisabled(): object {\n    return this.formGroup.getRawValue();\n  }\n\n  private resolvePlaceholders(fields: object, stringToResolve: string): string {\n    return this.placeholderService.resolvePlaceholders(fields, stringToResolve);\n  }\n}\n","import { CurrencyPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\nimport { LabelSubstitutorDirective } from './label-substitutor.directive';\n\n@NgModule({\n  declarations: [\n    LabelSubstitutorDirective\n  ],\n  exports: [\n    LabelSubstitutorDirective\n  ],\n  providers: [\n    FieldsUtils,\n    CurrencyPipe,\n  ]\n})\nexport class LabelSubstitutorModule {}\n","import { AfterContentInit, Directive, ElementRef, Renderer2 } from '@angular/core';\n\n@Directive({\n  selector: '[focusElement]',\n  standalone: false\n})\n/**\n * Focuses the host element after the content of the view has been initialised. Works on writable fields. If the\n * directive is used on more than one element, the last element to be initialised will be in focus.\n * NOTE:\n * The directive focuses on the element only for the very first time when the content into the component's view, the\n * view that the directive is in is initialised. Refocusing the element will require explicit focusing for e.g. by\n * calling this directives focus() method from the host component.\n */\nexport class FocusElementDirective implements AfterContentInit {\n\n  constructor(private readonly el: ElementRef, private readonly renderer: Renderer2) {\n  }\n\n  public ngAfterContentInit(): void {\n    this.focus();\n  }\n\n  public focus(): void {\n    if (this.el.nativeElement) {\n      const focusElement = this.renderer.selectRootElement(this.el.nativeElement, true);\n      if (focusElement) {\n        focusElement.focus();\n      }\n    }\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { FocusElementDirective } from './focus-element.directive';\n\n@NgModule({\n  declarations: [\n    FocusElementDirective\n  ],\n  exports: [\n    FocusElementDirective\n  ]\n})\nexport class FocusElementModule {\n}\n","import {\n  Directive,\n  Input,\n  OnDestroy,\n  OnInit,\n  TemplateRef,\n  ViewContainerRef\n} from '@angular/core';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { Subscription } from 'rxjs';\n\n/**\n * @directive TranslatedMarkdownDirective\n *\n * @description\n * Structural directive that emits language-appropriate markdown content based on the user's UI language.\n * It is designed for service-supplied content that optionally includes a Welsh (`markdown_cy`) version.\n *\n * The directive:\n * - Emits `markdown_cy` if the UI language is Welsh and the field exists\n * - Emits `markdown` otherwise (no translation is applied within the directive)\n * - Leaves it up to the consuming template to apply fallback translation (e.g. via `rpxTranslate`)\n *\n * This allows cleaner templates and better separation of content choice vs. translation logic.\n *\n * @usage\n * ```html\n * <div *ngFor=\"let qq of qualifyingQuestions\">\n *   <ng-container *translatedMarkdown=\"qq; let content\">\n *     <markdown [data]=\"qq ? content : (qq.markdown | rpxTranslate)\"></markdown>\n *   </ng-container>\n * </div>\n * ```\n *\n * @input dataItem - An object expected to contain:\n * - `markdown` (string): the default English content\n * - `markdown_cy` (string | optional): the Welsh version of the content\n * - Any additional metadata used in context\n *\n * @example\n * // --- LaunchDarkly JSON format ---\n * {\n *   \"UNSPEC_CLAIM\": [\n *     {\n *       \"name\": \"Raise a query\",\n *       \"url\": \"http://...\",\n *       \"markdown\": \"### Raise a query\\nUse this to raise a new query.\",\n *       \"markdown_cy\": \"### Codwch ymholiad\\nDefnyddiwch hwn i godi ymholiad newydd.\"\n *     }\n *   ]\n * }\n *\n * // --- Input object in component after processing ---\n * const dataItem = {\n *   name: 'Raise a query',\n *   url: 'http://...',\n *   markdown: '### Raise a query\\nUse this to raise a new query.',\n *   markdown_cy: '### Codwch ymholiad\\nDefnyddiwch hwn i godi ymholiad newydd.'\n * };\n *\n * // --- Template usage ---\n * <ng-container *translatedMarkdown=\"dataItem; let content\">\n *   <markdown [data]=\"dataItem ? content : (dataItem.markdown | rpxTranslate)\"></markdown>\n * </ng-container>\n */\n\n/**\n * @directive TranslatedMarkdownDirective\n *\n * Renders Welsh markdown (`markdown_cy`) if the UI language is Welsh,\n * otherwise uses English (`markdown`). Reactively updates when the language changes.\n */\n@Directive({\n  selector: '[translatedMarkdown]',\n  standalone: false\n})\nexport class TranslatedMarkdownDirective implements OnInit, OnDestroy {\n  @Input('translatedMarkdown') dataItem: any;\n\n  private subscription: Subscription;\n\n  constructor(\n    private viewContainer: ViewContainerRef,\n    private templateRef: TemplateRef<any>,\n    private translationService: RpxTranslationService\n  ) {}\n\n  ngOnInit(): void {\n    this.subscription = this.translationService.language$.subscribe((lang) => {\n      const isWelsh = lang === 'cy';\n      const content =\n        isWelsh && this.dataItem?.markdown_cy\n          ? this.dataItem.markdown_cy\n          : this.dataItem?.markdown ?? '';\n\n      this.viewContainer.clear();\n      this.viewContainer.createEmbeddedView(this.templateRef, {\n        $implicit: content,\n        translatedMarkdown: this.dataItem\n      });\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.subscription?.unsubscribe();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { TranslatedMarkdownDirective } from './welsh-translated-markdown.directive';\n\n@NgModule({\n  declarations: [\n    TranslatedMarkdownDirective\n  ],\n  exports: [\n    TranslatedMarkdownDirective\n  ]\n})\nexport class TranslatedMarkdownModule {}\n","export enum AddressType {\n    DPA = 'DPA',\n    UK = 'United Kingdom',\n    RD06 = 'RD06'\n}\n","export enum CountryLanguage {\n    EN = 'United Kingdom',\n    CY = 'Deyrnas Unedig',\n}\n","import { AddressModel } from '../../domain/addresses/address.model';\nimport { AddressType } from './address-type.enum';\nimport { CountryLanguage } from './country-language.enum';\n\n/**\n * Moving all this logic here into Address Parser class, so that it\n * will be easier for us when we move this parsing logic to into\n * `Shim` java service.\n */\n export class AddressParser {\n  public parse(address: any) {\n    const classification = `${address.CLASSIFICATION_CODE}`;\n    const addressModel = new AddressModel();\n    addressModel.AddressLine1 = this.parseAddressLine1(classification, address);\n    addressModel.AddressLine2 = this.parseAddressLine2(classification, address);\n    addressModel.AddressLine3 = this.parseAddressLine3(classification, address);\n    addressModel.PostCode = address.POSTCODE;\n    addressModel.PostTown = address.POST_TOWN;\n    addressModel.Country = (address.LANGUAGE?.toUpperCase() === 'CY' && address.COUNTRY_CODE?.toUpperCase() === 'W') ? CountryLanguage.CY : CountryLanguage.EN;\n    return addressModel;\n  }\n\n  private parseAddressLine1(classification: string, address: any) {\n    let addressLine;\n    if (classification === AddressType.RD06) {\n      addressLine =\n        `${address.SUB_BUILDING_NAME} ${address.ORGANISATION_NAME} ${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;\n    } else {\n      addressLine =\n        `${address.ORGANISATION_NAME}${this.prefixWithCommaIfPresent(address.BUILDING_NAME)}` +\n        `${address.DEPARTMENT_NAME} ${address.PO_BOX_NUMBER}`;\n    }\n    return this.removeNonAddressValues(addressLine);\n  }\n\n  private parseAddressLine2(classification: string, address: any) {\n    let addressLine;\n    if (classification === AddressType.RD06) {\n      addressLine = `${address.BUILDING_NAME} `;\n    } else {\n      addressLine =\n        `${address.SUB_BUILDING_NAME} ${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;\n    }\n    return this.removeNonAddressValues(addressLine);\n  }\n\n  private parseAddressLine3(classification: string, address: any) {\n    let addressLine;\n    if (classification === AddressType.RD06) {\n      addressLine =\n        `${address.BUILDING_NUMBER} ${address.THOROUGHFARE_NAME}`;\n    } else {\n      addressLine =\n        `${address.DEPENDENT_LOCALITY} ${address.DOUBLE_DEPENDENT_LOCALITY} ${address.DEPENDENT_THOROUGHFARE_NAME}`;\n    }\n    return this.removeNonAddressValues(addressLine);\n  }\n\n  private removeNonAddressValues(line: string) {\n    line = line.replace(' null', ' ').replace('null ', ' ');\n    line = this.removeUndefinedString(line);\n    line = this.removeInitialComma(line);\n    line = this.removeEmptySpaces(line);\n    return line;\n  }\n\n  private removeUndefinedString(value: string) {\n    return value.replace(new RegExp('undefined', 'gi'), '');\n  }\n\n  private removeEmptySpaces(value: string) {\n    return value.replace(new RegExp(' +', 'gi'), ' ').trim();\n  }\n\n  private removeInitialComma(value: string) {\n    return value.replace(new RegExp('^,', 'gi'), '');\n  }\n\n  private prefixWithCommaIfPresent(value: string) {\n    return value ? `, ${value}` : value;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { AddressModel } from '../../domain/addresses';\nimport { HttpService } from '../http';\nimport { AddressParser } from './address-parser';\nimport { AddressType } from './address-type.enum';\n\n@Injectable()\nexport class AddressesService {\n\n  private mandatoryError: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n  constructor(private readonly http: HttpService, private readonly appConfig: AbstractAppConfig) {\n  }\n\n  public getAddressesForPostcode(postcode: string): Observable<AddressModel[]> {\n    return this.http\n      .get(this.appConfig.getPostcodeLookupUrl()\n        .replace('${postcode}', postcode), undefined, false)\n      .pipe(\n        map(res => res.results))\n      .pipe(\n        map(output => output.map(addresses =>\n          this.format(new AddressParser().parse(addresses[AddressType.DPA]))\n        ))\n      );\n  }\n\n  public getMandatoryError(): Observable<boolean> {\n    return this.mandatoryError.asObservable();\n  }\n\n  public setMandatoryError(value: boolean): void {\n    this.mandatoryError.next(value);\n  }\n\n  private format(addressModel: AddressModel) {\n    return this.formatAddressLines(this.shiftAddressLinesUp(addressModel));\n  }\n\n  private formatAddressLines(addressModel: AddressModel) {\n    ['AddressLine1', 'AddressLine2', 'AddressLine3', 'PostTown'].forEach(value => {\n      addressModel[value] = this.toCapitalCase(addressModel[value]);\n    });\n    return addressModel;\n  }\n\n  private shiftAddressLinesUp(addressModel: AddressModel) {\n    if (addressModel.AddressLine2 === '') {\n      addressModel.AddressLine2 = addressModel.AddressLine3;\n      addressModel.AddressLine3 = '';\n    }\n    if (addressModel.AddressLine1 === '') {\n      addressModel.AddressLine1 = addressModel.AddressLine2;\n      addressModel.AddressLine2 = '';\n    }\n    return addressModel;\n  }\n\n  private toCapitalCase(sentence: string) {\n    sentence = sentence.toLowerCase();\n    sentence.split(' ').forEach((value, index) => {\n        sentence = sentence.replace(value, value.charAt(0).toUpperCase() + value.substr(1));\n      }\n    );\n    return sentence;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { categoriesAndDocumentsTestData } from '../../components/palette/case-file-view/test-data/categories-and-documents-test-data';\nimport { CategoriesAndDocuments } from '../../domain/case-file-view';\nimport { HttpService } from '../http';\n\n@Injectable()\nexport class CaseFileViewService {\n  constructor(\n    private readonly http: HttpService,\n    private readonly appConfig: AbstractAppConfig\n  ) { }\n\n  /**\n   * Retrieves the categories and documents for a case.\n   *\n   * @param caseRef 16-digit Case Reference number of the case\n   * @returns An `Observable` of the `CategoriesAndDocuments` for the case\n   */\n  public getCategoriesAndDocuments(caseRef: string): Observable<CategoriesAndDocuments> {\n    let url = this.appConfig.getCategoriesAndDocumentsUrl();\n\n    if (url) {\n      url += `/${caseRef}`;\n\n      return this.http.get(url, {observe: 'body'});\n    }\n\n    return of(null);\n  }\n\n  public updateDocumentCategory(caseRef: string,\n                                caseVersion: number,\n                                attributePath: string,\n                                categoryId: string): Observable<CategoriesAndDocuments> {\n    let url = this.appConfig.getDocumentDataUrl();\n\n    if (url) {\n      url += `/${caseRef}`;\n      const body = {\n        case_version: caseVersion,\n        attribute_path: attributePath,\n        category_id: categoryId\n      };\n\n      return this.http.put(url, body, {observe: 'body'});\n    }\n\n    return of(null);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of, throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { FlagType, HmctsServiceDetail } from '../../domain/case-flag';\nimport { HttpService } from '../http';\nimport { RefdataCaseFlagType } from './refdata-case-flag-type.enum';\n\n@Injectable()\nexport class CaseFlagRefdataService {\n  constructor(\n    private readonly http: HttpService,\n    private readonly appConfig: AbstractAppConfig\n  ) { }\n\n  /**\n   * Retrieves the Case Flag types for an HMCTS service.\n   *\n   * @param serviceId The HMCTS Service Code for a jurisdiction or service. **Note:** This is _not_ the service name\n   * @param flagType `PARTY` for party-level flags; `CASE` for case-level\n   * @param welshRequired `true` if Welsh language versions of flags are required; `false` otherwise\n   * @param externalFlagsOnly Only flags with the attribute `availableExternally` set to `true` will be returned\n   * @returns An `Observable` of an array of flag types\n   */\n  public getCaseFlagsRefdata(serviceId: string, flagType?: RefdataCaseFlagType, welshRequired?: boolean, externalFlagsOnly?: boolean): Observable<FlagType[]> {\n    let url = this.appConfig.getCaseFlagsRefdataApiUrl();\n    if (url) {\n      url = url.replace(':sid', serviceId);\n      const requestSearchParams = new URLSearchParams();\n      if (flagType) {\n        requestSearchParams.set('flag-type', flagType);\n      }\n      if (typeof welshRequired === 'boolean') {\n        const welshFlagValue = welshRequired ? 'Y' : 'N';\n        requestSearchParams.set('welsh-required', welshFlagValue);\n      }\n      const externalFlagsValue = externalFlagsOnly ? 'Y' : 'N';\n      requestSearchParams.set('available-external-flag', externalFlagsValue);\n      url = `${url}?${requestSearchParams.toString()}`;\n      return this.http\n        .get(url, { observe: 'body' })\n        .pipe(\n          // Reference Data Common API returns a single object with a \"flags\" array, which itself contains a single object\n          // with a \"FlagDetails\" array, which contains a hierarchy of flag types in an object - one each for \"Party\" flags\n          // and \"Case\" flags\n          map((body) => {\n            if (!body || !body.flags || !body.flags.length || !body.flags[0].FlagDetails || !body.flags[0].FlagDetails.length) {\n              // Note: Reference Data Common API appears to respond with a 404 error rather than send an empty response,\n              // so this may be redundant\n              return throwError(new Error('No flag types could be retrieved'));\n            }\n            return body.flags[0].FlagDetails;\n          })\n        );\n    }\n\n    return of(null);\n  }\n\n  /**\n   * Retrieves the HMCTS service details for a jurisdiction or service, including service codes. More than one\n   * service code may be present. For example, the Divorce jurisdiction/service has corresponding service codes of\n   * \"ABA1\" and \"ABA2\".\n   *\n   * @param serviceNames The service name(s) to look up, comma-separated if more than one\n   * @returns An `Observable` of an array of service details\n   */\n  public getHmctsServiceDetailsByServiceName(serviceNames?: string): Observable<HmctsServiceDetail[]> {\n    let url = this.appConfig.getLocationRefApiUrl();\n\n    if (url) {\n      url += '/orgServices';\n      if (serviceNames) {\n        url += `?ccdServiceNames=${serviceNames}`;\n      }\n\n      return this.http.get(url, {observe: 'body'});\n    }\n\n    return of(null);\n  }\n\n  /**\n   * Retrieves the HMCTS service details for a case type, including service code. For example, the\n   * \"FinancialRemedyContested\" case type is associated with the Divorce jurisdiction/service and service code \"ABA2\".\n   *\n   * Note that a case type might not be associated with any service codes of a jurisdiction or service.\n   *\n   * @param caseTypeId The case type ID to look up\n   * @returns An `Observable` of an array of service details\n   */\n  public getHmctsServiceDetailsByCaseType(caseTypeId?: string): Observable<HmctsServiceDetail[]> {\n    let url = this.appConfig.getLocationRefApiUrl();\n\n    if (url) {\n      url += '/orgServices';\n      if (caseTypeId) {\n        url += `?ccdCaseType=${caseTypeId}`;\n      }\n\n      return this.http.get(url, {observe: 'body'});\n    }\n\n    return of(null);\n  }\n}\n","export enum RefdataCaseFlagType {\n  PARTY = 'PARTY',\n  CASE = 'CASE'\n}\n","\nimport { Inject, Injectable, DOCUMENT } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ReadCookieService {\n  private readonly document?: Document;\n\n  constructor(@Inject(DOCUMENT) doc?: any) {\n    this.document = doc as Document;\n  }\n\n  public getCookie(key: string): string {\n    const cookieValue = this.document.cookie\n      .split('; ')\n      .find(row => row.startsWith(`${key}=`))\n      .split('=')[1];\n    return cookieValue;\n  }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { delay } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { DocumentData } from '../../domain/document/document-data.model';\nimport { HttpService } from '../http';\nimport { SessionStorageService } from '../session';\n\n@Injectable()\nexport class DocumentManagementService {\n  private static readonly PDF = 'pdf';\n  private static readonly IMAGE = 'image';\n  private static readonly WORD = 'word';\n  private static readonly EXCEL = 'excel';\n  private static readonly POWERPOINT = 'powerpoint';\n  private static readonly TXT = 'txt';\n  private static readonly RTF = 'rtf';\n  private static readonly HTML_MIME_ALLOWLIST: string[] = ['text/html'];\n  private static readonly HTML_EXTENSION_ALLOWLIST: string[] = ['html'];\n\n  // This delay has been added to give enough time to the user on the UI to see the info messages on the document upload\n  // field for cases when uploads are very fast.\n  private static readonly RESPONSE_DELAY = 1000;\n\n  private static readonly imagesList: string[] = ['GIF', 'JPG', 'JPEG', 'PNG', 'gif', 'jpg', 'jpeg', 'png'];\n  private static readonly wordList: string[] = ['DOC', 'DOCX', 'doc', 'docx'];\n  private static readonly excelList: string[] = ['XLS', 'XLSX', 'xls', 'xlsx'];\n  private static readonly powerpointList: string[] = ['PPT', 'PPTX', 'ppt', 'pptx'];\n\n  private caseTypeId: string;\n  private caseId?: string;\n\n  constructor(\n    private readonly http: HttpService,\n    private readonly appConfig: AbstractAppConfig,\n    private readonly sessionStorageService: SessionStorageService\n  ) {}\n\n  public uploadFile(formData: FormData): Observable<DocumentData> {\n    this.setCaseInfo();\n    const url = this.getDocStoreUrl();\n    // Do not set any headers, such as \"Accept\" or \"Content-Type\", with null values; this is not permitted with the\n    // Angular HttpClient in @angular/common/http. Just create and pass a new HttpHeaders object. Angular will add the\n    // correct headers and values automatically\n    this.appConfig.logMessage(`DMS:: Uploading document || case type: ${this.caseTypeId} || url: ${url} || case id: ${this.caseId}`);\n    const headers = new HttpHeaders();\n    return this.http\n      .post(url, formData, { headers, observe: 'body' })\n      .pipe(delay(DocumentManagementService.RESPONSE_DELAY));\n  }\n\n  public setCaseInfo(): void {\n    const caseInfo = this.parseCaseInfo(this.sessionStorageService.getItem('caseInfo'));\n    const currUrl = this.getCurrentPathname();\n    this.caseTypeId = this.resolveCaseTypeId(caseInfo, currUrl);\n  }\n\n  public getMediaViewerInfo(documentFieldValue: any): string {\n    const resolvedBinaryUrl = this.getDocumentBinaryUrl(documentFieldValue);\n    const resolvedContentType = this.getContentType(documentFieldValue);\n    const mediaViewerInfo = {\n      document_binary_url: resolvedBinaryUrl,\n      document_filename: documentFieldValue.document_filename,\n      content_type: resolvedContentType,\n      annotation_api_url: this.appConfig.getAnnotationApiUrl(),\n      case_id: documentFieldValue.id,\n      case_jurisdiction: documentFieldValue.jurisdiction\n    };\n    return JSON.stringify(mediaViewerInfo);\n  }\n\n  public getDocumentBinaryUrl(documentFieldValue: any): string {\n    if (!documentFieldValue?.document_binary_url) {\n      return '';\n    }\n    return this.transformDocumentUrl(documentFieldValue.document_binary_url);\n  }\n\n  // keep HTML support explicit to avoid opening arbitrary MIME types directly in a browser tab\n  public isHtmlDocument(documentFieldValue: any): boolean {\n    const rawMimeType = documentFieldValue?.content_type;\n    const mimeType = this.normaliseMimeType(rawMimeType);\n    const isAllowedHtmlMime = DocumentManagementService.HTML_MIME_ALLOWLIST.includes(mimeType);\n\n    // Some read paths (e.g. documents rendered via complex table fields) do not provide content_type.\n    // For those, allow a narrow extension-based fallback so known .html legacy files can still open in a new tab.\n    const fileExtension = this.getFileExtension(documentFieldValue?.document_filename);\n    const isAllowedHtmlExtension = !mimeType && DocumentManagementService.HTML_EXTENSION_ALLOWLIST.includes(fileExtension);\n    return isAllowedHtmlMime || isAllowedHtmlExtension;\n  }\n\n  public getContentType(documentFieldValue: any): string {\n    let fileExtension = '<unknown>';\n    if (documentFieldValue.document_filename) {\n      const position = documentFieldValue.document_filename.lastIndexOf('.');\n      if (position === documentFieldValue.document_filename.length) {\n        fileExtension = '';\n      } else if (position >= 0) {\n        fileExtension = documentFieldValue.document_filename.slice(position + 1);\n      }\n    }\n    if (this.isImage(fileExtension)) {\n      return DocumentManagementService.IMAGE;\n    } else if (this.isWord(fileExtension)) {\n      return DocumentManagementService.WORD;\n    } else if (this.isExcel(fileExtension)) {\n      return DocumentManagementService.EXCEL;\n    } else if (this.isPowerpoint(fileExtension)) {\n      return DocumentManagementService.POWERPOINT;\n    } else if (fileExtension.toLowerCase() === 'txt') {\n      return DocumentManagementService.TXT;\n    } else if (fileExtension.toLowerCase() === 'rtf') {\n      return DocumentManagementService.RTF;\n    } else if (fileExtension.toLowerCase() === 'pdf') {\n      return DocumentManagementService.PDF;\n    } else {\n      return fileExtension;\n    }\n  }\n\n  public isImage(imageType: string): boolean {\n    return DocumentManagementService.imagesList.find(e => e === imageType) !== undefined;\n  }\n\n  public isWord(wordType: string): boolean {\n    return DocumentManagementService.wordList.find(e => e === wordType) !== undefined;\n  }\n\n  public isExcel(excelType: string): boolean {\n    return DocumentManagementService.excelList.find(e => e === excelType) !== undefined;\n  }\n\n  public isPowerpoint(powerpointType: string): boolean {\n    return DocumentManagementService.powerpointList.find(e => e === powerpointType) !== undefined;\n  }\n\n  public parseCaseInfo(caseInfo: string | null): { caseType?: string, caseId?: string, jurisdiction?: string } | null {\n    if (!caseInfo) {\n      return null;\n    }\n    try {\n      return JSON.parse(caseInfo);\n    } catch (error) {\n      this.appConfig.logMessage('Failed to parse caseInfo from session storage');\n      return null;\n    }\n  }\n\n  private getCurrentPathname(): string {\n    if (typeof window === 'undefined' || !window.location) {\n      return '';\n    }\n    return window.location.pathname || '';\n  }\n\n  private resolveCaseTypeId(\n    caseInfo: { caseType?: string, caseId?: string } | null,\n    currUrl: string\n  ): string {\n    const caseTypeIdFromSession = caseInfo?.caseType;\n    let caseType = '';\n    if (caseTypeIdFromSession) {\n      this.caseId = caseInfo?.caseId;\n      caseType = caseTypeIdFromSession;\n    }\n    const parts = currUrl.split('/');\n    if ((currUrl.includes('/case-details/') && parts.length > 4) && caseType === '') {\n      caseType = parts[4];\n    }\n    const caseCreateIndex = parts.indexOf('case-create');\n    if (currUrl.includes('/case-create/') && caseCreateIndex > -1 && parts.length > caseCreateIndex + 2) {\n      caseType = parts[caseCreateIndex + 2];\n    }\n\n    return caseType;\n  }\n\n  private transformDocumentUrl(documentBinaryUrl: string): string {\n    const remoteHrsPattern = new RegExp(this.appConfig.getRemoteHrsUrl());\n    documentBinaryUrl = documentBinaryUrl.replace(remoteHrsPattern, this.appConfig.getHrsUrl());\n    const remoteDocumentManagementPattern = new RegExp(this.appConfig.getRemoteDocumentManagementUrl());\n    return documentBinaryUrl.replace(remoteDocumentManagementPattern, this.getDocStoreUrl());\n  }\n\n  private normaliseMimeType(contentType: string): string {\n    if (!contentType) {\n      return '';\n    }\n    return contentType.split(';')[0].trim().toLowerCase();\n  }\n\n  private getFileExtension(fileName: string): string {\n    if (!fileName) {\n      return '';\n    }\n    const dotIndex = fileName.lastIndexOf('.');\n    if (dotIndex < 0 || dotIndex === fileName.length - 1) {\n      return '';\n    }\n    return fileName.slice(dotIndex + 1).trim().toLowerCase();\n  }\n\n  private getDocStoreUrl(): string {\n    this.setCaseInfo();\n    if (this.isDocumentSecureModeEnabled()) {\n      return this.appConfig.getDocumentManagementUrlV2();\n    }\n    return this.appConfig.getDocumentManagementUrl();\n  }\n\n  // return false == document should not use CDAM\n  // return true == document should use CDAM\n  public isDocumentSecureModeEnabled(): boolean {\n    this.setCaseInfo();\n    const documentSecureModeCaseTypeExclusions = this.appConfig.getCdamExclusionList()?.split(',');\n    const isDocumentOnExclusionList = documentSecureModeCaseTypeExclusions?.includes(this.caseTypeId);\n    if (!isDocumentOnExclusionList){\n      return true;\n    }\n    // if documentSecureModeEnabled is true, and case is in the exclusion list, return false\n    return false;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable()\nexport class ErrorNotifierService {\n  public errorSource:  Subject<any> = new BehaviorSubject(null);\n  public error = this.errorSource.asObservable();\n\n  public announceError(error: any) {\n    this.errorSource.next(error);\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class EventStatusService {\n  public static readonly CALLBACK_STATUS_INCOMPLETE = 'INCOMPLETE_CALLBACK';\n  public static readonly DELETE_DRAFT_STATUS_INCOMPLETE = 'INCOMPLETE_DELETE_DRAFT';\n  public static readonly CALLBACK_STATUS_COMPLETE = 'CALLBACK_COMPLETED';\n  public static readonly DELETE_DRAFT_STATUS_COMPLETE = 'DELETE_DRAFT_COMPLETED';\n\n  public static isIncomplete (eventStatus: string) {\n    if (!eventStatus) {\n      return false;\n    }\n    return EventStatusService.CALLBACK_STATUS_INCOMPLETE === eventStatus\n      || EventStatusService.DELETE_DRAFT_STATUS_INCOMPLETE === eventStatus;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\n\n@Injectable()\nexport class FormErrorService {\n\n  public mapFieldErrors(errors: { id: string; message: string }[], form: FormGroup, errorKey: string): void {\n\n    errors.forEach(error => {\n      const formControl = this.getFormControl(form, error.id);\n\n      if (formControl) {\n        formControl.setErrors({\n          [errorKey]: error.message\n        });\n      }\n    });\n  }\n\n  private getFormControl(form: FormGroup, fieldId: string): FormControl {\n    const fields = fieldId.split('.');\n\n    let group: FormGroup = form;\n    let inArray = false;\n    let control: FormControl;\n    fields.every((field, index) => {\n      if (index === fields.length - 1) {\n        control = group.controls[field] as FormControl;\n      } else {\n        group = group.controls[field] as FormGroup;\n\n        if (inArray && group.controls['value']) {\n          group = group.controls['value'] as FormGroup;\n        }\n\n        if (group && group.constructor && FormArray.name === group.constructor.name) {\n          inArray = true;\n        } else {\n          inArray = false;\n        }\n      }\n      return !!group;\n    });\n\n    return control;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Journey, JourneyInstigator } from '../../domain';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MultipageComponentStateService {\n  //is journey at start will help keep track of the progress through the journey.\n  private isJourneyAtStart: boolean = false;\n  //journey collection references an upto date list of all the journey components currently rendered!!!!\n  private journeyCollection: Journey[] = new Array<Journey>();\n  //the instigator references the case-edit-page component that will invoke the next and previous methods\n  private instigator: JourneyInstigator | null = null;\n  //each journey will store its state here. this could include form data if needed\n  private readonly journeyState: Map<string, Journey> = new Map<string, Journey>();\n\n  //setJourneyComponent will be called by the app component to update the journey collection\n  setJourneyCollection(journeyCollection: Journey[]): void {\n    this.journeyCollection = journeyCollection;\n  }\n\n  //getJourneyCollection will be called by the app component to get the journey collection\n  getJourneyCollection(): Journey[] {\n    return this.journeyCollection;\n  }\n\n  //addToJourneyCollection will be called from the journey\n  addTojourneyCollection(journey: Journey): void {\n    this.journeyCollection.push(journey);\n  }\n\n  //resetJourneyCollection will be called\n  resetJourneyCollection(): void {\n    this.journeyCollection = [];\n  }\n\n  //setInstigator will be called by the app component to update the instigator\n  setInstigator(instigator: JourneyInstigator): void {\n    this.instigator = instigator;\n  }\n\n  //getInstigator will be called by the app component to get the instigator\n  getInstigator(): JourneyInstigator | null {\n    return this.instigator;\n  }\n\n  //setJourneyState will be called by the journey component to update the journey state\n  setJourneyState(journey: Journey): void {\n    this.journeyState.set(journey.journeyId, journey);\n  }\n\n  //getJourneyState will be called by the journey component to get the journey state\n  getJourneyState(journey: Journey): Journey | null {\n    return this.journeyState.get(journey.journeyId) || null;\n  }\n\n  //resetJourneyState will be called by the journey component to reset the journey state\n  resetJourneyState(): void {\n    this.journeyState.clear();\n  }\n\n  getJourneyCollectionMainObject(): Journey {\n    return this.journeyCollection[0];\n  }\n\n  //reset will be called to ensure that the entire state is reset\n  reset(): void {\n    this.isJourneyAtStart = false;\n    this.journeyState.clear();\n    this.instigator = null;\n    this.journeyCollection = [];\n  }\n\n  //next will be called by the instigator that will invoke the next method of the journey component that will invoke the next method of the childpage component\n  public next(): void {\n    if (this.journeyCollection.length <= 0) {\n      this.instigator?.onFinalNext();\n      return;\n    }\n\n    const isAnyObjectNotFinished: boolean = this.journeyCollection.some((journey) => !journey.isFinished());\n\n    if (!isAnyObjectNotFinished) {\n      this.instigator?.onFinalNext();\n      return;\n    }\n\n    for (const journey of this.journeyCollection) {\n      if (!journey) {\n        continue;\n      }\n\n      if (!journey?.isFinished()) {\n        journey?.next();\n        break;\n      }\n    }\n  }\n\n  //previous will be called by the instigator that will invoke the previous method of the journey component that will invoke the previous method of the childpage component\n  public previous(): void {\n    if (this.journeyCollection.length <= 0) {\n      this.instigator?.onFinalPrevious();\n      return;\n    }\n\n    const isAnyObjectNotAtStart: boolean = this.journeyCollection.some((journey) => !journey.isStart());\n    if (!isAnyObjectNotAtStart) {\n      this.instigator?.onFinalPrevious();\n      return;\n    }\n\n    for (const journey of this.journeyCollection.slice().reverse()) {\n      if (!journey) {\n        continue;\n      }\n      if (!journey?.isStart()) {\n        journey?.previous();\n        break;\n      }\n    }\n  }\n\n  //isAtStart can be used to inform the instigator if we're at the start.\n  public get isAtStart(): boolean {\n    return this.isJourneyAtStart;\n  }\n\n  //isAtStart can be used to update the value from a journey object, so the instigator knows.\n  public set isAtStart(isAtStart: boolean) {\n    this.isJourneyAtStart = isAtStart;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { Jurisdiction } from '../../domain/definition/jurisdiction.model';\nimport { JudicialUserModel } from '../../domain/jurisdiction';\nimport { HttpService } from '../http';\n\n@Injectable()\nexport class JurisdictionService {\n  // We retain the Subject observable because subscribing code couldn't happen a null value\n  public readonly selectedJurisdictionSource = new Subject<Jurisdiction>();\n  private readonly _selectedJurisdictionBS = new BehaviorSubject<Jurisdiction>(null);\n  public readonly selectedJurisdiction: Observable<Jurisdiction>;\n\n  constructor(private readonly httpService: HttpService) {\n    this.selectedJurisdiction = this.selectedJurisdictionSource.asObservable();\n  }\n\n  public getJurisdictions(): Observable<Jurisdiction[]> {\n    return this.httpService.get('/aggregated/caseworkers/:uid/jurisdictions?access=read');\n  }\n\n  public announceSelectedJurisdiction(jurisdiction: Jurisdiction): void {\n    this.selectedJurisdictionSource.next(jurisdiction);\n    this._selectedJurisdictionBS.next(jurisdiction);\n  }\n\n  public getSelectedJurisdiction(): BehaviorSubject<Jurisdiction> {\n    return this._selectedJurisdictionBS;\n  }\n\n  public searchJudicialUsers(searchTerm: string, serviceId: string): Observable<JudicialUserModel[]> {\n    return this.httpService.post('api/prd/judicial/getJudicialUsersSearch', { searchString: searchTerm, serviceCode: serviceId });\n  }\n\n  public searchJudicialUsersByPersonalCodes(personalCodes: string[]): Observable<JudicialUserModel[]> {\n    return this.httpService.post('api/prd/judicial/searchJudicialUserByPersonalCodes', { personal_code: personalCodes });\n  }\n}\n","import { HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { Banner } from '../../domain/definition/banner.model';\nimport { HttpService } from '../http/http.service';\n\n@Injectable()\nexport class BannersService {\n  public static readonly V2_MEDIATYPE_BANNERS = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-banners.v2+json;charset=UTF-8';\n\n  constructor(private readonly httpService: HttpService, private readonly appConfig: AbstractAppConfig) {\n  }\n\n  public getBanners(jurisdictionReferences: string[]): Observable<Banner[]> {\n    const url = this.appConfig.getBannersUrl();\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', BannersService.V2_MEDIATYPE_BANNERS)\n      .set('Content-Type', 'application/json');\n    let params = new HttpParams();\n    jurisdictionReferences.forEach(reference => params = params.append('ids', reference));\n    return this.httpService\n      .get(url, {params, headers, observe: 'body'})\n      .pipe(\n        map(body => body.banners)\n      );\n  }\n}\n","export enum NavigationOrigin {\n  DRAFT_DELETED,\n  ERROR_DELETING_DRAFT,\n  DRAFT_RESUMED,\n  EVENT_TRIGGERED,\n  NO_READ_ACCESS_REDIRECTION\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class NavigationNotifierService {\n  public navigationSource: BehaviorSubject<any> = new BehaviorSubject<any>({});\n  public navigation = this.navigationSource.asObservable();\n\n  public announceNavigation(origin: any) {\n    this.navigationSource.next(origin);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Orderable } from '../../domain/order/orderable.model';\n\n// @dynamic\n@Injectable()\nexport class OrderService {\n\n  /**\n   * Use `sort` function instead or `compareAsc`\n   */\n  private static readonly DEFAULT_COMPARE_FUNCTION = (a: Orderable, b: Orderable) => {\n    const aOrdered = a.order === 0 || a.order;\n    const bOrdered = b.order === 0 || b.order;\n\n    if (!aOrdered) {\n      return !bOrdered ? 0 : 1;\n    }\n\n    if (!bOrdered) {\n      return -1;\n    }\n\n    return a.order - b.order;\n  }\n\n  public sortAsc: (a:Orderable, b:Orderable)=> number = OrderService.DEFAULT_COMPARE_FUNCTION;\n  /**\n   * Clone and sort array. Ascending order used by default.\n   *\n   * @param array Array to sort\n   * @returns Orderable[] Sorted clone array.\n   */\n  public sort<T extends Orderable>(array: T[], sortingFunction = this.sortAsc): T[] {\n    return array\n      .slice()\n      .sort(sortingFunction);\n  }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { Profile } from '../../domain/profile/profile.model';\nimport { HttpService } from '../http/http.service';\n\n@Injectable()\nexport class ProfileService {\n\n  public static readonly V2_MEDIATYPE_USER_PROFILE =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-user-profile.v2+json;charset=UTF-8';\n  private static readonly URL = '/internal/profile';\n\n  constructor(private readonly httpService: HttpService, private readonly appConfig: AbstractAppConfig) {}\n\n  public get(): Observable<Profile> {\n    const url = this.appConfig.getCaseDataUrl() + ProfileService.URL;\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', ProfileService.V2_MEDIATYPE_USER_PROFILE)\n      .set('Content-Type', 'application/json');\n    // Not adding client context header because header is added to call immediately afterwards\n    return this.httpService\n      .get(url, {headers, observe: 'body'})\n      .pipe(\n        map((p: object) => plainToClass(Profile, p))\n      );\n  }\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { Profile } from '../../domain/profile/profile.model';\n\n@Injectable()\nexport class ProfileNotifier {\n  public readonly profileSource: BehaviorSubject<Profile> = new BehaviorSubject<Profile>(new Profile());\n  public profile = this.profileSource.asObservable();\n\n  public announceProfile(profile: Profile) {\n    this.profileSource.next(profile);\n  }\n\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\nimport { OptionsType } from '..';\n\n@Injectable()\nexport class RequestOptionsBuilder {\n\n    public static readonly FIELD_PREFIX = 'case.';\n\n    /**\n     * Assess the value to see if it should be included in the request options.\n     * If it's null or an \"empty\" string, it shouldn't be.\n     *\n     * @param value The value to be assessed.\n     */\n    private static includeParam(value: any): boolean {\n      /* istanbul ignore else */\n      if (value) {\n        /* istanbul ignore else */\n        if (typeof(value) === 'string') {\n          return value.trim().length > 0;\n        }\n        return true;\n      }\n      return false;\n    }\n\n    public buildOptions(metaCriteria: object, caseCriteria: object, view?: SearchView): OptionsType {\n      // TODO: This should probably be the now built-in URLSearchParams but it\n      // requires a bigger refactor and there are bigger fish to fry right now.\n      let params = new HttpParams();\n\n      /* istanbul ignore else */\n      if (view) {\n        params = params.set('view', view);\n      }\n\n      /* istanbul ignore else */\n      if (metaCriteria) {\n        for (const criterion of Object.keys(metaCriteria)) {\n          // EUI-3490. Make sure the parameter should be included for adding it.\n          // This was already handled by the old URLSearchParams mechanism.\n          if (RequestOptionsBuilder.includeParam(metaCriteria[criterion])) {\n            params = params.set(criterion, metaCriteria[criterion]);\n          }\n        }\n      }\n\n      /* istanbul ignore else */\n      if (caseCriteria) {\n        for (const criterion of Object.keys(caseCriteria)) {\n          /* istanbul ignore else */\n          if (RequestOptionsBuilder.includeParam(caseCriteria[criterion])) {\n            const key = RequestOptionsBuilder.FIELD_PREFIX + criterion;\n            const value = caseCriteria[criterion].trim ? caseCriteria[criterion].trim() : caseCriteria[criterion];\n            params = params.set(key, value.replace(/’/i, `'`));\n          }\n        }\n      }\n\n      const options: OptionsType = { params, observe: 'body'};\n      return options;\n    }\n\n}\n\nexport type SearchView = 'SEARCH' | 'WORKBASKET';\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { finalize, map } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { SearchInput } from '../../components/search-filters';\nimport { SearchResultView } from '../../domain/search/search-result-view.model';\nimport { HttpService, OptionsType } from '../http/http.service';\nimport { LoadingService } from '../loading/loading.service';\nimport { RequestOptionsBuilder, SearchView } from '../request/request.options.builder';\n\n@Injectable()\nexport class SearchService {\n  public static readonly V2_MEDIATYPE_SEARCH_INPUTS =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-search-input-details.v2+json;charset=UTF-8';\n  // public static readonly VIEW_SEARCH = 'SEARCH';\n  public static readonly VIEW_WORKBASKET = 'WORKBASKET';\n  // public static readonly FIELD_PREFIX = 'case.';\n  private currentJurisdiction: string;\n  private currentCaseType: string;\n\n  constructor(private readonly appConfig: AbstractAppConfig,\n              private readonly httpService: HttpService,\n              private readonly requestOptionsBuilder: RequestOptionsBuilder,\n              private readonly loadingService: LoadingService) { }\n\n  public search(jurisdictionId: string,\n                caseTypeId: string,\n                metaCriteria: object,\n                caseCriteria: object,\n                view?: SearchView): Observable<SearchResultView> {\n    const url = `${this.appConfig.getApiUrl()}/caseworkers/:uid/jurisdictions/${jurisdictionId}/case-types/${caseTypeId}/cases`;\n\n    const options: OptionsType  = this.requestOptionsBuilder.buildOptions(metaCriteria, caseCriteria, view);\n    const loadingToken = this.loadingService.register();\n    return this.httpService\n      .get(url, options)\n      .pipe(\n        map(response => response),\n        finalize(() => this.loadingService.unregister(loadingToken))\n      );\n  }\n\n  public searchCasesByIds(caseTypeId: string,\n                          filter: any,\n                          view?: SearchView,\n                          sort?: { column: string; order: number }): Observable<{}> {\n    const url =\n      `${this.appConfig.getCaseDataUrl()}/internal/searchCases?ctid=${caseTypeId}&use_case=${view}`;\n\n    const body: {} = {\n      sort,\n      ...filter,\n      size: this.appConfig.getPaginationPageSize(),\n    };\n    const loadingToken = this.loadingService.register();\n    return this.httpService.post(url, body).pipe(\n      map((response) => response),\n      finalize(() => this.loadingService.unregister(loadingToken))\n    );\n  }\n\n  public searchCases(caseTypeId: string,\n                     metaCriteria: object,\n                     caseCriteria: object,\n                     view?: SearchView,\n                     sort?: {column: string, order: number}): Observable<{}> {\n    const url = `${this.appConfig.getCaseDataUrl()}/internal/searchCases?ctid=${caseTypeId}&use_case=${view}`;\n\n    const options: OptionsType = this.requestOptionsBuilder.buildOptions(metaCriteria, caseCriteria, view);\n    const body: {} = {\n      sort,\n      size: this.appConfig.getPaginationPageSize()\n    };\n    const loadingToken = this.loadingService.register();\n    return this.httpService\n      .post(url, body, options)\n      .pipe(\n        map(response => response),\n        finalize(() => this.loadingService.unregister(loadingToken))\n      );\n  }\n\n  public getSearchInputUrl(caseTypeId: string): string {\n    return `${this.appConfig.getCaseDataUrl()}/internal/case-types/${caseTypeId}/search-inputs`;\n  }\n\n  public getSearchInputs(jurisdictionId: string, caseTypeId: string): Observable<SearchInput[]> {\n    const url = this.getSearchInputUrl(caseTypeId);\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', SearchService.V2_MEDIATYPE_SEARCH_INPUTS)\n      .set('Content-Type', 'application/json');\n    this.currentJurisdiction = jurisdictionId;\n    this.currentCaseType = caseTypeId;\n    return this.httpService\n      .get(url, { headers, observe: 'body' })\n      .pipe(\n        map(body => {\n          const searchInputs = body.searchInputs;\n          if (this.isDataValid(jurisdictionId, caseTypeId)) {\n            searchInputs.forEach(item => {\n              item.field.label = item.label;\n              item.field.display_context_parameter = item.display_context_parameter;\n            });\n          } else {\n            throw new Error('Response expired');\n          }\n          return searchInputs;\n        })\n      );\n  }\n\n  public isDataValid(jurisdictionId: string, caseTypeId: string): boolean {\n    return this.currentJurisdiction === jurisdictionId && this.currentCaseType === caseTypeId;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\n\n@Injectable()\nexport class RouterHelperService {\n  public getUrlSegmentsFromRoot(route: ActivatedRouteSnapshot): string[] {\n    return route.pathFromRoot\n      .filter(r => r.url && r.url.length)\n      .reduce((acc, r) => {\n        r.url.forEach(url => {\n          acc.push(url.path);\n        });\n        return acc;\n      }, []);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, throwError, timer } from 'rxjs';\nimport { delayWhen, finalize, mergeMap, retryWhen, tap, timeout } from 'rxjs/operators';\n\nclass ArtificialDelayContext {\n    private artificialDelayOn = true;\n    private selectedDelay = this.selectActualDelayTime();\n    constructor(\n        private preferredDelay: number\n    ) {\n    }\n    public switchArtificialDelays(status: boolean) {\n        this.artificialDelayOn = status;\n        this.selectedDelay = this.selectActualDelayTime();\n    }\n    public turnOnArtificialDelays() {\n        this.switchArtificialDelays(true);\n    }\n\n    public turnOffArtificialDelays() {\n        this.switchArtificialDelays(false);\n    }\n    public getActualDelay() {\n        return this.artificialDelayOn ? this.selectedDelay : 0;\n    }\n\n    public shouldApplyArtificialDelay() {\n        return this.preferredDelay > 0;\n    }\n\n    private selectActualDelayTime() {\n        return Date.now() % 2 == 0 ? this.preferredDelay : 1;\n    }\n}\n\n@Injectable()\nexport class RetryUtil {\n    public pipeTimeoutMechanismOn<T>(in$: Observable<T>, preferredArtificialDelay: number, timeoutPeriods: number[]): Observable<T> {\n        const artificialDelayContext = new ArtificialDelayContext(preferredArtificialDelay);\n        console.info(`Piping a retry mechanism with timeouts {${timeoutPeriods}}.`);\n        console.info(`Artificial delay will be applied: ${artificialDelayContext.shouldApplyArtificialDelay()}.`);\n\n        let out$ = in$;\n        if (artificialDelayContext.shouldApplyArtificialDelay()) {\n            console.info(`Preferred artificial delay: ${preferredArtificialDelay} seconds. Actual delay selected: ${artificialDelayContext.getActualDelay()}`);\n            out$ = this.pipeArtificialDelayOn(out$, artificialDelayContext);\n        }\n        out$ = this.pipeTimeOutControlOn(out$, timeoutPeriods);\n        out$ = this.pipeRetryMechanismOn(out$, artificialDelayContext);\n        return out$;\n    }\n\n    private pipeTimeOutControlOn<T>(in$: Observable<T>, timeoutPeriods: number[]): Observable<T> {\n        const timeOutAfterSeconds = timeoutPeriods[0];\n        console.info(`Piping timeout control with ${timeOutAfterSeconds} seconds.`);\n        const out$ = in$.pipe(timeout(timeOutAfterSeconds * 1000));\n        return out$;\n    }\n\n    private pipeRetryMechanismOn<T>(in$: Observable<T>, artificialDelayContext: ArtificialDelayContext): Observable<T> {\n        const retryStrategy = (errors) => {\n            return errors.pipe(\n                mergeMap((error: Error, i) => {\n                    console.error(`Mapping error ${error?.name}, ${i}`);\n                    console.error(error);\n                    if (error?.name === 'TimeoutError' && i === 0) {\n                        artificialDelayContext.turnOffArtificialDelays();\n                        console.info('Will retry, after a timeout error.');\n                    }\n                    else {\n                        console.error('Will NOT retry.');\n                        throw error;\n                    }\n                    return timer(0);\n                }),\n                finalize(() => console.log('We are done!')));\n        };\n        const out$ = in$.pipe(retryWhen(retryStrategy));\n        return out$;\n    }\n\n    private pipeArtificialDelayOn<T>(in$: Observable<T>, artificialDelayContext: ArtificialDelayContext): Observable<T> {\n        let out$ = in$.pipe(tap(() => {\n            console.log(`Artificially delaying for ${artificialDelayContext.getActualDelay()} seconds..`);\n        }));\n        out$ = out$.pipe(delayWhen(() => timer(artificialDelayContext.getActualDelay() * 1000)));\n        out$ = out$.pipe(tap(() => {\n            console.log(`Artificially delayed for ${artificialDelayContext.getActualDelay()} seconds..`);\n        }));\n        return out$;\n    }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class WindowService {\n  public locationAssign(url: string): void {\n    window.location.assign(url);\n  }\n\n  public setLocalStorage(key: string, value: string) {\n    window.localStorage.setItem(key, value);\n  }\n\n  public getLocalStorage(key: string) {\n    return window.localStorage.getItem(key);\n  }\n\n  public clearLocalStorage() {\n    window.localStorage.clear();\n  }\n\n  public removeLocalStorage(key: string) {\n    window.localStorage.removeItem(key);\n  }\n\n  public setSessionStorage(key: string, value: string) {\n    window.sessionStorage.setItem(key, value);\n  }\n\n  public getSessionStorage(key: string) {\n    return window.sessionStorage.getItem(key);\n  }\n\n  public openOnNewTab(url: string): void {\n    const openedWindow = window.open(url, '_blank', 'noopener,noreferrer');\n    if (openedWindow) {\n      openedWindow.opener = null;\n    }\n  }\n\n  public confirm(message: string): boolean {\n    return window.confirm(message);\n  }\n\n  public alert(message: string): void {\n    return window.alert(message);\n  }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { WorkbasketInputModel } from '../../domain';\nimport { HttpService } from '../http/http.service';\n\n@Injectable()\nexport class WorkbasketInputFilterService {\n  public static readonly V2_MEDIATYPE_WORKBASKET_INPUT_DETAILS =\n  'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-workbasket-input-details.v2+json;charset=UTF-8';\n\n  private currentJurisdiction: string;\n  private currentCaseType: string;\n\n  constructor(private readonly httpService: HttpService, private readonly appConfig: AbstractAppConfig) {\n  }\n\n  public getWorkbasketInputUrl(caseTypeId: string): string {\n    return `${this.appConfig.getCaseDataUrl()}/internal/case-types/${caseTypeId}/work-basket-inputs`;\n  }\n\n  public getWorkbasketInputs(jurisdictionId: string, caseTypeId: string): Observable<WorkbasketInputModel[]> {\n    const url = this.getWorkbasketInputUrl(caseTypeId);\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', WorkbasketInputFilterService.V2_MEDIATYPE_WORKBASKET_INPUT_DETAILS)\n      .set('Content-Type', 'application/json');\n\n    this.currentJurisdiction = jurisdictionId;\n    this.currentCaseType = caseTypeId;\n    return this.httpService\n      .get(url, {headers, observe: 'body'})\n      .pipe(\n        map(body => {\n          const workbasketInputs = body.workbasketInputs;\n          if (this.isDataValid(jurisdictionId, caseTypeId)) {\n            workbasketInputs.forEach(item => {\n              item.field.label = item.label;\n              if (item.display_context_parameter) {\n                item.field.display_context_parameter = item.display_context_parameter;\n              }\n            });\n          } else {\n            throw new Error('Response expired');\n          }\n          return workbasketInputs;\n        })\n      );\n  }\n\n  public isDataValid(jurisdictionId: string, caseTypeId: string): boolean {\n    return this.currentJurisdiction === jurisdictionId && this.currentCaseType === caseTypeId;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAppConfig as AppConfig } from '../../../app.config';\nimport { CaseTypeLite } from '../../domain/definition/case-type-lite.model';\nimport { Jurisdiction } from '../../domain/definition/jurisdiction.model';\nimport { HttpService } from '../http/http.service';\n\n@Injectable()\nexport class DefinitionsService {\n  constructor(private readonly http: HttpService, private readonly appConfig: AppConfig) {}\n\n  public getCaseTypes(jurisdictionId: string, access: string): Observable<CaseTypeLite[]> {\n    const url = `${this.appConfig.getApiUrl()}/caseworkers/:uid/jurisdictions/${jurisdictionId}/case-types?access=${access}`;\n\n    return this.http\n      .get(url).pipe(map(response => response));\n  }\n\n  public getJurisdictions(access: string): Observable<Jurisdiction[]> {\n    const url = `${this.appConfig.getApiUrl()}/caseworkers/:uid/jurisdictions?access=${access}`;\n\n    return this.http\n      .get(url)\n      .pipe(map(response => response));\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DefinitionsService } from './definitions.service';\n\n@NgModule({\n    providers: [\n        DefinitionsService\n    ]\n})\n\nexport class DefinitionsModule {}\n","import { Injectable } from '@angular/core';\nimport { SearchResultViewColumn } from '../../../domain/search/search-result-view-column.model';\nimport { SearchResultViewItem } from '../../../domain/search/search-result-view-item.model';\nimport { SearchResultViewItemComparator } from '../../../domain/search/sorting/search-result-view-item-comparator';\n\n@Injectable()\nexport class SearchResultViewItemComparatorFactory {\n  public createSearchResultViewItemComparator(column: SearchResultViewColumn): SearchResultViewItemComparator {\n    const fieldId = column.case_field_id;\n    switch (column.case_field_type.type) {\n      case ('MultiSelectList'): {\n        return this.textArrayComparator(fieldId);\n      }\n      case ('Number'):\n      case ('MoneyGBP'): {\n        return this.numberComparator(fieldId);\n      }\n      case ('Text'):\n      case ('TextArea'):\n      case ('Email'):\n      case ('Date'):\n      case ('DateTime'):\n      case ('Label'):\n      case ('Postcode'):\n      case ('YesOrNo'):\n      case ('PhoneUK'):\n      case ('FixedList'): {\n        return this.stringComparator(fieldId);\n      }\n      default: {\n        return undefined;\n      }\n    }\n  }\n\n  private numberComparator(fieldId: string): SearchResultViewItemComparator {\n    return {\n      compare(a: SearchResultViewItem, b: SearchResultViewItem) {\n        let fieldA = a.case_fields[fieldId];\n        let fieldB = b.case_fields[fieldId];\n        fieldA = fieldA === undefined || fieldA === null ? 0 : fieldA;\n        fieldB = fieldB === undefined || fieldB === null ? 0 : fieldB;\n        return fieldA - fieldB;\n      }\n    } as SearchResultViewItemComparator;\n  }\n\n  private stringComparator(fieldId: string) {\n    return {\n      compare(a: SearchResultViewItem, b: SearchResultViewItem) {\n        let fieldA = a.case_fields[fieldId];\n        let fieldB = b.case_fields[fieldId];\n        fieldA = fieldA === undefined || fieldA === null ? '' : fieldA.toLowerCase();\n        fieldB = fieldB === undefined || fieldB === null ? '' : fieldB.toLowerCase();\n        return fieldA === fieldB ? 0 : fieldA > fieldB ? 1 : -1;\n      }\n    } as SearchResultViewItemComparator;\n  }\n\n  private textArrayComparator(fieldId: string) {\n    return {\n      compare(a: SearchResultViewItem, b: SearchResultViewItem) {\n        let fieldA = a.case_fields[fieldId];\n        let fieldB = b.case_fields[fieldId];\n        fieldA = fieldA === undefined || fieldA === null ? '' : fieldA.join().toLowerCase();\n        fieldB = fieldB === undefined || fieldB === null ? '' : fieldB.join().toLowerCase();\n        return fieldA === fieldB ? 0 : fieldA > fieldB ? 1 : -1;\n      }\n    } as SearchResultViewItemComparator;\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, publishReplay, refCount, take } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../app.config';\n\nexport interface OrganisationSuperUser {\n    firstName: string;\n    lastName: string;\n    email: string;\n}\n\nexport interface OrganisationAddress {\n    addressLine1: string;\n    addressLine2: string;\n    addressLine3: string;\n    townCity: string;\n    county: string;\n    country: string;\n    postCode: string;\n    dxAddress: any [];\n}\n\nexport interface Organisation {\n    organisationIdentifier: string;\n    name: string;\n    status: string;\n    sraId: string;\n    sraRegulated: boolean;\n    companyNumber: string;\n    companyUrl: string;\n    superUser: OrganisationSuperUser;\n    paymentAccount: string [];\n    contactInformation: OrganisationAddress [];\n}\n\nexport interface OrganisationVm {\n    organisationIdentifier: string;\n    name: string;\n    addressLine1: string;\n    addressLine2: string;\n    addressLine3: string;\n    townCity: string;\n    county: string;\n    country: string;\n    postCode: string;\n}\n\n@Injectable()\nexport class OrganisationService {\n\n    constructor(private readonly http: HttpClient,\n                private readonly appconfig: AbstractAppConfig) {}\n\n    private organisations$: Observable<OrganisationVm[]>;\n    public static mapOrganisation(organisations: Organisation[]): OrganisationVm [] {\n        const organisationsVm = new Array<OrganisationVm>();\n        organisations.forEach(org => {\n            let contactInformation = null;\n            if (org.contactInformation &&  org.contactInformation[0]) {\n                contactInformation = org.contactInformation[0];\n            }\n            organisationsVm.push({\n                organisationIdentifier: org.organisationIdentifier,\n                name: org.name,\n                addressLine1: contactInformation !== null ? contactInformation.addressLine1 : null,\n                addressLine2: contactInformation !== null ? contactInformation.addressLine2 : null,\n                addressLine3: contactInformation !== null ? contactInformation.addressLine3 : null,\n                townCity: contactInformation !== null ? contactInformation.townCity : null,\n                county: contactInformation !== null ? contactInformation.county : null,\n                country: contactInformation !== null ? contactInformation.country : null,\n                postCode: contactInformation !== null ? contactInformation.postCode : null,\n            });\n        });\n        return organisationsVm;\n    }\n\n    public getActiveOrganisations(): Observable<OrganisationVm[]> {\n        if (!this.organisations$) {\n            const url = this.appconfig.getPrdUrl();\n            const cacheTimeOut = this.appconfig.getCacheTimeOut();\n            this.organisations$ = this.http.get<Organisation[]>(url)\n            .pipe(map((orgs) => OrganisationService.mapOrganisation(orgs)),\n            publishReplay(1, cacheTimeOut), refCount(), take(1), catchError(e => {\n                console.log(e);\n                // Handle error and return blank Observable array\n                return of([]);\n            }));\n        }\n        return this.organisations$;\n    }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class BrowserService {\n  public isFirefox(): boolean {\n    return window.navigator.userAgent.indexOf('Firefox') > -1;\n  }\n  public isSafari(): boolean {\n    const isSafariAgent = window.navigator.userAgent.indexOf('Safari') > -1;\n    const isChromeAgent = window.navigator.userAgent.indexOf('Chrome') > -1;\n    if ((isChromeAgent) && (isSafariAgent)) {\n      return false;\n    }\n    return isSafariAgent;\n  }\n  public isIEOrEdge(): boolean {\n    return /msie\\s|trident\\/|edge\\//i.test(window.navigator.userAgent);\n  }\n}\n","import { ChallengedAccessRequest } from '../../../domain/case-view/challenged-access-request.model';\nimport { RoleCategory, RoleGrantTypeCategory, RoleRequestPayload } from '../../../domain/case-view/role-request.model';\nimport { SpecificAccessRequest } from '../../../domain/case-view/specific-access-request.model';\n\nexport class CaseAccessUtils {\n    // User role mapping\n    public static readonly JUDGE_ROLE = 'judge';\n    public static readonly JUDGE_ROLE_CATEGORY = 'JUDICIAL';\n    public static readonly JUDGE_ROLE_NAME = 'judiciary';\n    public static readonly ADMIN_ROLE = 'admin';\n    public static readonly ADMIN_ROLE_CATEGORY = 'ADMIN';\n    public static readonly ADMIN_ROLE_NAME = 'admin';\n    public static readonly PROFESSIONAL_ROLE = 'solicitor';\n    public static readonly PROFESSIONAL_ROLE_CATEGORY = 'PROFESSIONAL';\n    public static readonly PROFESSIONAL_ROLE_NAME = 'professional';\n    public static readonly LEGAL_OPERATIONS_ROLE = 'caseworker';\n    public static readonly LEGAL_OPERATIONS_ROLE_CATEGORY = 'LEGAL_OPERATIONS';\n    public static readonly LEGAL_OPERATIONS_ROLE_NAME = 'legal-ops';\n    public static readonly CITIZEN_ROLE = 'citizen';\n    public static readonly CITIZEN_ROLE_CATEGORY = 'CITIZEN';\n    public static readonly CITIZEN_ROLE_NAME = 'citizen';\n    public static readonly CTSC_ROLE = 'ctsc';\n    public static readonly CTSC_ROLE_CATEGORY = 'CTSC';\n    public static readonly CTSC_ROLE_NAME = 'ctsc';\n\n    public getMappedRoleCategory(roles: string[] = [], roleCategories: string[] = []): RoleCategory {\n\n        const roleKeywords: string[] = roles.join().split('-').join().split(',');\n\n        if (this.roleOrCategoryExists(CaseAccessUtils.JUDGE_ROLE, CaseAccessUtils.JUDGE_ROLE_CATEGORY, roleKeywords, roleCategories)) {\n            return CaseAccessUtils.JUDGE_ROLE_CATEGORY;\n        } else if (this.roleOrCategoryExists(CaseAccessUtils.PROFESSIONAL_ROLE,\n            CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY, roleKeywords, roleCategories)) {\n            return CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY;\n        } else if (this.roleOrCategoryExists(CaseAccessUtils.CITIZEN_ROLE,\n            CaseAccessUtils.CITIZEN_ROLE_CATEGORY, roleKeywords, roleCategories)) {\n            return CaseAccessUtils.CITIZEN_ROLE_CATEGORY;\n        } else if (this.roleOrCategoryExists(CaseAccessUtils.ADMIN_ROLE,\n            CaseAccessUtils.ADMIN_ROLE_CATEGORY, roleKeywords, roleCategories)) {\n            return CaseAccessUtils.ADMIN_ROLE_CATEGORY;\n        } else if (this.roleOrCategoryExists(CaseAccessUtils.CTSC_ROLE,\n            CaseAccessUtils.CTSC_ROLE_CATEGORY, roleKeywords, roleCategories)) {\n            return CaseAccessUtils.CTSC_ROLE_CATEGORY;\n        } else {\n            return CaseAccessUtils.LEGAL_OPERATIONS_ROLE_CATEGORY;\n        }\n\n    }\n\n    public roleOrCategoryExists(roleKeyword: string, roleCategory: string, roleKeywords: string[], roleCategories: string[]): boolean {\n        const categoryExists = roleCategories.indexOf(roleCategory) > -1;\n        const keywordExists = roleKeywords.indexOf(roleKeyword) > -1;\n        return categoryExists ? categoryExists : keywordExists;\n    }\n\n    public getAMRoleName(accessType: string, aMRole: RoleCategory): string {\n\n        let roleName = '';\n\n        switch (aMRole) {\n            case CaseAccessUtils.JUDGE_ROLE_CATEGORY:\n                roleName = `${accessType}-access-${CaseAccessUtils.JUDGE_ROLE_NAME}`;\n                break;\n            case CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY:\n                roleName = `${accessType}-access-${CaseAccessUtils.PROFESSIONAL_ROLE_NAME}`;\n                break;\n            case CaseAccessUtils.CITIZEN_ROLE_CATEGORY:\n                roleName = `${accessType}-access-${CaseAccessUtils.CITIZEN_ROLE_NAME}`;\n                break;\n            case CaseAccessUtils.ADMIN_ROLE_CATEGORY:\n                roleName = `${accessType}-access-${CaseAccessUtils.ADMIN_ROLE_NAME}`;\n                break;\n            case CaseAccessUtils.CTSC_ROLE_CATEGORY:\n                roleName = `${accessType}-access-${CaseAccessUtils.CTSC_ROLE_NAME}`;\n                break;\n            default:\n                roleName = `${accessType}-access-${CaseAccessUtils.LEGAL_OPERATIONS_ROLE_NAME}`;\n                break;\n        }\n\n        return roleName;\n\n    }\n\n    public getAMPayload(\n        assignerId: string,\n        actorId: string,\n        roleName: string,\n        roleCategory: RoleCategory,\n        grantType: RoleGrantTypeCategory,\n        caseId: string,\n        details: ChallengedAccessRequest | SpecificAccessRequest,\n        beginTime: Date = null,\n        endTime: Date = null,\n        isNew = false,\n    ): RoleRequestPayload {\n        const process =  (details as ChallengedAccessRequest).caseReference !== undefined ? 'challenged-access' : 'specific-access';\n\n        const payload: RoleRequestPayload = {\n            roleRequest: {\n                assignerId,\n                process,\n                reference: `${caseId}/${roleName}/${actorId}`,\n                replaceExisting: true\n            },\n            requestedRoles: [{\n                actorIdType: 'IDAM',\n                actorId,\n                roleType: 'CASE',\n                roleName,\n                classification: 'PUBLIC',\n                roleCategory,\n                grantType,\n                beginTime,\n                endTime,\n                attributes: {\n                  caseId,\n                  isNew,\n                  accessReason: JSON.stringify(details),\n                },\n                notes: [{\n                  userId: assignerId,\n                  time: new Date(),\n                  comment: JSON.stringify(details)\n                }]\n            }]\n        };\n\n        return payload;\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { ShowCondition } from '../../../directives/conditional-show/domain/conditional-show.model';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { ComplexFieldOverride } from '../domain/wizard-page-field-complex-override.model';\nimport { WizardPageField } from '../domain/wizard-page-field.model';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class WizardPageFieldToCaseFieldMapper {\n  public mapAll(wizardPageFields: WizardPageField[], caseFields: CaseField[]): CaseField[] {\n    return wizardPageFields.map(wizardField => {\n      return this.map(wizardField, caseFields);\n    });\n  }\n\n  private map(wizardPageField: WizardPageField, caseFields: CaseField[]): CaseField {\n    const caseField: CaseField = caseFields.find(e => e.id === wizardPageField.case_field_id);\n    caseField.wizardProps = wizardPageField;\n    caseField.order = wizardPageField.order;\n\n    this.fixShowConditionPath(caseField, '');\n\n    if (wizardPageField.complex_field_overrides && wizardPageField.complex_field_overrides.length > 0) {\n      wizardPageField.complex_field_overrides.forEach((override: ComplexFieldOverride) => {\n        this.processComplexFieldOverride(override, caseField, caseFields);\n      });\n    }\n\n    // this will fix the CaseLink type as we exclude it in ccdFieldsFilter directive\n    this.hideParentIfAllChildrenHidden(caseField);\n\n    return caseField;\n  }\n\n  private processComplexFieldOverride(override: ComplexFieldOverride, caseField: CaseField, caseFields: CaseField[]) {\n    const caseFieldIds = override.complex_field_element_id.split('.');\n    let caseFieldLeaf: CaseField;\n\n    const children = this.getCaseFieldChildren(caseField);\n\n    if (children.length > 0) {\n      const [_, ...tail] = caseFieldIds;\n      caseFieldLeaf = this.getCaseFieldLeaf(tail, children);\n    } else {\n      caseFieldLeaf = this.getCaseFieldLeaf(caseFieldIds, caseFields);\n    }\n\n    if (override.display_context !== 'HIDDEN') {\n      caseFieldLeaf.hidden = false;\n      caseFieldLeaf.display_context = override.display_context;\n      if (override.label && override.label.length > 0) {\n        caseFieldLeaf.label = override.label;\n      }\n      if (override.hint_text && override.hint_text.length > 0) {\n        caseFieldLeaf.hint_text = override.hint_text;\n      }\n      if (override.show_condition && override.show_condition.length > 0) {\n        caseFieldLeaf.show_condition = override.show_condition;\n      }\n    } else {\n      caseFieldLeaf.hidden = true;\n      caseFieldLeaf.display_context = override.display_context;\n    }\n  }\n\n  private fixShowConditionPath(caseField: CaseField, pathPrefix: string) {\n    if (caseField.show_condition) {\n      caseField.show_condition = ShowCondition.addPathPrefixToCondition(caseField.show_condition, pathPrefix);\n    }\n\n    const childrenCaseFields = this.getCaseFieldChildren(caseField);\n\n    childrenCaseFields.forEach(collectionCaseField => {\n      this.fixShowConditionPath(collectionCaseField, this.preparePathPrefix(pathPrefix, caseField.id));\n    });\n  }\n\n  private preparePathPrefix(pathPrefix: string, caseField: string) {\n    return pathPrefix.length === 0 ? caseField : `${pathPrefix}.${caseField}`;\n  }\n\n  private getCaseFieldLeaf(caseFieldId: string[], caseFields: CaseField[]): CaseField {\n    const [head, ...tail] = caseFieldId;\n    if (caseFieldId.length === 1) {\n      const caseLeaf = caseFields.find(e => e.id === head);\n      if (!caseLeaf) {\n        throw new Error(`Cannot find leaf for caseFieldId ${caseFieldId.join('.')}`);\n      }\n      return caseLeaf;\n    } else if (caseFieldId.length > 1) {\n      const caseField = caseFields.find(e => e.id === head);\n      const children = this.getCaseFieldChildren(caseField);\n\n      if (children.length === 0) {\n        throw new Error(`field_type or complex_fields missing for ${caseFieldId.join('.')}`);\n      }\n      return this.getCaseFieldLeaf(tail, children);\n    } else {\n      throw new Error(`Cannot find leaf for caseFieldId ${caseFieldId.join('.')}`);\n    }\n  }\n\n  private hideParentIfAllChildrenHidden(caseField: CaseField) {\n    const childrenCaseFields = this.getCaseFieldChildren(caseField);\n\n    childrenCaseFields.forEach(e => this.hideParentIfAllChildrenHidden(e));\n\n    if (childrenCaseFields.length > 0 && this.allCaseFieldsHidden(childrenCaseFields)) {\n      caseField.hidden = true;\n      // marking display_context as special hidden so field not being deleted in event submission\n      caseField.display_context = 'HIDDEN_TEMP';\n    }\n  }\n\n  private getCaseFieldChildren(caseField: CaseField) {\n    let childrenCaseFields = [];\n    if (caseField.isCollection()) {\n      childrenCaseFields = caseField.field_type.collection_field_type.complex_fields || [];\n    } else if (caseField.isComplex()) {\n      childrenCaseFields = caseField.field_type.complex_fields || [];\n    }\n    return childrenCaseFields;\n  }\n\n  private allCaseFieldsHidden(children: CaseField[]): boolean {\n    return children.every(e => e.display_context === 'HIDDEN' || e.display_context === 'HIDDEN_TEMP');\n  }\n}\n","export class Confirmation {\n  constructor(private readonly caseId: string, private readonly status: string, private readonly header: string, private readonly body: string) {\n  }\n\n  public getCaseId(): string {\n    return this.caseId;\n  }\n\n  public getStatus(): string {\n    return this.status;\n  }\n\n  public getHeader(): string {\n    return this.header;\n  }\n\n  public getBody(): string {\n    return this.body;\n  }\n}\n","export enum EventCompletionReturnStates {\n  InProgress = 'in-progress',\n  CompleteEvent = 'complete-event',\n  CancelEvent = 'cancel-event'\n}\n","export enum EventCompletionStates {\n  CheckTasksCanBeCompleted = 'check-tasks-can-be-completed',\n  CompleteEventAndTask = 'complete-event-and-task',\n  CancelEvent = 'cancel-event',\n  CompleteEventNotTask = 'complete-event-not-task',\n  TaskCompetedOrCancelled = 'task-completed-or-cancelled',\n  TaskAssignedToAnotherUser = 'task-assigned-to-another-user',\n  TaskReassignToUser = 'task-reassign-to-user',\n  TaskAssignToUser = 'task-assign-to-user',\n  TaskUnassigned = 'task-unassigned',\n  Final = 'final'\n}\n","import { Predicate } from '../../../domain/predicate.model';\nimport { OrderService } from '../../../services/order/order.service';\nimport { WizardPage } from './wizard-page.model';\n\nexport class Wizard {\n  public pages: WizardPage[];\n\n  private readonly orderService = new OrderService();\n\n  constructor(wizardPages: WizardPage[]) {\n    this.pages = this.orderService.sort(wizardPages);\n  }\n\n  public firstPage(canShow: Predicate<WizardPage>): WizardPage {\n    return this.pages.find(page => canShow(page));\n  }\n\n  public getPage(pageId: string, canShow: Predicate<WizardPage>): WizardPage {\n    const foundPage: WizardPage = this.findPage(pageId);\n    if (!foundPage) {\n      throw new Error(`No page for ID: ${pageId}`);\n    }\n    return canShow(foundPage) ? foundPage : undefined;\n  }\n\n  public findWizardPage(caseFieldId: string): WizardPage {\n    return this.pages.find(wizardPage => wizardPage.case_fields &&\n        wizardPage.case_fields?.filter(caseField => caseField.id === caseFieldId).length > 0);\n  }\n\n  public nextPage(pageId: string, canShow: Predicate<WizardPage>): WizardPage {\n    const currentIndex = this.findExistingIndex(pageId);\n\n    return this.pages\n      .slice(currentIndex + 1)\n      .find(page => canShow(page));\n  }\n\n  public previousPage(pageId: string, canShow: Predicate<WizardPage>): WizardPage {\n    const currentIndex = this.findExistingIndex(pageId);\n\n    return this.pages\n      .slice(0, currentIndex)\n      .reverse()\n      .find(page => canShow(page));\n  }\n\n  public hasPage(pageId: string): boolean {\n    return !!this.findPage(pageId);\n  }\n\n  public hasPreviousPage(pageId: string, canShow: Predicate<WizardPage>): boolean {\n    return !!this.previousPage(pageId, canShow);\n  }\n\n  public reverse(): WizardPage[] {\n    return this.pages.slice().reverse();\n  }\n\n  private findPage(pageId: string): WizardPage {\n    return this.pages.find(page => pageId === page.id);\n  }\n\n  private findExistingIndex(pageId: string): number {\n    const index = this.pages.findIndex(page => pageId === page.id);\n\n    if (-1 === index) {\n      throw new Error(`No page for ID: ${pageId}`);\n    }\n\n    return index;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class ConvertHrefToRouterService {\n\n  private readonly hrefMarkdownLinkContent = new BehaviorSubject('Default');\n\n  constructor(private readonly router: Router) {}\n\n  public updateHrefLink(content: string): void {\n    this.hrefMarkdownLinkContent.next(content);\n  }\n\n  public getHrefMarkdownLinkContent(): Observable<string> {\n    return this.hrefMarkdownLinkContent.asObservable();\n  }\n\n  public callAngularRouter(hrefMarkdownLinkContent): void {\n    const urls = hrefMarkdownLinkContent.split('?');\n    const queryParams = urls[1];\n    const queryParamObj = {};\n\n    if (queryParams) {\n      const queryParam = queryParams.split('&');\n      if (queryParam[0]) {\n        // tslint:disable-next-line: prefer-for-of\n        for (let i = 0; i < queryParam.length; i++) {\n          const param = queryParam[i].split('=');\n          queryParamObj[param[0]] = param[1];\n        }\n      }\n    }\n\n    this.router.navigate([urls[0]], {\n      queryParams: queryParamObj && (Object.keys(queryParamObj).length) ? queryParamObj : ''\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { CaseEventTrigger } from '../../../domain/case-view/case-event-trigger.model';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class EventTriggerService {\n\n  public eventTriggerSource = new Subject<CaseEventTrigger>();\n\n  public announceEventTrigger(eventTrigger: CaseEventTrigger) {\n    this.eventTriggerSource.next(eventTrigger);\n  }\n\n}\n","import { CaseEventTrigger } from '../../../domain/case-view/case-event-trigger.model';\nimport { Wizard } from '../domain/wizard.model';\n\nexport class WizardFactoryService {\n  public create(eventTrigger: CaseEventTrigger): Wizard {\n    return new Wizard(eventTrigger.wizard_pages);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { first } from 'rxjs/operators';\nimport { ShowCondition } from '../../../directives/conditional-show/domain/conditional-show.model';\nimport { CaseEventTrigger } from '../../../domain/case-view/case-event-trigger.model';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { Predicate } from '../../../domain/predicate.model';\nimport { AlertService } from '../../../services/alert/alert.service';\nimport { FieldsUtils } from '../../../services/fields/fields.utils';\nimport { RouterHelperService } from '../../../services/router/router-helper.service';\nimport { WizardPage } from '../domain/wizard-page.model';\nimport { Wizard } from '../domain/wizard.model';\nimport { EventTriggerService } from './event-trigger.service';\nimport { WizardFactoryService } from './wizard-factory.service';\n\n@Injectable()\nexport class CaseEditWizardGuard implements Resolve<boolean> {\n\n  constructor(\n    private readonly router: Router,\n    private readonly routerHelper: RouterHelperService,\n    private readonly wizardFactory: WizardFactoryService,\n    private readonly alertService: AlertService,\n    private readonly eventTriggerService: EventTriggerService\n  ) {}\n\n  public resolve(route: ActivatedRouteSnapshot): Promise<boolean> {\n    this.eventTriggerService.eventTriggerSource.asObservable().pipe(\n      first(),\n    ).subscribe(eventTrigger => {\n      this.processEventTrigger(route, eventTrigger);\n    });\n    if (route.parent.data.eventTrigger) {\n      this.eventTriggerService.announceEventTrigger(route.parent.data.eventTrigger);\n    }\n    return Promise.resolve(true);\n  }\n\n  private processEventTrigger(route: ActivatedRouteSnapshot, eventTrigger: CaseEventTrigger): Promise<boolean> {\n    if (!eventTrigger.hasFields() || !eventTrigger.hasPages()) {\n      this.goToSubmit(route);\n      return Promise.resolve(false);\n    }\n\n    const wizard = this.wizardFactory.create(eventTrigger);\n    const currentState = this.buildState(eventTrigger.case_fields);\n    // TODO Extract predicate and state creation in a factory\n    const canShowPredicate: Predicate<WizardPage> = (page: WizardPage): boolean => {\n      return ShowCondition.getInstance(page.show_condition).match(currentState);\n    };\n\n    if (!route.params['page']) {\n      this.goToFirst(wizard, canShowPredicate, route);\n      return Promise.resolve(false);\n    }\n\n    const pageId = route.params['page'];\n\n    if (!wizard.hasPage(pageId)) {\n      this.goToFirst(wizard, canShowPredicate, route)\n        .then(() => {\n          const replacements = { PAGEID: pageId };\n          this.alertService.error({ phrase: 'No page could be found for %PAGEID%', replacements });\n        });\n      return Promise.resolve(false);\n    }\n    return Promise.resolve(true);\n  }\n\n  private goToFirst(wizard: Wizard, canShowPredicate: Predicate<WizardPage>, route: ActivatedRouteSnapshot): Promise<boolean> {\n    const firstPage = wizard.firstPage(canShowPredicate);\n    // If there’s no specific wizard page called, it makes another navigation to either the first page available or to the submit page\n    // TODO should find a way to navigate to target page without going through the whole loop (and make a second call to BE) again\n    return this.router.navigate([...this.parentUrlSegments(route), firstPage ? firstPage.id : 'submit'],\n      { queryParams: route.queryParams });\n  }\n\n  private goToSubmit(route: ActivatedRouteSnapshot): Promise<boolean> {\n    return this.router.navigate([...this.parentUrlSegments(route), 'submit'], {queryParams: route.queryParams});\n  }\n\n  private buildState(caseFields: CaseField[]): any {\n    const state = {};\n\n    /**\n     *\n     * EUI-4873 SSCS - Dynamic lists in a collection within a complex type\n     *\n     * Catering for mid event callbacks, hence the call to re-evaluate\n     * for DynamicList's\n     *\n     */\n    FieldsUtils.handleNestedDynamicLists({case_fields: caseFields});\n\n    caseFields.forEach(field => {\n      state[field.id] = field.value;\n    });\n\n    return state;\n  }\n\n  private parentUrlSegments(route: ActivatedRouteSnapshot): string[] {\n    return this.routerHelper.getUrlSegmentsFromRoot(route.parent);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { CaseworkersByService } from '../../../domain/work-allocation/case-worker.model';\nimport { HttpErrorService } from '../../../services/http/http-error.service';\nimport { HttpService } from '../../../services/http/http.service';\n\n@Injectable()\nexport class CaseworkerService {\n\n  constructor(\n    private readonly http: HttpService,\n    private readonly appConfig: AbstractAppConfig,\n    private readonly errorService: HttpErrorService\n  ) {\n  }\n\n  public getCaseworkers(serviceId): Observable<CaseworkersByService[]> {\n    const url = `${this.appConfig.getWorkAllocationApiUrl()}/caseworker/getUsersByServiceName`;\n    return this.http\n      .post(url, { services: [serviceId]})\n      .pipe(\n        catchError(error => {\n          this.errorService.setError(error);\n          return throwError(error);\n        })\n      );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CaseTab, CaseView } from '../../../domain';\nimport { CasesService } from './cases.service';\n\n@Injectable()\nexport class CaseNotifier {\n    public static readonly CASE_NAME = 'caseNameHmctsInternal';\n    public static readonly CASE_LOCATION = 'caseManagementLocation';\n    private readonly caseViewSource: BehaviorSubject<CaseView> = new BehaviorSubject<CaseView>(new CaseView());\n    public caseView = this.caseViewSource.asObservable();\n    public cachedCaseView: CaseView;\n\n    constructor(private readonly casesService: CasesService) {}\n\n    public removeCachedCase() {\n      this.cachedCaseView = null;\n    }\n\n    public announceCase(c: CaseView) {\n      this.caseViewSource.next(c);\n    }\n    public fetchAndRefresh(cid: string) {\n      return this.casesService\n        .getCaseViewV2(cid)\n        .pipe(\n          map(caseView => {\n            this.cachedCaseView = plainToClassFromExist(new CaseView(), caseView);\n            this.setBasicFields(this.cachedCaseView.tabs);\n            this.announceCase(this.cachedCaseView);\n            return this.cachedCaseView;\n          }),\n        );\n    }\n\n    public setBasicFields(tabs: CaseTab[]): void {\n      tabs.forEach((t) => {\n        const caseName = t.fields.find(f => f.id === CaseNotifier.CASE_NAME);\n        const caseLocation = t.fields.find(f => f.id === CaseNotifier.CASE_LOCATION);\n        if (caseName || caseLocation) {\n          this.cachedCaseView.basicFields = {\n            caseNameHmctsInternal : caseName ? caseName.value : null,\n            caseManagementLocation : caseLocation ? caseLocation.value : null\n          };\n        }\n      });\n    }\n}\n","export interface Task {\n  assignee?: string;\n  auto_assigned?: boolean;\n  case_category: string;\n  case_id: string;\n  case_management_category?: string;\n  case_name?: string;\n  case_type_id?: string;\n  created_date: string;\n  due_date?: string;\n  description?: string;\n  execution_type?: string;\n  id: string;\n  jurisdiction: string;\n  location?: string;\n  location_name?: string;\n  name?: string;\n  permissions: { values: Permissions[]};\n  region?: string;\n  security_classification?: string;\n  task_state?: string;\n  task_system?: string;\n  task_title?: string;\n  type?: string;\n  warning_list?: { values: string[]};\n  warnings?: true;\n  work_type_id?: string;\n}\n\nexport interface UserTask {\n  task_data: Task,\n  complete_task: boolean\n}\n\n// Query: UserID will be removed on logout/login (is it necessary)?\nexport interface TaskEventCompletionInfo {\n  taskId: string;\n  eventId: string;\n  caseId: string;\n  userId: string;\n  createdTimestamp: number;\n}\n\nexport interface EventDetails {\n  eventId: string;\n  caseId: string;\n  userId: string;\n  assignNeeded?: string;\n}\n\nexport enum Permissions {\n  Own= 'OWN',\n  Execute= 'EXECUTE',\n  Read= 'READ',\n  Manage= 'MANAGE',\n  Cancel= 'CANCEL',\n}\n\nexport enum TaskState {\n  UnConfigured = 'UNCONFIGURED',\n  PendingAutoAssign = 'PENDING_AUTO_ASSIGN',\n  Assigned = 'ASSIGNED',\n  Configured = 'CONFIGURED',\n  Unassigned = 'UNASSIGNED',\n  Completed = 'COMPLETED',\n  Cancelled = 'CANCELLED',\n  Terminated = 'TERMINATED',\n  PendingReConfiguration = 'PENDING_RECONFIGURATION'\n}\n","export enum EventCompletionTaskStates {\n  TaskCancelled,\n  TaskReassigned\n}\n","import { Injectable } from '@angular/core';\nimport { State, StateMachine } from '@edium/fsm';\nimport { throwError } from 'rxjs';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { TaskState } from '../../../domain/work-allocation/Task';\nimport { FieldsUtils } from '../../../services';\nimport { EventCompletionStateMachineContext } from '../domain/event-completion-state-machine-context.model';\nimport { EventCompletionStates } from '../domain/event-completion-states.enum.model';\nimport { EventCompletionTaskStates } from '../domain/event-completion-task-states.model';\nimport { CaseEditComponent } from '../case-edit';\n\nconst EVENT_COMPLETION_STATE_MACHINE = 'EVENT COMPLETION STATE MACHINE';\n\n@Injectable()\nexport class EventCompletionStateMachineService {\n  public stateCheckTasksCanBeCompleted: State;\n  public stateCompleteEventAndTask: State;\n  public stateCancelEvent: State;\n  public stateCompleteEventNotTask: State;\n  public stateTaskCompletedOrCancelled: State;\n  public stateTaskAssignedToAnotherUser: State;\n  public stateTaskReassignToUser: State;\n  public stateTaskAssignToUser: State;\n  public stateTaskUnassigned: State;\n  public stateFinal: State;\n\n  constructor(private readonly abstractConfig: AbstractAppConfig) {}\n\n  public initialiseStateMachine(context: EventCompletionStateMachineContext): StateMachine {\n    return new StateMachine(EVENT_COMPLETION_STATE_MACHINE, context);\n  }\n\n  public startStateMachine(stateMachine: StateMachine): void {\n    stateMachine.start(this.stateCheckTasksCanBeCompleted);\n  }\n\n  public createStates(stateMachine: StateMachine): void {\n    // Initial state\n    this.stateCheckTasksCanBeCompleted = stateMachine.createState(\n      EventCompletionStates.CheckTasksCanBeCompleted,\n      false,\n      this.entryActionForStateCheckTasksCanBeCompleted\n    );\n\n    this.stateCompleteEventAndTask = stateMachine.createState(\n      EventCompletionStates.CompleteEventAndTask,\n      false,\n      this.entryActionForStateCompleteEventAndTask\n    );\n\n    this.stateTaskCompletedOrCancelled = stateMachine.createState(\n      EventCompletionStates.TaskCompetedOrCancelled,\n      false,\n      this.entryActionForStateTaskCompletedOrCancelled\n    );\n\n    this.stateTaskAssignedToAnotherUser = stateMachine.createState(\n      EventCompletionStates.TaskAssignedToAnotherUser,\n      false,\n      this.entryActionForStateTaskAssignedToAnotherUser\n    );\n\n    this.stateTaskUnassigned = stateMachine.createState(\n      EventCompletionStates.TaskUnassigned,\n      false,\n      this.entryActionForStateTaskUnassigned\n    );\n\n    // Create final state, the second param isComplete is set to true to make sure state machine finished running\n    this.stateFinal = stateMachine.createState(\n      EventCompletionStates.Final,\n      true,\n      this.entryActionForStateFinal\n    );\n  }\n\n  public addTransitions(): void {\n    // Initial transition\n    this.addTransitionsForStateCheckTasksCanBeCompleted();\n    this.addTransitionsForStateTaskCompletedOrCancelled();\n    this.addTransitionsForStateCompleteEventAndTask();\n    this.addTransitionsForStateTaskAssignedToAnotherUser();\n    this.addTransitionsForStateTaskUnassigned();\n  }\n\n  public entryActionForStateCheckTasksCanBeCompleted = (state: State, context: EventCompletionStateMachineContext): void => {\n    const assignNeeded = context.sessionStorageService.getItem('assignNeeded');\n    context.workAllocationService.getTask(context.task.id).subscribe(\n      taskResponse => {\n        this.abstractConfig?.logMessage?.(`entryActionForStateCheckTasksCanBeCompleted: task_state ${taskResponse?.task?.task_state} for task id ${context?.task?.id}`);\n        if (taskResponse?.task?.task_state) {\n          switch (taskResponse.task.task_state.toUpperCase()) {\n            case TaskState.Unassigned:\n              // Task unassigned\n              state.trigger(EventCompletionStates.TaskUnassigned);\n              break;\n            case TaskState.Completed:\n            case TaskState.Cancelled:\n            case TaskState.Terminated:\n              // Task completed or cancelled\n              state.trigger(EventCompletionStates.TaskCompetedOrCancelled);\n              break;\n            case TaskState.Assigned:\n              // Task is in assigned state\n              if (taskResponse.task.assignee === context.task.assignee) {\n                // Task still assigned to current user, complete event and task\n                state.trigger(EventCompletionStates.CompleteEventAndTask);\n              } else if (assignNeeded === 'true - override') {\n                // this will treat task as unassigned instead of reassigned to complete after user confirmation\n                // assignNeeded will also be immediately overwritten to true\n                state.trigger(EventCompletionStates.TaskUnassigned);\n              } else {\n                // Task has been reassigned to another user, display error message\n                context.reassignedTask = taskResponse.task;\n                state.trigger(EventCompletionStates.TaskAssignedToAnotherUser);\n              }\n              break;\n            default:\n              // Allow user to complete the event\n              state.trigger(EventCompletionStates.CompleteEventAndTask);\n              break;\n          }\n        } else if (!taskResponse?.task) {\n          context.alertService.setPreserveAlerts(true);\n          context.alertService.warning({ phrase: 'Task statecheck : no task available for completion', replacements: {} });\n          this.abstractConfig?.logMessage?.(`Task statecheck : no task available for completion`);\n        } else {\n          context.alertService.setPreserveAlerts(true);\n          context.alertService.warning({ phrase: 'Task statecheck : no task state available for completion', replacements: {} });\n          this.abstractConfig?.logMessage?.(`Task statecheck : no task state available for completion`);\n        }\n      },\n      error => {\n        context.alertService.error(error.message);\n        return throwError(error);\n      });\n  }\n\n  public entryActionForStateTaskCompletedOrCancelled(state: State, context: EventCompletionStateMachineContext): void {\n    // Trigger final state to complete processing of state machine\n    state.trigger(EventCompletionStates.Final);\n    // Load case event completion task cancelled component\n    context.component.setTaskState(EventCompletionTaskStates.TaskCancelled);\n  }\n\n  public entryActionForStateCompleteEventAndTask = (state: State, context: EventCompletionStateMachineContext): void => {\n    // Trigger final state to complete processing of state machine\n    state.trigger(EventCompletionStates.Final);\n    const clientContextStr = context.sessionStorageService.getItem(CaseEditComponent.CLIENT_CONTEXT);\n    const userTask = FieldsUtils.getUserTaskFromClientContext(clientContextStr);\n    this.abstractConfig?.logMessage?.(`entryActionForStateCompleteEventAndTask: userTask task_data ${JSON.stringify(userTask?.task_data?.id)}`);\n    if (userTask?.task_data) {\n      context.sessionStorageService.setItem('assignNeeded', 'false');\n      // just set event can be completed\n      context.component.eventCanBeCompleted.emit(true);\n    } else {\n      context.alertService.setPreserveAlerts(true);\n      context.alertService.warning({phrase: 'CompleteEventAndTask : no task available for completion', replacements: {}});\n      // Emit event cannot be completed event\n      context.component.eventCanBeCompleted.emit(false);\n    }\n  }\n\n  public entryActionForStateTaskAssignedToAnotherUser(state: State, context: EventCompletionStateMachineContext): void {\n    // Trigger final state to complete processing of state machine\n    state.trigger(EventCompletionStates.Final);\n    // Load case event completion task reassigned component\n    context.component.setTaskState(EventCompletionTaskStates.TaskReassigned);\n  }\n\n  public entryActionForStateTaskUnassigned(state: State, context: EventCompletionStateMachineContext): void {\n    // Trigger final state to complete processing of state machine\n    state.trigger(EventCompletionStates.Final);\n    const clientContextStr = context.sessionStorageService.getItem(CaseEditComponent.CLIENT_CONTEXT);\n    const userTask = FieldsUtils.getUserTaskFromClientContext(clientContextStr);\n    if (userTask?.task_data) {\n      context.sessionStorageService.setItem('assignNeeded', 'true');\n      context.component.eventCanBeCompleted.emit(true);\n    } else {\n      context.alertService.setPreserveAlerts(true);\n      context.alertService.warning({phrase: 'Unassigned task : no task available for completion', replacements: {}});\n      // Emit event cannot be completed event\n      context.component.eventCanBeCompleted.emit(false);\n    }\n  }\n\n  public entryActionForStateFinal(state: State, context: EventCompletionStateMachineContext): void {\n    // Final actions can be performed here, the state machine finished running\n    console.log('FINAL');\n  }\n\n  public addTransitionsForStateCheckTasksCanBeCompleted(): void {\n    // Complete event and task\n    this.stateCheckTasksCanBeCompleted.addTransition(\n      EventCompletionStates.CompleteEventAndTask,\n      this.stateCompleteEventAndTask\n    );\n    // Task completed or cancelled\n    this.stateCheckTasksCanBeCompleted.addTransition(\n      EventCompletionStates.TaskCompetedOrCancelled,\n      this.stateTaskCompletedOrCancelled\n    );\n    // Task assigned to another user\n    this.stateCheckTasksCanBeCompleted.addTransition(\n      EventCompletionStates.TaskAssignedToAnotherUser,\n      this.stateTaskAssignedToAnotherUser\n    );\n    // Task unassigned\n    this.stateCheckTasksCanBeCompleted.addTransition(\n      EventCompletionStates.TaskUnassigned,\n      this.stateTaskUnassigned\n    );\n  }\n\n  public addTransitionsForStateTaskCompletedOrCancelled(): void {\n    this.stateTaskCompletedOrCancelled.addTransition(\n      EventCompletionStates.Final,\n      this.stateFinal\n    );\n  }\n\n  public addTransitionsForStateCompleteEventAndTask(): void {\n    this.stateCompleteEventAndTask.addTransition(\n      EventCompletionStates.Final,\n      this.stateFinal\n    );\n  }\n\n  public addTransitionsForStateTaskAssignedToAnotherUser(): void {\n    this.stateTaskAssignedToAnotherUser.addTransition(\n      EventCompletionStates.Final,\n      this.stateFinal\n    );\n  }\n\n  public addTransitionsForStateTaskUnassigned(): void {\n    this.stateTaskUnassigned.addTransition(\n      EventCompletionStates.Final,\n      this.stateFinal\n    );\n  }\n\n  public taskPresentInSessionStorage(context: EventCompletionStateMachineContext): boolean {\n    const clientContextStr = context.sessionStorageService.getItem(CaseEditComponent.CLIENT_CONTEXT);\n    const userTask = FieldsUtils.getUserTaskFromClientContext(clientContextStr);\n    return !!userTask.task_data;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { Judicialworker } from '../../../domain/work-allocation/judicial-worker.model';\nimport { HttpErrorService } from '../../../services/http/http-error.service';\nimport { HttpService } from '../../../services/http/http.service';\n\n@Injectable()\nexport class JudicialworkerService {\n\n  constructor(\n    private readonly http: HttpService,\n    private readonly appConfig: AbstractAppConfig,\n    private readonly errorService: HttpErrorService\n  ) {\n  }\n\n  public getJudicialworkers(userIds: string[], serviceId: string): Observable<Judicialworker[]> {\n    const url = `${this.appConfig.getWorkAllocationApiUrl()}/getJudicialUsers`;\n    return this.http\n      .post(url, {userIds, services: [serviceId]})\n      .pipe(\n        catchError(error => {\n          this.errorService.setError(error);\n          return throwError(error);\n        })\n      );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\n\nimport { ShowCondition } from '../../../directives/conditional-show/domain/conditional-show.model';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { CaseFieldService } from '../../../services/case-fields/case-field.service';\nimport { FieldsUtils } from '../../../services/fields';\nimport { WizardPage } from '../domain/wizard-page.model';\n\n@Injectable()\nexport class PageValidationService {\n  constructor(private readonly caseFieldService: CaseFieldService) { }\n\n  public getInvalidFields(page: WizardPage, editForm: FormGroup): CaseField[] {\n    const failingCaseFields = [];\n    page.case_fields\n      .filter((caseField) => !this.caseFieldService.isReadOnly(caseField))\n      .filter((caseField) => !this.isHidden(caseField, editForm))\n      .forEach((caseField) => {\n        const theControl = FieldsUtils.isCaseFieldOfType(caseField, ['JudicialUser'])\n          ? editForm.controls.data.get(`${caseField.id}_judicialUserControl`)\n          : editForm.controls.data.get(caseField.id);\n        if (!(this.checkDocumentField(caseField, theControl) && this.checkOptionalField(caseField, theControl))) {\n          failingCaseFields.push(caseField);\n        }\n      });\n    return failingCaseFields;\n  }\n\n  public isHidden(caseField: CaseField, editForm: FormGroup, path?: string): boolean {\n    const formFields = editForm.getRawValue();\n    const condition = ShowCondition.getInstance(caseField.show_condition);\n    if (path && path.indexOf(`_${caseField.id}_`) === -1) {\n      path = `${path}${caseField.id}`;\n    }\n    return !condition.match(formFields.data, path);\n  }\n\n  private checkDocumentField(caseField: CaseField, theControl: AbstractControl): boolean {\n    if (caseField.field_type.id !== 'Document') {\n      return true;\n    }\n    return !(this.checkMandatoryField(caseField, theControl));\n  }\n\n  private checkOptionalField(caseField: CaseField, theControl: AbstractControl): boolean {\n    if (!theControl) {\n      return this.caseFieldService.isOptional(caseField);\n    }\n    return theControl.valid || theControl.disabled;\n  }\n\n  private checkMandatoryField(caseField: CaseField, theControl: AbstractControl): boolean {\n    return this.caseFieldService.isMandatory(caseField) && theControl === null;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { TaskSearchParameter, WAFeatureConfig } from '../../../domain';\nimport { TaskResponse } from '../../../domain/work-allocation/task-response.model';\nimport { TaskPayload } from '../../../domain/work-allocation/TaskPayload';\nimport { CaseNotifier } from './case.notifier';\nimport { AlertService, HttpErrorService, HttpService, SessionStorageService } from '../../../services';\nimport { isInternalUser } from '../../../utils';\n\nexport const MULTIPLE_TASKS_FOUND = 'More than one task found!';\n\n@Injectable()\nexport class WorkAllocationService {\n  public static iACCaseOfficer = 'caseworker-ia-caseofficer';\n  public static iACAdmOfficer = 'caseworker-ia-admofficer';\n\n  private features: WAFeatureConfig;\n  private jurisdiction: string;\n  private caseType: string;\n\n  constructor(\n    private readonly http: HttpService,\n    private readonly appConfig: AbstractAppConfig,\n    private readonly errorService: HttpErrorService,\n    private readonly alertService: AlertService,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly sessionStorageService: SessionStorageService\n  ) {\n    this.caseNotifier.caseView.subscribe((caseDetails) => {\n      if (caseDetails) {\n        this.jurisdiction = caseDetails?.case_type?.jurisdiction?.id;\n        this.caseType = caseDetails?.case_type?.id;\n      }\n    });\n  }\n\n  /**\n   * Call the API to get tasks matching the search criteria.\n   * @param searchRequest The search parameters that specify which tasks to match.\n   */\n  public searchTasks(searchRequest: TaskSearchParameter): Observable<object> {\n    // Do not need to check if WA enabled as parent method will do that\n    const url = `${this.appConfig.getWorkAllocationApiUrl()}/searchForCompletable`;\n    return this.http\n      .post(url, {searchRequest}, null, false)\n      .pipe(\n        map(response => response),\n        catchError(error => {\n          this.errorService.setError(error);\n          // explicitly eat away 401 error and 400 error\n          if (error && error.status && (error.status === 401 || error.status === 400)) {\n            // do nothing\n            console.log('error status 401 or 400', error);\n          } else {\n            return throwError(error);\n          }\n        })\n      );\n  }\n\n  private isWAEnabled(jurisdiction?: string, caseType?: string): boolean {\n    this.features = this.appConfig.getWAServiceConfig();\n    if (this.features) {\n      const ftstr = JSON.stringify(this.features);\n      this.appConfig?.logMessage(`isWAEnabled: wa-service-config returning ${ftstr?.length > 0}`);\n    } else {\n      this.appConfig?.logMessage(`isWAEnabled: wa-service-config returning no features`);\n      return false;\n    }\n    let enabled = false;\n    if (!jurisdiction || !caseType) {\n      jurisdiction = this.jurisdiction;\n      caseType = this.caseType;\n    }\n    if (!this.features || !this.features.configurations) {\n      this.appConfig.logMessage('isWAEnabled: no features');\n      return false;\n    }\n    this.features.configurations.forEach(serviceConfig => {\n      if (serviceConfig.serviceName === jurisdiction && (serviceConfig.caseTypes.indexOf(caseType) !== -1)) {\n          enabled = true;\n      }\n    });\n    this.appConfig.logMessage(`isWAEnabled: returning ${enabled}`);\n    return enabled;\n  }\n\n  /**\n   * Call the API to assign a task.\n   * @param taskId specifies which task should be assigned.\n   * @param userId specifies the user the task should be assigned to.\n   */\n  public assignTask(taskId: string, userId: string): Observable<any> {\n    if (!this.isWAEnabled()) {\n      return of(null);\n    }\n    const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/assign`;\n    return this.http\n      .post(url, {userId})\n      .pipe(\n        catchError(error => {\n          this.errorService.setError(error);\n          return throwError(error);\n        })\n      );\n  }\n\n  /**\n   * Call the API to complete a task.\n   * @param taskId specifies which task should be completed.\n   */\n  public completeTask(taskId: string, eventName?: string): Observable<any> {\n    if (!this.isWAEnabled()) {\n      this.alertService.setPreserveAlerts(true);\n      this.alertService.warning({ phrase:'completeTask: Work Allocation is not enabled, so the task could not be completed. Please complete the task associated with the case manually.'});\n      return of(null);\n    }\n    this.appConfig.logMessage(`completeTask: completing ${taskId}`);\n    const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;\n    return this.http\n      .post(url, { actionByEvent: true, eventName: eventName })\n      .pipe(\n        catchError(error => {\n          this.errorService.setError(error);\n          this.handleTaskCompletionError();\n          return throwError(error);\n        })\n      );\n  }\n\n  /**\n   * Call the API to assign and complete a task.\n   * @param taskId specifies which task should be completed.\n   */\n  public assignAndCompleteTask(taskId: string, eventName?: string): Observable<any> {\n    if (!this.isWAEnabled()) {\n      this.alertService.setPreserveAlerts(true);\n      this.alertService.warning({ phrase:'assignAndCompleteTask: Work Allocation is not enabled, so the task could not be completed. Please complete the task associated with the case manually.'});\n      return of(null);\n    }\n    this.appConfig.logMessage(`assignAndCompleteTask: completing ${taskId}`);\n    const url = `${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}/complete`;\n    return this.http\n      .post(url, {\n        completion_options: {\n          assign_and_complete: true\n        },\n        actionByEvent: true,\n        eventName: eventName\n      })\n      .pipe(\n        catchError(error => {\n          this.errorService.setError(error);\n          this.handleTaskCompletionError();\n          return throwError(error);\n        })\n      );\n  }\n\n  /**\n   * Handles the response from the observable to get the user details when task is completed.\n   * @param response is the response given from the observable which contains the user detaild.\n   */\n  public handleTaskCompletionError(): void {\n    if (isInternalUser(this.sessionStorageService)) {\n      // when submitting the completion of task if not yet rendered cases/case confirm then preserve the alert for re-rendering\n      this.alertService.setPreserveAlerts(true, ['cases/case', 'submit']);\n      this.alertService.warning({ phrase:'A task could not be completed successfully. Please complete the task associated with the case manually.'});\n    }\n  }\n\n  /**\n   * Look for open tasks for a case and event combination. There are 5 possible scenarios:\n   *   1. No tasks found                              => Success.\n   *   2. One task found => Mark as done              => Success.\n   *   3. One task found => Mark as done throws error => Failure.\n   *   4. More than one task found                    => Failure.\n   *   5. Search call throws an error                 => Failure.\n   * @param ccdId The ID of the case to find tasks for.\n   * @param eventId The ID of the event to find tasks for.\n   */\n  public completeAppropriateTask(ccdId: string, eventId: string, jurisdiction: string, caseTypeId: string): Observable<any> {\n    if (!this.isWAEnabled(jurisdiction, caseTypeId)) {\n      return of(null);\n    }\n    const taskSearchParameter: TaskSearchParameter = {\n      ccdId,\n      eventId,\n      jurisdiction,\n      caseTypeId\n    };\n    return this.searchTasks(taskSearchParameter)\n      .pipe(\n        map((response: any) => {\n          const tasks: any[] = response.tasks;\n          if (tasks && tasks.length > 0) {\n            if (tasks.length === 1) {\n              this.completeTask(tasks[0].id, eventId).subscribe();\n            } else {\n              // This is a problem. Throw an appropriate error.\n              throw new Error(MULTIPLE_TASKS_FOUND);\n            }\n          }\n          return true; // All good. Nothing to see here.\n        }),\n        catchError(error => {\n          // Simply rethrow it.\n          return throwError(error);\n        })\n      );\n  }\n\n  /**\n   * Return tasks for case and event.\n   */\n  public getTasksByCaseIdAndEventId(eventId: string, caseId: string, caseType: string, jurisdiction: string): Observable<TaskPayload> {\n    const defaultPayload: TaskPayload = {\n      task_required_for_event: false,\n      tasks: []\n    };\n    if (!this.isWAEnabled()) {\n      this.appConfig.logMessage(`isWAEnabled false for ${caseId} in event ${eventId}`);\n      return of(defaultPayload);\n    }\n    return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/case/tasks/${caseId}/event/${eventId}/caseType/${caseType}/jurisdiction/${jurisdiction}`);\n  }\n\n /**\n  * Call the API to get a task\n  */\n public getTask(taskId: string): Observable<TaskResponse> {\n  if (!this.isWAEnabled()) {\n    return of({task: null});\n  }\n  this.appConfig.logMessage(`getTask: ${taskId}`);\n  return this.http.get(`${this.appConfig.getWorkAllocationApiUrl()}/task/${taskId}`);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CaseField } from '../../../domain/definition';\nimport { WizardPage } from '../../case-editor/domain/wizard-page.model';\nimport { FieldsUtils } from '../../../services';\n\n@Injectable()\nexport class ValidPageListCaseFieldsService {\n  constructor(\n    private readonly fieldsUtils: FieldsUtils\n  ) {}\n\n  private isShown(page: WizardPage, eventTriggerFields: CaseField[], formFields: object): boolean {\n    const fields = this.fieldsUtils\n      .mergeCaseFieldsAndFormFields(eventTriggerFields, formFields);\n    return page.parsedShowCondition.match(fields);\n  }\n\n  public deleteNonValidatedFields(validPageList: WizardPage[], caseEventDatadata: object, eventTriggerFields: CaseField[],\n    fromPreviousPage: boolean, formFields: object): void {\n    const pageListCaseFields = this.validPageListCaseFields(validPageList, eventTriggerFields, formFields);\n    if (!fromPreviousPage && pageListCaseFields.length > 0) {\n      Object.keys(caseEventDatadata).forEach(key => {\n        if (pageListCaseFields.findIndex((element) => element.id === key) < 0) {\n          delete caseEventDatadata[key];\n        }\n      });\n    }\n  }\n\n  public validPageListCaseFields(validPageList: WizardPage[], eventTriggerFields: CaseField[], formFields: object) : CaseField[] {\n    const validPageListCaseFields: CaseField[] = [];\n    validPageList.forEach(page => {\n      if (this.isShown(page, eventTriggerFields, formFields)) {\n        page.case_fields.forEach(field => validPageListCaseFields.push(field));\n      }\n    });\n    return validPageListCaseFields;\n  }\n}\n","<router-outlet></router-outlet>\n<!-- Simple centered modal shown on refresh -->\n<div *ngIf=\"isRefreshModalVisible\" class=\"refresh-modal-backdrop\">\n  <div class=\"refresh-modal\">\n    <h2 class=\"heading-h2\">Page refreshed</h2>\n    <p>{{ 'As the page has been refreshed mandatory data is now missing. You will be redirected to the first page of this event.' }}</p>\n    <p>{{ 'Please select Ok to continue.' }}</p>\n    <button class=\"button\" (click)=\"onRefreshModalOk()\">Ok</button>\n  </div>\n</div>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Params, Router } from '@angular/router';\nimport { Observable, Subject, of } from 'rxjs';\nimport { finalize, switchMap } from 'rxjs/operators';\n\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { Constants } from '../../../commons/constants';\nimport { ConditionalShowRegistrarService, GreyBarService } from '../../../directives';\nimport {\n  CaseEditCaseSubmit, CaseEditGenerateCaseEventData, CaseEditGetNextPage,\n  CaseEditSubmitForm,\n  CaseEditonEventCanBeCompleted,\n  CaseEventData, CaseEventTrigger, CaseField,\n  CaseView, Draft, HttpError, Profile\n} from '../../../domain';\nimport { UserInfo } from '../../../domain/user/user-info.model';\nimport { EventDetails, Task, TaskEventCompletionInfo } from '../../../domain/work-allocation/Task';\nimport {\n  AlertService,\n  FieldsPurger, FieldsUtils, FormErrorService, FormValueService, LoadingService,\n  ReadCookieService,\n  SessionStorageService, WindowService\n} from '../../../services';\nimport { Confirmation, Wizard, WizardPage } from '../domain';\nimport { EventCompletionParams } from '../domain/event-completion-params.model';\nimport { CaseNotifier, WizardFactoryService, WorkAllocationService } from '../services';\nimport { ValidPageListCaseFieldsService } from '../services/valid-page-list-caseFields.service';\nimport { removeTaskFromClientContext } from '../case-edit-utils/case-edit.utils';\n\n@Component({\n  selector: 'ccd-case-edit',\n  templateUrl: 'case-edit.component.html',\n  styleUrls: ['../case-edit.scss'],\n  providers: [GreyBarService],\n  standalone: false\n})\nexport class CaseEditComponent implements OnInit, OnDestroy {\n  public static readonly ORIGIN_QUERY_PARAM = 'origin';\n  public static readonly ALERT_MESSAGE = 'Page is being refreshed so you will be redirected to the first page of this event.';\n  public static readonly CLIENT_CONTEXT = 'clientContext';\n  public static readonly TASK_EVENT_COMPLETION_INFO = 'taskEventCompletionInfo';\n\n  @Input()\n  public eventTrigger: CaseEventTrigger;\n\n  @Input()\n  public submit: (caseEventData: CaseEventData, profile?: Profile) => Observable<object>;\n\n  @Input()\n  public validate: (caseEventData: CaseEventData, pageId: string) => Observable<object>;\n\n  @Input()\n  public saveDraft: (caseEventData: CaseEventData) => Observable<Draft>;\n\n  @Input()\n  public caseDetails: CaseView;\n\n  @Output()\n  public cancelled: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  public submitted: EventEmitter<any> = new EventEmitter();\n\n  public wizard: Wizard;\n\n  public form: FormGroup;\n\n  public confirmation: Confirmation;\n\n  public navigationOrigin: any;\n\n  public initialUrl: string;\n\n  public isPageRefreshed: boolean;\n\n  public isSubmitting: boolean;\n\n  public eventCompletionParams: EventCompletionParams;\n\n  public submitResponse: Record<string, any>;\n\n  public isEventCompletionChecksRequired = false;\n\n  public isCaseFlagSubmission = false;\n\n  public ignoreWarning = false;\n\n  public isLinkedCasesSubmission = false;\n\n  public error: HttpError;\n\n  public callbackErrorsSubject: Subject<any> = new Subject();\n\n  public validPageList: WizardPage[] = [];\n\n  public isRefreshModalVisible = false;\n\n  constructor(\n    private readonly fb: FormBuilder,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly router: Router,\n    private readonly route: ActivatedRoute,\n    private readonly fieldsUtils: FieldsUtils,\n    private readonly fieldsPurger: FieldsPurger,\n    private readonly registrarService: ConditionalShowRegistrarService,\n    private readonly wizardFactory: WizardFactoryService,\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly windowsService: WindowService,\n    private readonly formValueService: FormValueService,\n    private readonly formErrorService: FormErrorService,\n    private readonly loadingService: LoadingService,\n    private readonly validPageListCaseFieldsService: ValidPageListCaseFieldsService,\n    private readonly workAllocationService: WorkAllocationService,\n    private readonly alertService: AlertService,\n    private readonly abstractConfig: AbstractAppConfig,\n    private readonly cookieService: ReadCookieService\n  ) {}\n\n  public ngOnInit(): void {\n    this.wizard = this.wizardFactory.create(this.eventTrigger);\n    this.initialUrl = this.sessionStorageService.getItem('eventUrl');\n    this.isPageRefreshed = JSON.parse(this.sessionStorageService.getItem('isPageRefreshed'));\n\n    this.checkPageRefresh();\n\n    this.form = this.fb.group({\n      data: new FormGroup({}),\n      event: this.fb.group({\n        id: [this.eventTrigger.id, Validators.required],\n        summary: [''],\n        description: ['']\n      })\n    });\n\n    this.route.queryParams.subscribe((params: Params) => {\n      this.navigationOrigin = params[CaseEditComponent.ORIGIN_QUERY_PARAM];\n    });\n  }\n\n  public ngOnDestroy(): void {\n    /* istanbul ignore else */\n    if (this.callbackErrorsSubject) {\n      this.callbackErrorsSubject.unsubscribe();\n    }\n  }\n\n  public checkPageRefresh(): boolean {\n    if (this.isPageRefreshed && this.initialUrl) {\n      this.sessionStorageService.removeItem('eventUrl');\n      this.isRefreshModalVisible = true;\n      this.router.navigate([this.initialUrl], { relativeTo: this.route });\n      return true;\n    }\n    // if the url contains /submit there is the potential that the user has gone straight to the submit page\n    // we should try and work out if they have been through the journey or not and prevent them submitting directly\n    const hasSubmitPathOnly = /\\/submit(?:\\?.*)?$/.test(this.router.url);\n    if (hasSubmitPathOnly && !this.initialUrl) {\n      // we only want to check if the user has done this if there is a multi-page journey\n      if (this.eventTrigger.wizard_pages && this.eventTrigger.wizard_pages.length > 0) {\n        const firstPage = this.eventTrigger.wizard_pages.reduce((min, page) => page.order < min.order ? page : min, this.eventTrigger.wizard_pages[0]);\n        this.isRefreshModalVisible = true;\n        this.router.navigate([firstPage ? firstPage.id : 'submit'], { relativeTo: this.route });\n      }\n    }\n    return false;\n  }\n\n  public onRefreshModalOk(): void {\n    this.isRefreshModalVisible = false;\n  }\n\n  public getPage(pageId: string): WizardPage {\n    return this.wizard.getPage(pageId, this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));\n  }\n\n  public first(): Promise<boolean> {\n    const firstPage = this.wizard.firstPage(this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));\n    return this.router.navigate([firstPage ? firstPage.id : 'submit'], { relativeTo: this.route });\n  }\n\n  public navigateToPage(pageId: string): Promise<boolean> {\n    const page = this.getPage(pageId);\n    return this.router.navigate([page ? page.id : 'submit'], { relativeTo: this.route });\n  }\n\n  public next(currentPageId: string): Promise<boolean> {\n    this.initialUrl = this.sessionStorageService.getItem('eventUrl');\n    /* istanbul ignore else */\n    if (this.router.url && !this.initialUrl) {\n      this.sessionStorageService.setItem('eventUrl', this.router.url);\n    }\n    this.fieldsPurger.clearHiddenFields(this.form, this.wizard, this.eventTrigger, currentPageId);\n    const nextPage = this.getNextPage({\n      currentPageId,\n      wizard: this.wizard,\n      eventTrigger: this.eventTrigger,\n      form: this.form,\n    });\n\n    /* istanbul ignore else */\n    if (!nextPage &&\n      !(this.eventTrigger.show_summary || this.eventTrigger.show_summary === null) &&\n      !this.eventTrigger.show_event_notes) {\n      this.submitForm({\n        eventTrigger: this.eventTrigger,\n        form: this.form,\n        submit: this.submit,\n        caseDetails: this.caseDetails,\n      });\n      return;\n    }\n\n    this.registrarService.reset();\n\n    const theQueryParams: Params = {};\n    theQueryParams[CaseEditComponent.ORIGIN_QUERY_PARAM] = this.navigationOrigin;\n    return this.router.navigate([nextPage ? nextPage.id : 'submit'], { queryParams: theQueryParams, relativeTo: this.route });\n  }\n\n  public previous(currentPageId: string): Promise<boolean> {\n    this.fieldsPurger.clearHiddenFields(this.form, this.wizard, this.eventTrigger, currentPageId);\n    this.registrarService.reset();\n\n    const previousPage = this.wizard.previousPage(currentPageId, this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));\n    /* istanbul ignore else */\n    if (!previousPage) {\n      return Promise.resolve(false);\n    }\n\n    const theQueryParams: Params = {};\n    theQueryParams[CaseEditComponent.ORIGIN_QUERY_PARAM] = this.navigationOrigin;\n    return this.router.navigate([previousPage.id], { queryParams: theQueryParams, relativeTo: this.route });\n  }\n\n  public hasPrevious(currentPageId: string): boolean {\n    return this.wizard.hasPreviousPage(currentPageId, this.fieldsUtils.buildCanShowPredicate(this.eventTrigger, this.form));\n  }\n\n  public cancel(): void {\n    this.cancelled.emit();\n  }\n\n  public emitSubmitted(response: Record<string, any>): void {\n    this.submitted.emit({ caseId: response['id'], jurisdiction: response['jurisdiction'], caseType: response['case_type'], status: this.getStatus(response) });\n  }\n\n  public getNextPage({ wizard, currentPageId, eventTrigger, form }: CaseEditGetNextPage): WizardPage {\n    return wizard.nextPage(\n      currentPageId,\n      this.fieldsUtils.buildCanShowPredicate(eventTrigger, form)\n    );\n  }\n\n  public confirm(confirmation: Confirmation): Promise<boolean> {\n    this.confirmation = confirmation;\n    return this.router.navigate(['confirm'], { relativeTo: this.route });\n  }\n\n  public submitForm({ eventTrigger, form, caseDetails, submit }: CaseEditSubmitForm): void {\n    this.isSubmitting = true;\n    // We have to run the event completion checks if task in session storage\n    // and if the task is in session storage, then is it associated to the case\n    const clientContextStr = this.sessionStorageService.getItem(CaseEditComponent.CLIENT_CONTEXT);\n    const userTask = FieldsUtils.getUserTaskFromClientContext(clientContextStr);\n    const taskInSessionStorage = userTask ? userTask.task_data : null;\n    let taskEventCompletionInfo: TaskEventCompletionInfo;\n    let userInfo: UserInfo;\n    const taskEventCompletionStr = this.sessionStorageService.getItem(CaseEditComponent.TASK_EVENT_COMPLETION_INFO);\n    const userInfoStr = this.sessionStorageService.getItem('userDetails');\n    const assignNeeded = this.sessionStorageService.getItem('assignNeeded');\n    if (taskEventCompletionStr) {\n      taskEventCompletionInfo = JSON.parse(taskEventCompletionStr);\n    }\n    if (userInfoStr) {\n      userInfo = JSON.parse(userInfoStr);\n    }\n    const eventId = this.getEventId(form);\n    const caseId = this.getCaseId(caseDetails);\n    const userId = userInfo.id ? userInfo.id : userInfo.uid;\n    const eventDetails: EventDetails = {eventId, caseId, userId, assignNeeded};\n    if (this.taskExistsForThisEvent(taskInSessionStorage, taskEventCompletionInfo, eventDetails)) {\n      this.abstractConfig.logMessage(`task ${taskInSessionStorage?.id} exist for this event for caseId and eventId as ${caseId} ${eventId}`);\n      // Show event completion component to perform event completion checks\n      this.eventCompletionParams = ({\n        caseId,\n        eventId,\n        task: taskInSessionStorage\n      });\n      // add taskEventCompletionInfo again to ensure link current event with task id\n      // note: previous usage was created here so this is to ensure correct functionality continues\n      const taskEventCompletionInfo: TaskEventCompletionInfo = {\n        caseId,\n        eventId,\n        userId,\n        taskId: taskInSessionStorage.id,\n        createdTimestamp: Date.now()};\n      this.sessionStorageService.setItem(CaseEditComponent.TASK_EVENT_COMPLETION_INFO, JSON.stringify(taskEventCompletionInfo));\n      this.isEventCompletionChecksRequired = true;\n    } else {\n      this.abstractConfig.logMessage(`task does not exist for caseId and eventId as ${caseId} ${eventId}`);\n      // Task not in session storage, proceed to submit\n      const caseEventData = this.generateCaseEventData({\n        eventTrigger,\n        form\n      });\n      this.caseSubmit({form,\n        caseEventData,\n        submit\n      });\n    }\n  }\n\n  public getCaseId(caseDetails: CaseView): string {\n    return (caseDetails ? caseDetails.case_id : '');\n  }\n\n  private getEventId(form: FormGroup): string {\n    return form.value.event.id;\n  }\n\n  private generateCaseEventData({ eventTrigger, form }: CaseEditGenerateCaseEventData ): CaseEventData {\n    const caseEventData: CaseEventData = {\n      data: this.replaceEmptyComplexFieldValues(\n        this.formValueService.sanitise(\n          this.replaceHiddenFormValuesWithOriginalCaseData(\n            form.get('data') as FormGroup, eventTrigger.case_fields),\n          this.isCaseFlagSubmission)),\n      event: form.value.event\n    } as CaseEventData;\n    this.formValueService.clearNonCaseFields(caseEventData.data, eventTrigger.case_fields);\n    this.formValueService.removeNullLabels(caseEventData.data, eventTrigger.case_fields);\n    this.formValueService.removeEmptyDocuments(caseEventData.data, eventTrigger.case_fields);\n    // Remove collection fields that have \"min\" validation of greater than zero set on the FieldType but are empty;\n    // these will fail validation\n    this.formValueService.removeEmptyCollectionsWithMinValidation(caseEventData.data, eventTrigger.case_fields);\n    // For Case Flag submissions (where a FlagLauncher field is present in the event trigger), the flag details data\n    // needs populating for each Flags field, then the FlagLauncher field needs removing\n    this.formValueService.repopulateFormDataFromCaseFieldValues(caseEventData.data, eventTrigger.case_fields);\n    // Data population step required for Linked Cases\n    this.formValueService.populateLinkedCasesDetailsFromCaseFields(caseEventData.data, eventTrigger.case_fields);\n    // Remove \"Launcher\"-type fields (these have no values and are not intended to be persisted)\n    this.formValueService.removeCaseFieldsOfType(caseEventData.data, eventTrigger.case_fields, ['FlagLauncher', 'ComponentLauncher']);\n\n    // delete fields which are not part of the case event journey wizard pages case fields\n    this.validPageListCaseFieldsService.deleteNonValidatedFields(this.validPageList, caseEventData.data, eventTrigger.case_fields, false, form.controls['data'].value);\n    const pageListCaseFields = this.validPageListCaseFieldsService.validPageListCaseFields(this.validPageList, eventTrigger.case_fields, form.controls['data'].value);\n    // Remove unnecessary case fields which are hidden, only if the submission is *not* for Case Flags\n    if (!this.isCaseFlagSubmission) {\n      this.formValueService.removeUnnecessaryFields(caseEventData.data, pageListCaseFields, true, true);\n    }\n\n    caseEventData.event_token = eventTrigger.event_token;\n    caseEventData.ignore_warning = this.ignoreWarning;\n    if (this.confirmation) {\n      caseEventData.data = {};\n    }\n\n    return caseEventData;\n  }\n\n  /**\n   * Replaces non-array value objects with `null` for any Complex-type fields whose value is effectively empty, i.e.\n   * all its sub-fields and descendants are `null` or `undefined`.\n   *\n   * @param data The object tree representing all the form field data\n   * @returns The form field data modified accordingly\n   */\n  private replaceEmptyComplexFieldValues(data: object): object {\n    Object.keys(data).forEach((key) => {\n      if (!Array.isArray(data[key]) && typeof data[key] === 'object' && !FieldsUtils.containsNonEmptyValues(data[key])) {\n        data[key] = null;\n      }\n    });\n\n    return data;\n  }\n\n  /**\n   * Traverse *all* values of a {@link FormGroup}, including those for disabled fields (i.e. hidden ones), replacing the\n   * value of any that are hidden AND have `retain_hidden_value` set to `true` in the corresponding `CaseField`, with\n   * the *original* value held in the `CaseField` object.\n   *\n   * This is as per design in EUI-3622, where any user-driven updates to hidden fields with `retain_hidden_value` =\n   * `true` are ignored (thus retaining the value displayed originally).\n   *\n   * * For Complex field types, the replacement above is performed recursively for all hidden sub-fields with\n   * `retain_hidden_value` = `true`.\n   *\n   * * For Collection field types, including collections of Complex and Document field types, the replacement is\n   * performed for all fields in the collection.\n   *\n   * @param formGroup The `FormGroup` instance whose raw values are to be traversed\n   * @param caseFields The array of {@link CaseField} domain model objects corresponding to fields in `formGroup`\n   * @param parentField Reference to the parent `CaseField`. Used for retrieving the sub-field values of a Complex field\n   * to perform recursive replacement - the sub-field `CaseField`s themselves do *not* contain any values\n   * @returns An object with the *raw* form value data (as key-value pairs), with any value replacements as necessary\n   */\n  private replaceHiddenFormValuesWithOriginalCaseData(formGroup: FormGroup, caseFields: CaseField[], parentField?: CaseField): object {\n    // Get the raw form value data, which includes the values of any disabled controls, as key-value pairs\n    const rawFormValueData = formGroup.getRawValue();\n\n    // Place all case fields in a lookup object, so they can be retrieved by id\n    const caseFieldsLookup = {};\n    for (let i = 0, len = caseFields.length; i < len; i++) {\n      caseFieldsLookup[caseFields[i].id] = caseFields[i];\n    }\n\n    /**\n     * Replace any form value with the original, where its CaseField is hidden AND has the retain_hidden_value flag set\n     * to true.\n     *\n     * If the CaseField's `hidden` attribute is null or undefined, then check this attribute in the parent CaseField (if\n     * one exists). This is occurring (and is possibly a bug) when a CaseField is a sub-field of a Complex type, or an\n     * item in a Collection type.\n     *\n     * If the field is a Complex type with retain_hidden_value = true, perform a recursive replacement for all (hidden)\n     * sub-fields with retain_hidden_value = true, using their original CaseField values (from the `formatted_value`\n     * attribute).\n     *\n     * If the field is a Collection type with retain_hidden_value = true, the entire collection is replaced with the\n     * original from `formatted_value`. This applies to *all* types of Collections.\n     */\n    /* istanbul ignore next */\n    Object.keys(rawFormValueData).forEach((key) => {\n      const caseField: CaseField = caseFieldsLookup[key];\n      // If caseField.hidden is NOT truthy and also NOT equal to false, then it must be null/undefined (remember that\n      // both null and undefined are equal to *neither false nor true*)\n      if (caseField?.retain_hidden_value &&\n        (caseField?.hidden || (caseField?.hidden !== false && parentField?.hidden))) {\n        if (caseField.field_type.type === 'Complex') {\n          this.handleComplexField(caseField, formGroup, key, rawFormValueData);\n        } else {\n          this.handleNonComplexField(parentField, rawFormValueData, key, caseField);\n        }\n      }\n    });\n\n    return rawFormValueData;\n  }\n\n  private handleNonComplexField(parentField: CaseField, rawFormValueData, key: string, caseField: CaseField) {\n    // Default case also handles collections of *all* types; the entire collection in rawFormValueData will be\n    // replaced with the original from formatted_value\n    // Use the CaseField's existing *formatted_value* from the parent, if available. (This is necessary for\n    // Complex fields, whose sub-fields do not hold any values in the model.) Otherwise, use formatted_value\n    // from the CaseField itself.\n    if (parentField && parentField.formatted_value) {\n      rawFormValueData[key] = parentField.formatted_value[caseField.id];\n    } else {\n      if (!(caseField.hidden && caseField.retain_hidden_value)) {\n        rawFormValueData[key] = caseField.formatted_value;\n      }\n    }\n  }\n\n  private handleComplexField(caseField: CaseField, formGroup: FormGroup<any>, key: string, rawFormValueData) {\n    // Note: Deliberate use of equality (==) and non-equality (!=) operators for null checks throughout, to\n    // handle both null and undefined values\n    if (caseField.value != null) {\n      // Call this function recursively to replace the Complex field's sub-fields as necessary, passing the\n      // CaseField itself (the sub-fields do not contain any values, so these need to be obtained from the\n      // parent)\n      // Update rawFormValueData for this field\n      // creating form group and adding control into it in case caseField is of complext type and and part of formGroup\n      const form: FormGroup = new FormGroup({});\n      if (formGroup.controls[key].value) {\n        Object.keys(formGroup.controls[key].value).forEach((item) => {\n          form.addControl(item, new FormControl(formGroup.controls[key].value[item]));\n        });\n      }\n      rawFormValueData[key] = this.replaceHiddenFormValuesWithOriginalCaseData(\n        form, caseField.field_type.complex_fields, caseField);\n    }\n  }\n\n  private caseSubmit({ form, caseEventData, submit }: CaseEditCaseSubmit): void {\n    const loadingSpinnerToken = this.loadingService.register();\n    // keep the initial event response to finalise process after task completion\n    let eventResponse: object;\n    this.sessionStorageService.setItem('taskCompletionError', 'false');\n    submit(caseEventData).pipe(switchMap((response) => {\n      eventResponse = response;\n      this.abstractConfig.logMessage(`Event ${this.eventCompletionParams?.eventId} of case Id ${this.eventCompletionParams?.caseId} and taskId ${this.eventCompletionParams?.task?.id}`);\n      return this.postCompleteTaskIfRequired();\n    }),finalize(() => {\n        this.loadingService.unregister(loadingSpinnerToken);\n        // on event completion ensure the previous event clientContext/taskEventCompletionInfo removed\n        // Note - Not removeTaskFromClientContext because could interfere with other logic\n        this.abstractConfig.logMessage(`Clearing client context and task event completion info after event ${this.eventCompletionParams?.eventId} submission of case Id ${this.eventCompletionParams?.caseId} and task Id ${this.eventCompletionParams?.task?.id}`);\n        this.sessionStorageService.removeItem(CaseEditComponent.CLIENT_CONTEXT);\n        this.sessionStorageService.removeItem(CaseEditComponent.TASK_EVENT_COMPLETION_INFO)\n        this.isSubmitting = false;\n      }))\n      .subscribe(\n        () => {\n          this.finishEventCompletionLogic(eventResponse);\n        },\n        error => {\n          this.abstractConfig.logMessage(`An error occurred while submission of event ${this.eventCompletionParams?.eventId} and case Id ${this.eventCompletionParams?.caseId} and taskId ${this.eventCompletionParams?.task?.id}`);\n          if (!eventResponse) {\n            // event submission error\n            this.error = error;\n            this.callbackErrorsSubject.next(error);\n            /* istanbul ignore else */\n            if (this.error.details) {\n              this.formErrorService\n                .mapFieldErrors(this.error.details.field_errors, form.controls['data'] as FormGroup, 'validation');\n            }\n          } else {\n            this.sessionStorageService.setItem('taskCompletionError', 'true');\n            // task assignment/completion error - handled within workallocation service\n            // could set task to be deleted (or completed later)?\n            this.finishEventCompletionLogic(eventResponse);\n            // below allows error to be shown on navigation to confirmation page\n            this.alertService.setPreserveAlerts(true);\n            this.alertService.error({phrase: Constants.TASK_COMPLETION_ERROR});\n          }\n        }\n      );\n  }\n\n  private postCompleteTaskIfRequired(): Observable<any> {\n    const clientContextStr = this.sessionStorageService.getItem(CaseEditComponent.CLIENT_CONTEXT);\n    const userTask = FieldsUtils.getUserTaskFromClientContext(clientContextStr);\n    const [task, taskToBeCompleted] = userTask ? [userTask.task_data, userTask.complete_task] : [null, false];\n    const assignNeeded = this.sessionStorageService.getItem('assignNeeded') === 'true';\n    if (task && assignNeeded && taskToBeCompleted) {\n      this.abstractConfig.logMessage(`postCompleteTaskIfRequired with assignNeeded: taskId ${task.id} and event name ${this.eventTrigger?.name}`);\n      return this.workAllocationService.assignAndCompleteTask(task.id, this.eventTrigger.name);\n    } else if (task && taskToBeCompleted) {\n      this.abstractConfig.logMessage(`postCompleteTaskIfRequired: taskId ${task.id} and event name ${this.eventTrigger?.name}`);\n      return this.workAllocationService.completeTask(task.id, this.eventTrigger.name);\n    }\n    this.abstractConfig.logMessage(`postCompleteTaskIfRequired: no task to complete for event name ${this.eventTrigger?.name} and caseId ${this.caseDetails?.case_id}`);\n    return of(true);\n  }\n\n  private finishEventCompletionLogic(eventResponse: any): void {\n    this.caseNotifier.cachedCaseView = null;\n    this.sessionStorageService.removeItem('eventUrl');\n    const confirmation: Confirmation = this.buildConfirmation(eventResponse);\n    if (confirmation && (confirmation.getHeader() || confirmation.getBody())) {\n      this.confirm(confirmation);\n    } else {\n      this.emitSubmitted(eventResponse);\n    }\n  }\n\n  private buildConfirmation(response: object): Confirmation {\n    if (response['after_submit_callback_response']) {\n      return new Confirmation(\n        response['id'],\n        response['callback_response_status'],\n        response['after_submit_callback_response']['confirmation_header'],\n        response['after_submit_callback_response']['confirmation_body']\n      );\n    } else {\n      return null;\n    }\n  }\n\n  // checks whether current clientContext relevant for the event\n  public taskExistsForThisEvent(taskInSessionStorage: Task, taskEventCompletionInfo: TaskEventCompletionInfo, eventDetails: EventDetails): boolean {\n    if (!taskInSessionStorage || taskInSessionStorage.case_id !== eventDetails.caseId) {\n      return false;\n    }\n    if (!taskEventCompletionInfo) {\n      // if no task event present then there is no task to complete from previous event present\n      // EXUI-2668 - Add additional logic to confirm the task is relevant to the event\n      if (this.taskIsForEvent(taskInSessionStorage, eventDetails)) {\n        return true;\n      } else {\n        // client context still needed for language\n        removeTaskFromClientContext(this.sessionStorageService);\n        return false;\n      }\n    } else {\n      if (taskEventCompletionInfo.taskId !== taskInSessionStorage.id) {\n        return true;\n      } else if ((taskEventCompletionInfo.taskId === taskInSessionStorage.id &&\n          this.eventDetailsDoNotMatch(taskEventCompletionInfo, eventDetails))\n        || this.eventMoreThanDayAgo(taskEventCompletionInfo.createdTimestamp)\n      ) {\n        // if the session storage not related to event, ignore it and remove\n        removeTaskFromClientContext(this.sessionStorageService);\n        this.sessionStorageService.removeItem(CaseEditComponent.TASK_EVENT_COMPLETION_INFO);\n        return false;\n      }\n      if (eventDetails.assignNeeded === 'false' && eventDetails.userId !== taskInSessionStorage.assignee) {\n        // if the user does not match task assignee, assign is now needed\n        // data cannot be deleted and ignored as it matches understanding\n        this.sessionStorageService.setItem('assignNeeded', 'true');\n      }\n      return true;\n    }\n  }\n\n  public onEventCanBeCompleted({ eventTrigger, eventCanBeCompleted, caseDetails, form, submit }: CaseEditonEventCanBeCompleted): void {\n    if (eventCanBeCompleted) {\n      // Submit\n      const caseEventData = this.generateCaseEventData({ eventTrigger, form });\n      this.caseSubmit({ form, caseEventData, submit });\n    } else {\n      // Navigate to tasks tab on case details page\n      this.router.navigate([`/cases/case-details/${this.caseDetails.case_type.jurisdiction.id}/${this.caseDetails.case_type.id}/${this.getCaseId(caseDetails)}`], { fragment: 'Tasks' });\n    }\n  }\n\n  public getStatus(response: object): any {\n    return this.hasCallbackFailed(response) ? response['callback_response_status'] : response['delete_draft_response_status'];\n  }\n\n  private hasCallbackFailed(response: object): boolean {\n    return response['callback_response_status'] !== 'CALLBACK_COMPLETED';\n  }\n\n  private eventMoreThanDayAgo(timestamp: number) {\n    if ((new Date().getTime() - timestamp) > (24*60*60*1000)) {\n      return true;\n    }\n    return false;\n  }\n\n  private eventDetailsDoNotMatch(taskEventCompletionInfo: TaskEventCompletionInfo, eventDetails: EventDetails) {\n    if (taskEventCompletionInfo.eventId !== eventDetails.eventId\n      || taskEventCompletionInfo.caseId !== eventDetails.caseId\n      || taskEventCompletionInfo.userId !== eventDetails.userId) {\n      return true;\n    }\n    return false;\n  }\n\n  private taskIsForEvent(task: Task, eventDetails: EventDetails): boolean {\n    // EXUI-2668 - Ensure description for task includes event ID\n    // Note - This is a failsafe for an edge case that may never occur again\n    // Description may not include eventId in some cases which may mean task not completed (however this will be easy to check)\n    // In instances of the above taskEventCompletionInfo will be created to block this check from occurring\n    this.abstractConfig.logMessage(`checking taskIsForEvent: task ID ${task.id}, task description ${task.description}, event name ${eventDetails.eventId}`);\n    return task.case_id === eventDetails.caseId && (task.description?.includes(eventDetails.eventId));\n  }\n}\n","import { SessionStorageService } from \"../../../services\";\nimport { CaseEditComponent } from \"../case-edit/case-edit.component\";\n\nexport function convertNonASCIICharacter(character: string): string {\n  if (character === '£') {\n    // pound sign will be frequently used and works for btoa despite being non-ASCII\n    // note: this could be done for other characters provided they work for btoa()\n    return character;\n  }\n  // Note: Will convert to HTML entity\n  return CaseEditUtils.PREFIX + character.charCodeAt(0) + CaseEditUtils.SUFFIX;\n}\n\nexport class CaseEditUtils {\n\n  public static readonly PREFIX = '&#';\n  public static readonly SUFFIX = ';';\n\n  public convertNonASCIICharacters(rawString: string): string {\n    return rawString ? rawString.replace(/[^\\x20-\\x7E]/g, function (c) {\n      return convertNonASCIICharacter(c);\n    }) : '';\n  }\n\n  public convertHTMLEntities(editedString: string): string {\n    const revertedCharacterList = editedString.split(CaseEditUtils.PREFIX);\n    let rawString = revertedCharacterList[0];\n    for (let index = 1; index < revertedCharacterList.length; index++) {\n      const currentSection = revertedCharacterList[index];\n      if (!currentSection.includes(CaseEditUtils.SUFFIX)) {\n        return rawString.concat(currentSection);\n      } else {\n        const suffixSplitList = currentSection.split(CaseEditUtils.SUFFIX);\n        const characterCode = Number(suffixSplitList[0]);\n        rawString = rawString.concat(String.fromCharCode(characterCode), suffixSplitList[1]);\n      }\n    }\n    return rawString;\n  }\n}\n\nexport function removeTaskFromClientContext(sessionStorageService: SessionStorageService): void {\n  if (!sessionStorageService) {\n    return;\n  }\n  const clientContextString = sessionStorageService.getItem(CaseEditComponent.CLIENT_CONTEXT);\n  const clientContext = clientContextString ? JSON.parse(clientContextString) : null;\n  if (clientContext?.client_context?.user_task) {\n    delete clientContext.client_context.user_task;\n    sessionStorageService.setItem(CaseEditComponent.CLIENT_CONTEXT, JSON.stringify(clientContext));\n  }\n} \n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, finalize, map, tap } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { ShowCondition } from '../../../directives';\nimport {\n  CaseEventData,\n  CaseEventTrigger,\n  CasePrintDocument,\n  CaseView,\n  ChallengedAccessRequest, Draft,\n  RoleAssignmentResponse,\n  RoleCategory,\n  RoleRequestPayload, SpecificAccessRequest\n} from '../../../domain';\nimport { UserInfo } from '../../../domain/user/user-info.model';\nimport { FieldsUtils, HttpErrorService, HttpService, LoadingService, OrderService, RetryUtil, SessionStorageService } from '../../../services';\nimport { LinkedCasesResponse } from '../../palette/linked-cases/domain/linked-cases.model';\nimport { CaseAccessUtils } from '../case-access-utils';\nimport { WizardPage } from '../domain';\nimport { WizardPageFieldToCaseFieldMapper } from './wizard-page-field-to-case-field.mapper';\nimport { CaseEditUtils } from '../case-edit-utils/case-edit.utils';\nimport { CaseEditComponent } from '../case-edit';\n\n@Injectable()\nexport class CasesService {\n  // Internal (UI) API\n  public static readonly V2_MEDIATYPE_CASE_VIEW = 'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-case-view.v2+json';\n  public static readonly V2_MEDIATYPE_START_CASE_TRIGGER =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-start-case-trigger.v2+json;charset=UTF-8';\n  public static readonly V2_MEDIATYPE_START_EVENT_TRIGGER =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-start-event-trigger.v2+json;charset=UTF-8';\n  public static readonly V2_MEDIATYPE_START_DRAFT_TRIGGER =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-start-draft-trigger.v2+json;charset=UTF-8';\n\n  // External (Data Store) API\n\n  public static readonly V2_MEDIATYPE_CASE_DOCUMENTS =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.case-documents.v2+json;charset=UTF-8';\n\n  public static readonly V2_MEDIATYPE_CASE_DATA_VALIDATE =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.case-data-validate.v2+json;charset=UTF-8';\n  public static readonly V2_MEDIATYPE_CREATE_EVENT =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-event.v2+json;charset=UTF-8';\n  public static readonly V2_MEDIATYPE_CREATE_CASE =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.create-case.v2+json;charset=UTF-8';\n\n  public static readonly PUI_CASE_MANAGER = 'pui-case-manager';\n\n  public get = this.getCaseView;\n\n  public static updateChallengedAccessRequestAttributes(httpClient: HttpClient, caseId: string, attributesToUpdate: { [x: string]: any })\n    : Observable<RoleAssignmentResponse> {\n    return httpClient.post<RoleAssignmentResponse>(`/api/challenged-access-request/update-attributes`, {\n      caseId,\n      attributesToUpdate\n    });\n  }\n\n  public static updateSpecificAccessRequestAttributes(httpClient: HttpClient, caseId: string, attributesToUpdate: { [x: string]: any })\n    : Observable<RoleAssignmentResponse> {\n    return httpClient.post<RoleAssignmentResponse>(`/api/specific-access-request/update-attributes`, {\n      caseId,\n      attributesToUpdate\n    });\n  }\n\n  constructor(\n    private http: HttpService,\n    private appConfig: AbstractAppConfig,\n    private orderService: OrderService,\n    private errorService: HttpErrorService,\n    private wizardPageFieldToCaseFieldMapper: WizardPageFieldToCaseFieldMapper,\n    private loadingService: LoadingService,\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly retryUtil: RetryUtil\n  ) {\n  }\n\n  public getCaseView(jurisdictionId: string,\n    caseTypeId: string,\n    caseId: string): Observable<CaseView> {\n    const url = `${this.appConfig.getApiUrl()}/caseworkers/:uid/jurisdictions/${jurisdictionId}/case-types/${caseTypeId}/cases/${caseId}`;\n    const loadingToken = this.loadingService.register();\n    return this.http\n      .get(url)\n      .pipe(\n        catchError(error => {\n          this.errorService.setError(error);\n          return throwError(error);\n        }),\n        finalize(() => this.loadingService.unregister(loadingToken))\n      );\n  }\n\n  public getCaseViewV2(caseId: string): Observable<CaseView> {\n    const url = `${this.appConfig.getCaseDataUrl()}/internal/cases/${caseId}`;\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', CasesService.V2_MEDIATYPE_CASE_VIEW)\n      .set('Content-Type', 'application/json');\n    const loadingToken = this.loadingService.register();\n\n    let http$ = this.http.get(url, { headers, observe: 'body' });\n\n    const artificialDelay: number = this.appConfig.getTimeoutsCaseRetrievalArtificialDelay();\n    const timeoutPeriods = this.appConfig.getTimeoutsForCaseRetrieval();\n    console.log(`Timeout periods: ${timeoutPeriods} seconds.`);\n    if (timeoutPeriods && timeoutPeriods.length > 0 && timeoutPeriods[0] > 0) {\n      http$ = this.retryUtil.pipeTimeoutMechanismOn(http$, artificialDelay, timeoutPeriods);\n    } else {\n      console.warn('Skipping to pipe a retry mechanism!');\n    }\n\n    http$ = this.pipeErrorProcessor(http$);\n\n    http$ = http$.pipe(finalize(() => this.finalizeGetCaseViewWith(caseId, loadingToken)));\n\n    return http$;\n  }\n\n  private pipeErrorProcessor(in$: Observable<CaseView>): Observable<CaseView> {\n    const out$ = in$.pipe(catchError(error => {\n      console.error(`Error while getting case view with getCaseViewV2! Error type: '${typeof error}, Error name: '${error?.name}'`);\n      console.error(error);\n      this.errorService.setError(error);\n      return throwError(error);\n    }));\n    return out$;\n  }\n\n  private finalizeGetCaseViewWith(caseId: string, loadingToken: string) {\n    this.loadingService.unregister(loadingToken);\n  }\n\n  public syncWait(seconds) {\n    const end = Date.now() + seconds * 1000;\n    while (Date.now() < end) continue;\n  }\n\n  public getEventTrigger(caseTypeId: string,\n    eventTriggerId: string,\n    caseId?: string,\n    ignoreWarning?: string): Observable<CaseEventTrigger> {\n    ignoreWarning = undefined !== ignoreWarning ? ignoreWarning : 'false';\n    const url = this.buildEventTriggerUrl(caseTypeId, eventTriggerId, caseId, ignoreWarning);\n\n    let headers = new HttpHeaders();\n    headers = headers.set('experimental', 'true');\n    headers = headers.set('Content-Type', 'application/json');\n    headers = this.addClientContextHeader(headers);\n\n    if (Draft.isDraft(caseId)) {\n      headers = headers.set('Accept', CasesService.V2_MEDIATYPE_START_DRAFT_TRIGGER);\n    } else if (caseId !== undefined && caseId !== null) {\n      headers = headers.set('Accept', CasesService.V2_MEDIATYPE_START_EVENT_TRIGGER);\n    } else {\n      headers = headers.set('Accept', CasesService.V2_MEDIATYPE_START_CASE_TRIGGER);\n    }\n\n    return this.http\n      .get(url, { headers, observe: 'response' as 'body'})\n      .pipe(\n        map((response) => {\n          this.updateClientContextStorage(response.headers);\n          return FieldsUtils.handleNestedDynamicLists(response.body);\n        }),\n        catchError(error => {\n          this.errorService.setError(error);\n          return throwError(error);\n        }),\n        map((p) => plainToClass(CaseEventTrigger, p)),\n        tap(eventTrigger => this.initialiseEventTrigger(eventTrigger))\n      );\n  }\n\n  public createEvent(caseDetails: CaseView, eventData: CaseEventData): Observable<{}> {\n    const caseId = caseDetails.case_id;\n    const url = `${this.appConfig.getCaseDataUrl()}/cases/${caseId}/events`;\n    let headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', CasesService.V2_MEDIATYPE_CREATE_EVENT)\n      .set('Content-Type', 'application/json');\n    headers = this.addClientContextHeader(headers);\n    return this.http\n      .post(url, eventData, { headers, observe: 'response' as 'body' })\n      .pipe(\n        map((response) => {\n          this.updateClientContextStorage(response.headers);\n          return response.body;\n        }),\n        catchError(error => {\n          this.errorService.setError(error);\n          return throwError(error);\n        })\n      );\n  }\n\n  public validateCase(ctid: string, eventData: CaseEventData, pageId: string): Observable<object> {\n    const pageIdString = pageId ? `?pageId=${pageId}` : '';\n    const url = `${this.appConfig.getCaseDataUrl()}/case-types/${ctid}/validate${pageIdString}`;\n    let headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', CasesService.V2_MEDIATYPE_CASE_DATA_VALIDATE)\n      .set('Content-Type', 'application/json');\n    headers = this.addClientContextHeader(headers);\n    return this.http\n      .post(url, eventData, { headers, observe: 'response' as 'body' })\n      .pipe(\n        map((response) => {\n          this.updateClientContextStorage(response.headers);\n          return response.body;\n        }),\n        catchError(error => {\n          this.errorService.setError(error);\n          return throwError(error);\n        })\n      );\n  }\n\n  public createCase(ctid: string, eventData: CaseEventData): Observable<object> {\n    let ignoreWarning = 'false';\n    if (eventData.ignore_warning) {\n      ignoreWarning = 'true';\n    }\n    const url = `${this.appConfig.getCaseDataUrl()}/case-types/${ctid}/cases?ignore-warning=${ignoreWarning}`;\n\n    let headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', CasesService.V2_MEDIATYPE_CREATE_CASE)\n      .set('Content-Type', 'application/json');\n    headers = this.addClientContextHeader(headers);\n    return this.http\n      .post(url, eventData, { headers, observe: 'response' as 'body' })\n      .pipe(\n        map((response) => {\n          this.updateClientContextStorage(response.headers);\n          return response.body;\n        }),\n        catchError(error => {\n          this.errorService.setError(error);\n          return throwError(error);\n        })\n      );\n  }\n\n  public getPrintDocuments(caseId: string): Observable<CasePrintDocument[]> {\n    const url = `${this.appConfig.getCaseDataUrl()}/cases/${caseId}/documents`;\n    let headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', CasesService.V2_MEDIATYPE_CASE_DOCUMENTS)\n      .set('Content-Type', 'application/json');\n    headers = this.addClientContextHeader(headers);\n    return this.http\n      .get(url, { headers, observe: 'response' as 'body' })\n      .pipe(\n        map((response) => {\n          this.updateClientContextStorage(response.headers);\n          return response.body.documentResources;\n        }),\n        catchError(error => {\n          this.errorService.setError(error);\n          return throwError(error);\n        })\n      );\n  }\n\n  private buildEventTriggerUrl(caseTypeId: string,\n    eventTriggerId: string,\n    caseId?: string,\n    ignoreWarning?: string): string {\n    let url = `${this.appConfig.getCaseDataUrl()}/internal`;\n    if (Draft.isDraft(caseId)) {\n      url += `/drafts/${caseId}`\n        + `/event-trigger`\n        + `?ignore-warning=${ignoreWarning}`;\n    } else if (caseTypeId === undefined || caseTypeId === null) {\n      url += `/cases/${caseId}`\n        + `/event-triggers/${eventTriggerId}`\n        + `?ignore-warning=${ignoreWarning}`;\n    } else {\n      url += `/case-types/${caseTypeId}`\n        + `/event-triggers/${eventTriggerId}`\n        + `?ignore-warning=${ignoreWarning}`;\n    }\n\n    return url;\n  }\n\n  private initialiseEventTrigger(eventTrigger: CaseEventTrigger) {\n    if (!eventTrigger.wizard_pages) {\n      eventTrigger.wizard_pages = [];\n    }\n\n    eventTrigger.wizard_pages.forEach((wizardPage: WizardPage) => {\n      wizardPage.parsedShowCondition = ShowCondition.getInstance(wizardPage.show_condition);\n      wizardPage.case_fields = this.orderService.sort(\n        this.wizardPageFieldToCaseFieldMapper.mapAll(wizardPage.wizard_page_fields, eventTrigger.case_fields));\n    });\n  }\n\n  public getCourtOrHearingCentreName(locationId: number): Observable<any> {\n    return this.http.post(`/api/locations/getLocationsById`, { locations: [{ locationId }] });\n  }\n\n  public createChallengedAccessRequest(caseId: string, request: ChallengedAccessRequest): Observable<RoleAssignmentResponse> {\n    // Assignment API endpoint\n    const userInfoStr = this.sessionStorageService.getItem('userDetails');\n    const camUtils = new CaseAccessUtils();\n    let userInfo: UserInfo;\n    if (userInfoStr) {\n      userInfo = JSON.parse(userInfoStr);\n    }\n\n    const roleCategory: RoleCategory = userInfo.roleCategory || camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);\n    const roleName = camUtils.getAMRoleName('challenged', roleCategory);\n    const beginTime = new Date();\n    const endTime = new Date(new Date().setUTCHours(23, 59, 59, 999));\n    const id = userInfo.id ? userInfo.id : userInfo.uid;\n    const isNew = true;\n\n    const payload: RoleRequestPayload = camUtils.getAMPayload(id,\n      id,\n      roleName,\n      roleCategory,\n      'CHALLENGED',\n      caseId,\n      request,\n      beginTime,\n      endTime,\n      isNew\n    );\n\n    return this.http.post(`/api/challenged-access-request`, payload);\n  }\n\n  public createSpecificAccessRequest(caseId: string, sar: SpecificAccessRequest): Observable<RoleAssignmentResponse> {\n    // Assignment API endpoint\n    const userInfoStr = this.sessionStorageService.getItem('userDetails');\n\n    const camUtils = new CaseAccessUtils();\n    let userInfo: UserInfo;\n    if (userInfoStr) {\n      userInfo = JSON.parse(userInfoStr);\n    }\n\n    const roleCategory: RoleCategory = userInfo.roleCategory || camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);\n    const roleName = camUtils.getAMRoleName('specific', roleCategory);\n    const id = userInfo.id ? userInfo.id : userInfo.uid;\n    const payload: RoleRequestPayload = camUtils.getAMPayload(null, id,\n      roleName, roleCategory, 'SPECIFIC', caseId, sar, null, null, true);\n\n    payload.roleRequest = {\n      ...payload.roleRequest,\n      process: 'specific-access',\n      replaceExisting: true,\n      assignerId: payload.requestedRoles[0].actorId,\n      reference: `${caseId}/${roleName}/${payload.requestedRoles[0].actorId}`\n    };\n\n    payload.requestedRoles[0] = {\n      ...payload.requestedRoles[0],\n      roleName: 'specific-access-requested',\n      roleCategory,\n      classification: 'PRIVATE',\n      endTime: new Date(new Date().setDate(new Date().getDate() + 30)),\n      beginTime: null,\n      grantType: 'BASIC',\n      readOnly: true\n    };\n\n    payload.requestedRoles[0].attributes = {\n      ...payload.requestedRoles[0].attributes,\n      requestedRole: roleName,\n      specificAccessReason: sar.specificReason\n    };\n\n    payload.requestedRoles[0].notes[0] = {\n      ...payload.requestedRoles[0].notes[0],\n      userId: payload.requestedRoles[0].actorId\n    };\n\n    return this.http.post(\n      `/api/specific-access-request`,\n      payload\n    );\n  }\n\n  public getLinkedCases(caseId: string): Observable<LinkedCasesResponse> {\n    const url = `${this.appConfig.getCaseDataStoreApiUrl()}/${caseId}`;\n    return this.http\n      .get(url)\n      .pipe(catchError(error => throwError(error)));\n  }\n\n  private addClientContextHeader(headers: HttpHeaders): HttpHeaders {\n    const clientContextDetails = this.sessionStorageService.getItem(CaseEditComponent.CLIENT_CONTEXT);\n    if (clientContextDetails) {\n      const caseEditUtils = new CaseEditUtils();\n      // below changes non-ASCII characters \n      const editedClientContext = caseEditUtils.convertNonASCIICharacters(clientContextDetails);\n      const clientContext = window.btoa(editedClientContext);\n      if (clientContext) {\n        headers = headers.set('Client-Context', clientContext);\n      }\n    }\n    return headers;\n  }\n\n  private updateClientContextStorage(headers: HttpHeaders): void {\n    if (headers && headers.get('Client-Context')) {\n      const caseEditUtils = new CaseEditUtils();\n      const clientContextString = window.atob(headers.get('Client-Context'));\n      // below reverts non-ASCII characters \n      const editedClientContextString = caseEditUtils.convertHTMLEntities(clientContextString);\n      this.sessionStorageService.setItem(CaseEditComponent.CLIENT_CONTEXT, editedClientContextString);\n    }\n  }\n}\n","<div *ngIf=\"isDataLoaded()\">\n    <ccd-case-edit [submit]=\"submit()\"\n                   [validate]=\"validate()\"\n                   [saveDraft]=\"saveDraft()\"\n                   [eventTrigger]=\"eventTrigger\"\n                   (cancelled)=\"emitCancelled($event)\"\n                   (submitted)=\"emitSubmitted($event)\"></ccd-case-edit>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { CaseEventData } from '../../../domain/case-event-data.model';\n\nimport { CaseEventTrigger } from '../../../domain/case-view/case-event-trigger.model';\nimport { Draft } from '../../../domain/draft.model';\nimport { HttpError } from '../../../domain/http/http-error.model';\nimport { AlertService } from '../../../services/alert/alert.service';\nimport { DraftService } from '../../../services/draft/draft.service';\nimport { CasesService } from '../services/cases.service';\nimport { EventTriggerService } from '../services/event-trigger.service';\n\n@Component({\n  selector: 'ccd-case-create',\n  templateUrl: 'case-create.component.html',\n  standalone: false\n})\nexport class CaseCreateComponent implements OnInit {\n\n  @Input()\n  public jurisdiction: string;\n  @Input()\n  public caseType: string;\n  @Input()\n  public event: string;\n\n  @Output()\n  public cancelled: EventEmitter<any> = new EventEmitter();\n  @Output()\n  public submitted: EventEmitter<any> = new EventEmitter();\n\n  public eventTrigger: CaseEventTrigger;\n\n  constructor(\n    private readonly casesService: CasesService,\n    private readonly alertService: AlertService,\n    private readonly draftService: DraftService,\n    private readonly eventTriggerService: EventTriggerService,\n  ) {}\n\n  public ngOnInit(): void {\n    this.casesService.getEventTrigger(this.caseType, this.event).toPromise()\n      .then(eventTrigger => {\n        this.eventTrigger = eventTrigger;\n        this.eventTriggerService.announceEventTrigger(eventTrigger);\n      })\n      .catch((error: HttpError) => {\n        this.alertService.error({ phrase: error.message });\n        return throwError(error);\n      });\n  }\n\n  public submit(): (sanitizedEditForm: CaseEventData) => Observable<object> {\n    return (sanitizedEditForm: CaseEventData) => {\n      sanitizedEditForm.draft_id = this.eventTrigger.case_id;\n      return this.casesService.createCase(this.caseType, sanitizedEditForm);\n    };\n  }\n\n  public validate(): (sanitizedEditForm: CaseEventData, pageId: string) => Observable<object> {\n    return (sanitizedEditForm: CaseEventData, pageId: string) => this.casesService\n      .validateCase(this.caseType, sanitizedEditForm, pageId);\n  }\n\n  public saveDraft(): (caseEventData: CaseEventData) => Observable<Draft> {\n    if (this.eventTrigger.can_save_draft) {\n      return (caseEventData: CaseEventData) => this.draftService.createOrUpdateDraft(\n        this.caseType,\n        this.eventTrigger.case_id,\n        caseEventData\n      );\n    }\n  }\n\n  public emitCancelled(event): void {\n    this.cancelled.emit(event);\n  }\n\n  public emitSubmitted(event): void {\n    this.submitted.emit(event);\n  }\n\n  public isDataLoaded(): boolean {\n    return this.eventTrigger ? true : false;\n  }\n}\n","<!-- Current Page && Event trigger name -->\n<h1 class=\"heading-h1\">{{ eventTrigger.name | rpxTranslate}}</h1>\n\n<!--Case ID or Title -->\n<div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n<ng-template #titleBlock>\n  <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: caseFields : editForm.controls['data'] | rpxTranslate\"></ccd-markdown>\n</ng-template>\n<ng-template #idBlock>\n  <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n</ng-template>\n\n<form [formGroup]=\"formGroup\" (submit)=\"submit()\">\n  <div id=\"confirmation-header\" *ngIf=\"confirmation.getHeader()\">\n    <ccd-markdown [content]=\"confirmation.getHeader() | rpxTranslate\"></ccd-markdown>\n  </div>\n  <div id=\"confirmation-body\" *ngIf=\"confirmation.getBody()\">\n    <ccd-markdown [content]=\"confirmation.getBody() | rpxTranslate\"></ccd-markdown>\n  </div>\n  <button type=\"submit\" class=\"button\" data-ng-click=\"submit()\">{{triggerText | rpxTranslate}}</button>\n</form>\n","import { Component } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { CaseEventTrigger } from '../../../domain/case-view/case-event-trigger.model';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { FieldsUtils } from '../../../services/fields/fields.utils';\nimport { CaseEditComponent } from '../case-edit/case-edit.component';\nimport { Confirmation } from '../domain/confirmation.model';\n\n@Component({\n  templateUrl: './case-edit-confirm.html',\n  styleUrls: ['../case-edit.scss'],\n  standalone: false\n})\nexport class CaseEditConfirmComponent {\n  public eventTrigger: CaseEventTrigger;\n  public triggerText = 'Close and Return to case details';\n  public formGroup = new FormControl();\n  public confirmation: Confirmation;\n  public caseFields: CaseField[];\n  public editForm: FormGroup;\n\n  constructor(private readonly caseEdit: CaseEditComponent, private readonly router: Router) {\n    this.eventTrigger = this.caseEdit.eventTrigger;\n    this.editForm = this.caseEdit.form;\n    this.caseFields = this.getCaseFields();\n    if (this.caseEdit.confirmation) {\n      this.confirmation = this.caseEdit.confirmation;\n    } else {\n      this.router.navigate(['/']);\n    }\n  }\n\n  public submit(): void {\n    this.caseEdit.submitted.emit({ caseId: this.confirmation.getCaseId(), status: this.confirmation.getStatus() });\n  }\n\n  public getCaseId(): string {\n    return this.caseEdit?.caseDetails?.case_id || '';\n  }\n\n  public getCaseTitle(): string {\n    return (this.caseEdit.caseDetails && this.caseEdit.caseDetails.state &&\n      this.caseEdit.caseDetails.state.title_display ? this.caseEdit.caseDetails.state.title_display : '');\n  }\n\n  private getCaseFields(): CaseField[] {\n    if (this.caseEdit.caseDetails) {\n      return FieldsUtils.getCaseFields(this.caseEdit.caseDetails);\n    }\n\n    return this.eventTrigger.case_fields;\n  }\n}\n","<ng-container ccdConditionalShowForm [formGroup]=\"formGroup\" [caseFields]=\"fields\" [contextFields]=\"caseFields\"\n              *ngFor=\"let field of fields\">\n\n  <div ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"formGroup\" [contextFields]=\"caseFields\">\n    <ng-container [ngSwitch]=\"field | ccdIsReadOnlyAndNotCollection\">\n\n      <ccd-field-read *ngSwitchCase=\"true\" [caseField]=\"field\" [caseFields]=\"caseFields\" [withLabel]=\"true\"\n                      [formGroup]=\"formGroup\" [attr.field_id]=\"field.id\"\n                      [attr.field_type]=\"field.field_type.type\"></ccd-field-read>\n      <ng-container *ngSwitchCase=\"false\">\n\n        <ng-container *ngIf=\"!(field | ccdIsCompound); else CompoundRow\">\n          <ccd-field-write [caseField]=\"field\"\n                           [caseFields]=\"caseFields\"\n                           [formGroup]=\"formGroup\"\n                           [idPrefix]=\"\"\n                           [hidden]=\"field.hidden\"\n                           [attr.field_id]=\"field.id\"\n                           [attr.field_type]=\"field.field_type.type\">\n          </ccd-field-write>\n        </ng-container>\n\n        <ng-template #CompoundRow>\n          <ccd-field-write [caseField]=\"field\"\n                           [caseFields]=\"caseFields\"\n                           [formGroup]=\"formGroup\"\n                           [idPrefix]=\"field.id + '_'\"\n                           [hidden]=\"field.hidden\"\n                           [attr.field_id]=\"field.id\"\n                           [attr.field_type]=\"field.field_type.type\"></ccd-field-write>\n        </ng-template>\n      </ng-container>\n    </ng-container>\n  </div>\n</ng-container>\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Subject, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { FormValueService } from '../../../services/form/form-value.service';\n\n@Component({\n  selector: 'ccd-case-edit-form',\n  templateUrl: 'case-edit-form.html',\n  standalone: false\n})\nexport class CaseEditFormComponent implements OnDestroy, AfterViewInit {\n\n  @Input()\n  public fields: CaseField[] = [];\n  @Input()\n  public formGroup: FormGroup;\n  @Input()\n  public caseFields: CaseField[] = [];\n  @Input()\n  public pageChangeSubject: Subject<boolean> = new Subject();\n  @Output()\n  public valuesChanged: EventEmitter<any> = new EventEmitter();\n\n  public initial: any;\n  public pageChangeSubscription: Subscription;\n  public formGroupChangeSubscription: Subscription;\n\n  constructor(private readonly formValueService: FormValueService) { }\n\n  public ngOnDestroy(): void {\n    if (this.pageChangeSubscription) {\n      this.pageChangeSubscription.unsubscribe();\n    }\n    if (this.formGroupChangeSubscription) {\n      this.formGroupChangeSubscription.unsubscribe();\n    }\n  }\n\n  // We need the below un/subscribe complexity as we do not have proper page component per page with its AfterViewInit hook\n  // being called on each page load. This is done for \"Cancel and return\" modal from RDM-2302.\n  public ngAfterViewInit(): void {\n    this.retrieveInitialFormValues();\n    this.pageChangeSubscription = this.pageChangeSubject.subscribe(() => {\n      if (this.formGroupChangeSubscription) {\n        this.formGroupChangeSubscription.unsubscribe();\n      }\n      // Timeout is required for the form to be rendered before subscription to form changes and initial form values retrieval.\n      setTimeout(() => {\n        this.subscribeToFormChanges();\n        this.retrieveInitialFormValues();\n      });\n    });\n    this.subscribeToFormChanges();\n  }\n\n  public subscribeToFormChanges() {\n    this.formGroupChangeSubscription = this.formGroup.valueChanges\n      .pipe(\n        debounceTime(200)\n      )\n      .subscribe(_ => this.detectChangesAndEmit(_));\n  }\n\n  public retrieveInitialFormValues() {\n    this.initial = JSON.stringify(this.formValueService.sanitise(this.formGroup.value));\n  }\n\n  public detectChangesAndEmit(changes) {\n    const current = JSON.stringify(this.formValueService.sanitise(changes));\n    this.initial !== current ? this.valuesChanged.emit(true) : this.valuesChanged.emit(false);\n  }\n}","import { FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { CaseView } from '../../domain';\nimport { CaseEditValidationError } from './case-edit-validation.model';\n\nexport class CaseEditDataService {\n  private details$ = new BehaviorSubject<CaseView>(null);\n  private title$ = new BehaviorSubject<string>(null);\n  private formValidationErrors$ = new BehaviorSubject<CaseEditValidationError[]>([]);\n  private editForm$ = new BehaviorSubject<FormGroup>(null);\n  private isLinkedCasesJourneyAtFinalStep$ = new BehaviorSubject<boolean>(null);\n  private eventTriggerName$ = new BehaviorSubject<string>(null);\n  private triggerSubmitEvent$ = new BehaviorSubject<boolean>(null);\n\n  public caseDetails$ = this.details$.asObservable();\n  public caseTitle$ = this.title$.asObservable();\n  public caseEditForm$ = this.editForm$.asObservable();\n  public caseFormValidationErrors$ = this.formValidationErrors$.asObservable();\n  public caseIsLinkedCasesJourneyAtFinalStep$ = this.isLinkedCasesJourneyAtFinalStep$.asObservable();\n  public caseEventTriggerName$ = this.eventTriggerName$.asObservable();\n  public caseTriggerSubmitEvent$ = this.triggerSubmitEvent$.asObservable();\n\n  constructor() { }\n\n  public setCaseDetails(caseDetails: CaseView): void {\n    this.details$.next(caseDetails);\n  }\n\n  public setCaseTitle(caseTitle: string): void {\n    this.title$.next(caseTitle);\n  }\n\n  public setCaseEventTriggerName(triggerName: string): void {\n    this.eventTriggerName$.next(triggerName);\n  }\n\n  public setFormValidationErrors(validationErrors: any[]): void {\n    this.formValidationErrors$.next(validationErrors);\n  }\n\n  public setCaseEditForm(editForm: FormGroup): void {\n    this.editForm$.next(editForm);\n  }\n\n  public clearFormValidationErrors(): void {\n    this.formValidationErrors$.next([]);\n  }\n\n  public setLinkedCasesJourneyAtFinalStep(isAtFinalStep: boolean): void {\n    this.isLinkedCasesJourneyAtFinalStep$.next(isAtFinalStep);\n  }\n\n  public addFormValidationError(validationError: CaseEditValidationError): void {\n    this.formValidationErrors$.next(\n      this.formValidationErrors$.getValue().concat([validationError])\n    );\n  }\n\n  public setTriggerSubmitEvent(state: boolean): void {\n    this.triggerSubmitEvent$.next(state);\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CaseEditDataService } from './case-edit-data.service';\n\n@NgModule({})\nexport class CaseEditDataModule {\n  public static forRoot(): ModuleWithProviders<CaseEditDataModule> {\n    return {\n      ngModule: CaseEditDataModule,\n      providers: [CaseEditDataService],\n    };\n  }\n}\n","import { Component } from '@angular/core';\nimport { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\n\n@Component({\n  selector: 'ccd-save-or-discard-dialog',\n  templateUrl: './save-or-discard-dialog.component.html',\n  styleUrls: ['../action-dialog.component.scss'],\n  standalone: false\n})\nexport class SaveOrDiscardDialogComponent {\n\n  public result: string;\n\n  constructor(private readonly matDialogRef: MatDialogRef<SaveOrDiscardDialogComponent>) {}\n\n  public cancel() {\n    this.result = 'Cancel';\n    this.matDialogRef.close(this.result);\n  }\n  public save() {\n    this.result = 'Save';\n    this.matDialogRef.close(this.result);\n  }\n  public discard() {\n    this.result = 'Discard';\n    this.matDialogRef.close(this.result);\n  }\n}\n","<div>\n  <div class=\"dialog-header\">\n    <h2 (click)=\"cancel()\" class=\"heading-h2 x\">X</h2>\n  </div>\n  <div>\n    <h2 class=\"heading-h2 dialog-title\">{{'Would you like to save changes to this page?' | rpxTranslate}}</h2>\n  </div>\n  <div class=\"dialog-info\">\n    <span class=\"text-info\">{{'You will be taken back to your case list.' | rpxTranslate}}</span>\n  </div>\n  <div>\n    <button type=\"button\" title=\"Save\" class=\"button action-button\" (click)=\"save()\">{{'Save' | rpxTranslate}}</button>\n    <button type=\"button\" title=\"Discard\" class=\"button button-secondary\" (click)=\"discard()\">{{'Discard' | rpxTranslate}}</button>\n  </div>\n</div>\n","import { MatDialogConfig } from '@angular/material/dialog';\n\nexport function initDialog(): MatDialogConfig {\n    const dialogConfig = new MatDialogConfig();\n\n    dialogConfig.disableClose = true;\n    dialogConfig.autoFocus = true;\n    dialogConfig.ariaLabel = 'Label';\n    dialogConfig.height = '245px';\n    dialogConfig.width = '550px';\n    dialogConfig.panelClass = 'dialog';\n    dialogConfig.closeOnNavigation = false;\n    dialogConfig.position = {\n      top: `${window.innerHeight / 2 - 120}px`, left: `${window.innerWidth / 2 - 275}px`\n    };\n\n    return dialogConfig;\n}\n","import { Injectable } from '@angular/core';\nimport { forkJoin, Observable } from 'rxjs';\nimport { CaseView } from '../../../../domain/case-view';\nimport { Jurisdiction } from '../../../../domain/definition/jurisdiction.model';\nimport { JurisdictionService, SearchService } from '../../../../services';\nimport { LovRefDataModel } from '../../../../services/common-data-service/common-data-service';\nimport { CaseLink, ESQueryType, LinkReason } from '../domain';\n\n@Injectable()\nexport class LinkedCasesService {\n  private static readonly CASE_NAME_MISSING_TEXT = 'Case name missing';\n\n  public caseFieldValue = [];\n  public isLinkedCasesEventTrigger = false;\n  public caseDetails: CaseView;\n  public caseId: string;\n  public caseName: string;\n  public linkCaseReasons: LovRefDataModel[] = [];\n  public linkedCases: CaseLink[] = [];\n  public initialCaseLinks: CaseLink[] = [];\n  public editMode = false;\n  public jurisdictionsResponse: Jurisdiction[] = [];\n  public serverJurisdictionError: boolean;\n  public serverError: { id: string, message: string } = null;\n  public serverLinkedApiError: { id: string, message: string } = null;\n  public isServerReasonCodeError = false;\n  public caseJurisdictionID = null;\n  public storedCaseNumber = '';\n  public cameFromFinalStep = false;\n  public hasNavigatedInJourney = false;\n  public hasContinuedFromStart = false;\n  public cachedFieldValues;\n  public initialCaseLinkRefs = [];\n  public casesToUnlink = [];\n\n  constructor(private readonly jurisdictionService: JurisdictionService,\n              private readonly searchService: SearchService) {\n    this.jurisdictionService.getJurisdictions().subscribe((jurisdictions) => {\n      this.jurisdictionsResponse = jurisdictions;\n    }, (error) => {\n      this.serverJurisdictionError = true;\n    });\n  }\n\n  public groupLinkedCasesByCaseType = (arrObj, key) => {\n    return arrObj.reduce((rv, x) => {\n      (rv[x.value[key]] = rv[x.value[key]] || []).push(x.value['CaseReference']);\n      return rv;\n    }, {});\n  }\n\n  public constructElasticSearchQuery(caseIds: any[], size: number): ESQueryType {\n    return {\n      query: {\n        terms: {\n          reference: caseIds,\n        },\n      },\n      size,\n    };\n  }\n\n  public resetLinkedCaseData(): void {\n    //remove the newly added linked case using the linked case\n    this.caseFieldValue = [];\n    this.linkedCases = [];\n    this.initialCaseLinks = [];\n    this.initialCaseLinkRefs = [];\n    this.storedCaseNumber = '';\n    this.cameFromFinalStep = false;\n    this.hasNavigatedInJourney = false;\n    this.caseDetails = null;\n    this.hasContinuedFromStart = false;\n    this.casesToUnlink = [];\n    this.cachedFieldValues = null;\n  }\n\n  public mapResponse(esSearchCasesResponse): any {\n    const caseInfo = this.caseFieldValue.find(item => item.value && item.value.CaseReference === esSearchCasesResponse.case_id);\n    return caseInfo && {\n      caseReference: esSearchCasesResponse.case_id,\n      caseName: esSearchCasesResponse.case_fields.caseNameHmctsInternal || LinkedCasesService.CASE_NAME_MISSING_TEXT,\n      caseType: this.mapLookupIDToValueFromJurisdictions('CASE_TYPE', esSearchCasesResponse.case_fields['[CASE_TYPE]']),\n      service: this.mapLookupIDToValueFromJurisdictions('JURISDICTION', esSearchCasesResponse.case_fields['[JURISDICTION]']),\n      state: this.mapLookupIDToValueFromJurisdictions('STATE', esSearchCasesResponse.case_fields['[STATE]']),\n      reasons: caseInfo?.value?.ReasonForLink\n    };\n  }\n\n  public searchCasesByCaseIds(searchCasesResponse: any[]): Observable<unknown[]> {\n    return forkJoin(searchCasesResponse);\n  }\n\n  public getAllLinkedCaseInformation(): void {\n    const searchCasesResponse = [];\n    const linkedCaseIds = this.groupLinkedCasesByCaseType(this.caseFieldValue, 'CaseType');\n    const caseTypeId = this.caseDetails.case_type.id;\n    Object.keys(linkedCaseIds).forEach(key => {\n      const esQuery = this.constructElasticSearchQuery(linkedCaseIds[key], 100);\n      const query = this.searchService.searchCasesByIds(caseTypeId, esQuery, SearchService.VIEW_WORKBASKET);\n      searchCasesResponse.push(query);\n    });\n    if (searchCasesResponse.length) {\n      this.searchCasesByCaseIds(searchCasesResponse).subscribe((searchCases: any) => {\n        const casesResponse = [];\n        searchCases.forEach(response => {\n          response.results.forEach((result: any) => {\n            casesResponse.push(this.mapResponse(result));\n          });\n        });\n        this.linkedCases = casesResponse.map(item => {\n          return {\n            caseReference: item.caseReference,\n            caseName: item.caseName,\n            caseService: item.service,\n            caseType: item.caseType,\n            unlink: false,\n            reasons: item.reasons && item.reasons.map(reason => {\n              return {\n                Reason: reason\n              } as LinkReason;\n            }),\n          } as CaseLink;\n        });\n        this.initialCaseLinks = this.linkedCases;\n        this.serverLinkedApiError = null;\n      },\n      err => {\n        this.serverLinkedApiError = {\n          id: 'backendError', message: 'Some case information is not available at the moment'\n        };\n      });\n    }\n  }\n\n  public mapLookupIDToValueFromJurisdictions(fieldName, fieldValue): string {\n    const selectedJurisdiction = this.jurisdictionsResponse &&\n      this.jurisdictionsResponse.find(item => item.id === this.caseDetails.case_type.jurisdiction.id);\n    const selectedCaseType = selectedJurisdiction && selectedJurisdiction.caseTypes.find(item => item.id === this.caseDetails.case_type.id);\n    const state = selectedCaseType && selectedCaseType.states.find(item => item.id === fieldValue);\n    switch (fieldName) {\n      case 'JURISDICTION':\n        return selectedJurisdiction && selectedJurisdiction.description;\n      case 'CASE_TYPE':\n        return selectedCaseType && selectedCaseType.name;\n      case 'CASE_TYPE_DESCRIPTION':\n        return selectedCaseType && selectedCaseType.description;\n      case 'STATE':\n        return state && state.name || fieldValue;\n      case 'STATE_DESCRIPTION':\n        return state && state.description || fieldValue;\n      default:\n        break;\n    }\n  }\n\n  public getCaseName(searchCasesResponse: CaseView): string {\n    let caseName = LinkedCasesService.CASE_NAME_MISSING_TEXT;\n    const tabs = searchCasesResponse.tabs.filter(tab => {\n      const caseNameHmctsInternalField = tab.fields.find(field => field.id === 'caseNameHmctsInternal');\n      if (caseNameHmctsInternalField) {\n        caseName = caseNameHmctsInternalField.value;\n      }\n    });\n    return caseName;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Injectable()\nexport class CaseFlagStateService {\n  public formGroup: FormGroup = new FormGroup({});\n  public pageLocation: string;\n  public fieldStateToNavigate: number;\n  public lastPageFieldState: number;\n  public initialCaseFlags: any;\n\n  public resetCache(pageLocation: string): void {\n    this.formGroup = new FormGroup({});\n    this.fieldStateToNavigate = undefined;\n    this.pageLocation = pageLocation;\n    this.lastPageFieldState = 0;\n  }\n\n  public resetInitialCaseFlags(): void {\n    this.initialCaseFlags = undefined;\n  }\n}\n","<ng-container *ngIf=\"currentPage\">\n  <h1 *ngIf=\"!currentPage.label\" class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n  <ng-container *ngIf=\"currentPage.label\">\n    <span class=\"govuk-caption-l\">{{ eventTrigger.name | rpxTranslate}}</span>\n    <h1 class=\"govuk-heading-l\">{{currentPage.label | rpxTranslate}}</h1>\n  </ng-container>\n</ng-container>\n\n<!--Case ID or Title -->\n<div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n<ng-template #titleBlock>\n  <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: caseFields : editForm.controls['data'] | rpxTranslate\"></ccd-markdown>\n</ng-template>\n<ng-template #idBlock>\n  <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n</ng-template>\n\n<!-- Error message summary -->\n<div *ngIf=\"validationErrors.length > 0\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"govuk-error-summary\">\n  <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n    {{'There is a problem' | rpxTranslate}}\n  </h2>\n  <div *ngFor=\"let validationError of validationErrors\" class=\"govuk-error-summary__body\">\n    <ul class=\"govuk-list govuk-error-summary__list\">\n      <li>\n        <a (click)=\"navigateToErrorElement(validationError.id)\" (keyup.enter)=\"navigateToErrorElement(validationError.id)\" tabindex=\"0\" class=\"validation-error\">\n          {{ validationError.message | rpxTranslate: getRpxTranslatePipeArgs(validationError.label | rpxTranslate): null }}\n        </a>\n      </li>\n    </ul>\n  </div>\n</div>\n\n<ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n<ccd-callback-errors\n  [triggerTextContinue]=\"triggerTextStart\"\n  [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n  [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n  (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<div class=\"width-50\">\n  <form *ngIf=\"currentPage\" class=\"form\" [formGroup]=\"editForm\" (submit)=\"nextStep()\">\n    <fieldset id=\"fieldset-case-data\">\n      <legend style=\"display: none;\"></legend>\n      <!-- single column -->\n      <ccd-case-edit-form id='caseEditForm' *ngIf=\"!currentPage.isMultiColumn()\" [fields]=\"currentPage.getCol1Fields()\"\n                          [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"\n                          [pageChangeSubject]=\"pageChangeSubject\"\n                          (valuesChanged)=\"applyValuesChanged($event)\"></ccd-case-edit-form>\n      <!-- two columns -->\n      <div *ngIf=\"currentPage.isMultiColumn()\" class=\"grid-row\">\n        <div class=\"column-two-thirds rightBorderSeparator\">\n          <ccd-case-edit-form id='caseEditForm1' [fields]=\"currentPage.getCol1Fields()\"\n                              [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n        </div>\n        <div class=\"column-one-third\">\n          <ccd-case-edit-form id='caseEditForm2' [fields]=\"currentPage.getCol2Fields()\"\n                              [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n        </div>\n      </div>\n    </fieldset>\n\n    <div class=\"form-group form-group-related\">\n      <button class=\"button button-secondary\" type=\"button\" (click)=\"toPreviousPage()\" *ngIf=\"!isAtStart()\" [disabled]=\"isDisabled()\">\n        {{'Previous' | rpxTranslate}}\n      </button>\n      <button class=\"button\" type=\"submit\" [disabled]=\"submitting()\">{{triggerText | rpxTranslate}}</button>\n    </div>\n\n    <p class=\"cancel\"><button type=\"button\" (click)=\"cancel()\" class=\"govuk-js-link\">{{getCancelText() | rpxTranslate}}</button></p>\n  </form>\n</div>\n\n<ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n  [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n  (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n</ccd-case-event-completion>\n","import { AfterViewChecked, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormArray, FormGroup } from '@angular/forms';\nimport { MatLegacyDialog as MatDialog, MatLegacyDialogConfig as MatDialogConfig} from '@angular/material/legacy-dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { BehaviorSubject, Subject, Subscription } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { CaseEditDataService, CaseEditValidationError } from '../../../commons/case-edit-data';\nimport { CaseEventData } from '../../../domain/case-event-data.model';\nimport { CaseEventTrigger } from '../../../domain/case-view/case-event-trigger.model';\nimport { CaseField } from '../../../domain/definition';\nimport { DRAFT_PREFIX } from '../../../domain/draft.model';\nimport { AddressesService, LoadingService, MultipageComponentStateService } from '../../../services';\nimport { CaseFieldService } from '../../../services/case-fields/case-field.service';\nimport { FieldsUtils } from '../../../services/fields';\nimport { FormErrorService } from '../../../services/form/form-error.service';\nimport { FormValueService } from '../../../services/form/form-value.service';\nimport { SaveOrDiscardDialogComponent } from '../../dialogs/save-or-discard-dialog';\nimport { CallbackErrorsContext } from '../../error/domain/error-context';\nimport { initDialog } from '../../helpers';\nimport { CaseEditComponent } from '../case-edit/case-edit.component';\nimport { WizardPage } from '../domain/wizard-page.model';\nimport { Wizard } from '../domain/wizard.model';\nimport { PageValidationService } from '../services/page-validation.service';\nimport { ValidPageListCaseFieldsService } from '../services/valid-page-list-caseFields.service';\nimport { JourneyInstigator } from '../../../domain/journey';\nimport { LinkedCasesService } from '../../palette/linked-cases/services/linked-cases.service';\nimport { CaseFlagStateService } from '../services/case-flag-state.service';\n\n@Component({\n  selector: 'ccd-case-edit-page',\n  templateUrl: 'case-edit-page.html',\n  styleUrls: ['./case-edit-page.scss'],\n  standalone: false\n})\nexport class CaseEditPageComponent implements OnInit, AfterViewChecked, OnDestroy, JourneyInstigator {\n  public static readonly RESUMED_FORM_DISCARD = 'RESUMED_FORM_DISCARD';\n  public static readonly NEW_FORM_DISCARD = 'NEW_FORM_DISCARD';\n  public static readonly NEW_FORM_SAVE = 'NEW_FORM_CHANGED_SAVE';\n  public static readonly RESUMED_FORM_SAVE = 'RESUMED_FORM_SAVE';\n  public static readonly TRIGGER_TEXT_START = 'Continue';\n  public static readonly TRIGGER_TEXT_SAVE = 'Save and continue';\n  public static readonly TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Continue';\n\n  public eventTrigger: CaseEventTrigger;\n  public editForm: FormGroup;\n  public wizard: Wizard;\n  public currentPage: WizardPage;\n  public dialogConfig: MatDialogConfig;\n  public triggerTextStart = CaseEditPageComponent.TRIGGER_TEXT_START;\n  public triggerTextIgnoreWarnings = CaseEditPageComponent.TRIGGER_TEXT_CONTINUE;\n  public triggerText: string;\n  public formValuesChanged = false;\n  public pageChangeSubject: Subject<boolean> = new Subject();\n  public caseFields: CaseField[];\n  public failingCaseFields: CaseField[];\n  public validationErrors: CaseEditValidationError[] = [];\n  public hasPreviousPage$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n  public callbackErrorsSubject: Subject<any> = new Subject();\n  public isLinkedCasesJourneyAtFinalStep: boolean;\n  public routeParamsSub: Subscription;\n  public caseEditFormSub: Subscription;\n  public caseIsLinkedCasesJourneyAtFinalStepSub: Subscription;\n  public caseTriggerSubmitEventSub: Subscription;\n  public validateSub: Subscription;\n  public dialogRefAfterClosedSub: Subscription;\n  public saveDraftSub: Subscription;\n  public caseFormValidationErrorsSub: Subscription;\n\n  private static scrollToTop(): void {\n    window.scrollTo(0, 0);\n  }\n\n  private static setFocusToTop() {\n    const topContainer = document.getElementById('top');\n    if (topContainer) {\n      topContainer.focus();\n    }\n  }\n\n  constructor(\n    public caseEdit: CaseEditComponent,\n    private readonly route: ActivatedRoute,\n    private readonly formValueService: FormValueService,\n    private readonly formErrorService: FormErrorService,\n    private readonly cdRef: ChangeDetectorRef,\n    private readonly pageValidationService: PageValidationService,\n    private readonly dialog: MatDialog,\n    private readonly caseFieldService: CaseFieldService,\n    private readonly caseEditDataService: CaseEditDataService,\n    private readonly loadingService: LoadingService,\n    private readonly validPageListCaseFieldsService: ValidPageListCaseFieldsService,\n    private readonly multipageComponentStateService: MultipageComponentStateService,\n    private readonly addressService: AddressesService,\n    private readonly linkedCasesService: LinkedCasesService,\n    private readonly caseFlagStateService: CaseFlagStateService\n  ) {\n    this.multipageComponentStateService.setInstigator(this);\n  }\n\n  public onFinalNext(): void {\n    this.submit();\n  }\n\n  public onFinalPrevious(): void {\n    this.cancel();\n  }\n\n  public getPageNumber(){\n    return this.multipageComponentStateService.getJourneyCollection()[0]?.linkedCasesPage !== undefined ? this.multipageComponentStateService.getJourneyCollection()[0]?.linkedCasesPage : this.multipageComponentStateService.getJourneyCollection()[0]?.fieldState;\n  }\n\n  public isAtStart(): boolean {\n    const pageNumberToUse = this.getPageNumber();\n    if (pageNumberToUse === undefined){\n      return false;\n    }\n    return pageNumberToUse === this.multipageComponentStateService.getJourneyCollection()[0]?.journeyStartPageNumber;\n  }\n\n  public isAtEnd(): boolean {\n    return this.multipageComponentStateService.getJourneyCollection()[0]?.fieldState === this.multipageComponentStateService.getJourneyCollection()[0]?.journeyEndPageNumber;\n  }\n\n  public isDisabled(): boolean {\n    if (this.getPageNumber() === undefined){\n      return !this.hasPreviousPage$.value;\n    }\n    return this.isAtStart();\n  }\n\n  // This method will be triggered by the next button in the app component\n  public nextStep(): void {\n    this.multipageComponentStateService.next();\n  }\n\n  // This method will be triggered by the previous button in the app component\n  public previousStep(): void {\n    this.multipageComponentStateService.previous();\n  }\n\n  public ngOnInit(): void {\n    initDialog();\n    this.eventTrigger = this.caseEdit.eventTrigger;\n    this.editForm = this.caseEdit.form;\n    this.wizard = this.caseEdit.wizard;\n    this.caseFields = this.getCaseFields();\n\n    this.syncCaseEditDataService();\n\n    this.routeParamsSub = this.route.params\n      .subscribe(params => {\n        const pageId = params['page'];\n        /* istanbul ignore else */\n        if (!this.currentPage || pageId !== this.currentPage?.id) {\n          const page = this.caseEdit.getPage(pageId);\n          if (page) {\n            this.currentPage = page;\n          } else {\n            if (this.currentPage) {\n              return this.next();\n            } else {\n              return this.first();\n            }\n          }\n          this.hasPreviousPage$.next(this.caseEdit.hasPrevious(this.currentPage?.id));\n        }\n        this.triggerText = this.getTriggerText();\n      });\n    CaseEditPageComponent.setFocusToTop();\n    this.caseEditFormSub = this.caseEditDataService.caseEditForm$.subscribe({\n      next: editForm => this.editForm = editForm\n    });\n    this.caseIsLinkedCasesJourneyAtFinalStepSub =\n      this.caseEditDataService.caseIsLinkedCasesJourneyAtFinalStep$.subscribe({\n        next: isLinkedCasesJourneyAtFinalStep => this.isLinkedCasesJourneyAtFinalStep = isLinkedCasesJourneyAtFinalStep\n      });\n    this.caseTriggerSubmitEventSub = this.caseEditDataService.caseTriggerSubmitEvent$.subscribe({\n      next: state => {\n        if (state) {\n          this.caseEditDataService.setTriggerSubmitEvent(false);\n          this.submit();\n        }\n      }\n    });\n  }\n\n  public ngAfterViewChecked(): void {\n    this.cdRef.detectChanges();\n  }\n\n  public ngOnDestroy(): void {\n    this.routeParamsSub?.unsubscribe();\n    this.caseEditFormSub?.unsubscribe();\n    this.caseIsLinkedCasesJourneyAtFinalStepSub?.unsubscribe();\n    this.caseTriggerSubmitEventSub?.unsubscribe();\n    this.validateSub?.unsubscribe();\n    this.dialogRefAfterClosedSub?.unsubscribe();\n    this.saveDraftSub?.unsubscribe();\n    this.caseFormValidationErrorsSub?.unsubscribe();\n    this.multipageComponentStateService.reset();\n  }\n\n  public applyValuesChanged(valuesChanged: boolean): void {\n    this.formValuesChanged = valuesChanged;\n  }\n\n  public first(): Promise<boolean> {\n    return this.caseEdit.first();\n  }\n\n  public currentPageIsNotValid(): boolean {\n    this.editForm.updateValueAndValidity();\n    this.failingCaseFields = this.pageValidationService.getInvalidFields(this.currentPage, this.editForm);\n    return this.failingCaseFields.length > 0 ||\n      (this.isLinkedCasesJourney() && !this.isLinkedCasesJourneyAtFinalStep);\n  }\n\n  public isLinkedCasesJourney(): boolean {\n    return FieldsUtils.containsLinkedCasesCaseField(this.currentPage.case_fields);\n  }\n\n  /**\n   * caseEventData.event_data contains all the values from the previous pages so we set caseEventData.data = caseEventData.event_data\n   * This builds the form with data from the previous pages\n   * EUI-3732 - Breathing space data not persisted on Previous button click with ExpUI Demo\n   */\n  public toPreviousPage(): void {\n    this.caseEditDataService.clearFormValidationErrors();\n    const caseEventData: CaseEventData = this.buildCaseEventData(true);\n    caseEventData.data = caseEventData.event_data;\n    this.updateFormData(caseEventData);\n    this.previous();\n    if (this.getPageNumber() !== undefined){\n      this.previousStep();\n    }\n    CaseEditPageComponent.setFocusToTop();\n  }\n\n  // Adding validation message to show it as Error Summary\n  public generateErrorMessage(fields: CaseField[], container?: AbstractControl, path?: string): boolean {\n    const group: AbstractControl = container || this.editForm.controls['data'];\n    let validErrorFieldFound = false;\n    let validationErrorAmount = this.validationErrors.length;\n    const failingFields = fields.filter(casefield => !this.caseFieldService.isReadOnly(casefield))\n      .filter(casefield => !this.pageValidationService.isHidden(casefield, this.editForm, path));\n    // note that thougn these checks are on getinvalidfields they are needed for sub field checks\n    failingFields\n      .forEach(casefield => {\n        let errorPresent = true;\n        validErrorFieldFound = true;\n        const fieldElement = FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])\n          ? group.get(`${casefield.id}_judicialUserControl`)\n          : group.get(casefield.id);\n        if (fieldElement) {\n          const label = casefield.label || 'Field';\n          let id = casefield.id;\n          if (fieldElement['component'] && fieldElement['component'].parent) {\n            if (fieldElement['component'].idPrefix.indexOf(`_${id}_`) === -1) {\n              id = `${fieldElement['component'].idPrefix}${id}`;\n            } else {\n              id = `${fieldElement['component'].idPrefix}`;\n            }\n          }\n          if (fieldElement.hasError('required')) {\n            if (casefield.id === 'AddressLine1') {\n              // EUI-1067 - Display more relevant error message to user and correctly navigate to the field\n              this.addressService.setMandatoryError(true);\n              this.caseEditDataService.addFormValidationError({ id: `${path}_${path}`, message: `An address is required` });\n            } else {\n              this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is required`, label });\n            }\n            fieldElement.markAsDirty();\n            // For the JudicialUser field type, an error needs to be set on the component so that an error message\n            // can be displayed at field level\n            if (FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])) {\n              fieldElement['component'].errors = { required: true };\n            }\n          } else if (fieldElement.hasError('pattern')) {\n            this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is not valid`, label });\n            fieldElement.markAsDirty();\n          } else if (fieldElement.hasError('minlength')) {\n            this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is below the minimum length`, label });\n            fieldElement.markAsDirty();\n          } else if (fieldElement.hasError('maxlength')) {\n            this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% exceeds the maximum length`, label });\n            fieldElement.markAsDirty();\n          } else if (fieldElement.invalid) {\n            if (casefield.isComplex()) {\n              errorPresent = this.generateErrorMessage(casefield.field_type.complex_fields, fieldElement, id);\n            } else if (casefield.isCollection() && casefield.field_type.collection_field_type.type === 'Complex') {\n              const fieldArray = fieldElement as FormArray;\n              if (fieldArray['component'] && fieldArray['component']['collItems'] && fieldArray['component']['collItems'].length > 0) {\n                id = `${fieldArray['component']['collItems'][0].prefix}`;\n              }\n              fieldArray.controls.forEach((c: AbstractControl) => {\n                const idPrefix = c.get('value')['component'].idPrefix;\n                id = idPrefix !== id ? idPrefix : id;\n                errorPresent = this.generateErrorMessage(casefield.field_type.collection_field_type.complex_fields, c.get('value'), id);\n              });\n            } else if (FieldsUtils.isCaseFieldOfType(casefield, ['FlagLauncher'])) {\n              this.validationErrors.push({\n                id,\n                message: FieldsUtils.getValidationErrorMessageForFlagLauncherCaseField(casefield)\n              });\n            } else {\n              this.validationErrors.push({ id, message: `Select or fill the required ${casefield.label} field` });\n              fieldElement.markAsDirty();\n            }\n          }\n        } else {\n          validErrorFieldFound = false;\n        }\n        if (!errorPresent && this.validationErrors.length === validationErrorAmount) {\n          // if no error messages have been added in internal field despite parent field failing\n          this.validationErrors.push({ id: casefield.id, message: `A field that is causing an error is ${casefield.id} but it is not producing a valid error message. Please ensure all details are correct` });\n        }\n      });\n    if (!validErrorFieldFound) {\n      path ? this.validationErrors.push({ id: path, message: `There is an internal issue with ${path} fields. The field that is causing the error cannot be determined but there is an error present` })\n        : this.validationErrors.push({ id: null, message: `The field that is causing the error cannot be determined but there is an error present` });\n    } else if (this.validationErrors.length === validationErrorAmount) {\n      // if no error messages have been generated\n      if (path) {\n        return false;\n      } else {\n        this.validationErrors.push({ id: null, message: `The field that is causing the error cannot be determined but there is an error present. Please fill in more of the form` })\n      }\n    }\n    CaseEditPageComponent.scrollToTop();\n    return true;\n  }\n\n  public navigateToErrorElement(elementId: string): void {\n    /* istanbul ignore else */\n    if (elementId) {\n      const htmlElement = document.getElementById(elementId);\n      /* istanbul ignore else */\n      if (htmlElement) {\n        htmlElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n        htmlElement.focus();\n      }\n    }\n  }\n\n  public checkForStagesCompleted() {\n    const dataControls = this.editForm.controls['data'];\n    if (dataControls) {\n      const flagLauncher = dataControls.get('flagLauncherInternal');\n      if (flagLauncher) {\n        if (flagLauncher.hasError('notAllCaseFlagStagesCompleted') && this.isAtEnd()) {\n          flagLauncher.setErrors(null);\n        }\n      }\n    }\n  }\n\n  public submit(): void {\n    // in some scenarios the fieldstate can be set to 0 even though the user is at the end of a journey, check for this case and set vars\n    const journeyPageNumber = this.multipageComponentStateService.getJourneyCollection()[0]?.journeyPageNumber;\n    const fieldState = this.caseFlagStateService?.fieldStateToNavigate;\n    if (this.eventTrigger.id === 'c100ManageFlags') {\n      if ((fieldState === 0 || fieldState === undefined || journeyPageNumber > fieldState) && fieldState !== journeyPageNumber) {\n        this.caseFlagStateService.fieldStateToNavigate = journeyPageNumber;\n        this.caseFlagStateService.lastPageFieldState = journeyPageNumber;\n      }\n    }\n    if ((!this.linkedCasesService.isLinkedCasesEventTrigger) && (this.linkedCasesService.casesToUnlink.length > 0)) {\n      // ensure cfv is set correctly\n      this.linkedCasesService.caseFieldValue = this.linkedCasesService.caseFieldValue.filter(\n        (caseFieldValue) => !this.linkedCasesService.casesToUnlink.some((link) => caseFieldValue.id === link)\n      );\n      //ensure that the values are not lost when navigating back\n      if (this.editForm.controls.data['controls'].caseLinks.controls){\n        this.editForm.controls.data.value.caseLinks = this.linkedCasesService.caseFieldValue;\n      }\n      // these get added somehow somewhere, but if we are unlinking we dont want them, remove them\n      if ('caseNameHmctsInternal' in this.editForm.controls.data.value) {\n        delete this.editForm.controls.data.value.caseNameHmctsInternal;\n        (this.editForm.controls['data'] as FormGroup).removeControl('caseNameHmctsInternal');\n      }\n      if ('maintainCaseLinksFlag' in this.editForm.controls.data.value) {\n        delete this.editForm.controls.data.value.maintainCaseLinksFlag;\n        (this.editForm.controls['data'] as FormGroup).removeControl('maintainCaseLinksFlag');\n      }\n    }\n    if (this.linkedCasesService.isLinkedCasesEventTrigger && this.linkedCasesService.linkedCases.length > 0){\n      // these get added somehow somewhere, remove them\n      if ('caseNameHmctsInternal' in this.editForm.controls.data.value && (this.editForm?.controls?.data?.value?.caseNameHmctsInternal === null)) {\n        ((this.editForm.controls['data'] as FormGroup)).removeControl('caseNameHmctsInternal');\n      }\n      if ('caseLinksFlag' in this.editForm.controls.data.value && (this.editForm?.controls?.data?.value?.caseLinksFlag === null)) {\n        ((this.editForm.controls['data'] as FormGroup)).removeControl('caseLinksFlag');\n      }\n    }\n\n    this.caseEditDataService.clearFormValidationErrors();\n    this.checkForStagesCompleted();\n    if (this.currentPageIsNotValid()) {\n      // The generateErrorMessage method filters out the hidden fields.\n      // The error message for LinkedCases journey will never get displayed because the\n      // LinkedCases is configured with ComponentLauncher field as visible and caseLinks field as hidden.\n      if (this.isLinkedCasesJourney()) {\n        this.validationErrors.push({ id: 'next-button', message: 'Please select Next to go to the next page' });\n        CaseEditPageComponent.scrollToTop();\n      } else {\n        this.generateErrorMessage(this.failingCaseFields);\n      }\n    }\n\n    if (!this.caseEdit.isSubmitting && !this.currentPageIsNotValid()) {\n      this.addressService.setMandatoryError(false);\n      console.log('Case Edit Error', this.caseEdit.error);\n      if (this.caseEdit.validPageList.findIndex(page=> page.id === this.currentPage.id) === -1) {\n        this.caseEdit.validPageList.push(this.currentPage);\n      }\n      this.caseEdit.isSubmitting = true;\n      this.caseEdit.error = null;\n      const caseEventData: CaseEventData = this.buildCaseEventData();\n      const loadingSpinnerToken = this.loadingService.register();\n      this.validateSub = this.caseEdit.validate(caseEventData, this.currentPage.id)\n        .pipe(\n          finalize(() => {\n            this.loadingService.unregister(loadingSpinnerToken);\n            this.caseEdit.isSubmitting = false;\n          })\n        )\n        .subscribe((jsonData) => {\n          /* istanbul ignore else */\n          if (jsonData) {\n            this.updateFormData(jsonData as CaseEventData);\n          }\n          this.saveDraft();\n          this.next();\n        }, error => {\n          this.handleError(error);\n        });\n      CaseEditPageComponent.scrollToTop();\n      // Remove all JudicialUser FormControls with the ID suffix \"_judicialUserControl\" because these are not\n      // intended to be present in the Case Event data (they are added only for value selection and validation\n      // purposes)\n      this.removeAllJudicialUserFormControls(this.currentPage, this.editForm);\n    }\n    CaseEditPageComponent.setFocusToTop();\n  }\n\n  public updateFormData(jsonData: CaseEventData): void {\n    for (const caseFieldId of Object.keys(jsonData.data)) {\n      /* istanbul ignore else */\n      if (this.pageWithFieldExists(caseFieldId)) {\n        this.updateEventTriggerCaseFields(caseFieldId, jsonData, this.caseEdit.eventTrigger);\n        this.updateFormControlsValue(this.editForm, caseFieldId, jsonData.data[caseFieldId]);\n      }\n    }\n  }\n\n  // we do the check, becasue the data comes from the external source\n  public pageWithFieldExists(caseFieldId: string) {\n    return this.wizard.findWizardPage(caseFieldId);\n  }\n\n  public updateEventTriggerCaseFields(caseFieldId: string, jsonData: CaseEventData, eventTrigger: CaseEventTrigger) {\n    /* istanbul ignore else */\n    if (eventTrigger?.case_fields) {\n      eventTrigger.case_fields\n        .filter(element => element.id === caseFieldId)\n        .forEach(element => {\n          if (this.isAnObject(element.value)) {\n            const updatedJsonDataObject = this.updateJsonDataObject(caseFieldId, jsonData, element);\n\n            element.value = {\n              ...element.value,\n              ...updatedJsonDataObject,\n            };\n          } else {\n            element.value = jsonData.data[caseFieldId];\n          }\n        });\n    }\n  }\n\n  private updateJsonDataObject(caseFieldId: string, jsonData: CaseEventData, element: CaseField): Record<string, unknown> {\n    return Object.keys(jsonData.data[caseFieldId]).reduce((acc, key) => {\n      const elementValue = element.value[key];\n      const jsonDataValue = jsonData.data[caseFieldId][key];\n      const hasElementGotValueProperty = this.isAnObject(elementValue) && elementValue.value !== undefined;\n      const jsonDataOrElementValue = jsonDataValue?.value !== null && jsonDataValue?.value !== undefined ? jsonDataValue : elementValue;\n\n      return {\n        ...acc,\n        [`${key}`]: hasElementGotValueProperty ? jsonDataOrElementValue : jsonDataValue\n      };\n    }, {});\n  }\n\n  private isAnObject(property: unknown): boolean {\n    return typeof property === 'object' && !Array.isArray(property) && property !== null;\n  }\n\n  public updateFormControlsValue(formGroup: FormGroup, caseFieldId: string, value: any): void {\n    const theControl = formGroup.controls['data'].get(caseFieldId);\n    if (theControl && theControl['status'] !== 'DISABLED') {\n      if (Array.isArray(theControl.value) && Array.isArray(value)\n        && theControl.value.length > value.length && theControl['caseField']\n        && theControl['caseField']['display_context'] && theControl['caseField']['display_context'] === 'OPTIONAL'\n        && theControl['caseField']['field_type'] && theControl['caseField']['field_type']['type'] === 'Collection') {\n        // do nothing\n      } else {\n        theControl.patchValue(value);\n      }\n    }\n  }\n\n  public callbackErrorsNotify(errorContext: CallbackErrorsContext) {\n    this.caseEdit.ignoreWarning = errorContext.ignoreWarning;\n    this.triggerText = errorContext.triggerText;\n  }\n\n  public next(): Promise<boolean> {\n    if (this.canNavigateToSummaryPage()) {\n      this.caseEdit.isSubmitting = false;\n    }\n    this.resetErrors();\n    this.formValuesChanged = false;\n    this.pageChangeSubject.next(true);\n    return this.caseEdit.next(this.currentPage.id);\n  }\n\n  public previous(): Promise<boolean> {\n    this.resetErrors();\n    this.saveDraft();\n    this.formValuesChanged = false;\n    this.pageChangeSubject.next(true);\n    return this.caseEdit.previous(this.currentPage.id);\n  }\n\n  public hasPrevious(): boolean {\n    return this.caseEdit.hasPrevious(this.currentPage.id);\n  }\n\n  public cancel(): void {\n    if (this.isLinkedCasesJourney()) {\n      this.resetLinkedCaseJourney();\n    }\n    if (this.eventTrigger.can_save_draft) {\n      if (this.formValuesChanged) {\n        const dialogRef = this.dialog.open(SaveOrDiscardDialogComponent, this.dialogConfig);\n        this.dialogRefAfterClosedSub = dialogRef.afterClosed().subscribe(result => {\n          if (result === 'Discard') {\n            this.discard();\n          } else if (result === 'Save') {\n            const draftCaseEventData: CaseEventData = this.formValueService.sanitise(this.editForm.value) as CaseEventData;\n            if (this.route.snapshot.queryParamMap.get(CaseEditComponent.ORIGIN_QUERY_PARAM) === 'viewDraft') {\n              this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.RESUMED_FORM_SAVE, data: draftCaseEventData });\n            } else {\n              this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.NEW_FORM_SAVE, data: draftCaseEventData });\n            }\n          }\n        });\n      } else {\n        this.discard();\n      }\n    } else {\n      this.caseEdit.cancelled.emit();\n    }\n\n    this.caseEditDataService.clearFormValidationErrors();\n    this.multipageComponentStateService.reset();\n  }\n\n  public resetLinkedCaseJourney(): void {\n    // if the user cancels the journey we need to clean up the data\n    const linkedCasesTab = this.caseEdit?.caseDetails?.tabs?.find((tab) =>\n      tab?.fields?.some((field) => field.id === 'caseLinks')\n    )?.fields?.[0] ?? null;\n    const initalLinks = this.linkedCasesService.initialCaseLinkRefs;\n    if (linkedCasesTab && linkedCasesTab?.value?.length !== initalLinks?.length) {\n      const initialCaseRefs = this.linkedCasesService.initialCaseLinkRefs;\n      linkedCasesTab.value = linkedCasesTab.value?.filter((item) =>\n        initialCaseRefs?.includes(item.value.CaseReference)\n      );\n      linkedCasesTab.formatted_value = linkedCasesTab.formatted_value?.filter((item) =>\n        initialCaseRefs?.includes(item.value?.CaseReference)\n      );\n    }\n    if (linkedCasesTab && (linkedCasesTab?.formatted_value?.length !== initalLinks?.length)) {\n      linkedCasesTab.value = linkedCasesTab.formatted_value;\n    }\n    this.linkedCasesService.resetLinkedCaseData();\n  }\n\n  public submitting(): boolean {\n    return this.caseEdit.isSubmitting;\n  }\n\n  public getCaseId(): string {\n    return (this.caseEdit.caseDetails ? this.caseEdit.caseDetails.case_id : '');\n  }\n\n  public getCaseTitle(): string {\n    return (this.caseEdit.caseDetails && this.caseEdit.caseDetails.state &&\n      this.caseEdit.caseDetails.state.title_display ? this.caseEdit.caseDetails.state.title_display : '');\n  }\n\n  public getCancelText(): string {\n    return this.eventTrigger.can_save_draft ? 'Return to case list' : 'Cancel';\n  }\n\n  private canNavigateToSummaryPage(): boolean {\n    const nextPage = this.caseEdit.getNextPage({\n      currentPageId: this.currentPage?.id,\n      wizard: this.wizard,\n      eventTrigger: this.eventTrigger,\n      form: this.editForm\n    });\n\n    return this.eventTrigger.show_summary || !!nextPage;\n  }\n\n  private getTriggerText(): string {\n    const textBasedOnCanSaveDraft = this.eventTrigger?.can_save_draft\n      ? CaseEditPageComponent.TRIGGER_TEXT_SAVE\n      : CaseEditPageComponent.TRIGGER_TEXT_START;\n\n    return this.canNavigateToSummaryPage()\n      ? textBasedOnCanSaveDraft\n      : 'Submit';\n  }\n\n  private discard(): void {\n    if (this.route.snapshot.queryParamMap.get(CaseEditComponent.ORIGIN_QUERY_PARAM) === 'viewDraft') {\n      this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.RESUMED_FORM_DISCARD });\n    } else {\n      this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.NEW_FORM_DISCARD });\n    }\n  }\n\n  private handleError(error) {\n    this.caseEdit.isSubmitting = false;\n    this.caseEdit.error = error;\n    this.caseEdit.callbackErrorsSubject.next(this.caseEdit.error);\n    this.callbackErrorsSubject.next(this.caseEdit.error);\n    /* istanbul ignore else */\n    if (this.caseEdit.error.details) {\n      this.formErrorService\n        .mapFieldErrors(this.caseEdit.error.details.field_errors, this.editForm?.controls?.['data'] as FormGroup, 'validation');\n    }\n    console.log('handleError ', error);\n  }\n\n  private resetErrors(): void {\n    this.caseEdit.error = null;\n    this.caseEdit.ignoreWarning = false;\n    this.triggerText = this.getTriggerText();\n    if (this.caseEdit.callbackErrorsSubject) {\n      this.caseEdit.callbackErrorsSubject.next(null);\n    }\n  }\n\n  private saveDraft() {\n    if (this.eventTrigger.can_save_draft) {\n      const draftCaseEventData: CaseEventData = this.formValueService.sanitise(this.editForm.value) as CaseEventData;\n      draftCaseEventData.event_token = this.eventTrigger.event_token;\n      draftCaseEventData.ignore_warning = this.caseEdit.ignoreWarning;\n      this.saveDraftSub = this.caseEdit.saveDraft(draftCaseEventData).subscribe(\n        (draft) => this.eventTrigger.case_id = DRAFT_PREFIX + draft.id, error => this.handleError(error)\n      );\n    }\n  }\n\n  private getCaseFields(): CaseField[] {\n    if (this.caseEdit.caseDetails) {\n      return FieldsUtils.getCaseFields(this.caseEdit.caseDetails);\n    }\n\n    return this.eventTrigger.case_fields;\n  }\n\n  private getCaseFieldsFromCurrentAndPreviousPages(): CaseField[] {\n    const result: CaseField[] = [];\n    this.wizard.pages.forEach(page => {\n      if (page.order <= this.currentPage.order) {\n        page.case_fields.forEach(field => result.push(field));\n      }\n    });\n    return result;\n  }\n\n  public buildCaseEventData(fromPreviousPage?: boolean): CaseEventData {\n    const formValue: object = this.editForm.value;\n\n    // Get the CaseEventData for the current page.\n    const pageFields: CaseField[] = this.currentPage.case_fields;\n    const pageEventData: CaseEventData = this.getFilteredCaseEventData(pageFields, formValue, true);\n\n    // Get the CaseEventData for the entire form (all pages).\n    const allCaseFields = this.getCaseFieldsFromCurrentAndPreviousPages();\n    const formEventData: CaseEventData = this.getFilteredCaseEventData(allCaseFields, formValue, false, true, fromPreviousPage);\n\n    // Now here's the key thing - the pageEventData has a property called `event_data` and\n    // we need THAT to be the value of the entire form: `formEventData.data`.\n    pageEventData.event_data = formEventData.data;\n\n    // Finalise the CaseEventData object.\n    pageEventData.event_token = this.eventTrigger.event_token;\n    pageEventData.ignore_warning = this.caseEdit.ignoreWarning;\n\n    // Finally, try to set up the case_reference.\n    if (this.caseEdit.caseDetails) {\n      pageEventData.case_reference = this.caseEdit.caseDetails.case_id;\n    }\n\n    // Return the now hopefully sane CaseEventData.\n    return pageEventData;\n  }\n\n  /**\n   * Abstracted this method from buildCaseEventData to remove duplication.\n   * @param caseFields The fields to filter the data by.\n   * @param formValue The original value of the form.\n   * @param clearEmpty Whether or not to clear out empty values.\n   * @param clearNonCase Whether or not to clear out fields that are not part of the case.\n   * @returns CaseEventData for the specified parameters.\n   */\n  private getFilteredCaseEventData(caseFields: CaseField[], formValue: object, clearEmpty = false,\n    clearNonCase = false, fromPreviousPage = false): CaseEventData {\n    // Get the data for the fields specified.\n    const formFields = this.formValueService.filterCurrentPageFields(caseFields, formValue);\n\n    // Sort out the dynamic lists.\n    this.formValueService.sanitiseDynamicLists(caseFields, formFields);\n\n    // Get hold of the CaseEventData.\n    const caseEventData: CaseEventData = this.formValueService.sanitise(formFields) as CaseEventData;\n\n    // delete fields which are not part of the case event journey wizard pages case fields\n    this.validPageListCaseFieldsService.deleteNonValidatedFields(this.caseEdit.validPageList, caseEventData.data, this.eventTrigger.case_fields, fromPreviousPage, this.editForm.controls['data'].value);\n\n    // Tidy it up before we return it.\n    this.formValueService.removeUnnecessaryFields(caseEventData.data, caseFields, clearEmpty, clearNonCase,\n      fromPreviousPage, this.currentPage.case_fields);\n\n    return caseEventData;\n  }\n\n  private syncCaseEditDataService(): void {\n    this.caseEditDataService.setCaseDetails(this.caseEdit.caseDetails);\n    this.caseEditDataService.setCaseEventTriggerName(this.eventTrigger.name);\n    this.caseEditDataService.setCaseTitle(this.getCaseTitle());\n    this.caseEditDataService.setCaseEditForm(this.editForm);\n    this.caseFormValidationErrorsSub = this.caseEditDataService.caseFormValidationErrors$.subscribe({\n      next: (validationErrors) => this.validationErrors = validationErrors\n    });\n  }\n\n  public getRpxTranslatePipeArgs(fieldLabel: string): { FIELDLABEL: string } | null {\n    return fieldLabel ? ({ FIELDLABEL: fieldLabel }) : null;\n  }\n\n  public onEventCanBeCompleted(eventCanBeCompleted: boolean): void {\n    this.caseEdit.onEventCanBeCompleted({\n      eventTrigger: this.eventTrigger,\n      eventCanBeCompleted,\n      caseDetails: this.caseEdit.caseDetails,\n      form: this.editForm,\n      submit: this.caseEdit.submit,\n    });\n  }\n\n  private removeAllJudicialUserFormControls(page: WizardPage, editForm: FormGroup): void {\n    page.case_fields.forEach(caseField => {\n      if (FieldsUtils.isCaseFieldOfType(caseField, ['JudicialUser'])) {\n        (editForm.controls['data'] as FormGroup).removeControl(`${caseField.id}_judicialUserControl`);\n      }\n    });\n  }\n}\n","export class CallbackErrorsContext {\n  public triggerText: string;\n  public ignoreWarning: boolean;\n  public eventId?: string;\n}\n","<div *ngIf=\"hasErrors() || hasWarnings()\" class=\"error-summary\"\n     [attr.aria-label]=\"'Cannot continue because the service reported one or more errors or warnings' | rpxTranslate\"\n     tabindex=\"-1\">\n  <ng-container *ngIf=\"hasErrors()\">\n    <h3 class=\"heading-h3 error-summary-heading\">\n      {{'Errors' | rpxTranslate}}\n    </h3>\n    <ul id=\"errors\" class=\"error-summary-list\">\n      <li *ngFor=\"let errorMsg of error.callbackErrors\">\n        {{errorMsg}}\n      </li>\n    </ul>\n  </ng-container>\n  <!-- Add a break for spacing if there are both errors and warnings -->\n  <br *ngIf=\"hasErrors() && hasWarnings()\">\n  <ng-container *ngIf=\"hasWarnings()\">\n    <h3 class=\"heading-h3 error-summary-heading\">\n      {{'Warnings' | rpxTranslate}}\n    </h3>\n    <ul id=\"warnings\" class=\"error-summary-list\">\n      <li *ngFor=\"let warningMsg of error.callbackWarnings\">\n        {{warningMsg}}\n      </li>\n    </ul>\n  </ng-container>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { HttpError } from '../../domain/http';\nimport { CallbackErrorsContext } from './domain/error-context';\n\n@Component({\n  selector: 'ccd-callback-errors',\n  templateUrl: './callback-errors.html',\n  standalone: false\n})\nexport class CallbackErrorsComponent implements OnInit {\n\n  public static readonly TRIGGER_TEXT_SUBMIT = 'Submit';\n  public static readonly TRIGGER_TEXT_START = 'Start';\n  public static readonly TRIGGER_TEXT_GO = 'Go';\n  public static readonly TRIGGER_TEXT_IGNORE = 'Ignore Warning and Go';\n\n  @Input()\n  public triggerTextIgnore: string = CallbackErrorsComponent.TRIGGER_TEXT_IGNORE;\n  @Input()\n  public triggerTextContinue: string = CallbackErrorsComponent.TRIGGER_TEXT_SUBMIT;\n  @Input()\n  public callbackErrorsSubject: Subject<any> = new Subject();\n\n  @Output()\n  public callbackErrorsContext: EventEmitter<CallbackErrorsContext> = new EventEmitter();\n\n  public error: HttpError;\n\n  public ngOnInit(): void {\n    this.callbackErrorsSubject.subscribe(errorEvent => {\n      this.error = errorEvent;\n      if (this.hasWarnings() || this.hasErrors() || this.hasInvalidData()) {\n        const callbackErrorsContext: CallbackErrorsContext = this.buildCallbackErrorsContext();\n        this.callbackErrorsContext.emit(callbackErrorsContext);\n      }\n    });\n  }\n\n  public hasErrors(): boolean {\n    return this.error\n      && this.error.callbackErrors\n      && this.error.callbackErrors.length;\n  }\n\n  public hasWarnings(): boolean {\n    return this.error\n      && this.error.callbackWarnings\n      && this.error.callbackWarnings.length;\n  }\n\n  private buildCallbackErrorsContext(): CallbackErrorsContext {\n    const errorContext: CallbackErrorsContext = new CallbackErrorsContext();\n    if (this.hasWarnings() && !this.hasErrors() && !this.hasInvalidData()) {\n      errorContext.ignoreWarning = true;\n      errorContext.triggerText = this.triggerTextIgnore;\n    } else {\n      errorContext.ignoreWarning = false;\n      errorContext.triggerText = this.triggerTextContinue;\n    }\n    errorContext.eventId = this.error?.details?.eventId;\n    return errorContext;\n  }\n\n  private hasInvalidData(): boolean {\n    return this.error\n      && this.error.details\n      && this.error.details.field_errors\n      && this.error.details.field_errors.length;\n  }\n}\n","<app-case-event-completion-task-cancelled\n    *ngIf=\"taskState === eventCompletionTaskStates.TaskCancelled\"\n    [context]=\"context\"\n    (notifyEventCompletionCancelled)=\"setEventCanBeCompleted($event)\">\n</app-case-event-completion-task-cancelled>\n<app-case-event-completion-task-reassigned\n    *ngIf=\"taskState === eventCompletionTaskStates.TaskReassigned\"\n    [context]=\"context\"\n    (notifyEventCompletionReassigned)=\"setEventCanBeCompleted($event)\">\n</app-case-event-completion-task-reassigned>","import { AfterViewInit, ChangeDetectorRef, Component, ComponentRef, EventEmitter, InjectionToken, Injector, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { StateMachine } from '@edium/fsm';\nimport { AlertService } from '../../../services/alert/alert.service';\nimport { SessionStorageService } from '../../../services/session/session-storage.service';\nimport { EventCompletionParams } from '../domain/event-completion-params.model';\nimport { EventCompletionTaskStates } from '../domain/event-completion-task-states.model';\nimport { EventCompletionComponentEmitter, EventCompletionStateMachineContext } from '../domain/event-completion-state-machine-context.model';\nimport { EventCompletionStateMachineService } from '../services/event-completion-state-machine.service';\nimport { WorkAllocationService } from '../services/work-allocation.service';\nimport { CaseEventCompletionTaskCancelledComponent } from './components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component';\nimport { CaseEventCompletionTaskReassignedComponent } from './components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component';\n\nexport const COMPONENT_PORTAL_INJECTION_TOKEN = new InjectionToken<CaseEventCompletionComponent>('');\n\n@Component({\n  selector: 'ccd-case-event-completion',\n  templateUrl: './case-event-completion.html',\n  standalone: false\n})\nexport class CaseEventCompletionComponent implements OnChanges, EventCompletionComponentEmitter {\n  @Input()\n  public eventCompletionParams: EventCompletionParams;\n\n  @Output()\n  public eventCanBeCompleted: EventEmitter<boolean> = new EventEmitter();\n\n  eventCompletionTaskStates = EventCompletionTaskStates;\n\n  public stateMachine: StateMachine;\n  public context: EventCompletionStateMachineContext;\n  public taskState: EventCompletionTaskStates;\n\n  constructor(private readonly service: EventCompletionStateMachineService,\n    private readonly router: Router,\n    private readonly route: ActivatedRoute,\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly workAllocationService: WorkAllocationService,\n    private readonly alertService: AlertService) {\n  }\n\n  public ngOnChanges(changes?: SimpleChanges): void {\n    if (changes.eventCompletionParams?.currentValue) {\n      // Setup the context\n      this.context = {\n        task: this.eventCompletionParams.task,\n        caseId: this.eventCompletionParams.caseId,\n        eventId: this.eventCompletionParams.eventId,\n        reassignedTask: null,\n        router: this.router,\n        route: this.route,\n        sessionStorageService: this.sessionStorageService,\n        workAllocationService: this.workAllocationService,\n        alertService: this.alertService,\n        canBeCompleted: false,\n        component: this\n      };\n      // Initialise state machine\n      this.stateMachine = this.service.initialiseStateMachine(this.context);\n      // Create states\n      this.service.createStates(this.stateMachine);\n      // Add transitions for the states\n      this.service.addTransitions();\n      // Start state machine\n      this.service.startStateMachine(this.stateMachine);\n    }\n  }\n\n  public setTaskState(taskState: number): void {\n    this.taskState = taskState;\n  }\n\n  public setEventCanBeCompleted(completable: boolean) {\n    // note: event not completed from here as will then skip task completion\n    if (!completable) {\n      // if event cannot be completed ensure that this is communicated\n      // otherwise this will be handled via onchanges\n      this.eventCanBeCompleted.emit(completable);\n    }\n  }\n}\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { EventCompletionStateMachineContext } from '../../../domain';\nimport { CaseEditComponent } from '../../../case-edit';\n\n@Component({\n  selector: 'app-case-event-completion-task-cancelled',\n  templateUrl: './case-event-completion-task-cancelled.html',\n  standalone: false\n})\nexport class CaseEventCompletionTaskCancelledComponent implements OnInit {\n  @Input()\n  context: EventCompletionStateMachineContext;\n  @Output()\n  public notifyEventCompletionCancelled: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  public caseId: string;\n  public jurisdiction: string;\n  public caseType: string;\n\n  public ngOnInit(): void {\n    this.caseId = this.context.caseId;\n    this.jurisdiction = this.context.task.jurisdiction;\n    this.caseType = this.context.task.case_type_id;\n  }\n\n  public onContinue(): void {\n    // Removes task to complete so event completes without task\n    this.context.sessionStorageService.removeItem(CaseEditComponent.CLIENT_CONTEXT);\n    // may be able to remove this call below since it is now unneccesary\n    this.notifyEventCompletionCancelled.emit(true);\n  }\n}\n","<div class=\"govuk-!-margin-9\">\n  <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n    <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n      {{'There is a problem' | rpxTranslate}}\n    </h2>\n    <div class=\"govuk-error-summary__body\">\n      <ul class=\"govuk-list govuk-error-summary__list\">\n        <li>\n          <a href=\"#\">{{'Task cancelled/marked as done' | rpxTranslate}}</a>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"govuk-form-group govuk-form-group--error\">\n    <h2 class=\"govuk-heading-m\">{{'Task cancelled/marked as done' | rpxTranslate}}</h2>\n    <p>{{'This task has been cancelled or marked as done.' | rpxTranslate}}</p>\n    <p>{{'Click Continue to complete the event and save your progress.' | rpxTranslate}}</p>\n\n    <p>{{'Alternatively, click Cancel to return to the tasks tab without saving your progress.' | rpxTranslate}}</p>\n\n    <div class=\"form-group form-group-related\">\n      <button class=\"govuk-button govuk-!-margin-right-2\" data-module=\"govuk-button\" (click)=\"onContinue()\">\n        {{'Continue' | rpxTranslate}}\n      </button>\n      <a [routerLink]=\"['/', 'cases', 'case-details', jurisdiction, caseType, caseId, 'tasks']\"\n              class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\">\n        {{'Cancel' | rpxTranslate}}\n      </a>\n    </div>\n  </div>\n</div>\n","<div class=\"govuk-!-margin-9\" *ngIf=\"assignedUserName\">\n  <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n    data-module=\"error-summary\">\n    <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n      {{'There is a problem' | rpxTranslate}}\n    </h2>\n    <div class=\"govuk-error-summary__body\">\n      <ul class=\"govuk-list govuk-error-summary__list\">\n        <li>\n          <a href=\"#\">{{'Task reassigned' | rpxTranslate}}</a>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"govuk-form-group govuk-form-group--error\">\n    <h2 class=\"govuk-heading-m\">{{'Task reassigned' | rpxTranslate}}</h2>\n    <p>{{'This task has been reassigned to' | rpxTranslate}} {{assignedUserName}}.</p>\n    <p>{{'Click Continue to reassign the task to you and save your progress.' | rpxTranslate}}</p>\n    <p>{{'Alternatively, click Cancel to return to the tasks tab without saving your progress.' | rpxTranslate}}</p>\n    <div class=\"form-group form-group-related\">\n      <button class=\"govuk-button govuk-!-margin-right-2\" data-module=\"govuk-button\" (click)=\"onContinue()\">\n        {{'Continue' | rpxTranslate}}\n      </button>\n      <a [routerLink]=\"['/', 'cases', 'case-details', jurisdiction, caseType, caseId, 'tasks']\"\n              class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\">\n        {{'Cancel' | rpxTranslate}}\n      </a>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport {\n  FieldsUtils,\n  SessionStorageService\n} from '../../../../../services';\nimport { EventCompletionStateMachineContext } from '../../../domain';\nimport { CaseworkerService } from '../../../services/case-worker.service';\nimport { JudicialworkerService } from '../../../services/judicial-worker.service';\nimport { CaseEditComponent } from '../../../case-edit';\n\n@Component({\n  selector: 'app-case-event-completion-task-reassigned',\n  templateUrl: './case-event-completion-task-reassigned.html',\n  standalone: false\n})\nexport class CaseEventCompletionTaskReassignedComponent implements OnInit, OnDestroy {\n  @Input()\n  context: EventCompletionStateMachineContext;\n  @Output()\n  public notifyEventCompletionReassigned: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  public caseId: string;\n  public assignedUserId: string;\n  public assignedUserName: string;\n  public subscription: Subscription;\n  public caseworkerSubscription: Subscription;\n  public judicialworkerSubscription: Subscription;\n  public jurisdiction: string;\n  public caseType: string;\n\n  constructor(private readonly sessionStorageService: SessionStorageService,\n    private readonly judicialworkerService: JudicialworkerService,\n    private readonly caseworkerService: CaseworkerService) {\n  }\n\n  public ngOnInit(): void {\n    // Get case id and task from the parent component\n    this.caseId = this.context.caseId;\n    const task = this.context.reassignedTask;\n    this.jurisdiction = task.jurisdiction;\n    this.caseType = task.case_type_id;\n\n    // Current user is a caseworker?\n    this.caseworkerSubscription = this.caseworkerService.getCaseworkers(task.jurisdiction).subscribe(result => {\n      if (result && result[0].service === task.jurisdiction && result[0].caseworkers) {\n        const caseworker = result[0].caseworkers.find(x => x.idamId === task.assignee);\n        if (caseworker) {\n          this.assignedUserName = `${caseworker.firstName} ${caseworker.lastName}`;\n        }\n      }\n\n      if (!this.assignedUserName) {\n        // Current user is a judicial user?\n        this.judicialworkerSubscription = this.judicialworkerService.getJudicialworkers([task.assignee], task.jurisdiction)\n        .subscribe(judicialworkers => {\n          if (judicialworkers) {\n            const judicialworker = judicialworkers.find(x => x.sidam_id === task.assignee);\n            if (judicialworker) {\n              this.assignedUserName = judicialworker.full_name;\n            }\n          }\n\n          if (!this.assignedUserName) {\n            this.assignedUserName = 'another user';\n          }\n        });\n      }\n    });\n  }\n\n  public ngOnDestroy(): void {\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n    if (this.caseworkerSubscription) {\n      this.caseworkerSubscription.unsubscribe();\n    }\n    if (this.judicialworkerSubscription) {\n      this.judicialworkerSubscription.unsubscribe();\n    }\n  }\n\n  public onContinue(): void {\n    // Get task details\n    const clientContextStr = this.sessionStorageService.getItem(CaseEditComponent.CLIENT_CONTEXT);\n    const userTask = FieldsUtils.getUserTaskFromClientContext(clientContextStr);\n    const task = userTask ? userTask.task_data : null;\n    // not complete_task not utilised here as related to event completion\n    // service wanting task associated with event to not be completed not directly relevant\n    if (task) {\n      // Set session to override reassignment settings so code flow does not return to this component\n      this.sessionStorageService.setItem('assignNeeded', 'true - override')\n      this.notifyEventCompletionReassigned.emit(true);\n    } else {\n      // Emit event cannot be completed event\n      this.notifyEventCompletionReassigned.emit(false);\n    }\n  }\n}\n","import { AddressModel } from '../../../domain/addresses/address.model';\n\nexport class AddressOption {\n  public description: string;\n  public value: AddressModel;\n\n  constructor (addressModel: AddressModel, description: string) {\n    if (description === null) {\n      this.value = addressModel;\n      this.description = this.getDescription();\n    } else {\n      this.description = description;\n    }\n  }\n\n  private getDescription() {\n    return this.removeInitialCommaIfPresent(\n      `${this.value.AddressLine1 === undefined ? '' : this.value.AddressLine1}${this.prefixWithCommaIfPresent(this.value.AddressLine2)}${this.prefixWithCommaIfPresent(this.value.AddressLine3)}, ${this.value.PostTown}`\n    );\n  }\n\n  private prefixWithCommaIfPresent(value: string) {\n    return value ? `, ${value}` : value;\n  }\n\n  private removeInitialCommaIfPresent(value: string) {\n    return value.replace(new RegExp('^,', 'gi'), '');\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class AddressValidationConstants {\n  // allow alpha-numeric characters and spaces possibly between a connecting - character\n  // this applies validation while allowing partial postcodes\n  public static readonly REGEX_POSTCODE = /^([A-Za-z0-9])+( )?([A-Za-z0-9])*$/;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ShowCondition } from '../../directives/conditional-show/domain/conditional-show.model';\n\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\n\n@Pipe({\n  name: 'ccdFieldsFilter',\n  standalone: false\n})\nexport class FieldsFilterPipe implements PipeTransform {\n\n  private static readonly EMPTY_VALUES = [\n    undefined,\n    null,\n    '',\n    {}\n  ];\n\n  private static readonly NESTED_TYPES = {\n    Complex: FieldsFilterPipe?.isValidComplex\n  };\n\n  /**\n   * Complex type should have at least on simple field descendant with a value.\n   */\n  private static isValidComplex(field: CaseField, values?: object): boolean {\n    values = values || {};\n    const type = field.field_type;\n    const value = FieldsFilterPipe.getValue(field, values);\n    const hasChildrenWithValue = type.complex_fields.find(f => {\n      return FieldsFilterPipe.keepField(f, value);\n    });\n\n    return !!hasChildrenWithValue;\n  }\n\n  private static isEmpty(value: any): boolean {\n    return FieldsFilterPipe.EMPTY_VALUES.indexOf(value) !== -1\n      || value.length === 0;\n  }\n\n  private static isCompound(field: CaseField): boolean {\n    return FieldsFilterPipe.NESTED_TYPES[field.field_type.type];\n  }\n\n  private static isValidCompound(field: CaseField, value?: object): boolean {\n    return FieldsFilterPipe.isCompound(field)\n            && FieldsFilterPipe.NESTED_TYPES[field.field_type.type](field, value);\n  }\n\n  private static keepField(field: CaseField, value?: object): boolean {\n    // We shouldn't ditch labels.\n    if (field.field_type.type === 'Label' && (field.label || '').length > 0) {\n      return true;\n    }\n\n    value = value || {};\n\n    if (FieldsFilterPipe.isCompound(field)) {\n      return FieldsFilterPipe.isValidCompound(field, value);\n    }\n\n    return !FieldsFilterPipe.isEmpty(field.value)\n              || !FieldsFilterPipe.isEmpty(value[field.id]);\n  }\n\n  private static getValue(field: CaseField, values: any, index?: number): any {\n    let value: any;\n    if (index >= 0 ) {\n      value = values[index].value[field.id];\n    } else {\n      value = values[field.id];\n    }\n    return FieldsFilterPipe.isEmpty(field.value) ? value : field.value;\n  }\n\n  /**\n   * Filter out fields having no data to display and harmonise field values coming parent's value.\n   */\n  public transform(complexField: CaseField, keepEmpty?: boolean, index?: number, stripHidden= false): CaseField[] {\n    if (!complexField || !complexField.field_type) {\n      return [];\n    }\n\n    const fields = complexField.field_type.complex_fields || [];\n    const values = complexField.value || {};\n    const checkConditionsAgainst = { [complexField.id]: values };\n\n    return fields\n      .filter( f => {\n        if (stripHidden && f.show_condition) {\n          const cond = ShowCondition.getInstance(f.show_condition);\n          return cond.match(checkConditionsAgainst);\n        }\n        return true;\n      })\n      .map(f => {\n        const clone = FieldsUtils.cloneObject(f);\n        const value = FieldsFilterPipe.getValue(f, values, index);\n        if (!FieldsFilterPipe.isEmpty(value)) {\n          clone.value = value;\n        }\n        return clone;\n      })\n      .filter(f => keepEmpty || FieldsFilterPipe.keepField(f))\n      .map(f => {\n        if (!f.display_context) {\n          if (FieldsUtils.isValidDisplayContext(complexField.display_context)) {\n            f.display_context = complexField.display_context;\n          }\n        }\n        return f;\n      });\n  }\n}\n","<div class=\"form-group\" [id]=\"id()\">\n  <fieldset>\n    <legend *ngIf=\"renderLabel\">\n      <ng-container *ngIf=\"caseField | ccdFieldLabel\">\n        <h2 class=\"heading-h2\">{{(caseField | ccdFieldLabel)}}</h2>\n      </ng-container>\n    </legend>\n    <ng-container [ngSwitch]=\"field | ccdIsReadOnly\" *ngFor=\"let field of complexFields\">\n      <ccd-field-read *ngSwitchCase=\"true\"\n                      ccdLabelSubstitutor\n                      [caseField]=\"buildField(field)\"\n                      [caseFields]=\"caseFields\"\n                      [formGroup]=\"formGroup\"\n                      [withLabel]=\"true\">\n      </ccd-field-read>\n      <ccd-field-write *ngSwitchCase=\"false\"\n                       ccdLabelSubstitutor\n                       [caseField]=\"field\"\n                       [caseFields]=\"caseFields\"\n                       [formGroup]=\"formGroup\"\n                       [parent]=\"complexGroup\"\n                       [idPrefix]=\"buildIdPrefix(field)\"\n                       [hidden]=\"field.hidden\"\n                       [isExpanded]=\"isExpanded\"\n                       [isInSearchBlock]=\"isInSearchBlock\">\n      </ccd-field-write>\n    </ng-container>\n  </fieldset>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { Constants } from '../../../commons/constants';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { FieldsFilterPipe } from '../../../pipes/complex/fields-filter.pipe';\nimport { FieldsUtils } from '../../../services/fields/fields.utils';\nimport { FormValidatorsService } from '../../../services/form/form-validators.service';\n\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\nimport { AbstractFormFieldComponent } from '../base-field/abstract-form-field.component';\nimport { IsCompoundPipe } from '../utils/is-compound.pipe';\n\nconst ADDRESS_FIELD_TYPES = ['AddressUK', 'AddressGlobalUK', 'AddressGlobal'];\n\n@Component({\n  selector: 'ccd-write-complex-type-field',\n  templateUrl: './write-complex-field.html',\n  styleUrls: ['./read-complex-field-table.scss'],\n  standalone: false\n})\nexport class WriteComplexFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n  @Input()\n  public caseFields: CaseField[] = [];\n\n  public complexGroup: FormGroup;\n\n  @Input()\n  public renderLabel = true;\n\n  @Input()\n  public ignoreMandatory = false;\n\n  public complexFields: CaseField[];\n\n  constructor(private readonly isCompoundPipe: IsCompoundPipe, private readonly formValidatorsService: FormValidatorsService) {\n    super();\n    this.complexGroup = new FormGroup({});\n  }\n\n  public ngOnInit(): void {\n    // Are we inside of a collection? If so, the parent is the complexGroup we want.\n    if (this.isTopLevelWithinCollection()) {\n      this.complexGroup = this.parent as FormGroup;\n      FieldsUtils.addCaseFieldAndComponentReferences(this.complexGroup, this.caseField, this);\n    } else {\n      this.complexGroup = this.registerControl(this.complexGroup, true) as FormGroup;\n    }\n    // Add validators for the complex field.\n    this.formValidatorsService.addValidators(this.caseField, this.complexGroup);\n    this.setupFields();\n    this.complexGroup.updateValueAndValidity({ emitEvent: true });\n  }\n\n  public buildField(caseField: CaseField): CaseField {\n    let control: AbstractControl = this.complexGroup.get(caseField.id);\n    if (!control) {\n      control = new FormControl(caseField.value);\n      this.complexGroup.addControl(caseField.id, control);\n    }\n\n    // Add validators for addresses, if appropriate.\n    if (this.isAddressUK()) {\n      if (this.addressValidatorsRequired(caseField)) {\n        this.formValidatorsService.addValidators(caseField, control);\n      }\n    } else {\n      // It's not an address so set it up according to its own display_context.\n      this.formValidatorsService.addValidators(caseField, control);\n    }\n\n    // For Address-type fields, ensure that all sub-fields inherit the same value for retain_hidden_value as this\n    // parent; although address fields use the Complex type, each of them is meant to be treated as one field\n    if (this.isAddressUK() && this.caseField) {\n      for (const addressSubField of this.caseField.field_type.complex_fields) {\n        addressSubField.retain_hidden_value = this.caseField.retain_hidden_value;\n      }\n    }\n\n    FieldsUtils.addCaseFieldAndComponentReferences(control, caseField, this);\n    return caseField;\n  }\n\n  public buildIdPrefix(field: CaseField): string {\n    return this.isCompoundPipe.transform(field) ? `${this.idPrefix}${field.id}_` : `${this.idPrefix}`;\n  }\n\n  private addressValidatorsRequired(caseField: CaseField): boolean {\n    return this.isSmallAddressLine1(caseField) && this.isMandatory(caseField);\n  }\n\n  private isSmallAddressLine1(caseField: CaseField): boolean {\n    return caseField.id === 'AddressLine1' && caseField.field_type.id === 'TextMax150';\n  }\n\n  private isMandatory(caseField: CaseField): boolean {\n    return (Constants.MANDATORY === caseField.display_context || !this.ignoreMandatory);\n  }\n\n  private isAddressUK(): boolean {\n    return ADDRESS_FIELD_TYPES.indexOf(this.caseField.field_type.id) > -1;\n  }\n\n  private isTopLevelWithinCollection(): boolean {\n    if (this.parent) {\n      const parentCaseField: CaseField = this.parent['caseField'];\n      if (parentCaseField && parentCaseField.id === this.caseField.id) {\n        const parentComponent = this.parent['component'] as AbstractFormFieldComponent;\n        if (parentComponent) {\n          const parentComponentCaseField = parentComponent.caseField;\n          if (parentComponentCaseField.field_type) {\n            return parentComponentCaseField.field_type.type === 'Collection';\n          }\n        }\n      }\n    }\n    return false;\n  }\n\n  private setupFields(): void {\n    const fieldsFilterPipe: FieldsFilterPipe = new FieldsFilterPipe();\n    this.complexFields = fieldsFilterPipe.transform(this.caseField, true).map(field => {\n      if (field && field.id) {\n        field.parent = this.caseField;\n        if (!(field instanceof CaseField)) {\n          return this.buildField(plainToClassFromExist(new CaseField(), field));\n        }\n      }\n      return this.buildField(field);\n    });\n  }\n}\n","<div class=\"form-group\" [id]=\"id()\">\n  <div *ngIf=\"!isComplexWithHiddenFields()\">\n    <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n\n    <div class=\"form-group bottom-30 postcodeLookup\" [id]=\"createElementId('postcodeLookup')\" [ngClass]=\"{'form-group-error': missingPostcode}\" *ngIf=\"!isExpanded\">\n      <label [for]=\"createElementId('postcodeInput')\">\n        <span class=\"form-label\">{{'Enter a UK postcode' | rpxTranslate}}</span>\n      </label>\n      <span class=\"error-message\" *ngIf=\"missingPostcode\">{{errorMessage | rpxTranslate}}</span>\n      <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\"\n      [id]=\"createElementId('postcodeInput')\" name=\"postcode\" class=\"form-control postcodeinput inline-block\" [formControl]=\"postcode\">\n      <button type=\"button\" class=\"button button-30\" (click)=\"findAddress()\" [disabled]=\"loadingAddresses\">\n        {{(loadingAddresses ? 'Finding addresses...' : 'Find address') | rpxTranslate}}\n      </button>\n    </div>\n\n    <div class=\"form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\" [ngClass]=\"{'form-group-error': noAddressSelected}\">\n      <label [for]=\"createElementId('addressList')\">\n        <span class=\"form-label\">{{'Select an address' | rpxTranslate}}</span>\n      </label>\n      <span class=\"error-message\" *ngIf=\"noAddressSelected\">{{errorMessage | rpxTranslate}}</span>\n      <select class=\"form-control ccd-dropdown addressList\" [id]=\"createElementId('addressList')\" name=\"address\" [formControl]=\"addressList\" (change)=\"addressSelected()\" focusElement>\n        <option *ngIf=\"addressOptions.length === 0\" [ngValue]=\"undefined\">\n          {{'No address found' | rpxTranslate}}\n        </option>\n        <option *ngIf=\"addressOptions.length > 0\" [ngValue]=\"undefined\">\n          {{addressOptions.length}} {{(addressOptions.length === 1 ? 'address found' : 'addresses found') | rpxTranslate}}\n        </option>\n        <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n          {{addressOption.description}}\n        </option>\n      </select>\n    </div>\n\n    <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">\n      {{\"I can't enter a UK postcode\" | rpxTranslate}}\n    </a>\n  </div>\n\n  <ccd-write-complex-type-field\n    [hidden]=\"!shouldShowDetailFields()\"\n    [caseField]=\"caseField\"\n    [renderLabel]=\"false\"\n    [parent]=\"parent\"\n    [formGroup]=\"formGroup\"\n    [ignoreMandatory]=\"true\"\n    [idPrefix]=\"buildIdPrefix('detail')\"\n    #writeComplexFieldComponent>\n  </ccd-write-complex-type-field>\n</div>\n","import { Component, OnChanges, OnInit, QueryList, SimpleChanges, ViewChild, ViewChildren } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { AddressValidationConstants } from '../../../commons/address-validation-constants';\nimport { FocusElementDirective } from '../../../directives/focus-element';\nimport { AddressModel } from '../../../domain/addresses/address.model';\nimport { AddressesService } from '../../../services/addresses/addresses.service';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\nimport { WriteComplexFieldComponent } from '../complex/write-complex-field.component';\nimport { IsCompoundPipe } from '../utils/is-compound.pipe';\nimport { AddressOption } from './address-option.model';\n\n@Component({\n  selector: 'ccd-write-address-field',\n  templateUrl: 'write-address-field.html',\n  styleUrls: ['write-address-field.scss'],\n  standalone: false\n})\nexport class WriteAddressFieldComponent extends AbstractFieldWriteComponent implements OnInit, OnChanges {\n  @ViewChild('writeComplexFieldComponent', { static: false })\n  public writeComplexFieldComponent: WriteComplexFieldComponent;\n\n  @ViewChildren(FocusElementDirective)\n  public focusElementDirectives: QueryList<FocusElementDirective>;\n\n  public static readonly REQUIRED_ERROR_MESSAGE = 'Enter a Postcode';\n  public static readonly INVALID_ERROR_MESSAGE = 'Enter a valid Postcode';\n\n  public addressesService: AddressesService;\n\n  public addressFormGroup = new FormGroup({});\n  public postcode: FormControl;\n  public addressList: FormControl;\n\n  public addressOptions: AddressOption[];\n\n  public errorMessage: string = WriteAddressFieldComponent.REQUIRED_ERROR_MESSAGE;\n\n  public missingPostcode = false;\n  public noAddressSelected = false;\n  public loadingAddresses = false;\n\n  constructor(addressesService: AddressesService, private readonly isCompoundPipe: IsCompoundPipe) {\n    super();\n    this.addressesService = addressesService;\n  }\n\n  public ngOnInit(): void {\n    if (!this.isComplexWithHiddenFields()) {\n      this.postcode = new FormControl('', [Validators.required]);\n      this.addressFormGroup.addControl('postcode', this.postcode);\n      this.addressList = new FormControl('');\n      this.addressFormGroup.addControl('address', this.addressList);\n    }\n\n    this.addressesService.getMandatoryError().subscribe((value: boolean) => {\n      this.updateErrorsOnContinue(value);\n    })\n  }\n\n  public findAddress() {\n    this.noAddressSelected = false;\n    if (!this.postcode.value) {\n      this.errorMessage = WriteAddressFieldComponent.REQUIRED_ERROR_MESSAGE;\n      this.missingPostcode = true;\n    } else if (!this.postcode.value.trim().match(AddressValidationConstants.REGEX_POSTCODE)) {\n      this.errorMessage = WriteAddressFieldComponent.INVALID_ERROR_MESSAGE;\n      this.missingPostcode = true;\n    } else {\n      this.missingPostcode = false;\n      this.loadingAddresses = true;\n      const postcode = this.postcode.value;\n      this.caseField.value = null;\n      this.addressOptions = [];\n      this.addressesService.getAddressesForPostcode(postcode.replace(' ', '').toUpperCase()).subscribe(\n        (result) => {\n          this.loadingAddresses = false;\n          result.forEach(\n            (address) => {\n              this.addressOptions.push(new AddressOption(address, null));\n            }\n          );\n        }, (error) => {\n          this.loadingAddresses = false;\n          console.log(`An error occurred retrieving addresses for postcode ${postcode}. ${error}`);\n        });\n      this.addressList.setValue(undefined);\n      this.refocusElement();\n    }\n  }\n\n  public refocusElement(): void {\n    if (this.focusElementDirectives && this.focusElementDirectives.length > 0) {\n      this.focusElementDirectives.first.focus();\n    }\n  }\n\n  public blankAddress() {\n    this.caseField.value = new AddressModel();\n    this.setFormValue();\n    this.missingPostcode = false;\n    this.noAddressSelected = false;\n  }\n\n  public isComplexWithHiddenFields() {\n    if (this.caseField.isComplex() && this.caseField.field_type.complex_fields\n      && this.caseField.field_type.complex_fields.some(cf => cf.hidden === true)) {\n      return true;\n    }\n  }\n\n  public shouldShowDetailFields() {\n    if (this.isComplexWithHiddenFields()) {\n      return true;\n    }\n    if (this.isExpanded) {\n      return true;\n    }\n    if (!this.writeComplexFieldComponent || !this.writeComplexFieldComponent.complexGroup) {\n      return false;\n    }\n    const address = this.writeComplexFieldComponent.complexGroup.value;\n    let hasAddress = false;\n    if (address) {\n      Object.keys(address).forEach((key) => {\n        if (address[key] !== null) {\n          hasAddress = true;\n        }\n      });\n    }\n    return hasAddress;\n  }\n\n  public addressSelected() {\n    this.caseField.value = this.addressList.value;\n    this.setFormValue();\n    this.noAddressSelected = false;\n  }\n\n  public ngOnChanges(changes: SimpleChanges) {\n    super.ngOnChanges(changes);\n    const change = changes['caseField'];\n    if (change) {\n      this.setFormValue();\n    }\n  }\n\n  public buildIdPrefix(elementId: string): string {\n    return `${this.idPrefix}_${elementId}`;\n  }\n\n  private setFormValue() {\n    if (this.writeComplexFieldComponent.complexGroup) {\n      this.writeComplexFieldComponent.complexGroup.setValue(\n        this.caseField.value\n      );\n    }\n  }\n\n  private updateErrorsOnContinue(value: boolean): void {\n    this.missingPostcode = value && !this.shouldShowDetailFields() && !this.addressOptions;\n    this.noAddressSelected = value && !this.shouldShowDetailFields() && !!this.addressOptions;\n    this.errorMessage = this.noAddressSelected ? 'Select an address' : this.errorMessage;\n  }\n}\n","export enum PaletteContext {\n  DEFAULT = 'DEFAULT',\n  CHECK_YOUR_ANSWER = 'CHECK_YOUR_ANSWER',\n  TABLE_VIEW = 'TABLE_VIEW',\n}\n","import { Directive, Input, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\n\nimport { AbstractFormFieldComponent } from './abstract-form-field.component';\nimport { PaletteContext } from './palette-context.enum';\n\n@Directive()\nexport abstract class AbstractFieldReadComponent extends AbstractFormFieldComponent implements OnInit {\n\n  @Input()\n  public caseReference: string;\n\n  @Input()\n  public topLevelFormGroup: FormGroup | AbstractControl;\n\n  /**\n   * Optional. Enable context-aware rendering of fields.\n   */\n  @Input()\n  public context: PaletteContext = PaletteContext.DEFAULT;\n\n  public ngOnInit(): void {\n    if (!this.caseField.metadata) {\n      this.registerControl(new FormControl(this.caseField.value));\n    }\n  }\n}\n","import { Directive, Input, OnChanges, ViewChild } from '@angular/core';\nimport { AbstractFieldWriteComponent } from './abstract-field-write.component';\nimport { Journey } from '../../../domain';\nimport { MultipageComponentStateService } from '../../../services';\n\n@Directive()\nexport abstract class AbstractFieldWriteJourneyComponent extends AbstractFieldWriteComponent implements OnChanges, Journey {\n  public journeyStartPageNumber: number = 0;\n  public journeyEndPageNumber: number = 0;\n  public journeyPageNumber: number = 0;\n  public journeyPreviousPageNumber: number = 0;\n\n    @Input()\n  public journeyId: string = 'journey';\n\n    @ViewChild('journeyChild')\n    public childJourney!: Journey;\n\n    public constructor(protected readonly multipageComponentStateService: MultipageComponentStateService) {\n      super();\n      this.multipageComponentStateService.addTojourneyCollection(this);\n      this.journeyPageNumber = this.journeyStartPageNumber;\n    }\n\n    public next(): void {\n      if (!this.hasNext()) {\n        return;\n      }\n      this.childJourney.next();\n    }\n\n    public previous(): void {\n      if (!this.hasPrevious()) {\n        return;\n      }\n      if (this.childJourney['cachedFlagType'] && this.childJourney['subJourneyIndex'] !== 0) {\n        this.childJourney.previous();\n      } else {\n        this.previousPage();\n      }\n    }\n\n    protected previousPage(): void {\n      if (this.hasPrevious()) {\n        if (!this.childJourney?.searchLanguageInterpreterHint) {\n          this.journeyPageNumber--;\n        }\n        this.onPageChange();\n      }\n    }\n\n    protected nextPage(): void {\n      if (this.hasNext()) {\n        if (!this.childJourney?.searchLanguageInterpreterHint) {\n          this.journeyPageNumber++;\n        }\n        this.onPageChange();\n      }\n    }\n\n    public ngOnInit(): void {\n      this.journeyPageNumber = this.journeyStartPageNumber;\n      const state = this.multipageComponentStateService.getJourneyState(this);\n      if (state) {\n        const { journeyPageNumber, journeyStartPageNumber, journeyEndPageNumber } = state;\n\n        this.journeyPageNumber = journeyPageNumber;\n        this.journeyStartPageNumber = journeyStartPageNumber;\n        this.journeyEndPageNumber = journeyEndPageNumber;\n      }\n    }\n\n    public ngOnDestroy(): void {\n      this.multipageComponentStateService.setJourneyState(this);\n    }\n\n    public hasNext(): boolean { return this.journeyPageNumber < this.journeyEndPageNumber };\n\n    public hasPrevious(): boolean { return this.journeyPageNumber > this.journeyStartPageNumber };\n\n    public isFinished(): boolean { return this.journeyPageNumber === this.journeyEndPageNumber };\n\n    public isStart(): boolean { return this.journeyPageNumber === this.journeyStartPageNumber };\n\n    public getId(): string { return this.journeyId };\n\n    public onPageChange(): void { /* To be implemented by some child classes. */ };\n}\n","import { Directive, Input, ViewChild } from '@angular/core';\nimport { Journey } from '../../../domain';\nimport { MultipageComponentStateService } from '../../../services';\n\n@Directive()\nexport abstract class AbstractJourneyComponent implements Journey {\n  public journeyStartPageNumber: number = 0;\n  public journeyEndPageNumber: number = 0;\n  public journeyPageNumber: number = 0;\n  public journeyPreviousPageNumber: number;\n\n    @Input()\n  public journeyId: string = 'journey';\n\n    @ViewChild('journeyChild')\n    public childJourney!: Journey;\n\n    public constructor(protected readonly multipageComponentStateService: MultipageComponentStateService) {\n      this.multipageComponentStateService.addTojourneyCollection(this);\n      this.journeyPageNumber = this.journeyStartPageNumber;\n    }\n\n    public next(): void {\n      if (!this.hasNext()) {\n        return;\n      }\n      this.childJourney.next();\n    }\n\n    public previous(): void {\n      if (!this.hasPrevious()) {\n        return;\n      }\n      this.previousPage();\n    }\n\n    protected previousPage(): void {\n      if (this.hasPrevious()) {\n        this.journeyPageNumber--;\n      }\n    }\n\n    public ngOnInit(): void {\n      this.journeyPageNumber = this.journeyStartPageNumber;\n\n      const state = this.multipageComponentStateService.getJourneyState(this);\n      if (state) {\n        const { journeyPageNumber, journeyStartPageNumber, journeyEndPageNumber } = state;\n        this.journeyPageNumber = journeyPageNumber;\n        this.journeyStartPageNumber = journeyStartPageNumber;\n        this.journeyEndPageNumber = journeyEndPageNumber;\n      }\n    }\n\n    public ngOnDestroy(): void {\n      this.multipageComponentStateService.setJourneyState(this);\n    }\n\n    public hasNext(): boolean {\n      return this.journeyPageNumber < this.journeyEndPageNumber;\n    }\n\n    public hasPrevious(): boolean {\n      return this.journeyPageNumber > this.journeyStartPageNumber;\n    }\n\n    public isFinished(): boolean {\n      return this.journeyPageNumber === this.journeyEndPageNumber;\n    }\n\n    public isStart(): boolean {\n      return this.journeyPageNumber === this.journeyStartPageNumber;\n    }\n\n    public getId(): string {\n      return this.journeyId;\n    }\n\n    public onPageChange(): void { /* To be implemented by some child classes. */ }\n}\n","export enum DisplayContextParameter {\n  Read = 'READ',\n  Create = 'CREATE',\n  Update = 'UPDATE'\n}\n\nexport enum DisplayContextCustomParameter {\n  CaseFileView = 'CaseFileView',\n  LinkedCases = 'LinkedCases',\n  QueryManagement = 'QueryManagement',\n  QueryManagementWriteTest = 'QueryManagementWriteTest'\n}\n","<ng-container *ngIf=\"errorMessages?.length\">\n  <div\n    id=\"case-file-view-field-errors\"\n    class=\"govuk-error-summary govuk-!-margin-bottom-4\"\n    data-module=\"govuk-error-summary\"\n  >\n    <div role=\"alert\">\n      <h2 class=\"govuk-error-summary__title\">There is a problem</h2>\n      <div class=\"govuk-error-summary__body\">\n        <ul class=\"govuk-list govuk-error-summary__list\">\n          <li *ngFor=\"let errorMessage of errorMessages\">\n            <button type=\"button\" class=\"govuk-js-link\">{{ errorMessage }}</button>\n          </li>\n        </ul>\n      </div>\n    </div>\n  </div>\n</ng-container>\n\n<div\n  *ngIf=\"getCategoriesAndDocumentsError\"\n  class=\"govuk-grid-column-two-thirds\"\n>\n  <h1 class=\"govuk-heading-xl\">Sorry, there is a problem with the service</h1>\n  <p class=\"govuk-body\">Try again later.</p>\n</div>\n<div *ngIf=\"!getCategoriesAndDocumentsError\">\n  <h2 class=\"govuk-heading-l\">Case file</h2>\n  <div class=\"govuk-form-group\" id=\"case-file-view\">\n    <!-- Document tree -->\n    <div class=\"document-tree-container\">\n      <ccd-case-file-view-folder \n          class=\"document-tree-container__tree\"\n          [categoriesAndDocuments]=\"categoriesAndDocuments$\"\n          (clickedDocument)=\"setMediaViewerFile($event); resetErrorMessages()\" \n          (moveDocument)=\"moveDocument($event)\"\n          [allowMoving]=\"allowMoving\">\n      </ccd-case-file-view-folder>\n    </div>\n    <!-- Slider -->\n    <div class=\"slider\"></div>\n    <!-- Media viewer -->\n    <div class=\"media-viewer-container\">\n      <ng-container *ngIf=\"currentDocument\">\n        <mv-media-viewer\n          [url]=\"currentDocument.document_binary_url\"\n          [downloadFileName]=\"currentDocument.document_filename\"\n          [showToolbar]=\"true\"\n          [contentType]=\"currentDocument.content_type\"\n          [enableAnnotations]=\"true\"\n          [enableRedactions]=\"true\"\n          [height]=\"'94.5vh'\"\n          [caseId]=\"caseId\"\n          [multimediaPlayerEnabled]=\"true\"\n          [enableICP]=\"isIcpEnabled()\"\n        >\n        </mv-media-viewer>\n      </ng-container>\n    </div>\n  </div>\n</div>\n","import { AfterViewInit, Component, ElementRef, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { fromEvent, Observable, of, Subscription } from 'rxjs';\nimport { catchError, finalize, map, switchMap, takeUntil } from 'rxjs/operators';\nimport { CaseField } from '../../../domain';\nimport { CaseFileViewDocument, CategoriesAndDocuments, DocumentTreeNode } from '../../../domain/case-file-view';\nimport { UserInfo } from '../../../domain/user/user-info.model';\nimport { CaseFileViewService, DocumentManagementService, LoadingService, SessionStorageService, WindowService } from '../../../services';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { CaseNotifier } from '../../case-editor/services';\n\n@Component({\n  selector: 'ccd-case-file-view-field',\n  templateUrl: './case-file-view-field.component.html',\n  styleUrls: ['./case-file-view-field.component.scss'],\n  standalone: false\n})\nexport class CaseFileViewFieldComponent implements OnInit, AfterViewInit, OnDestroy {\n  public static readonly PARAM_CASE_ID = 'cid';\n  public allowMoving = true;\n  public categoriesAndDocuments$: Observable<CategoriesAndDocuments>;\n  public categoriesAndDocumentsSubscription: Subscription;\n  public getCategoriesAndDocumentsError = false;\n  public currentDocument: CaseFileViewDocument | undefined;\n  public errorMessages = [] as string[];\n  private caseVersion: number;\n  public caseField: CaseField;\n  public icp_jurisdictions: string[] = [];\n  public icpEnabled: boolean = false;\n  public caseId: string;\n\n  constructor(private readonly elementRef: ElementRef,\n    private readonly route: ActivatedRoute,\n    private caseFileViewService: CaseFileViewService,\n    private documentManagementService: DocumentManagementService,\n    private readonly loadingService: LoadingService,\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly windowService: WindowService,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly abstractConfig: AbstractAppConfig,\n  ) { }\n\n  public ngOnInit(): void {\n    this.caseId = this.route.snapshot.paramMap.get(CaseFileViewFieldComponent.PARAM_CASE_ID);\n    this.categoriesAndDocuments$ = this.caseFileViewService.getCategoriesAndDocuments(this.caseId);\n    this.categoriesAndDocumentsSubscription = this.categoriesAndDocuments$.subscribe({\n      next: data => {\n        this.caseVersion = data.case_version;\n      },\n      error: _ => this.getCategoriesAndDocumentsError = true\n    });\n\n    // EXUI-8000\n    const userInfo: UserInfo = JSON.parse(this.sessionStorageService.getItem('userDetails'));\n    // Get acls that intersects from acl roles and user roles\n    const acls = this.caseField.acls.filter(acl => userInfo.roles.includes(acl.role));\n    // As there can be more than one intersecting role, if any acls are update: true\n    this.allowMoving = acls.some(acl => acl.update);\n    this.icp_jurisdictions = this.abstractConfig.getIcpJurisdictions();\n    this.icpEnabled = true;\n  }\n\n  public ngAfterViewInit(): void {\n    const slider = this.elementRef.nativeElement.querySelector('.slider');\n    const documentTreeContainer = this.elementRef.nativeElement.querySelector('.document-tree-container');\n\n    const mousedown$ = fromEvent<MouseEvent>(slider, 'mousedown');\n    const mousemove$ = fromEvent<MouseEvent>(document, 'mousemove');\n    const mouseup$ = fromEvent<MouseEvent>(document, 'mouseup');\n    const drag$ = mousedown$.pipe(\n      switchMap(\n        (start) => {\n          const x = start.clientX;\n          const documentTreeContainerWidth = documentTreeContainer.getBoundingClientRect().width;\n          return mousemove$.pipe(map(move => {\n            move.preventDefault();\n            return {\n              dx: move.clientX - x,\n              documentTreeContainerWidth\n            };\n          }),\n            takeUntil(mouseup$));\n        }\n      )\n    );\n\n    drag$.subscribe(pos => {\n      const calculatedWidth = ((pos.documentTreeContainerWidth + pos.dx) * 100) / slider.parentElement.getBoundingClientRect().width;\n      documentTreeContainer.setAttribute('style', `width: ${calculatedWidth}%`);\n    });\n  }\n\n  public setMediaViewerFile(document: DocumentTreeNode): void {\n    const documentDetails = {\n      document_binary_url: document.document_binary_url,\n      document_filename: document.document_filename,\n      content_type: document.content_type\n    };\n    if (this.documentManagementService.isHtmlDocument(documentDetails)) {\n      const documentBinaryUrl = this.documentManagementService.getDocumentBinaryUrl(documentDetails);\n      if (documentBinaryUrl) {\n        this.currentDocument = undefined;\n        this.windowService.openOnNewTab(documentBinaryUrl);\n        return;\n      }\n    }\n\n    const mediaViewerInfo = this.documentManagementService.getMediaViewerInfo(documentDetails);\n    this.currentDocument = JSON.parse(mediaViewerInfo);\n  }\n\n  public moveDocument(data: { document: DocumentTreeNode, newCategory: string }): void {\n    const cid = this.route.snapshot.paramMap.get(CaseFileViewFieldComponent.PARAM_CASE_ID);\n    const loadingToken = this.loadingService.register();\n    this.caseFileViewService.updateDocumentCategory(cid, this.caseVersion, data.document.attribute_path, data.newCategory)\n      .pipe(\n        finalize(() => {\n          this.loadingService.unregister(loadingToken);\n        }),\n        catchError(() => {\n          this.errorMessages = ['You do not have permission to move this document to the selected folder.'];\n          return of(null);\n        }),\n      )\n      .subscribe(res => {\n        if (res) {\n          this.resetErrorMessages();\n          this.reloadPage();\n        }\n      });\n  }\n\n  public reloadPage(): void {\n    location.reload();\n  }\n\n  public resetErrorMessages(): void {\n    this.errorMessages = [];\n  }\n\n  public ngOnDestroy(): void {\n    if (this.categoriesAndDocumentsSubscription) {\n      this.categoriesAndDocumentsSubscription.unsubscribe();\n    }\n  }\n\n  public isIcpEnabled(): boolean {\n    return this.icpEnabled && ((this.icp_jurisdictions?.length < 1) || this.icp_jurisdictions.includes(\n      this.caseNotifier?.cachedCaseView?.case_type?.jurisdiction.id));\n  }\n}\n","import moment from 'moment';\nimport { FlagDetail, FlagsWithFormGroupPath } from '../domain';\nimport { CaseFlagStatus } from '../enums';\nimport { CaseField } from '../../../../domain/definition';\nimport { FieldsUtils } from '../../../../services/fields';\n\nexport const PVP_FLAG_CODE = 'PF0021';\nexport const PVP_DISPLAY_TEXT = 'POTENTIALLY VIOLENT PERSON';\n\nexport function isPvpFlag(flagDetail: FlagDetail): boolean {\n  return flagDetail?.flagCode === PVP_FLAG_CODE;\n}\n\nexport function hasPvpFlag(flagsWithFormGroupPath: FlagsWithFormGroupPath): boolean {\n  return !!flagsWithFormGroupPath?.flags?.details?.some(isPvpFlag);\n}\n\nexport function isActivePvpFlag(flagDetail: FlagDetail): boolean {\n  return isPvpFlag(flagDetail) && flagDetail?.status === CaseFlagStatus.ACTIVE;\n}\n\nexport function hasActivePvpFlag(flagsWithFormGroupPath: FlagsWithFormGroupPath): boolean {\n  return !!flagsWithFormGroupPath?.flags?.details?.some(isActivePvpFlag);\n}\n\nfunction getFlagCreationTime(flagDetail: FlagDetail): number {\n  const createdDateValue = flagDetail?.dateTimeCreated;\n\n  const createdMoment = createdDateValue instanceof Date\n    ? moment(createdDateValue)\n    : moment(createdDateValue, moment.ISO_8601, true);\n\n  return createdMoment.valueOf();\n}\n\nfunction compareByCreationDateDesc(flagA: FlagDetail, flagB: FlagDetail): number {\n  return getFlagCreationTime(flagB) - getFlagCreationTime(flagA);\n}\n\nexport function prioritisePvpFlags(flagDetails: FlagDetail[] = []): FlagDetail[] {\n  const activePvpFlags: FlagDetail[] = [];\n  const remainingFlags: FlagDetail[] = [];\n\n  flagDetails.forEach((flagDetail) => {\n    if (isActivePvpFlag(flagDetail)) {\n      activePvpFlags.push(flagDetail);\n    } else {\n      remainingFlags.push(flagDetail);\n    }\n  });\n\n  remainingFlags.sort(compareByCreationDateDesc);\n\n  return [...activePvpFlags, ...remainingFlags];\n}\n\nexport function prioritisePvpParties(partyFlagsData: FlagsWithFormGroupPath[] = []): FlagsWithFormGroupPath[] {\n  const pvpParties: FlagsWithFormGroupPath[] = [];\n  const nonPvpParties: FlagsWithFormGroupPath[] = [];\n\n  partyFlagsData.forEach((partyFlags) => {\n    const prioritisedPartyFlags: FlagsWithFormGroupPath = {\n      ...partyFlags,\n      flags: {\n        ...partyFlags.flags,\n        details: partyFlags?.flags?.details ? prioritisePvpFlags(partyFlags.flags.details) : partyFlags?.flags?.details\n      }\n    };\n\n    if (hasActivePvpFlag(prioritisedPartyFlags)) {\n      pvpParties.push(prioritisedPartyFlags);\n    } else {\n      nonPvpParties.push(prioritisedPartyFlags);\n    }\n  });\n\n  return [...pvpParties, ...nonPvpParties];\n}\n\nexport function hasActivePvpFlagInCaseFields(caseFields: CaseField[] = []): boolean {\n  return caseFields\n    .filter((caseField) => !FieldsUtils.isFlagLauncherCaseField(caseField) && caseField.value)\n    .some((caseField) => hasActivePvpFlagInCaseField(caseField));\n}\n\nfunction hasActivePvpFlagInCaseField(caseField: CaseField, currentValue?: any): boolean {\n  const fieldType = caseField?.field_type;\n  const value = caseField?.value ? caseField.value : currentValue;\n\n  if (fieldType?.type === 'Complex') {\n    return hasActivePvpFlagInComplexField(caseField, value);\n  }\n\n  if (fieldType?.type === 'Collection') {\n    return hasActivePvpFlagInCollectionField(caseField, value);\n  }\n\n  return false;\n}\n\nfunction hasActivePvpFlagInComplexField(caseField: CaseField, value: any): boolean {\n  if (FieldsUtils.isFlagsCaseField(caseField)) {\n    return hasActivePvpFlagInFlagsValue(value);\n  }\n\n  const complexFields = caseField?.field_type?.complex_fields;\n  if (!complexFields || !value || !FieldsUtils.isNonEmptyObject(value)) {\n    return false;\n  }\n\n  return complexFields.some((subField) =>\n    hasActivePvpFlagInCaseField(subField, value[subField.id])\n  );\n}\n\nfunction hasActivePvpFlagInCollectionField(caseField: CaseField, value: any): boolean {\n  if (!value || !Array.isArray(value)) {\n    return false;\n  }\n\n  const collectionFieldType = caseField?.field_type?.collection_field_type;\n  if (FieldsUtils.isFlagsFieldType(collectionFieldType)) {\n    return value.some((item: any) => hasActivePvpFlagInFlagsValue(item?.value));\n  }\n\n  if (collectionFieldType?.type !== 'Complex' || !collectionFieldType.complex_fields) {\n    return false;\n  }\n\n  return value.some((item: any) =>\n    collectionFieldType.complex_fields.some((subField) =>\n      hasActivePvpFlagInCaseField(subField, item?.value?.[subField.id])\n    )\n  );\n}\n\nfunction hasActivePvpFlagInFlagsValue(value: any): boolean {\n  if (!value || !FieldsUtils.isNonEmptyObject(value) || !value.details || !Array.isArray(value.details)) {\n    return false;\n  }\n\n  return value.details.some((detail) => isActivePvpFlag(detail?.value ?? detail));\n}\n","<ng-container *ngIf=\"context === paletteContext.CHECK_YOUR_ANSWER\">\n  <ccd-case-flag-summary-list\n    [flagForSummaryDisplay]=\"flagForSummaryDisplay\"\n    [displayContextParameter]=\"displayContextParameter\"\n    (changeButtonEmitter)=\"navigateBackToForm($event)\">\n  </ccd-case-flag-summary-list>\n</ng-container>\n\n<ng-container *ngIf=\"context !== paletteContext.CHECK_YOUR_ANSWER\">\n  <ng-container [ngSwitch]=\"displayContextParameter\">\n    <ng-container *ngSwitchCase=\"caseFlagDisplayContextParameter.READ_EXTERNAL\">\n      <h2 id=\"read-case-flag-title\" class=\"govuk-heading-l\">\n        {{ 'Support requested' | rpxTranslate }}\n      </h2>\n\n      <div *ngFor=\"let flagData of partyLevelCaseFlagData\">\n        <ccd-case-flag-table *ngIf=\"flagData.flags.partyName\"\n                              [tableCaption]=\"''\"\n                              [flagData]=\"flagData\"\n                              [firstColumnHeader]=\"flagData.flags.partyName\"\n                              [caseFlagsExternalUser]=\"caseFlagsExternalUser\"\n        ></ccd-case-flag-table>\n      </div>\n    </ng-container>\n\n    <ng-container *ngSwitchDefault>\n      <h2 id=\"read-case-flag-title\" class=\"govuk-heading-l\">\n        {{ 'Case flags' | rpxTranslate }}\n      </h2>\n\n      <div *ngFor=\"let flagData of partyLevelCaseFlagData\">\n        <ccd-case-flag-table *ngIf=\"flagData.flags.partyName\"\n                              [tableCaption]=\"flagData.flags.partyName\"\n                              [flagData]=\"flagData\"\n                              [firstColumnHeader]=\"'Party level flags' | rpxTranslate\"\n        ></ccd-case-flag-table>\n      </div>\n      <div *ngIf=\"caseLevelCaseFlagData\">\n        <ccd-case-flag-table\n          [tableCaption]=\"'Case level flags' | rpxTranslate\"\n          [flagData]=\"caseLevelCaseFlagData\"\n          [firstColumnHeader]=\"'Case flags' | rpxTranslate\"\n        ></ccd-case-flag-table>\n      </div>\n    </ng-container>\n  </ng-container>\n</ng-container>\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { CaseTab } from '../../../domain';\nimport { FieldsUtils } from '../../../services/fields';\nimport { CaseFlagStateService } from '../../case-editor/services/case-flag-state.service';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\nimport { PaletteContext } from '../base-field/palette-context.enum';\nimport { prioritisePvpParties } from './utils/case-flag-priority.utils';\nimport { FlagDetailDisplay, FlagsWithFormGroupPath } from './domain';\nimport { CaseFlagDisplayContextParameter, CaseFlagStatus } from './enums';\n\n@Component({\n  selector: 'ccd-read-case-flag-field',\n  templateUrl: './read-case-flag-field.component.html',\n  styleUrls: ['./read-case-flag-field.component.scss'],\n  standalone: false\n})\nexport class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent implements OnInit {\n  public flagsData: FlagsWithFormGroupPath[];\n  public partyLevelCaseFlagData: FlagsWithFormGroupPath[];\n  public caseLevelCaseFlagData: FlagsWithFormGroupPath;\n  public paletteContext = PaletteContext;\n  public flagForSummaryDisplay: FlagDetailDisplay;\n  public displayContextParameter: CaseFlagDisplayContextParameter;\n  public caseFlagsExternalUser = false;\n  public pathToFlagsFormGroup: string;\n  private readonly caseLevelCaseFlagsFieldId = 'caseFlags';\n\n  public get caseFlagDisplayContextParameter(): typeof CaseFlagDisplayContextParameter {\n    return CaseFlagDisplayContextParameter;\n  }\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly router: Router,\n    private readonly caseFlagStateService: CaseFlagStateService\n  ) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    const flagLauncherControlName = Object.keys(this.formGroup.controls).find(\n      controlName => FieldsUtils.isCaseFieldOfType(this.formGroup.get(controlName)['caseField'], ['FlagLauncher']));\n    const flagLauncherComponent = this.formGroup.get(flagLauncherControlName)?.['component'];\n    this.displayContextParameter = flagLauncherComponent?.caseField?.display_context_parameter;\n    this.caseFlagsExternalUser = this.displayContextParameter === CaseFlagDisplayContextParameter.READ_EXTERNAL;\n\n    // If the context is PaletteContext.DEFAULT, the Flags fields need to be located by CaseTab (they won't be present\n    // in the FormGroup - only the FlagLauncher field is present)\n    if (this.context === PaletteContext.DEFAULT) {\n      // Determine the tab this CaseField belongs to (should be only one), from the CaseView object in the snapshot\n      // data, and extract all flags-related data from its Flags fields\n      if (this.route.snapshot.data.case?.tabs) {\n        this.flagsData = (this.route.snapshot.data.case.tabs as CaseTab[])\n          .filter((tab) => tab.fields?.some(\n            // There could be more than one FlagLauncher field instance so an additional check of caseField ID is\n            // required to ensure the correct instance is obtained\n            (caseField) => caseField.field_type.type === 'FlagLauncher' && caseField.id === this.caseField.id))\n          [0].fields?.reduce((flags, caseField) => FieldsUtils.extractFlagsDataFromCaseField(\n            flags, caseField, caseField.id, caseField), []);\n      }\n\n      // Separate the party-level and case-level flags\n      this.partyLevelCaseFlagData = this.flagsData.filter(\n        (instance) => instance.pathToFlagsFormGroup !== this.caseLevelCaseFlagsFieldId);\n      // If the user is internal, group all flags data by groupId where present so they see a combined collection of\n      // internal and external flags data for each party\n      if (!this.caseFlagsExternalUser) {\n        const groupedFlagsData = this.partyLevelCaseFlagData\n          .filter((f) => f.flags.groupId)\n          .reduce((mergedFlagDetails, f) => {\n            mergedFlagDetails[f.flags.groupId] = mergedFlagDetails[f.flags.groupId] || [];\n            // The flags.details property (which should be an array) could be falsy; spread an empty array if so\n            mergedFlagDetails[f.flags.groupId].push(...(f.flags.details || []));\n            return mergedFlagDetails;\n          }, Object.create(null));\n        // Remove duplicate flags objects with the same groupId (which are going to be treated as one for display\n        // purposes)\n        const uniquePartyData = this.partyLevelCaseFlagData\n          .filter((f) => f.flags.groupId)\n          .reduce((flagsUniqueByGroupId, f) => {\n            if (flagsUniqueByGroupId.findIndex(flag => flag.flags.groupId === f.flags.groupId) === -1) {\n            // Set the corresponding grouped flags data\n              f.flags.details = groupedFlagsData[f.flags.groupId];\n              flagsUniqueByGroupId.push(f);\n            }\n            return flagsUniqueByGroupId;\n          }, []);\n        // Append flags objects with no groupId\n        this.partyLevelCaseFlagData.filter((f) => !f.flags.groupId).forEach((f) => uniquePartyData.push(f));\n        this.partyLevelCaseFlagData = uniquePartyData;\n      }\n\n      // Prioritise active PVP flags (PF0021), then order the remaining flags by creation date (most recent first).\n      this.partyLevelCaseFlagData = prioritisePvpParties(this.partyLevelCaseFlagData);\n\n      // There will be only one case-level flags instance containing all case-level flag details\n      this.caseLevelCaseFlagData = this.flagsData.find(\n        (instance) => instance.pathToFlagsFormGroup === this.caseLevelCaseFlagsFieldId);\n    } else if (this.context === PaletteContext.CHECK_YOUR_ANSWER) {\n      // If the context is PaletteContext.CHECK_YOUR_ANSWER, the Flags data is already present within the FormGroup.\n      // The FlagLauncher component, WriteCaseFlagFieldComponent, holds a reference to:\n      // i) the parent FormGroup for the Flags instance where changes have been made;\n      // ii) the currently selected flag (selectedFlag) if one exists\n      const caseFlagLocationControl = 'selectedManageCaseLocation';\n      if (flagLauncherComponent) {\n        // The FlagLauncher component holds a reference (selectedFlagsLocation) containing the CaseField instance to\n        // which the new flag has been added\n        if ((flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.CREATE ||\n          flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.CREATE_2_POINT_1 ||\n          flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.CREATE_EXTERNAL) &&\n          flagLauncherComponent.selectedFlagsLocation) {\n          this.cleanupNavigationFormAdditions(flagLauncherComponent.selectedFlagsLocation);\n          this.pathToFlagsFormGroup = flagLauncherComponent.selectedFlagsLocation.pathToFlagsFormGroup;\n          this.flagForSummaryDisplay = this.extractNewFlagToFlagDetailDisplayObject(\n            flagLauncherComponent.selectedFlagsLocation);\n        // The FlagLauncher component holds a reference (selectedFlag), which gets set after the selection step of the\n        // Manage Case Flags journey\n        } else if ((flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE ||\n          flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1 ||\n          flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL) &&\n          (flagLauncherComponent.selectedFlag ||\n            (this.caseFlagStateService.formGroup.get(caseFlagLocationControl).value.flagDetailDisplay && this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1))) {\n          if (this.formGroup.get(flagLauncherControlName)['component']?.selectedFlag?.flagDetailDisplay !== undefined) {\n            this.flagForSummaryDisplay =\n              this.formGroup.get(flagLauncherControlName)['component'].selectedFlag.flagDetailDisplay;\n          } else {\n            this.flagForSummaryDisplay =\n              this.caseFlagStateService.formGroup.get(caseFlagLocationControl).value.flagDetailDisplay;\n          }\n          // TODO: not the best solution, the caseFlagStateService should have all the fields, then we can delete a lot of the transformations here\n          // in Create Case Flag it already has all fields\n          const caseFlagFormGroupValue = this.caseFlagStateService.formGroup?.value;\n          if (caseFlagFormGroupValue) {\n            caseFlagFormGroupValue.status = CaseFlagStatus[caseFlagFormGroupValue.status];\n            this.flagForSummaryDisplay.flagDetail = {\n              ...this.flagForSummaryDisplay.flagDetail,\n              ...caseFlagFormGroupValue\n            };\n          }\n        }\n      }\n    }\n  }\n\n  private cleanupNavigationFormAdditions(selectedFlagsLocation: FlagsWithFormGroupPath): void{\n    const path = selectedFlagsLocation.pathToFlagsFormGroup;\n    Object.keys(this.formGroup.controls).forEach((controlName) => {\n      const control = this.formGroup.get(controlName);\n      if ((controlName !== path)) {\n        if (control['caseField'].formatted_value?.details) {\n          // we want to loop through the current flag details to ensure that there are no additional data from the usre restarting the flow that have been added.\n          for (const value in control['caseField'].formatted_value?.details) {\n            // if the id is undefined then the user has added this as part of their current flow and we should remove it so it doesnt get added to the case\n            if (!control['caseField'].formatted_value?.details[value].id) {\n              control['caseField'].value.details.pop();\n              control['caseField'].formatted_value.details.pop();\n            }\n          }\n        }\n      }\n    });\n  }\n\n  private extractNewFlagToFlagDetailDisplayObject(selectedFlagsLocation: FlagsWithFormGroupPath): FlagDetailDisplay {\n    // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the\n    // CaseField value containing the new flag\n    let flagsCaseFieldValue = selectedFlagsLocation.caseField?.value;\n    const path = selectedFlagsLocation.pathToFlagsFormGroup;\n    // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down\n    if (path.indexOf('.') > -1) {\n      path.slice(path.indexOf('.') + 1).split('.').forEach(part => flagsCaseFieldValue = flagsCaseFieldValue[part]);\n    }\n    if (flagsCaseFieldValue) {\n      return {\n        partyName: flagsCaseFieldValue.partyName,\n        // Look in the details array for the object that does *not* have an id - this indicates it is the new flag\n        flagDetail: flagsCaseFieldValue.details?.find(element => !element.hasOwnProperty('id'))?.value\n      } as FlagDetailDisplay;\n    }\n\n    return null;\n  }\n\n  public navigateBackToForm(fieldState: number): void {\n    this.caseFlagStateService.fieldStateToNavigate = fieldState;\n    this.router.navigate([`../${this.caseFlagStateService.pageLocation}`], { relativeTo: this.route });\n  }\n}\n","<!-- Error message summary -->\n<div *ngIf=\"errorMessages.length > 0\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\"\n  tabindex=\"-1\" data-module=\"govuk-error-summary\">\n  <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n    {{'There is a problem' | rpxTranslate}}\n  </h2>\n  <div *ngFor=\"let errorMessage of errorMessages\" class=\"govuk-error-summary__body\">\n    <ul class=\"govuk-list govuk-error-summary__list\">\n      <li>\n        <a (click)=\"navigateToErrorElement(errorMessage.fieldId)\" class=\"validation-error\">{{errorMessage.description |\n          rpxTranslate}}</a>\n      </li>\n    </ul>\n  </div>\n</div>\n<div *ngIf=\"!isDisplayContextParameterUpdate\" class=\"form-group\" [formGroup]=\"formGroup\">\n  <div class=\"govuk-form-group\" [ngSwitch]=\"fieldState\">\n    <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_LOCATION\">\n      <ccd-select-flag-location \n        #journeyChild \n        [formGroup]=\"caseFlagParentFormGroup\" \n        [flagsData]=\"flagsData\"\n        [isDisplayContextParameterExternal]=\"isDisplayContextParameterExternal\"\n        (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\">\n      </ccd-select-flag-location>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_TYPE\">\n      <ccd-select-flag-type \n        #journeyChild \n        [formGroup]=\"caseFlagParentFormGroup\" \n        [jurisdiction]=\"jurisdiction\"\n        [caseTypeId]=\"caseTypeId\" \n        [hmctsServiceId]=\"hmctsServiceId\"\n        [isDisplayContextParameterExternal]=\"isDisplayContextParameterExternal\"\n        [isDisplayContextParameter2Point1Enabled]=\"isDisplayContextParameter2Point1Enabled\"\n        [selectedFlagsLocation]=\"selectedFlagsLocation\" \n        (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"\n        (flagCommentsOptionalEmitter)=\"onFlagCommentsOptionalEmitted($event)\"\n        (flagTypeSubJourneyEmitter)=\"updateFlagTypeSubJourney($event)\">\n      </ccd-select-flag-type>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_LANGUAGE_INTERPRETER\">\n      <ccd-search-language-interpreter \n        #journeyChild \n        [formGroup]=\"caseFlagParentFormGroup\" \n        [flagType]=\"flagType\" \n        (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\">\n      </ccd-search-language-interpreter>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_COMMENTS\">\n      <ccd-add-comments \n        #journeyChild \n        [formGroup]=\"caseFlagParentFormGroup\" \n        [optional]=\"flagCommentsOptional\"\n        [isDisplayContextParameterExternal]=\"isDisplayContextParameterExternal\"\n        [isDisplayContextParameter2Point1Enabled]=\"isDisplayContextParameter2Point1Enabled\"\n        (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\">\n      </ccd-add-comments>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_STATUS\">\n      <ccd-confirm-flag-status \n        #journeyChild \n        [formGroup]=\"caseFlagParentFormGroup\"\n        [defaultStatus]=\"flagType.defaultStatus\" \n        (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\">\n      </ccd-confirm-flag-status>\n    </ng-container>\n  </div>\n</div>\n<div *ngIf=\"isDisplayContextParameterUpdate\" class=\"form-group\" [formGroup]=\"formGroup\">\n  <div class=\"govuk-form-group\" [ngSwitch]=\"fieldState\">\n    <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS\">\n      <ccd-manage-case-flags \n        #journeyChild \n        [formGroup]=\"caseFlagParentFormGroup\" \n        [flagsData]=\"flagsData\"\n        [caseTitle]=\"caseTitle\" \n        [displayContextParameter]=\"displayContextParameter\"\n        (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\">\n      </ccd-manage-case-flags>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_UPDATE\">\n      <ccd-update-flag \n        #journeyChild \n        [formGroup]=\"caseFlagParentFormGroup\"\n        [displayContextParameter]=\"displayContextParameter\" \n        (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\">\n      </ccd-update-flag>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION\">\n      <ccd-update-flag-add-translation-form \n        #journeyChild \n        [formGroup]=\"caseFlagParentFormGroup\"\n        (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\">\n      </ccd-update-flag-add-translation-form>\n    </ng-container>\n  </div>\n</div>","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { Subscription } from 'rxjs';\nimport { CaseEditDataService } from '../../../commons/case-edit-data/case-edit-data.service';\nimport { CaseField, ErrorMessage, Journey } from '../../../domain';\nimport { FlagType } from '../../../domain/case-flag';\nimport { FieldsUtils } from '../../../services/fields';\nimport { CaseFlagState, FlagDetail, FlagDetailDisplayWithFormGroupPath, FlagsWithFormGroupPath } from './domain';\nimport { MultipageComponentStateService } from '../../../services';\nimport { AbstractFieldWriteJourneyComponent } from '../base-field/abstract-field-write-journey.component';\nimport { CaseFlagStateService } from '../../case-editor/services/case-flag-state.service';\nimport { CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagStatus } from './enums';\nimport { LinkedCasesService } from '../linked-cases/services';\n\n@Component({\n  selector: 'ccd-write-case-flag-field',\n  templateUrl: './write-case-flag-field.component.html',\n  styleUrls: ['./write-case-flag-field.component.scss'],\n  standalone: false\n})\nexport class WriteCaseFlagFieldComponent extends AbstractFieldWriteJourneyComponent implements OnInit, OnDestroy, Journey {\n  //public formGroup: FormGroup;\n  public fieldState: number;\n  public caseFlagFieldState = CaseFlagFieldState;\n  public errorMessages: ErrorMessage[] = [];\n  public flagsData: FlagsWithFormGroupPath[];\n  public selectedFlag: FlagDetailDisplayWithFormGroupPath;\n  public caseFlagParentFormGroup: FormGroup;\n  public flagCommentsOptional = false;\n  public jurisdiction: string;\n  public caseTypeId: string;\n  public hmctsServiceId: string;\n  public isDisplayContextParameterUpdate: boolean;\n  public isDisplayContextParameterExternal: boolean;\n  public isDisplayContextParameter2Point1Enabled: boolean;\n  public caseTitle: string;\n  public caseTitleSubscription: Subscription;\n  public displayContextParameter: string;\n  public determinedLocation: FlagsWithFormGroupPath;\n  private allCaseFlagStagesCompleted = false;\n  public navigatedTo = false;\n  // Code for \"Other\" flag type as defined in Reference Data\n  private readonly otherFlagTypeCode = 'OT0001';\n  private readonly selectedManageCaseLocation = 'selectedManageCaseLocation';\n  public readonly caseNameMissing = 'Case name missing';\n  flagTypeSubJourneyIndex: any;\n\n  public get flagType(): FlagType | null {\n    return this.caseFlagParentFormGroup?.value.flagType;\n  }\n\n  public get selectedFlagsLocation(): FlagsWithFormGroupPath | null {\n    return this.caseFlagParentFormGroup?.value.selectedLocation;\n  }\n\n  public set selectedFlagsLocation(selectedLocation: FlagsWithFormGroupPath | null) {\n    if (this.caseFlagParentFormGroup) {\n      this.caseFlagParentFormGroup.value.selectedLocation = selectedLocation;\n    }\n  }\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly caseEditDataService: CaseEditDataService,\n    private readonly caseFlagStateService: CaseFlagStateService,\n    private readonly rpxTranslationService: RpxTranslationService,\n    private readonly router: Router,\n    private readonly linkedCasesService: LinkedCasesService,\n    multipageComponentStateService: MultipageComponentStateService\n  ) {\n    super(multipageComponentStateService);\n    this.handleBackButton = this.handleBackButton.bind(this);\n  }\n\n  public ngOnInit(): void {\n    this.linkedCasesService.resetLinkedCaseData();\n    const trigUrl = location.href;\n    this.addState(null, this.router.url.split('/').splice(0, this.router.url.split('/').indexOf('trigger')).join('/'));\n    this.addState(0, trigUrl);\n    // If it is start of the journey or navigation from check your answers page then fieldStateToNavigate property\n    // in case flag state service will contain the field state to navigate based on create or manage journey\n    this.fieldState = this.caseFlagStateService.fieldStateToNavigate;\n    if (this.fieldState === undefined) {\n      const params = this.route.snapshot.params;\n      // Clear the form group, field state to navigate and set the page location\n      this.caseFlagStateService.resetCache(`../${params['eid']}/${params['page']}`);\n    } else {\n      this.navigatedTo = true;\n    }\n\n    // Reassign the form group from the case flag state service\n    this.caseFlagParentFormGroup = this.caseFlagStateService.formGroup;\n    // Clear form validation errors as a new page will be rendered based on field state\n    this.caseEditDataService.clearFormValidationErrors();\n    // Check for existing FlagLauncher control in parent and remove it - this is the only way to ensure its invalidity\n    // is set correctly at the start, when the component is reloaded and the control is re-registered. Otherwise, the\n    // validator state gets carried over\n    if (this.formGroup && this.formGroup.get(this.caseField.id)) {\n      this.formGroup.removeControl(this.caseField.id);\n    }\n    // From this point, this.formGroup refers to the FormGroup for the FlagLauncher field, not the parent FormGroup\n    this.formGroup = this.registerControl(new FormGroup({}, {\n      validators: (_: AbstractControl): { [key: string]: boolean } | null => {\n        if (!this.allCaseFlagStagesCompleted) {\n          // Return an error to mark the FormGroup as invalid if not all Case Flag stages have been completed\n          return { notAllCaseFlagStagesCompleted: true };\n        }\n        return null;\n      }\n    }), true) as FormGroup;\n\n    // Get the case type ID from the CaseView object in the snapshot data (required for retrieving the available flag\n    // types for a case)\n    if (this.route.snapshot.data.case && this.route.snapshot.data.case.case_type) {\n      this.caseTypeId = this.route.snapshot.data.case.case_type.id;\n      // Get the jurisdiction (required for retrieving the available flag types if unable to determine using case type ID)\n      if (this.route.snapshot.data.case.case_type.jurisdiction) {\n        this.jurisdiction = this.route.snapshot.data.case.case_type.jurisdiction.id;\n      }\n    }\n    // Extract all flags-related data from the CaseEventTrigger object in the snapshot data\n    if (this.route.snapshot.data.eventTrigger) {\n      // Get the HMCTSServiceId from supplementary data, if it exists (required for retrieving the available flag types in\n      // the first instance, only falling back on case type ID or jurisdiction if it's not present)\n      if (this.route.snapshot.data.eventTrigger.supplementary_data\n        && this.route.snapshot.data.eventTrigger.supplementary_data.HMCTSServiceId) {\n        this.hmctsServiceId = this.route.snapshot.data.eventTrigger.supplementary_data.HMCTSServiceId;\n      }\n\n      if (this.route.snapshot.data.eventTrigger.case_fields) {\n        // there is an edge case in the navigation when going back, sometimes the case_fileds will lose values in the values which causes the flow to break before CYA\n        // below funciton ensures all data is correctly set.\n        const flagData = this.validateCaseFields(this.route.snapshot.data.eventTrigger.case_fields);\n        this.flagsData = (this.route.snapshot.data.eventTrigger.case_fields as CaseField[])\n          .reduce((flags: FlagsWithFormGroupPath[], caseField: CaseField) => {\n            return FieldsUtils.extractFlagsDataFromCaseField(flags, caseField, caseField.id, caseField);\n          }, [] as FlagsWithFormGroupPath[]);\n\n        // Set displayContextParameter (to be passed as an input to ManageCaseFlagsComponent for setting correct title)\n        this.displayContextParameter =\n          this.setDisplayContextParameter(flagData as CaseField[]);\n\n        // Set boolean indicating the display_context_parameter is \"update\"\n        this.isDisplayContextParameterUpdate = this.setDisplayContextParameterUpdate(this.displayContextParameter);\n\n        // Set boolean indicating the display_context_parameter is \"external\"\n        this.isDisplayContextParameterExternal = this.setDisplayContextParameterExternal(this.displayContextParameter);\n\n        // Set boolean indicating the display_context_parameter is Case Flags v2.1 enabled\n        this.isDisplayContextParameter2Point1Enabled = this.setDisplayContextParameter2Point1Enabled(this.displayContextParameter);\n\n        // Set starting field state if fieldState not the right value\n        if (!this.fieldState) {\n          this.fieldState = this.isDisplayContextParameterUpdate ? CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : CaseFlagFieldState.FLAG_LOCATION;\n        }\n\n        // Get case title, to be used by child components\n        this.caseTitleSubscription = this.caseEditDataService.caseTitle$.subscribe({\n          next: title => {\n            this.caseTitle = title?.length > 0 ? title : this.caseNameMissing;\n          }\n        });\n      }\n    }\n\n    // CSFD-16.\n    // Setup the page number to initially be the same value as\n    // the start page number. Provided that some state exists within\n    // the page state service, use that instaead.\n    //\n    // If isDisplayContextParameterUpdate is true, then the starting page must be\n    // the value of 4. Otherwise, it's 0. However, we're using an enum to simplify\n    // this process.\n    //\n    // It might help to take a look at the template file.\n    if (this.isDisplayContextParameterUpdate) {\n      this.journeyStartPageNumber = CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS;\n      this.journeyEndPageNumber = CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION;\n    } else {\n      this.journeyStartPageNumber = CaseFlagFieldState.FLAG_LOCATION;\n      this.journeyEndPageNumber = CaseFlagFieldState.FLAG_STATUS;\n    }\n\n    // Now that we've set the start page number, let's set the current page number.\n    this.journeyPageNumber = this.journeyStartPageNumber;\n\n    // If we've navigated to this page, then we know by default, we want to set the\n    // journey page number to the field state.\n    if (this.navigatedTo) {\n      const pageNo = this.fieldState === CaseFlagFieldState.FLAG_STATUS ? this.fieldState -1 : this.fieldState;\n      this.journeyPageNumber = pageNo;\n      this.journeyPreviousPageNumber = pageNo+1;\n    }\n\n    // Provided we have some stored state, i.e. when going backwards, we want\n    // to get the last visited page, etc.\n    const state = this.multipageComponentStateService.getJourneyState(this);\n\n    if (state) {\n      const { journeyPageNumber, journeyStartPageNumber, journeyEndPageNumber } = state;\n\n      this.journeyPageNumber = journeyPageNumber;\n      this.journeyStartPageNumber = journeyStartPageNumber;\n      this.journeyEndPageNumber = journeyEndPageNumber;\n    }\n\n    this.multipageComponentStateService.isAtStart = this.journeyPageNumber === this.journeyStartPageNumber;\n    window.addEventListener('popstate', this.handleBackButton);\n  }\n\n  public handleBackButton(event) {\n    event.preventDefault();\n    if (this.fieldState === 0) {\n      this.router.navigate([this.router.url.split('/').splice(0, this.router.url.split('/').indexOf('trigger')).join('/')]);\n    } else if (this.fieldState === 1 && this.flagTypeSubJourneyIndex === 0) {\n      this.previousPage();\n    } else if (this.fieldState !== 1) {\n      this.previousPage();\n    }\n  }\n\n  public addState(data, url?): void {\n    history.pushState(data, '', url);\n  }\n\n  public updateFlagTypeSubJourney(event): void {\n    this.flagTypeSubJourneyIndex = event;\n  }\n\n  validateCaseFields(caseFields) {\n    caseFields.forEach((field) => {\n      if (field.formatted_value) {\n        Object.keys(field.formatted_value).forEach((valueKey) => {\n          if (field.formatted_value[valueKey] !== field.value[valueKey]) {\n            field.value[valueKey] = field.formatted_value[valueKey];\n          }\n        });\n      }\n    });\n    return caseFields;\n  }\n\n  public onPageChange(): void {\n    this.multipageComponentStateService.isAtStart = this.fieldState === this.caseFlagFieldState.FLAG_LOCATION;\n    this.addState(this.fieldState);\n  }\n\n  public setDisplayContextParameterUpdate(displayContextParameter: string): boolean {\n    return displayContextParameter === CaseFlagDisplayContextParameter.UPDATE ||\n      displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL ||\n      displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1;\n  }\n\n  public setDisplayContextParameterExternal(displayContextParameter: string): boolean {\n    return displayContextParameter === CaseFlagDisplayContextParameter.CREATE_EXTERNAL ||\n      displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL;\n  }\n\n  public setDisplayContextParameter2Point1Enabled(displayContextParameter: string): boolean {\n    return displayContextParameter === CaseFlagDisplayContextParameter.CREATE_2_POINT_1 ||\n      displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1;\n  }\n\n  public onCaseFlagStateEmitted(caseFlagState: CaseFlagState): void {\n    this.caseEditDataService.clearFormValidationErrors();\n\n    this.errorMessages = caseFlagState.errorMessages;\n    this.selectedFlag = caseFlagState.selectedFlag;\n\n    // Validation succeeded; proceed to next state or final review stage (\"Check your answers\")\n    if (this.errorMessages.length === 0) {\n      if (this.canMoveToFinalReviewStage(caseFlagState)) {\n        this.moveToFinalReviewStage();\n        // Don't move to next state if current state is CaseFlagFieldState.FLAG_TYPE and the flag type is a parent - this\n        // means the user needs to select from the next set of flag types before they can move on\n      } else if (!caseFlagState.isParentFlagType) {\n        // Proceed to next state\n        this.proceedToNextState();\n      }\n    }\n  }\n\n  public canMoveToFinalReviewStage(caseFlagState: CaseFlagState): boolean {\n    // If the journey is request support or manage support\n    // and the current state is either CaseFlagFieldState.FLAG_COMMENTS or CaseFlagFieldState.FLAG_UPDATE\n    // then move to final review stage\n    if (this.isDisplayContextParameterExternal) {\n      return caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_COMMENTS ||\n        caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE;\n    }\n    // If the current state is one of:\n    // * CaseFlagFieldState.FLAG_STATUS AND Case Flags v2.1 is enabled\n    // * CaseFlagFieldState.FLAG_COMMENTS AND Case Flags v2.1 is not enabled\n    // * CaseFlagFieldState.FLAG_UPDATE and Welsh translation checkbox is not selected\n    // * CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION\n    // then move to final review stage\n    return (caseFlagState.currentCaseFlagFieldState ===\n      CaseFlagFieldState.FLAG_STATUS && this.isDisplayContextParameter2Point1Enabled) ||\n      (caseFlagState.currentCaseFlagFieldState ===\n        CaseFlagFieldState.FLAG_COMMENTS && !this.isDisplayContextParameter2Point1Enabled) ||\n      (caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE &&\n        !this.caseFlagParentFormGroup.get(CaseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED)?.value) ||\n      caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION;\n  }\n\n  public proceedToNextState(): void {\n    if (!this.isAtFinalState()) {\n      this.journeyPreviousPageNumber = this.fieldState;\n      // Skip the \"language interpreter\" state if current state is CaseFlagFieldState.FLAG_TYPE and the flag type doesn't\n      // have a \"list of values\" - currently, this is present only for those flag types that require language interpreter\n      // selection\n      if (this.fieldState === CaseFlagFieldState.FLAG_TYPE && !this.flagType?.listOfValues) {\n        this.fieldState = CaseFlagFieldState.FLAG_COMMENTS;\n      } else {\n        this.fieldState++;\n      }\n\n      this.nextPage();\n    }\n  }\n\n  public setFlagsCaseFieldValue(): void {\n    // tslint:disable-next-line: switch-default\n    switch (this.fieldState) {\n      case CaseFlagFieldState.FLAG_STATUS:\n        this.addFlagToCollection();\n        break;\n      case CaseFlagFieldState.FLAG_COMMENTS:\n        if (this.isDisplayContextParameterExternal || !this.isDisplayContextParameter2Point1Enabled) {\n          this.addFlagToCollection();\n        }\n        break;\n      case this.manageFlagFinalState:\n        this.updateFlagInCollection();\n        break;\n    }\n  }\n\n  public previousPage(): void {\n    // if we are navigating away from the page, we should set the error messages to empty so the message dissapears\n    this.errorMessages = [];\n    this.journeyPreviousPageNumber = this.fieldState;\n    if (this.hasPrevious() && this.fieldState === CaseFlagFieldState.FLAG_COMMENTS && !this.flagType?.listOfValues) {\n      this.fieldState = CaseFlagFieldState.FLAG_TYPE;\n    } else if (this.hasPrevious()) {\n      this.fieldState--;\n    }\n    super.previousPage();\n  }\n\n  public addFlagToCollection(): void {\n    // Ensure no more than one new flag is being added at a time, by iterating through each Flags case field and removing\n    // any previous entry from the details array where that entry has no id (hence it is new - and there should be only\n    // one such entry). (This scenario occurs if the user repeats the Case Flag creation journey by using the \"Change\"\n    // link and selects either the same flag location as before or a different one.)\n    this.flagsData.forEach(instance => {\n      // Use the pathToFlagsFormGroup property for each Flags case field to drill down to the correct part of the\n      // CaseField value to remove the new value from\n      let value = instance.caseField?.value;\n      const pathToValue = instance.pathToFlagsFormGroup;\n      // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down\n      if (pathToValue.indexOf('.') > -1) {\n        pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach(part => value = value[part]);\n      }\n      if (value?.details?.length > 0) {\n        const indexOfNewFlagDetail = value.details.findIndex(element => !element.hasOwnProperty('id'));\n        if (indexOfNewFlagDetail > -1) {\n          value.details.splice(indexOfNewFlagDetail, 1);\n        }\n      }\n    });\n\n    const formValues = this.caseFlagParentFormGroup?.value;\n    // Determine the correct location - internal or external - for the new flag. If returned as undefined, this\n    // indicates a configuration error with the external `Flags` object instance\n    this.determinedLocation =\n      this.determineLocationForFlag(!this.isDisplayContextParameterExternal, this.selectedFlagsLocation, formValues);\n    // Do not mutate this.selectedFlagsLocation; if this.selectedFlagsLocation becomes undefined,\n    // determineLocationForFlag() will no longer do anything when called with it - and the appropriate error message will\n    // not be redisplayed if the user clicks \"Next\" again on the \"Add comments\" page, after the error is first shown\n\n    if (this.determinedLocation) {\n      const path = this.determinedLocation.pathToFlagsFormGroup;\n      const flagDataRef = this.flagsData.find(item => item.pathToFlagsFormGroup === path);\n      let flagsCaseFieldValue = flagDataRef.caseField?.value;\n      // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the\n      // CaseField value to apply changes to\n      // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down\n      if (path.indexOf('.') > -1) {\n        path.slice(path.indexOf('.') + 1).split('.').forEach(part => flagsCaseFieldValue = flagsCaseFieldValue[part]);\n      }\n      // If the CaseField for the selected flags location has no value, set it to an empty object so it can be populated\n      // with flag details\n      if (!flagsCaseFieldValue) {\n        flagDataRef.caseField.value = {};\n        flagsCaseFieldValue = flagDataRef.caseField.value;\n      }\n      // Create a details array if one does not exist\n      if (!flagsCaseFieldValue.hasOwnProperty('details')) {\n        flagsCaseFieldValue.details = [];\n      }\n      // Populate new FlagDetail instance and add to the Flags data within the CaseField instance of the selected flag\n      // location\n      if (!flagsCaseFieldValue.details){\n        flagsCaseFieldValue.details = [];\n      }\n      flagsCaseFieldValue.details.push({ value: this.populateNewFlagDetailInstance() });\n    }\n  }\n\n  /**\n   * Determines the correct location (i.e. either the internal or external instance of a `Flags` object) for a new flag,\n   * according to the following:\n   *\n   * * Whether the user is internal or external (no effect for external users because they can access only the external\n   * instance)\n   * * The existence of two `Flags` objects - one internal, one external - linked by the same `groupId`;\n   * * For flags of type \"Other\", whether \"only visible to HMCTS staff\" has been selected or not (\"Other\" defaults to\n   * externally visible);\n   * * For all other flag types, the value of the `externallyAvailable` attribute.\n   *\n   * If the user is internal then the new flag should be assigned to the external `Flags` instance if:\n   * * Such an instance exists, AND\n   * * The flag type is \"Other\" and \"only visible to HMCTS staff\" was not selected, OR\n   * * The flag type is not \"Other\" and `externallyAvailable` is `true`.\n   *\n   * @param isInternalUser Whether the current user is internal or not\n   * @param selectedFlagsLocation The currently selected location for the new flag\n   * @param formValues All the values from the `caseFlagParentFormGroup`\n   * @returns The correctly determined location: either the internal or external location (if one exists) where a groupId\n   * is present; the original location otherwise. **Note:** If the external location is returned as undefined, this\n   * indicates a configuration error\n   */\n  public determineLocationForFlag(isInternalUser: boolean, selectedFlagsLocation: FlagsWithFormGroupPath,\n    formValues: any): FlagsWithFormGroupPath {\n    if (isInternalUser && selectedFlagsLocation?.flags?.groupId) {\n      if ((formValues?.flagType?.flagCode === this.otherFlagTypeCode && !formValues?.flagIsVisibleInternallyOnly) ||\n          (formValues?.flagType?.flagCode !== this.otherFlagTypeCode && formValues?.flagType?.externallyAvailable)) {\n        // If necessary, find the corresponding flags object with the same groupId and external visibility (should be\n        // only one unless misconfigured)\n        const location = selectedFlagsLocation.flags.visibility?.toLowerCase() === 'external'\n          ? selectedFlagsLocation\n          : this.flagsData.filter(\n            (f) => f.flags?.groupId === selectedFlagsLocation.flags.groupId &&\n                f.flags?.visibility?.toLowerCase() === 'external')?.[0];\n        // If location is not truthy, set an error message and make caseFlagParentFormGroup invalid to prevent\n        // navigation to the summary page (by not triggering the submit event)\n        if (!location) {\n          this.errorMessages.push({\n            title: '',\n            description: CaseFlagErrorMessage.NO_EXTERNAL_FLAGS_COLLECTION\n          });\n          this.caseFlagParentFormGroup.setErrors({\n            noExternalCollection: true\n          });\n        }\n        return location;\n      } else {\n        // If necessary, find the corresponding flags object with the same groupId and internal visibility (should be\n        // only one unless misconfigured); assumed to be internal if visibility attribute is null or undefined\n        const location = selectedFlagsLocation.flags.visibility?.toLowerCase() !== 'external'\n          ? selectedFlagsLocation\n          : this.flagsData.filter(\n            (f) => f.flags?.groupId === selectedFlagsLocation.flags.groupId &&\n              f.flags?.visibility?.toLowerCase() !== 'external')?.[0];\n          // If location is not truthy, set an error message and make caseFlagParentFormGroup invalid to prevent\n          // navigation to the summary page (by not triggering the submit event)\n        if (!location) {\n          this.errorMessages.push({\n            title: '',\n            description: CaseFlagErrorMessage.NO_INTERNAL_FLAGS_COLLECTION\n          });\n          this.caseFlagParentFormGroup.setErrors({\n            noInternalCollection: true\n          });\n        }\n        return location;\n      }\n    }\n    return selectedFlagsLocation;\n  }\n\n  public updateFlagInCollection(): void {\n    // Ensure no more than one flag is being updated at a time, by iterating through each Flags case field and resetting\n    // the description, comments, status, and date/time modified (if present) for each entry in the details array, with\n    // original values from the corresponding formatted_value property. (This scenario occurs if the user repeats the\n    // Manage Case Flag journey by using the \"Change\" link and selects a different flag to update.)\n    this.flagsData.forEach(instance => {\n      // Use the pathToFlagsFormGroup property for each Flags case field to drill down to the correct part of the\n      // CaseField value for which to restore the original values\n      let value = instance.caseField?.value;\n      let formattedValue = instance.caseField?.formatted_value;\n      const pathToValue = instance.pathToFlagsFormGroup;\n      // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down\n      if (pathToValue.indexOf('.') > -1) {\n        pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach(part => {\n          value = value[part];\n          if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {\n            formattedValue = formattedValue[part];\n          }\n        });\n      }\n      if (value?.details?.length > 0 && formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {\n        value.details.forEach(flagDetail => {\n          const originalFlagDetail = formattedValue.details?.find(detail => detail.id === flagDetail.id);\n          if (originalFlagDetail) {\n            flagDetail.value.otherDescription = originalFlagDetail.value?.otherDescription || null;\n            flagDetail.value.otherDescription_cy = originalFlagDetail.value?.otherDescription_cy || null;\n            flagDetail.value.flagComment = originalFlagDetail.value?.flagComment || null;\n            flagDetail.value.flagComment_cy = originalFlagDetail.value?.flagComment_cy || null;\n            flagDetail.value.flagUpdateComment = originalFlagDetail.value?.flagUpdateComment || null;\n            flagDetail.value.status = originalFlagDetail.value?.status;\n            flagDetail.value.dateTimeModified = originalFlagDetail.value?.dateTimeModified || null;\n          }\n        });\n      }\n    });\n    if (!this.selectedFlag) {\n      this.selectedFlag = this.formGroup.get(this.selectedManageCaseLocation).value as FlagDetailDisplayWithFormGroupPath;\n    }\n    let flagsCaseFieldValue = this.selectedFlag.caseField?.value;\n    // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the\n    // CaseField value to apply changes to\n    const path = this.selectedFlag.pathToFlagsFormGroup;\n    // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down\n    if (path.indexOf('.') > -1) {\n      path.slice(path.indexOf('.') + 1).split('.').forEach(part => flagsCaseFieldValue = flagsCaseFieldValue[part]);\n    }\n    if (flagsCaseFieldValue) {\n      const flagDetailToUpdate = flagsCaseFieldValue.details?.find(\n        detail => detail.id === this.selectedFlag.flagDetailDisplay?.flagDetail?.id);\n      if (flagDetailToUpdate) {\n        // Cache the *original* status of the flag before it is modified. This is needed if the user changes the flag status\n        // then decides to return to any part of the flag update journey. The ManageCaseFlagsComponent and UpdateFlagComponent\n        // should refer to a flag's original status, not the one set via the UI because this hasn't been persisted yet\n        if (!this.selectedFlag.originalStatus) {\n          this.selectedFlag.originalStatus = flagDetailToUpdate.value?.status;\n        }\n        // Update description fields only if flag type is \"Other\" (flag code OT0001); these fields apply only to that flag type\n        // If their FormControls don't exist, it means these fields weren't visited as part of the \"Update Flag\" journey, so do\n        // *not* update their values (otherwise they will become undefined)\n        if (flagDetailToUpdate.value?.flagCode === this.otherFlagTypeCode) {\n          if (this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION)) {\n            flagDetailToUpdate.value.otherDescription = this.caseFlagParentFormGroup.get(\n              CaseFlagFormFields.OTHER_FLAG_DESCRIPTION).value;\n          }\n          if (this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH)) {\n            flagDetailToUpdate.value.otherDescription_cy = this.caseFlagParentFormGroup.get(\n              CaseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH).value;\n          }\n        }\n        // Ensure that any comments entered with language set to Welsh do not end up in the English comments field\n        if (this.rpxTranslationService.language !== 'cy') {\n          flagDetailToUpdate.value.flagComment = this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS)?.value;\n        }\n        // Populate from the *English* comments field if:\n        // * The Welsh comments field has no value (Welsh comments field acquires a value only when an HMCTS internal user has\n        // gone through the \"add translation\" step for Manage Case Flags), AND\n        // * The language is set to Welsh\n        // If the FormControl doesn't exist, it means this field wasn't visited as part of the \"Update Flag\" journey, so do\n        // *not* update its value (otherwise it will be overridden) - unless the user is external AND working in Welsh\n        if (this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS_WELSH) || this.rpxTranslationService.language === 'cy') {\n          flagDetailToUpdate.value.flagComment_cy = this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS_WELSH)?.value\n            ? this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS_WELSH)?.value\n            : this.rpxTranslationService.language === 'cy'\n              ? this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS)?.value\n              : null;\n        }\n        flagDetailToUpdate.value.flagUpdateComment = this.caseFlagParentFormGroup.get(CaseFlagFormFields.STATUS_CHANGE_REASON)?.value;\n        flagDetailToUpdate.value.status = CaseFlagStatus[this.caseFlagParentFormGroup.get(CaseFlagFormFields.STATUS)?.value];\n        flagDetailToUpdate.value.dateTimeModified = new Date().toISOString();\n      }\n    }\n  }\n\n  public isAtFinalState(): boolean {\n    return this.isDisplayContextParameterUpdate\n      ? this.fieldState === this.manageFlagFinalState\n      : !this.isDisplayContextParameter2Point1Enabled\n        ? this.fieldState === CaseFlagFieldState.FLAG_COMMENTS\n        : this.fieldState === CaseFlagFieldState.FLAG_STATUS;\n  }\n\n  public navigateToErrorElement(elementId: string): void {\n    if (elementId) {\n      const htmlElement = document.getElementById(elementId);\n      if (htmlElement) {\n        htmlElement.scrollIntoView({ behavior: 'smooth', block: 'center' });\n        htmlElement.focus();\n      }\n    }\n  }\n\n  public onFlagCommentsOptionalEmitted(_: any): void {\n    this.flagCommentsOptional = true;\n  }\n\n  public populateNewFlagDetailInstance(): FlagDetail {\n    const langSearchTerm = this.caseFlagParentFormGroup?.value['languageSearchTerm'];\n    const manualLangEntry = this.caseFlagParentFormGroup?.value['manualLanguageEntry'];\n    const flagType = this.caseFlagParentFormGroup?.value['flagType'];\n    const otherDesc = this.caseFlagParentFormGroup?.value['otherDescription'];\n    const formValues = this.caseFlagParentFormGroup?.value;\n    return {\n      name: this.flagType?.name,\n      name_cy: flagType?.name_cy,\n      // Currently, subTypeValue, subTypeValue_cy and subTypeKey are applicable only to language flag types\n      subTypeValue: langSearchTerm && this.rpxTranslationService.language === 'en'\n        ? langSearchTerm.value\n        : manualLangEntry && this.rpxTranslationService.language === 'en'\n          ? manualLangEntry\n          : null,\n      subTypeValue_cy: langSearchTerm && this.rpxTranslationService.language === 'cy'\n        ? langSearchTerm?.value_cy\n        : manualLangEntry && this.rpxTranslationService.language === 'cy'\n          ? manualLangEntry\n          : null,\n      // For user-entered (i.e. non-Reference Data) languages, there is no key\n      subTypeKey: langSearchTerm\n        ? langSearchTerm.key\n        : null,\n      otherDescription: flagType?.flagCode === this.otherFlagTypeCode &&\n        otherDesc && this.rpxTranslationService.language === 'en'\n        ? otherDesc\n        : null,\n      otherDescription_cy: flagType?.flagCode === this.otherFlagTypeCode &&\n        otherDesc && this.rpxTranslationService.language === 'cy'\n        ? otherDesc\n        : null,\n      flagComment: this.rpxTranslationService.language === 'en'\n        ? formValues?.flagComments\n        : null,\n      flagComment_cy: this.rpxTranslationService.language === 'cy'\n        ? formValues?.flagComments\n        : null,\n      flagUpdateComment: formValues?.statusReason,\n      dateTimeCreated: new Date().toISOString(),\n      path: flagType?.Path &&\n        flagType?.Path.map(pathValue => Object.assign({ id: null, value: pathValue })),\n      hearingRelevant: flagType?.hearingRelevant ? 'Yes' : 'No',\n      flagCode: flagType?.flagCode,\n      // Status should be set to whatever the default is for this flag type, if flag is being created by an external\n      // user, otherwise it should be set to \"Active\" if Case Flags v2.1 is NOT enabled, or the selected status if it is\n      status: this.isDisplayContextParameterExternal\n        ? flagType?.defaultStatus\n        : !this.isDisplayContextParameter2Point1Enabled\n          ? CaseFlagStatus.ACTIVE\n          : CaseFlagStatus[formValues?.selectedStatus],\n      availableExternally: flagType?.externallyAvailable ? 'Yes' : 'No'\n    } as FlagDetail;\n  }\n\n  public moveToFinalReviewStage(): void {\n    this.caseFlagStateService.lastPageFieldState = this.fieldState;\n    this.setFlagsCaseFieldValue();\n    // Check that no errors have been set on caseFlagParentFormGroup (by determineLocationForFlag()); prevent moving to\n    // final review stage if errors exist\n    if (!this.caseFlagParentFormGroup.errors) {\n      // Clear the \"notAllCaseFlagStagesCompleted\" error\n      this.allCaseFlagStagesCompleted = true;\n      this.formGroup.updateValueAndValidity();\n      this.caseEditDataService.setTriggerSubmitEvent(true);\n      // Update this.selectedFlagsLocation with the correctly determined location, so the correct value is available to\n      // ReadCaseFlagFieldComponent when it initialises the Case Flag Summary page\n      this.selectedFlagsLocation = this.determinedLocation;\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.multipageComponentStateService.setJourneyState(this);\n    window.removeEventListener('popstate', this.handleBackButton);\n    // Reset the fieldstateToNavigate as the write journey completes at this point\n    this.caseFlagStateService.fieldStateToNavigate = undefined;\n    this.caseTitleSubscription?.unsubscribe();\n  }\n\n  public get manageFlagFinalState() {\n    return this.caseFlagParentFormGroup.get(CaseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED)?.value\n      ? CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : CaseFlagFieldState.FLAG_UPDATE;\n  }\n\n  public setDisplayContextParameter(caseFields: CaseField[]): string {\n    return caseFields.find(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']))?.display_context_parameter;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Draft, DRAFT_PREFIX } from '../../domain/draft.model';\n\n@Pipe({\n  name: 'ccdCaseReference',\n  standalone: false\n})\nexport class CaseReferencePipe implements PipeTransform {\n\n  public transform(caseReference: string): string {\n    if (!caseReference) {\n      return '';\n    }\n    if (Draft.isDraft(caseReference)) {\n      return DRAFT_PREFIX;\n    } else {\n      const regex = /(?:\\/)?(\\d{4})(\\d{4})(\\d{4})(\\d{4})/g;\n      const result = String(caseReference).replace(regex, (match,\n        g1, g2, g3, g4) => {\n          const isLink = match[0] === '/';\n          if (isLink) {\n            return match;\n          }\n\n          return [g1, g2, g3, g4].join('-');\n      });\n\n      return result;\n    }\n  }\n}\n","<a *ngIf=\"hasReference()\" href=\"/v2/case/{{caseField.value.CaseReference}}\" target=\"_blank\">\n  <span class=\"text-16\">{{caseField.value.CaseReference ? (caseField.value.CaseReference | ccdCaseReference) : ''}}</span>\n</a>\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-case-link-field',\n  templateUrl: 'read-case-link-field.html',\n  standalone: false\n})\nexport class ReadCaseLinkFieldComponent extends AbstractFieldReadComponent {\n\n  public hasReference(): boolean {\n    return this.caseField.value && this.caseField.value.CaseReference;\n  }\n}\n","<div class=\"form-group\" [ngClass]=\"{'form-group-error': !caseReferenceControl.valid && (caseReferenceControl.dirty || caseReferenceControl.touched)}\">\n  <label [for]=\"id()\">\n    <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n  <span class=\"error-message\" *ngIf=\"caseReferenceControl.errors && (caseReferenceControl.dirty || caseReferenceControl.touched)\">\n    {{caseReferenceControl.errors | ccdFirstError:caseField.label}}\n  </span>\n  <input class=\"form-control bottom-30\" [id]=\"id()\" type=\"text\" [formControl]=\"caseReferenceControl\">\n</div>\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\n\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\nimport { WriteComplexFieldComponent } from '../complex/write-complex-field.component';\n\n@Component({\n  selector: 'ccd-write-case-link-field',\n  templateUrl: 'write-case-link-field.html',\n  standalone: false\n})\nexport class WriteCaseLinkFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public caseReferenceControl: AbstractControl;\n  public caseLinkGroup: FormGroup;\n\n  @ViewChild('writeComplexFieldComponent')\n  public writeComplexFieldComponent: WriteComplexFieldComponent;\n\n  public ngOnInit(): void {\n    if (this.caseField.value) {\n      this.caseLinkGroup = this.registerControl(new FormGroup({\n        CaseReference: new FormControl(this.caseField.value.CaseReference, Validators.required),\n      }), true) as FormGroup;\n    } else {\n      this.caseLinkGroup = this.registerControl(new FormGroup({\n        CaseReference: new FormControl(null, Validators.required),\n      }), true) as FormGroup;\n    }\n    this.caseReferenceControl = this.caseLinkGroup.controls['CaseReference'];\n    this.caseReferenceControl.setValidators(this.caseReferenceValidator());\n\n    // Ensure that all sub-fields inherit the same value for retain_hidden_value as this parent; although a CaseLink\n    // field uses the Complex type, it is meant to be treated as one field\n    if (this.caseField && this.caseField.field_type.type === 'Complex') {\n      for (const caseLinkSubField of this.caseField.field_type.complex_fields) {\n        caseLinkSubField.retain_hidden_value = this.caseField.retain_hidden_value;\n      }\n    }\n  }\n\n  private caseReferenceValidator(): ValidatorFn {\n    return (control: AbstractControl): { [key: string]: any } => {\n      if (control.value) {\n        if (this.validCaseReference(control.value)) {\n          return null;\n        }\n        return { error: 'Please use a valid 16 Digit Case Reference' };\n      } else {\n        if (control.touched) {\n          return { error: 'Please use a valid 16 Digit Case Reference' };\n        }\n      }\n      return null;\n    };\n  }\n\n  private validCaseReference(valueString: string): boolean {\n    if (!valueString) {\n      return false;\n    }\n    return new RegExp('^\\\\b\\\\d{4}[ -]?\\\\d{4}[ -]?\\\\d{4}[ -]?\\\\d{4}\\\\b$').test(valueString.trim());\n  }\n}\n","<table *ngIf=\"caseField.value && caseField.value.length \" class=\"collection-field-table\" aria-describedby=\"collection table\">\n  <ng-container [ngSwitch]=\"isDisplayContextParameterAvailable\">\n    <tbody *ngSwitchCase=\"true\">\n    <tr>\n      <th id=\"hiddenHeader\" style=\"display: none;\"></th>\n      <td>\n        <ccd-field-read\n          [caseField]=\"{\n            id: caseField.label,\n            label: caseField.label,\n            field_type: caseField.field_type.collection_field_type,\n            display_context_parameter: caseField.display_context_parameter,\n            value: caseField.value,\n            hidden: caseField.hidden,\n            parent: caseField\n          }\"\n          [context]=\"context\"\n          [caseFields]=\"caseFields\"\n          [topLevelFormGroup]=\"topLevelFormGroup\">\n        </ccd-field-read>\n      </td>\n    </tr>\n    </tbody>\n    <tbody *ngSwitchCase=\"false\">\n    <tr *ngFor=\"let item of caseField.value; let i = index\">\n      <td>\n        <ccd-field-read\n          [caseField]=\"{\n            id: i + '',\n            label: caseField.label + ' ' + (i + 1),\n            field_type: caseField.field_type.collection_field_type,\n            value: item.value,\n            hidden: caseField.hidden,\n            parent: caseField\n          }\"\n          [context]=\"context\"\n          [caseFields]=\"caseFields\"\n          [topLevelFormGroup]=\"topLevelFormGroup\"\n          [idPrefix]=\"buildIdPrefix(i)\">\n        </ccd-field-read>\n      </td>\n    </tr>\n    </tbody>\n  </ng-container>\n</table>\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\nimport { CaseField } from '../../../../shared/domain/definition/case-field.model';\n\n@Component({\n  selector: 'ccd-read-collection-field',\n  templateUrl: './read-collection-field.html',\n  styleUrls: ['./collection-field.scss'],\n  standalone: false\n})\nexport class ReadCollectionFieldComponent extends AbstractFieldReadComponent implements OnInit {\n\n  @Input()\n  public caseFields: CaseField[] = [];\n  public isDisplayContextParameterAvailable = false;\n\n  public ngOnInit(): void {\n    if (this.caseField.display_context_parameter && this.caseField.display_context_parameter.trim().startsWith('#TABLE(')) {\n      this.isDisplayContextParameterAvailable = true;\n    }\n  }\n\n  public buildIdPrefix(index: number): string {\n    const prefix = `${this.idPrefix}${this.caseField.id}_`;\n    if (this.caseField.field_type.collection_field_type.type === 'Complex') {\n      return `${prefix}${index}_`;\n    }\n    return prefix;\n  }\n}\n","import { Component } from '@angular/core';\nimport { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\n\n@Component({\n  selector: 'ccd-remove-dialog',\n  templateUrl: './remove-dialog.component.html',\n  styleUrls: ['../action-dialog.component.scss'],\n  standalone: false\n})\nexport class RemoveDialogComponent {\n\n  public result: string;\n\n  constructor(private readonly matDialogRef: MatDialogRef<RemoveDialogComponent>) {}\n\n  public remove() {\n    this.result = 'Remove';\n    this.matDialogRef.close(this.result);\n  }\n  public cancel() {\n    this.result = 'Cancel';\n    this.matDialogRef.close(this.result);\n  }\n}\n","<div>\n  <div class=\"dialog-header\">\n    <h2 (click)=\"cancel()\" class=\"heading-h2 x\">X</h2>\n  </div>\n  <div>\n    <h2 class=\"heading-h2 dialog-title\">{{'Are you sure you want to remove the item?' | rpxTranslate}}</h2>\n  </div>\n  <div class=\"dialog-info\">\n    <span class=\"text-info\">\n      {{'You are about to permanently remove an item, are you sure you want to remove this item?' | rpxTranslate}}\n    </span>\n  </div>\n  <div>\n    <button type=\"button\" title=\"Remove\" class=\"button action-button\" (click)=\"remove()\">{{'Remove' | rpxTranslate}}</button>\n    <button type=\"button\" title=\"Cancel\" class=\"button button-secondary\" (click)=\"cancel()\">{{'Cancel' | rpxTranslate}}</button>\n  </div>\n</div>\n","<div class=\"form-group\" [id]=\"id()\">\n\n  <div class=\"panel collection-indicator\">\n\n    <h2 class=\"heading-h2 error-spacing\" *ngIf=\"!caseField.hidden\">\n      {{(caseField | ccdFieldLabel)}}\n    </h2>\n    <button class=\"button write-collection-add-item__top\" type=\"button\" (click)=\"addItem(true)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\">{{'Add new' | rpxTranslate}}</button>\n    <h2 class=\"heading-h2 error-spacing\" *ngIf=\"caseField.hint_text || formArray.errors\">\n      <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">\n      <ccd-markdown [content]=\"caseField.hint_text | rpxTranslate\"></ccd-markdown>\n      </span>\n      <span *ngIf=\"formArray.errors\" class=\"error-message\">\n        {{(formArray.errors | ccdFirstError:caseField.label)}}\n      </span>\n    </h2>\n\n    <div class=\"form-group\" [hidden]=\"caseField.hidden\" *ngIf=\"caseField.value && caseField.value.length\">\n      <fieldset class=\"govuk-fieldset\">\n        <div *ngFor=\"let item of collItems; let i = index\" #collectionItem\n            [id]=\"this.buildIdPrefix(i) + i\" class=\"form-group\">\n          <div class=\"collection-title\">\n            <div class=\"float-left\">\n              <legend class=\"govuk-fieldset__legend\">\n                <label [for]=\"item.prefix + i\"><h3 class=\"heading-h3\">{{itemLabel(i) | rpxTranslate}}</h3></label>\n              </legend>\n            </div>\n            <div class=\"float-right\">\n              <button class=\"button button-secondary\" type=\"button\" (click)=\"openModal(i)\"\n                      [disabled]=\"isNotAuthorisedToDelete(i)\"\n                      attr.aria-label=\"Remove {{ itemLabel(i) }}\">{{'Remove' | rpxTranslate}}</button>\n            </div>\n          </div>\n          <ccd-field-write [caseField]=\"item.caseField\"\n                          [caseFields]=\"caseFields\"\n                          [formGroup]=\"formGroup\"\n                          [parent]=\"item.container\"\n                          [idPrefix]=\"item.prefix\"\n                          [hidden]=\"item.caseField.hidden\"\n                          [isExpanded]=\"isExpanded\"\n                          [isInSearchBlock]=\"isInSearchBlock\">\n          </ccd-field-write>\n        </div>\n      </fieldset>\n    </div>\n\n    <button class=\"button write-collection-add-item__bottom\" type=\"button\" (click)=\"addItem(false)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\" *ngIf=\"caseField.value && caseField.value.length\">{{'Add new' | rpxTranslate }}</button>\n\n  </div>\n\n</div>\n","import { ChangeDetectorRef, Component, ElementRef, Input, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { ScrollToService } from '@nicky-lenaers/ngx-scroll-to';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { Subscription } from 'rxjs';\nimport { FieldType } from '../../../domain/definition/field-type.model';\n\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { Profile } from '../../../domain/profile/profile.model';\nimport { FieldsUtils } from '../../../services/fields/fields.utils';\nimport { FormValidatorsService } from '../../../services/form/form-validators.service';\nimport { ProfileNotifier } from '../../../services/profile/profile.notifier';\nimport { RemoveDialogComponent } from '../../dialogs/remove-dialog/remove-dialog.component';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\ntype CollectionItem = {\n  caseField: CaseField;\n  item: any;\n  prefix: string;\n  index: number;\n  container: FormGroup;\n};\n\n@Component({\n  selector: 'ccd-write-collection-field',\n  templateUrl: './write-collection-field.html',\n  styleUrls: ['./collection-field.scss'],\n  standalone: false\n})\nexport class WriteCollectionFieldComponent extends AbstractFieldWriteComponent implements OnInit, OnDestroy {\n  @Input()\n  public caseFields: CaseField[] = [];\n\n  public formArray: FormArray;\n\n  public profile: Profile;\n  public profileSubscription: Subscription;\n\n  @ViewChildren('collectionItem')\n  private readonly items: QueryList<ElementRef>;\n  public readonly collItems: CollectionItem[] = [];\n\n  constructor(private readonly dialog: MatDialog,\n    private readonly scrollToService: ScrollToService,\n    private readonly profileNotifier: ProfileNotifier,\n    private readonly cdRef: ChangeDetectorRef\n  ) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    if (!this.isExpanded) { // meaning I am not rendered on the search/workbasket input filter\n      this.profileSubscription = this.profileNotifier.profile.subscribe(_ => this.profile = _);\n    }\n    this.caseField.value = this.caseField.value || [];\n    this.formArray = this.registerControl(new FormArray([]), true) as FormArray;\n    this.formArray['caseField'] = this.caseField;\n    this.caseField.value.forEach((item: any, index: number) => {\n      const prefix: string = this.buildIdPrefix(index);\n      const caseField = this.buildCaseField(item, index);\n      caseField.parent = this.caseField\n      const container = this.getContainer(index);\n      if (this.collItems.length <= index) {\n        this.collItems.length = index + 1;\n      }\n      this.collItems[index] = { caseField, item, prefix, index, container };\n    });\n  }\n\n  public ngOnDestroy(): void {\n    if (this.profileSubscription) {\n      this.profileSubscription.unsubscribe();\n    }\n  }\n\n  public buildCaseField(item, index: number, isNew = false): CaseField {\n    /**\n     * What follow is code that makes me want to go jump in the shower!\n     * Basically, we land in here repeatedly because of the binding, and\n     * this is what appears to be happening:\n     *   1. this.formArray contains no controls at all.\n     *      this.formArray.value = [];\n     *   2. this.formArray contains a FormGroup, which contains a single\n     *      FormControl with the id 'code'.\n     *      this.formArray.value = [{ code: null }]\n     *   3. this.formArray contains what is being set up below.\n     *      this.formArray.value = [{ code: null, id: null, value: { code: null } }]\n     *   4, 5, 6, etc - the same as 3.\n     */\n    let group: FormGroup;\n    if (this.formArray && (index < this.formArray.length)) {\n      group = this.formArray.at(index) as FormGroup;\n    } else {\n      group = new FormGroup({});\n    }\n\n    let value;\n    if (this.isCollectionOfSimpleType(this.caseField)) {\n      value = group.get('value') as FormControl;\n      if (!value) {\n        value = new FormControl(item.value);\n        // Now add the value FormControl to the outer group.\n        group.addControl('value', value);\n      }\n    } else {\n      value = group.get('value') as FormGroup;\n      if (!value) {\n        value = new FormGroup({});\n        for (const key of Object.keys(group.controls)) {\n          value.addControl(key, group.get(key));\n          // DON'T remove the control for this key from the outer group or it\n          // goes awry. So DON'T uncomment the below line!\n          // group.removeControl(key);\n        }\n        // Now add the value FormGroup to the outer group.\n        group.addControl('value', value);\n      }\n    }\n    let id = group.get('id') as FormControl;\n    // If we're not in scenario 3, above, we need to do some jiggery pokery\n    // and set up the id and value controls.\n    // Also set up an id control if it doesn't yet exist.\n    if (!id) {\n      id = new FormControl(item.id);\n      group.addControl('id', id);\n    }\n\n    /**\n     * Again, very sorry. I've not found a better way to produce the\n     * output needed for what needs to be sent to the server yet.\n     */\n\n    // Now, add the outer group to the array (or replace it).\n    if (index < this.formArray.length) {\n      this.formArray.setControl(index, group);\n    } else {\n      this.formArray.push(group);\n    }\n\n    // Now set up the CaseField and validation.\n    let cfid: string;\n    if (value instanceof FormControl) {\n      cfid = 'value';\n    } else {\n      cfid = index.toString();\n    }\n\n    // isNew:\n    const cf: CaseField = this.newCaseField(cfid, item, index, isNew);\n    FormValidatorsService.addValidators(cf, value);\n    FieldsUtils.addCaseFieldAndComponentReferences(value, cf, this);\n    return cf;\n  }\n\n  public buildIdPrefix(index: number): string {\n    const prefix = `${this.idPrefix}${this.caseField.id}_`;\n    if (this.caseField.field_type.collection_field_type?.type === 'Complex') {\n      return `${prefix}${index}_`;\n    }\n\n    return prefix;\n  }\n\n  public isSearchFilter(): boolean {\n    return this.isInSearchBlock && this.collItems.length > 0;\n  }\n\n  public addItem(doScroll: boolean): void {\n    // Manually resetting errors is required to prevent `ExpressionChangedAfterItHasBeenCheckedError`\n    this.formArray.setErrors(null);\n    let item = { value: null };\n\n    if (this.isCollectionDynamic()) {\n      item = { ...this.caseField.value[this.caseField.value.length - 1] };\n      const key: number = Number(item['id'][item['id'].length - 1]) + 1;\n      (item as any).id = item['id'].replace(/.$/, key.toString());\n    }\n    this.caseField.value.push(item);\n    const index = this.caseField.value.length - 1;\n    const caseField: CaseField = this.buildCaseField(item, index, true);\n    const prefix = this.buildIdPrefix(index);\n    const container = this.getContainer(index);\n    this.collItems.push({ caseField, item, index, prefix, container });\n\n    // Update DOM required after pushing a new item to do the next steps (i.e. scrolling and focusing)\n    this.cdRef.detectChanges();\n\n    if (doScroll) {\n      this.scrollToService.scrollTo({\n        target: `${this.buildIdPrefix(index)}${index}`,\n        duration: 1000,\n        offset: -150,\n      })\n        .subscribe(() => { }, console.error);\n    }\n\n    this.focusLastItem();\n  }\n\n  private isCollectionDynamic(): boolean {\n    if (!this.caseField.field_type || !this.caseField.field_type.collection_field_type) {\n      return false;\n    }\n    return this.caseField.field_type.collection_field_type.id === 'DynamicRadioList';\n  }\n\n  private newCaseField(id: string, item, index, isNew = false) {\n    const isNotAuthorisedToUpdate = !isNew && this.isNotAuthorisedToUpdate(index);\n\n    const fieldType = plainToClassFromExist(new FieldType(), this.caseField.field_type.collection_field_type);\n    if (fieldType.complex_fields) {\n      fieldType.complex_fields\n        .filter((cf: CaseField) => !!cf.show_condition)\n        .map((cf: CaseField) => cf.hidden = true);\n    }\n\n    // Remove the bit setting the hidden flag here as it's an item in the array and\n    // its hidden state isn't independently re-evaluated when the form is changed.\n    return plainToClassFromExist(new CaseField(), {\n      id,\n      field_type: fieldType,\n      display_context: isNotAuthorisedToUpdate ? 'READONLY' : this.caseField.display_context,\n      value: item.value,\n      label: null,\n      acls: this.caseField.acls\n    });\n  }\n\n  private getContainer(index: number): FormGroup {\n    const value = this.formArray.at(index).get('value');\n    if (value instanceof FormGroup) {\n      return value;\n    } else {\n      return this.formArray.at(index) as FormGroup;\n    }\n  }\n\n  private focusLastItem() {\n    const item: any = this.items.last.nativeElement.querySelector('.form-control');\n    if (item) {\n      item.focus();\n    }\n  }\n\n  private removeItem(index: number): void {\n    this.collItems.splice(index, 1);\n    this.resetIds(index);\n    this.caseField.value.splice(index, 1);\n    this.formArray.removeAt(index);\n  }\n\n  private resetIds(index: number): void {\n    for (let i = index; i < this.collItems.length; i++) {\n      const counter = i + 1;\n      if (this.collItems[i].index && this.collItems[i].index === counter) {\n        this.collItems[i].index = i;\n      }\n\n      if (this.collItems[i].caseField && this.collItems[i].caseField.id\n        && this.collItems[i].caseField.id === counter.toString()) {\n        this.collItems[i].caseField.id = i.toString();\n      }\n\n      const idPrefix1 = this.collItems[i].prefix ? this.collItems[i].prefix.replace(`_${counter.toString()}`, `_${i.toString()}`) : '';\n      const idPrefix1Current = idPrefix1.replace(`_${i.toString()}`, `_${counter.toString()}`);\n\n      if (this.collItems[i].prefix && this.collItems[i].prefix === idPrefix1Current) {\n        this.collItems[i].prefix = idPrefix1;\n      }\n\n      const idPrefixAvailable = !!this.collItems[i].container?.['component']?.idPrefix;\n\n      const idPrefix2 = idPrefixAvailable ?\n        this.collItems[i].container['component'].idPrefix.replace(`_${counter.toString()}`, `_${i.toString()}`) : '';\n      const idPrefix2current = idPrefix2.replace(`_${i.toString()}`, `_${counter.toString()}`);\n\n      if (idPrefixAvailable && this.collItems[i].container['component'].idPrefix === idPrefix2current) {\n        this.collItems[i].container['component'].idPrefix = idPrefix2;\n      }\n    }\n  }\n\n  public itemLabel(index: number) {\n    if (index) {\n      return `${this.caseField.label} ${index + 1}`;\n    }\n    return this.caseField.label;\n  }\n\n  public isNotAuthorisedToCreate() {\n    if (this.isExpanded) {\n      return false;\n    }\n    return !this.getCollectionPermission(this.caseField, 'allowInsert');\n  }\n\n  public getCollectionPermission(field: CaseField, type: string) {\n    return field.display_context_parameter &&\n      field.display_context_parameter.split('#')\n        .filter(item => item.startsWith('COLLECTION('))[0]\n        .includes(type);\n  }\n\n  public isNotAuthorisedToUpdate(index) {\n    if (this.isExpanded) {\n      return false;\n    }\n    // Was reassesed as part of EUI-3505. There is still a caveat around CRD, but that was deemed an unlikely scenario\n    const id = this.getControlIdAt(index);\n    if (id) {\n      if (!!this.profile.user && !!this.profile.user.idam) {\n        const updateRole = this.profile.user.idam.roles.find(role => this.hasUpdateAccess(role));\n        return !updateRole;\n      }\n    }\n    return false;\n  }\n\n  public hasUpdateAccess(role: any): boolean {\n    return !!this.caseField.acls.find(acl => acl.role === role && acl.update === true);\n  }\n\n  public isNotAuthorisedToDelete(index: number) {\n    if (this.isExpanded) {\n      return false;\n    }\n    // Should be able to delete if creating a case even if \"D\" is absent, hence:\n    const id = this.getControlIdAt(index);\n    return !!id && !this.getCollectionPermission(this.caseField, 'allowDelete');\n  }\n\n  public openModal(i: number) {\n    const dialogConfig = new MatDialogConfig();\n    dialogConfig.disableClose = true;\n    dialogConfig.autoFocus = true;\n    dialogConfig.ariaLabel = 'Label';\n    dialogConfig.height = '220px';\n    dialogConfig.width = '550px';\n    dialogConfig.panelClass = 'dialog';\n\n    dialogConfig.closeOnNavigation = false;\n    dialogConfig.position = {\n      top: `${window.innerHeight / 2 - 110}px`, left: `${window.innerWidth / 2 - 275}px`\n    };\n\n    const dialogRef = this.dialog.open(RemoveDialogComponent, dialogConfig);\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result === 'Remove') {\n        this.removeItem(i);\n      }\n    });\n  }\n\n  /**\n   * Applied full solution as part of EUI-3505\n   */\n  private getControlIdAt(index: number): string {\n\n    // this.formArray contains [ FormGroup( id: FormControl, value: FormGroup ), ... ].\n    // Here, we need to get the value of the id FormControl.\n    const group: FormGroup = this.formArray.at(index) as FormGroup;\n    const control: FormControl = group.get('id') as FormControl;\n    return control ? control.value : undefined;\n  }\n\n  private isCollectionOfSimpleType(caseField: CaseField) {\n    const notSimple = ['Collection', 'Complex'];\n    return notSimple.indexOf(caseField.field_type.collection_field_type.type) < 0;\n  }\n}\n","<ng-container [ngSwitch]=\"context\">\n  <ccd-read-complex-field-raw\n    *ngSwitchCase=\"paletteContext.CHECK_YOUR_ANSWER\"\n    [caseField]=\"caseField\"\n    [caseFields]=\"caseFields\"\n    [context]=\"context\"\n    [topLevelFormGroup]=\"topLevelFormGroup\"\n    [idPrefix]=\"idPrefix\"\n  ></ccd-read-complex-field-raw>\n  <ccd-read-complex-field-collection-table\n    *ngSwitchCase=\"paletteContext.TABLE_VIEW\"\n    [caseField]=\"caseField\"\n    [context]=\"context\"\n    [topLevelFormGroup]=\"topLevelFormGroup\"\n    [idPrefix]=\"idPrefix\"\n  ></ccd-read-complex-field-collection-table>\n  <ccd-read-complex-field-table\n    *ngSwitchDefault\n    [caseField]=\"caseField\"\n    [caseFields]=\"caseFields\"\n    [context]=\"context\"\n    [topLevelFormGroup]=\"topLevelFormGroup\"\n    [idPrefix]=\"idPrefix\"\n  ></ccd-read-complex-field-table>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CaseField } from '../../../domain/definition';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\nimport { PaletteContext } from '../base-field/palette-context.enum';\n\n@Component({\n  selector: 'ccd-read-complex-field',\n  templateUrl: './read-complex-field.html',\n  standalone: false\n})\nexport class ReadComplexFieldComponent extends AbstractFieldReadComponent implements OnInit {\n\n  @Input()\n  public caseFields: CaseField[] = [];\n\n  public paletteContext = PaletteContext;\n\n  public ngOnInit(): void {\n    super.ngOnInit();\n    if (this.caseField.display_context_parameter) {\n      this.context = PaletteContext.TABLE_VIEW;\n    } else {\n      // default to default views\n      if (!this.caseField.display_context_parameter && this.context) {\n        this.context = PaletteContext.DEFAULT;\n      }\n    }\n    if (this.caseField?.field_type && this.caseField.field_type.complex_fields) {\n      this.caseField?.field_type?.complex_fields?.forEach((field) => {\n        if (field && this.caseField) {\n          field.parent = this.caseField;\n        }\n        if (field?.isDynamic()) {\n          field.list_items = this.caseField.value[field.id]?.list_items;\n          field.value = {\n            list_items: field.list_items,\n            value: this.caseField.value[field.id]?.value && this.caseField.value[field.id].value?.code ?\n              this.caseField.value[field.id].value.code :\n              this.caseField.value[field.id]?.value\n          };\n        }\n      });\n    }\n  }\n}\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-date-field',\n  template: `<span class=\"text-16\">{{caseField.value | ccdDate:'utc':caseField.dateTimeDisplayFormat}}</span>`,\n  standalone: false\n})\nexport class ReadDateFieldComponent extends AbstractFieldReadComponent {\n  public timeZone = 'utc';\n}\n","<ng-container *ngIf=\"caseField.dateTimeEntryFormat; else nativeDatepicker\">\n  <ccd-datetime-picker\n    [caseField]=\"caseField\"\n    [formGroup]=\"formGroup\"\n    [parent]=\"parent\">\n  </ccd-datetime-picker>\n</ng-container>\n<ng-template #nativeDatepicker>\n  <ccd-write-date-field\n    [caseField]=\"caseField\"\n    [formGroup]=\"formGroup\"\n    [parent]=\"parent\"\n  ></ccd-write-date-field>\n</ng-template>\n\n","import { Component } from '@angular/core';\nimport { AbstractFormFieldComponent } from '../base-field/abstract-form-field.component';\n\n@Component({\n  selector: 'ccd-write-date-container-field',\n  templateUrl: './write-date-container-field.html',\n  standalone: false\n})\nexport class WriteDateContainerFieldComponent extends AbstractFormFieldComponent {}\n","<button type=\"button\" *ngIf=\"caseField.value\" class=\"govuk-js-link\"\n   (click)=\"showMediaViewer()\">\n  {{ caseField.value.document_filename }}\n</button>\n","import { Component, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { DocumentManagementService } from '../../../services/document-management';\nimport { WindowService } from '../../../services/window';\nimport { CasesService } from '../../case-editor/services/cases.service';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\nimport { FieldsUtils } from '../../../services/fields/fields.utils';\n\nconst MEDIA_VIEWER_INFO = 'media-viewer-info';\n\n@Component({\n  selector: 'ccd-read-document-field',\n  templateUrl: './read-document-field.html',\n  standalone: false\n})\nexport class ReadDocumentFieldComponent extends AbstractFieldReadComponent implements OnDestroy {\n\n  public caseViewSubscription: Subscription;\n\n  constructor(\n    private readonly windowService: WindowService,\n    private readonly documentManagement: DocumentManagementService,\n    private readonly router: Router,\n    private readonly route: ActivatedRoute,\n    private readonly casesService: CasesService\n  ) {\n    super();\n  }\n\n  public showMediaViewer(): void {\n    const caseId = this.route.snapshot.params['cid'];\n\n    if (caseId) {\n      this.caseViewSubscription = this.casesService.getCaseViewV2(caseId).subscribe(caseView => {\n        if (this.caseField && this.caseField.value) {\n          const mergedInfo = {\n            ...this.caseField.value,\n            id: caseView.case_id,\n            jurisdiction: caseView.case_type.jurisdiction.id\n          };\n          this.openMediaViewer(mergedInfo);\n        }\n      });\n    } else {\n      if (this.caseField && this.caseField.value) {\n        this.openMediaViewer(this.caseField.value);\n      }\n    }\n  }\n\n  public openMediaViewer(documentFieldValue): void {\n    const documentBinaryUrl = this.documentManagement.getDocumentBinaryUrl(documentFieldValue);\n    const isHtmlDocument = this.documentManagement.isHtmlDocument(documentFieldValue);\n    if (isHtmlDocument && documentBinaryUrl) {\n      // HTML files are opened directly in a separate tab; all other types continue to use media viewer.\n      this.windowService.openOnNewTab(documentBinaryUrl);\n      return;\n    }\n\n    const token = FieldsUtils.createToken();\n    const storageKey = `${MEDIA_VIEWER_INFO}:${token}`;\n\n    const payload = this.documentManagement.getMediaViewerInfo(documentFieldValue);\n    this.windowService.setLocalStorage(storageKey, payload);\n\n    this.windowService.openOnNewTab(this.getMediaViewerUrl(token));\n  }\n\n  public getMediaViewerUrl(token: string): string {\n    const routerMediaViewer = this.router.createUrlTree(\n      ['/media-viewer'],\n      { queryParams: { mvToken: token } }\n    );\n    return routerMediaViewer.toString();\n  }\n\n  public ngOnDestroy(): void {\n    if (this.caseViewSubscription) {\n      this.caseViewSubscription.unsubscribe();\n    }\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\n\n@Component({\n  selector: 'ccd-document-dialog',\n  templateUrl: './document-dialog.component.html',\n  styleUrls: ['../action-dialog.component.scss'],\n  standalone: false\n})\nexport class DocumentDialogComponent implements OnInit {\n\n  public result: string;\n\n  constructor(private readonly matDialogRef: MatDialogRef<DocumentDialogComponent>) {}\n\n  public ngOnInit() {\n  }\n\n  public replace() {\n    this.result = 'Replace';\n    this.matDialogRef.close(this.result);\n  }\n  public cancel() {\n    this.result = 'Cancel';\n    this.matDialogRef.close(this.result);\n  }\n}\n","<div>\n  <div class=\"dialog-header\">\n    <h2 (click)=\"cancel()\" class=\"heading-h2 x\">X</h2>\n  </div>\n  <div>\n    <h2 class=\"heading-h2 dialog-title\">{{'Are you sure you want to replace the existing file?' | rpxTranslate}}</h2>\n  </div>\n  <div class=\"dialog-info\">\n    <span class=\"text-info\">{{'You are about to delete the original file uploaded. Are you sure you want to proceed?' | rpxTranslate}}</span>\n  </div>\n  <div>\n    <button type=\"button\" title=\"Replace\" class=\"button action-button\" (click)=\"replace()\">{{'Replace file' | rpxTranslate}}</button>\n    <button type=\"button\" title=\"Cancel\" class=\"button button-secondary\" (click)=\"cancel()\">{{'Cancel' | rpxTranslate}}</button>\n  </div>\n</div>\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class FileUploadStateService {\n    public uploadInProgress: boolean;\n\n    public setUploadInProgress(value: boolean): void {\n        this.uploadInProgress = value;\n    }\n\n    public isUploadInProgress(): boolean {\n        return this.uploadInProgress;\n    }\n}\n","<div class=\"form-group\" [ngClass]=\"{'form-group-error bottom-30': !valid}\">\n  <label [for]=\"id()\">\n    <span class=\"form-label\" attr.aria-label=\"{{caseField | ccdFieldLabel}}\">{{(caseField | ccdFieldLabel)}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">\n    <markdown [data]=\"caseField.hint_text | rpxTranslate\"></markdown>\n  </span>\n  <span class=\"error-message\"\n        role=\"alert\"\n        tabindex=\"0\"\n        [hidden]=\"!(fileUploadMessages && !valid)\">\n    {{ fileUploadMessages | rpxTranslate }}\n  </span>\n  <div>\n    <!--<span *ngIf=\"getUploadedFileName()\" class=\"text-16\">File name: {{getUploadedFileName()}}</span>-->\n    <ccd-read-document-field *ngIf=\"caseField\" [caseField]=\"caseField\"></ccd-read-document-field>\n  </div>\n\n  <div style='position:relative'>\n    <div [id]=\"createElementId('fileInputWrapper')\" (click)=\"fileSelectEvent()\" (keyup)=\"fileSelectEvent()\"></div>\n    <input class=\"form-control bottom-30\" [id]=\"id()\" type=\"file\" (keydown.Tab)=\"fileValidationsOnTab()\" (change)=\"fileChangeEvent($event, caseField.field_type.regular_expression)\"\n           accept=\"{{caseField.field_type.regular_expression}}\" #fileInput/>\n  </div>\n</div>\n<div class=\"form-group bottom-30\">\n  <button class=\"button button-secondary\" type=\"button\" aria-label=\"Cancel upload\" (click)=\"cancelUpload()\" [disabled]=\"!isUploadInProgress()\">{{'Cancel upload' | rpxTranslate}}</button>\n</div>\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\nimport { MatDialogConfig } from '@angular/material/dialog';\nimport { Subscription, combineLatest } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { Constants } from '../../../commons/constants';\nimport { CaseView } from '../../../domain/case-view/case-view.model';\nimport { DocumentData, FormDocument } from '../../../domain/document/document-data.model';\nimport { HttpError } from '../../../domain/http/http-error.model';\nimport { DocumentManagementService } from '../../../services/document-management/document-management.service';\nimport { JurisdictionService } from '../../../services/jurisdiction/jurisdiction.service';\nimport { CaseNotifier } from '../../case-editor/services/case.notifier';\nimport { DocumentDialogComponent } from '../../dialogs/document-dialog/document-dialog.component';\nimport { initDialog } from '../../helpers/init-dialog-helper';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\nimport { FileUploadStateService } from './file-upload-state.service';\nimport { SessionStorageService } from '../../../services/session';\n\n@Component({\n  selector: 'ccd-write-document-field',\n  templateUrl: './write-document-field.html',\n  standalone: false\n})\nexport class WriteDocumentFieldComponent extends AbstractFieldWriteComponent implements OnInit, OnDestroy {\n  public static readonly DOCUMENT_URL = 'document_url';\n  public static readonly DOCUMENT_BINARY_URL = 'document_binary_url';\n  public static readonly DOCUMENT_FILENAME = 'document_filename';\n  public static readonly DOCUMENT_HASH = 'document_hash';\n  public static readonly UPLOAD_TIMESTAMP = 'upload_timestamp';\n  public static readonly UPLOAD_ERROR_FILE_REQUIRED = 'File required';\n  public static readonly UPLOAD_ERROR_NOT_AVAILABLE = 'Document upload facility is not available at the moment';\n  public static readonly UPLOAD_ERROR_INVALID_FORMAT = 'Document format is not supported';\n  public static readonly UPLOAD_WAITING_FILE_STATUS = 'Uploading...';\n  public static readonly ERROR_UPLOADING_FILE = 'Error Uploading File';\n\n  @ViewChild('fileInput', { static: false }) public fileInput: ElementRef;\n\n  public selectedFile: File;\n  public valid = true;\n  public fileUploadMessages: string;\n  public confirmReplaceResult: string;\n  public clickInsideTheDocument: boolean;\n\n  // these are public so that they can be mocked for tests\n  public fileUploadSubscription: Subscription;\n  public dialogSubscription: Subscription;\n  public caseNotifierSubscription: Subscription;\n  public jurisdictionSubs: Subscription;\n\n  private uploadedDocument: FormGroup;\n  private dialogConfig: MatDialogConfig;\n\n  public jurisdictionId: string;\n  public caseTypeId: string;\n  public caseTypeExclusions: string;\n  public caseId: string;\n  // Should the file upload use CDAM\n  public fileSecureModeOn: boolean = false;\n  public gotFromCaseInfo: boolean = false;\n  constructor(\n    private readonly appConfig: AbstractAppConfig,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly documentManagement: DocumentManagementService,\n    public dialog: MatDialog,\n    private readonly fileUploadStateService: FileUploadStateService,\n    private readonly jurisdictionService: JurisdictionService,\n    private readonly sessionStorageService: SessionStorageService\n  ) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    // Wait for both observables to emit at least once\n    const caseInfo = this.documentManagement.parseCaseInfo(this.sessionStorageService.getItem('caseInfo'));\n    const currUrl = window.location.pathname;\n    // if the user is not creating a case we can use the caseInfo session storage\n    if (!currUrl.includes('/case-create/')) {\n      if (caseInfo) {\n        this.gotFromCaseInfo = true;\n        this.caseTypeId = caseInfo.caseType;\n        this.jurisdictionId = caseInfo.jurisdiction;\n        this.caseId = caseInfo.caseId;\n      } else {\n        if (currUrl.includes('/case-details/')) {\n          this.jurisdictionId = currUrl.split('/')[3];\n          this.caseTypeId = currUrl.split('/')[4];\n          this.caseId = currUrl.split('/')[5];\n        }\n      }\n    } else {\n      // the user is in the create case journey so we should get data from the url\n      const parts = currUrl.split('/');\n      this.jurisdictionId = parts[parts.indexOf('case-create') + 1];\n      this.caseTypeId = parts[parts.indexOf('case-create') + 2];\n      this.caseId = null;\n      console.log(this.jurisdictionId); console.log(this.caseTypeId);\n    }\n\n    // use the documentManagement service to check if the document upload should use CDAM\n    if (this.documentManagement.isDocumentSecureModeEnabled()) {\n      this.fileSecureModeOn = true;\n    }\n    this.dialogConfig = initDialog();\n    let document = this.caseField.value || { document_url: null, document_binary_url: null, document_filename: null };\n    document = this.fileSecureModeOn && !document.document_hash ? { ...document, document_hash: null } : document;\n    if (this.isAMandatoryComponent()) {\n      this.createDocumentFormWithValidator(document);\n    } else {\n      this.createDocumentForm(document);\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (this.fileUploadSubscription) {\n      this.fileUploadSubscription.unsubscribe();\n    }\n    if (this.dialogSubscription) {\n      this.dialogSubscription.unsubscribe();\n    }\n    if (this.caseNotifierSubscription) {\n      this.caseNotifierSubscription.unsubscribe();\n    }\n    if (this.jurisdictionSubs) {\n      this.jurisdictionSubs.unsubscribe();\n    }\n  }\n\n  public isUploadInProgress(): boolean {\n    return this.fileUploadStateService.isUploadInProgress();\n  }\n\n  public cancelUpload(): void {\n    if (this.fileUploadSubscription) {\n      this.fileUploadSubscription.unsubscribe();\n    }\n\n    this.fileUploadStateService.setUploadInProgress(false);\n    this.fileInput.nativeElement.value = '';\n    this.resetUpload();\n  }\n\n  public fileValidationsOnTab(): void {\n    if (this.isAMandatoryComponent()) {\n      if (this.validateFormUploadedDocument()) {\n        this.displayFileUploadMessages(WriteDocumentFieldComponent.UPLOAD_ERROR_FILE_REQUIRED);\n      }\n    }\n  }\n\n  public fileChangeEvent(fileInput: any, allowedRegex?: string): void {\n    let fileTypeRegex;\n    if (allowedRegex) {\n      fileTypeRegex = new RegExp(`(${allowedRegex.replace(/,/g, '|')})`, 'i');\n    }\n    if (fileInput.target?.files[0] && !fileInput.target?.files[0]?.name?.match(fileTypeRegex)) {\n      this.invalidFileFormat();\n    } else if (fileInput.target.files[0]) {\n      this.selectedFile = fileInput.target.files[0];\n      this.displayFileUploadMessages(WriteDocumentFieldComponent.UPLOAD_WAITING_FILE_STATUS);\n      const documentUpload: FormData = this.buildDocumentUploadData(this.selectedFile);\n      this.fileUploadStateService.setUploadInProgress(true);\n\n      this.fileUploadSubscription = this.documentManagement.uploadFile(documentUpload).subscribe({\n        next: (resultDocument: DocumentData) => this.handleDocumentUploadResult(resultDocument),\n        error: (error: HttpError) => this.handleDocumentUploadError(error)\n      });\n    } else {\n      this.resetUpload();\n    }\n  }\n\n  public openFileDialog(): void {\n    this.fileInput.nativeElement.click();\n  }\n\n  public fileSelectEvent(): void {\n    if ((this.caseField.value && this.caseField.value.document_filename) ||\n      (this.selectedFile && this.selectedFile.name)) {\n      this.openDialog(this.dialogConfig);\n    } else {\n      this.openFileDialog();\n    }\n  }\n\n  public triggerReplace(): boolean {\n    if (this.confirmReplaceResult === 'Replace') {\n      this.openFileDialog();\n      return true;\n    }\n    return false;\n  }\n\n  public invalidFileFormat(): void {\n    this.updateDocumentForm(null, null, null);\n    this.displayFileUploadMessages(WriteDocumentFieldComponent.UPLOAD_ERROR_INVALID_FORMAT);\n\n    // fix active form group so that additional attachments in invalid format are not accepted\n    this.formGroup.setErrors({ invalidFileFormat: true });\n  }\n\n  public getUploadedFileName(): any {\n    if (this.uploadedDocument) {\n      return this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_FILENAME).value;\n    }\n    return undefined;\n  }\n\n  private resetUpload(): void {\n    this.selectedFile = null;\n    if (this.isAMandatoryComponent()) {\n      this.updateDocumentForm(null, null, null);\n      this.displayFileUploadMessages(WriteDocumentFieldComponent.UPLOAD_ERROR_FILE_REQUIRED);\n    } else {\n      this.valid = true;\n    }\n  }\n\n  private fileValidations(): void {\n    if (this.isAMandatoryComponent()) {\n      if (this.clickInsideTheDocument && this.validateFormUploadedDocument() && !this.isUpLoadingAFile()) {\n        this.displayFileUploadMessages(WriteDocumentFieldComponent.UPLOAD_ERROR_FILE_REQUIRED);\n      }\n    }\n  }\n\n  private openDialog(dialogConfig): void {\n    const dialogRef = this.dialog.open(DocumentDialogComponent, dialogConfig);\n    this.dialogSubscription = dialogRef.beforeClosed().subscribe((result) => {\n      this.confirmReplaceResult = result;\n      this.triggerReplace();\n    });\n  }\n\n  private isAMandatoryComponent(): boolean {\n    return this.caseField.display_context && this.caseField.display_context === Constants.MANDATORY;\n  }\n\n  private displayFileUploadMessages(fileUploadMessage: string): void {\n    this.valid = false;\n    this.fileUploadMessages = fileUploadMessage;\n  }\n\n  private isUpLoadingAFile(): boolean {\n    return this.fileUploadMessages === WriteDocumentFieldComponent.UPLOAD_WAITING_FILE_STATUS;\n  }\n\n  private validateFormUploadedDocument(): boolean {\n    if (!this.uploadedDocument) {\n      return true;\n    }\n\n    let validation = !this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_URL).valid &&\n      !this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_BINARY_URL).valid &&\n      !this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_FILENAME).valid;\n\n    if (this.fileSecureModeOn) {\n      validation = validation && !this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_HASH).valid;\n    }\n\n    return validation;\n  }\n\n  private updateDocumentForm(url: string, binaryUrl: string, filename: string, documentHash?: string): void {\n    this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_URL).setValue(url);\n    this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_BINARY_URL).setValue(binaryUrl);\n    this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_FILENAME).setValue(filename);\n    if (documentHash) {\n      this.uploadedDocument.get(WriteDocumentFieldComponent.DOCUMENT_HASH).setValue(documentHash);\n    }\n    if (this.uploadedDocument.get(WriteDocumentFieldComponent.UPLOAD_TIMESTAMP)) {\n      this.uploadedDocument.removeControl(WriteDocumentFieldComponent.UPLOAD_TIMESTAMP);\n    }\n  }\n\n  private createDocumentFormWithValidator(document: FormDocument): void {\n    let documentFormGroup = {\n      document_url: new FormControl(document.document_url, Validators.required),\n      document_binary_url: new FormControl(document.document_binary_url, Validators.required),\n      document_filename: new FormControl(document.document_filename, Validators.required)\n    };\n\n    if (document.upload_timestamp && (typeof document.upload_timestamp === 'string')) {\n      documentFormGroup = {\n        ...documentFormGroup,\n        ...{ upload_timestamp: new FormControl(document.upload_timestamp) }\n      };\n    }\n\n    documentFormGroup = this.fileSecureModeOn ? {\n      ...documentFormGroup,\n      ...{ document_hash: new FormControl(document.document_hash) }\n    } : documentFormGroup;\n\n    this.uploadedDocument = this.registerControl(new FormGroup(documentFormGroup), true) as FormGroup;\n  }\n\n  private createDocumentForm(document: FormDocument): void {\n    let documentFormGroup = {\n      document_url: new FormControl(document.document_url),\n      document_binary_url: new FormControl(document.document_binary_url),\n      document_filename: new FormControl(document.document_filename)\n    };\n\n    if (document.upload_timestamp && (typeof document.upload_timestamp === 'string')) {\n      documentFormGroup = {\n        ...documentFormGroup,\n        ...{ upload_timestamp: new FormControl(document.upload_timestamp) }\n      };\n    }\n\n    documentFormGroup = this.fileSecureModeOn ? {\n      ...documentFormGroup,\n      ...{ document_hash: new FormControl(document.document_hash) }\n    } : documentFormGroup;\n\n    this.uploadedDocument = this.registerControl(new FormGroup(documentFormGroup), true) as FormGroup;\n  }\n\n  private getErrorMessage(error: HttpError): string {\n    if (error.status === 0 || error.status === 502) {\n      return WriteDocumentFieldComponent.UPLOAD_ERROR_NOT_AVAILABLE;\n    }\n    if (error.status === 422 || error.status === 500) {\n      if (this.fileSecureModeOn) {\n        return this.extractSecureErrorMessage(error) || WriteDocumentFieldComponent.ERROR_UPLOADING_FILE;\n      }\n      return error.error || WriteDocumentFieldComponent.ERROR_UPLOADING_FILE;\n    }\n    if (error.status === 429) {\n      return error?.error;\n    }\n    return WriteDocumentFieldComponent.ERROR_UPLOADING_FILE;\n  }\n\n  private extractSecureErrorMessage(error: HttpError): string | undefined {\n    if (!error?.error) {\n      return WriteDocumentFieldComponent.ERROR_UPLOADING_FILE;\n    }\n    const fullError = error.error;\n    const start = fullError.indexOf('{');\n    if (start < 0) {\n      return WriteDocumentFieldComponent.ERROR_UPLOADING_FILE;\n    }\n    try {\n      const json = fullError.substring(start, fullError.length - 1).replace(/<EOL>/g, '');\n      const obj = JSON.parse(json);\n      return obj?.error;\n    } catch {\n      return WriteDocumentFieldComponent.ERROR_UPLOADING_FILE;\n    }\n  }\n\n  private buildDocumentUploadData(selectedFile: File): FormData {\n    const documentUpload: FormData = new FormData();\n    documentUpload.append('files', selectedFile, selectedFile.name);\n    documentUpload.append('classification', 'PUBLIC');\n\n    const caseTypeId = this.caseTypeId ? this.caseTypeId : null;\n    const caseTypeJurisdictionId = this.jurisdictionId ? this.jurisdictionId : null;\n    documentUpload.append('caseTypeId', caseTypeId);\n    documentUpload.append('jurisdictionId', caseTypeJurisdictionId);\n\n    return documentUpload;\n  }\n\n  generateLogMessage(cdamEnabled: boolean): void {\n    const currUrl = window.location.pathname;\n    if (!currUrl.includes('/create-case/')) {\n      this.appConfig.logMessage(`WDF:: CDAM is ${cdamEnabled ? 'enabled' : 'disabled'} || existing case || case ref:: ${this.caseId} || jurisdiction:: ${this.jurisdictionId} || case type:: ${this.caseTypeId} || gotFromCaseInfo:: ${this.gotFromCaseInfo}`);\n    } else {\n      this.appConfig.logMessage(`WDF:: CDAM is ${cdamEnabled ? 'enabled' : 'disabled'} || create case journey || jurisdiction:: ${this.jurisdictionId} || case type:: ${this.caseTypeId}`);\n    }\n  }\n\n  private handleDocumentUploadResult(result: DocumentData): void {\n    // use the documentManagement service to check if the document upload should use CDAM\n    if (this.documentManagement.isDocumentSecureModeEnabled()) {\n      this.generateLogMessage(true);\n    } else {\n      this.generateLogMessage(false);\n    }\n    if (!this.uploadedDocument) {\n      if (this.fileSecureModeOn) {\n        this.createDocumentForm({ document_url: null, document_binary_url: null, document_filename: null, document_hash: null });\n      } else {\n        this.createDocumentForm({ document_url: null, document_binary_url: null, document_filename: null });\n      }\n    }\n\n    const document = this.fileSecureModeOn ? result.documents[0] : result._embedded.documents[0];\n\n    if (this.fileSecureModeOn) {\n      this.updateDocumentForm(\n        document._links.self.href,\n        document._links.binary.href,\n        document.originalDocumentName,\n        document.hashToken\n      );\n    } else {\n      this.updateDocumentForm(\n        document._links.self.href,\n        document._links.binary.href,\n        document.originalDocumentName,\n      );\n    }\n\n    this.valid = true;\n    this.fileUploadStateService.setUploadInProgress(false);\n\n    // refresh replaced document info\n    if (this.caseField.value) {\n      this.caseField.value.document_binary_url = document._links.binary.href;\n      this.caseField.value.document_filename = document.originalDocumentName;\n      this.caseField.value.document_url = document._links.self.href;\n\n      if (this.fileSecureModeOn) {\n        this.caseField.value.document_hash = document.hashToken;\n      }\n    }\n  }\n\n  private handleDocumentUploadError(error: HttpError): void {\n    this.fileUploadMessages = this.getErrorMessage(error);\n    this.valid = false;\n    this.fileUploadStateService.setUploadInProgress(false);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FixedListItem } from '../../../domain/definition/fixed-list-item.model';\n\n@Pipe({\n  name: 'ccdDynamicList',\n  standalone: false\n})\nexport class DynamicListPipe implements PipeTransform {\n\n  private static readonly EMPTY = '';\n\n  public transform(value: string, items: FixedListItem[]): any {\n    const item = items?.find(i => i.code === value);\n    return item ? item.label : DynamicListPipe.EMPTY;\n  }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-dynamic-list-field',\n  template: '<span class=\"text-16\">{{caseField.value | ccdDynamicList:caseField.list_items | rpxTranslate}}</span>',\n  standalone: false\n})\nexport class ReadDynamicListFieldComponent extends AbstractFieldReadComponent implements OnInit {\n\n  public ngOnInit(): void {\n    /**\n     *\n     * Reassigning list_items from formatted_list when list_items is empty\n     */\n    if (!this.caseField.list_items && this.caseField.formatted_value && this.caseField.formatted_value.list_items) {\n      this.caseField.list_items = this.caseField.formatted_value.list_items;\n    }\n    super.ngOnInit();\n  }\n}\n","<div class=\"form-group\"\n  [ngClass]=\"{'form-group-error': !dynamicListFormControl.valid && (dynamicListFormControl.dirty || dynamicListFormControl.touched)}\">\n\n  <label [for]=\"id()\">\n    <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n  <span class=\"form-label\" *ngIf=\"!caseField.label && !caseField.hint_text\">{{'Select an option from the dropdown' | rpxTranslate}}</span>\n  <span class=\"error-message\"\n    *ngIf=\"dynamicListFormControl.errors && dynamicListFormControl.dirty\">{{(dynamicListFormControl.errors |\n    ccdFirstError:caseField.label)}}</span>\n\n  <select class=\"form-control ccd-dropdown bottom-30\" [id]=\"id()\"\n    [formControl]=\"dynamicListFormControl\">\n    <option [ngValue]=null>{{'--Select a value--' | rpxTranslate}}</option>\n    <option [ngValue]=\"type.code\" *ngFor=\"let type of caseField.list_items\">{{type.label | rpxTranslate}}</option>\n  </select>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-dynamic-list-field',\n  templateUrl: './write-dynamic-list-field.html',\n  standalone: false\n})\nexport class WriteDynamicListFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public dynamicListFormControl: FormControl;\n\n  public ngOnInit() {\n    /**\n     * Reassigning list_items from formatted_value when list_items is empty\n     */\n    if (!this.caseField.list_items && this.caseField.formatted_value && this.caseField.formatted_value.list_items) {\n      this.caseField.list_items = this.caseField.formatted_value.list_items;\n    }\n\n    /**\n     * Reassigning value from formatted_value when value is empty\n     */\n    if (!this.caseField.value) {\n      if (this.caseField.formatted_value && this.caseField.formatted_value.value && this.caseField.formatted_value.value.code) {\n        this.caseField.value = this.caseField.formatted_value.value.code;\n      }\n    }\n\n    const isNull = this.caseField.value === undefined || this.caseField.value === '';\n\n    if (isNull || typeof this.caseField.value === 'object') {\n      this.caseField.value = null;\n    }\n\n    this.dynamicListFormControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n    this.dynamicListFormControl.setValue(this.caseField.value);\n  }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, NgZone, OnInit, Renderer2 } from '@angular/core';\nimport * as marked from 'marked';\nimport { Router } from '@angular/router';\n\n@Component({\n  selector: 'ccd-markdown',\n  templateUrl: './markdown.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: false\n})\nexport class MarkdownComponent implements OnInit {\n  @Input() public content: string;\n  @Input() public renderUrlToTextFeature?: boolean = true;\n\n  constructor(private router: Router, private renderer: Renderer2, private ngZone: NgZone, private cdr: ChangeDetectorRef) {}\n\n  public ngOnInit(): void {\n    this.content = this.content.replace(/  \\n/g, '<br>');\n    if (this.renderUrlToTextFeature) {\n      this.renderUrlToText();\n    }\n    this.cdr.markForCheck(); // Mark the component for change detection\n  }\n\n  public interceptClick(event: MouseEvent): void {\n    this.ngZone.runOutsideAngular(() => {\n      const target = event.target as HTMLElement;\n      if (target.tagName.toLowerCase() === 'a') {\n        const href = target.getAttribute('href');\n        const targetAttr = target.getAttribute('target'); // Check the target attribute\n        if (href && href.startsWith('/') && !href.startsWith('//')) {\n          if (targetAttr === '_blank') {\n            // Allow the default behavior for links opening in a new tab\n            return;\n          }\n          const currentUrl = window.location.href;\n          if (currentUrl.includes('trigger')) {\n            // If we are already in an event and there is a markdown, reload the page\n            this.ngZone.run(() => {\n              this.router.navigateByUrl(href);\n            });\n          } else {\n            event.preventDefault();\n            this.ngZone.run(() => {\n              this.router.navigateByUrl(href);\n            });\n          }\n        }\n      }\n    });\n  }\n\n  private renderUrlToText(): void {\n    const renderer = new marked.Renderer();\n\n    renderer.link = (href, title, text) => {\n      if (!text || text === href) {\n        return this.isAllowedUrl(href) ? `<a href=\"${href}\">${href}</a>` : href;\n      }\n      return this.detectMarkdownLinks(this.content) ? `<a href=\"${href}\">${text}</a>` : text;\n    };\n\n    marked.setOptions({\n      renderer: renderer\n    });\n\n    this.cdr.markForCheck();\n  }\n\n  private isAllowedUrl(url: string): boolean {\n    const currentOrigin = window.location.origin;\n    const urlOrigin = new URL(url, window.location.href).origin;\n\n    return urlOrigin === currentOrigin || url.startsWith('/'); // Check if same origin or relative\n  }\n\n  private detectMarkdownLinks(inputString: string): boolean {\n    const markdownLinkRegex = /\\[([^\\]]+)\\]\\(?([^ )]+)\\)/g;\n    return markdownLinkRegex.test(inputString);\n  }\n}\n","<div><markdown class=\"markdown\" (click)=\"interceptClick($event)\" [data]=\"content | ccdCaseReference\"></markdown></div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FixedListItem } from '../../../domain/definition/fixed-list-item.model';\n\n@Pipe({\n  name: 'ccdFixedList',\n  standalone: false\n})\nexport class FixedListPipe implements PipeTransform {\n\n  private static readonly EMPTY = '';\n\n  public transform(value: string, items: FixedListItem[]): any {\n    if (!!items) {\n      const item = items.find(i => i.code === value);\n      return item ? item.label : FixedListPipe.EMPTY;\n    } else {\n      return FixedListPipe.EMPTY;\n    }\n  }\n}\n","<div *ngFor=\"let value of caseField.value\">\n  <ccd-markdown [content]=\"value.code | ccdFixedList:caseField.list_items | rpxTranslate\"></ccd-markdown>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-dynamic-multi-select-list-field',\n  templateUrl: './read-dynamic-multi-select-list-field.html',\n  styleUrls: ['./read-dynamic-multi-select-list-field.component.scss'],\n  standalone: false\n})\nexport class ReadDynamicMultiSelectListFieldComponent extends AbstractFieldReadComponent implements OnInit {\n  public ngOnInit() {\n    /**\n     *\n     * Reassigning list_items from formatted_list when list_items is empty\n     */\n    if (!this.caseField.list_items && this.caseField.formatted_value && this.caseField.formatted_value.list_items) {\n      this.caseField.list_items = this.caseField.formatted_value.list_items;\n    }\n\n    if (!this.caseField.value && this.caseField.formatted_value && this.caseField.formatted_value.value) {\n      this.caseField.value = this.caseField.formatted_value.value;\n    }\n\n    super.ngOnInit();\n  }\n}\n","<div class=\"form-group bottom-30\" [ngClass]=\"{'error': !checkboxes.valid && checkboxes.touched}\" [id]=\"id()\">\n\n  <fieldset>\n\n    <legend>\n      <span *ngIf=\"caseField.label\" class=\"form-label\">{{caseField | ccdFieldLabel}}</span>\n      <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">{{caseField.hint_text}}</span>\n      <span *ngIf=\"checkboxes.errors && checkboxes.touched\" class=\"error-message\">{{checkboxes.errors |\n        ccdFirstError}}</span>\n    </legend>\n\n    <ng-container *ngFor=\"let checkbox of caseField.list_items\">\n\n      <div class=\"multiple-choice\">\n        <input class=\"form-control\" id=\"{{ createElementId(checkbox.code) }}\" name=\"{{ id() }}\" type=\"checkbox\"\n          [value]=\"checkbox.code\" [checked]=\"isSelected(checkbox.code)\" (change)=\"onCheckChange($event)\">\n        <label class=\"form-label\" for=\"{{ createElementId(checkbox.code) }}\">\n          <ccd-markdown [content]=\"checkbox.label | rpxTranslate\" [renderUrlToTextFeature]=\"false\"></ccd-markdown>\n        </label>\n      </div>\n\n    </ng-container>\n\n  </fieldset>\n\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-dynamic-multi-select-list-field',\n  templateUrl: './write-dynamic-multi-select-list-field.html',\n  styleUrls: ['./write-dynamic-multi-select-list-field.component.scss'],\n  standalone: false\n})\nexport class WriteDynamicMultiSelectListFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n  public checkboxes: FormArray;\n  public dynamicListFormControl: FormControl;\n\n  public ngOnInit(): void {\n    this.checkboxes = new FormArray([]);\n\n    this.setInitialCaseList();\n    this.setInitialCaseFieldValue();\n\n    // Initialise array with existing values\n    if (this.caseField.value && Array.isArray(this.caseField.value)) {\n      const values = this.caseField.value;\n\n      values.forEach(value => {\n        this.checkboxes.push(new FormControl(value));\n      });\n    }\n\n    this.dynamicListFormControl = this.registerControl(new FormControl(this.checkboxes.value)) as FormControl;\n    this.dynamicListFormControl.setValue(this.checkboxes.value);\n  }\n\n  public onCheckChange(event: Event) {\n    const target = event.target as HTMLInputElement;\n\n    if (!target || !target.value) {\n      return;\n    }\n\n    const selectedListItem: object = this.getValueListItem(target.value);\n\n    if (!this.isSelected(target.value)) {\n      // Add a new control in the FormArray\n      this.checkboxes.push(new FormControl(selectedListItem));\n    } else {\n      // Remove the control from the FormArray\n      this.checkboxes.controls.forEach((ctrl: FormControl, i) => {\n        if (ctrl.value.code === target.value) {\n          this.checkboxes.removeAt(i);\n        }\n      });\n    }\n\n    this.dynamicListFormControl.setValue(this.checkboxes.value);\n  }\n\n  public isSelected(code: string): AbstractControl {\n    if (this.checkboxes && this.checkboxes.controls) {\n      return this.checkboxes.controls.find(control => control.value.code === code);\n    }\n  }\n\n  private getValueListItem(value: string) {\n    return this.caseField.list_items.find(i => i.code === value);\n  }\n\n  private setInitialCaseList(): void {\n    const hasListItems = this.caseField.list_items && this.caseField.list_items.length > 0;\n    const hasFormattedListItems = this.caseField.formatted_value && this.caseField.formatted_value.list_items.length > 0;\n\n    if (!hasListItems && hasFormattedListItems) {\n      this.caseField.list_items = this.caseField.formatted_value.list_items;\n    }\n  }\n\n  private setInitialCaseFieldValue(): void {\n    if (!this.caseField.value && this.caseField.formatted_value && this.caseField.formatted_value.value) {\n      this.caseField.value = this.caseField.formatted_value.value;\n    }\n\n    const isNull = this.caseField.value === undefined || this.caseField.value === '';\n\n    if (isNull || !Array.isArray(this.caseField.value)) {\n      this.caseField.value = [];\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FixedListItem } from '../../../domain/definition/fixed-list-item.model';\n\n@Pipe({\n  name: 'ccdDynamicRadioList',\n  standalone: false\n})\nexport class DynamicRadioListPipe implements PipeTransform {\n\n  private static readonly EMPTY = '';\n\n  public transform(value: any, items: FixedListItem[]): any {\n    /**\n     *\n     * If value is object with element `value.code`, use code instead.\n     */\n    if (value && value.value && value.value.code) {\n      value = value.value.code;\n    }\n    const item = items.find(i => i.code === value);\n    return item ? item.label : DynamicRadioListPipe.EMPTY;\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-dynamic-radio-list-field',\n  template: '<span class=\"text-16\">{{caseField.value | ccdDynamicRadioList:caseField.list_items | rpxTranslate}}</span>',\n  standalone: false\n})\nexport class ReadDynamicRadioListFieldComponent extends AbstractFieldReadComponent implements OnInit {\n\n  public ngOnInit(): void {\n    /**\n     *\n     * Reassigning list_items from formatted_list when list_items is empty\n     */\n    if (!this.caseField.list_items && this.caseField.formatted_value && this.caseField.formatted_value.list_items) {\n      this.caseField.list_items = this.caseField.formatted_value.list_items;\n    }\n\n    /**\n     *\n     * Seems formatted_value can also be empty for DynamicRadioList's. Reassigning list_items from value.list_items in that case\n     */\n    if (!this.caseField.list_items && this.caseField.value && this.caseField.value.list_items) {\n      this.caseField.list_items = this.caseField.value.list_items;\n    }\n  }\n}\n","<div class=\"form-group bottom-30\"\n    [ngClass]=\"{'form-group-error': !dynamicRadioListControl.valid && dynamicRadioListControl.dirty}\" [id]=\"id()\">\n  <fieldset>\n    <legend style=\"display: none;\"></legend>\n    <label [for]=\"id()\">\n        <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n        <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n        <span class=\"form-label\" *ngIf=\"!caseField.label && !caseField.hint_text\">{{'Select an option below' | rpxTranslate}}</span>\n        <span class=\"error-message\"\n            *ngIf=\"dynamicRadioListControl.errors && dynamicRadioListControl.dirty\">{{(dynamicRadioListControl.errors |\n            ccdFirstError)}}</span>\n    </label>\n\n    <ng-container>\n      <div class=\"multiple-choice\" *ngFor=\"let radioButton of caseField.list_items\" [ngClass]=\"{selected: dynamicRadioListControl.value === radioButton.code}\">\n        <input class=\"form-control\" [id]=\"createElementId(radioButton.code)\" [name]=\"id()\" type=\"radio\" [formControl]=\"dynamicRadioListControl\" [value]=\"radioButton.code\">\n        <label class=\"form-label\" [for]=\"createElementId(radioButton.code)\">{{radioButton.label | rpxTranslate}}</label>\n      </div>\n    </ng-container>\n  </fieldset>\n</div>\n","import {Component, OnInit} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {AbstractFieldWriteComponent} from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-dynamic-radio-list-field',\n  templateUrl: './write-dynamic-radio-list-field.html',\n  standalone: false\n})\nexport class WriteDynamicRadioListFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public dynamicRadioListControl: FormControl;\n\n  public ngOnInit(): void {\n    /**\n     * Reassigning list_items from formatted_list when list_items is empty\n     */\n    if (!this.caseField.list_items && this.caseField.formatted_value && this.caseField.formatted_value.list_items) {\n      this.caseField.list_items = this.caseField.formatted_value.list_items;\n    }\n\n    if (!this.caseField.value && this.caseField.formatted_value?.value) {\n      this.caseField.value = this.caseField.formatted_value.value?.code;\n    }\n\n    const isNull: boolean = this.caseField.value === undefined || this.caseField.value === '';\n\n    if (isNull || typeof this.caseField.value === 'object') {\n      this.caseField.value = [];\n    }\n\n    this.dynamicRadioListControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n    this.dynamicRadioListControl.setValue(this.caseField.value);\n  }\n\n  public createElementId(name: string): string {\n    // EXUI-2462 - parent may not always have value with content\n    // this is independent from the caseField.list_items so is irrelevant to event journey\n    return this.parent?.value?.id ? this.parent.value.id + this.parent.value.value : super.createElementId(name);\n  }\n}\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-email-field',\n  template: `\n  <a *ngIf=\"!isFieldValueEmpty()\" href=\\\"mailto:{{caseField.value}}\\\">{{caseField.value}}</a>\n  `,\n  standalone: false\n})\nexport class ReadEmailFieldComponent extends AbstractFieldReadComponent {\n\n  public isFieldValueEmpty(): boolean {\n    return (!this.caseField.value);\n  }\n\n}\n","<div class=\"form-group bottom-30\" [ngClass]=\"{'form-group-error': !emailControl.valid && (emailControl.dirty || emailControl.touched)}\">\n\n  <label [for]=\"id()\">\n    <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n  <span class=\"error-message\" *ngIf=\"emailControl.errors && (emailControl.dirty || emailControl.touched)\">{{(emailControl.errors | ccdFirstError:caseField.label)}}</span>\n\n  <input class=\"form-control\" [ngClass]=\"{'govuk-input--error': emailControl.errors && (emailControl.dirty || emailControl.touched)}\"\n    [id]=\"id()\" type=\"email\" [formControl]=\"emailControl\">\n\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-email-field',\n  templateUrl: 'write-email-field.html',\n  standalone: false\n})\nexport class WriteEmailFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public emailControl: FormControl;\n\n  public ngOnInit() {\n    this.emailControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n  }\n}\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-fixed-list-field',\n  template: '<span class=\"text-16\">{{caseField.value | ccdFixedList:caseField.list_items | rpxTranslate}}</span>',\n  standalone: false\n})\nexport class ReadFixedListFieldComponent extends AbstractFieldReadComponent {\n\n}\n","<div class=\"form-group\" [ngClass]=\"{'form-group-error': !fixedListFormControl.valid && (fixedListFormControl.dirty || fixedListFormControl.touched)}\">\n\n  <label [for]=\"id()\">\n    <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n  <span class=\"error-message\" *ngIf=\"fixedListFormControl.errors && (fixedListFormControl.dirty || fixedListFormControl.touched)\">\n    {{(fixedListFormControl.errors | ccdFirstError:caseField.label)}}\n  </span>\n\n  <select class=\"form-control ccd-dropdown bottom-30\" [id]=\"id()\" [formControl]=\"fixedListFormControl\">\n    <option [ngValue]=null>--Select a value--</option>\n    <option [ngValue]=\"type.code\" *ngFor=\"let type of listItems\">{{type.label | rpxTranslate}}</option>\n  </select>\n\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-fixed-list-field',\n  templateUrl: './write-fixed-list-field.html',\n  standalone: false\n})\nexport class WriteFixedListFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public fixedListFormControl: FormControl;\n\n  public get listItems(): any[] {\n    if (this.caseField) {\n      if (this.caseField.list_items) {\n        return this.caseField.list_items;\n      }\n      if (this.caseField.formatted_value && this.caseField.formatted_value.list_items) {\n        return this.caseField.formatted_value.list_items;\n      }\n    }\n    return [];\n  }\n\n  public ngOnInit() {\n    const isNull = this.caseField.value === undefined || this.caseField.value === '';\n\n    if (isNull) {\n      this.caseField.value = null;\n    }\n\n    this.fixedListFormControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n    this.fixedListFormControl.setValue(this.caseField.value);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { FixedListItem } from '../../../domain/definition/fixed-list-item.model';\n\n@Pipe({\n  name: 'ccdFixedRadioList',\n  standalone: false\n})\nexport class FixedRadioListPipe implements PipeTransform {\n\n  private static readonly EMPTY = '';\n\n  public transform(value: string, items: FixedListItem[]): any {\n    const item = items.find(i => i.code === value);\n    return item ? item.label : FixedRadioListPipe.EMPTY;\n  }\n}\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-fixed-radio-list-field',\n  template: '<span class=\"text-16\">{{caseField.value | ccdFixedRadioList:caseField.field_type.fixed_list_items | rpxTranslate}}</span>',\n  standalone: false\n})\nexport class ReadFixedRadioListFieldComponent extends AbstractFieldReadComponent { }\n","<div class=\"form-group bottom-30\" [ngClass]=\"{'form-group-error': !fixedRadioListControl.valid && (fixedRadioListControl.dirty || fixedRadioListControl.touched)}\" [id]=\"id()\">\n  <fieldset>\n    <legend>\n      <label [for]=\"id()\">\n        <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n      </label>\n      <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate }}</span>\n      <span class=\"error-message\" *ngIf=\"fixedRadioListControl.errors && (fixedRadioListControl.dirty || fixedRadioListControl.touched)\">{{(fixedRadioListControl.errors | ccdFirstError:caseField.label)}}</span>\n    </legend>\n    <ng-container>\n      <div class=\"multiple-choice\" *ngFor=\"let radioButton of caseField.field_type.fixed_list_items\" [ngClass]=\"{selected: fixedRadioListControl.value === radioButton.code}\">\n        <input class=\"form-control\" [id]=\"id()+'-'+radioButton.code\" [name]=\"id()\" type=\"radio\" [formControl]=\"fixedRadioListControl\" [value]=\"radioButton.code\">\n        <label class=\"form-label\" [for]=\"id()+'-'+radioButton.code\">{{radioButton.label | rpxTranslate}}</label>\n      </div>\n    </ng-container>\n  </fieldset>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-fixed-radio-list-field',\n  templateUrl: './write-fixed-radio-list-field.html',\n  standalone: false\n})\nexport class WriteFixedRadioListFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public fixedRadioListControl: FormControl;\n\n  public ngOnInit() {\n    const notEmpty = this.caseField.value !== null && this.caseField.value !== undefined;\n    this.fixedRadioListControl = this.registerControl(new FormControl(notEmpty ? this.caseField.value : null)) as FormControl;\n  }\n}\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-case-history-viewer-field',\n  templateUrl: 'case-history-viewer-field.component.html',\n  standalone: false\n})\nexport class CaseHistoryViewerFieldComponent extends AbstractFieldReadComponent {}\n","<ccd-event-log [events]=\"caseField.value\"></ccd-event-log>","<span\n  *ngIf=\"judicialUser\"\n  class=\"text-16\">\n  {{ judicialUser.fullName }} ({{ judicialUser.emailId }})\n</span>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { JudicialUserModel } from '../../../domain/jurisdiction/judicial-user.model';\nimport { JurisdictionService } from '../../../services/jurisdiction/jurisdiction.service';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-judicial-user-field',\n  templateUrl: './read-judicial-user-field.component.html',\n  standalone: false\n})\nexport class ReadJudicialUserFieldComponent extends AbstractFieldReadComponent implements OnInit, OnDestroy {\n\n  public judicialUser: JudicialUserModel;\n  public sub: Subscription;\n\n  constructor(private readonly jurisdictionService: JurisdictionService) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    if (this.caseField && this.caseField.value && this.caseField.value.personalCode) {\n      const personalCode = this.caseField.value.personalCode;\n      this.sub = this.jurisdictionService.searchJudicialUsersByPersonalCodes([personalCode]).subscribe(judicialUsers => {\n        this.judicialUser = judicialUsers && judicialUsers.length > 0 && judicialUsers[0];\n      });\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (this.sub) {\n      this.sub.unsubscribe();\n    }\n  }\n}\n","<div class=\"form-group\" [formGroup]=\"formGroup\" [ngClass]=\"{'form-group-error': !!judicialUserControl && errors}\">\n  <label [for]=\"id()\">\n    <span *ngIf=\"caseField.label\" class=\"form-label\">\n      {{caseField | ccdFieldLabel}}\n    </span>\n  </label>\n  <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">\n    {{caseField.hint_text}}\n  </span>\n  <span class=\"error-message\" *ngIf=\"errors\">\n    {{errors | ccdFirstError:caseField.label}}\n  </span>\n  <input class=\"form-control bottom-30\" [id]=\"id()\"\n    [formControl]=\"judicialUserControl\" [matAutocomplete]=\"autoComplete\" (blur)=\"onBlur($event)\">\n  <mat-autocomplete autoActiveFirstOption #autoComplete=\"matAutocomplete\" [displayWith]=\"displayJudicialUser\">\n    <mat-option *ngFor=\"let judicialUser of filteredJudicialUsers$ | async\"\n      class=\"select-option\" [ngClass]=\"{'hide-autocomplete': !showAutocomplete}\"\n      [value]=\"judicialUser\" (onSelectionChange)=\"onSelectionChange($event)\">\n      {{judicialUser?.fullName ? judicialUser.fullName : ''}}{{judicialUser?.emailId ? ' (' + judicialUser.emailId + ')' : ''}}\n    </mat-option>\n    <mat-option *ngIf=\"noResults && searchTerm && searchTerm.length > minSearchCharacters && showAutocomplete\" class=\"select-option\" disabled>\n      No results found\n    </mat-option>\n    <mat-option *ngIf=\"invalidSearchTerm\" class=\"select-option\" disabled>\n      Invalid search term\n    </mat-option>\n  </mat-autocomplete>\n</div>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, ValidationErrors, Validators } from '@angular/forms';\nimport { Observable, Subscription, of } from 'rxjs';\nimport { catchError, debounceTime, filter, map, switchMap, take, tap } from 'rxjs/operators';\nimport { Constants } from '../../../commons/constants';\nimport { JudicialUserModel } from '../../../domain/jurisdiction';\nimport { CaseFlagRefdataService, FieldsUtils, FormValidatorsService, JurisdictionService, SessionStorageService } from '../../../services';\nimport { WriteComplexFieldComponent } from '../complex/write-complex-field.component';\nimport { IsCompoundPipe } from '../utils/is-compound.pipe';\nimport { CaseNotifier } from '../../case-editor/services/case.notifier';\n\n@Component({\n  selector: 'ccd-write-judicial-user-field',\n  styleUrls: ['./write-judicial-user-field.component.scss'],\n  templateUrl: './write-judicial-user-field.component.html',\n  standalone: false\n})\nexport class WriteJudicialUserFieldComponent extends WriteComplexFieldComponent implements OnInit, OnDestroy {\n\n  public readonly minSearchCharacters = 2;\n\n  public judicialUserControl: AbstractControl;\n  public jurisdiction: string;\n  public caseType: string;\n  public showAutocomplete = false;\n  public filteredJudicialUsers$: Observable<JudicialUserModel[]>;\n  public searchTerm = '';\n  public noResults = false;\n  public errors: ValidationErrors;\n  public invalidSearchTerm = false;\n  public judicialUserSelected = false;\n  public jurisdictionSubscription: Subscription;\n  private notifierSubscription: Subscription;\n\n  constructor(private readonly jurisdictionService: JurisdictionService,\n              private readonly sessionStorageService: SessionStorageService,\n              private readonly caseFlagRefDataService: CaseFlagRefdataService,\n              private readonly compoundPipe: IsCompoundPipe,\n              private readonly validatorsService: FormValidatorsService,\n              private readonly caseNotifier: CaseNotifier) {\n    super(compoundPipe, validatorsService);\n    // We need to caseType from the case list filters as well as the case notifier, because the judicial user component\n    // can be used in the case list before any case is opened, thus the caseNotifier has nothing to notify\n    this.jurisdictionSubscription = this.jurisdictionService.getSelectedJurisdiction()?.subscribe({\n      next: (jurisdiction) => {\n        if (jurisdiction?.currentCaseType) {\n          this.jurisdiction = jurisdiction.id;\n          this.caseType = jurisdiction.currentCaseType.id\n        }\n      }\n    });\n    this.notifierSubscription = this.caseNotifier.caseView.subscribe((caseDetails) => {\n      if (caseDetails) {\n        this.jurisdiction = caseDetails?.case_type?.jurisdiction?.id;\n        this.caseType = caseDetails?.case_type?.id;\n      }\n    });\n  }\n\n  public ngOnInit(): void {\n    super.ngOnInit();\n    this.judicialUserControl = new FormControl(this.caseField.value);\n    // FormControl needs to be added to the main FormGroup so it can be picked up by the PageValidationService when\n    // checking if the page is valid. FormGroup.setControl() is used here to ensure any existing JudicialUser\n    // FormControl is replaced when the component is re-initialised, for example, if the user navigates away then\n    // back to the page containing the JudicialUser field\n    this.formGroup.setControl(`${this.caseField.id}_judicialUserControl`, this.judicialUserControl);\n    // Ensure that this FormControl has links to the JudicialUser case field and this component\n    FieldsUtils.addCaseFieldAndComponentReferences(this.judicialUserControl, this.caseField, this);\n    this.setupValidation();\n\n    this.filteredJudicialUsers$ = this.judicialUserControl.valueChanges.pipe(\n      tap(() => this.showAutocomplete = false),\n      debounceTime(300),\n      // Need to check type of input because it changes to object (i.e. JudicialUser) when a value is selected from the\n      // autocomplete panel, instead of string when a value is being typed in\n      map(input => typeof input === 'string' ? input : input?.fullName),\n      tap(searchTerm => {\n        this.searchTerm = searchTerm;\n        this.invalidSearchTerm = false;\n      }),\n      filter((searchTerm: string) => searchTerm && searchTerm.length > this.minSearchCharacters),\n      switchMap((searchTerm: string) => this.filterJudicialUsers(searchTerm).pipe(\n        tap((judicialUsers) => {\n          this.showAutocomplete = true;\n          this.noResults = !this.invalidSearchTerm && judicialUsers.length === 0;\n        })\n      ))\n    );\n\n    if (this.caseField.value?.personalCode) {\n      this.loadJudicialUser(this.caseField.value.personalCode);\n    }\n  }\n\n  public filterJudicialUsers(searchTerm: string): Observable<JudicialUserModel[]> {\n    if (!this.caseType) {\n      this.caseType = this.jurisdictionService.getSelectedJurisdiction()?.getValue()?.currentCaseType?.id;\n    }\n    // we need to identify the \"base case type\" for the service code, because services tend to create testing\n    // case types that aren't present in ref data. Generally these are called <casetype>-<something>. There are no\n    // real case types that include a hyphen in the name (I've checked the ref data),\n    // so we can use this to identify the base case type\n    // and strip off the suffix. This is a bit of a hack, but it works for now.\n    if (this.caseType && this.caseType.includes('-')) {\n      this.caseType = this.caseType.split('-')[0];\n    }\n    return this.caseFlagRefDataService.getHmctsServiceDetailsByCaseType(this.caseType).pipe(\n      // If an error occurs retrieving HMCTS service details by case type ID, try by service name instead\n      catchError(_ => this.caseFlagRefDataService.getHmctsServiceDetailsByServiceName(this.jurisdiction)),\n      // Use switchMap to return an inner Observable of the judicial users data, having received the service details\n      // including service_code. This avoids having nested `subscribe`s, which is an anti-pattern!\n      switchMap(serviceDetails => {\n        return this.jurisdictionService.searchJudicialUsers(searchTerm, serviceDetails[0].service_code).pipe(\n          // Handle any errors here rather than outside of the function, so that the outer Observable is kept live\n          catchError(_ => {\n            this.invalidSearchTerm = true;\n            return of(undefined);\n          })\n        );\n      })\n    );\n  }\n\n  public loadJudicialUser(personalCode: string): void {\n    if (personalCode) {\n      this.jurisdictionService.searchJudicialUsersByPersonalCodes([personalCode]).pipe(take(1)).subscribe(judicialUsers => {\n        this.judicialUserControl.setValue(judicialUsers[0]);\n      });\n    }\n  }\n\n  public displayJudicialUser(judicialUser?: JudicialUserModel): string | undefined {\n    return judicialUser\n      ? `${judicialUser.fullName ? judicialUser.fullName : ''}${judicialUser.emailId ? ` (${judicialUser.emailId})` : ''}`\n      : undefined;\n  }\n\n  public onSelectionChange(event: any): void {\n    // The event.source.value property is a JudicialUserModel object instance; use this to update both the caseField\n    // value and the values of the two FormControls for the idamId and personalCode properties of the JudicialUser\n    // complex field type (these values will appear in the data payload for validation and submission)\n    this.caseField.value = {\n      idamId: event.source.value.idamId,\n      personalCode: event.source.value.personalCode\n    };\n    this.complexGroup.get('idamId')?.setValue(this.caseField.value.idamId);\n    this.complexGroup.get('personalCode')?.setValue(this.caseField.value.personalCode);\n    this.judicialUserSelected = true;\n  }\n\n  public onBlur(event: any): void {\n    // If the user types into the JudicialUser field but doesn't select a value from the autocomplete list, reset the\n    // FormControl value to null to ensure it fails validation (can check the event.relatedTarget property)\n    if (event.relatedTarget?.role !== 'option' && !this.judicialUserSelected) {\n      // If relatedTarget.role is not \"option\", it means the user didn't select a value\n      this.judicialUserControl.setValue(null);\n    }\n\n    if (!this.judicialUserControl.value) {\n      // If the user deletes the field value, set the caseField value and the values of the two FormControls for\n      // idamId and personalCode to null. This is to avoid judicial user data being present in the data payload\n      // unintentionally\n      this.caseField.value = null;\n      this.complexGroup.get('idamId')?.setValue(null);\n      this.complexGroup.get('personalCode')?.setValue(null);\n    }\n  }\n\n  public setupValidation(): void {\n    // Need to remove validators from the two FormControls, idamId and personalCode, for the JudicialUser complex\n    // field type. This prevents these hidden fields being listed in an error message if there are validation errors\n    this.complexGroup.get('idamId').clearValidators();\n    this.complexGroup.get('personalCode').clearValidators();\n    if (this.caseField.display_context === Constants.MANDATORY) {\n      this.judicialUserControl.setValidators(Validators.required);\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.jurisdictionSubscription?.unsubscribe();\n    this.notifierSubscription?.unsubscribe();\n  }\n}\n","<dl [hidden]=\"caseField.hidden\" class=\"case-field\" ccdLabelSubstitutor [caseField]=\"caseField\" [contextFields]=\"caseFields\" [id]=\"caseField.id\">\n  <dt>\n    <ccd-markdown *ngIf=\"labelCanBeTranslated && !caseField.isTranslated\" [content]=\"caseField.label | rpxTranslate\">\n    </ccd-markdown>\n\n    <ccd-markdown *ngIf=\"labelCanBeTranslated && caseField.isTranslated\" [content]=\"caseField.label\">\n    </ccd-markdown>\n\n    <ccd-markdown *ngIf=\"!labelCanBeTranslated\" [content]=\"caseField.value || caseField.label\">\n    </ccd-markdown>\n  </dt>\n  <dd></dd>\n</dl>\n","import { Component, Input } from '@angular/core';\nimport { CaseField } from '../../../domain/definition/case-field.model';\n\n@Component({\n  selector: 'ccd-label-field',\n  templateUrl: './label-field.html',\n  standalone: false\n})\nexport class LabelFieldComponent {\n  @Input()\n  public caseField: CaseField;\n\n  @Input()\n  public caseFields: CaseField[] = [];\n\n  @Input()\n  public labelCanBeTranslated = false;\n\n}\n","export enum LinkedCasesPages {\n  BEFORE_YOU_START,\n  NO_LINKED_CASES,\n  LINK_CASE,\n  UNLINK_CASE,\n  CHECK_YOUR_ANSWERS\n}\n\nexport enum LinkedCasesErrorMessages {\n  ProposedCaseWithIn = 'Case can not be linked to the same case',\n  CaseNumberError = 'Case numbers must have 16 digits',\n  ReasonSelectionError = 'Select a reason why these cases should be linked',\n  SomethingWrong = 'Something went wrong, please try again later',\n  CaseCheckAgainError = 'Check the case number and try again',\n  CaseSelectionError = 'You need to propose at least one case',\n  CaseProposedError = 'This case has already been proposed',\n  CasesLinkedError = 'These cases are already linked',\n  UnlinkCaseSelectionError = 'Select a case to unlink before continuing',\n  LinkCasesNavigationError = 'Please select Next to link case(s)',\n  UnlinkCasesNavigationError = 'Please select Next to unlink case(s)',\n  BackNavigationError = 'Please select Back to go to the previous page',\n  otherDescriptionError = 'Provide a description of the reason',\n  otherDescriptionMaxLengthError = 'Description provided must be 100 characters or fewer',\n}\n\nexport enum LinkedCasesEventTriggers {\n  LINK_CASES = 'Link cases',\n  MANAGE_CASE_LINKS = 'Manage case links'\n}\n\nexport enum Patterns {\n  CASE_REF = '((([0-9]{4})(?: |-)?)){4}'\n}\n","<div>\n  <div *ngIf=\"serverLinkedApiError\">\n    <h1 class=\"govuk-heading-xl\">There is a problem</h1>\n    <p id=\"unlink-cases-error\" class=\"govuk-error-message\" *ngIf=\"serverLinkedApiError\">\n      <span class=\"govuk-visually-hidden\">Error:</span> {{serverLinkedApiError.message}}\n    </p>\n    <p class=\"govuk-body\">\n      <button type=\"button\" class=\"govuk-js-link\" (click)=\"onBack()\">Go back to the Linked cases tab</button>\n    </p>\n  </div>\n  <div *ngIf=\"!serverLinkedApiError\">\n    <h1 class=\"govuk-heading-xl\">Before you start</h1>\n    <div id=\"link-cases-journey\" *ngIf=\"isLinkCasesJourney\">\n      <p class=\"govuk-body\">If a group of linked cases has a lead case, you must start from the lead case.</p>\n      <p class=\"govuk-body\">If the cases to be linked has no lead, you can start the linking journey from any of those\n        cases.</p>\n    </div>\n    <div id=\"manage-link-cases-journey\" *ngIf=\"!isLinkCasesJourney\">\n      <p class=\"govuk-body\">If there are linked hearings for the case you need to un-link then you must unlink the\n        hearing first.</p>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Output } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ErrorMessage, Journey } from '../../../../../domain';\nimport { LinkedCasesState } from '../../domain';\nimport { LinkedCasesPages } from '../../enums';\nimport { LinkedCasesService } from '../../services/linked-cases.service';\nimport { AbstractJourneyComponent } from '../../../base-field';\nimport { MultipageComponentStateService } from '../../../../../services';\n\n@Component({\n  selector: 'ccd-linked-cases-before-you-start',\n  templateUrl: './before-you-start.component.html',\n  standalone: false\n})\nexport class BeforeYouStartComponent extends AbstractJourneyComponent implements Journey {\n\n  @Output()\n  public linkedCasesStateEmitter: EventEmitter<LinkedCasesState> = new EventEmitter<LinkedCasesState>();\n\n  public isLinkCasesJourney = false;\n  public errorMessages: ErrorMessage[];\n  public serverLinkedApiError: { id: string, message: string };\n\n  constructor(private readonly router: Router,\n    private readonly linkedCasesService: LinkedCasesService,\n    multipageComponentStateService: MultipageComponentStateService) {\n    super(multipageComponentStateService);\n    this.isLinkCasesJourney = this.linkedCasesService.isLinkedCasesEventTrigger;\n    this.serverLinkedApiError = this.linkedCasesService.serverLinkedApiError;\n    const linkedCaseReferenceIds = this.linkedCasesService.caseFieldValue.filter((item) => item).map((item) => item.id);\n    if (this.linkedCasesService.initialCaseLinks.length !== (this.linkedCasesService.caseFieldValue.length + this.linkedCasesService.casesToUnlink.length)) {\n      this.linkedCasesService.linkedCases = this.linkedCasesService.linkedCases.filter((item) => linkedCaseReferenceIds.indexOf(item.caseReference) !== -1);\n    }\n    if (this.linkedCasesService.linkedCases.length === 0 && this.linkedCasesService.caseFieldValue.length !== 0 && !this.linkedCasesService.hasContinuedFromStart) {\n      this.linkedCasesService.caseFieldValue.forEach((item) => {\n        this.linkedCasesService.initialCaseLinkRefs.push(item.id);\n      });\n    } else {\n      //prevent unsubmitted linked cases from being applied as if they are the initial linked cases\n      if (!this.linkedCasesService.hasContinuedFromStart){\n        this.linkedCasesService.linkedCases.forEach((item) => {\n          this.linkedCasesService.initialCaseLinkRefs.push(item.caseReference);\n        });\n        this.linkedCasesService.initialCaseLinks = this.linkedCasesService.linkedCases;\n      }\n    }\n  }\n\n  public next(): void {\n    this.linkedCasesService.hasContinuedFromStart = true;\n    this.linkedCasesStateEmitter.emit({\n      currentLinkedCasesPage: LinkedCasesPages.BEFORE_YOU_START,\n      errorMessages: this.errorMessages,\n      navigateToNextPage: true\n    });\n\n    const isAnArray: boolean = Array.isArray(this.errorMessages);\n    const isNotAnArray: boolean = !isAnArray;\n    const isValid: boolean = (isAnArray && this.errorMessages.length === 0) || isNotAnArray;\n\n    if (isValid) {\n      super.next();\n    }\n  }\n\n  public onBack(): void {\n    this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseJurisdictionID, this.linkedCasesService.caseDetails.case_type, this.linkedCasesService.caseId], { fragment: 'Linked cases' });\n  }\n}\n","<div class=\"govuk-grid-row\">\n  <div class=\"govuk-grid-column-full\">\n    <h1 class=\"govuk-heading-xl\">Check your answers</h1>\n    <!-- Top table for manage link cases journey -->\n    <table id=\"cases-to-unlink-table\" class=\"govuk-table\" *ngIf=\"!isLinkCasesJourney\">\n      <caption class=\"govuk-table__caption govuk-table__caption--m\">Cases to unlink</caption>\n      <thead class=\"govuk-table__head\">\n        <tr class=\"govuk-table__row\">\n          <th scope=\"col\" class=\"govuk-table__header\">Case name and number</th>\n          <th scope=\"col\" class=\"govuk-table__header\"></th>\n        </tr>\n      </thead>\n      <tbody class=\"govuk-table__body\">\n        <tr class=\"govuk-table__row\" *ngFor=\"let case of casesToUnlink\">\n          <td class=\"govuk-table__cell\">\n            {{case.caseName}}  <br> {{case.caseReference | ccdCaseReference}}\n          </td>\n          <td class=\"govuk-table__cell\">\n            <a href=\"#\" class=\"govuk-link govuk-link--no-visited-state float-right\" (click)=\"onChange(); $event.preventDefault()\">Change</a>\n          </td>\n        </tr>\n        <tr class=\"govuk-table__row\" *ngIf=\"!casesToUnlink.length\">\n          <td class=\"govuk-table__cell\" colspan=\"2\">\n            None\n          </td>\n        </tr>\n      </tbody>\n    </table>\n    <!-- Table for both link case and manage link case journeys -->\n    <table id=\"linked-cases-table\" class=\"govuk-table\">\n      <caption class=\"govuk-table__caption govuk-table__caption--m\">{{linkedCasesTableCaption}}</caption>\n      <thead class=\"govuk-table__head\">\n        <tr class=\"govuk-table__row\">\n          <th scope=\"col\" class=\"govuk-table__header\">Case name and number</th>\n          <th scope=\"col\" class=\"govuk-table__header\">Reasons for case link</th>\n          <td scope=\"col\" class=\"govuk-table__header\"></td>\n          <th scope=\"col\" class=\"govuk-table__header\" *ngIf=\"isLinkCasesJourney\"></th>\n        </tr>\n      </thead>\n      <tbody class=\"govuk-table__body\">\n        <tr class=\"govuk-table__row\" *ngFor=\"let case of linkedCases\">\n          <td class=\"govuk-table__cell\">\n            <span>{{case.caseName}}  <br> {{case.caseReference | ccdCaseReference}} </span>\n          </td>\n          <td class=\"govuk-table__cell\">\n            <span *ngFor=\"let reason of case.reasons; last as isLast\">\n              <span *ngIf=\"isLinkCasesJourney\">\n                {{reason | ccdLinkCasesReasonValue}}\n              </span>\n              <span *ngIf=\"!isLinkCasesJourney\">\n                {{reason.Reason.value | ccdLinkCasesReasonValue}}\n              </span>\n              <br *ngIf=\"!isLast\">\n            </span>\n          </td>\n          <td class=\"govuk-table__cell\"></td>\n          <td class=\"govuk-table__cell\" *ngIf=\"isLinkCasesJourney\">\n            <a href=\"#\" class=\"govuk-link govuk-link--no-visited-state float-right\" (click)=\"onChange(); $event.preventDefault()\">Change</a>\n          </td>\n        </tr>\n        <tr class=\"govuk-table__row\" *ngIf=\"!linkedCases.length\">\n          <td class=\"govuk-table__cell\" colspan=\"4\">\n            None\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { CaseLink, LinkedCasesState } from '../../domain';\nimport { LinkedCasesPages } from '../../enums';\nimport { LinkedCasesService } from '../../services/linked-cases.service';\nimport { AbstractJourneyComponent } from '../../../base-field';\nimport { MultipageComponentStateService } from '../../../../../services';\nimport { Journey } from '../../../../../domain';\n\n@Component({\n  selector: 'ccd-linked-cases-check-your-answers',\n  templateUrl: './check-your-answers.component.html',\n  styleUrls: ['./check-your-answers.component.scss'],\n  standalone: false\n})\nexport class CheckYourAnswersComponent extends AbstractJourneyComponent implements OnInit, Journey {\n\n  @Output()\n  public linkedCasesStateEmitter: EventEmitter<LinkedCasesState> = new EventEmitter<LinkedCasesState>();\n\n  public linkedCases: CaseLink[];\n  public casesToUnlink: CaseLink[];\n  public isLinkCasesJourney: boolean;\n  public linkedCasesTableCaption: string;\n\n  constructor(private readonly linkedCasesService: LinkedCasesService, multipageComponentStateService: MultipageComponentStateService) {\n    super(multipageComponentStateService);\n  }\n\n  public ngOnInit(): void {\n    this.ensureDataIntegrity();\n    this.isLinkCasesJourney = this.linkedCasesService.isLinkedCasesEventTrigger;\n    this.linkedCasesTableCaption = this.linkedCasesService.isLinkedCasesEventTrigger ? 'Proposed case links' : 'Linked cases';\n    this.linkedCases = this.linkedCasesService.linkedCases.filter(linkedCase => !linkedCase.unlink);\n    this.casesToUnlink = this.linkedCasesService.linkedCases.filter(linkedCase => linkedCase.unlink && linkedCase.unlink === true);\n  }\n\n  public ensureDataIntegrity(){\n    for (const link in this.linkedCasesService.casesToUnlink){\n      this.linkedCasesService.linkedCases?.forEach((linkedCase) => {\n        if (linkedCase?.caseReference === this.linkedCasesService.casesToUnlink[link]){\n          linkedCase.unlink = true;\n        }\n      });\n    }\n  }\n\n  public onChange(): void {\n    this.linkedCasesService.editMode = true;\n    this.linkedCasesStateEmitter.emit({\n      currentLinkedCasesPage: LinkedCasesPages.CHECK_YOUR_ANSWERS,\n      navigateToPreviousPage: true,\n      navigateToNextPage: true\n    });\n  }\n\n  public next() {\n    this.linkedCasesStateEmitter.emit({\n      currentLinkedCasesPage: LinkedCasesPages.CHECK_YOUR_ANSWERS,\n      navigateToPreviousPage: false,\n      navigateToNextPage: true\n    });\n\n    super.next();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\n\n@Injectable({ providedIn: 'root' })\nexport class ValidatorsUtils {\n  public numberLengthValidator(inputLength: number): ValidatorFn {\n    return (control: AbstractControl): { [key: string]: any } | null => {\n      return control.value.length !== inputLength ? { isValid: false } : null;\n    };\n  }\n  public formArraySelectedValidator(): ValidatorFn {\n    return (control: AbstractControl): { [key: string]: any } | null => {\n      return control.value.every((option) => !option.selected) ? { isValid: false } : null;\n    };\n  }\n  public regexPattern(regexPattern: string): ValidatorFn {\n    return (control: AbstractControl): { [key: string]: any } | null => {\n      const regex = new RegExp(regexPattern);\n      return regex.test(control.value) ? null : { isValid: false };\n    };\n  }\n}\n","<div class=\"govuk-grid-row\">\n  <div class=\"govuk-grid-column-full\">\n    <div>\n      <span class=\"govuk-caption-l\">Link cases to {{caseName}} {{caseId | ccdCaseReference}}</span>\n      <h1 class=\"govuk-heading-xl\">Select a&nbsp;case you want to link to this case</h1>\n      <div class=\"form-group\" [formGroup]=\"linkCaseForm\" *ngIf=\"linkCaseForm\">\n        <div class=\"govuk-form-group\" id=\"caseNumber\" [ngClass]=\"{'govuk-form-group--error': !!caseNumberError}\">\n          <h3 class=\"govuk-heading-s\">Enter case reference</h3>\n          <span class=\"govuk-error-message\" *ngIf=\"caseNumberError\">\n            <span class=\"govuk-visually-hidden\">Error:</span> {{caseNumberError}}\n          </span>\n          <input class=\"govuk-input govuk-input--width-20\" formControlName=\"caseNumber\" id=\"width-20\" name=\"width-20\"\n            type=\"text\">\n        </div>\n        <div [ngClass]=\"{'govuk-form-group--error': !!caseReasonError}\" class=\"govuk-!-margin-top-3\">\n          <h3 class=\"govuk-heading-s\">Why should these cases be linked?</h3>\n          <div id=\"waste-hint\" class=\"govuk-hint\">\n            Select all that apply.\n          </div>\n          <span class=\"govuk-error-message\" *ngIf=\"caseReasonError\">\n            <span class=\"govuk-visually-hidden\">Error:</span> {{caseReasonError}}\n          </span>\n          <div class=\"govuk-checkboxes\" data-module=\"govuk-checkboxes\" formArrayName=\"reasonType\" id=\"caseReason\">\n            <div class=\"govuk-checkboxes__item\" *ngFor=\"let reason of linkCaseReasons;index as pos\" [formGroupName]=\"pos\">\n              <input class=\"govuk-checkboxes__input\" id=\"{{reason.key}}\" formControlName=\"selected\" name=\"pos\"\n                type=\"checkbox\" [value]=\"reason.value_en\" (change)=\"toggleLinkCaseReasonOtherComments($event)\">\n              <label class=\"govuk-label govuk-checkboxes__label\" for=\"{{reason.key}}\">{{reason.value_en}}</label>\n            </div>\n          </div>\n        </div>\n        <div id=\"other-description-char-limit-error\" [ngClass]=\"{'govuk-form-group--error': !!caseReasonCommentsError}\" class=\"govuk-!-margin-top-3\" *ngIf=\"showComments\">\n          <h3 class=\"govuk-heading-s\">Comments</h3>\n          <span class=\"govuk-error-message\" *ngIf=\"caseReasonCommentsError\">\n            <span class=\"govuk-visually-hidden\">Error:</span> {{caseReasonCommentsError}}\n          </span>\n          <textarea class=\"govuk-textarea govuk-input--width-30\" id=\"otherDescription\"\n            name=\"otherDescription\" formControlName=\"otherDescription\" rows=\"5\"\n            aria-describedby=\"other-description-hint other-description-char-limit-info other-description-char-limit-error\">\n          </textarea>\n          <div id=\"other-description-char-limit-info\" aria-live=\"polite\" class=\"govuk-hint govuk-character-count__message\">\n            You can enter up to 100 characters\n          </div>\n        </div>\n        <br><br>\n        <span class=\"govuk-error-message\" *ngIf=\"caseSelectionError\">\n          <span class=\"govuk-visually-hidden\">Error:</span> {{caseSelectionError}}\n        </span>\n        <button id=\"propose\" type=\"button\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\"\n          (click)=\"submitCaseInfo()\">Propose case link</button>\n      </div>\n      <hr>\n      <br><br>\n      <div class=\"govuk-form-group\" id=\"caseNumber\" [ngClass]=\"{'govuk-form-group--error': !!noSelectedCaseError}\">\n        <span class=\"govuk-error-message\" *ngIf=\"noSelectedCaseError\">\n          <span class=\"govuk-visually-hidden\">Error:</span> {{noSelectedCaseError}}\n        </span>\n        <table class=\"govuk-table\">\n          <caption class=\"govuk-table__caption govuk-table__caption--m\">Proposed case links </caption>\n          <thead class=\"govuk-table__head\">\n            <tr class=\"govuk-table__row\">\n              <th scope=\"col\" class=\"govuk-table__header\" width=\"300\">Case name and number</th>\n              <th scope=\"col\" class=\"govuk-table__header\" width=\"150\">Case type </th>\n              <th scope=\"col\" class=\"govuk-table__header\" width=\"200\">Service</th>\n              <th scope=\"col\" class=\"govuk-table__header\" width=\"200\">State</th>\n              <th scope=\"col\" class=\"govuk-table__header\" width=\"400\">Reasons for case link</th>\n              <th scope=\"col\" class=\"govuk-table__header\" width=\"50\"></th>\n            </tr>\n          </thead>\n          <tbody class=\"govuk-table__body\">\n            <tr class=\"govuk-table__row\" *ngFor=\"let case of selectedCases; let pos = index\">\n              <td class=\"govuk-table__cell\">\n                <div class=\"govuk-form-group--error\"\n                  [ngClass]=\"{'table-group-error':caseSelectionError && case.caseReference === linkCaseForm.value.caseNumber}\">\n                </div>\n                <span>{{case.caseName}} <br> {{case.caseReference | ccdCaseReference}}</span>\n              </td>\n              <td class=\"govuk-table__cell\" [title]=\"case.caseTypeDescription\">{{case.caseType}}</td>\n              <td class=\"govuk-table__cell\">{{case.caseService}}</td>\n              <td class=\"govuk-table__cell\" [title]=\"case.caseStateDescription\">{{case.caseState}}</td>\n              <td class=\"govuk-table__cell\"><span\n                  *ngFor=\"let reason of case.reasons\">{{reason | ccdLinkCasesReasonValue}}<br></span></td>\n              <td class=\"govuk-table__cell\"><a [attr.id]=\"case.caseReference\" (click)=\"onSelectedLinkedCaseRemove(pos, case.caseReference);\"\n                  class=\"govuk-link no-visited-state\">Remove</a></td>\n            </tr>\n            <tr class=\"govuk-table__row\" *ngIf=\"!selectedCases.length\">\n              <td class=\"govuk-table__cell\" colspan=\"6\">\n                None\n              </td>\n            </tr>\n          </tbody>\n        </table>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport moment from 'moment';\nimport { throwError } from 'rxjs';\nimport { CaseView, ErrorMessage, HttpError, Journey } from '../../../../../domain';\nimport { LovRefDataModel } from '../../../../../services/common-data-service/common-data-service';\nimport { CasesService } from '../../../../case-editor/services/cases.service';\nimport { LinkedCasesState } from '../../domain';\nimport {\n  CaseLink,\n  CCDCaseLinkType,\n  LinkCaseReason,\n  LinkReason\n} from '../../domain/linked-cases.model';\nimport { LinkedCasesErrorMessages, LinkedCasesPages, Patterns } from '../../enums';\nimport { LinkedCasesService } from '../../services/linked-cases.service';\nimport { ValidatorsUtils } from '../../utils/validators.utils';\nimport { AbstractJourneyComponent } from '../../../base-field';\nimport { MultipageComponentStateService } from '../../../../../services';\n\n@Component({\n  selector: 'ccd-link-cases',\n  styleUrls: ['./link-cases.component.scss'],\n  templateUrl: './link-cases.component.html',\n  standalone: false\n})\nexport class LinkCasesComponent extends AbstractJourneyComponent implements OnInit, Journey {\n  @Output()\n  public linkedCasesStateEmitter: EventEmitter<LinkedCasesState> = new EventEmitter<LinkedCasesState>();\n\n  public errorMessages: ErrorMessage[] = [];\n  public linkCaseForm: FormGroup;\n  public selectedCases: CaseLink[] = [];\n  public caseNumberError: string;\n  public caseReasonError: string;\n  public caseReasonCommentsError: string;\n  public caseSelectionError: string;\n  public noSelectedCaseError: string;\n  public caseId: string;\n  public caseName: string;\n  public linkCaseReasons: LovRefDataModel[];\n  public showComments = false;\n  private readonly ISO_FORMAT = 'YYYY-MM-DDTHH:mm:ss.SSS';\n  constructor(\n    private readonly casesService: CasesService,\n    private readonly fb: FormBuilder,\n    private readonly validatorsUtils: ValidatorsUtils,\n    private readonly linkedCasesService: LinkedCasesService,\n    multipageComponentStateService: MultipageComponentStateService\n  ) {\n    super(multipageComponentStateService);\n  }\n\n  public ngOnInit(): void {\n    this.caseId = this.linkedCasesService.caseId;\n    this.caseName = this.linkedCasesService.caseName;\n    this.linkCaseReasons = this.linkedCasesService.linkCaseReasons;\n    this.initForm();\n    if (!this.linkedCasesService.hasNavigatedInJourney) {\n      this.linkedCasesService.linkedCases = [];\n    }\n    if (this.linkedCasesService.editMode || this.linkedCasesService.linkedCases.length) {\n      // this may have includes the currently added one but yet to be submitted.\n      this.selectedCases = this.linkedCasesService.linkedCases.filter((item) => !this.linkedCasesService.initialCaseLinkRefs.includes(item.caseReference));\n    } else if (this.linkedCasesService.initialCaseLinks.length !== this.linkedCasesService.caseFieldValue.length) {\n      this.linkedCasesService.linkedCases = this.linkedCasesService.initialCaseLinks;\n    }\n  }\n\n  public initForm(): void {\n    const caseNumber = this.linkedCasesService.storedCaseNumber ?? '';\n    this.linkCaseForm = this.fb.group({\n      caseNumber: [caseNumber, [Validators.minLength(16), this.validatorsUtils.regexPattern(Patterns.CASE_REF)]],\n      reasonType: this.getReasonTypeFormArray,\n      otherDescription: ['', [Validators.maxLength(100)]]\n    });\n  }\n\n  public get getReasonTypeFormArray(): FormArray {\n    return this.fb.array(\n      this.linkCaseReasons.map((val) =>\n        this.fb.group({\n          key: [val.key],\n          value_en: [val.value_en],\n          value_cy: [val.value_cy],\n          hint_text_en: [val.hint_text_en],\n          hint_text_cy: [val.hint_text_cy],\n          lov_order: [val.lov_order],\n          parent_key: [val.parent_key],\n          selected: [!!val.selected],\n        })\n      ),\n      this.validatorsUtils.formArraySelectedValidator()\n    );\n  }\n\n  public toggleLinkCaseReasonOtherComments(event: any): void {\n    this.linkCaseReasons.find((reason) => reason.value_en === event.target.value).selected = event.target.checked;\n    this.showComments = this.linkCaseReasons.find((reason) => reason.value_en === 'Other')?.selected;\n  }\n\n  public submitCaseInfo(): void {\n    this.errorMessages = [];\n    this.caseReasonError = null;\n    this.caseReasonCommentsError = null;\n    this.caseNumberError = null;\n    this.caseSelectionError = null;\n    this.noSelectedCaseError = null;\n    if (\n      this.linkCaseForm.valid &&\n      !this.isCaseSelected(this.selectedCases) &&\n      !this.isCaseSelected(this.linkedCasesService.linkedCases) &&\n      !this.isCaseInInitial(this.linkCaseForm.value.caseNumber) &&\n      !this.isCaseSelectedSameAsCurrentCase() &&\n      !this.isOtherOptionSelectedButOtherDescriptionNotEntered()\n    ) {\n      this.linkedCasesService.storedCaseNumber = '';\n      this.linkedCasesService.hasNavigatedInJourney = true;\n      this.getCaseInfo();\n    } else {\n      this.showErrorInfo();\n    }\n  }\n\n  public isCaseSelected(linkedCases: CaseLink[]): boolean {\n    if (linkedCases.length === 0) {\n      return false;\n    }\n    const caseNumber = this.linkCaseForm.value.caseNumber;\n    return !!linkedCases.find(\n      (caseLink) => caseLink.caseReference.split('-').join('').trim() === caseNumber.split('-').join('').trim()\n    );\n  }\n\n  public isCaseInInitial(proposedCaseLink: string){\n    if (proposedCaseLink){\n      // initial case links will not have - in them, account for the case where a user may type with -\n      proposedCaseLink = proposedCaseLink.replace(/-/g, '').trim();\n      const initialCaseLinks = this.linkedCasesService.initialCaseLinkRefs || [];\n      return initialCaseLinks.includes(proposedCaseLink);\n    }\n    return false;\n  }\n\n  private isCaseSelectedSameAsCurrentCase(): boolean {\n    return this.linkCaseForm.value.caseNumber.split('-').join('').trim() === this.linkedCasesService.caseId.split('-').join('').trim();\n  }\n\n  private isOtherOptionSelectedButOtherDescriptionNotEntered(): boolean {\n    return this.showComments && this.linkCaseForm.value.otherDescription.trim().length === 0;\n  }\n\n  public showErrorInfo(): void {\n    if (this.linkCaseForm.controls.caseNumber.invalid) {\n      this.caseNumberError = LinkedCasesErrorMessages.CaseNumberError;\n      this.errorMessages.push({\n        title: 'dummy-case-number',\n        description: LinkedCasesErrorMessages.CaseNumberError,\n        fieldId: 'caseNumber'\n      });\n    }\n    if (this.linkCaseForm.controls.reasonType.invalid) {\n      this.caseReasonError = LinkedCasesErrorMessages.ReasonSelectionError;\n      this.errorMessages.push({\n        title: 'dummy-case-reason',\n        description: LinkedCasesErrorMessages.ReasonSelectionError,\n        fieldId: 'caseReason'\n      });\n    }\n    if (this.linkCaseForm.controls.reasonType.valid\n      && this.linkCaseReasons.find((reason) => reason.value_en === 'Other').selected) {\n      if (this.linkCaseForm.controls.otherDescription.value.trim().length === 0) {\n        this.caseReasonCommentsError = LinkedCasesErrorMessages.otherDescriptionError;\n        this.errorMessages.push({\n          title: 'dummy-case-reason-comments',\n          description: LinkedCasesErrorMessages.otherDescriptionError,\n          fieldId: 'otherDescription'\n        });\n      }\n      if (this.linkCaseForm.controls.otherDescription.value.trim().length > 100) {\n        this.caseReasonCommentsError = LinkedCasesErrorMessages.otherDescriptionMaxLengthError;\n        this.errorMessages.push({\n          title: 'dummy-case-reason-comments',\n          description: LinkedCasesErrorMessages.otherDescriptionMaxLengthError,\n          fieldId: 'otherDescription'\n        });\n      }\n    }\n    if (this.isCaseSelected(this.selectedCases)) {\n      this.caseSelectionError = LinkedCasesErrorMessages.CaseProposedError;\n      this.errorMessages.push({\n        title: 'dummy-case-number',\n        description: LinkedCasesErrorMessages.CaseProposedError,\n        fieldId: 'caseNumber'\n      });\n    }\n    if (this.isCaseSelected(this.linkedCasesService.linkedCases)) {\n      this.caseSelectionError = LinkedCasesErrorMessages.CasesLinkedError;\n      this.errorMessages.push({\n        title: 'dummy-case-number',\n        description: LinkedCasesErrorMessages.CasesLinkedError,\n        fieldId: 'caseNumber'\n      });\n    }\n    if (this.isCaseInInitial(this.linkCaseForm.value.caseNumber)) {\n      this.caseSelectionError = LinkedCasesErrorMessages.CasesLinkedError;\n      this.errorMessages.push({\n        title: 'dummy-case-number',\n        description: LinkedCasesErrorMessages.CasesLinkedError,\n        fieldId: 'caseNumber'\n      });\n    }\n    if (this.linkCaseForm.value.caseNumber.split('-').join('').trim() === this.linkedCasesService.caseId.split('-').join('').trim()) {\n      this.errorMessages.push({\n        title: 'dummy-case-number',\n        description: LinkedCasesErrorMessages.ProposedCaseWithIn,\n        fieldId: 'caseNumber'\n      });\n    }\n    window.scrollTo(0, 0);\n    this.emitLinkedCasesState(false);\n  }\n\n  public getCaseInfo(): void {\n    const caseNumberData = this.linkCaseForm.value.caseNumber.replace(/[- ]/g, '').trim();\n    this.casesService\n      .getCaseViewV2(caseNumberData)\n      .subscribe(\n        (caseView: CaseView) => {\n          this.linkedCasesService.caseDetails = caseView;\n          const caseLink: CaseLink = {\n            caseReference: caseView.case_id,\n            reasons: this.getSelectedCaseReasons(),\n            createdDateTime: moment(new Date()).format(this.ISO_FORMAT),\n            caseType: caseView.case_type.name || '',\n            caseTypeDescription: caseView.case_type.description || '',\n            caseState: caseView.state.name || '',\n            caseStateDescription: caseView.state.description || '',\n            caseService: caseView.case_type && caseView.case_type.jurisdiction && caseView.case_type.jurisdiction.description || '',\n            caseName: this.linkedCasesService.getCaseName(caseView)\n          };\n          const ccdApiCaseLinkData: CCDCaseLinkType = {\n            CaseReference: caseView.case_id,\n            CaseType: caseView.case_type.id,\n            CreatedDateTime: moment(new Date()).format(this.ISO_FORMAT),\n            ReasonForLink: this.getSelectedCCDTypeCaseReason()\n          };\n          this.linkedCasesService.caseFieldValue.push({ id: caseView.case_id.toString(), value: ccdApiCaseLinkData });\n          this.selectedCases.push(caseLink);\n          this.linkCaseReasons.forEach((reason) => reason.selected = false);\n          this.initForm();\n          this.emitLinkedCasesState(false);\n        },\n        (error: HttpError) => {\n          this.caseNumberError = LinkedCasesErrorMessages.CaseCheckAgainError;\n          this.errorMessages.push({\n            title: 'dummy-case-number',\n            description: LinkedCasesErrorMessages.CaseCheckAgainError,\n            fieldId: 'caseNumber'\n          });\n          this.emitLinkedCasesState(false);\n          window.scrollTo(0, 0);\n          return throwError(error);\n        }\n      );\n  }\n\n  // Return linked cases state and error messages to the parent\n  public emitLinkedCasesState(isNavigateToNextPage: boolean): void {\n    this.linkedCasesStateEmitter.emit({\n      currentLinkedCasesPage: LinkedCasesPages.LINK_CASE,\n      errorMessages: this.errorMessages,\n      navigateToNextPage: isNavigateToNextPage\n    });\n  }\n\n  public getSelectedCaseReasons(): LinkReason[] {\n    const selectedReasons = [];\n    this.linkCaseForm.controls.reasonType.value.forEach(\n      (selectedReason: LinkCaseReason) => {\n        if (selectedReason.selected) {\n          selectedReasons.push({\n            Reason: selectedReason.key,\n            OtherDescription: selectedReason.value_en === 'Other'\n              ? this.linkCaseForm.controls.otherDescription.value\n              : ''\n          } as LinkReason);\n        }\n      }\n    );\n    return selectedReasons;\n  }\n\n  public getSelectedCCDTypeCaseReason(): LinkReason[] {\n    const selectedReasons = [];\n    this.linkCaseForm.controls.reasonType.value.forEach(\n      (selectedReason: LinkCaseReason) => {\n        if (selectedReason.selected) {\n          selectedReasons.push({\n            value: {\n              Reason: selectedReason.key,\n              OtherDescription: selectedReason.value_en === 'Other'\n                ? this.linkCaseForm.controls.otherDescription.value\n                : ''\n            }\n          });\n        }\n      }\n    );\n    return selectedReasons;\n  }\n\n  public onSelectedLinkedCaseRemove(pos, selectedCaseReference): void {\n    const caseFieldValue = this.linkedCasesService.caseFieldValue || [];\n    const updatedItems = caseFieldValue.filter((item) => item.value && item.value.CaseReference !== selectedCaseReference);\n    if (updatedItems) {\n      this.linkedCasesService.caseFieldValue = updatedItems;\n    }\n    this.selectedCases.splice(pos, 1);\n    this.linkedCasesService.linkedCases = this.linkedCasesService.linkedCases.filter((item) => item.caseReference !== selectedCaseReference);\n  }\n\n  public onNext(): void {\n    this.errorMessages = [];\n    this.caseReasonError = null;\n    this.caseNumberError = null;\n    this.caseSelectionError = null;\n    this.noSelectedCaseError = null;\n    let navigateToNextPage = true;\n    this.linkedCasesService.storedCaseNumber = this.linkCaseForm.value.caseNumber ?? '';\n    if (this.selectedCases.length) {\n      this.linkedCasesService.linkedCases = this.selectedCases;\n    } else {\n      this.noSelectedCaseError = LinkedCasesErrorMessages.CaseSelectionError;\n      this.errorMessages.push({\n        title: 'dummy-case-selection',\n        description: LinkedCasesErrorMessages.CaseSelectionError,\n        fieldId: 'caseReason'\n      });\n      navigateToNextPage = false;\n    }\n    this.emitLinkedCasesState(navigateToNextPage);\n  }\n\n  public ngOnDestroy(): void {\n    if (this.selectedCases.length > 0) {\n      this.linkedCasesService.linkedCases = this.selectedCases;\n    }\n  }\n\n  public next() {\n    this.onNext();\n\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n}\n","<button type=\"button\" *ngIf=\"!noLinkedCases && !isServerError\" id=\"show-hide-link\" class=\"govuk-js-link\"\n  (click)=\"onClick()\">{{showHideLinkText}}</button>\n<table *ngIf=\"(getLinkedCasesResponse && showHideLinkText === 'Hide') || noLinkedCases\"\n  aria-describedby=\"table to display cases linked from\">\n  <thead class=\"govuk-table__head\">\n    <tr class=\"govuk-table__row\">\n      <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case name and number</th>\n      <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case type </th>\n      <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Service</th>\n      <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">State</th>\n      <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Reasons for case link</th>\n    </tr>\n  </thead>\n  <tbody class=\"govuk-table__body\" *ngIf=\"getLinkedCasesResponse && (!isServerError && !isServerReasonCodeError)\">\n    <tr class=\"govuk-table__row\" *ngFor=\"let case of getLinkedCasesResponse\">\n      <td class=\"govuk-table__header case-table-column width-20\">\n        <p class=\"govuk-body\"><a target=\"_blank\" class=\"govuk-link\" href=\"cases/case-details/{{ case.ccdJurisdiction }}/{{ case.ccdCaseType }}/{{case.caseReference}}\"\n            rel=\"noopener\"><span>{{case.caseNameHmctsInternal}} <br>\n              {{case.caseReference | ccdCaseReference}}</span></a></p>\n      </td>\n      <td class=\"case-table-column\"><span [title]=\"case.ccdCaseTypeDescription\">{{case.ccdCaseType}}</span></td>\n      <td class=\"case-table-column\"><span>{{case.ccdJurisdiction}}</span></td>\n      <td class=\"case-table-column\"><span [title]=\"case.stateDescription\">{{case.state}}</span></td>\n      <td class=\"case-table-column\" *ngFor=\"let details of case.linkDetails\">\n        <span *ngFor=\"let reason of details.reasons; let i = index; let isLast = last\">\n          {{reason | ccdLinkCasesFromReasonValue}}<span><a class=\"govuk-!-padding-left-1\"\n            href=\"cases/case-details/{{ case.ccdJurisdiction }}/{{ case.ccdCaseType }}/{{ case.caseReference }}\"\n            *ngIf=\"hasLeadCaseOrConsolidated(reason.reasonCode)\">{{getCaseReferenceLink(case.caseReference)}}</a></span>\n        <br *ngIf=\"!isLast\" />\n        </span>\n      </td>\n    </tr>\n    <tr class=\"govuk-table__row\" *ngIf=\"noLinkedCases\">\n      <td class=\"govuk-table__cell\" colspan=\"5\">\n        None\n      </td>\n    </tr>\n    </tbody>  \n</table>\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { CaseView } from '../../../../../domain';\nimport { CaseField } from '../../../../../domain/definition';\nimport { LovRefDataModel } from '../../../../../services/common-data-service/common-data-service';\nimport { CasesService } from '../../../../case-editor/services/cases.service';\nimport { CaseLinkResponse, LinkedCasesResponse } from '../../domain/linked-cases.model';\nimport { LinkedCasesService } from '../../services';\n\n@Component({\n  selector: 'ccd-linked-cases-from-table',\n  templateUrl: './linked-cases-from-table.component.html',\n  styleUrls: ['./linked-cases-from-table.component.scss'],\n  standalone: false\n})\n\nexport class LinkedCasesFromTableComponent implements OnInit, AfterViewInit {\n  private static readonly CASE_NAME_MISSING_TEXT = 'Case name missing';\n  private static readonly CASE_CONSOLIDATED_REASON_CODE = 'CLRC015';\n  private static readonly CASE_PROGRESS_REASON_CODE = 'CLRC016';\n\n  @Input()\n  public caseField: CaseField;\n\n  @Output()\n  public notifyAPIFailure: EventEmitter<boolean> = new EventEmitter(false);\n  public caseDetails: CaseView;\n  public parentUrl: string;\n  public isLoaded: boolean;\n  public getLinkedCasesResponse: CaseLinkResponse[];\n  public linkedCaseReasons: LovRefDataModel[];\n\n  public caseId: string;\n  public showHideLinkText = 'Show';\n  public noLinkedCases = true;\n  public isServerError = false;\n  public isServerReasonCodeError = false;\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly casesService: CasesService,\n    private readonly linkedCasesService: LinkedCasesService,\n    ) {\n  }\n\n  public ngAfterViewInit(): void {\n    const labelField = document.getElementsByClassName('case-viewer-label');\n    if (labelField && labelField.length) {\n      labelField[0].replaceWith('');\n    }\n  }\n\n  public ngOnInit(): void {\n    this.fetchPageData();\n    if (this.route.snapshot.data.case) {\n      this.linkedCasesService.caseDetails = this.route.snapshot.data.case;\n    }\n    this.isServerReasonCodeError = this.linkedCasesService.isServerReasonCodeError;\n  }\n\n  public fetchPageData() {\n    this.caseId = this.route.snapshot.data.case.case_id;\n    this.getLinkedCases().subscribe({\n      next: response => {\n        this.isServerError = false;\n        this.getLinkedCasesResponse = response.linkedCases && response.linkedCases.map(item => {\n          const mappedCasetype = this.mapLookupIDToValueFromJurisdictions('CASE_TYPE', item.ccdCaseType);\n          const mappedCasetypeDescription = this.mapLookupIDToValueFromJurisdictions('CASE_TYPE_DESCRIPTION', item.ccdCaseType);\n          const mappedCaseState = this.mapLookupIDToValueFromJurisdictions('STATE', item.state);\n          const mappedCaseStateDescription = this.mapLookupIDToValueFromJurisdictions('STATE_DESCRIPTION', item.state);\n          const mappedCaseService = this.mapLookupIDToValueFromJurisdictions('JURISDICTION', item.ccdJurisdiction);\n          return {\n            ...item,\n            ccdCaseType: mappedCasetype,\n            ccdCaseTypeDescription: mappedCasetypeDescription,\n            ccdJurisdiction: mappedCaseService,\n            state: mappedCaseState,\n            stateDescription: mappedCaseStateDescription,\n            caseNameHmctsInternal: item.caseNameHmctsInternal || LinkedCasesFromTableComponent.CASE_NAME_MISSING_TEXT,\n            linkDetails: item.linkDetails\n          } as CaseLinkResponse;\n        });\n        this.noLinkedCases = !response.linkedCases || !response.linkedCases.length;\n      },\n      error: () => {\n        this.isServerError = true;\n        this.notifyAPIFailure.emit(true);\n      }\n    });\n  }\n\n  public getLinkedCases(): Observable<LinkedCasesResponse> {\n    return this.casesService.getLinkedCases(this.caseId);\n  }\n\n  public mapLookupIDToValueFromJurisdictions(fieldName, fieldValue): string {\n    return this.linkedCasesService.mapLookupIDToValueFromJurisdictions(fieldName, fieldValue);\n  }\n\n  public getCaseReferenceLink(caseRef: string): string {\n    return caseRef.slice(this.caseId.length - 4);\n  }\n\n  public hasLeadCaseOrConsolidated(reasonCode: string): boolean {\n    return reasonCode === LinkedCasesFromTableComponent.CASE_PROGRESS_REASON_CODE ||\n      reasonCode === LinkedCasesFromTableComponent.CASE_CONSOLIDATED_REASON_CODE;\n  }\n\n  public onClick(): void {\n    this.showHideLinkText = this.showHideLinkText === 'Show'\n      ? 'Hide'\n      : 'Show';\n  }\n}\n","<div class=\"govuk-grid-row govuk-!-margin-bottom-2\">\n  <div class=\"govuk-grid-column-full\">\n    <table *ngIf=\"linkedCasesFromResponse\" aria-describedby=\"table to display cases linked TO\">\n      <thead>\n        <tr class=\"govuk-table__row\">\n          <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case name and number</th>\n          <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case type </th>\n          <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Service</th>\n          <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">State</th>\n          <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Reasons for case link</th>\n        </tr>\n      </thead>\n      <tbody class=\"govuk-table__body\">\n        <tr class=\"govuk-table__row\" *ngFor=\"let case of linkedCasesFromResponse\">\n          <td>\n            <p class=\"govuk-body\"><a target=\"_blank\" href=\"cases/case-details/{{ case.service }}/{{ case.caseType }}/{{case.caseReference}}\"\n                rel=\"noopener\"><span class=\"govuk-link\">{{case.caseName}} <br>\n                  {{case.caseReference | ccdCaseReference}}</span></a></p>\n          </td>\n          <td><span [title]=\"case.caseTypeDescription\">{{case.caseType}}</span></td>\n          <td><span>{{case.service}}</span></td>\n          <td><span [title]=\"case.stateDescription\">{{case.state}}</span>\n          </td>\n          <td *ngIf=\"case && case.reasons\">\n            <span *ngFor=\"let reason of case.reasons; let i = index; let isLast = last\">\n              {{reason.value | ccdLinkCasesReasonValue}}<span><a class=\"govuk-!-padding-left-1\"\n                href=\"cases/case-details/{{ case.service }}/{{ case.caseType }}/{{ case.caseReference }}\"\n                  *ngIf=\"hasLeadCaseOrConsolidated(reason.value.Reason)\">{{getCaseRefereneLink(case.caseReference)}}</a></span>\n              <br *ngIf=\"!isLast\" />\n            </span>\n          </td>\n        </tr>\n        <tr class=\"govuk-table__row\" *ngIf=\"linkedCasesFromResponse.length === 0 && (!isServerError && !isServerReasonCodeError)\">\n          <td class=\"govuk-table__cell\" colspan=\"5\">\n            None\n          </td>\n        </tr>\n      </tbody>\n    </table>\n  </div>\n</div>\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { forkJoin, Observable } from 'rxjs';\nimport { CaseView } from '../../../../../domain';\nimport { CaseField, Jurisdiction } from '../../../../../domain/definition';\nimport { CasesService } from '../../../../case-editor/services/cases.service';\nimport { CaseLink, LinkReason } from '../../domain/linked-cases.model';\nimport { LinkedCasesService } from '../../services';\n\ninterface LinkedCasesResponse {\n  caseReference: string;\n  caseName: string;\n  caseType: string;\n  caseTypeDescription: string;\n  service: string;\n  state: string;\n  stateDescription: string;\n  reasons: string[];\n}\n\n@Component({\n  selector: 'ccd-linked-cases-to-table',\n  templateUrl: './linked-cases-to-table.component.html',\n  styleUrls: ['./linked-cases-to-table.component.scss'],\n  standalone: false\n})\nexport class LinkedCasesToTableComponent implements OnInit, AfterViewInit {\n\n  private static readonly CASE_CONSOLIDATED_REASON_CODE = 'CLRC015';\n  private static readonly CASE_PROGRESS_REASON_CODE = 'CLRC016';\n\n  @Input()\n  public caseField: CaseField;\n\n  @Output()\n  public notifyAPIFailure: EventEmitter<boolean> = new EventEmitter(false);\n  public caseDetails: CaseView;\n  public isLoaded: boolean;\n  public linkedCasesFromResponse: LinkedCasesResponse[] = [];\n  public caseId: string;\n  public isServerError = false;\n  public isServerReasonCodeError = false;\n  public jurisdictionsResponse: Jurisdiction[] = [];\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly linkedCasesService: LinkedCasesService,\n    private readonly casesService: CasesService) { }\n\n  public ngAfterViewInit(): void {\n    let labelField = document.getElementsByClassName('govuk-heading-l');\n    if (labelField && labelField.length) {\n      labelField[0].replaceWith('');\n    }\n    labelField = document.getElementsByClassName('heading-h2');\n    if (labelField && labelField.length) {\n      labelField[0].replaceWith('');\n    }\n  }\n\n  public ngOnInit(): void {\n    this.caseId = this.route.snapshot && this.route.snapshot.data && this.route.snapshot.data.case.case_id;\n    this.getAllLinkedCaseInformation();\n    if (this.route.snapshot.data.case) {\n      this.linkedCasesService.caseDetails = this.route.snapshot.data.case;\n    }\n    this.isServerReasonCodeError = this.linkedCasesService.isServerReasonCodeError;\n  }\n\n  public getCaseRefereneLink(caseRef: string): string {\n    return caseRef.slice(this.caseId.length - 4);\n  }\n\n  public sortLinkedCasesByReasonCode(searchCasesResponse): LinkedCasesResponse[] {\n    const topLevelresultArray = [];\n    let secondLevelresultArray = [];\n    searchCasesResponse.forEach((item: any) => {\n      const reasons = item && item.reasons || [];\n      const consolidatedStateReason = reasons.map(x => x).find(\n        reason => reason === LinkedCasesToTableComponent.CASE_CONSOLIDATED_REASON_CODE\n      );\n      const progressedStateReason = reasons.map(x => x).find(\n        reason => reason === LinkedCasesToTableComponent.CASE_PROGRESS_REASON_CODE\n      );\n      const arrayItem = { ...item };\n      if (progressedStateReason) {\n        topLevelresultArray.push(arrayItem);\n      } else if (consolidatedStateReason) {\n        secondLevelresultArray = [{ ...item }, ...secondLevelresultArray];\n      } else {\n        secondLevelresultArray.push({ ...item });\n      }\n    });\n    return topLevelresultArray.concat(secondLevelresultArray);\n  }\n\n  public getAllLinkedCaseInformation(): void {\n    const searchCasesResponse = [];\n    const caseFieldValue = this.caseField && this.caseField.id === 'caseLinks' ? this.caseField.value : [];\n    // Generate the list of observables\n    caseFieldValue.forEach(fieldValue => {\n      if (fieldValue && fieldValue.id) {\n        searchCasesResponse.push(this.casesService.getCaseViewV2(fieldValue.id));\n      }\n    });\n    if (searchCasesResponse.length) {\n      this.searchCasesByCaseIds(searchCasesResponse).subscribe((searchCases: any) => {\n        let casesResponse = [];\n        searchCases.forEach(response => {\n          casesResponse.push(this.mapResponse(response));\n        });\n        casesResponse = this.sortReasonCodes(casesResponse);\n        this.linkedCasesFromResponse = this.sortLinkedCasesByReasonCode(casesResponse);\n        this.isLoaded = true;\n        const caseLinks = this.linkedCasesFromResponse.map(item => {\n          return {\n            caseReference: item.caseReference,\n            caseName: item.caseName,\n            caseService: item.service,\n            caseType: item.caseType,\n            unlink: false,\n            reasons: item.reasons && item.reasons.map(reason => {\n              return {\n                Reason: reason\n              } as LinkReason;\n            }),\n          } as CaseLink;\n        });\n        this.linkedCasesService.initialCaseLinks = caseLinks;\n        this.linkedCasesService.linkedCases = caseLinks;\n        this.isServerError = false;\n      },\n      err => {\n          this.isServerError = true;\n          this.notifyAPIFailure.emit(true);\n        }\n      );\n    }\n  }\n\n  public sortReasonCodes(searchCasesResponse): LinkedCasesResponse[] {\n    searchCasesResponse.forEach((item: any) => {\n      if (item?.reasons?.length) {\n        item.reasons.forEach((reason) => {\n          reason.sortOrder = this.getReasonSortOrder(reason.value.Reason);\n        });\n        item.reasons = item.reasons.sort((a, b) => a.sortOrder - b.sortOrder);\n        item.sortOrder = item.reasons[0].sortOrder;\n      }\n    });\n    searchCasesResponse = searchCasesResponse?.sort((a, b) => a.sortOrder - b.sortOrder);\n    return searchCasesResponse;\n  }\n\n  public getReasonSortOrder(reasonCode: string): number {\n    if (reasonCode === LinkedCasesToTableComponent.CASE_PROGRESS_REASON_CODE) {\n      return 1;\n    } else if (reasonCode === LinkedCasesToTableComponent.CASE_CONSOLIDATED_REASON_CODE) {\n      return 2;\n    }\n    return 3;\n  }\n\n  public searchCasesByCaseIds(searchCasesResponse: any[]): Observable<unknown[]> {\n    return forkJoin(searchCasesResponse);\n  }\n\n  public hasLeadCaseOrConsolidated(reasonCode: string): boolean {\n    return reasonCode === LinkedCasesToTableComponent.CASE_PROGRESS_REASON_CODE ||\n      reasonCode === LinkedCasesToTableComponent.CASE_CONSOLIDATED_REASON_CODE;\n  }\n\n  public mapResponse(esSearchCasesResponse): LinkedCasesResponse {\n    const caseInfo = this.caseField.value.find(item => item.value && item.value.CaseReference === esSearchCasesResponse.case_id);\n    return caseInfo && {\n      caseReference: esSearchCasesResponse.case_id,\n      caseName: this.linkedCasesService.getCaseName(esSearchCasesResponse),\n      caseType: esSearchCasesResponse.case_type.name || '',\n      caseTypeDescription: esSearchCasesResponse.case_type.description || '',\n      service: esSearchCasesResponse.case_type && esSearchCasesResponse.case_type.jurisdiction.description || '',\n      state: esSearchCasesResponse.state.name || '',\n      stateDescription: esSearchCasesResponse.state.description || '',\n      reasons: caseInfo?.value?.ReasonForLink\n    } as LinkedCasesResponse;\n  }\n}\n","<div class=\"govuk-grid-row\">\n  <div class=\"govuk-grid-column-full\">\n    <h1 class=\"govuk-heading-xl\" *ngIf=\"serverLinkedApiError\">There is a problem</h1>\n    <p id=\"unlink-cases-error\" class=\"govuk-error-message\"\n      *ngIf=\"serverLinkedApiError;else noLinkedCases;\">\n      <span class=\"govuk-visually-hidden\">Error:</span> {{serverLinkedApiError.message}}\n    </p>\n    <ng-template #noLinkedCases>\n      <p class=\"govuk-body\">There are no cases linked to this one.</p>\n    </ng-template>\n    <p class=\"govuk-body\">\n      <button type=\"button\" class=\"govuk-js-link\" (click)=\"onBack()\">Go back to the Linked cases tab</button>\n    </p>\n    <div class=\"govuk-button-group\">\n      <button class=\"button button-primary\" type=\"button\" id=\"back-button\" (click)=\"onBack()\">Back</button>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LinkedCasesService } from '../../services/linked-cases.service';\nimport { AbstractJourneyComponent } from '../../../base-field';\nimport { MultipageComponentStateService } from '../../../../../services';\nimport { Journey } from '../../../../../domain';\n\n@Component({\n  selector: 'ccd-no-linked-cases',\n  templateUrl: './no-linked-cases.component.html',\n  standalone: false\n})\nexport class NoLinkedCasesComponent extends AbstractJourneyComponent implements OnInit, Journey {\n\n  public serverLinkedApiError: { id: string, message: string };\n\n  constructor(private readonly router: Router,\n    private readonly linkedCasesService: LinkedCasesService,\n    multipageComponentStateService: MultipageComponentStateService) {\n      super(multipageComponentStateService);\n  }\n\n  public ngOnInit(): void {\n    this.serverLinkedApiError = this.linkedCasesService.serverLinkedApiError;\n  }\n\n  public onBack(): void {\n    this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseJurisdictionID, this.linkedCasesService.caseDetails.case_type, this.linkedCasesService.caseId], { fragment: 'Linked cases' });\n  }\n}\n","<div class=\"govuk-grid-row\" *ngIf=\"linkedCases.length > 0\">\n  <div class=\"govuk-grid-column-full\">\n    <h1 class=\"govuk-heading-xl\">Select the cases you want to unlink from this case</h1>\n    <div class=\"govuk-form-group form-group\" [ngClass]=\"{'govuk-form-group--error': unlinkErrorMessage}\" [formGroup]=\"unlinkCaseForm\" *ngIf=\"unlinkCaseForm\">\n      <p id=\"unlink-cases-error\" class=\"govuk-error-message\" *ngIf=\"unlinkErrorMessage\">\n        <span class=\"govuk-visually-hidden\">Error:</span> {{unlinkErrorMessage}}\n      </p>\n      <div class=\"govuk-checkboxes\" data-module=\"govuk-checkboxes\">\n        <div class=\"govuk-checkboxes__item\" *ngFor=\"let case of linkedCases\">\n          <input class=\"govuk-checkboxes__input\" id=\"case-reference-{{case.caseReference}}\" formArrayName=\"linkedCases\" name=\"linkedCases\"\n            type=\"checkbox\" [value]=\"case.caseReference\" [checked]=\"case.unlink\" (change)=\"onChange($event.target)\">\n            <label class=\"govuk-label govuk-checkboxes__label\" for=\"{{case.caseReference}}\">\n              {{case.caseName }} {{case.caseReference | ccdCaseReference}}\n          </label>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\nimport { forkJoin, Observable } from 'rxjs';\nimport { CaseView, ErrorMessage, Journey } from '../../../../../domain';\nimport { CasesService } from '../../../../case-editor/services/cases.service';\nimport { CaseLink, LinkedCasesState } from '../../domain';\nimport { LinkedCasesErrorMessages, LinkedCasesPages } from '../../enums/write-linked-cases-field.enum';\nimport { LinkedCasesService } from '../../services/linked-cases.service';\nimport { AbstractFieldWriteJourneyComponent } from '../../../base-field';\nimport { MultipageComponentStateService } from '../../../../../services';\n\n@Component({\n  selector: 'ccd-unlink-cases',\n  templateUrl: './unlink-cases.component.html',\n  standalone: false\n})\nexport class UnLinkCasesComponent extends AbstractFieldWriteJourneyComponent implements OnInit, Journey {\n\n  private static readonly LINKED_CASES_TAB_ID = 'linked_cases_sscs';\n  private static readonly CASE_NAME_MISSING_TEXT = 'Case name missing';\n  private static readonly LINKED_CASES_TAB_ID_2 = 'caseLinksTab';\n\n  @Output()\n  public linkedCasesStateEmitter: EventEmitter<LinkedCasesState> = new EventEmitter<LinkedCasesState>();\n\n  @Output()\n  public notifyAPIFailure: EventEmitter<boolean> = new EventEmitter(false);\n\n  public unlinkCaseForm: FormGroup;\n  public caseId: string;\n  public linkedCases: CaseLink[] = [];\n  public errorMessages: ErrorMessage[] = [];\n  public unlinkErrorMessage: string;\n  public isLoaded: boolean;\n  public isServerError = false;\n\n  constructor(private readonly fb: FormBuilder,\n    private readonly casesService: CasesService,\n    private readonly linkedCasesService: LinkedCasesService,\n    multipageComponentStateService: MultipageComponentStateService) {\n      super(multipageComponentStateService);\n  }\n\n  public ngOnInit(): void {\n    this.getLinkedCases();\n    // the journey can become broken in some  situations as the journeyPageNumber is not correct, account for this and set to the correct value\n    const journeyPageNumber = this.getJourneyCollection()['journeyPageNumber'];\n    const linkedCasesPageNumber = this.getJourneyCollection()['linkedCasesPage'];\n    if (linkedCasesPageNumber < journeyPageNumber) {\n      this.getJourneyCollection()['journeyPageNumber'] = linkedCasesPageNumber;\n    }\n  }\n\n  public getJourneyCollection(): Journey {\n    return this.multipageComponentStateService.getJourneyCollection()[0];\n  }\n\n  public getLinkedCases(): void {\n    this.caseId = this.linkedCasesService.caseId;\n    if (this.linkedCasesService.cachedFieldValues && this.linkedCasesService.linkedCases) {\n      this.linkedCasesService.caseFieldValue = this.linkedCasesService.cachedFieldValues;\n    }\n    if (this.linkedCasesService.linkedCases.length > 0) {\n      this.linkedCases = this.linkedCasesService.linkedCases;\n      this.getAllLinkedCaseInformation();\n    } else {\n      this.casesService.getCaseViewV2(this.caseId).subscribe((caseView: CaseView) => {\n        const linkedCasesTab = caseView.tabs.find((tab) => {\n          return tab.id === UnLinkCasesComponent.LINKED_CASES_TAB_ID || tab.id === UnLinkCasesComponent.LINKED_CASES_TAB_ID_2;\n        });\n        if (linkedCasesTab) {\n          const linkedCases: CaseLink[] = linkedCasesTab.fields[0].value;\n          this.linkedCases = linkedCases;\n          this.linkedCasesService.linkedCases = linkedCases;\n          this.getAllLinkedCaseInformation();\n        }\n      });\n    }\n  }\n\n  public getLinkedCaseId(linkedCase): string {\n    // challenged access doesnt return props in the same format, account for this\n    return linkedCase.caseReference ? linkedCase.caseReference : linkedCase['id'];\n  }\n\n  public getAllLinkedCaseInformation(): void {\n    const searchCasesResponse = [];\n    this.linkedCases.forEach((linkedCase) => {\n      const caseRefToSearch = this.getLinkedCaseId(linkedCase);\n      searchCasesResponse.push(this.casesService.getCaseViewV2(caseRefToSearch));\n    });\n    if (searchCasesResponse.length) {\n      this.searchCasesByCaseIds(searchCasesResponse).subscribe((searchCases: any) => {\n        searchCases.forEach((response: CaseView) => {\n          const linkedCaseFromList = this.linkedCases.find((linkedCase) => {\n            const caseRefToUse = this.getLinkedCaseId(linkedCase);\n            if (this.linkedCasesService.casesToUnlink.indexOf(caseRefToUse) > -1) {\n              linkedCase.unlink = true;\n            }\n            return caseRefToUse === response.case_id;\n          });\n          if (linkedCaseFromList) {\n            const caseName = this.linkedCasesService.getCaseName(response);\n            const linkedCase = this.linkedCases.find((linkedCase) => {\n              const caseRefToUse = this.getLinkedCaseId(linkedCase);\n              return caseRefToUse === response.case_id;\n            });\n            if (linkedCase) {\n              linkedCase.caseName = caseName;\n              linkedCase.caseReference = response.case_id;\n            }\n          }\n        });\n        this.initForm();\n        this.linkedCasesService.linkedCases = this.linkedCases;\n        this.isServerError = false;\n      },\n      err => {\n        this.isServerError = true;\n        this.notifyAPIFailure.emit(true);\n      });\n    }\n  }\n\n  public searchCasesByCaseIds(searchCasesResponse: any[]): Observable<unknown[]> {\n    return forkJoin(searchCasesResponse);\n  }\n\n  public initForm(): void {\n    this.unlinkCaseForm = this.fb.group({\n      linkedCases: this.getLinkedCasesFormArray\n    });\n  }\n\n  public get getLinkedCasesFormArray(): FormArray {\n    const formFieldArray = this.linkedCases.map((val) => this.fb.group({\n      caseReference: val.caseReference,\n      reasons: val.reasons,\n      createdDateTime: val.createdDateTime,\n      caseType: val.caseType,\n      caseState: val.caseState,\n      caseService: val.caseService,\n      caseName: val.caseName || UnLinkCasesComponent.CASE_NAME_MISSING_TEXT,\n      unlink: val.unlink\n    }));\n    return this.fb.array(formFieldArray);\n  }\n\n  public onChange(caseSelected: any): void {\n    this.resetErrorMessages();\n    const selectedCase = this.linkedCases.find((linkedCase) => linkedCase.caseReference === caseSelected.value);\n    if (selectedCase) {\n      selectedCase.unlink = caseSelected.checked ? true : false;\n      caseSelected.checked ? this.linkedCasesService.casesToUnlink.push(selectedCase.caseReference) : this.linkedCasesService.casesToUnlink = this.linkedCasesService.casesToUnlink.filter((caseRef) => caseRef !== selectedCase.caseReference);\n    }\n  }\n\n  public onNext(): void {\n    this.resetErrorMessages();\n    let navigateToNextPage = true;\n    const casesMarkedToUnlink = this.linkedCases.find((linkedCase) => linkedCase.unlink && linkedCase.unlink === true);\n    if (!casesMarkedToUnlink) {\n      this.errorMessages.push({\n        title: 'case-selection',\n        description: LinkedCasesErrorMessages.UnlinkCaseSelectionError,\n        fieldId: `case-reference-${this.linkedCases[0]?.caseReference}`\n      });\n      this.unlinkErrorMessage = LinkedCasesErrorMessages.UnlinkCaseSelectionError;\n      navigateToNextPage = false;\n    }\n    // Return linked cases state and error messages to the parent\n    this.emitLinkedCasesState(navigateToNextPage);\n  }\n\n  public next() {\n    this.onNext();\n\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n\n  // Return linked cases state and error messages to the parent\n  public emitLinkedCasesState(isNavigateToNextPage: boolean): void {\n    this.linkedCasesStateEmitter.emit({\n      currentLinkedCasesPage: LinkedCasesPages.UNLINK_CASE,\n      errorMessages: this.errorMessages,\n      navigateToNextPage: isNavigateToNextPage\n    });\n  }\n\n  public resetErrorMessages(): void {\n    this.errorMessages = [];\n    this.unlinkErrorMessage = null;\n  }\n}\n","// tslint:disable:variable-name\nexport class LinkCaseReason {\n  public key: string;\n  public value_en: string;\n  public value_cy: string;\n  public hint_text_en: string;\n  public hint_text_cy: string;\n  public lov_order: number;\n  public parent_key: string;\n  public category_key: string;\n  public parent_category: string;\n  public active_flag: string;\n  public child_nodes: string;\n  public from: string;\n  public selected?: boolean;\n}\n\nexport class CCDCaseLinkType {\n  public CaseReference: string;\n  public CaseType: string;\n  public CreatedDateTime: string;\n  public ReasonForLink: LinkReason[];\n}\n\nexport class CaseLink {\n  public caseReference: string;\n  public reasons: LinkReason[];\n  public createdDateTime: string;\n  public caseType: string;\n  public caseTypeDescription: string;\n  public caseState: string;\n  public caseStateDescription: string;\n  public caseService: string;\n  public caseName: string;\n  public unlink?: boolean;\n}\n\nexport class LinkReason {\n  public Reason: string;\n  public OtherDescription?: string;\n}\n\nexport class LinkFromReason {\n  public reasonCode: string;\n  public otherDescription?: string;\n}\n\nexport class LinkedCasesResponse {\n  public linkedCases: CaseLinkResponse[];\n}\n\nexport class CaseLinkResponse {\n  public caseNameHmctsInternal: string;\n  public caseReference: string;\n  public ccdCaseType: string;\n  public ccdCaseTypeDescription: string;\n  public ccdJurisdiction: string;\n  public state: string;\n  public stateDescription: string;\n  public linkDetails: LinkDetails[];\n}\n\nexport class LinkDetails {\n  public createdDateTime: Date;\n  public reasons: LinkFromReason[];\n}\n\nexport class Terms {\n  public terms: {\n    reference: any[];\n  };\n}\n\nexport class ESQueryType {\n  public query: Terms;\n  public size: number;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { ServiceOrg } from '../../domain/case-view/service-org-response.model';\n\nexport interface LovRefDataModel {\n  category_key: string;\n  key: string;\n  value_en: string;\n  value_cy: string;\n  hint_text_en: string;\n  hint_text_cy: string;\n  lov_order: number;\n  parent_category: string;\n  parent_key: string;\n  active_flag: string;\n  child_nodes?: LovRefDataModel[];\n  from?: string;\n  selected?: boolean;\n}\n\nexport interface LovRefDataByServiceModel {\n  list_of_values: LovRefDataModel[];\n}\n\n@Injectable()\nexport class CommonDataService {\n\n  constructor(private readonly http: HttpClient) {}\n\n  public getRefData(url: string): Observable<LovRefDataByServiceModel> {\n    if (url) {\n      return this.http.get<LovRefDataByServiceModel>(url, {observe: 'body'});\n    }\n    return of(null);\n  }\n\n  public getServiceOrgData(url: string): Observable<ServiceOrg[]> {\n    if (url) {\n      return this.http.get<ServiceOrg[]>(url, {observe: 'body'});\n    }\n    return of(null);\n  }\n}\n","<div>\n  <div class=\"govuk-!-margin-bottom-2\">\n    <h1 class=\"heading-h1\">Linked cases</h1>\n    <label class=\"table-sub-heading\">This case is linked to</label>\n    <ccd-linked-cases-to-table [caseField]=\"caseField\" (notifyAPIFailure)=\"getFailureLinkedToNotification($event)\"\n      reloadPage=\"reload\"></ccd-linked-cases-to-table>\n    <ng-container\n      *ngIf=\"(isServerLinkedToError && isServerJurisdictionError && isServerReasonCodeError); then multiApisError;\">\n    </ng-container>\n    <ng-container\n      *ngIf=\"!(isServerLinkedToError && isServerJurisdictionError && isServerReasonCodeError) && (isServerLinkedToError || isServerJurisdictionError || isServerReasonCodeError); then singleApiError;\">\n    </ng-container>\n  </div>\n  <div class=\"govuk-!-margin-top-8\">\n    <label class=\"table-sub-heading\">This case is linked from</label>\n    <br>\n    <ccd-linked-cases-from-table [caseField]=\"caseField\" (notifyAPIFailure)=\"getFailureLinkedFromNotification($event)\"\n      reloadPage=\"reload\"></ccd-linked-cases-from-table>\n    <ng-container\n      *ngIf=\"(isServerLinkedFromError && isServerJurisdictionError && isServerReasonCodeError); then multiApisError;\">\n    </ng-container>\n    <ng-container\n      *ngIf=\"!(isServerLinkedFromError && isServerJurisdictionError && isServerReasonCodeError) && (isServerLinkedFromError || isServerJurisdictionError || isServerReasonCodeError); then singleApiError;\">\n    </ng-container>\n  </div>\n</div>\n\n<ng-template #singleApiError>\n  <div class=\"govuk-main-wrapper\">\n    <p class=\"govuk-body\">{{serverLinkedApiError.message}}</p>\n    <span class=\"govuk-body align-left\">\n      <a href=\"#\" (click)=\"reloadCurrentRoute(); $event.preventDefault()\" id=\"reload-linked-cases-tab\" class=\"govuk-link\">Reload\n        the Linked cases tab</a>\n    </span>\n  </div>\n</ng-template>\n<ng-template #multiApisError>\n  <div class=\"govuk-main-wrapper\">\n    <p class=\"govuk-body\">{{serverError.message}}</p>\n    <span class=\"govuk-body align-left\">\n      <a href=\"#\" (click)=\"reloadCurrentRoute(); $event.preventDefault()\" id=\"reload-linked-cases-tab\" class=\"govuk-link\">Reload\n        the Linked cases tab</a>\n    </span>\n  </div>\n</ng-template>\n","import { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { CaseField, CaseTab } from '../../../domain';\nimport { CommonDataService } from '../../../services/common-data-service/common-data-service';\nimport { LinkedCasesService } from './services';\n\n@Component({\n  selector: 'ccd-read-linked-cases-field',\n  templateUrl: './read-linked-cases-field.component.html',\n  styleUrls: ['./read-linked-cases-field.component.scss'],\n  standalone: false\n})\nexport class ReadLinkedCasesFieldComponent implements OnInit, AfterViewInit {\n  public caseField: CaseField;\n  public reasonListLoaded = false;\n  public reload = false;\n  public serverError: { id: string, message: string } = null;\n  public serverLinkedApiError: { id: string, message: string } = null;\n  public isServerReasonCodeError = false;\n  public isServerJurisdictionError = false;\n  public isServerLinkedFromError = false;\n  public isServerLinkedToError = false;\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly router: Router,\n    private readonly linkedCasesService: LinkedCasesService,\n    private readonly appConfig: AbstractAppConfig,\n    private readonly commonDataService: CommonDataService,\n  ) { }\n\n  public ngOnInit(): void {\n    if (this.route.snapshot.data.case && this.route.snapshot.data.case.tabs) {\n      const tabs = this.route.snapshot.data.case.tabs as CaseTab[];\n      const tab = tabs?.filter(tabItem => tabItem.fields?.some(field => field.id === 'caseLinks'))[0];\n      this.caseField = tab?.fields?.find(field => field.id === 'caseLinks');\n    }\n    this.isServerJurisdictionError = this.linkedCasesService.serverJurisdictionError || false;\n    const reasonCodeAPIurl = `${this.appConfig.getRDCommonDataApiUrl()}/lov/categories/CaseLinkingReasonCode`;\n    this.commonDataService.getRefData(reasonCodeAPIurl).subscribe({\n      next: reasons => {\n        this.reasonListLoaded = true;\n        this.linkedCasesService.linkCaseReasons = reasons.list_of_values.sort((a, b) => (a.value_en > b.value_en) ? 1 : -1);\n      },\n      error: () => {\n        this.isServerReasonCodeError = true;\n        this.linkedCasesService.isServerReasonCodeError = true;\n      }\n    });\n    this.serverLinkedApiError = {\n      id: 'backendError', message: 'Some case information is not available at the moment'\n    };\n    this.serverError = {\n      id: 'backendError', message: 'There has been a system error and your request could not be processed.'\n    };\n  }\n\n  public ngAfterViewInit(): void {\n    this.linkedCasesService.caseFieldValue = this.caseField?.value ?? [];\n    let labelField = document.getElementsByClassName('govuk-heading-l');\n    if (labelField && labelField.length) {\n      labelField[0].replaceWith('');\n    }\n    labelField = document.getElementsByClassName('heading-h2');\n    if (labelField && labelField.length) {\n      labelField[0].replaceWith('');\n    }\n    labelField = document.getElementsByClassName('case-viewer-label');\n    if (labelField && labelField.length) {\n      labelField[0].replaceWith('');\n    }\n  }\n\n  public reloadCurrentRoute(): void {\n    this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseJurisdictionID, this.linkedCasesService.caseDetails.case_type, this.linkedCasesService.caseDetails.case_id], { fragment: 'Linked cases' });\n  }\n\n  public getFailureLinkedToNotification(evt): void {\n    this.isServerLinkedToError = true;\n  }\n\n  public getFailureLinkedFromNotification(evt): void {\n    this.isServerLinkedFromError = true;\n  }\n}\n","<div class=\"form-group govuk-!-margin-bottom-2\" [formGroup]=\"formGroup\">\n  <div class=\"govuk-form-group\" [ngSwitch]=\"linkedCasesPage\">\n    <ng-container *ngSwitchCase=\"linkedCasesPages.BEFORE_YOU_START\">\n      <ccd-linked-cases-before-you-start\n        #journeyChild \n        (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\">\n      </ccd-linked-cases-before-you-start>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"linkedCasesPages.NO_LINKED_CASES\">\n      <ccd-no-linked-cases\n        #journeyChild \n        (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\">\n      </ccd-no-linked-cases>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"linkedCasesPages.LINK_CASE\">\n      <ccd-link-cases\n        #journeyChild \n        (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\">\n      </ccd-link-cases>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"linkedCasesPages.UNLINK_CASE\">\n      <ccd-unlink-cases\n        #journeyChild \n        (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\">\n      </ccd-unlink-cases>\n    </ng-container>\n    <ng-container *ngSwitchCase=\"linkedCasesPages.CHECK_YOUR_ANSWERS\">\n      <ccd-linked-cases-check-your-answers\n        #journeyChild \n        (linkedCasesStateEmitter)=\"onLinkedCasesStateEmitted($event)\">\n      </ccd-linked-cases-check-your-answers>\n    </ng-container>\n  </div>\n</div>\n","import { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { CaseEditDataService } from '../../../commons/case-edit-data';\nimport { CaseView } from '../../../domain/case-view';\nimport { CommonDataService } from '../../../services/common-data-service/common-data-service';\nimport { CasesService } from '../../case-editor/services/cases.service';\nimport { AbstractFieldWriteJourneyComponent } from '../base-field';\nimport { CaseLink, LinkedCasesState } from './domain';\nimport { LinkedCasesEventTriggers, LinkedCasesPages } from './enums';\nimport { LinkedCasesService } from './services';\nimport { MultipageComponentStateService } from '../../../services';\n\n@Component({\n  selector: 'ccd-write-linked-cases-field',\n  templateUrl: './write-linked-cases-field.component.html',\n  standalone: false\n})\nexport class WriteLinkedCasesFieldComponent extends AbstractFieldWriteJourneyComponent implements OnInit, AfterViewInit, OnDestroy {\n  public caseEditForm: FormGroup;\n  public caseDetails: CaseView;\n  public linkedCasesPage: number;\n  public linkedCasesPages = LinkedCasesPages;\n  public linkedCasesEventTriggers = LinkedCasesEventTriggers;\n  public linkedCases: CaseLink[] = [];\n  private subscriptions = new Subscription();\n\n  constructor(\n    private readonly appConfig: AbstractAppConfig,\n    private readonly commonDataService: CommonDataService,\n    private readonly casesService: CasesService,\n    private readonly linkedCasesService: LinkedCasesService,\n    private readonly caseEditDataService: CaseEditDataService,\n    private readonly router: Router,\n    multipageComponentStateService: MultipageComponentStateService\n  ) {\n    super(multipageComponentStateService);\n    this.handleBackButton = this.handleBackButton.bind(this);\n  }\n\n  public ngOnInit(): void {\n    const triggerUrl = location.href;\n    this.addState(null, this.router.url.split('/').splice(0, this.router.url.split('/').indexOf('trigger')).join('/'));\n    this.addState(0, triggerUrl);\n    // This is required to enable Continue button validation\n    // Continue button should be enabled only at check your answers page\n    this.caseEditDataService.setLinkedCasesJourneyAtFinalStep(false);\n    // Clear validation errors\n    this.caseEditDataService.clearFormValidationErrors();\n    // Get linked case reasons from ref data\n    this.linkedCasesService.editMode = false;\n    this.subscriptions.add(this.caseEditDataService.caseDetails$.subscribe(\n      {\n        next: (caseDetails) => {\n          this.initialiseCaseDetails(caseDetails);\n        }\n      }));\n    this.getOrgService();\n    this.subscriptions.add(this.caseEditDataService.caseEventTriggerName$.subscribe({\n      next: (name) => this.linkedCasesService.isLinkedCasesEventTrigger = (name === LinkedCasesEventTriggers.LINK_CASES)\n    }));\n    this.subscriptions.add(this.caseEditDataService.caseEditForm$.subscribe({\n      next: (editForm) => this.caseEditForm = editForm\n    }));\n\n    this.journeyPageNumber = this.journeyStartPageNumber = LinkedCasesPages.BEFORE_YOU_START;\n    this.journeyEndPageNumber = LinkedCasesPages.CHECK_YOUR_ANSWERS;\n\n    if (this.linkedCasesService.cameFromFinalStep) {\n      this.linkedCasesPage = LinkedCasesPages.CHECK_YOUR_ANSWERS;\n      this.journeyPageNumber = LinkedCasesPages.CHECK_YOUR_ANSWERS;\n      this.caseEditDataService.setLinkedCasesJourneyAtFinalStep(true);\n      this.submitLinkedCases();\n    }\n\n    this.multipageComponentStateService.isAtStart = this.journeyPageNumber === this.journeyStartPageNumber;\n    window.addEventListener('popstate', this.handleBackButton);\n  }\n\n  public handleBackButton(event) {\n    event.preventDefault();\n    if (this.linkedCasesPage === 0) {\n      this.router.navigate([this.router.url.split('/').splice(0, this.router.url.split('/').indexOf('trigger')).join('/')]);\n    } else {\n      this.previousPage();\n    }\n  }\n\n  public addState(data, url?): void {\n    history.pushState(data, '', url);\n  }\n\n  public onPageChange(): void {\n    const isAtStart: boolean = this.journeyPageNumber === this.journeyStartPageNumber || this.linkedCasesPage === LinkedCasesPages.BEFORE_YOU_START;\n    this.multipageComponentStateService.isAtStart = isAtStart;\n  }\n\n  public initialiseCaseDetails(caseDetails: CaseView): void {\n    if (caseDetails) {\n      this.caseDetails = caseDetails;\n      this.linkedCasesService.caseDetails = caseDetails;\n      this.linkedCasesService.caseId = caseDetails.case_id;\n      this.linkedCasesService.caseName = this.linkedCasesService.getCaseName(caseDetails);\n      this.getLinkedCases();\n    }\n  }\n\n  public ngAfterViewInit(): void {\n    let labelField = document.getElementsByClassName('govuk-heading-l');\n    if (labelField && labelField.length) {\n      labelField[0].replaceWith('');\n    }\n    labelField = document.getElementsByClassName('heading-h2');\n    if (labelField && labelField.length) {\n      labelField[0].replaceWith('');\n    }\n  }\n\n  public onLinkedCasesStateEmitted(linkedCasesState: LinkedCasesState): void {\n    // Clear validation errors\n    this.caseEditDataService.clearFormValidationErrors();\n    if (linkedCasesState.navigateToNextPage) {\n      this.linkedCasesPage = this.getNextPage(linkedCasesState);\n      // when the user navigates with change link the journey page number should be set to the linkedCasesPage\n      if (this.multipageComponentStateService.getJourneyCollectionMainObject().journeyPageNumber > this.linkedCasesPage) {\n        this.multipageComponentStateService.getJourneyCollectionMainObject().journeyPageNumber = this.linkedCasesPage;\n      }\n      this.addState(this.linkedCasesPage);\n      this.proceedToNextPage();\n    } else {\n      if (linkedCasesState.errorMessages && linkedCasesState.errorMessages.length) {\n        linkedCasesState.errorMessages.forEach((errorMessage, index) => {\n          this.caseEditDataService.addFormValidationError({ id: errorMessage.fieldId, message: errorMessage.description });\n        });\n      }\n    }\n  }\n\n  public getLinkedCaseReasons(serviceId: string): void {\n    const reasonCodeAPIurl = `${this.appConfig.getRDCommonDataApiUrl()}/lov/categories/CaseLinkingReasonCode?serviceId=${serviceId}`;\n    this.commonDataService.getRefData(reasonCodeAPIurl).subscribe({\n      next: (reasons) => {\n        // Sort in ascending order\n        const linkCaseReasons = reasons.list_of_values.sort((a, b) => (a.value_en > b.value_en) ? 1 : -1);\n        if (linkCaseReasons?.filter((reason) => reason.value_en !== 'Other').length > 0) {\n          this.linkedCasesService.linkCaseReasons = linkCaseReasons?.filter((reason) => reason.value_en !== 'Other');\n        }\n        // Move Other option to the end of the list\n        if (linkCaseReasons?.find((reason) => reason.value_en === 'Other')) {\n          this.linkedCasesService.linkCaseReasons.push(linkCaseReasons?.find((reason) => reason.value_en === 'Other'));\n        }\n      }\n    });\n  }\n\n  getOrgService(): void {\n    const servicesApiUrl = `refdata/location/orgServices?ccdCaseType=${this.caseDetails?.case_type?.id}`;\n    this.commonDataService.getServiceOrgData(servicesApiUrl).subscribe((result) => {\n      result.forEach((ids) => {\n        this.getLinkedCaseReasons(ids.service_code);\n      });\n    });\n  }\n\n  public proceedToNextPage(): void {\n    if (this.isAtFinalPage()) {\n      // Set the journey page to the end page.\n      this.journeyPageNumber = this.journeyEndPageNumber;\n      // Continue button event must be allowed in final page\n      this.caseEditDataService.setLinkedCasesJourneyAtFinalStep(true);\n      // Trigger validation to clear the \"notAtFinalPage\" error if now at the final state\n      this.formGroup.updateValueAndValidity();\n      // update form value\n      this.submitLinkedCases();\n    } else {\n      // Continue button event must not be allowed if not in final page\n      this.caseEditDataService.setLinkedCasesJourneyAtFinalStep(false);\n    }\n\n    this.nextPage();\n  }\n\n  public submitLinkedCases(): void {\n    let caseFieldValue = [...(this.linkedCasesService.caseFieldValue || [])];\n\n    if (!this.linkedCasesService.isLinkedCasesEventTrigger) {\n      if (!this.linkedCasesService.cachedFieldValues) {\n        this.linkedCasesService.cachedFieldValues = this.linkedCasesService.caseFieldValue;\n      }\n      const unlinkedCaseRefereneIds = this.linkedCasesService.linkedCases.filter(item => item.unlink).map(item => item.caseReference);\n      const caseFieldValue = this.linkedCasesService.caseFieldValue;\n      this.linkedCasesService.caseFieldValue = caseFieldValue.filter(item => unlinkedCaseRefereneIds.indexOf(item.id) === -1);\n    }\n\n    this.formGroup.value.caseLinks = this.linkedCasesService.caseFieldValue;\n    (this.caseEditForm.controls['data'] as any) = new FormGroup({ caseLinks: new FormControl(this.linkedCasesService.caseFieldValue || []) });\n    const unlinkedCaseReferenceIds = this.linkedCasesService.linkedCases\n      .filter((item) => item.unlink)\n      .map((item) => item.caseReference);\n\n    caseFieldValue = caseFieldValue.filter(\n      (item) => !unlinkedCaseReferenceIds.includes(item.id)\n    );\n\n    // Replace the caseLinks value in this.formGroup\n    this.formGroup.patchValue({\n      caseLinks: caseFieldValue\n    });\n\n    // Replace the caseLinks control in caseEditForm.controls.data\n    const dataFormGroup = this.caseEditForm.controls.data as FormGroup;\n    if (dataFormGroup) {\n      // Remove the existing caseLinks control (if it exists)\n      if (dataFormGroup.contains('caseLinks')) {\n        dataFormGroup.removeControl('caseLinks');\n      }\n\n      // Add the new control with the replacement value\n      dataFormGroup.addControl('caseLinks', new FormControl(caseFieldValue || []));\n    }\n\n    // Set the updated form in the caseEditDataService\n    this.caseEditDataService.setCaseEditForm(this.caseEditForm);\n  }\n\n  public isAtFinalPage(): boolean {\n    return this.linkedCasesPage === this.linkedCasesPages.CHECK_YOUR_ANSWERS;\n  }\n\n  public getNextPage(linkedCasesState: LinkedCasesState): number {\n    if ((this.linkedCasesPage === LinkedCasesPages.BEFORE_YOU_START) ||\n      (linkedCasesState.currentLinkedCasesPage === LinkedCasesPages.CHECK_YOUR_ANSWERS && linkedCasesState.navigateToPreviousPage)) {\n      return this.linkedCasesService.isLinkedCasesEventTrigger\n        ? LinkedCasesPages.LINK_CASE\n        : LinkedCasesPages.UNLINK_CASE;\n    }\n    return LinkedCasesPages.CHECK_YOUR_ANSWERS;\n  }\n\n  public getLinkedCases(): void {\n    this.casesService.getCaseViewV2(this.linkedCasesService.caseId).subscribe((caseView: CaseView) => {\n      const caseViewFiltered = caseView.tabs.filter((tab) => {\n        return tab.fields.some(\n          ({ field_type }) => field_type && field_type.collection_field_type && field_type.collection_field_type.id === 'CaseLink'\n        );\n      });\n      if (caseViewFiltered) {\n        const caseLinkFieldValue = caseViewFiltered.map((filtered) =>\n          filtered.fields?.length > 0 && filtered.fields.filter((field) => field.id === 'caseLinks')[0].value\n        );\n        if (!this.linkedCasesService.caseFieldValue.length) {\n          this.linkedCasesService.caseFieldValue = caseLinkFieldValue.length ? caseLinkFieldValue[0] : [];\n          this.linkedCasesService.getAllLinkedCaseInformation();\n        }\n      }\n      // Initialise the first page to display\n      if (!this.linkedCasesService.cameFromFinalStep) {\n        this.linkedCasesPage = this.linkedCasesService.isLinkedCasesEventTrigger ||\n        (this.linkedCasesService.caseFieldValue && this.linkedCasesService.caseFieldValue.length > 0\n          && !this.linkedCasesService.serverLinkedApiError)\n          ? LinkedCasesPages.BEFORE_YOU_START\n          : LinkedCasesPages.NO_LINKED_CASES;\n      }\n    });\n  }\n\n  ngOnDestroy() {\n    window.removeEventListener('popstate', this.handleBackButton);\n    this.subscriptions.unsubscribe();\n  }\n\n  public previousPage(): void {\n    if (this.linkedCasesService.isLinkedCasesEventTrigger) {\n      if (this.linkedCasesPage === LinkedCasesPages.CHECK_YOUR_ANSWERS) {\n        this.linkedCasesPage = LinkedCasesPages.LINK_CASE;\n      } else if (this.linkedCasesPage === LinkedCasesPages.LINK_CASE) {\n        this.linkedCasesPage = LinkedCasesPages.BEFORE_YOU_START;\n      } else {\n        this.linkedCasesPage --;\n      }\n    } else if (this.linkedCasesPage === LinkedCasesPages.UNLINK_CASE) {\n      this.linkedCasesPage = this.linkedCasesPages.BEFORE_YOU_START;\n    } else if (this.linkedCasesPage === LinkedCasesPages.CHECK_YOUR_ANSWERS) {\n      this.linkedCasesPage = this.linkedCasesPages.UNLINK_CASE;\n    } else {\n      this.linkedCasesPage --;\n    }\n    super.previousPage();\n  }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-money-gbp-field',\n  template: `<ng-container *ngIf=\"isNumber()\"><span class=\"text-16\">{{value / 100 | currency:'GBP':'symbol'}}</span></ng-container>`,\n  standalone: false\n})\nexport class ReadMoneyGbpFieldComponent extends AbstractFieldReadComponent implements OnInit {\n\n  @Input()\n  public amount: any;\n  public value: any;\n\n  public ngOnInit(): void {\n    if (this.amount) {\n      this.value = this.amount;\n    } else if (this.caseField) {\n      this.registerControl(new FormControl(this.caseField.value));\n      this.value = this.caseField.value;\n    }\n  }\n\n  public isNumber(): boolean {\n    return null !== this.value && !isNaN(this.value);\n  }\n\n}\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\n\n@Component({\n    selector: 'ccd-money-gbp-input',\n    template: `<input class=\"form-control form-control-1-8\"\n                    type=\"text\"\n                    [id]=\"id\"\n                    [name]=\"name\"\n                    [value]=\"displayValue\"\n                    (change)=\"onChange($event)\"\n                    (keyup)=\"onChange($event)\"\n                    [disabled]=\"disabled\"/>`,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => MoneyGbpInputComponent),\n      multi: true\n    },\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => MoneyGbpInputComponent),\n      multi: true\n    }\n  ],\n  standalone: false\n})\nexport class MoneyGbpInputComponent implements ControlValueAccessor, Validator {\n\n  private static readonly PATTERN_REGEXP = new RegExp('^-?\\\\d*(\\\\.\\\\d{0,2})?$');\n\n  @Input()\n  public id: string;\n\n  @Input()\n  public name: string;\n\n  @Input()\n  public mandatory: boolean;\n\n  @Input()\n  public formControl: FormControl;\n\n  public displayValue: string = null;\n  public disabled: boolean;\n\n  private rawValue: number;\n\n  // change events from the textarea\n  public onChange(event) {\n\n    // get value from input\n    const newValue = event.target.value;\n\n    if (newValue && MoneyGbpInputComponent.PATTERN_REGEXP.test(newValue)) {\n      const parts = newValue.split('.');\n\n      if (!parts[1]) {\n        parts[1] = '00';\n      } else {\n        while (2 > parts[1].length) {\n          parts[1] += '0';\n        }\n      }\n\n      this.rawValue = parts.join('');\n    } else {\n      // When pattern not matched, value is passed as is so that it fails validation.\n      this.rawValue = newValue;\n    }\n\n    // update the form\n    this.propagateChange(this.rawValue);\n  }\n\n  public writeValue(obj: any): void {\n    if (obj) {\n      this.rawValue = obj;\n\n      const integerPart = obj.slice(0, -2) || '0';\n      let decimalPart = obj.slice(-2);\n\n      while (2 > decimalPart.length) {\n        decimalPart += '0';\n      }\n\n      this.displayValue = [integerPart, decimalPart].join('.');\n    }\n  }\n\n  public registerOnChange(fn: any): void {\n    this.propagateChange = fn;\n  }\n\n  public registerOnTouched(_: any): void {\n    // Not used.\n  }\n\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  public validate(control: FormControl): ValidationErrors {\n    if (this.mandatory && !control.value) {\n      return {\n        pattern: 'This field is required'\n      };\n    }\n    if (control.value && !MoneyGbpInputComponent.PATTERN_REGEXP.test(control.value)) {\n      return {\n        pattern: 'Should only contain numbers with up to 2 decimal places'\n      };\n    }\n    return undefined;\n  }\n\n  public registerOnValidatorChange(_: () => void): void {\n    // Not used.\n  }\n\n  private propagateChange = (_: any) => { };\n\n}\n","<div class=\"form-group bottom-30\" [ngClass]=\"{'form-group-error': !moneyGbpControl.valid && (moneyGbpControl.dirty || moneyGbpControl.touched)}\">\n\n  <label [for]=\"id()\">\n    <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n  <span class=\"error-message\" *ngIf=\"moneyGbpControl.errors && (moneyGbpControl.dirty || moneyGbpControl.touched)\">{{moneyGbpControl.errors | ccdFirstError:caseField.label}}</span>\n\n  <div class=\"form-money\">\n    <span class=\"form-currency\">&#163;</span>\n    <ccd-money-gbp-input [id]=\"id()\"\n                         [name]=\"id()\"\n                         [mandatory]=\"caseField | ccdIsMandatory\"\n                         [formControl]=\"moneyGbpControl\"></ccd-money-gbp-input>\n  </div>\n\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-money-gbp-field',\n  templateUrl: './write-money-gbp-field.html',\n  standalone: false\n})\nexport class WriteMoneyGbpFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public moneyGbpControl: FormControl;\n\n  public ngOnInit() {\n    this.moneyGbpControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n  }\n}\n","<table *ngIf=\"caseField.value && caseField.value.length\" class=\"multi-select-list-field-table\"\n       [attr.aria-describedby]=\"'multi selection table' | rpxTranslate\">\n  <tbody>\n    <tr *ngFor=\"let value of caseField.value\">\n      <th style=\"display: none;\"></th>\n      <td><span class=\"text-16\">{{ value | ccdFixedList:caseField.field_type.fixed_list_items | rpxTranslate}}</span></td>\n    </tr>\n  </tbody>\n</table>\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-multi-select-list-field',\n  templateUrl: './read-multi-select-list-field.html',\n  styleUrls: ['./multi-select-list.scss'],\n  standalone: false\n})\nexport class ReadMultiSelectListFieldComponent extends AbstractFieldReadComponent {}\n","<div class=\"form-group bottom-30\" [ngClass]=\"{'error': !checkboxes.valid && (checkboxes.dirty || checkboxes.touched)}\" [id]=\"id()\">\n\n  <fieldset>\n\n    <legend>\n      <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n    </legend>\n    <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">{{caseField.hint_text | rpxTranslate}}</span>\n    <span *ngIf=\"checkboxes.errors && (checkboxes.dirty || checkboxes.touched)\" class=\"error-message\">{{checkboxes.errors | ccdFirstError:caseField.label}}</span>\n\n    <ng-container *ngFor=\"let checkbox of caseField.field_type.fixed_list_items\">\n\n      <div class=\"multiple-choice\">\n        <input class=\"form-control\" [id]=\"id()+'-'+checkbox.code\" [name]=\"id()\" type=\"checkbox\" [value]=\"checkbox.code\" [checked]=\"isSelected(checkbox.code)\" (change)=\"onCheckChange($event)\">\n        <label class=\"form-label\" [for]=\"id()+'-'+checkbox.code\">{{checkbox.label | rpxTranslate}}</label>\n      </div>\n\n    </ng-container>\n\n  </fieldset>\n\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractControl, FormArray, FormControl } from '@angular/forms';\n\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-multi-select-list-field',\n  templateUrl: './write-multi-select-list-field.html',\n  standalone: false\n})\nexport class WriteMultiSelectListFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public checkboxes: FormArray;\n\n  public ngOnInit(): void {\n    this.checkboxes = new FormArray([]);\n\n    // Initialise array with existing values\n    if (this.caseField.value && Array.isArray(this.caseField.value)) {\n      const values: string[] = this.caseField.value;\n      values.forEach(value => {\n        this.checkboxes.push(new FormControl(value));\n      });\n    }\n    this.registerControl(this.checkboxes, true);\n    if (this.caseField.display_context && this.caseField.display_context === 'MANDATORY' && this.caseField.field_type\n          && this.caseField.field_type.type === 'MultiSelectList' && this.caseField.field_type.fixed_list_items.length > 0\n            && this.checkboxes.controls.length === 0) {\n              if (this.caseField.field_type.fixed_list_items[0].code) {\n                this.checkboxes.push(new FormControl(this.caseField.field_type.fixed_list_items[0].code));\n                this.checkboxes.removeAt(0);\n              }\n    }\n  }\n\n  public onCheckChange(event) {\n    if (!this.isSelected(event.target.value)) {\n      // Add a new control in the FormArray\n      this.checkboxes.push(new FormControl(event.target.value));\n    } else {\n      // Remove the control form the FormArray\n      this.checkboxes.controls.forEach((ctrl: FormControl, i) => {\n        if (ctrl.value === event.target.value) {\n          this.checkboxes.removeAt(i);\n          return;\n        }\n      });\n    }\n  }\n\n  public isSelected(code): AbstractControl {\n    if (this.checkboxes && this.checkboxes.controls) {\n      return this.checkboxes.controls.find(control => control.value === code);\n    }\n  }\n}\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-number-field',\n  template: `<span class=\"text-16\">{{caseField.value | ccdCaseReference}}</span>`,\n  standalone: false\n})\nexport class ReadNumberFieldComponent extends AbstractFieldReadComponent {}\n","<div class=\"form-group\" [ngClass]=\"{'form-group-error': !numberControl.valid && numberControl.dirty}\">\n  <label [for]=\"id()\">\n    <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n  <span class=\"error-message\" *ngIf=\"numberControl.errors && numberControl.dirty\">\n    {{numberControl.errors | ccdFirstError:caseField.label}}\n  </span>\n\n  <input class=\"form-control bottom-30\" [ngClass]=\"{'govuk-input--error': numberControl.errors && numberControl.dirty}\"\n   [id]=\"id()\" type=\"text\" inputmode=\"decimal\" pattern=\"^[-+]?[0-9]+(?:\\.?[0-9]+)?$\" [formControl]=\"numberControl\">\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-number-field',\n  templateUrl: './write-number-field.html',\n  standalone: false\n})\nexport class WriteNumberFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public numberControl: FormControl;\n\n  public ngOnInit() {\n    this.numberControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n  }\n}\n","<div class=\"order-summary-title\">{{'Order Summary' | rpxTranslate}}</div>\n<table [attr.aria-describedby]=\"'order summary table' | rpxTranslate\">\n    <thead>\n      <tr>\n        <th id=\"hiddenHeader\" style=\"display: none;\"></th>\n        <td>{{'Code' | rpxTranslate}}</td>\n        <td>{{'Description' | rpxTranslate}}</td>\n        <td>{{'Amount' | rpxTranslate}}</td>\n      </tr>\n    </thead>\n    <tbody>\n        <tr ccdReadOrderSummaryRow *ngFor=\"let feeValue of getFees()\" [feeValue]=\"feeValue\"></tr>\n        <tr>\n            <td></td>\n            <td class=\"payment-total\">{{'Total' | rpxTranslate}}</td>\n            <td><ccd-read-money-gbp-field [amount]=\"getPaymentTotal()\"></ccd-read-money-gbp-field></td>\n        </tr>\n    </tbody>\n</table>\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\nimport { FeeValue } from './fee-value.model';\n\n@Component({\n  selector: 'ccd-read-order-summary-field',\n  templateUrl: './read-order-summary-field.html',\n  styleUrls: [\n    './read-order-summary-field.scss'\n  ],\n  standalone: false\n})\nexport class ReadOrderSummaryFieldComponent extends AbstractFieldReadComponent {\n\n  public getFees(): FeeValue[] {\n    return this.caseField.value ? this.caseField.value.Fees : [];\n  }\n\n  public getPaymentTotal(): string {\n    return this.caseField.value ? this.caseField.value.PaymentTotal : '';\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-order-summary-field',\n  templateUrl: './write-order-summary-field.html',\n  standalone: false\n})\nexport class WriteOrderSummaryFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  /*\n    These are implemented manually rather than using WriteComplexFieldComponent. The reason\n    is because the view is readonly the tree of form controls is not being built automatically\n    and has to be built manually.\n  */\n  public ngOnInit(): void {\n    const orderSummaryGroup: FormGroup = this.registerControl(new FormGroup({}), true) as FormGroup;\n    const paymentReference: FormControl = new FormControl(this.caseField.value.PaymentReference);\n    orderSummaryGroup.addControl('PaymentReference', paymentReference);\n    const paymentTotal: FormControl = new FormControl(this.caseField.value.PaymentTotal);\n    orderSummaryGroup.addControl('PaymentTotal', paymentTotal);\n    const feesArray: FormArray = new FormArray([]);\n    this.caseField.value.Fees.forEach((fee) => {\n      feesArray.push(this.getFeeValue(fee.value));\n    });\n    orderSummaryGroup.addControl('Fees', feesArray);\n  }\n\n  private getFeeValue(feeValue): FormGroup {\n    const feeGroup = new FormGroup({});\n    feeGroup.addControl('FeeCode', new FormControl(feeValue.FeeCode));\n    feeGroup.addControl('FeeAmount', new FormControl(feeValue.FeeAmount));\n    feeGroup.addControl('FeeDescription', new FormControl(feeValue.FeeDescription));\n    feeGroup.addControl('FeeVersion', new FormControl(feeValue.FeeVersion));\n    const feeValueGroup = new FormGroup({});\n    feeValueGroup.addControl('value', feeGroup);\n    return feeValueGroup;\n  }\n\n}\n","<ccd-read-order-summary-field [caseField]=\"caseField\"></ccd-read-order-summary-field>\n","<ng-container [ngSwitch]=\"context\">\n  <ccd-read-organisation-field-raw\n    *ngSwitchCase=\"paletteContext.CHECK_YOUR_ANSWER\"\n    [caseField]=\"caseField\"\n    [context]=\"context\"\n  ></ccd-read-organisation-field-raw>\n  <ccd-read-organisation-field-table\n    *ngSwitchCase=\"paletteContext.TABLE_VIEW\"\n    [caseField]=\"caseField\"\n    [caseFields]=\"caseFields\"\n    [context]=\"context\"\n  ></ccd-read-organisation-field-table>\n  <ccd-read-organisation-field-table\n    *ngSwitchDefault\n    [caseField]=\"caseField\"\n    [caseFields]=\"caseFields\"\n    [context]=\"context\"\n  ></ccd-read-organisation-field-table>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CaseField } from '../../../domain/definition';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\nimport { PaletteContext } from '../base-field/palette-context.enum';\n\n@Component({\n  selector: 'ccd-read-organisation-field',\n  templateUrl: './read-organisation-field.html',\n  standalone: false\n})\nexport class ReadOrganisationFieldComponent extends AbstractFieldReadComponent implements OnInit {\n  @Input()\n  public caseFields: CaseField[] = [];\n\n  public paletteContext = PaletteContext;\n\n  public ngOnInit(): void {\n    super.ngOnInit();\n    if (this.caseField.display_context_parameter) {\n      this.context = PaletteContext.TABLE_VIEW;\n    }\n  }\n\n}\n","<div class=\"form-group\" [formGroup]=\"organisationFormGroup\">\n  <fieldset *ngIf=\"(organisations$ | async)?.length === 0\" class=\"govuk-fieldset\">\n    <legend style=\"display: none;\"></legend>\n    <div class=\"hmcts-banner\">\n      <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n        <path d=\"M13.7,18.5h-2.4v-2.4h2.4V18.5z M12.5,13.7c-0.7,0-1.2-0.5-1.2-1.2V7.7c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v4.8\n  C13.7,13.2,13.2,13.7,12.5,13.7z M12.5,0.5c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12S19.1,0.5,12.5,0.5z\" /></svg>\n      <div class=\"hmcts-banner__message\">\n        <span class=\"hmcts-banner__assistive\">{{'information' | rpxTranslate}}</span>\n          <p class=\"warning-message\">{{'Organisation search is currently unavailable.' | rpxTranslate}}</p>\n      </div>\n    </div>\n    <div class=\"warning-panel\">\n      <div class=\"warning-message\">\n        {{'We are working to fix the issue.You can try again later.' | rpxTranslate}}\n      </div>\n    </div>\n  </fieldset>\n  <fieldset *ngIf=\"(organisations$ | async)?.length > 0\" class=\"govuk-fieldset\">\n    <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n      <h2 class=\"heading-h2\">\n        {{'Search for an organisation' | rpxTranslate}}\n      </h2>\n    </legend>\n    <div class=\"govuk-form-group\">\n      <label class=\"govuk-label\" for=\"search-org-text\">\n        <span id=\"search-org-hint\" class=\"govuk-hint\">\n          {{'You can only search for organisations already registered with MyHMCTS. For example, you can search by organisation name or address.' | rpxTranslate}}\n        </span>\n      </label>\n      <input id=\"search-org-text\" class=\"form-control\" type=\"text\" [formControl]=\"searchOrgTextFormControl\"/>\n    </div>\n    <div class=\"govuk-form-group\">\n      <label class=\"govuk-label\" for=\"organisation-table\">\n        <h2 class=\"heading-h2\">{{'Organisation name and address' | rpxTranslate}}</h2>\n      </label>\n      <hr class=\"govuk-section-break govuk-section-break--visible\">\n      <div *ngIf=\"!(selectedOrg$ | async)?.organisationIdentifier; else selectedOrganisation\" [ngClass]=\"{'scroll-container ': (simpleOrganisations$ | async)?.length > 10}\">\n        <table id=\"organisation-table\" *ngFor=\"let organisation of (simpleOrganisations$ | async)\">\n          <caption><h3 class=\"name-header\">{{organisation.name}}</h3></caption>\n          <tbody>\n            <tr>\n              <th style=\"display: none;\"></th>\n              <td class=\"td-address\">\n                <ccd-markdown [content]=\"organisation.address\"></ccd-markdown>\n              </td>\n              <td class=\"td-select\">\n                <a href=\"#\" (click)=\"selectOrg(organisation); $event.preventDefault()\" title=\"{{'Select the organisation' | rpxTranslate}} {{organisation.name}}\">\n                  {{'Select' | rpxTranslate}}\n                </a>\n              </td>\n            </tr>\n          </tbody>\n        </table>\n        <div *ngIf=\"(simpleOrganisations$ | async)?.length === 0 && (searchOrgValue$ | async)?.length > 2\">\n          <div class=\"no-result-message\">\n            {{'No results found.' | rpxTranslate}}\n          </div>\n        </div>\n      </div>\n      <ng-template #selectedOrganisation>\n        <table id=\"organisation-selected-table\" *ngIf=\"(selectedOrg$ | async) as selectedOrg\">\n          <caption><h3 class=\"name-header\">{{selectedOrg.name}}</h3></caption>\n          <tbody>\n            <tr>\n              <th style=\"display: none;\"></th>\n              <td class=\"td-address\">\n                <ccd-markdown [content]=\"selectedOrg.address\"></ccd-markdown>\n              </td>\n              <td class=\"td-select\">\n                <a href=\"#\" (click)=\"deSelectOrg(); $event.preventDefault()\"\n                   title=\"{{'Clear organisation selection for' | rpxTranslate}} {{selectedOrg.name}}\">\n                  {{'Clear' | rpxTranslate}}\n                </a>\n              </td>\n            </tr>\n          </tbody>\n        </table>\n      </ng-template>\n    </div>\n    <ccd-write-organisation-complex-field [caseField]=\"caseField\"\n                                          [formGroup]=\"formGroup\"\n                                          [selectedOrg$]=\"selectedOrg$\">\n    </ccd-write-organisation-complex-field>\n    <details id=\"find-organisation-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n      <summary class=\"govuk-details__summary\">\n      <span id=\"content-why-can-not-find-organisation\" class=\"govuk-details__summary-text\">\n        {{\"Can’t find the organisation you are looking for?\" | rpxTranslate}}\n      </span>\n      </summary>\n      <div id=\"content-reason-can-not-find-organisation\" class=\"govuk-details__text\">\n        {{'If you know that the solicitor is already registered with MyHMCTS, check that you have entered their details correctly.' | rpxTranslate}}\n        {{\"Remember that organisations can only register one office address. This means that the details could be slightly different from what you're expecting. Contact the solicitor directly if you have any concerns.\" | rpxTranslate}}\n      </div>\n    </details>\n  </fieldset>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\nimport { Observable, of } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { OrganisationConverter } from '../../../domain/organisation/organisation-converter';\nimport { SimpleOrganisationModel } from '../../../domain/organisation/simple-organisation.model';\nimport { OrganisationService, OrganisationVm } from '../../../services/organisation/organisation.service';\nimport { WindowService } from '../../../services/window/window.service';\n\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-organisation-field',\n  templateUrl: './write-organisation-field.component.html',\n  styleUrls: ['./organisation-field.scss'],\n  standalone: false\n})\nexport class WriteOrganisationFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  private static readonly EMPTY_SIMPLE_ORG: SimpleOrganisationModel = { organisationIdentifier: '', name: '', address: '' };\n  private static readonly MAX_RESULT_COUNT: number = 100;\n  private static readonly ORGANISATION_ID: string = 'OrganisationID';\n  private static readonly ORGANISATION_NAME: string = 'OrganisationName';\n  private static readonly PRE_POPULATE_TO_USERS_ORGANISATION: string = 'PrepopulateToUsersOrganisation';\n  private static readonly ORGANISATION_DETAILS: string = 'organisationDetails';\n  private static readonly YES: string = 'YES';\n  private static readonly MANDATORY: string = 'MANDATORY';\n  public defaultOrg: any;\n\n  public organisationFormGroup: FormGroup;\n  public searchOrgTextFormControl: FormControl;\n  public organisationIDFormControl: FormControl;\n  public organisationNameFormControl: FormControl;\n\n  public organisations$: Observable<OrganisationVm[]>;\n  public searchOrgValue$: Observable<string>;\n  public simpleOrganisations$: Observable<SimpleOrganisationModel[]>;\n  public selectedOrg$: Observable<SimpleOrganisationModel>;\n\n  constructor(private readonly organisationService: OrganisationService,\n    private readonly organisationConverter: OrganisationConverter,\n    private readonly windowService: WindowService) {\n    super();\n    this.defaultOrg = JSON.parse(this.windowService.getSessionStorage(WriteOrganisationFieldComponent.ORGANISATION_DETAILS));\n  }\n\n  public ngOnInit(): void {\n    this.organisations$ = this.organisationService.getActiveOrganisations();\n\n    this.searchOrgTextFormControl = new FormControl('');\n    this.searchOrgValue$ = this.searchOrgTextFormControl.valueChanges;\n    this.searchOrgValue$.subscribe(value => this.onSearchOrg(value));\n\n    this.organisationFormGroup = this.registerControl(new FormGroup({}), true) as FormGroup;\n    if (this.parent && this.parent.controls && this.parent.controls.hasOwnProperty(WriteOrganisationFieldComponent.PRE_POPULATE_TO_USERS_ORGANISATION)\n      && this.parent.controls[WriteOrganisationFieldComponent.PRE_POPULATE_TO_USERS_ORGANISATION].value\n      && this.parent.controls[WriteOrganisationFieldComponent.PRE_POPULATE_TO_USERS_ORGANISATION].value.toUpperCase()\n      === WriteOrganisationFieldComponent.YES) {\n      if (this.caseField && !this.caseField.value) {\n        this.caseField.value = {\n          OrganisationID: this.defaultOrg ? this.defaultOrg.organisationIdentifier : null,\n          OrganisationName: this.defaultOrg ? this.defaultOrg.name : null\n        };\n      }\n      this.preSelectDefaultOrg();\n    } else {\n      if (this.caseField && this.caseField.value && this.caseField.value.OrganisationID) {\n        this.preSelectDefaultOrg();\n      } else {\n        this.preSelectEmptyOrg();\n      }\n    }\n\n    // Ensure that all sub-fields inherit the same value for retain_hidden_value as this parent; although an\n    // Organisation field uses the Complex type, it is meant to be treated as one field\n    if (this.caseField && this.caseField.field_type.type === 'Complex') {\n      for (const organisationSubField of this.caseField.field_type.complex_fields) {\n        organisationSubField.retain_hidden_value = this.caseField.retain_hidden_value;\n      }\n    }\n  }\n\n  public onSearchOrg(orgSearchText: string): void {\n    if (orgSearchText && orgSearchText.length >= 2) {\n      const lowerOrgSearchText = orgSearchText.toLowerCase();\n      this.simpleOrganisations$ = this.organisations$.pipe(\n        switchMap(organisations => of(\n          this.searchOrg(organisations, lowerOrgSearchText)\n        )\n        )\n      );\n    } else {\n      this.simpleOrganisations$ = of([]);\n    }\n  }\n\n  // The way the search works divide into two phases\n  // 1. go through collection of org items one by one by doing the comparsion of search string using includes to all the address fields\n  // 2. split the search string into arrays and apply the each array item into the address fields\n  // 3. both step 1, 2 will go until max count result reaches, and finally combine both result sets into final collection\n  public searchOrg(organisations: OrganisationVm[], lowerOrgSearchText: string): SimpleOrganisationModel[] {\n    const partMatchingResultSet = [];\n    const withSpaceMatchingResultSet = [];\n    const MAX_RESULT_COUNT = WriteOrganisationFieldComponent.MAX_RESULT_COUNT;\n    organisations.forEach((organisation) => {\n      if (partMatchingResultSet.length < MAX_RESULT_COUNT && this.searchCriteria(organisation, lowerOrgSearchText)) {\n        partMatchingResultSet.push(organisation);\n      }\n    });\n\n    organisations.forEach((org) => {\n      const resultSet = [...partMatchingResultSet, ...withSpaceMatchingResultSet];\n      const hasMatchingOrganisation = resultSet.find(item => item.organisationIdentifier === org.organisationIdentifier);\n      const searchHasSpace = this.searchWithSpace(org, lowerOrgSearchText);\n      const hasResultSetBelowMaxCount = resultSet.length < MAX_RESULT_COUNT;\n\n      if (!hasMatchingOrganisation && partMatchingResultSet.length === 0 && hasResultSetBelowMaxCount && searchHasSpace) {\n        withSpaceMatchingResultSet.push(org);\n      }\n    });\n    return [...partMatchingResultSet, ...withSpaceMatchingResultSet].map((organisation) =>\n      this.organisationConverter.toSimpleOrganisationModel(organisation)\n    );\n  }\n\n  public trimAll(oldText: string): string {\n    return oldText.replace(/\\s+/g, '');\n  }\n\n  public selectOrg(selectedOrg: SimpleOrganisationModel): void {\n    this.organisationIDFormControl.setValue(selectedOrg.organisationIdentifier);\n    this.organisationNameFormControl.setValue(selectedOrg.name);\n    this.selectedOrg$ = of(selectedOrg);\n    this.simpleOrganisations$ = of([...[], selectedOrg]);\n    this.searchOrgTextFormControl.setValue('');\n    this.searchOrgTextFormControl.disable();\n    this.caseField.value = {\n      OrganisationID: selectedOrg.organisationIdentifier,\n      OrganisationName: selectedOrg.name\n    };\n    this.organisationFormGroup.setValue(this.caseField.value);\n  }\n\n  public deSelectOrg(): void {\n    this.organisationIDFormControl.reset();\n    this.organisationNameFormControl.reset();\n    this.selectedOrg$ = of(WriteOrganisationFieldComponent.EMPTY_SIMPLE_ORG);\n    this.simpleOrganisations$ = of([]);\n    this.searchOrgTextFormControl.setValue('');\n    this.searchOrgTextFormControl.enable();\n    this.caseField.value = { OrganisationID: null, OrganisationName: null };\n    this.organisationFormGroup.setValue(this.caseField.value);\n  }\n\n  private preSelectDefaultOrg(): void {\n    this.instantiateOrganisationFormGroup(this.caseField.value.OrganisationID, this.caseField.value.OrganisationName);\n    this.selectedOrg$ = this.organisations$.pipe(\n      map(organisations =>\n        organisations.filter(findOrg => {\n          return findOrg.organisationIdentifier === this.caseField.value.OrganisationID;\n        })\n          .map(organisation => this.organisationConverter.toSimpleOrganisationModel(organisation))[0]),\n    );\n    if (this.caseField.value && this.caseField.value.OrganisationID) {\n      this.searchOrgTextFormControl.disable();\n    }\n  }\n\n  private preSelectEmptyOrg(): void {\n    this.instantiateOrganisationFormGroup(null, null);\n    this.selectedOrg$ = of(WriteOrganisationFieldComponent.EMPTY_SIMPLE_ORG);\n  }\n\n  private instantiateOrganisationFormGroup(orgIDState: any, orgNameState: any): void {\n    this.organisationIDFormControl = new FormControl(orgIDState);\n    this.addOrganisationValidators(this.caseField, this.organisationIDFormControl);\n    this.organisationFormGroup.addControl(WriteOrganisationFieldComponent.ORGANISATION_ID, this.organisationIDFormControl);\n    this.organisationNameFormControl = new FormControl(orgNameState);\n    this.organisationFormGroup.addControl(WriteOrganisationFieldComponent.ORGANISATION_NAME, this.organisationNameFormControl);\n  }\n\n  private addOrganisationValidators(caseField: CaseField, control: AbstractControl): void {\n    if (caseField.field_type && caseField.field_type.complex_fields) {\n      const organisationIdField = caseField.field_type.complex_fields\n        .find(field => field.id === WriteOrganisationFieldComponent.ORGANISATION_ID);\n      this.addValidators(organisationIdField, control);\n    }\n  }\n\n  private searchCriteria(organisation: OrganisationVm, lowerOrgSearchText: string): boolean {\n    if (organisation.postCode && organisation.postCode.toLowerCase().includes(lowerOrgSearchText)) {\n      return true;\n    }\n    if (organisation.postCode && this.trimAll(organisation.postCode).toLowerCase().includes(lowerOrgSearchText)) {\n      return true;\n    }\n    if (organisation.postCode && organisation.postCode.toLowerCase().includes(this.trimAll(lowerOrgSearchText))) {\n      return true;\n    }\n    if (organisation.name && organisation.name.toLowerCase().includes(lowerOrgSearchText)) {\n      return true;\n    }\n    if (organisation.addressLine1 && organisation.addressLine1.toLowerCase().includes(lowerOrgSearchText)) {\n      return true;\n    }\n    if (organisation.addressLine2 && organisation.addressLine2.toLowerCase().includes(lowerOrgSearchText)) {\n      return true;\n    }\n    if (organisation.addressLine3 && organisation.addressLine3.toLowerCase().includes(lowerOrgSearchText)) {\n      return true;\n    }\n    if (organisation.townCity && organisation.townCity.toLowerCase().includes(lowerOrgSearchText)) {\n      return true;\n    }\n    if (organisation.county && organisation.county.toLowerCase().includes(lowerOrgSearchText)) {\n      return true;\n    }\n    // noinspection RedundantIfStatementJS\n    if (organisation.country && organisation.country.toLowerCase().includes(lowerOrgSearchText)) {\n      return true;\n    }\n    return false;\n  }\n\n  private searchWithSpace(organisation: OrganisationVm, lowerOrgSearchText: string): boolean {\n    const searchTextArray: string[] = lowerOrgSearchText.split(/\\s+/g);\n    for (const singleSearchText of searchTextArray) {\n      if (singleSearchText && this.searchCriteria(organisation, singleSearchText)) {\n        return true;\n      }\n    }\n  }\n}\n","import { AbstractAppConfig } from '../../../../app.config';\nimport { SessionStorageService } from '../../../services/session/session-storage.service';\nimport { AbstractFieldReadComponent } from './abstract-field-read.component';\n\nexport abstract class PaymentField extends AbstractFieldReadComponent {\n    constructor(\n        protected readonly appConfig: AbstractAppConfig,\n        protected readonly sessionStorage: SessionStorageService\n    ) {\n        super();\n    }\n\n    public getBaseURL() {\n        return this.appConfig.getPaymentsUrl();\n    }\n\n    public getPayBulkScanBaseURL() {\n        return this.appConfig.getPayBulkScanBaseUrl();\n    }\n\n    public getRefundsUrl() {\n        return this.appConfig.getRefundsUrl();\n    }\n\n    public getNotificationUrl() {\n        return this.appConfig.getNotificationUrl();\n    }\n\n    public getUserRoles() {\n        const userDetails = JSON.parse(this.sessionStorage.getItem('userDetails') || null);\n        if (!userDetails || !userDetails.hasOwnProperty('roles')) {\n            return [];\n        }\n        return userDetails.roles;\n    }\n\n    public getUserEmail() {\n        const userDetails = JSON.parse(this.sessionStorage.getItem('userDetails') || null);\n        if (!userDetails || !userDetails.hasOwnProperty('sub')) {\n            return '';\n        }\n        return userDetails.sub;\n    }\n}\n","import { Component } from '@angular/core';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { SessionStorageService } from '../../../services/session/session-storage.service';\nimport { PaymentField } from '../base-field/payment-field.component';\n\n@Component({\n  selector: 'ccd-case-payment-history-viewer-field',\n  templateUrl: 'case-payment-history-viewer-field.html',\n  styleUrls: ['./case-payment-history-viewer-field.scss'],\n  standalone: false\n})\nexport class CasePaymentHistoryViewerFieldComponent extends PaymentField {\n  public readonly PAYMENT_HISTORY_WARNING = 'Recent payments may take a few minutes to reflect here.';\n  constructor(\n    appConfig: AbstractAppConfig,\n    sessionStorage: SessionStorageService\n  ) {\n    super(appConfig, sessionStorage);\n  }\n}\n","<div class=\"govuk-warning-text\">\n    <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n    <strong class=\"govuk-warning-text__text\">\n        <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n        {{PAYMENT_HISTORY_WARNING | rpxTranslate}}\n    </strong>\n</div>\n<ccpay-payment-lib\n    [API_ROOT]=\"getBaseURL()\"\n    [CCD_CASE_NUMBER]=\"caseReference\"\n    [BULKSCAN_API_ROOT]=\"getPayBulkScanBaseURL()\"\n    [SELECTED_OPTION]=\"'CCDorException'\"\n    [ISBSENABLE]=\"'true'\"\n    [LOGGEDINUSEREMAIL]=\"getUserEmail()\"\n    [LOGGEDINUSERROLES]=\"getUserRoles()\"\n    [REFUNDS_API_ROOT]=\"getRefundsUrl()\"\n    [NOTIFICATION_API_ROOT]=\"getNotificationUrl()\"\n    [VIEW]=\"'case-transactions'\"\n    [TAKEPAYMENT]=\"false\"\n    [SERVICEREQUEST]=\"false\"\n    [PAYMENT_GROUP_REF]=\"null\"\n    [EXC_REFERENCE]=\"caseReference\"\n    [DCN_NUMBER]=\"null\"\n    [ISPAYMENTSTATUSENABLED]=\"'Enable'\"\n></ccpay-payment-lib>","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-phone-uk-field',\n  template: `<span class=\"text-16\">{{caseField.value}}</span>`,\n  standalone: false\n})\nexport class ReadPhoneUKFieldComponent extends AbstractFieldReadComponent {}\n","<div class=\"form-group\" [ngClass]=\"{'form-group-error': !phoneUkControl.valid && (phoneUkControl.dirty || phoneUkControl.touched)}\">\n  <label [for]=\"id()\">\n    <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n  <span class=\"error-message\" *ngIf=\"phoneUkControl.errors && (phoneUkControl.dirty || phoneUkControl.touched)\">\n    {{phoneUkControl.errors | ccdFirstError:caseField.label}}\n  </span>\n  <input class=\"form-control bottom-30\" [ngClass]=\"{'govuk-input--error': phoneUkControl.errors && phoneUkControl.dirty}\"\n   [id]=\"id()\" type=\"tel\" [formControl]=\"phoneUkControl\">\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-phone-uk-field',\n  templateUrl: './write-phone-uk-field.html',\n  standalone: false\n})\nexport class WritePhoneUKFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public phoneUkControl: FormControl;\n\n  public ngOnInit() {\n    this.phoneUkControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n  }\n}\n","import { CaseQueriesCollection } from '../models';\n\n/**\n * This mock file should be deleted after integrating with CCD\n * CCD development ticket: https://tools.hmcts.net/jira/browse/CCD-4590\n * ExUI tickets:\n *   https://tools.hmcts.net/jira/browse/EUI-8460\n *   https://tools.hmcts.net/jira/browse/EUI-8388\n *   https://tools.hmcts.net/jira/browse/EUI-8389\n */\nexport const caseMessagesMockData: CaseQueriesCollection[] = [\n  {\n    partyName: 'John Smith - Appellant',\n    roleOnCase: null,\n    caseMessages: [\n      {\n        id: 'ccd-message-id-001',\n        value: {\n          id: 'case-message-001',\n          subject: 'Review attached document',\n          name: 'Maggie Conroy',\n          body: 'Please review attached document and advise if hearing should proceed?',\n          attachments: [\n            {\n              id: 'ccd-document-id-001',\n              value: {\n                document_filename: 'Screenshot 2023-06-01 at 16.07.06.png',\n                document_url: 'https://dm-store-aat.service.core-compute-aat.internal/documents/e5366837-b3f6-492d-acbf-548730625e8f',\n                document_binary_url: 'https://dm-store-aat.service.core-compute-aat.internal/documents/e5366837-b3f6-492d-acbf-548730625e8f/binary'\n              }\n            },\n            {\n              id: 'ccd-document-id-002',\n              value: {\n                document_filename: 'dummy.pdf',\n                document_url: 'https://dm-store-aat.service.core-compute-aat.internal/documents/f50ccd7a-7f28-40f3-b5f9-7ad2f6425506',\n                document_binary_url: 'https://dm-store-aat.service.core-compute-aat.internal/documents/f50ccd7a-7f28-40f3-b5f9-7ad2f6425506/binary'\n              }\n            }\n          ],\n          isHearingRelated: 'Yes',\n          hearingDate: '2023-01-10',\n          createdOn: new Date(2023, 0, 3),\n          createdBy: '1111-1111-1111-1111'\n        }\n      },\n      {\n        id: 'ccd-message-id-001',\n        value: {\n          id: 'case-message-002',\n          subject: 'Games',\n          name: 'Maggie Conroy',\n          body: 'Can I play games in my phone when my solicitor is talking?',\n          attachments: [\n            {\n              id: 'ccd-document-id-003',\n              value: {\n                document_filename: 'talking-document.pdf',\n                document_url: '/',\n                document_binary_url: '/'\n              }\n            }\n          ],\n          isHearingRelated: 'Yes',\n          hearingDate: '2023-01-10',\n          createdOn: new Date(2023, 0, 3),\n          createdBy: '1111-1111-1111-1111'\n        }\n      },\n      {\n        id: 'ccd-message-id-003',\n        value: {\n          id: 'case-message-003',\n          name: 'John Smith',\n          body: 'Using mobile phone is strictly prohibited in the court room.',\n          attachments: [\n            {\n              id: 'ccd-document-id-004',\n              value: {\n                document_filename: 'games-document.pdf',\n                document_url: '/',\n                document_binary_url: '/'\n              }\n            }\n          ],\n          isHearingRelated: 'Yes',\n          hearingDate: '2023-01-10',\n          createdOn: new Date(2023, 2, 4),\n          createdBy: '2222-2222-2222-2222',\n          parentId: 'case-message-002'\n        }\n      },\n      {\n        id: 'ccd-message-id-004',\n        value: {\n          id: 'case-message-004',\n          name: 'Maggie Conroy',\n          body: 'Can I use a tablet instead?',\n          attachments: [],\n          isHearingRelated: 'Yes',\n          hearingDate: '2023-01-10',\n          createdOn: new Date(2023, 3, 8),\n          createdBy: '2222-2222-2222-2222',\n          parentId: 'case-message-003'\n        }\n      },\n      {\n        id: 'ccd-message-id-005',\n        value: {\n          id: 'case-message-005',\n          name: 'John Smith',\n          body: 'No, you cannot use a tablet either.',\n          attachments: [],\n          isHearingRelated: 'Yes',\n          hearingDate: '2023-01-10',\n          createdOn: new Date(2023, 4, 24),\n          createdBy: '2222-2222-2222-2222',\n          parentId: 'case-message-004'\n        }\n      }\n    ]\n  },\n  {\n    partyName: 'Kevin Peterson - Respondent',\n    roleOnCase: null,\n    caseMessages: [\n      {\n        id: 'ccd-message-id-006',\n        value: {\n          id: 'case-message-006',\n          subject: 'Add respondent detention order',\n          name: 'Maggie Conroy',\n          body: 'Please add respondent detention order to the file XX20230423-DX.',\n          attachments: [],\n          isHearingRelated: 'Yes',\n          createdOn: new Date(2023, 1, 5),\n          createdBy: '1111-1111-1111-1111'\n        }\n      },\n      {\n        id: 'ccd-message-id-007',\n        value: {\n          id: 'case-message-007',\n          name: 'Maggie Conroy',\n          body: 'I confirm that the respondent detention order is now added to the file XX20230423-DX.',\n          attachments: [],\n          isHearingRelated: 'Yes',\n          createdOn: new Date(2023, 1, 6),\n          createdBy: '2222-2222-2222-2222',\n          parentId: 'case-message-006'\n        }\n      },\n      {\n        id: 'ccd-message-id-008',\n        value: {\n          id: 'case-message-008',\n          subject: 'Food',\n          name: 'Maggie Conroy',\n          body: 'Can I eat in the hearings?',\n          attachments: [],\n          isHearingRelated: 'Yes',\n          hearingDate: '2023-01-10',\n          createdOn: new Date(2023, 0, 3),\n          createdBy: '1111-1111-1111-1111'\n        }\n      },\n      {\n        id: 'ccd-message-id-009',\n        value: {\n          id: 'case-message-009',\n          name: 'Maggie Conroy',\n          body: 'Consumption of food is not allowed when a hearing is taking place.',\n          attachments: [],\n          isHearingRelated: 'Yes',\n          hearingDate: '2023-01-10',\n          createdOn: new Date(2023, 0, 5),\n          createdBy: '2222-2222-2222-2222',\n          parentId: 'case-message-008'\n        }\n      },\n      {\n        id: 'ccd-message-id-010',\n        value: {\n          id: 'case-message-010',\n          subject: 'Bring relatives',\n          name: 'Maggie Conroy',\n          body: 'Can I bring my grandma with me so she get out from the residence?',\n          attachments: [],\n          isHearingRelated: 'Yes',\n          hearingDate: '2023-01-10',\n          createdOn: new Date(2023, 0, 6),\n          createdBy: '1111-1111-1111-1111'\n        }\n      },\n      {\n        id: 'ccd-message-id-011',\n        value: {\n          id: 'case-message-011',\n          name: 'Maggie Conroy',\n          body: 'Sorry, only those required for the hearing should be present inside the court room.',\n          attachments: [],\n          isHearingRelated: 'Yes',\n          hearingDate: '2023-01-10',\n          createdOn: new Date(2023, 0, 7),\n          createdBy: '2222-2222-2222-2222',\n          parentId: 'case-message-010'\n        }\n      }\n    ]\n  }\n];\n","<ng-container *ngIf=\"qualifyingQuestion?.markdown\">\n  <h1 class=\"govuk-heading-l\">\n    {{ qualifyingQuestion.name | rpxTranslate }}\n  </h1>\n  <ng-container *translatedMarkdown=\"qualifyingQuestion; let content;\">\n    <div class=\"qm-qualifying-question\">\n      <ccd-markdown [content]=\"qualifyingQuestion ? content : (qualifyingQuestion.markdown | rpxTranslate)\"></ccd-markdown>\n    </div>\n  </ng-container>\n </ng-container>","import { Component, Input } from '@angular/core';\nimport { QualifyingQuestion } from '../../../models';\n\n@Component({\n  selector: 'ccd-qualifying-question-detail',\n  templateUrl: './qualifying-question-detail.component.html',\n  styleUrls: ['./qualifying-question-detail.component.scss'],\n  standalone: false\n})\nexport class QualifyingQuestionDetailComponent {\n  @Input() public qualifyingQuestion: QualifyingQuestion;\n}\n","export enum RaiseQueryErrorMessage {\n  FULL_NAME = 'Enter a full name',\n  QUERY_SUBJECT = 'Enter a query subject',\n  QUERY_BODY = 'Enter query details',\n  QUERY_HEARING_RELATED = 'Select whether the query is hearing related or not',\n  QUERY_HEARING_DATE = 'Enter a valid date',\n  QUERY_SUBJECT_MAX_LENGTH = 'Query subject must be less than 201 characters in length',\n  RESPOND_QUERY_BODY = 'Add a response before continue'\n}\n","export enum QueryItemResponseStatus {\n  NEW = 'New',\n  RESPONDED = 'Responded',\n  AWAITING = 'Awaiting Response',\n  CLOSED = 'Closed'\n}\n","export enum RespondToQueryErrorMessages {\n  FULL_NAME = 'Enter a full name',\n  QUERY_BODY = 'Add a response before continue'\n}\n","export enum QualifyingQuestionsErrorMessage {\n  SELECT_AN_OPTION = 'Select an option'\n}\n","import { Injectable } from '@angular/core';\nimport { QualifyingQuestion } from '../models';\n\n@Injectable()\nexport class QualifyingQuestionService {\n  private qualifyingQuestionSelection: QualifyingQuestion | null = null;\n\n  // Set the selected qualifying question\n  public setQualifyingQuestionSelection(selection: QualifyingQuestion): void {\n    this.qualifyingQuestionSelection = selection;\n  }\n\n  // Get the selected qualifying question\n  public getQualifyingQuestionSelection(): QualifyingQuestion | null {\n    return this.qualifyingQuestionSelection;\n  }\n\n  // Clear the selected qualifying question (reset the selection)\n  public clearQualifyingQuestionSelection(): void {\n    this.qualifyingQuestionSelection = null;\n  }\n}\n\n","export enum QueryCreateContext {\n  NEW_QUERY_QUALIFYING_QUESTION_OPTIONS = 'NewQueryQualifyingQuestionOptions',\n  NEW_QUERY_QUALIFYING_QUESTION_DETAIL = 'NewQueryQualifyingQuestionDetail',\n  NEW_QUERY = 'NewQuery',\n  RESPOND = 'Respond',\n  FOLLOWUP = 'Followup',\n  HMCTSSTAFF = 'HMCTS'\n}\n","import { QueryCreateContext } from '../..';\nimport { QueryItemResponseStatus } from '../../../enums/query-item-response-status.enum';\nimport { CaseMessage, QueryMessageDocument } from '../../case-queries-collection.model';\n\nexport class QueryListItem implements CaseMessage {\n  public id: string;\n  public subject?: string;\n  public name: string;\n  public body: string;\n  public attachments?: QueryMessageDocument[] = [];\n  public isHearingRelated: string;\n  public hearingDate?: string;\n  public createdOn: Date;\n  public createdBy: string;\n  public parentId?: string;\n  public isClosed?: string;\n  public messageType?: string;\n  public isHmctsStaff?: string;\n  public children: QueryListItem[] = [];\n\n  public messageIndexInParent?: number | null = null;\n\n  public get lastSubmittedMessage(): QueryListItem {\n    const getLastSubmittedMessage = (item: QueryListItem): QueryListItem => {\n      let lastSubmittedMessage: QueryListItem = item;\n      if (item.children && item.children.length > 1) {\n        for (const child of item.children) {\n          const childLastSubmittedMessage = getLastSubmittedMessage(child);\n          if (childLastSubmittedMessage.createdOn > lastSubmittedMessage.createdOn) {\n            lastSubmittedMessage = childLastSubmittedMessage;\n          }\n        }\n      }\n      return lastSubmittedMessage;\n    };\n\n    return getLastSubmittedMessage(this);\n  }\n\n  public get lastSubmittedBy(): string {\n    const childrenCount = this.children.length;\n    if (childrenCount === 0) {\n      return this.lastSubmittedMessage.name;\n    }\n\n    return this.children[childrenCount - 1].name;\n  }\n\n  public get lastSubmittedDate(): Date {\n    const childrenCount = this.children.length;\n    const lastChild = this.children[childrenCount - 1];\n\n    // 1. Check for legacy: <= 1 child with no messageType\n    const allChildrenLackMessageType = this.children.every(\n      (child) => !child.messageType\n    );\n    if (childrenCount <= 1 && allChildrenLackMessageType) {\n      return new Date(this.lastSubmittedMessage.createdOn);\n    }\n\n    // 2. Check if any RESPOND exists\n    const hasRespond = this.children.some(\n      (child) => child.messageType === QueryCreateContext.RESPOND\n    );\n\n    // 3. Check if all children are FOLLOWUPs and none are RESPONDs\n    const onlyFollowUps = this.children.every(\n      (child) => child.messageType === QueryCreateContext.FOLLOWUP\n    );\n\n    if (onlyFollowUps && !hasRespond) {\n      return new Date(lastChild.createdOn);\n    }\n\n    // 4. If RESPOND exists, get latest FOLLOWUP\n    // If no RESPOND, but there is at least one FOLLOWUP, return the last FOLLOWUP\n    const lastFollowUp = [...this.children]\n      .reverse()\n      .find((child) => child.messageType === QueryCreateContext.FOLLOWUP);\n\n    if (lastFollowUp) {\n      return new Date(lastFollowUp.createdOn);\n    }\n\n    // 5. Legacy fallback: no messageType at all\n    if (allChildrenLackMessageType) {\n      const index = childrenCount % 2 === 0 ? childrenCount - 1 : childrenCount - 2;\n      return new Date(this.children[index]?.createdOn);\n    }\n\n    // 6. Final fallback: return last child's date\n    return new Date(this.lastSubmittedMessage.createdOn);\n  }\n\n  public get lastResponseBy(): string {\n    return this.children?.length > 0 ? this.lastSubmittedMessage.name : '';\n  }\n\n  public get lastResponseDate(): Date | null {\n    const childrenCount = this.children.length;\n    if (childrenCount === 0) {\n      return null;\n    }\n\n    const lastChild = this.children[childrenCount - 1];\n\n    if (\n      lastChild?.messageType === QueryCreateContext.FOLLOWUP &&\n    !this.children.some((child) => child.messageType === QueryCreateContext.RESPOND)\n    ) {\n      return null;\n    }\n\n    let index: number;\n    if (childrenCount === 1) {\n      index = 0;\n    } else {\n      index = childrenCount % 2 === 1 ? childrenCount - 1 : childrenCount - 2;\n    }\n\n    return new Date(this.children[index].createdOn);\n  }\n\n  public get responseStatus(): QueryItemResponseStatus {\n    const isThreadClosed = (item: QueryListItem): boolean => {\n      if (item.isClosed === 'Yes') {\n        return true;\n      }\n      return item.children?.some((child) => isThreadClosed(child)) || false;\n    };\n\n    if (isThreadClosed(this)) {\n      return QueryItemResponseStatus.CLOSED;\n    }\n\n    const lastMessageType = this.children?.length\n      ? this.children[this.children.length - 1]?.messageType\n      : undefined;\n\n    if (lastMessageType && lastMessageType === QueryCreateContext.RESPOND) {\n      return QueryItemResponseStatus.RESPONDED;\n    } else if (lastMessageType && lastMessageType === QueryCreateContext.FOLLOWUP) {\n      return QueryItemResponseStatus.AWAITING;\n    }\n\n    if (this.messageIndexInParent !== null) {\n      return this.messageIndexInParent % 2 === 0\n        ? QueryItemResponseStatus.RESPONDED\n        : QueryItemResponseStatus.AWAITING;\n    }\n\n    // Parent logic (children count)\n    if (this.children && this.children.length > 0) {\n      return this.children.length % 2 === 1\n        ? QueryItemResponseStatus.RESPONDED\n        : QueryItemResponseStatus.AWAITING;\n    }\n\n    // No children — still awaiting\n    return QueryItemResponseStatus.AWAITING;\n  }\n}\n","import { CaseQueriesCollection, QueryMessage } from '../../case-queries-collection.model';\nimport { QueryListItem } from '../query-list-item/query-list-item.model';\n\nexport class QueryListData {\n  public partyName: string;\n  public roleOnCase: string;\n  public queries: QueryListItem[];\n\n  constructor(caseQueriesCollection: CaseQueriesCollection) {\n    this.partyName = caseQueriesCollection.partyName;\n    this.roleOnCase = caseQueriesCollection.roleOnCase;\n    // get the parent messages (messages without parentId) and add the children to them\n    const parentMessages = caseQueriesCollection.caseMessages.filter((message: QueryMessage) => !message.value.parentId);\n    this.queries = parentMessages.map((message: QueryMessage) => this.buildQueryListItem(message, caseQueriesCollection.caseMessages));\n  }\n\n  private buildQueryListItem(message: QueryMessage, allMessages: QueryMessage[]): QueryListItem {\n    const childrenMessages = allMessages.filter(\n      (childMessage: QueryMessage) => childMessage.value.parentId === message.value.id\n    );\n\n    const children: QueryListItem[] = childrenMessages.map((childMessage, index) => {\n      const childItem = this.buildQueryListItem(childMessage, allMessages);\n      childItem.messageIndexInParent = index; // Assign index for status logic\n      return childItem;\n    });\n\n    const queryListItem = new QueryListItem();\n    Object.assign(queryListItem, {\n      ...message.value,\n      children\n    });\n\n    return queryListItem;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Document, FormDocument, CaseField } from '../../../../domain';\nimport { CaseMessage, QueryCreateContext, QueryListItem } from '../models';\nimport { v4 as uuidv4 } from 'uuid';\nimport moment from 'moment';\n\n@Injectable()\nexport class QueryManagementUtils {\n  private static readonly caseLevelCaseFieldId = 'CaseQueriesCollection';\n  public static readonly FIELD_TYPE_COLLECTION = 'Collection';\n  public static readonly FIELD_TYPE_COMPLEX = 'Complex';\n  public static readonly DISPLAY_CONTEXT_READONLY = 'READONLY';\n\n  public static extractCaseQueriesFromCaseField(caseField: CaseField) {\n    const { field_type, value, display_context } = caseField;\n\n    // Handle Complex type fields\n    if (field_type.type === QueryManagementUtils.FIELD_TYPE_COMPLEX) {\n      if (field_type.id === QueryManagementUtils.caseLevelCaseFieldId && display_context !== QueryManagementUtils.DISPLAY_CONTEXT_READONLY && QueryManagementUtils.isNonEmptyObject(value)) {\n        return value;\n      }\n      return null;\n    }\n  }\n\n  public static documentToCollectionFormDocument(document: Document): { id: string; value: FormDocument } {\n    return {\n      id: null,\n      value: {\n        document_filename: document?.originalDocumentName,\n        document_url: document?._links?.self?.href,\n        document_binary_url: document?._links?.binary?.href\n      }\n    };\n  }\n\n  public static getNewQueryData(formGroup: FormGroup, currentUserDetails: any, isHmctsStaff: string): CaseMessage {\n    const attachments = formGroup.get('attachments').value;\n    const formDocument = attachments.map((document) => this.documentToCollectionFormDocument(document));\n    const currentUserId = currentUserDetails?.uid || currentUserDetails?.id;\n    const currentUserName = currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`;\n    const subject = formGroup.get('subject').value.trim();\n    const body = formGroup.get('body').value.trim();\n    const isHearingRelated = formGroup.get('isHearingRelated').value ? 'Yes' : 'No';\n    const hearingDate = (isHearingRelated === 'Yes')\n      ? this.formattedDate(formGroup.get('hearingDate').value)\n      : null;\n\n    const message: CaseMessage = {\n      id: uuidv4(),\n      subject,\n      name: currentUserName,\n      body,\n      attachments: formDocument,\n      isHearingRelated,\n      hearingDate,\n      createdOn: new Date(),\n      createdBy: currentUserId,\n      messageType: QueryCreateContext.FOLLOWUP // Default to value new queries will be FOLLOWUP\n    };\n\n    // Add isHmctsStaff only when the user is HMCTS staff and is permitted to create a new query\n    if (typeof isHmctsStaff === 'string' && isHmctsStaff.trim().toLowerCase() === 'yes') {\n      message.isHmctsStaff = isHmctsStaff;\n    }\n\n    return message;\n  }\n\n  public static getRespondOrFollowupQueryData(formGroup: FormGroup, queryItem: QueryListItem, currentUserDetails: any, messageTypeParam: string, isHmctsStaff: string): CaseMessage {\n    const currentUserId = currentUserDetails?.uid || currentUserDetails?.id;\n    const currentUserName = currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`;\n    const body = formGroup.get('body').value.trim();\n    const attachments = formGroup.get('attachments').value;\n    const formDocument = attachments.map((document) => this.documentToCollectionFormDocument(document));\n    const isClosed = formGroup.get('closeQuery').value ? 'Yes' : 'No';\n\n    const messageType =\n      messageTypeParam === QueryCreateContext.RESPOND\n        ? QueryCreateContext.RESPOND\n        : messageTypeParam === QueryCreateContext.FOLLOWUP\n          ? QueryCreateContext.FOLLOWUP\n          : undefined;\n\n    const message: CaseMessage = {\n      id: uuidv4(),\n      subject: queryItem.subject.trim(),\n      name: currentUserName,\n      body,\n      attachments: formDocument,\n      isHearingRelated: queryItem.isHearingRelated,\n      hearingDate: queryItem.hearingDate,\n      createdOn: new Date(),\n      createdBy: currentUserId,\n      parentId: queryItem.id,\n      isClosed,\n      messageType\n    };\n\n    // To be implemented later, once  service have don't their configuration\n    // Add isHmctsStaff when the user is HMCTS staff and responsding to a query\n    // if (typeof isHmctsStaff === 'string' && isHmctsStaff) {\n    //   message.isHmctsStaff = isHmctsStaff;\n    // }\n\n    return message;\n  }\n\n  public static isObject(elem: any): boolean {\n    return typeof elem === 'object' && elem !== null;\n  }\n\n  public static isNonEmptyObject(elem: any): boolean {\n    return this.isObject(elem) && Object.keys(elem).length !== 0;\n  }\n\n  private static formattedDate(date): string {\n    const formattedDate = moment(date).format('YYYY-MM-DD');\n    return formattedDate;\n  }\n}\n","export const CASE_QUERIES_COLLECTION_ID = 'CaseQueriesCollection';\nexport const FIELD_TYPE_COMPLEX = 'Complex';\nexport const DISPLAY_CONTEXT_READONLY = 'READONLY';\nexport const QM_SELECT_FIRST_COLLECTION = 'selectFirstCollection';\nexport const QM_COLLECTION_PROMPT = 'promptQmCollection';\nexport const CIVIL_JURISDICTION = 'CIVIL';\n\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { CaseField, CaseEventTrigger, CaseView } from '../../../../../../lib/shared/domain';\nimport { QmCaseQueriesCollection, QueryCreateContext, QueryListItem, CaseQueriesCollection } from '../models';\nimport { SessionStorageService } from '../../../../services';\nimport { isInternalUser, isJudiciaryUser, USER_DETAILS } from '../../../../utils';\nimport { QueryManagementUtils } from '../utils/query-management.utils';\nimport {\n  CASE_QUERIES_COLLECTION_ID,\n  FIELD_TYPE_COMPLEX,\n  DISPLAY_CONTEXT_READONLY,\n  QM_SELECT_FIRST_COLLECTION,\n  QM_COLLECTION_PROMPT,\n  CIVIL_JURISDICTION\n} from '../constants/query-management.constants';\nimport { FormGroup } from '@angular/forms';\n\n@Injectable({ providedIn: 'root' })\n\nexport class QueryManagementService {\n  public caseQueriesCollections: CaseQueriesCollection[];\n  public fieldId: string;\n\n  constructor(\n    private readonly router: Router,\n    private readonly sessionStorageService: SessionStorageService\n  ) {}\n\n  public isInternalUser(): boolean {\n    return isInternalUser(this.sessionStorageService);\n  }\n\n  public isJudiciaryUser(): boolean {\n    return isJudiciaryUser(this.sessionStorageService);\n  }\n\n  public generateCaseQueriesCollectionData(\n    formGroup: FormGroup,\n    queryCreateContext: QueryCreateContext,\n    queryItem: QueryListItem,\n    messageId?: string // Get the message ID from route params (if present)\n  ): QmCaseQueriesCollection {\n    let currentUserDetails;\n\n    try {\n      currentUserDetails = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));\n    } catch (e) {\n      console.error('Could not parse USER_DETAILS from session storage:', e);\n      currentUserDetails = {};\n    }\n\n    const isHmctsStaff= (this.isJudiciaryUser() || this.isInternalUser()) ? 'Yes' : 'No';\n    const caseMessage = queryCreateContext === QueryCreateContext.NEW_QUERY\n      ? QueryManagementUtils.getNewQueryData(formGroup, currentUserDetails, isHmctsStaff)\n      : QueryManagementUtils.getRespondOrFollowupQueryData(formGroup, queryItem, currentUserDetails, queryCreateContext, isHmctsStaff);\n\n    const isNewQuery = queryCreateContext === QueryCreateContext.NEW_QUERY; // Check if this is a new query\n\n    // Check if the field ID has been set dynamically\n    if (!this.fieldId) {\n      console.error('Error: Field ID for CaseQueriesCollection not found. Cannot proceed with data generation.');\n      this.router.navigate(['/', 'service-down']);\n      throw new Error('Field ID for CaseQueriesCollection not found. Aborting query data generation.');\n    }\n\n    // Initialize new query data structure\n    const newQueryData: QmCaseQueriesCollection = {};\n\n    if (this.caseQueriesCollections?.length) {\n      let matchedCollection;\n\n      // If it's not a new query, try to find the existing collection with the message ID\n      if (!isNewQuery && messageId) {\n        matchedCollection = this.caseQueriesCollections.find((collection) =>\n          collection.caseMessages.some((message) => message.value.id === messageId)\n        );\n      }\n\n      if (matchedCollection) {\n        // Append the new case message to the matched collection's caseMessages\n        matchedCollection.caseMessages.push({\n          id: null,\n          value: caseMessage\n        });\n\n        // Add the matched collection to newQueryData\n        newQueryData[this.fieldId] = {\n          ...matchedCollection, // Keep existing data intact\n          caseMessages: [...matchedCollection.caseMessages] // Append the updated messages array\n        };\n      } else {\n        // Use partyName from the first collection (assumption: all share the same party)\n        const originalPartyName = this.caseQueriesCollections?.[0]?.partyName ?? currentUserDetails?.name;\n\n        // If no collection matches, or it's a new query\n        newQueryData[this.fieldId] = {\n          partyName: originalPartyName,\n          roleOnCase: '', // Not returned by CCD\n          caseMessages: [\n            {\n              id: null,\n              value: caseMessage\n            }\n          ]\n        };\n\n        // If caseQueriesCollections is not empty, append its data\n        newQueryData[this.fieldId].caseMessages.push(\n          ...this.caseQueriesCollections.flatMap((collection) => collection.caseMessages)\n        );\n      }\n    } else {\n      // If there are no existing collections, create a new one (e.g., for new queries)\n      newQueryData[this.fieldId] = {\n        partyName: currentUserDetails?.name || `${currentUserDetails?.forename} ${currentUserDetails?.surname}`, // Not returned by CCD\n        roleOnCase: '', // Not returned by CCD\n        caseMessages: [\n          {\n            id: null,\n            value: caseMessage\n          }\n        ]\n      };\n    }\n    return newQueryData;\n  }\n\n  public setCaseQueriesCollectionData(\n    eventData: CaseEventTrigger,\n    queryCreateContext: QueryCreateContext,\n    caseDetails: CaseView,\n    messageId?: string\n  ): void {\n    const resolvedFieldId = this.resolveFieldId(eventData, queryCreateContext, caseDetails, messageId);\n\n    if (!resolvedFieldId) {\n      console.error('Failed to resolve fieldId for CaseQueriesCollection. Cannot proceed.');\n      return;\n    }\n\n    this.fieldId = resolvedFieldId;\n\n    this.caseQueriesCollections = eventData.case_fields.reduce((acc, field) => {\n      if (field.id === this.fieldId) {\n        const extracted = QueryManagementUtils.extractCaseQueriesFromCaseField(field);\n        if (extracted && typeof extracted === 'object') {\n          acc.push(extracted);\n        }\n      }\n      return acc;\n    }, []);\n  }\n\n  private resolveFieldId(\n    eventData: CaseEventTrigger,\n    queryCreateContext: QueryCreateContext,\n    caseDetails: CaseView,\n    messageId?: string\n  ): string | null {\n  // Step 1: Filter candidate fields (must be editable CaseQueriesCollection fields)\n    const candidateFields = eventData?.case_fields?.filter(\n      (field) =>\n        field.field_type.id === CASE_QUERIES_COLLECTION_ID &&\n      field.field_type.type === FIELD_TYPE_COMPLEX &&\n      field.display_context !== DISPLAY_CONTEXT_READONLY\n    );\n\n    if (!candidateFields?.length) {\n      console.warn('No editable CaseQueriesCollection fields found.');\n      return null;\n    }\n\n    const numberOfCollections = candidateFields.length;\n    const jurisdictionId = caseDetails?.case_type?.jurisdiction?.id ?? '';\n\n    // Step 2: If messageId is present, try to locate the field containing that message\n    if (messageId) {\n      const fieldByMessage = candidateFields.find((field) =>\n        field?.value?.caseMessages?.some((msg) => msg?.value?.id === messageId)\n      );\n      if (fieldByMessage) {\n        return fieldByMessage.id; // Found the matching field by message ID\n      }\n    }\n\n    // Step 3: Handle new queries\n    if (queryCreateContext === QueryCreateContext.NEW_QUERY) {\n    // If there's only one collection, use it\n      if (numberOfCollections === 1) {\n        return candidateFields[0].id;\n      }\n\n      // For multiple collections, use jurisdiction-based resolution strategy\n      if (this.getCollectionSelectionMethod(jurisdictionId) === QM_SELECT_FIRST_COLLECTION) {\n      // Choose the one with the lowest order from the first wizard page\n        const firstOrdered = this.getCaseQueriesCollectionFieldOrderFromWizardPages(eventData);\n        if (firstOrdered) {\n          return firstOrdered.id;\n        }\n      } else {\n        console.error(`Error: Multiple CaseQueriesCollections are not supported yet for the ${jurisdictionId} jurisdiction`);\n        return null;\n      }\n    }\n\n    // Step 4: Fallback — if none of the above succeeded\n    console.warn('Could not determine fieldId for context:', queryCreateContext);\n    return null;\n  }\n\n  private getCaseQueriesCollectionFieldOrderFromWizardPages(eventData: CaseEventTrigger): CaseField | undefined {\n    const candidateFields = eventData?.case_fields?.filter(\n      (field) =>\n        field.field_type.id === CASE_QUERIES_COLLECTION_ID &&\n        field.field_type.type === FIELD_TYPE_COMPLEX &&\n        field.display_context !== DISPLAY_CONTEXT_READONLY\n    );\n\n    if (!candidateFields?.length) {\n      return undefined;\n    }\n\n    const firstPageFields = eventData?.wizard_pages?.[0]?.wizard_page_fields;\n\n    if (!firstPageFields) {\n      return undefined;\n    }\n\n    return candidateFields\n      .map((field) => {\n        const wizardField = firstPageFields.find((f) => f.case_field_id === field.id);\n        return { field, order: wizardField?.order ?? Number.MAX_SAFE_INTEGER };\n      })\n      .sort((a, b) => a.order - b.order)[0]?.field;\n  }\n\n  private getCollectionSelectionMethod(jurisdiction: string): string {\n    return jurisdiction.toUpperCase() === CIVIL_JURISDICTION ? QM_SELECT_FIRST_COLLECTION : QM_COLLECTION_PROMPT;\n  }\n}\n\n","<ng-container *ngIf=\"qualifyingQuestionsControl\">\n  <div class=\"govuk-form-group\" [class.govuk-form-group--error]=\"displayError\">\n    <fieldset class=\"govuk-fieldset\">\n      <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n        <h1 class=\"govuk-fieldset__heading\">\n          {{ 'Raise a new query' | rpxTranslate }}\n        </h1>\n      </legend>\n      <h2 class=\"govuk-heading-m govuk-!-margin-top-10\">\n        {{ 'What do you need help to do?' | rpxTranslate }}\n      </h2>\n\n      <ng-container *ngIf=\"displayError\">\n        <p class=\"govuk-error-message\">\n          <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{\n          qualifyingQuestionsErrorMessage.SELECT_AN_OPTION | rpxTranslate }}\n        </p>\n      </ng-container>\n\n      <div class=\"govuk-radios\" data-module=\"govuk-radios\">\n        <ng-container *ngFor=\"let qualifyingQuestion of qualifyingQuestions$ | async; let isLast = last\">\n          <ng-container *ngIf=\"isLast\">\n            <div class=\"qm-qualifying-question__divider\">{{ 'If your issue is not covered by the options above, raise a query:' | rpxTranslate }}</div>\n          </ng-container>\n          <div class=\"govuk-radios__item\">\n            <input class=\"govuk-radios__input\" \n              id=\"{{qualifyingQuestion.name}}\" \n              name=\"qualifyingQuestionOption\"\n              type=\"radio\" [formControl]=\"qualifyingQuestionsControl\" \n              [value]=\"qualifyingQuestion\"\n              (change)=\"onSelectionChange(qualifyingQuestion)\">\n            <label class=\"govuk-label govuk-radios__label\" [for]=\"qualifyingQuestion.name\">{{ qualifyingQuestion.name |\n              rpxTranslate }}</label>\n          </div>\n        </ng-container>\n      </div>\n    </fieldset>\n  </div>\n</ng-container>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { QualifyingQuestionsErrorMessage } from '../../../enums';\nimport { QualifyingQuestion } from '../../../models';\nimport { QualifyingQuestionService } from '../../../services';\n\n@Component({\n  selector: 'ccd-qualifying-question-options',\n  templateUrl: './qualifying-question-options.component.html',\n  standalone: false\n})\nexport class QualifyingQuestionOptionsComponent implements OnInit {\n  @Input() public qualifyingQuestionsControl: FormControl;\n  @Input() public qualifyingQuestions$: Observable<QualifyingQuestion[]>;\n  @Output() questionSelected = new EventEmitter<QualifyingQuestion>();\n\n  public qualifyingQuestionsErrorMessage = QualifyingQuestionsErrorMessage;\n  public caseId: string;\n  public jurisdiction: string;\n  public caseType: string;\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly router: Router,\n    private readonly qualifyingQuestionService: QualifyingQuestionService) {\n  }\n\n  public ngOnInit(): void {\n    this.caseId = this.route.snapshot.params.cid;\n    this.jurisdiction = this.route.snapshot.params.jurisdiction;\n    this.caseType = this.route.snapshot.params.caseType;\n\n    // Check if there's already a selected qualifying question from the service\n    const savedSelection = this.qualifyingQuestionService.getQualifyingQuestionSelection();\n    if (savedSelection) {\n      this.qualifyingQuestionsControl.setValue(savedSelection);\n    }\n  }\n\n  public click(): void {\n    this.router.navigate(['cases', 'case-details', this.jurisdiction, this.caseType, this.caseId], { fragment: 'Queries' });\n  }\n\n  public get displayError(): boolean {\n    return this.qualifyingQuestionsControl.touched && this.qualifyingQuestionsControl.hasError('required');\n  }\n\n  public onSelectionChange(qualifyingQuestion: QualifyingQuestion) {\n    this.questionSelected.emit(qualifyingQuestion);\n  }\n}\n\n","<ng-container *ngIf=\"attachments?.length > 0\">\n  <ccd-read-collection-field\n    *ngIf=\"attachments?.length > 0\"\n    [caseField]=\"caseFieldWithAttachments\"\n  >\n  </ccd-read-collection-field>\n</ng-container>\n","import { Component, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { CaseField, FieldType, FormDocument } from '../../../../../domain';\n\n@Component({\n  selector: 'ccd-query-attachments-read',\n  templateUrl: './query-attachments-read.component.html',\n  styleUrls: ['./query-attachments-read.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false\n})\nexport class QueryAttachmentsReadComponent implements OnChanges {\n  @Input() public attachments: FormDocument[];\n  public caseFieldWithAttachments: CaseField;\n\n  public ngOnChanges(): void {\n    this.caseFieldWithAttachments = Object.assign(new CaseField(), {\n      id: '',\n      label: '',\n      hint_text: '',\n      field_type: Object.assign(new FieldType(), {\n        id: 'QueryDocuments',\n        type: 'QueryDocuments',\n        min: null,\n        max: null,\n        regular_expression: null,\n        fixed_list_items: [],\n        complex_fields: [],\n        collection_field_type: Object.assign(new FieldType(), {\n          id: 'Document',\n          type: 'Document',\n          min: null,\n          max: null,\n          regular_expression: null,\n          fixed_list_items: [],\n          complex_fields: [],\n          collection_field_type: null\n        })\n      }),\n      display_context_parameter: '#COLLECTION(allowInsert,allowUpdate)',\n      value: []\n    });\n\n    this.caseFieldWithAttachments.value = this.attachments;\n  }\n}\n","<h1 *ngIf=\"!caseTitle.label\" class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n<div *ngIf=\"caseTitle.label\" class=\"case-title\">\n  <ccd-label-field [caseField]=\"caseTitle\" [caseFields]=\"caseFields\"></ccd-label-field>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CaseView } from '../../../../../domain/case-view/case-view.model';\nimport { CaseField } from '../../../../../domain/definition/case-field.model';\n\n@Component({\n  selector: 'ccd-query-case-details-header',\n  templateUrl: './query-case-details-header.component.html',\n  standalone: false\n})\n\nexport class QueryCaseDetailsHeaderComponent implements OnInit {\n  @Input() public caseDetails: CaseView;\n  public caseTitle: CaseField;\n  public caseFields: CaseField[];\n\n  public ngOnInit(): void {\n    this.caseTitle = new CaseField();\n    this.caseTitle.label = this.caseDetails?.state?.title_display;\n    this.caseFields = this.getCaseFieldsInfo();\n  }\n\n  private getCaseFieldsInfo(): CaseField[] {\n    const caseDataFields = this.caseDetails?.tabs?.reduce((acc, tab) => {\n      return acc.concat(tab.fields);\n    }, []);\n\n    return caseDataFields.concat(this.caseDetails.metadataFields);\n  }\n}\n","<div class=\"govuk-grid-row\" *ngIf=\"readyToSubmit\">\n  <div class=\"govuk-grid-column-two-thirds-from-desktop\">\n    <!-- Error message summary -->\n    <div *ngIf=\"errorMessages.length > 0\" class=\"govuk-error-summary\"\n      aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n      data-module=\"govuk-error-summary\">\n     <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n       {{ 'There is a problem' | rpxTranslate }}\n     </h2>\n     <div class=\"govuk-error-summary__body\">\n       <ul class=\"govuk-list govuk-error-summary__list\">\n         <li *ngFor=\"let errorMessage of errorMessages\">\n           <a [id]=\"'error-' + errorMessage.fieldId\" href=\"#\" (click)=\"$event.preventDefault()\"\n             class=\"validation-error\">{{ errorMessage.description | rpxTranslate }}</a>\n         </li>\n       </ul>\n     </div>\n   </div>\n\n   <div *ngIf=\"error && (error.details || error.message)\" class=\"error-summary\" role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n    <h3 class=\"heading-h3 error-summary-heading\" id=\"event_error-summary-heading\">\n      The event could not be created\n    </h3>\n    <p>{{error.message}}</p>\n    <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n      <li *ngFor=\"let fieldError of error.details.field_errors\" class=\"ccd-error-summary-li\">{{fieldError.message}}</li>\n    </ul>\n  </div>\n\n  <ccd-callback-errors [callbackErrorsSubject]=\"callbackErrorsSubject\"></ccd-callback-errors>\n\n    <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY\">\n      <div class=\"govuk-caption-l\">{{ 'Raise a query' | rpxTranslate }}</div>\n    </ng-container>\n\n    <h1 class=\"govuk-heading-l\">\n      <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND; else defaultCheckYourAnswersTitle\">\n        {{ 'Review query response details' | rpxTranslate }}\n      </ng-container>\n\n      <ng-template #defaultCheckYourAnswersTitle>\n        {{ 'Review query details' | rpxTranslate }}\n      </ng-template>\n    </h1>\n    <div class=\"govuk-!-margin-bottom-4\">\n      <ccd-query-case-details-header [caseDetails]=\"caseDetails\"></ccd-query-case-details-header>\n    </div>\n\n    <dl *ngIf=\"queryCreateContext !== queryCreateContextEnum.FOLLOWUP\" class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n      <div class=\"govuk-summary-list__row\">\n        <dt class=\"govuk-summary-list__key\">\n          {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Submitted query' : 'Query subject' | rpxTranslate }}\n        </dt>\n        <dd class=\"govuk-summary-list__value\">\n          {{ queryCreateContext === queryCreateContextEnum.RESPOND ? queryItem.subject : formGroup.get('subject')?.value }}\n        </dd>\n        <dd class=\"govuk-summary-list__actions\">\n          <button type=\"button\"  *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY\" \n            class=\"govuk-js-link\" (click)=\"goBack()\">\n            {{ 'Change' | rpxTranslate }}\n        </button>\n        </dd>\n      </div>\n    </dl>\n\n    <dl class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n      <div class=\"govuk-summary-list__row\">\n        <dt class=\"govuk-summary-list__key\">\n          {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Response detail' : 'Query detail' | rpxTranslate }}\n        </dt>\n        <dd class=\"govuk-summary-list__value\">\n          {{ formGroup.get('body')?.value }}\n        </dd>\n        <dd class=\"govuk-summary-list__actions\">\n          <button type=\"button\" class=\"govuk-js-link\" (click)=\"goBack()\">\n            {{ 'Change' | rpxTranslate }}\n          </button>\n        </dd>\n      </div>\n    </dl>\n\n    <dl *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY\" class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n      <div class=\"govuk-summary-list__row\">\n        <dt class=\"govuk-summary-list__key\">\n          {{ 'Is the query hearing related?' | rpxTranslate }}\n        </dt>\n        <dd class=\"govuk-summary-list__value\">\n          <ng-container *ngIf=\"formGroup.get('isHearingRelated')?.value === true; else isHearingRelatedFalse\">\n            {{ 'Is the query hearing related?' | rpxTranslate: null : 'Yes' }}\n          </ng-container>\n          <ng-template #isHearingRelatedFalse>\n            {{ 'Is the query hearing related?' | rpxTranslate: null : 'No' }}\n          </ng-template>\n        </dd>\n        <dd class=\"govuk-summary-list__actions\">\n          <button type=\"button\" class=\"govuk-js-link\" (click)=\"goBack()\">\n            {{ 'Change' | rpxTranslate }}\n          </button>\n        </dd>\n      </div>\n\n      <div *ngIf=\"formGroup.get('isHearingRelated')?.value\" class=\"govuk-summary-list__row\">\n        <dt class=\"govuk-summary-list__key\">\n          {{ queryCreateContext === queryCreateContextEnum.NEW_QUERY\n            ? 'What is the date of the hearing?'\n            : 'What is the date of the hearing your query is related to?' | rpxTranslate }}\n        </dt>\n        <dd class=\"govuk-summary-list__value\">\n          {{ formGroup.get('hearingDate')?.value | date: 'dd MMM yyyy' }}\n        </dd>\n        <dd class=\"govuk-summary-list__actions\">\n          <button type=\"button\" class=\"govuk-js-link\" (click)=\"goBack()\">\n            {{ 'Change' | rpxTranslate }}\n          </button>\n        </dd>\n      </div>\n    </dl>\n    <dl class=\"govuk-summary-list govuk-!-margin-bottom-0\" *ngIf=\"this.formGroup.get('attachments').value.length > 0\">\n      <div class=\"govuk-summary-list__row\">\n        <dt class=\"govuk-summary-list__key\">\n          {{ queryCreateContext === queryCreateContextEnum.NEW_QUERY ? 'Upload a file to the query' : 'Document attached' | rpxTranslate }}\n        </dt>\n        <dd class=\"govuk-summary-list__value govuk-summary-list__value--documentAttached\">\n          <ccd-query-attachments-read\n            *ngIf=\"this.formGroup.get('attachments').value\"\n            [attachments]=\"attachments\"\n          >\n          </ccd-query-attachments-read>\n        </dd>\n        <dd class=\"govuk-summary-list__actions\">\n          <button type=\"button\" class=\"govuk-js-link\" (click)=\"goBack()\">\n            {{ 'Change' | rpxTranslate }}\n          </button>\n        </dd>\n      </div>\n    </dl>\n\n    <dl *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\" class=\"govuk-summary-list govuk-!-margin-bottom-0\">\n      <div class=\"govuk-summary-list__row\">\n        <dt class=\"govuk-summary-list__key\">\n          {{ 'Closing the query' | rpxTranslate }}\n        </dt>\n        <dd class=\"govuk-summary-list__value\">\n          {{ formGroup.get('closeQuery')?.value ? 'I want to close this query' : 'No answer' | rpxTranslate }}\n        </dd>\n        <dd class=\"govuk-summary-list__actions\">\n          <button type=\"button\" class=\"govuk-js-link\" (click)=\"goBack()\">\n            {{ 'Change' | rpxTranslate }}\n          </button>\n        </dd>\n      </div>\n    </dl>\n\n    <br>\n\n    <div>\n      <button class=\"govuk-button govuk-button--secondary govuk-!-margin-right-3\" data-module=\"govuk-button\"\n        (click)=\"goBack()\">\n        {{ 'Previous' | rpxTranslate }}\n      </button>\n      <button class=\"govuk-button\" data-module=\"govuk-button\" type=\"submit\" (click)=\"submit()\">\n        {{ 'Submit' | rpxTranslate }}\n      </button>\n    </div>\n  </div>\n\n  <ccd-query-event-completion [eventCompletionParams]=\"eventCompletionParams\">    \n  </ccd-query-event-completion>\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { switchMap, take } from 'rxjs/operators';\nimport {\n  CaseEventTrigger,\n  CaseView,\n  CaseViewTrigger,\n  ErrorMessage,\n  HttpError\n} from '../../../../../../../lib/shared/domain';\nimport { EventCompletionParams } from '../../../../case-editor/domain/event-completion-params.model';\nimport { CaseNotifier, CasesService, WorkAllocationService } from '../../../../case-editor/services';\nimport { CaseQueriesCollection, QmCaseQueriesCollection, QueryCreateContext, QueryListItem } from '../../models';\nimport { QueryManagementUtils } from '../../utils/query-management.utils';\nimport { FormDocument } from '../../../../../../../lib/shared/domain/document';\nimport { QualifyingQuestionService } from '../../services/qualifying-question.service';\nimport { Task } from '../../../../../domain/work-allocation/Task';\nimport { QueryManagementService } from '../../services/query-management.service';\nimport {\n  AlertService,\n  ErrorNotifierService\n} from '../../../../../services';\n\n@Component({\n  selector: 'ccd-query-check-your-answers',\n  templateUrl: './query-check-your-answers.component.html',\n  styleUrls: ['./query-check-your-answers.component.scss'],\n  standalone: false\n})\nexport class QueryCheckYourAnswersComponent implements OnInit, OnDestroy {\n  private readonly RAISE_A_QUERY_EVENT_TRIGGER_ID = 'queryManagementRaiseQuery';\n  private readonly RESPOND_TO_QUERY_EVENT_TRIGGER_ID = 'queryManagementRespondQuery';\n  private readonly CASE_QUERIES_COLLECTION_ID = 'CaseQueriesCollection';\n\n  public static readonly TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Continue';\n  public static readonly TRIGGER_TEXT_START = 'Continue';\n\n  public readonly FIELD_TYPE_COMPLEX = 'Complex';\n  public readonly DISPLAY_CONTEXT_READONLY = 'READONLY';\n  public readonly QM_SELECT_FIRST_COLLECTION = 'selectFirstCollection';\n  public readonly QM_COLLECTION_PROMPT = 'promptQmCollection';\n  public readonly CIVIL_JURISDICTION = 'CIVIL';\n\n  public triggerTextStart = QueryCheckYourAnswersComponent.TRIGGER_TEXT_START;\n  public triggerTextIgnoreWarnings = QueryCheckYourAnswersComponent.TRIGGER_TEXT_CONTINUE;\n\n  @Input() public formGroup: FormGroup;\n  @Input() public queryItem: QueryListItem;\n  @Input() public queryCreateContext: QueryCreateContext;\n  @Input() public eventData: CaseEventTrigger | null = null;\n  @Input() public multipleFollowUpFeature: boolean;\n  @Input() public qmCaseQueriesCollectionData: QmCaseQueriesCollection;\n  @Output() public backClicked = new EventEmitter<boolean>();\n  @Output() public querySubmitted = new EventEmitter<boolean>();\n  @Output() public callbackConfirmationMessage = new EventEmitter<{ [key: string]: string }>();\n  @Output() public createEventResponse = new EventEmitter<CaseQueriesCollection>();\n\n  private caseViewTrigger: CaseViewTrigger;\n  public caseDetails: CaseView;\n  private queryId: string;\n  private tid: string;\n  private createEventSubscription: Subscription;\n  private searchTasksSubscription: Subscription;\n\n  public queryCreateContextEnum = QueryCreateContext;\n  public eventCompletionParams: EventCompletionParams;\n  public caseQueriesCollections: CaseQueriesCollection[];\n  public fieldId: string;\n  public attachments: FormDocument[];\n\n  public errorMessages: ErrorMessage[] = [];\n  public filteredTasks: Task[] = [];\n  public readyToSubmit: boolean;\n  public isSubmitting: boolean = false;\n  public messageId: string;\n  public callbackErrorsSubject: Subject<any> = new Subject();\n\n  public error: any;\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly router: Router,\n    private readonly casesService: CasesService,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly workAllocationService: WorkAllocationService,\n    private readonly qualifyingQuestionService: QualifyingQuestionService,\n    private queryManagementService: QueryManagementService,\n    private readonly errorNotifierService: ErrorNotifierService,\n    private readonly alertService: AlertService,\n  ) {}\n\n  public ngOnInit(): void {\n    this.queryId = this.route.snapshot.params.qid;\n    this.tid = this.route.snapshot.queryParams?.tid;\n    this.messageId= this.route.snapshot.params.dataid;\n\n    this.caseNotifier.caseView.pipe(take(1)).subscribe((caseDetails) => {\n      this.caseDetails = caseDetails;\n\n      // Find the appropriate event trigger based on the queryCreateContext\n      this.caseViewTrigger = this.caseDetails.triggers.find((trigger) =>\n        this.queryCreateContext !== QueryCreateContext.RESPOND\n        // If the context is not 'RESPOND', find the trigger with the ID for raising a query\n          ? trigger.id === this.RAISE_A_QUERY_EVENT_TRIGGER_ID\n        // If the context is 'RESPOND', find the trigger with the ID for responding to a query\n          : trigger.id === this.RESPOND_TO_QUERY_EVENT_TRIGGER_ID\n      );\n    });\n\n    // Get the document attachments\n    this.getDocumentAttachments();\n\n    this.setCaseQueriesCollectionData();\n\n    if (this.queryCreateContext === QueryCreateContext.RESPOND) {\n      this.searchTasksSubscription = this.workAllocationService.getTasksByCaseIdAndEventId(this.RESPOND_TO_QUERY_EVENT_TRIGGER_ID,\n        this.caseDetails.case_id, this.caseDetails.case_type.id, this.caseDetails.case_type.jurisdiction.id)\n        .subscribe({\n          next: (response: any) => {\n          // Filter task by query id\n            if (this.tid) {\n              if (response.tasks?.length > 1) {\n                this.filteredTasks = response.tasks?.filter((task: Task) => task.id === this.tid);\n              } else {\n                this.filteredTasks = response.tasks;\n              }\n              this.readyToSubmit = true;\n            }\n          },\n          error: (error: HttpError) => {\n            this.readyToSubmit = false;\n            if (error.status !== 401 && error.status !== 403) {\n              this.errorNotifierService.announceError(error);\n              this.alertService.error({ phrase: error.message });\n              console.error('Error occurred while fetching event data:', error);\n              this.callbackErrorsSubject.next(error);\n            } else {\n              this.errorMessages = [\n                {\n                  title: 'Error',\n                  description: 'Something unexpected happened. Please try again later.',\n                  fieldId: 'field-id'\n                }\n              ];\n            }\n\n            window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n          }\n        });\n    } else {\n      this.readyToSubmit = true;\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.createEventSubscription?.unsubscribe();\n    this.searchTasksSubscription?.unsubscribe();\n    this.callbackErrorsSubject?.unsubscribe();\n  }\n\n  public goBack(): void {\n    this.backClicked.emit(true);\n  }\n\n  public submit(): void {\n    if (this.isSubmitting) {\n      return;\n    }\n\n    const data = this.qmCaseQueriesCollectionData;\n    const createEvent$ = this.createEvent(data);\n\n    // Make sure qmCaseQueriesCollectionData is present and non-empty\n    const keys = data && typeof data === 'object' ? Object.keys(data) : [];\n    const fieldId = keys.length ? keys[0] : undefined;\n\n    this.isSubmitting = true;\n\n    if (this.queryCreateContext === QueryCreateContext.RESPOND) {\n      if (this.filteredTasks?.length > 0) {\n        this.createEventSubscription = createEvent$.pipe(\n          switchMap((createEventResponse) => {\n            const confirmationBody = createEventResponse?.after_submit_callback_response?.confirmation_body;\n            const confirmationHeader = createEventResponse?.after_submit_callback_response?.confirmation_header;\n            this.callbackConfirmationMessage.emit({ body: confirmationBody, header: confirmationHeader });\n\n            // Emit the extracted collection value (or null if not found)\n            this.createEventResponse.emit(fieldId ? createEventResponse?.data?.[fieldId] ?? null : null);\n\n            return this.workAllocationService.completeTask(\n              this.filteredTasks[0].id,\n              this.caseViewTrigger.name\n            );\n          })\n        ).subscribe({\n          next: () => this.finaliseSubmission(),\n          error: (error) => this.handleError(error)\n        });\n      } else {\n        console.error('Error: No task to complete was found');\n        this.errorMessages = [\n          {\n            title: 'Error',\n            description: 'No task to complete was found',\n            fieldId: 'field-id'\n          }\n        ];\n        this.isSubmitting = false;\n        window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n        return;\n      }\n    } else {\n      this.createEventSubscription = createEvent$.subscribe({\n        next: (callbackResponse) => {\n          this.finaliseSubmission();\n          const confirmationBody = callbackResponse?.after_submit_callback_response?.confirmation_body;\n          const confirmationHeader = callbackResponse?.after_submit_callback_response?.confirmation_header;\n          this.callbackConfirmationMessage.emit({ body: confirmationBody, header: confirmationHeader });\n          this.createEventResponse.emit(fieldId ? callbackResponse?.data?.[fieldId] ?? null : null);\n        },\n        error: (error) => this.handleError(error)\n      });\n    }\n  }\n\n  private createEvent(data: any): Observable<any> {\n    return this.casesService.createEvent(this.caseDetails, {\n      data,\n      event: {\n        id: this.caseViewTrigger?.id,\n        summary: '',\n        description: this.caseViewTrigger?.description\n      },\n      event_token: this.eventData?.event_token,\n      ignore_warning: false\n    });\n  }\n\n  private finaliseSubmission(): void {\n    this.querySubmitted.emit(true);\n    this.qualifyingQuestionService.clearQualifyingQuestionSelection();\n    this.isSubmitting = false;\n  }\n\n  private handleError(error: any): void {\n    console.error('Error in API calls:', error);\n    this.isSubmitting = false;\n\n    if (this.isServiceErrorFound(error)){\n      this.error = null;\n      this.callbackErrorsSubject.next(error);\n    } else {\n      if (error && error.status !== 401 && error.status !== 403) {\n        this.error = error;\n      } else {\n        this.router.navigate(['/', 'service-down']);\n      }\n    }\n\n    window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n  }\n\n  private getDocumentAttachments(): void {\n    const attachmentsValue = this.formGroup.get('attachments').value;\n    if (attachmentsValue && attachmentsValue.length > 0) {\n      const documents = attachmentsValue;\n      this.attachments = documents.map(QueryManagementUtils.documentToCollectionFormDocument);\n    }\n  }\n\n  public isServiceErrorFound(error: any): boolean {\n    return !!(error?.callbackErrors?.length);\n  }\n\n  public setCaseQueriesCollectionData(): void {\n    if (!this.eventData) {\n      console.warn('Event data not available; skipping collection setup.');\n    }\n\n    this.queryManagementService.setCaseQueriesCollectionData(\n      this.eventData,\n      this.queryCreateContext,\n      this.caseDetails,\n      this.messageId\n    );\n  }\n}\n","<ng-container *ngIf=\"query\">\n  <p *ngIf=\"showItem\">\n    <br />\n    <button type=\"button\" class=\"govuk-js-link\" (click)=\"onBack()\">{{ 'Back to query list' | rpxTranslate }}</button>\n  </p>\n  <div>\n    <table class=\"govuk-table query-details-table\" [attr.aria-describedby]=\"'Details of the query' | rpxTranslate\">\n      <caption class=\"govuk-table__caption govuk-table__caption--l\">\n        <div>{{ 'Query details' | rpxTranslate }}</div>\n      </caption>\n      <tbody class=\"govuk-table__body\">\n      <tr class=\"govuk-table__row\">\n        <th scope=\"row\" class=\"govuk-table__header\">{{ 'Sender name' | rpxTranslate }}</th>\n        <td class=\"govuk-table__cell\">{{ query.name }} @if (query?.isHmctsStaff?.toLowerCase() === 'yes') { - {{ hmctsStaff }} }</td>\n      </tr>\n      <tr class=\"govuk-table__row\">\n        <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last submitted by' | rpxTranslate }}</th>\n        <td class=\"govuk-table__cell\">{{ query.lastSubmittedBy }} @if (query?.isHmctsStaff?.toLowerCase() === 'yes') { - {{ hmctsStaff }} }</td>\n      </tr>\n      <tr class=\"govuk-table__row\">\n        <th scope=\"row\" class=\"govuk-table__header\">{{ 'Submission date' | rpxTranslate }}</th>\n        <td class=\"govuk-table__cell\">{{ query.createdOn | date: 'dd MMMM yyyy HH:mm' }}</td>\n      </tr>\n      <tr class=\"govuk-table__row\">\n        <th scope=\"row\" class=\"govuk-table__header\">{{ 'Query subject' | rpxTranslate }}</th>\n        <td class=\"govuk-table__cell\">{{ query.subject }}</td>\n      </tr>\n      <tr class=\"govuk-table__row\">\n        <th scope=\"row\" class=\"govuk-table__header\">{{ 'Query body' | rpxTranslate }}</th>\n        <td class=\"govuk-table__cell\">{{ query.body }}</td>\n      </tr>\n      <tr class=\"govuk-table__row\">\n        <th scope=\"row\" class=\"govuk-table__header\" [class.govuk-table__header--no-border]=\"query.isHearingRelated\">\n          {{ 'Is the query hearing related?' | rpxTranslate }}\n        </th>\n        <td class=\"govuk-table__cell\" [class.govuk-table__cell--no-border]=\"query.isHearingRelated\">\n          {{ 'Is the query hearing related?' | rpxTranslate: null : (query.isHearingRelated) }}</td>\n      </tr>\n      <tr class=\"govuk-table__row govuk-table__row--isHearingRelated\" *ngIf=\"query.isHearingRelated === 'Yes'\">\n        <th scope=\"row\" class=\"govuk-table__header\">{{ 'What is the date of the hearing?' | rpxTranslate }}</th>\n        <td class=\"govuk-table__cell\">{{ query.hearingDate | date: 'dd MMM yyyy' }}</td>\n      </tr>\n      <tr class=\"govuk-table__row\" *ngIf=\"query.attachments.length > 0\">\n        <th scope=\"row\" class=\"govuk-table__header\">{{ 'Attachments' | rpxTranslate }}</th>\n        <td class=\"govuk-table__cell\">\n          <ccd-query-attachments-read\n            *ngIf=\"query.attachments\"\n            [attachments]=\"query.attachments\"\n          >\n          </ccd-query-attachments-read>\n        </td>\n      </tr>\n      </tbody>\n    </table>\n  </div>\n  <ng-container *ngIf=\"query.children?.length > 0\">\n    <ng-container *ngFor=\"let child of query.children; let i = index;\">\n      <ng-container *ngIf=\"(i % 2 === 0 && !child?.messageType) || (child && child?.messageType === respondToQuery); else followUpMessage\">\n        <table class=\"govuk-table query-details-table\" [attr.aria-describedby]=\"'Response of the query' | rpxTranslate\">\n          <caption class=\"govuk-table__caption govuk-table__caption--l\">\n            <div>{{ 'Response' | rpxTranslate }}</div>\n          </caption>\n          <tbody class=\"govuk-table__body\">\n          <tr class=\"govuk-table__row\">\n            <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last response date' | rpxTranslate }}</th>\n            <td class=\"govuk-table__cell\">{{ child.createdOn | date: 'dd MMMM yyyy HH:mm'  }}</td>\n          </tr>\n\n            <tr *ngIf=\"isInternalUser()\" class=\"govuk-table__row\">\n              <th scope=\"row\" class=\"govuk-table__header\">{{ 'Caseworker name' | rpxTranslate }}</th>\n              <td class=\"govuk-table__cell\">{{ child.name }} @if (child?.isHmctsStaff?.toLowerCase() === 'yes') { - {{ hmctsStaff }} }</td>\n            </tr>\n\n            <tr class=\"govuk-table__row\">\n              <th scope=\"row\" class=\"govuk-table__header\">{{ 'Response detail' | rpxTranslate }}</th>\n              <td class=\"govuk-table__cell\">{{ child.body }}</td>\n            </tr>\n\n          <tr class=\"govuk-table__row\" *ngIf=\"child.attachments.length > 0\">\n            <th scope=\"row\" class=\"govuk-table__header\">{{ 'Attachments' | rpxTranslate }}</th>\n            <td class=\"govuk-table__cell\">\n              <ccd-query-attachments-read\n                *ngIf=\"child.attachments\"\n                [attachments]=\"child.attachments\"\n              >\n              </ccd-query-attachments-read>\n            </td>\n          </tr>\n          </tbody>\n        </table>\n      </ng-container>\n\n      <ng-template #followUpMessage>\n        <!-- <div class=\"query_details_caption\">{{ 'Follow-up' | rpxTranslate }}</div> -->\n        <table class=\"govuk-table query-details-table\"\n               [attr.aria-describedby]=\"'Follow-up of the response' | rpxTranslate\">\n          <caption class=\"govuk-table__caption govuk-table__caption--l\">\n            <div>{{ 'Follow up query' | rpxTranslate }}</div>\n          </caption>\n          <tbody class=\"govuk-table__body\">\n          <tr class=\"govuk-table__row\">\n            <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last submission date' | rpxTranslate }}</th>\n            <td class=\"govuk-table__cell\">{{ child.createdOn | date: 'dd MMMM yyyy HH:mm'}}</td>\n          </tr>\n\n          <tr class=\"govuk-table__row\">\n            <th scope=\"row\" class=\"govuk-table__header\">{{ 'Last submitted by' | rpxTranslate }}</th>\n            <td class=\"govuk-table__cell\">{{ child.name }}</td>\n          </tr>\n\n            <tr class=\"govuk-table__row\">\n              <th scope=\"row\" class=\"govuk-table__header\">{{ 'Query detail' | rpxTranslate }}</th>\n              <td class=\"govuk-table__cell\">{{ child.body }}</td>\n            </tr>\n\n            <tr class=\"govuk-table__row\" *ngIf=\"child.attachments.length > 0\">\n              <th scope=\"row\" class=\"govuk-table__header\">{{ 'Attachments' | rpxTranslate }}</th>\n              <td class=\"govuk-table__cell\">\n                <ccd-query-attachments-read\n                  *ngIf=\"child.attachments\"\n                  [attachments]=\"child.attachments\"\n                >\n                </ccd-query-attachments-read>\n              </td>\n            </tr>\n          </tbody>\n        </table>\n      </ng-template>\n    </ng-container>\n  </ng-container>\n</ng-container>\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { SessionStorageService } from '../../../../../services';\nimport { isInternalUser } from '../../../../../utils';\nimport { QueryItemResponseStatus } from '../../enums';\nimport { QueryCreateContext, QueryListItem } from '../../models';\nimport { CaseNotifier } from '../../../../case-editor/services/case.notifier';\nimport { AbstractAppConfig } from '../../../../../../app.config';\nimport { Subscription } from 'rxjs';\n\n@Component({\n  selector: 'ccd-query-details',\n  templateUrl: './query-details.component.html',\n  styleUrls: ['./query-details.component.scss'],\n  standalone: false\n})\nexport class QueryDetailsComponent implements OnChanges, OnInit, OnDestroy {\n  @Input() public query: QueryListItem;\n  @Input() public caseId: string;\n  @Input() public queryResponseStatus: string;\n\n  @Output() public backClicked: EventEmitter<boolean> = new EventEmitter();\n  @Output() public hasResponded: EventEmitter<boolean> = new EventEmitter();\n\n  public showItem: boolean = true;\n\n  private static readonly QUERY_ITEM_RESPOND = '3';\n  private static readonly QUERY_ITEM_FOLLOW_UP = '4';\n  private queryItemId: string;\n\n  public followUpQuery: string = QueryCreateContext.FOLLOWUP;\n  public respondToQuery: string = QueryCreateContext.RESPOND;\n  public hmctsStaff: string = QueryCreateContext.HMCTSSTAFF;\n  public enableServiceSpecificMultiFollowups: string[];\n  public currentJurisdictionId: string;\n  public isMultipleFollowUpEnabled: boolean = false;\n\n  private caseSubscription: Subscription;\n\n  constructor(\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly route: ActivatedRoute,\n    private readonly router: Router,\n    private readonly abstractConfig: AbstractAppConfig,\n    private readonly caseNotifier: CaseNotifier) { }\n\n  public onBack(): void {\n    this.backClicked.emit(true);\n  }\n\n  public isInternalUser(): boolean {\n    return isInternalUser(this.sessionStorageService);\n  }\n\n  public ngOnInit(): void {\n    this.enableServiceSpecificMultiFollowups = this.abstractConfig.getEnableServiceSpecificMultiFollowups() || [];\n\n    this.caseSubscription = this.caseNotifier.caseView.subscribe((caseView) => {\n      if (caseView?.case_type?.jurisdiction?.id) {\n        this.currentJurisdictionId = caseView.case_type.jurisdiction.id;\n        this.isMultipleFollowUpEnabled = this.enableServiceSpecificMultiFollowups.includes(this.currentJurisdictionId);\n\n        this.hasRespondedToQuery();\n      }\n    });\n  }\n\n  public ngOnChanges(): void {\n    this.toggleLinkVisibility();\n    this.hasRespondedToQuery();\n  }\n\n  public ngOnDestroy(): void {\n    this.caseSubscription?.unsubscribe();\n  }\n\n  public toggleLinkVisibility(): void {\n    this.queryItemId = this.route.snapshot.params.qid as string;\n    if (this.queryItemId === QueryDetailsComponent.QUERY_ITEM_RESPOND || this.queryItemId === QueryDetailsComponent.QUERY_ITEM_FOLLOW_UP) {\n      this.showItem = false;\n    }\n  }\n\n  public hasRespondedToQuery(): boolean {\n    const isAwaiting = this.queryResponseStatus === undefined || this.queryResponseStatus === QueryItemResponseStatus.AWAITING;\n    if (this.queryResponseStatus === QueryItemResponseStatus.CLOSED) {\n      this.hasResponded.emit(true);\n      return true;\n    }\n\n    const lastChild = this.query?.children?.[this.query.children.length - 1];\n    const lastMessageType = this.query?.children?.length\n      ? this.query.children[this.query.children.length - 1]?.messageType\n      : this.query?.messageType;\n\n    const isFollowUp = lastMessageType === this.followUpQuery;\n    const isRespond = lastChild?.messageType === this.respondToQuery;\n\n    if (this.queryResponseStatus === QueryItemResponseStatus.CLOSED) {\n      this.hasResponded.emit(true);\n      return true;\n    }\n\n    if (isFollowUp && this.isMultipleFollowUpEnabled) {\n      this.hasResponded.emit(false);\n      return false;\n    }\n\n    if (isRespond) {\n      this.hasResponded.emit(false);\n      return false;\n    }\n\n    if (this.isInternalUser()) {\n      if (isAwaiting) {\n        this.hasResponded.emit(false);\n        return false;\n      }\n\n      this.hasResponded.emit(true);\n      return true;\n    }\n\n    if (isAwaiting) {\n      this.hasResponded.emit(true);\n      return false; // Don't show message\n    }\n\n    this.hasResponded.emit(false);\n    return false;\n  }\n}\n","import { Component, Input } from '@angular/core';\nimport { EventCompletionParams } from '../../../../case-editor/domain/event-completion-params.model';\n\n@Component({\n  selector: 'ccd-query-event-completion',\n  templateUrl: './query-event-completion.component.html',\n  standalone: false\n})\nexport class QueryEventCompletionComponent {\n  @Input() public eventCompletionParams: EventCompletionParams;\n\n  public onEventCanBeCompleted(value: boolean): void {\n    // Submit the query response\n  }\n}\n","<ccd-case-event-completion [eventCompletionParams]=\"eventCompletionParams\"\n  (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n</ccd-case-event-completion>","export enum SortOrder {\n  ASCENDING, DESCENDING, UNSORTED\n}\n","<ng-container *ngIf=\"queryListData\">\n  <table class=\"govuk-table query-list__table\">\n    <caption class=\"govuk-table__caption govuk-table__caption--l query-list__caption\">\n      <div class=\"query-list__caption-text\">{{ queryListData.partyName }}</div>\n    </caption>\n    <thead class=\"govuk-table__head\">\n      <tr class=\"govuk-table__row query-list__row\">\n        <th scope=\"col\" class=\"govuk-table__header\" [attr.aria-sort]=\"getAriaSortHeaderValue(col)\"\n            *ngFor=\"let col of displayedColumns; let i = index;\">\n          <button type=\"button\" [attr.data-index]=\"i\" aria-sort=\"none\" (click)=\"sortTable(col)\">\n            {{ col.displayName | rpxTranslate }}\n          </button>\n        </th>\n      </tr>\n    </thead>\n\n    <tbody class=\"govuk-table__body\">\n    <tr class=\"govuk-table__row query-list__row\"\n        *ngFor=\"let message of queryListData.queries\"\n    >\n      <td class=\"govuk-table__cell query-list__cell query-list__cell--first\">\n        <button type=\"button\" class=\"govuk-js-link\" (click)=\"showDetails(message)\">{{ message.subject }}</button>\n      </td>\n      <td class=\"govuk-table__cell query-list__cell\">{{ message.name }} @if (message?.isHmctsStaff?.toLowerCase() === 'yes') { - {{ hmctsStaff }} }</td>\n      <td class=\"govuk-table__cell query-list__cell\">{{ message.lastSubmittedBy }} @if (message?.isHmctsStaff?.toLowerCase() === 'yes') { - {{ hmctsStaff }} }</td>\n      <td class=\"govuk-table__cell query-list__cell\">{{ message.lastSubmittedDate | date: 'dd MMM yyyy HH:mm' }} </td>\n      <td class=\"govuk-table__cell query-list__cell\">{{ message.lastResponseDate | date: 'dd MMM yyyy HH:mm' }} </td>\n      <td class=\"govuk-table__cell query-list__cell\">{{ message.responseStatus | rpxTranslate }}</td>\n    </tr>\n    </tbody>\n  </table>\n</ng-container>\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { SortOrder } from '../../../complex/sort-order';\nimport { CaseQueriesCollection, QueryCreateContext, QueryListColumn, QueryListData, QueryListItem } from '../../models';\n\n@Component({\n  selector: 'ccd-query-list',\n  templateUrl: './query-list.component.html',\n  styleUrls: ['./query-list.component.scss'],\n  standalone: false\n})\nexport class QueryListComponent implements OnChanges {\n  @Input() public caseQueriesCollection: CaseQueriesCollection;\n  @Output() public selectedQuery: EventEmitter<QueryListItem> = new EventEmitter();\n  public queryListData: QueryListData | undefined;\n  public displayedColumns: QueryListColumn[] = [\n    { name: 'subject', displayName: 'Query subject', sortOrder: SortOrder.UNSORTED },\n    { name: 'name', displayName: 'Sender Name', sortOrder: SortOrder.UNSORTED },\n    { name: 'lastSubmittedBy', displayName: 'Last submitted by', sortOrder: SortOrder.UNSORTED },\n    { name: 'lastSubmittedDate', displayName: 'Last submission date', sortOrder: SortOrder.UNSORTED },\n    { name: 'lastResponseDate', displayName: 'Last response date', sortOrder: SortOrder.UNSORTED },\n    { name: 'responseStatus', displayName: 'Response status', sortOrder: SortOrder.UNSORTED }\n  ];\n\n  public hmctsStaff: string = QueryCreateContext.HMCTSSTAFF;\n\n  public ngOnChanges(simpleChanges: SimpleChanges) {\n    const currentCaseQueriesCollection = simpleChanges.caseQueriesCollection?.currentValue as CaseQueriesCollection;\n    if (currentCaseQueriesCollection) {\n      this.queryListData = new QueryListData(currentCaseQueriesCollection);\n    }\n  }\n\n  public sortTable(col: QueryListColumn): void {\n    switch (col.displayName) {\n      case 'Last submission date':\n      case 'Last response date': {\n        this.sortDate(col);\n        break;\n      }\n      default: {\n        this.sort(col);\n        break;\n      }\n    }\n  }\n\n  public getAriaSortHeaderValue(col: QueryListColumn): 'ascending' | 'descending' | 'none' {\n    switch (col.sortOrder) {\n      case SortOrder.ASCENDING: {\n        return 'ascending';\n      }\n      case SortOrder.DESCENDING: {\n        return 'descending';\n      }\n      default: {\n        return 'none';\n      }\n    }\n  }\n\n  public showDetails(query): void {\n    this.selectedQuery.emit(query);\n  }\n\n  private sort(col: QueryListColumn): void {\n    if (col.sortOrder === SortOrder.ASCENDING) {\n      this.queryListData.queries.sort((a, b) => (a[col.name] < b[col.name]) ? 1 : -1);\n      this.displayedColumns.forEach((c) => c.sortOrder = SortOrder.UNSORTED);\n      col.sortOrder = SortOrder.DESCENDING;\n    } else {\n      this.queryListData.queries.sort((a, b) => (a[col.name] > b[col.name]) ? 1 : -1);\n      this.displayedColumns.forEach((c) => c.sortOrder = SortOrder.UNSORTED);\n      col.sortOrder = SortOrder.ASCENDING;\n    }\n  }\n\n  private sortDate(col: QueryListColumn): void {\n    if (col.sortOrder === SortOrder.ASCENDING) {\n      this.queryListData.queries.sort((a, b) => b[col.name] - a[col.name]);\n      this.displayedColumns.forEach((c) => c.sortOrder = SortOrder.UNSORTED);\n      col.sortOrder = SortOrder.DESCENDING;\n    } else {\n      this.queryListData.queries.sort((a, b) => a[col.name] - b[col.name]);\n      this.displayedColumns.forEach((c) => c.sortOrder = SortOrder.UNSORTED);\n      col.sortOrder = SortOrder.ASCENDING;\n    }\n  }\n}\n","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Observable, Subscription } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\nimport { CaseField, FieldType, FormDocument } from '../../../../../../domain';\nimport { QueryManagementUtils } from '../../../utils/query-management.utils';\n\n@Component({\n  selector: 'ccd-query-write-add-documents',\n  templateUrl: './query-write-add-documents.component.html',\n  standalone: false\n})\nexport class QueryWriteAddDocumentsComponent implements OnInit, AfterViewInit, OnDestroy {\n  public static DOCUMENTS_FORM_CONTROL_NAME = 'documentCollection';\n\n  @Input() public formGroup: FormGroup;\n  @Input() public label: string;\n  @Input() public hintText: string;\n\n  public documentFormGroup = new FormGroup({});\n  public mockDocumentCaseField: CaseField;\n  private documentFormControlSubscription: Subscription;\n\n  @Output() public documentCollectionUpdate = new EventEmitter<FormDocument[]>();\n\n  public ngOnInit(): void {\n    // This field is mocked to allow the document component to be used in isolation\n    this.mockDocumentCaseField = Object.assign(new CaseField(), {\n      id: QueryWriteAddDocumentsComponent.DOCUMENTS_FORM_CONTROL_NAME,\n      label: this.label ? this.label : 'Attach a document',\n      hint_text: this.hintText,\n      display_context: 'OPTIONAL',\n      display_context_parameter: '#COLLECTION(allowInsert,allowUpdate)',\n      field_type: Object.assign(new FieldType(), {\n        id: 'queryDocuments',\n        type: 'queryDocuments',\n        min: null,\n        max: null,\n        regular_expression: null,\n        fixed_list_items: [],\n        complex_fields: [],\n        collection_field_type: Object.assign(new FieldType(), {\n          id: 'Document',\n          type: 'Document',\n          min: null,\n          max: null,\n          regular_expression: null,\n          fixed_list_items: [],\n          complex_fields: [],\n          collection_field_type: null\n        })\n      })\n    });\n\n    this.mockDocumentCaseField.value = this.formGroup.get('attachments')?.value\n      .map(QueryManagementUtils.documentToCollectionFormDocument);\n  }\n\n  public ngAfterViewInit(): void {\n    const documentFormControl = this.documentFormGroup.get(QueryWriteAddDocumentsComponent.DOCUMENTS_FORM_CONTROL_NAME);\n    if (documentFormControl) {\n      this.documentFormControlSubscription = (documentFormControl.valueChanges as Observable<{ id: string, value: FormDocument}[]>)\n        .pipe(\n          map((documents) => (\n            documents.filter((document) => !!document?.value?.document_url))\n          ),\n          map((documents) => documents.map((document) => document?.value)),\n          tap((documents) => this.documentCollectionUpdate.emit(documents)),\n        )\n        .subscribe();\n    }\n  }\n\n  public ngOnDestroy(): void {\n    this.documentFormControlSubscription?.unsubscribe();\n  }\n}\n","<ccd-write-collection-field [formGroup]=\"documentFormGroup\" [caseField]=\"mockDocumentCaseField\">\n</ccd-write-collection-field>\n","import { Component, forwardRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n  selector: 'ccd-query-write-date-input',\n  templateUrl: './query-write-date-input.component.html',\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => QueryWriteDateInputComponent),\n      multi: true\n    }\n  ],\n  standalone: false\n})\nexport class QueryWriteDateInputComponent implements ControlValueAccessor {\n  @Input() public formControlName: string;\n  public day: number;\n  public month: number;\n  public year: number;\n  public disabled = false;\n  private onChange: (value: Date) => void;\n  private onTouched: () => void;\n\n  public writeValue(date: Date): void {\n    if (date instanceof Date && !isNaN(date.getTime())) {\n      this.day = date.getDate();\n      this.month = date.getMonth() + 1; // Months are zero-based\n      this.year = date.getFullYear();\n    } else {\n      this.day = null;\n      this.month = null;\n      this.year = null;\n    }\n  }\n\n  public registerOnChange(fn: (value: Date) => void): void {\n    this.onChange = fn;\n  }\n\n  public registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  public setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  public updateDate(): void {\n    const updatedValue = this.onChange && this.isValidDateInput() ?\n      new Date(this.year, this.month - 1, this.day)\n      : null;\n\n    this.onChange(updatedValue);\n    this.onTouched();\n  }\n\n  private isValidDateInput(): boolean {\n    const isValidDay = this.day >= 1 && this.day <= 31;\n    const isValidMonth = this.month >= 1 && this.month <= 12;\n    const isValidYear = this.year !== null && this.year >= 1970;\n\n    return isValidDay && isValidMonth && isValidYear;\n  }\n}\n","<div class=\"govuk-date-input\" [id]=\"formControlName\">\n  <div class=\"govuk-date-input__item\">\n    <div class=\"govuk-form-group\">\n      <label class=\"govuk-label govuk-date-input__label\" [for]=\"formControlName + '-day'\">\n        {{ 'Day' | rpxTranslate }}\n      </label>\n      <input class=\"govuk-input govuk-date-input__input govuk-input--width-2\" [id]=\"formControlName + '-day'\"\n             [name]=\"formControlName + '-day'\" type=\"text\" inputmode=\"numeric\" maxlength=\"2\"\n             [(ngModel)]=\"day\" (input)=\"updateDate()\" [disabled]=\"disabled\">\n    </div>\n  </div>\n  <div class=\"govuk-date-input__item\">\n    <div class=\"govuk-form-group\">\n      <label class=\"govuk-label govuk-date-input__label\" [for]=\"formControlName + '-month'\">\n        {{ 'Month' | rpxTranslate }}\n      </label>\n      <input class=\"govuk-input govuk-date-input__input govuk-input--width-2\" [id]=\"formControlName + '-month'\"\n             [name]=\"formControlName + '-month'\" type=\"text\" inputmode=\"numeric\" maxlength=\"2\"\n             [(ngModel)]=\"month\" (input)=\"updateDate()\" [disabled]=\"disabled\">\n    </div>\n  </div>\n  <div class=\"govuk-date-input__item\">\n    <div class=\"govuk-form-group\">\n      <label class=\"govuk-label govuk-date-input__label\" [for]=\"formControlName + '-year'\">\n        {{ 'Year' | rpxTranslate }}\n      </label>\n      <input class=\"govuk-input govuk-date-input__input govuk-input--width-4\" [id]=\"formControlName + '-year'\"\n             [name]=\"formControlName + '-year'\" type=\"text\" inputmode=\"numeric\" maxlength=\"4\"\n             [(ngModel)]=\"year\" (input)=\"updateDate()\" [disabled]=\"disabled\">\n    </div>\n  </div>\n</div>\n","<div>\n  <div class=\"govuk-!-margin-bottom-6\">\n    <div class=\"govuk-caption-l\">{{ 'Raise a query' | rpxTranslate }}</div>\n    <h1 class=\"govuk-heading-l govuk-!-margin-bottom-4\">{{ 'Enter query details' | rpxTranslate }}</h1>\n  </div>\n\n  <div>\n    <ccd-query-case-details-header [caseDetails]=\"caseDetails\" *ngIf=\"caseDetails\"></ccd-query-case-details-header>\n  </div>\n\n  <hr>\n\n  <div class=\"govuk-!-margin-bottom-4\" *ngIf=\"showForm\">\n    <div [formGroup]=\"formGroup\">\n      <div>\n        <div class=\"govuk-warning-text\">\n          <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n          <strong class=\"govuk-warning-text__text\">\n            <span class=\"govuk-visually-hidden\">Warning</span>\n            <ccd-markdown\n              [content]=\"serviceMessage | rpxTranslate\">\n            </ccd-markdown>\n          </strong>\n        </div>\n        <div class=\"govuk-form-group\" [ngClass]=\"{'govuk-form-group--error': submitted && formGroup.get('subject').hasError('required')}\">\n          <div class=\"govuk-label-wrapper\">\n            <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\" for=\"subject\">\n              {{ 'Query subject' | rpxTranslate }}\n            </label>\n          </div>\n          <div id=\"subject-hint\" class=\"govuk-hint\">\n            {{ 'The subject should be a summary of your query' | rpxTranslate }}\n          </div>\n          <p id=\"subject-error\" class=\"govuk-error-message\"\n            *ngIf=\"submitted && (formGroup.get('subject').hasError('required') || formGroup.get('subject').hasError('maxlength'))\">\n            <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }}</span>\n            {{ getSubjectErrorMessage() | rpxTranslate }}\n          </p>\n\n          <input type=\"text\"\n            id=\"subject\"\n            class=\"govuk-input\"\n            formControlName=\"subject\"\n            maxlength=\"200\"\n            (input)=\"onSubjectInput()\"\n            aria-describedby=\"subject-error\" />\n      </div>\n\n        <div class=\"govuk-form-group\"\n             [ngClass]=\"{'govuk-form-group--error': submitted && formGroup.get('body').hasError('required')}\">\n          <div class=\"govuk-label-wrapper\">\n            <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\" for=\"body\">\n              {{ 'Query detail' | rpxTranslate }}\n            </label>\n          </div>\n          <div id=\"body-hint\" class=\"govuk-hint\">\n            {{ 'Include as many details as possible so case workers can respond to your query' | rpxTranslate }}\n          </div>\n          <p id=\"body-error\" class=\"govuk-error-message\"\n              *ngIf=\"submitted && formGroup.get('body').hasError('required')\">\n            <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ raiseQueryErrorMessage.QUERY_BODY | rpxTranslate }}\n          </p>\n          <textarea [formControlName]=\"'body'\"\n                    id=\"body\" name=\"body\" rows=\"5\"\n                    aria-describedby=\"body-hint body-error\"\n                    class=\"govuk-textarea\"\n                    [class.govuk-textarea--error]=\"submitted && formGroup.get('body').hasError('required')\"\n          >\n          </textarea>\n      </div>\n\n      <div class=\"govuk-form-group\"\n           [ngClass]=\"{'govuk-form-group--error': submitted && formGroup.get('isHearingRelated').hasError('required')}\">\n        <fieldset class=\"govuk-fieldset\">\n          <legend>\n            <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\">\n              {{ 'Is the query hearing related?' | rpxTranslate }}\n            </label>\n          </legend>\n          <p id=\"isHearingRelated-error\" class=\"govuk-error-message\"\n              *ngIf=\"submitted && formGroup.get('isHearingRelated').hasError('required')\">\n            <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ raiseQueryErrorMessage.QUERY_HEARING_RELATED | rpxTranslate }}\n          </p>\n          <div class=\"govuk-radios govuk-radios--inline\" data-module=\"govuk-radios\">\n            <div class=\"govuk-radios__item\">\n              <input class=\"govuk-radios__input\" id=\"isHearingRelated-yes\" name=\"isHearingRelated\"\n                     type=\"radio\"\n                     formControlName=\"isHearingRelated\"\n                     [checked]=\"formGroup.get('isHearingRelated').value === true\" [value]=\"true\"\n              >\n              <label class=\"govuk-label govuk-radios__label\" for=\"isHearingRelated-yes\">\n                {{ 'Is the query hearing related?' | rpxTranslate: null : 'Yes' }}\n              </label>\n            </div>\n            <div class=\"govuk-radios__item\">\n              <input class=\"govuk-radios__input\" id=\"isHearingRelated-no\" name=\"isHearingRelated\"\n                     type=\"radio\"\n                     formControlName=\"isHearingRelated\"\n                     [checked]=\"formGroup.get('isHearingRelated').value === false\" [value]=\"false\"\n              >\n              <label class=\"govuk-label govuk-radios__label\" for=\"isHearingRelated-no\">\n                {{ 'Is the query hearing related?' | rpxTranslate: null : 'No' }}\n              </label>\n            </div>\n          </div>\n        </fieldset>\n\n        <ng-container *ngIf=\"formGroup.get('isHearingRelated').value\">\n          <div class=\"govuk-radios__conditional govuk-!-margin-top-1\"\n               [ngClass]=\"{'govuk-form-group--error': submitted &&\n               formGroup.get('isHearingRelated').value === true &&\n               formGroup.get('hearingDate').value === null}\">\n            <fieldset class=\"govuk-fieldset\" role=\"group\">\n              <legend>\n                <label class=\"govuk-label govuk-label--s\">\n                  {{ 'What is the date of the hearing?' | rpxTranslate }}\n                </label>\n              </legend>\n              <p id=\"hearingDate-error\" class=\"govuk-error-message\"\n                  *ngIf=\"submitted && formGroup.get('isHearingRelated').value === true && formGroup.get('hearingDate').value === null\">\n                <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ raiseQueryErrorMessage.QUERY_HEARING_DATE | rpxTranslate }}\n              </p>\n              <ccd-query-write-date-input formControlName=\"hearingDate\"></ccd-query-write-date-input>\n            </fieldset>\n          </div>\n        </ng-container>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { RaiseQueryErrorMessage } from '../../../enums';\nimport {\n  CaseEventData,\n  CaseEventTrigger,\n  CaseView\n} from '../../../../../../../../lib/shared/domain';\nimport { Observable } from 'rxjs';\nimport { QmCaseQueriesCollection, QueryCreateContext, QueryListItem } from '../../../models';\nimport { EventCompletionParams } from '../../../../../case-editor/domain/event-completion-params.model';\nimport { QueryManagementService } from '../../../services';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n  selector: 'ccd-query-write-raise-query',\n  templateUrl: './query-write-raise-query.component.html',\n  standalone: false\n})\nexport class QueryWriteRaiseQueryComponent implements OnChanges {\n  @Input() public formGroup: FormGroup;\n  @Input() public submitted: boolean;\n  @Input() public caseDetails: CaseView;\n  @Input() public showForm: boolean;\n  @Input() public serviceMessage: string | null;\n  @Input() public queryCreateContext: QueryCreateContext;\n  @Input() public eventData: CaseEventTrigger | null = null;\n  @Input() public queryItem: QueryListItem;\n  @Input() public validate: (caseEventData: CaseEventData, pageId: string) => Observable<object>;\n  @Input() public triggerSubmission: boolean;\n\n  @Output() public queryDataCreated = new EventEmitter <QmCaseQueriesCollection>();\n\n  public raiseQueryErrorMessage = RaiseQueryErrorMessage;\n  public eventCompletionParams: EventCompletionParams;\n  public messageId: string;\n\n  constructor(\n    private queryManagementService: QueryManagementService,\n    private readonly route: ActivatedRoute,\n  ) {}\n\n  public ngOnChanges(): void {\n    this.messageId= this.route.snapshot.params.dataid;\n    const isCollectionDataSet = this.setCaseQueriesCollectionData();\n    if (isCollectionDataSet) {\n      if (this.triggerSubmission) {\n        const data = this.generateCaseQueriesCollectionData();\n        this.queryDataCreated.emit(data);\n      }\n    }\n  }\n\n  onSubjectInput(): void {\n    const control = this.formGroup.get('subject');\n    const value = control?.value;\n    if (value && value.length > 200) {\n      control?.setValue(value.substring(0, 200));\n    }\n  }\n\n  getSubjectErrorMessage(): string {\n    const control = this.formGroup.get('subject');\n    if (control.hasError('required')) {\n      return this.raiseQueryErrorMessage.QUERY_SUBJECT;\n    }\n    if (control.hasError('maxlength')) {\n      return this.raiseQueryErrorMessage.QUERY_SUBJECT_MAX_LENGTH;\n    }\n    return '';\n  }\n\n  public setCaseQueriesCollectionData(): boolean {\n    if (!this.eventData) {\n      console.warn('Event data not available; skipping collection setup.');\n      return false;\n    }\n\n    this.queryManagementService.setCaseQueriesCollectionData(\n      this.eventData,\n      this.queryCreateContext,\n      this.caseDetails,\n      this.messageId\n    );\n\n    return true;\n  }\n\n  private generateCaseQueriesCollectionData(): QmCaseQueriesCollection {\n    return this.queryManagementService.generateCaseQueriesCollectionData(\n      this.formGroup,\n      this.queryCreateContext,\n      this.queryItem,\n      this.messageId\n    );\n  }\n}\n","<div class=\"govuk-!-margin-bottom-6\">\n  <div class=\"govuk-!-margin-bottom-6\">\n    <div class=\"govuk-caption-l\">{{ 'Respond to a query' | rpxTranslate }}</div>\n    <h1 class=\"govuk-heading-l govuk-!-margin-bottom-0\">{{ 'Query details' | rpxTranslate }}</h1>\n  </div>\n\n  <div class=\"govuk-!-margin-bottom-4\">\n    <ccd-query-case-details-header [caseDetails]=\"caseDetails\" *ngIf=\"caseDetails\"></ccd-query-case-details-header>\n  </div>\n\n  <div>\n    <ccd-query-details [query]=\"queryListData\"\n      [queryResponseStatus]=\"queryResponseStatus\"\n      (hasResponded)=\"hasResponded($event)\"></ccd-query-details>\n  </div>\n</div>\n<div class=\"query-respond\" *ngIf=\"showForm\">\n  <div *ngIf=\"!hasRespondedToQuery\">\n    <h1 class=\"govuk-heading-m\">\n      {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Respond to a query' : 'Ask a follow-up question' | rpxTranslate }}\n    </h1>\n\n    <div [formGroup]=\"formGroup\">\n      <div class=\"govuk-form-group body-textarea\"\n           [class.govuk-form-group--error]=\"submitted && formGroup.get('body')?.hasError('required')\">\n        <div class=\"govuk-label-wrapper\">\n          <label class=\"govuk-label govuk-label--m govuk-!-font-weight-bold\" for=\"body\">\n            {{ queryCreateContext === queryCreateContextEnum.RESPOND ? 'Response detail' : 'Query Body' | rpxTranslate }}\n          </label>\n        </div>\n        <p id=\"body-error\" class=\"govuk-error-message\"\n           *ngIf=\"submitted && formGroup.get('body')?.hasError('required')\">\n          <span class=\"govuk-visually-hidden\">{{ 'Error:' | rpxTranslate }} </span>{{ queryCreateContext === queryCreateContextEnum.RESPOND ? raiseQueryErrorMessages.RESPOND_QUERY_BODY : raiseQueryErrorMessages.QUERY_BODY | rpxTranslate }}\n        </p>\n        <textarea [formControlName]=\"'body'\" class=\"govuk-textarea\"\n                  [class.govuk-textarea--error]=\"submitted && formGroup.get('body')?.hasError('required')\" id=\"body\"\n                  name=\"body\" rows=\"5\" aria-describedby=\"body-hint body-error\">\n      </textarea>\n      </div>\n    </div>\n  </div>\n</div>\n\n<ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\">\n  <ccd-close-query *ngIf=\"!hasRespondedToQuery\"\n    [formGroup]=\"formGroup\">\n  </ccd-close-query>\n</ng-container>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormGroup } from '@angular/forms';\nimport { take } from 'rxjs/operators';\nimport {\n  CaseEventTrigger\n} from '../../../../../../../../lib/shared/domain';\nimport { CaseNotifier } from '../../../../../case-editor/services';\nimport { RaiseQueryErrorMessage } from '../../../enums';\nimport { CaseQueriesCollection, QmCaseQueriesCollection, QueryCreateContext, QueryListData, QueryListItem } from '../../../models';\nimport { QueryManagementService } from '../../../services';\n@Component({\n  selector: 'ccd-query-write-respond-to-query',\n  templateUrl: './query-write-respond-to-query.component.html',\n  styleUrls: ['./query-write-respond-to-query.component.scss'],\n  standalone: false\n})\n\nexport class QueryWriteRespondToQueryComponent implements OnInit, OnChanges {\n  @Input() public queryItem: QueryListItem;\n  @Input() public formGroup: FormGroup;\n  @Input() public queryCreateContext: QueryCreateContext;\n  @Input() public submitted = false;\n  @Input() public caseQueriesCollections: CaseQueriesCollection[];\n  @Input() public showForm;\n  @Input() public triggerSubmission: boolean;\n  @Input() public eventData: CaseEventTrigger | null = null;\n\n  @Output() public queryDataCreated = new EventEmitter <QmCaseQueriesCollection>();\n  @Output() public hasRespondedToQueryTask: EventEmitter<boolean> = new EventEmitter();\n\n  public readonly queryCreateContextEnum = QueryCreateContext;\n  public readonly raiseQueryErrorMessages = RaiseQueryErrorMessage;\n  public caseId: string;\n  public queryItemId: string;\n  public caseDetails;\n  public queryResponseStatus: string;\n  public queryListData: QueryListItem | undefined;\n\n  public hasRespondedToQuery: boolean = false;\n  public messageId: string;\n\n  private static readonly QUERY_ITEM_RESPOND = '3';\n  private static readonly QUERY_ITEM_FOLLOWUP = '4';\n\n  constructor(private readonly caseNotifier: CaseNotifier,\n    private readonly route: ActivatedRoute,\n    private queryManagementService: QueryManagementService) {}\n\n  public ngOnInit(): void {\n    this.queryItemId = this.route.snapshot.params.qid;\n    this.caseId = this.route.snapshot.params.cid;\n    this.caseNotifier.fetchAndRefresh(this.caseId).pipe(take(1)).subscribe({\n      next: (caseDetails) => {\n        this.caseDetails = caseDetails;\n      },\n      error: (err) => {\n        console.error('Error retrieving case details:', err);\n      }\n    });\n  }\n\n  public ngOnChanges(): void {\n    if (!this.caseQueriesCollections || this.caseQueriesCollections.length === 0) {\n    // Silent return – this is not an error.\n      return;\n    }\n\n    if (!this.caseQueriesCollections[0]) {\n      console.error('caseQueriesCollections[0] is undefined!', this.caseQueriesCollections);\n      return;\n    }\n\n    this.messageId = this.route.snapshot.params?.dataid;\n    if (!this.messageId) {\n      console.warn('No messageId found in route params:', this.route.snapshot.params);\n      return;\n    }\n\n    const allMessages = this.caseQueriesCollections\n      .flatMap((caseData) => caseData?.caseMessages || []);\n\n    const matchingMessage = allMessages.find(\n      (message) => message?.value?.id === this.messageId\n    )?.value;\n\n    if (!matchingMessage) {\n      console.warn('No matching message found for ID:', this.messageId);\n      return;\n    }\n\n    const caseQueriesCollections = this.caseQueriesCollections.find(\n      (collection) => collection?.caseMessages.find((c) => c.value.id === this.messageId)\n    );\n\n    const queryWithChildren = new QueryListData(caseQueriesCollections);\n    const targetId = this.queryItemId === QueryWriteRespondToQueryComponent.QUERY_ITEM_RESPOND\n      ? (matchingMessage?.parentId || matchingMessage?.id)\n      : matchingMessage?.id;\n\n    this.queryListData = queryWithChildren?.queries.find((query) => query?.id === targetId);\n    this.queryResponseStatus = this.queryListData?.responseStatus;\n    const isCollectionDataSet = this.setCaseQueriesCollectionData();\n    if (isCollectionDataSet) {\n      if (this.triggerSubmission) {\n        const data = this.generateCaseQueriesCollectionData();\n        this.queryDataCreated.emit(data);\n      }\n    }\n  }\n\n  public hasResponded(value: boolean): void {\n    this.hasRespondedToQuery = value;\n    this.hasRespondedToQueryTask.emit(value);\n  }\n\n  public setCaseQueriesCollectionData(): boolean {\n    if (!this.eventData) {\n      console.warn('Event data not available; skipping collection setup.');\n      return false;\n    }\n\n    this.queryManagementService.setCaseQueriesCollectionData(\n      this.eventData,\n      this.queryCreateContext,\n      this.caseDetails,\n      this.messageId\n    );\n\n    return true;\n  }\n\n  private generateCaseQueriesCollectionData(): QmCaseQueriesCollection {\n    return this.queryManagementService.generateCaseQueriesCollectionData(\n      this.formGroup,\n      this.queryCreateContext,\n      this.queryItem,\n      this.messageId\n    );\n  }\n}\n","<main class=\"govuk-main-wrapper\" *ngIf=\"queryCreateContext\">\n  <div class=\"govuk-grid-row\">\n    <div class=\"govuk-grid-column-two-thirds\">\n      <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.NEW_QUERY || queryCreateContext === queryCreateContextEnum.FOLLOWUP\">\n        <div class=\"govuk-panel govuk-panel--confirmation\">\n\n          @if (isHmctsStaffRaisedQuery?.toLowerCase() === 'yes' && queryCreateContext === queryCreateContextEnum.FOLLOWUP) {\n              <h1 class=\"govuk-panel__title\">{{'Query response submitted' | rpxTranslate}}</h1>\n              <div class=\"govuk-panel__body\">{{'This query response has been added to the case' | rpxTranslate}}</div>\n          } @else if (isHmctsStaffRaisedQuery?.toLowerCase() === 'yes' && queryCreateContext === queryCreateContextEnum.NEW_QUERY) {\n              <h1 class=\"govuk-panel__title\">{{'Query submitted' | rpxTranslate}}</h1>\n              <div class=\"govuk-panel__body\">{{'Your query has been sent.' | rpxTranslate}}</div>\n          } @else {\n            <h1 class=\"govuk-panel__title\">{{'Query submitted' | rpxTranslate}}</h1>\n            <div class=\"qm-confirmation govuk-panel__body\">\n              <ccd-markdown [content]=\"callbackConfirmationMessageText?.header | rpxTranslate\"></ccd-markdown>\n            </div>\n          }\n\n        </div>\n        <div class=\"govuk-body\">\n          @if (isHmctsStaff.toLowerCase() !== 'yes') {\n            <h3 class=\"govuk-heading-s\">{{'What happens next' | rpxTranslate}}</h3>\n            <ccd-markdown [content]=\"callbackConfirmationMessageText?.body | rpxTranslate\"></ccd-markdown>\n            <p>{{'When the response is available it will be added to the \\'Queries\\' section.' | rpxTranslate}}</p>\n          }\n          <p>\n            {{'You can' | rpxTranslate}}\n            <a class=\"govuk-link\" routerLink=\"/cases/case-details/{{jurisdiction}}/{{caseType}}/{{caseId}}\">{{'Go back to the case' | rpxTranslate}}</a>\n          </p>\n\n        </div>\n      </ng-container>\n      <ng-container *ngIf=\"queryCreateContext === queryCreateContextEnum.RESPOND\">\n        <div class=\"govuk-panel govuk-panel--confirmation\">\n          <h1 class=\"govuk-panel__title\">{{'Query response submitted' | rpxTranslate}}</h1>\n          <div class=\"govuk-panel__body\">{{'This query response has been added to the case' | rpxTranslate}}</div>\n        </div>\n        <div class=\"govuk-body\">\n          {{'You can' | rpxTranslate}}\n          <a class=\"govuk-link\" id=\"tasks-link\" routerLink=\"/cases/case-details/{{jurisdiction}}/{{caseType}}/{{caseId}}#Tasks\">{{'return to tasks' | rpxTranslate}}</a> or\n          <a class=\"govuk-link\" id=\"case-link\" routerLink=\"/cases/case-details/{{jurisdiction}}/{{caseType}}/{{caseId}}\">{{'Go back to the case' | rpxTranslate}}</a>\n        </div>\n      </ng-container>\n    </div>\n  </div>\n</main>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { QueryCreateContext } from '../../models/query-create-context.enum';\nimport { SessionStorageService } from '../../../../../services';\nimport { isInternalUser, isJudiciaryUser } from '../../../../../utils';\nimport { CaseQueriesCollection, QueryListData } from '../../models';\n\n@Component({\n  selector: 'ccd-query-confirmation',\n  templateUrl: './query-confirmation.component.html',\n  standalone: false\n})\nexport class QueryConfirmationComponent implements OnInit {\n  @Input() public queryCreateContext: QueryCreateContext;\n  @Input() public callbackConfirmationMessageText: { [key: string]: string } = {};\n  @Input() public eventResponseData: CaseQueriesCollection;\n\n  public caseId = '';\n  public jurisdiction = '';\n  public caseType = '';\n  public queryCreateContextEnum = QueryCreateContext;\n  public isHmctsStaffRaisedQuery: string;\n  public isHmctsStaff: string;\n\n  public queryListData: QueryListData | undefined;\n\n  constructor(private readonly route: ActivatedRoute,\n              private readonly sessionStorageService: SessionStorageService\n  ) {\n  }\n\n  public ngOnInit(): void {\n    this.caseId = this.route.snapshot.params.cid;\n    this.jurisdiction = this.route.snapshot.params.jurisdiction;\n    this.caseType = this.route.snapshot.params.caseType;\n    this.isHmctsStaff = (this.isJudiciaryUser() || this.isInternalUser()) ? 'Yes' : 'No';\n\n    this.resolveHmctsStaffRaisedQuery();\n  }\n\n  public isInternalUser(): boolean {\n    return isInternalUser(this.sessionStorageService);\n  }\n\n  public isJudiciaryUser(): boolean {\n    return isJudiciaryUser(this.sessionStorageService);\n  }\n\n  public resolveHmctsStaffRaisedQuery(): void {\n    const messageId = this.route.snapshot.params.dataid;\n    if (!this.eventResponseData) {\n      console.warn('No event response data available.');\n      return;\n    }\n\n    this.queryListData = new QueryListData(this.eventResponseData);\n\n    if (this.queryCreateContext === QueryCreateContext.FOLLOWUP) {\n      const foundChild = this.queryListData?.queries\n        ?.find((query) => query?.id === messageId);\n\n      this.isHmctsStaffRaisedQuery = foundChild?.isHmctsStaff ?? null;\n    }\n\n    if (this.queryCreateContext === QueryCreateContext.RESPOND) {\n      const child = this.queryListData?.queries\n        ?.flatMap((p) => p.children || [])\n        .find((c) => c.parentId === messageId);\n\n      if (!child) {\n        console.warn('No matching child found for messageId:', messageId);\n        return;\n      }\n\n      const parentItem = this.queryListData?.queries\n        ?.find((p) => p.id === child.parentId);\n\n      this.isHmctsStaffRaisedQuery = parentItem?.isHmctsStaff ?? null;\n    }\n  }\n}\n","import { Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n  selector: 'ccd-close-query',\n  templateUrl: './close-query.component.html',\n  standalone: false\n})\nexport class CloseQueryComponent {\n  @Input() public formGroup: FormGroup;\n}\n","<div [formGroup]=\"formGroup\">\n    <h2 class=\"govuk-heading-m\">{{ 'Closing the query' | rpxTranslate }}</h2>\n    <div class=\"govuk-checkboxes__item\">\n        <input class=\"govuk-checkboxes__input\"\n            formControlName=\"closeQuery\" id=\"closeQuery\" name=\"closeQuery\" type=\"checkbox\" />\n        <label class=\"govuk-label govuk-checkboxes__label\" for=\"closeQuery\" [attr.aria-labelledby]=\"'closeQuery'\">\n        {{ 'I want to close this query' | rpxTranslate }}\n        </label>\n    </div>\n    <div class=\"govuk-warning-text\">\n        <span aria-hidden=\"true\" class=\"govuk-warning-text__icon\">!</span>\n        <strong class=\"govuk-warning-text__text\">\n        <span class=\"govuk-visually-hidden\">Warning</span>\n        <p class=\"qm-service-message\">\n            <strong>\n            {{ 'Closing this query means the parties can no longer send messages in this thread.' | rpxTranslate }}\n            </strong>\n        </p>\n        </strong>\n    </div>\n</div>","<ng-container *ngIf=\"showQueryList; else singleQueryDetails\">\n  <ng-container *ngFor=\"let caseQueriesCollection of caseQueriesCollections\">\n    <div *ngIf=\"showQueryList\" class=\"govuk-!-margin-top-8 govuk-!-margin-bottom-8\">\n      <ccd-query-list (selectedQuery)=\"setQuery($event)\" [caseQueriesCollection]=\"caseQueriesCollection\"></ccd-query-list>\n    </div>\n  </ng-container>\n</ng-container>\n\n<ng-template #singleQueryDetails>\n  <ccd-query-details\n    [query]=\"query\"\n    (backClicked)=\"showQueryList = true\"\n    [caseId]=\"caseId\"\n  ></ccd-query-details>\n\n  <ng-container *ngIf=\"!isInternalUser() && !isQueryClosed && !isJudiciaryUser()\">\n    <ng-container *ngIf=\"(messageType && messageType === followUpQuery  && isMultipleFollowUpEnabled) ||\n      (messageType && messageType === respondToQuery) || (messageType && messageType === followUpQuery && query?.isHmctsStaff?.toLowerCase() === 'yes'); else sequentialQuery\">\n      <button id=\"ask-follow-up-question\" class=\"govuk-button\" data-module=\"govuk-button\"\n              [routerLink]=\"['/query-management', 'query', caseId, '4', query.id]\">\n        {{ 'Ask a follow-up question' | rpxTranslate }}\n      </button>\n    </ng-container>\n    <ng-template #sequentialQuery>\n      <ng-container *ngIf=\"query?.children?.length > 0 && query?.children?.length % 2 === 1; else queryIsInReview\">\n        <button id=\"ask-follow-up-question\" class=\"govuk-button\" data-module=\"govuk-button\"\n                [routerLink]=\"['/query-management', 'query', caseId, '4', query.id]\">\n          {{ 'Ask a follow-up question' | rpxTranslate }}\n        </button>\n      </ng-container>\n\n      <ng-template #queryIsInReview>\n        <div>\n          <p class=\"govuk-!-font-weight-bold\">{{ 'Your query is under review' | rpxTranslate }}</p>\n          <p>{{ 'Our team will read your query and respond. Do not submit the same query more than once.' | rpxTranslate }}</p>\n        </div>\n      </ng-template>\n    </ng-template>\n\n  </ng-container>\n  <ng-container *ngIf=\"isQueryClosed\">\n    <div class=\"govuk-warning-text\">\n      <span aria-hidden=\"true\" class=\"govuk-warning-text__icon\">!</span>\n      <strong class=\"govuk-warning-text__text\">\n        <span class=\"govuk-visually-hidden\">Warning</span>\n        <p class=\"qm-service-message govuk-!-font-weight-bold\">{{ 'This query has been closed by HMCTS staff.' | rpxTranslate }}</p>\n      </strong>\n    </div>\n  </ng-container>\n</ng-template>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { CaseTab } from '../../../domain';\nimport { SessionStorageService } from '../../../services';\nimport { isInternalUser, isJudiciaryUser } from '../../../utils';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\nimport { PaletteContext } from '../base-field/palette-context.enum';\nimport { CaseQueriesCollection, QueryCreateContext, QueryListItem } from './models';\nimport { QueryManagementUtils } from './utils/query-management.utils';\nimport { CaseNotifier } from '../../case-editor/services/case.notifier';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { Subscription } from 'rxjs';\n\n@Component({\n    selector: 'ccd-read-query-management-field',\n  templateUrl: './read-query-management-field.component.html',\n  standalone: false\n})\nexport class ReadQueryManagementFieldComponent extends AbstractFieldReadComponent implements OnInit, OnDestroy {\n  public caseQueriesCollections: CaseQueriesCollection[];\n  public query: QueryListItem;\n  public showQueryList: boolean = true;\n  public caseId: string;\n  public messageType: string;\n\n  public followUpQuery: string = QueryCreateContext.FOLLOWUP;\n  public respondToQuery: string = QueryCreateContext.RESPOND;\n\n  public isQueryClosed: boolean = false;\n\n  public value: boolean;\n  public isMultipleFollowUpEnabled: boolean = false;\n  public currentJurisdictionId: string;\n  public enableServiceSpecificMultiFollowups: string[] = [];\n\n  private caseSubscription: Subscription;\n\n  constructor(private readonly route: ActivatedRoute,\n    private sessionStorageService: SessionStorageService,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly abstractConfig: AbstractAppConfig\n  ) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    this.caseId = this.route.snapshot.params.cid;\n\n    this.enableServiceSpecificMultiFollowups = this.abstractConfig.getEnableServiceSpecificMultiFollowups() || [];\n    this.caseSubscription = this.caseNotifier.caseView.subscribe((caseDetails) => {\n      if (caseDetails?.case_type?.jurisdiction?.id) {\n        this.currentJurisdictionId = caseDetails.case_type.jurisdiction.id;\n        this.isMultipleFollowUpEnabled = this.enableServiceSpecificMultiFollowups.includes(this.currentJurisdictionId);\n      }\n    });\n\n    if (this.context === PaletteContext.DEFAULT) {\n      // EUI-8303 Using mock data until CCD is ready with the API and data contract\n      // this.caseQueriesCollections = caseMessagesMockData;\n\n      // TODO: Actual implementation once the CCD API and data contract is available\n      // Each parties will have a separate collection of party messages\n      // Find whether queries tab is available in the case data\n      this.caseNotifier.fetchAndRefresh(this.caseId)\n        .subscribe({\n          next: (caseDetails) => {\n            if (this.route.snapshot.data.case?.tabs) {\n              this.caseQueriesCollections = (caseDetails.tabs as CaseTab[])\n                .filter((tab) => tab.fields?.some(\n                  (caseField) => caseField.field_type.type === 'ComponentLauncher' && caseField.id === this.caseField.id))\n                [0].fields?.reduce((acc, caseField) => {\n                  const extractedCaseQueriesFromCaseField = QueryManagementUtils.extractCaseQueriesFromCaseField(caseField);\n\n                  if (extractedCaseQueriesFromCaseField && typeof extractedCaseQueriesFromCaseField === 'object') {\n                    acc.push(extractedCaseQueriesFromCaseField);\n                  }\n                  return acc;\n                }, []);\n            }\n          }\n        });\n\n      // Loop through the list of parties and their case queries collections\n      // QueryManagementUtils.extractCaseQueriesFromCaseField();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.caseSubscription?.unsubscribe();\n  }\n\n  public setQuery(query): void {\n    this.showQueryList = false;\n    this.query = query;\n    this.messageType = this.getMessageType(query);\n    this.isQueryClosed = this.query?.children?.some((queryItem) => queryItem?.isClosed === 'Yes');\n  }\n\n  public backToQueryListPage(): void {\n    this.showQueryList = true;\n    this.query = null;\n  }\n\n  public isInternalUser(): boolean {\n    return isInternalUser(this.sessionStorageService);\n  }\n\n  public isJudiciaryUser(): boolean {\n    return isJudiciaryUser(this.sessionStorageService);\n  }\n\n  public getMessageType(query: any): string | undefined {\n    if (!query) {\n      return undefined;\n    }\n\n    return query.children?.length\n      ? query.children[query.children.length - 1]?.messageType\n      : query?.messageType;\n  }\n}\n\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-text-area-field',\n  template: `<span style=\"white-space: pre-wrap\">{{ caseField.value }}</span>`,\n  standalone: false\n})\nexport class ReadTextAreaFieldComponent extends AbstractFieldReadComponent {}\n","<div class=\"form-group\" [ngClass]=\"{'form-group-error': !textareaControl.valid && textareaControl.dirty}\">\n\n  <label [for]=\"id()\">\n    <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n  <span class=\"error-message\" *ngIf=\"textareaControl.errors && (textareaControl.dirty || textareaControl.touched)\">\n    {{textareaControl.errors | ccdFirstError:caseField.label}}\n  </span>\n\n  <textarea (input)=\"autoGrow($event)\" class=\"form-control bottom-30\" [ngClass]=\"{'govuk-textarea--error': textareaControl.errors && (textareaControl.dirty || textareaControl.touched)}\"\n   [id]=\"id()\" rows=\"3\" [formControl]=\"textareaControl\"></textarea>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { BrowserService } from '../../../services/browser/browser.service';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-text-area-field',\n  templateUrl: './write-text-area-field.html',\n  providers: [BrowserService],\n  standalone: false\n})\nexport class WriteTextAreaFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n  public textareaControl: FormControl;\n\n  constructor(private readonly browserService: BrowserService) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    this.textareaControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n  }\n\n  public autoGrow(event): void {\n    if (this.browserService.isIEOrEdge()) {\n      event.target.style.height = 'auto';\n      event.target.style.height = `${event.target.scrollHeight}px`;\n      event.target.scrollTop = event.target.scrollHeight;\n    }\n  }\n}\n","import { Component } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-text-field',\n  template: `<span class=\"text-16\">{{ caseField.value }}</span>`,\n  standalone: false\n})\nexport class ReadTextFieldComponent extends AbstractFieldReadComponent {}\n","<div class=\"form-group\" [ngClass]=\"{'form-group-error': !!textControl && !textControl.valid && (textControl.dirty || textControl.touched)}\">\n  <label [for]=\"id()\" *ngIf=\"!caseField.hidden\">\n    <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n  </label>\n  <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n  <span class=\"error-message\" *ngIf=\"textControl?.errors && (textControl.dirty || textControl.touched)\">\n    {{textControl.errors | ccdFirstError:caseField.label}}\n  </span>\n  <input class=\"form-control bottom-30\" [ngClass]=\"{'govuk-input--error': textControl?.errors && (textControl.dirty || textControl.touched)}\"\n    [id]=\"id()\" [type]=\"caseField.hidden ? 'hidden' : 'text'\" [formControl]=\"textControl\" (blur)=\"onBlur($event)\">\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-text-field',\n  templateUrl: './write-text-field.html',\n  standalone: false\n})\nexport class WriteTextFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public textControl: FormControl;\n\n  public ngOnInit() {\n    this.textControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n  }\n\n  public onBlur($event) {\n    $event.target.value = $event.target.value.trim();\n  }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'ccd-unsupported-field',\n  template: `<em>Field type not supported</em>`,\n  standalone: false\n})\nexport class UnsupportedFieldComponent {}\n","<ccpay-payment-lib *ngIf=\"getUserRoles().length > 0\"\n    [API_ROOT]=\"getBaseURL()\"\n    [BULKSCAN_API_ROOT]=\"getPayBulkScanBaseURL()\"\n    [REFUNDS_API_ROOT]=\"getRefundsUrl()\"\n    [NOTIFICATION_API_ROOT]=\"getNotificationUrl()\"\n    [CCD_CASE_NUMBER]=\"caseReference\"\n    [VIEW]=\"'case-transactions'\"\n    [TAKEPAYMENT]=\"false\"\n    [SERVICEREQUEST]=\"true\"\n    [PAYMENT_GROUP_REF]=\"null\"\n    [EXC_REFERENCE]=\"caseReference\"\n    [DCN_NUMBER]=\"null\"\n    [SELECTED_OPTION]=\"'CCDorException'\"\n    [LOGGEDINUSERROLES]=\"getUserRoles()\"\n    [CARDPAYMENTRETURNURL]=\"getCardPaymentReturnUrl()\"\n    [ISPAYMENTSTATUSENABLED]=\"'Enable'\"\n></ccpay-payment-lib>","import { Component } from '@angular/core';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { SessionStorageService } from '../../../services/session/session-storage.service';\nimport { PaymentField } from '../base-field/payment-field.component';\n\n@Component({\n  selector: 'ccd-ways-to-pay-field',\n  templateUrl: './waystopay-field.component.html',\n  standalone: false\n})\nexport class WaysToPayFieldComponent extends PaymentField {\n  constructor(\n    appConfig: AbstractAppConfig,\n    sessionStorage: SessionStorageService\n  ) {\n    super(appConfig, sessionStorage);\n  }\n\n  public getCardPaymentReturnUrl(): string {\n    return this.appConfig.getPaymentReturnUrl();\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class YesNoService {\n  private static readonly YES_INPUTS: string[] = [\n    'Y',\n    'YES'\n  ];\n  private static readonly NO_INPUTS: string[] = [\n    'N',\n    'NO'\n  ];\n  private static readonly YES = 'Yes';\n  private static readonly NO = 'No';\n  private static readonly EMPTY = null;\n\n  public format(value: any): string {\n\n    if (this.isYes(value)) {\n      return YesNoService.YES;\n    } else if (this.isNo(value)) {\n      return YesNoService.NO;\n    }\n\n    return YesNoService.EMPTY;\n  }\n\n  private isYes(value: any): boolean {\n    // tslint:disable-next-line:switch-default\n    switch (typeof(value)) {\n      case 'boolean':\n        return value;\n      case 'string':\n        return YesNoService.YES_INPUTS.indexOf(value.toUpperCase()) !== -1;\n    }\n\n    return false;\n  }\n\n  private isNo(value: any): boolean {\n    // tslint:disable-next-line:switch-default\n    switch (typeof(value)) {\n      case 'boolean':\n        return !value;\n      case 'string':\n        return YesNoService.NO_INPUTS.indexOf(value.toUpperCase()) !== -1;\n    }\n\n    return false;\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\nimport { YesNoService } from './yes-no.service';\n\n@Component({\n  selector: 'ccd-read-yes-no-field',\n  template: `<span class=\"text-16\">{{formattedValue ? (formattedValue | rpxTranslate : null : formattedValue) : null}}</span>`,\n  standalone: false\n})\nexport class ReadYesNoFieldComponent extends AbstractFieldReadComponent implements OnInit {\n  public formattedValue: string;\n\n  constructor(private readonly yesNoService: YesNoService) {\n    super();\n  }\n\n  public ngOnInit() {\n    super.ngOnInit();\n    this.formattedValue = this.yesNoService.format(this.caseField.value);\n  }\n}\n","<div [id]=\"id()\" class=\"form-group bottom-30\" [ngClass]=\"{'form-group-error': !yesNoControl.valid && (yesNoControl.dirty || yesNoControl.touched)}\">\n\t<fieldset class=\"inline\">\n    <legend>\n      <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n    </legend>\n    <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n    <span class=\"error-message\" *ngIf=\"yesNoControl.errors && (yesNoControl.dirty || yesNoControl.touched)\">\n      {{yesNoControl.errors | ccdFirstError:caseField.label}}\n    </span>\n\n    <div [id]=\"createElementId('radio')\">\n  \t  <div class=\"multiple-choice\" *ngFor=\"let value of yesNoValues\" [ngClass]=\"{selected: yesNoControl.value === value}\">\n  \t    <input class=\"form-control\" [id]=\"createElementId(value)\" [attr.name]=\"id()\" [name]=\"id()\" type=\"radio\" [formControl]=\"yesNoControl\" [value]=\"value\">\n        <label class=\"form-label\" [for]=\"createElementId(value)\">{{caseField.label ? ((caseField.originalLabel || caseField.label) | rpxTranslate:null:value) : value}}</label>\n  \t  </div>\n    </div>\n\t</fieldset>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\nimport { YesNoService } from './yes-no.service';\n\n@Component({\n  selector: 'ccd-write-yes-no-field',\n  templateUrl: './write-yes-no-field.html',\n  standalone: false\n})\nexport class WriteYesNoFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n  public yesNoValues = [ 'Yes', 'No' ];\n  public yesNoControl: FormControl;\n\n  constructor(private readonly yesNoService: YesNoService) {\n    super();\n  }\n\n  public ngOnInit() {\n    this.yesNoControl = this.registerControl(new FormControl(this.yesNoService.format(this.caseField.value))) as FormControl;\n  }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { DisplayContextCustomParameter, DisplayContextParameter } from '../../domain/definition/display-context-enum.model';\nimport { WriteAddressFieldComponent } from './address/write-address-field.component';\nimport { CaseFileViewFieldComponent } from './case-file-view/case-file-view-field.component';\nimport { ReadCaseFlagFieldComponent } from './case-flag/read-case-flag-field.component';\nimport { WriteCaseFlagFieldComponent } from './case-flag/write-case-flag-field.component';\nimport { ReadCaseLinkFieldComponent } from './case-link/read-case-link-field.component';\nimport { WriteCaseLinkFieldComponent } from './case-link/write-case-link-field.component';\nimport { ReadCollectionFieldComponent } from './collection/read-collection-field.component';\nimport { WriteCollectionFieldComponent } from './collection/write-collection-field.component';\nimport { ReadComplexFieldComponent } from './complex/read-complex-field.component';\nimport { WriteComplexFieldComponent } from './complex/write-complex-field.component';\nimport { ReadDateFieldComponent } from './date/read-date-field.component';\nimport { WriteDateContainerFieldComponent } from './date/write-date-container-field.component';\nimport { ReadDocumentFieldComponent } from './document/read-document-field.component';\nimport { WriteDocumentFieldComponent } from './document/write-document-field.component';\nimport { ReadDynamicListFieldComponent } from './dynamic-list/read-dynamic-list-field.component';\nimport { WriteDynamicListFieldComponent } from './dynamic-list/write-dynamic-list-field.component';\nimport { ReadDynamicMultiSelectListFieldComponent, WriteDynamicMultiSelectListFieldComponent } from './dynamic-multi-select-list';\nimport { ReadDynamicRadioListFieldComponent } from './dynamic-radio-list/read-dynamic-radio-list-field.component';\nimport { WriteDynamicRadioListFieldComponent } from './dynamic-radio-list/write-dynamic-radio-list-field.component';\nimport { ReadEmailFieldComponent } from './email/read-email-field.component';\nimport { WriteEmailFieldComponent } from './email/write-email-field.component';\nimport { ReadFixedListFieldComponent } from './fixed-list/read-fixed-list-field.component';\nimport { WriteFixedListFieldComponent } from './fixed-list/write-fixed-list-field.component';\nimport { ReadFixedRadioListFieldComponent } from './fixed-radio-list/read-fixed-radio-list-field.component';\nimport { WriteFixedRadioListFieldComponent } from './fixed-radio-list/write-fixed-radio-list-field.component';\nimport { CaseHistoryViewerFieldComponent } from './history/case-history-viewer-field.component';\nimport { ReadJudicialUserFieldComponent } from './judicial-user/read-judicial-user-field.component';\nimport { WriteJudicialUserFieldComponent } from './judicial-user/write-judicial-user-field.component';\nimport { LabelFieldComponent } from './label/label-field.component';\nimport { ReadLinkedCasesFieldComponent, WriteLinkedCasesFieldComponent } from './linked-cases';\nimport { ReadMoneyGbpFieldComponent } from './money-gbp/read-money-gbp-field.component';\nimport { WriteMoneyGbpFieldComponent } from './money-gbp/write-money-gbp-field.component';\nimport { ReadMultiSelectListFieldComponent } from './multi-select-list/read-multi-select-list-field.component';\nimport { WriteMultiSelectListFieldComponent } from './multi-select-list/write-multi-select-list-field.component';\nimport { ReadNumberFieldComponent } from './number/read-number-field.component';\nimport { WriteNumberFieldComponent } from './number/write-number-field.component';\nimport { ReadOrderSummaryFieldComponent } from './order-summary/read-order-summary-field.component';\nimport { WriteOrderSummaryFieldComponent } from './order-summary/write-order-summary-field.component';\nimport { ReadOrganisationFieldComponent } from './organisation/read-organisation-field.component';\nimport { WriteOrganisationFieldComponent } from './organisation/write-organisation-field.component';\nimport { CasePaymentHistoryViewerFieldComponent } from './payment/case-payment-history-viewer-field.component';\nimport { ReadPhoneUKFieldComponent } from './phone-uk/read-phone-uk-field.component';\nimport { WritePhoneUKFieldComponent } from './phone-uk/write-phone-uk-field.component';\nimport { ReadQueryManagementFieldComponent } from './query-management';\nimport { ReadTextAreaFieldComponent } from './text-area/read-text-area-field.component';\nimport { WriteTextAreaFieldComponent } from './text-area/write-text-area-field.component';\nimport { ReadTextFieldComponent } from './text/read-text-field.component';\nimport { WriteTextFieldComponent } from './text/write-text-field.component';\nimport { UnsupportedFieldComponent } from './unsupported-field.component';\nimport { WaysToPayFieldComponent } from './waystopay/waystopay-field.component';\nimport { ReadYesNoFieldComponent } from './yes-no/read-yes-no-field.component';\nimport { WriteYesNoFieldComponent } from './yes-no/write-yes-no-field.component';\n\n@Injectable()\nexport class PaletteService {\n  private readonly componentLauncherRegistry = {\n    [DisplayContextCustomParameter.CaseFileView]: [CaseFileViewFieldComponent, CaseFileViewFieldComponent],\n    [DisplayContextCustomParameter.LinkedCases]: [WriteLinkedCasesFieldComponent, ReadLinkedCasesFieldComponent],\n    [DisplayContextCustomParameter.QueryManagement]: [ReadQueryManagementFieldComponent, ReadQueryManagementFieldComponent],\n  };\n\n  public getFieldComponentClass(caseField: CaseField, write: boolean): Type<{}> {\n    switch (caseField.field_type.type) {\n      case 'Text':\n      case 'Postcode':\n        return write ? WriteTextFieldComponent : ReadTextFieldComponent;\n      case 'TextArea':\n        return write ? WriteTextAreaFieldComponent : ReadTextAreaFieldComponent;\n      case 'Number':\n        return write ? WriteNumberFieldComponent : ReadNumberFieldComponent;\n      case 'YesOrNo':\n        return write ? WriteYesNoFieldComponent : ReadYesNoFieldComponent;\n      case 'Email':\n        return write ? WriteEmailFieldComponent : ReadEmailFieldComponent;\n      case 'PhoneUK':\n        return write ? WritePhoneUKFieldComponent : ReadPhoneUKFieldComponent;\n      case 'Date':\n      case 'DateTime':\n        return write ? WriteDateContainerFieldComponent : ReadDateFieldComponent;\n      case 'MoneyGBP':\n        return write ? WriteMoneyGbpFieldComponent : ReadMoneyGbpFieldComponent;\n      case 'DynamicList':\n        return write ? WriteDynamicListFieldComponent : ReadDynamicListFieldComponent;\n      case 'FixedList':\n        return write ? WriteFixedListFieldComponent : ReadFixedListFieldComponent;\n      case 'DynamicRadioList':\n        return write ? WriteDynamicRadioListFieldComponent : ReadDynamicRadioListFieldComponent;\n      case 'DynamicMultiSelectList':\n          return write ? WriteDynamicMultiSelectListFieldComponent : ReadDynamicMultiSelectListFieldComponent;\n      case 'FixedRadioList':\n        return write ? WriteFixedRadioListFieldComponent : ReadFixedRadioListFieldComponent;\n      case 'Complex':\n        switch (caseField.field_type.id) {\n          case 'AddressGlobalUK':\n          case 'AddressUK':\n            return write ? WriteAddressFieldComponent : ReadComplexFieldComponent;\n          case 'OrderSummary':\n            return write ? WriteOrderSummaryFieldComponent : ReadOrderSummaryFieldComponent;\n          case 'CaseLink':\n            return write ? WriteCaseLinkFieldComponent : ReadCaseLinkFieldComponent;\n          case 'Organisation':\n            return write ? WriteOrganisationFieldComponent : ReadOrganisationFieldComponent;\n          case 'JudicialUser':\n            return write ? WriteJudicialUserFieldComponent : ReadJudicialUserFieldComponent;\n          default:\n            return write ? WriteComplexFieldComponent : ReadComplexFieldComponent;\n        }\n      case 'Collection':\n        return write ? WriteCollectionFieldComponent : ReadCollectionFieldComponent;\n      case 'MultiSelectList':\n        return write ? WriteMultiSelectListFieldComponent : ReadMultiSelectListFieldComponent;\n      case 'Document':\n        return write ? WriteDocumentFieldComponent : ReadDocumentFieldComponent;\n      case 'Label':\n        return LabelFieldComponent;\n      case 'CasePaymentHistoryViewer':\n        return CasePaymentHistoryViewerFieldComponent;\n      case 'CaseHistoryViewer':\n        return CaseHistoryViewerFieldComponent;\n      case 'WaysToPay':\n        return WaysToPayFieldComponent;\n      case 'ComponentLauncher':\n        return this.getComponentLauncherComponent(caseField, write);\n      case 'FlagLauncher':\n        return write ? WriteCaseFlagFieldComponent : ReadCaseFlagFieldComponent;\n      default:\n        return UnsupportedFieldComponent;\n    }\n  }\n\n  private getComponentLauncherComponent(caseField: CaseField, write: boolean): any {\n    // Extract the value passed for #ARGUMENT(...) in the CaseField display_context_parameter and\n    // delete the default entries and return the matching component from the componentLauncherRegistry\n    const argumentValue = caseField?.display_context_parameter?.match(/#ARGUMENT\\((.*?)\\)/)[1];\n    if (argumentValue) {\n      const displayContextParameterArray = argumentValue.includes(',') ? argumentValue.split(',') : [argumentValue];\n      const componentToRender = displayContextParameterArray.filter(displayContextParameter => {\n        return !Object.values(DisplayContextParameter).find(displayContextParameterFromLookup => {\n           return displayContextParameter === displayContextParameterFromLookup;\n        });\n      });\n      if (componentToRender?.length > 0 && this.componentLauncherRegistry.hasOwnProperty(componentToRender[0])) {\n        return this.componentLauncherRegistry[componentToRender[0]][write ? 0 : 1];\n      }\n    }\n    return UnsupportedFieldComponent;\n  }\n}\n","import { Component, ComponentFactoryResolver, Injector, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { PaletteService } from '../palette.service';\nimport { AbstractFieldReadComponent } from './abstract-field-read.component';\n\nconst FIX_CASEFIELD_FOR = ['FixedList', 'DynamicList', 'DynamicMultiSelectList'];\n\n@Component({\n  selector: 'ccd-field-read',\n  templateUrl: './field-read.html',\n  standalone: false\n})\nexport class FieldReadComponent extends AbstractFieldReadComponent implements OnInit {\n  @Input()\n  public withLabel = false;\n\n  @Input()\n  public formGroup: FormGroup = new FormGroup({});\n\n  @Input()\n  public caseFields: CaseField[] = [];\n\n\n  @ViewChild('fieldContainer', { static: false, read: ViewContainerRef })\n  public fieldContainer: ViewContainerRef;\n\n  constructor(private readonly resolver: ComponentFactoryResolver, private readonly paletteService: PaletteService) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    // Ensure all field values are resolved by label interpolation before the component is fully initialised.\n    Promise.resolve(null).then(() => {\n      const componentClass = this.paletteService.getFieldComponentClass(this.caseField, false);\n      const injector = Injector.create({\n        providers: [],\n        parent: this.fieldContainer?.injector\n      });\n\n      const component = this.resolver.resolveComponentFactory(componentClass).create(injector);\n\n      // Provide component @Inputs\n      // Only Fixed list use plainToClassFromExist\n      // Better performance\n      // TODO AW 30/12/20 figure out why FixedLists need plainToClassFromExist\n      // Added a check to make sure it's NOT already a CaseField and then\n      // assigning it back to this.caseField so we don't create separation.\n      if (FIX_CASEFIELD_FOR.indexOf(this.caseField.field_type.type) > -1 && !(this.caseField instanceof CaseField)) {\n        this.caseField = plainToClassFromExist(new CaseField(), this.caseField);\n      }\n      component.instance['caseField'] = this.caseField;\n      component.instance['caseFields'] = this.caseFields;\n      component.instance['formGroup'] = this.formGroup;\n      component.instance['topLevelFormGroup'] = this.topLevelFormGroup;\n      component.instance['idPrefix'] = this.idPrefix;\n      component.instance['parent'] = this.parent;\n      component.instance['caseReference'] = this.caseReference;\n      component.instance['context'] = this.context;\n      component.instance['labelCanBeTranslated'] = this.labelCanBeTranslated(this.caseField);\n\n      this.fieldContainer?.insert(component.hostView);\n    });\n  }\n\n  private labelCanBeTranslated(caseField: CaseField): boolean {\n    return !!(caseField.field_type.type === 'Label' && caseField.label);\n  }\n}\n","<div [hidden]=\"caseField.hidden\">\n  <ccd-field-read-label [formGroup]=\"formGroup\" [topLevelFormGroup]=\"topLevelFormGroup\" [caseField]=\"caseField\" [withLabel]=\"withLabel\">\n    <ng-container #fieldContainer></ng-container>\n  </ccd-field-read-label>\n</div>\n","import { Component, ComponentFactoryResolver, Injector, Input, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { CaseField } from '../../../domain/definition';\nimport { FormValidatorsService } from '../../../services/form';\nimport { PaletteService } from '../palette.service';\nimport { AbstractFieldWriteComponent } from './abstract-field-write.component';\n\nconst FIX_CASEFIELD_FOR = ['FixedList', 'DynamicList', 'DynamicMultiSelectList'];\n\n@Component({\n  selector: 'ccd-field-write',\n  templateUrl: './field-write.component.html',\n  styleUrls: ['./field-write.component.scss'],\n  standalone: false\n})\nexport class FieldWriteComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  // EUI-3267. Flag for whether or not this can have a grey bar.\n  public canHaveGreyBar = false;\n\n  @Input()\n  public caseFields: CaseField[] = [];\n\n  @ViewChild('fieldContainer', { static: true, read: ViewContainerRef })\n  public fieldContainer: ViewContainerRef;\n\n  constructor(private readonly resolver: ComponentFactoryResolver,\n    private readonly paletteService: PaletteService) {\n    super();\n  }\n\n  protected addValidators(caseField: CaseField, control: AbstractControl): void {\n    FormValidatorsService.addValidators(caseField, control);\n  }\n\n  public ngOnInit(): void {\n    const componentClass = this.paletteService.getFieldComponentClass(this.caseField, true);\n\n    const injector = Injector.create([], this.fieldContainer.parentInjector);\n    const component = this.resolver.resolveComponentFactory(componentClass).create(injector);\n\n    // Only Fixed list use plainToClassFromExist\n    // Better performance\n    // TODO AW 30/12/20 figure out why FixedLists need plainToClassFromExist\n    // Added a check to make sure it's NOT already a CaseField and then\n    // assigning it back to this.caseField so we don't create separation.\n    if (FIX_CASEFIELD_FOR.indexOf(this.caseField.field_type.type) > -1 && !(this.caseField instanceof CaseField)) {\n      this.caseField = plainToClassFromExist(new CaseField(), this.caseField);\n    }\n    component.instance['caseField'] = this.caseField;\n\n    component.instance['caseFields'] = this.caseFields;\n    component.instance['formGroup'] = this.formGroup;\n    component.instance['parent'] = this.parent;\n    component.instance['idPrefix'] = this.idPrefix;\n    if (this.caseField.field_type.id === 'AddressGlobal') {\n      component.instance['ignoreMandatory'] = true;\n    }\n    component.instance['isExpanded'] = this.isExpanded;\n    component.instance['isInSearchBlock'] = this.isInSearchBlock;\n    this.fieldContainer.insert(component.hostView);\n\n    // EUI-3267.\n    // Set up the flag for whether this can have a grey bar.\n    this.canHaveGreyBar = this.caseField.show_condition && this.caseField.field_type.type !== 'Collection';\n  }\n}\n","<div [hidden]=\"caseField.hidden\" [class.grey-bar]=\"canHaveGreyBar && !caseField.hiddenCannotChange\">\n  <ng-container #fieldContainer></ng-container>\n</div>\n","<div [hidden]=\"caseField.hidden\" [class.grey-bar]=\"canHaveGreyBar && !caseField.hiddenCannotChange\">\n  <dl class=\"case-field\" *ngIf=\"withLabel && !isLabel() && (!isComplex() || isCaseLink()); else caseFieldValue\">\n    <dt class=\"case-field__label\">{{caseField.label | rpxTranslate}}</dt>\n    <dd class=\"case-field__value\">\n      <ng-container *ngTemplateOutlet=\"caseFieldValue\"></ng-container>\n    </dd>\n  </dl>\n  <ng-template #caseFieldValue>\n    <ng-content></ng-content>\n  </ng-template>\n</div>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { plainToClassFromExist } from 'class-transformer';\n\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { AbstractFieldReadComponent } from './abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-field-read-label',\n  templateUrl: './field-read-label.html',\n  styleUrls: [\n    './field-read-label.scss'\n  ],\n  standalone: false\n})\nexport class FieldReadLabelComponent extends AbstractFieldReadComponent implements OnChanges {\n\n  // EUI-3267. Flag for whether or not this can have a grey bar.\n  public canHaveGreyBar = false;\n\n  @Input()\n  public withLabel: boolean;\n\n  public isLabel(): boolean {\n    return this.caseField.field_type && this.caseField.field_type.type === 'Label';\n  }\n\n  public isComplex(): boolean {\n    return this.caseField.isComplex();\n  }\n\n  public isCaseLink(): boolean {\n    return this.caseField.isCaseLink();\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    const change = changes['caseField'];\n    if (change) {\n      const cfNew = change.currentValue;\n      if (!(cfNew instanceof CaseField)) {\n        this.fixCaseField();\n      }\n\n      // EUI-3267.\n      // Set up the flag for whether this can have a grey bar.\n      this.canHaveGreyBar = !!this.caseField.show_condition;\n    }\n  }\n\n  private fixCaseField() {\n    if (this.caseField && !(this.caseField instanceof CaseField)) {\n      this.caseField = plainToClassFromExist(new CaseField(), this.caseField);\n    }\n  }\n}\n","<span tabindex=\"0\" aria-label=\"close\" class=\"close\" (click)=\"cancel()\" (keyup)=\"$event.key === 'Enter' ? cancel() : null\"></span>\n<h2 class=\"govuk-heading-l\">Move File</h2>\n<p>Where do you want to move \"{{ data.document.document_filename }}\" file?</p>\n<div class=\"folders govuk-radios govuk-radios--conditional\">\n    <ng-container *ngFor=\"let cat of currentCategories\">\n        <ng-container *ngTemplateOutlet=\"folder;context:{cat:cat,level:1}\"></ng-container>\n    </ng-container>\n</div>\n<div class=\"govuk-button-group\">\n    <button class=\"button button-primary\" type=\"button\" (click)=\"save()\">Save</button>\n    <a (click)=\"cancel(); $event.preventDefault()\" class=\"cancel\" href=\"#\">Cancel</a>\n</div>\n\n<ng-template #folder let-cat=\"cat\" let-level=\"level\">\n    <div class=\"folder govuk-radios__item\">\n        <input class=\"govuk-radios__input\" type=\"radio\" name=\"level-{{level}}\" [id]=\"cat.category_id\" (click)=\"handleChange($event)\" (keyup)=\"$event.key === 'Enter' ? handleChange($event) : null\" />\n        <label class=\"govuk-label govuk-radios__label\" [for]=\"cat.category_id\">\n            <img class=\"iconImg\" src=\"/assets/images/folder.png\" alt=\"Folder icon\" />\n            {{ cat.category_name }}\n        </label>\n        <ng-container *ngFor=\"let subcat of cat.sub_categories\">\n            <ng-container *ngTemplateOutlet=\"folder;context:{cat:subcat,level:level+1}\"></ng-container>\n        </ng-container>\n    </div>\n</ng-template>","import { AfterViewInit, Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatLegacyDialogRef as MatDialogRef , MAT_LEGACY_DIALOG_DATA } from '@angular/material/legacy-dialog';\nimport { DocumentTreeNode } from '../../../../../domain/case-file-view';\nimport { CaseFileViewCategory } from '../../../../../domain/case-file-view/case-file-view-category.model';\n\n@Component({\n  selector: 'xui-case-file-view-folder-selector',\n  templateUrl: './case-file-view-folder-selector.component.html',\n  styleUrls: ['./case-file-view-folder-selector.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false\n})\nexport class CaseFileViewFolderSelectorComponent implements AfterViewInit {\n  public currentCategories: CaseFileViewCategory[] = [];\n  public selected: string = '';\n\n  constructor(\n        public dialogRef: MatDialogRef<CaseFileViewFolderSelectorComponent>,\n        @Inject(MAT_LEGACY_DIALOG_DATA) public data: { categories: CaseFileViewCategory[], document: DocumentTreeNode }\n  ) {\n    this.currentCategories = [...this.data.categories];\n  }\n\n  public ngAfterViewInit(): void {\n    const path = this.findPath();\n    path.forEach((p) => (document.getElementById(p) as HTMLInputElement).checked = true);\n  }\n\n  public handleChange(evt) {\n    if (evt.target.checked) {\n      this.select(evt.target.id);\n      // get level of this checkbox so we can clear all lower levels\n      let level = parseInt(evt.target.name.split('-')[1], 10) + 1;\n      let nodes = document.getElementsByName(`level-${level}`);\n      while (nodes.length > 0) {\n        nodes.forEach((node: HTMLInputElement) => node.checked = false);\n        level += 1;\n        nodes = document.getElementsByName(`level-${level}`);\n      }\n    }\n  }\n\n  public select(categoryId: string) {\n    this.selected = categoryId;\n  }\n\n  public cancel() {\n    this.dialogRef.close();\n  }\n\n  public save() {\n    this.dialogRef.close(this.selected.length > 0 ? this.selected : null);\n  }\n\n  private findPath(): string[] {\n    for (const c of this.data.categories) {\n      const r = this.containsDocument(c, this.data.document);\n      if (r) {\n        return r;\n      }\n    }\n    return [];\n  }\n\n  private containsDocument(cat: CaseFileViewCategory, document: DocumentTreeNode): string[] | null {\n    if (cat.documents.findIndex((doc) => (doc.document_binary_url === document.document_binary_url)\n        && (doc.attribute_path === document.attribute_path)) > -1) {\n      return [cat.category_id];\n    }\n    for (const c of cat.sub_categories) {\n      const r = this.containsDocument(c, document);\n      if (r) {\n        return [cat.category_id, ...r];\n      }\n    }\n    return null;\n  }\n}\n","<div>\n  <button type=\"button\"\n          class=\"overlay-toggle\"\n          (click)=\"$event.stopPropagation(); setOpen()\"\n          cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\"\n          aria-haspopup=\"true\"\n          [attr.aria-expanded]=\"isOpen\">\n    <ng-content select=\"[trigger]\" aria-hidden=\"true\"></ng-content>\n  </button>\n\n  <ng-template\n    cdkConnectedOverlay\n    [cdkConnectedOverlayOrigin]=\"trigger\"\n    [cdkConnectedOverlayOpen]=\"isOpen\"\n    [cdkConnectedOverlayHasBackdrop]=\"true\"\n    [cdkConnectedOverlayBackdropClass]=\"'cdk-overlay-transparent-backdrop'\"\n    (backdropClick)=\"closeOverlay()\"\n  >\n    <div class=\"overlay-menu\">\n      <ng-container *ngIf=\"title\">\n        <div class=\"overlay-menu__title\">{{title}}</div>\n      </ng-container>\n\n      <ul>\n        <ng-container *ngFor=\"let item of menuItems;\">\n          <li class=\"overlay-menu__item\" tabindex=\"0\" (click)=\"item.actionFn(); closeOverlay();\" (keydown.enter)=\"item.actionFn(); closeOverlay();\">\n            <img *ngIf=\"item.iconSrc\" [src]=\"item.iconSrc\" class=\"overlay-menu__itemIcon\" alt=\"{{item.actionText}} icon\" aria-hidden=\"true\" />\n            <span class=\"overlay-menu__actionText\">{{item.actionText}}</span>\n          </li>\n        </ng-container>\n      </ul>\n    </div>\n  </ng-template>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CaseFileViewOverlayMenuItem } from './case-file-view-overlay-menu-item.model';\n\n@Component({\n  selector: 'ccd-case-file-view-overlay-menu',\n  templateUrl: './case-file-view-overlay-menu.component.html',\n  styleUrls: ['./case-file-view-overlay-menu.component.scss'],\n  standalone: false\n})\nexport class CaseFileViewOverlayMenuComponent {\n  @Input() public title: string = '';\n  @Input() public menuItems: CaseFileViewOverlayMenuItem[];\n\n  @Input() public isOpen = false;\n  @Output() public isOpenChange = new EventEmitter<boolean>();\n\n  public closeOverlay(): void {\n    const isOpen = false;\n\n    this.isOpen = isOpen;\n    this.isOpenChange.emit(isOpen);\n  }\n\n  public setOpen() {\n    this.isOpen = !this.isOpen;\n    if(this.isOpen) {\n      setTimeout(()=>{\n        const el = document.querySelector('.overlay-menu__item:first-of-type');\n        if(el) { (el as HTMLElement).focus(); }\n      },0);\n    }\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CaseFileViewOverlayMenuItem } from '../../shared/case-file-view-overlay-menu/case-file-view-overlay-menu-item.model';\n\n@Component({\n  selector: 'ccd-case-file-view-folder-document-actions',\n  templateUrl: './case-file-view-folder-document-actions.component.html',\n  styleUrls: ['./case-file-view-folder-document-actions.component.scss'],\n  standalone: false\n})\nexport class CaseFileViewFolderDocumentActionsComponent implements OnInit {\n  public isOpen = false;\n\n  @Input() public allowMoving: boolean;\n\n  @Output() public changeFolderAction = new EventEmitter<void>();\n  @Output() public openInANewTabAction = new EventEmitter<void>();\n  @Output() public downloadAction = new EventEmitter<void>();\n  @Output() public printAction = new EventEmitter<void>();\n\n  public overlayMenuItems: CaseFileViewOverlayMenuItem[] = [\n    { actionText: 'Open in a new tab', iconSrc: '/assets/img/case-file-view/document-menu/open_in_new.svg', actionFn: () => this.openInANewTabAction.emit() },\n    { actionText: 'Download', iconSrc: '/assets/img/case-file-view/document-menu/download.svg', actionFn: () => this.downloadAction.emit() },\n    { actionText: 'Print', iconSrc: '/assets/img/case-file-view/document-menu/print.svg', actionFn: () => this.printAction.emit() },\n  ];\n\n  constructor() {}\n\n  public ngOnInit() {\n    if (this.allowMoving) {\n      this.overlayMenuItems.unshift({ actionText: 'Change folder', iconSrc: '/assets/img/case-file-view/document-menu/open_with.svg', actionFn: () => this.changeFolderAction.emit() });\n    }\n  }\n}\n","<ccd-case-file-view-overlay-menu\n  [menuItems]=\"overlayMenuItems\"\n  [(isOpen)]=\"isOpen\"\n>\n  <ng-container trigger>\n    <img class=\"actions-trigger-icon\" src=\"/assets/img/case-file-view/document-menu/more_vert.svg\"\n      alt=\"More document options\">\n  </ng-container>\n</ccd-case-file-view-overlay-menu>\n","export enum CaseFileViewSortColumns {\n  DOCUMENT_NAME,\n  DOCUMENT_UPLOAD_TIMESTAMP\n}\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\nimport { AbstractAppConfig } from '../../../../../../../app.config';\nimport { CaseFileViewSortColumns } from '../../../../../../domain/case-file-view/case-file-view-sort-columns.enum';\nimport { CaseFileViewOverlayMenuItem } from '../../shared/case-file-view-overlay-menu/case-file-view-overlay-menu-item.model';\n\n@Component({\n  selector: 'ccd-case-file-view-folder-sort',\n  templateUrl: './case-file-view-folder-sort.component.html',\n  styleUrls: ['./case-file-view-folder-sort.component.scss'],\n  standalone: false\n})\nexport class CaseFileViewFolderSortComponent implements OnInit {\n  public isOpen = false;\n\n  @Output() public sortAscending = new EventEmitter<number>();\n  @Output() public sortDescending = new EventEmitter<number>();\n\n  public overlayMenuItems: CaseFileViewOverlayMenuItem[] = [\n    { actionText: 'A to Z ascending', iconSrc: '/assets/img/sort/sort-down-arrow.svg', actionFn: () => this.sortAscending.emit(CaseFileViewSortColumns.DOCUMENT_NAME) },\n    { actionText: 'Z to A descending', iconSrc: '/assets/img/sort/sort-up-arrow.svg', actionFn: () => this.sortDescending.emit(CaseFileViewSortColumns.DOCUMENT_NAME) }\n  ];\n\n  constructor(private readonly appConfig: AbstractAppConfig) { }\n\n  public ngOnInit(): void {\n    this.overlayMenuItems = [\n      { actionText: 'A to Z ascending', iconSrc: '/assets/img/sort/sort-down-arrow.svg', actionFn: () => this.sortAscending.emit(CaseFileViewSortColumns.DOCUMENT_NAME) },\n      { actionText: 'Z to A descending', iconSrc: '/assets/img/sort/sort-up-arrow.svg', actionFn: () => this.sortDescending.emit(CaseFileViewSortColumns.DOCUMENT_NAME) },\n      { actionText: 'Recent first', iconSrc: '/assets/img/sort/sort-down-arrow.svg', actionFn: () => this.sortDescending.emit(CaseFileViewSortColumns.DOCUMENT_UPLOAD_TIMESTAMP) },\n      { actionText: 'Oldest first', iconSrc: '/assets/img/sort/sort-up-arrow.svg', actionFn: () => this.sortAscending.emit(CaseFileViewSortColumns.DOCUMENT_UPLOAD_TIMESTAMP) }\n    ];\n  }\n}\n","<ccd-case-file-view-overlay-menu\n  [title]=\"'Sort documents by name'\"\n  [menuItems]=\"overlayMenuItems\"\n  [(isOpen)]=\"isOpen\"\n>\n  <ng-container trigger>\n    <img class=\"sort-button-icon\" src=\"/assets/img/sort/sort-arrows.svg\" alt=\"Sort Arrows\">\n  </ng-container>\n</ccd-case-file-view-overlay-menu>\n","import { Component, EventEmitter, Output } from '@angular/core';\nimport { AbstractAppConfig } from '../../../../../../../app.config';\nimport { CaseFileViewOverlayMenuItem } from '../../shared/case-file-view-overlay-menu/case-file-view-overlay-menu-item.model';\n\n@Component({\n  selector: \"ccd-case-file-view-folder-toggle\",\n  templateUrl: \"./case-file-view-folder-toggle.component.html\",\n  styleUrls: [\"./case-file-view-folder-toggle.component.scss\"],\n  standalone: false\n})\nexport class CaseFileViewFolderToggleComponent {\n  public isOpen = false;\n\n  @Output() public expandAll = new EventEmitter<boolean>();\n  @Output() public collapseAll = new EventEmitter<boolean>();\n\n  public overlayMenuItems: CaseFileViewOverlayMenuItem[] = [\n    {\n      actionText: \"Expand All\",\n      iconSrc: \"/assets/img/accordion-plus.png\",\n      actionFn: () => this.expandAll.emit(true),\n    },\n    {\n      actionText: \"Collapse All\",\n      iconSrc: \"/assets/img/accordion-minus.png\",\n      actionFn: () => this.collapseAll.emit(true),\n    },\n  ];\n\n  constructor(private readonly appConfig: AbstractAppConfig) {}\n}\n","<ccd-case-file-view-overlay-menu [title]=\"'Toggle list'\" [menuItems]=\"overlayMenuItems\" [(isOpen)]=\"isOpen\">\n  <ng-container trigger>\n    <img class=\"toggle-button-icon\" src=\"/assets/images/folder-open.png\" alt=\"Toggle list\" />\n  </ng-container>\n</ccd-case-file-view-overlay-menu>","// tslint:disable:variable-name\nimport { CaseFileViewDocument } from './case-file-view-document.model';\n\nexport class CaseFileViewCategory {\n  public category_id: string;\n  public category_name: string;\n  public category_order: number;\n  public documents: CaseFileViewDocument[];\n  public sub_categories: CaseFileViewCategory[];\n}\n","// tslint:disable:variable-name\nexport class CaseFileViewDocument {\n  public document_url: string;\n  public document_filename: string;\n  public document_binary_url: string;\n  public attribute_path: string;\n  public upload_timestamp: Date | string;\n  public content_type: string;\n}\n","// tslint:disable:variable-name\nimport { CaseFileViewCategory } from './case-file-view-category.model';\nimport { CaseFileViewDocument } from './case-file-view-document.model';\n\n/**\n * DTO to provide typing of the response from the CCD Data Store API for Categories and Documents data.\n * @see {@link https://tools.hmcts.net/confluence/x/0KSDX#CaseFileViewDocumentDataendpointLLD-SuccessResponsePayload} for full details\n */\nexport class CategoriesAndDocuments {\n  public case_version: number;\n  public categories: CaseFileViewCategory[];\n  public uncategorised_documents: CaseFileViewDocument[];\n}\n","export enum DocumentTreeNodeType {\n  FOLDER = 'folder',\n  DOCUMENT = 'document',\n}\n","// tslint:disable:variable-name\nimport { Expose, Type } from 'class-transformer';\nimport { SortOrder } from '../../sort-order.enum';\nimport { CaseFileViewSortColumns } from '../case-file-view-sort-columns.enum';\nimport { DocumentTreeNodeType } from './document-tree-node-type.model';\n\nexport class DocumentTreeNode {\n  public name: string;\n  public type: DocumentTreeNodeType;\n  @Type(() => DocumentTreeNode)\n  public children?: DocumentTreeNode[];\n  public document_filename?: string;\n  public document_binary_url?: string;\n  public content_type?: string;\n  public attribute_path?: string;\n  public upload_timestamp?: string;\n  public category_order?: number;\n\n  @Expose()\n  public get childDocumentCount() {\n    const countChildren = (childNodes: DocumentTreeNode[] | undefined) => {\n      let count = 0;\n      if (childNodes?.length) {\n        const documents = childNodes.filter(item => item.type === 'document');\n        count += documents.length;\n        childNodes.forEach((children) => {\n          count += countChildren(children.children);\n        });\n      }\n\n      return count;\n    };\n\n    return countChildren(this.children);\n  }\n\n  public sortChildrenAscending(column: number, sortOrder) {\n    const sortAscending = () => {\n      return (a, b) => {\n        const nodeA = this.getNodeToSort(a, column, sortOrder);\n        const nodeB = this.getNodeToSort(b, column, sortOrder);\n\n        if (a.type === DocumentTreeNodeType.FOLDER || b.type === DocumentTreeNodeType.FOLDER) {\n          return 0;\n        }\n\n        if (!nodeA || !nodeB) {\n          return 0;\n        }\n\n        if (nodeA < nodeB) {\n          return -1;\n        }\n\n        if (nodeA > nodeB) {\n          return 1;\n        }\n      };\n    };\n\n    this.children?.sort(sortAscending());\n    this.children?.forEach((childNodes) => {\n      childNodes.sortChildrenAscending(column, sortOrder);\n    });\n  }\n\n  public sortChildrenDescending(column: number, sortOrder) {\n    const sortDescending = () => {\n      return (a, b) => {\n        const nodeA = this.getNodeToSort(a, column, sortOrder);\n        const nodeB = this.getNodeToSort(b, column, sortOrder);\n\n        if (a.type === DocumentTreeNodeType.FOLDER || b.type === DocumentTreeNodeType.FOLDER) {\n          return 0;\n        }\n\n        if (!nodeA || !nodeB) {\n          return 0;\n        }\n\n        if (nodeA > nodeB) {\n          return -1;\n        }\n\n        if (nodeA < nodeB) {\n          return 1;\n        }\n      };\n    };\n\n    this.children?.sort(sortDescending());\n    this.children?.forEach((childNodes) => {\n      childNodes.sortChildrenDescending(column, sortOrder);\n    });\n  }\n\n  public get flattenedAll(): DocumentTreeNode[] {\n    const flattenChildren = (nodeChild: DocumentTreeNode): DocumentTreeNode[] => {\n      const flattenedNodes = [];\n      flattenedNodes.push(nodeChild);\n\n      if (nodeChild.children?.length > 0) {\n        nodeChild.children.forEach((child) => {\n            flattenedNodes.push(...flattenChildren(child));\n        });\n      }\n\n      return flattenedNodes;\n    };\n\n    return [\n      this,\n      ...this.children?.map(item => {\n        return flattenChildren(item);\n      }).flat()\n    ];\n  }\n\n  private getNodeToSort(node: any, column: number, sortOrder: number): Date | string {\n    if (column === CaseFileViewSortColumns.DOCUMENT_NAME) {\n      return node?.name\n        ? node.name.toUpperCase()\n        : '';\n    }\n    if (column === CaseFileViewSortColumns.DOCUMENT_UPLOAD_TIMESTAMP) {\n      if (node?.upload_timestamp) {\n        return new Date(node.upload_timestamp);\n      }\n      if (sortOrder === SortOrder.ASCENDING) {\n        return new Date(9999, 12, 31);\n      }\n      if (sortOrder === SortOrder.DESCENDING) {\n        return new Date(1111, 1, 1);\n      }\n    }\n    return '';\n  }\n}\n","<div class=\"document-filter-container\" role=\"search\">\n  <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n    <label\n      class=\"govuk-visually-hidden\"\n      for=\"document-search\">\n      Search by document name\n    </label>\n    <input\n      class=\"form-control document-search\"\n      type=\"search\"\n      id=\"document-search\"\n      name=\"documentSearchFormControl\"\n      formControlName=\"documentSearchFormControl\"\n      placeholder=\"Search by document name\"/>\n  </div>\n</div>\n\n<div class=\"document-folders-header\">\n  <div class=\"document-folders-header__title\" id=\"document-folders-header-title\" aria-hidden=\"true\">\n    Documents ({{ documentCount }})\n  </div>\n  <div\n    class=\"document-folders-header__flex\"\n    role=\"toolbar\"\n    aria-label=\"Document list actions\"\n    aria-labelledby=\"document-folders-header-title\">\n    <ccd-case-file-view-folder-toggle\n      (expandAll)=\"expandAll($event)\"\n      (collapseAll)=\"collapseAll($event)\">\n    </ccd-case-file-view-folder-toggle>\n    <ccd-case-file-view-folder-sort\n      (sortAscending)=\"sortDataSourceAscending($event)\"\n      (sortDescending)=\"sortDataSourceDescending($event)\">\n    </ccd-case-file-view-folder-sort>\n  </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n  <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n    No results found\n  </div>\n  <div>\n    <cdk-tree\n      [dataSource]=\"nestedDataSource\"\n      [treeControl]=\"nestedTreeControl\"\n      role=\"tree\"\n      aria-label=\"Case documents\">\n      <!-- document -->\n      <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n        <button\n          type=\"button\"\n          class=\"node case-file__node\"\n          role=\"treeitem\"\n          aria-expanded=\"false\"\n          [attr.aria-label]=\"node.name\"\n          (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n          [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n          <div class=\"node__icon\" disabled aria-hidden=\"true\">\n            <img src=\"/assets/img/case-file-view/case-file-view-document.svg\"\n              class=\"node__iconImg\"\n              alt=\"Document icon\"\n              aria-hidden=\"true\"\n            />\n          </div>\n          <span class=\"node__name node-name-document\">\n            {{ node.name }}\n            <br />\n            <span class=\"node__document-upload-timestamp\">{{\n              node.upload_timestamp | ccdDate: \"local\":\"dd MMM yyyy HH:mm\"\n              }}</span>\n          </span>\n        </button>\n        <div class=\"node__document-options case-file__action\">\n          <ccd-case-file-view-folder-document-actions\n            (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n            (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n            (downloadAction)=\"triggerDocumentAction('download', node)\"\n            (printAction)=\"triggerDocumentAction('print', node)\"\n            [allowMoving]=\"allowMoving\"\n          >\n          </ccd-case-file-view-folder-document-actions>\n        </div>\n      </cdk-nested-tree-node>\n      <!-- folder-->\n      <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n        <button\n          type=\"button\"\n          class=\"node\"\n          cdkTreeNodeToggle\n          role=\"treeitem\"\n          [attr.aria-expanded]=\"nestedTreeControl.isExpanded(node)\"\n          [attr.aria-label]=\"node.name + ' folder, ' + node.childDocumentCount + ' documents'\">\n          <div class=\"node__icon\" aria-hidden=\"true\">\n            <img class=\"node__iconImg\"\n                [src]=\"nestedTreeControl.isExpanded(node)\n                  ? '/assets/images/folder-open.png'\n                  : '/assets/images/folder.png'\n              \"\n              alt=\"Folder icon\"\n              aria-hidden=\"true\" />\n            <span class=\"node__count\">{{ node.childDocumentCount }}</span>\n          </div>\n          <span class=\"node__name node__name--folder\">{{ node.name }}</span>\n        </button>\n        <div\n          role=\"group\"\n          [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n          <ng-container cdkTreeNodeOutlet></ng-container>\n        </div>\n      </cdk-nested-tree-node>\n    </cdk-tree>\n  </div>\n</div>\n","import { NestedTreeControl } from '@angular/cdk/tree';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';\nimport { Router } from '@angular/router';\nimport { Observable, Subscription, of } from 'rxjs';\nimport { switchMap, tap } from 'rxjs/operators';\nimport {\n  CaseFileViewCategory,\n  CaseFileViewDocument,\n  CaseFileViewSortColumns,\n  CategoriesAndDocuments,\n  DocumentTreeNode,\n  DocumentTreeNodeType\n} from '../../../../../domain/case-file-view';\nimport { SortOrder } from '../../../../../domain/sort-order.enum';\nimport { DocumentManagementService, WindowService } from '../../../../../services';\nimport { FieldsUtils } from '../../../../../services/fields/fields.utils';\nimport { CaseFileViewFolderSelectorComponent } from '../case-file-view-folder-selector/case-file-view-folder-selector.component';\nexport const MEDIA_VIEWER_LOCALSTORAGE_KEY = 'media-viewer-info';\n\n@Component({\n  selector: 'ccd-case-file-view-folder',\n  templateUrl: './case-file-view-folder.component.html',\n  styleUrls: ['./case-file-view-folder.component.scss'],\n  standalone: false\n})\nexport class CaseFileViewFolderComponent implements OnInit, OnDestroy {\n  private static readonly UNCATEGORISED_DOCUMENTS_TITLE = 'Uncategorised documents';\n  private static readonly DOCUMENT_SEARCH_FORM_CONTROL_NAME = 'documentSearchFormControl';\n  private static readonly MINIMUM_SEARCH_CHARACTERS = 1;\n\n  @Input() public categoriesAndDocuments: Observable<CategoriesAndDocuments>;\n  @Input() public allowMoving: boolean;\n  @Output() public clickedDocument = new EventEmitter<DocumentTreeNode>();\n  @Output() public moveDocument = new EventEmitter<{ newCategory: string, document: DocumentTreeNode }>();\n\n  public nestedTreeControl: NestedTreeControl<DocumentTreeNode>;\n  public nestedDataSource: DocumentTreeNode[];\n  public categories: CaseFileViewCategory[] = [];\n  public categoriesAndDocumentsSubscription: Subscription;\n  public selectedNodeItem: DocumentTreeNode | undefined;\n\n  public documentFilterFormGroup: FormGroup;\n  public documentSearchFormControl: FormControl;\n  public documentTreeData: DocumentTreeNode[];\n  public documentFilterSubscription: Subscription;\n  public searchTermLength: number;\n\n  private getChildren = (node: DocumentTreeNode) => of(node.children);\n  public nestedChildren = (_: number, nodeData: DocumentTreeNode) => nodeData.children;\n  public get documentCount() {\n    if (this.nestedDataSource?.length) {\n      return this.nestedDataSource.reduce((acc, item) => {\n        return acc + item.childDocumentCount;\n      }, 0);\n    } else {\n      return 0;\n    }\n  }\n\n  constructor(\n    private readonly windowService: WindowService,\n    private readonly router: Router,\n    private readonly documentManagementService: DocumentManagementService,\n    private readonly dialog: MatDialog\n  ) {\n    this.nestedTreeControl = new NestedTreeControl<DocumentTreeNode>(this.getChildren);\n  }\n\n  public collapseAll(expand: boolean) {\n    this.nestedTreeControl.collapseAll();\n  }\n\n  public expandAll(expand: boolean) {\n    this.nestedDataSource.forEach((node) => {\n      this.nestedTreeControl.expandDescendants(node);\n    });\n  }\n\n  public ngOnInit(): void {\n    this.documentFilterFormGroup = new FormGroup({});\n    this.documentSearchFormControl = new FormControl('');\n    this.documentFilterFormGroup.addControl(CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME, this.documentSearchFormControl);\n\n    // Listen to search input and initiate filter documents if at least three characters entered\n    this.documentFilterSubscription = this.documentSearchFormControl.valueChanges.pipe(\n      tap((searchTerm: string) => this.searchTermLength = searchTerm.length),\n      switchMap((searchTerm: string) => this.filter(searchTerm.toLowerCase()).pipe())\n    ).subscribe(documentTreeData => {\n      this.nestedDataSource = documentTreeData;\n      this.nestedTreeControl.dataNodes = documentTreeData;\n      this.searchTermLength >= CaseFileViewFolderComponent.MINIMUM_SEARCH_CHARACTERS\n        ? this.nestedTreeControl.expandAll()\n        : this.nestedTreeControl.collapseAll();\n    });\n\n    // Subscribe to the input categories and documents, and generate tree data and initialise cdk tree\n    this.categoriesAndDocumentsSubscription = this.categoriesAndDocuments.subscribe(categoriesAndDocuments => {\n      const categories = categoriesAndDocuments.categories;\n      this.categories = categories;\n      // Generate document tree data from categories\n      this.documentTreeData = this.generateTreeData(categories);\n      // Append uncategorised documents\n      if (categoriesAndDocuments.uncategorised_documents && categoriesAndDocuments.uncategorised_documents.length > 0) {\n        const uncategorisedDocuments = this.getUncategorisedDocuments(categoriesAndDocuments.uncategorised_documents);\n        this.documentTreeData.push(uncategorisedDocuments);\n      }\n\n      // Initialise cdk tree with generated data\n      this.nestedDataSource = this.documentTreeData;\n      this.nestedTreeControl.dataNodes = this.documentTreeData;\n      this.sortDataSourceDescending(CaseFileViewSortColumns.DOCUMENT_UPLOAD_TIMESTAMP);\n    });\n  }\n\n  public generateTreeData(categories: CaseFileViewCategory[]): DocumentTreeNode[] {\n    return categories.reduce((tree, node) => {\n      const newDocumentTreeNode = new DocumentTreeNode();\n      newDocumentTreeNode.name = node.category_name;\n      newDocumentTreeNode.type = DocumentTreeNodeType.FOLDER;\n      newDocumentTreeNode.children = [...this.generateTreeData(node.sub_categories), ...this.getDocuments(node.documents)];\n      newDocumentTreeNode.category_order = node.category_order;\n\n      return [\n        ...tree,\n        newDocumentTreeNode,\n      ].sort((a,b) => a.category_order - b.category_order);\n    }, []);\n  }\n\n  public getDocuments(documents: CaseFileViewDocument[]): DocumentTreeNode[] {\n    const documentsToReturn: DocumentTreeNode[] = [];\n    documents.forEach(document => {\n      const documentTreeNode = new DocumentTreeNode();\n      documentTreeNode.name = document.document_filename;\n      documentTreeNode.type = DocumentTreeNodeType.DOCUMENT;\n      documentTreeNode.document_filename = document.document_filename;\n      documentTreeNode.document_binary_url = document.document_binary_url;\n      if (document.content_type) {\n        documentTreeNode.content_type = document.content_type;\n      }\n      documentTreeNode.attribute_path = document.attribute_path;\n      documentTreeNode.upload_timestamp = document.upload_timestamp ? document.upload_timestamp.toString() : '';\n\n      documentsToReturn.push(documentTreeNode);\n    });\n\n    return documentsToReturn;\n  }\n\n  public getUncategorisedDocuments(uncategorisedDocuments: CaseFileViewDocument[]): DocumentTreeNode {\n    const documents: DocumentTreeNode[] = [];\n    uncategorisedDocuments.forEach(document => {\n      const documentTreeNode = new DocumentTreeNode();\n      documentTreeNode.name = document.document_filename;\n      documentTreeNode.type = DocumentTreeNodeType.DOCUMENT;\n      documentTreeNode.document_filename = document.document_filename;\n      documentTreeNode.document_binary_url = document.document_binary_url;\n      if (document.content_type) {\n        documentTreeNode.content_type = document.content_type;\n      }\n      documentTreeNode.attribute_path = document.attribute_path;\n      documentTreeNode.upload_timestamp = document.upload_timestamp ? document.upload_timestamp.toString() : '';\n\n      documents.push(documentTreeNode);\n    });\n\n    const uncategorisedNode = new DocumentTreeNode();\n    uncategorisedNode.name = CaseFileViewFolderComponent.UNCATEGORISED_DOCUMENTS_TITLE;\n    uncategorisedNode.type = DocumentTreeNodeType.FOLDER;\n    uncategorisedNode.children = documents;\n\n    return uncategorisedNode;\n  }\n\n  public filter(searchTerm: string): Observable<DocumentTreeNode[]> {\n    // Make a copy of the data so we do not mutate the original\n    function copy(node: DocumentTreeNode) {\n      const documentTreeNode = new DocumentTreeNode();\n      return Object.assign(documentTreeNode, node);\n    }\n\n    let filteredData = this.documentTreeData;\n    if (searchTerm && searchTerm.length >= CaseFileViewFolderComponent.MINIMUM_SEARCH_CHARACTERS && this.documentFilterFormGroup.controls[CaseFileViewFolderComponent.DOCUMENT_SEARCH_FORM_CONTROL_NAME].value.length > 0) {\n      filteredData = this.documentTreeData.map(copy).filter(function filterTreeData(node: DocumentTreeNode) {\n        if (node.name && node.name.toLowerCase().includes(searchTerm) && node.type === DocumentTreeNodeType.DOCUMENT) {\n          return true;\n        }\n        // Call recursively if node has children\n        if (node.children) {\n          return (node.children = node.children.map(copy).filter(filterTreeData)).length;\n        }\n      });\n    }\n    return of(filteredData);\n  }\n\n  public triggerDocumentAction(\n    actionType: 'changeFolder' | 'openInANewTab' | 'download' | 'print',\n    documentTreeNode: DocumentTreeNode\n  ): void {\n    switch (actionType) {\n      case ('changeFolder'):\n        this.openMoveDialog(documentTreeNode);\n        break;\n      case ('openInANewTab'):\n        const documentDetails = {\n          document_binary_url: documentTreeNode.document_binary_url,\n          document_filename: documentTreeNode.document_filename,\n          content_type: documentTreeNode.content_type\n        };\n        const isHtmlDocument = this.documentManagementService.isHtmlDocument(documentDetails);\n        if (isHtmlDocument) {\n          const documentBinaryUrl = this.documentManagementService.getDocumentBinaryUrl(documentDetails);\n          if (documentBinaryUrl) {\n            this.windowService.openOnNewTab(documentBinaryUrl);\n            return;\n          }\n        }\n\n        const token = FieldsUtils.createToken();\n        const storageKey = `${MEDIA_VIEWER_LOCALSTORAGE_KEY}:${token}`;\n\n        const payload = this.documentManagementService.getMediaViewerInfo({\n          document_binary_url: documentTreeNode.document_binary_url,\n          document_filename: documentTreeNode.document_filename,\n          content_type: documentTreeNode.content_type\n        });\n        this.windowService.setLocalStorage(storageKey, payload);\n\n        const mediaViewerUrl = this.router.createUrlTree(\n          ['/media-viewer'],\n          { queryParams: { mvToken: token } }\n        )?.toString();\n\n        if (mediaViewerUrl) {\n          this.windowService.openOnNewTab(mediaViewerUrl);\n        }\n        break;\n      case ('download'):\n        // Create a URL from the document_binary_url property (absolute URL) and use the path portion (relative URL).\n        // This is necessary because the Manage Cases application will automatically apply a proxy to the request, with\n        // the correct remote endpoint\n        this.downloadFile(new URL(documentTreeNode.document_binary_url).pathname, documentTreeNode.document_filename);\n        break;\n      case ('print'):\n        this.printDocument(new URL(documentTreeNode.document_binary_url).pathname);\n        break;\n      default:\n        return;\n    }\n  }\n\n  public sortDataSourceAscending(column: number) {\n    const sortedData = this.nestedDataSource.map(item => {\n      item.sortChildrenAscending(column, SortOrder.ASCENDING);\n      return item;\n    });\n\n    this.updateNodeData(sortedData);\n  }\n\n  public sortDataSourceDescending(column: number) {\n    const sortedData = this.nestedDataSource.map(item => {\n      item.sortChildrenDescending(column, SortOrder.DESCENDING);\n      return item;\n    });\n\n    this.updateNodeData(sortedData);\n  }\n\n  public updateNodeData(data: DocumentTreeNode[]): void {\n    const prevSelected = this.nestedTreeControl.expansionModel.selected.map(\n      (item) => {\n        return item.name;\n      });\n\n    this.nestedTreeControl.collapseAll();\n    this.nestedDataSource = data.map((item) => {\n      const newDocumentTreeNode = new DocumentTreeNode();\n      newDocumentTreeNode.name = item.name;\n      newDocumentTreeNode.type = item.type;\n      newDocumentTreeNode.children = item.children;\n\n      return newDocumentTreeNode;\n    });\n\n    const flattenedArray = this.nestedDataSource.map((item) => {\n      return item.flattenedAll;\n    }).flat();\n    const newObjects = flattenedArray.filter((item) => {\n      return prevSelected.includes(item.name);\n    });\n    newObjects.forEach(object => this.nestedTreeControl.expand(object));\n  }\n\n  public ngOnDestroy(): void {\n    this.categoriesAndDocumentsSubscription?.unsubscribe();\n    this.documentFilterSubscription?.unsubscribe();\n  }\n\n  private openMoveDialog(node: DocumentTreeNode): void {\n    const dialogRef = this.dialog.open(CaseFileViewFolderSelectorComponent, {\n      data: { categories: this.categories, document: node }\n    });\n\n    dialogRef.afterClosed().subscribe(newCatId => {\n      if (newCatId) {\n        this.moveDocument.emit({ newCategory: newCatId, document: node });\n      }\n    });\n  }\n\n  public printDocument(url: string): void {\n    const printWindow = window.open(url);\n    printWindow.print();\n  }\n\n  public downloadFile(url: string, downloadFileName: string): void {\n    const a = document.createElement('a');\n    document.body.appendChild(a);\n    a.setAttribute('style', 'display: none');\n    a.href = url;\n    a.download = downloadFileName;\n    a.click();\n    a.remove();\n  }\n}\n","<ng-container [formGroup]=\"formGroup\">\n  <div class=\"govuk-character-count\" data-module=\"govuk-character-count\" data-maxlength=\"200\">\n    <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n      <h1 class=\"govuk-label-wrapper\"><label class=\"govuk-label govuk-label--m\" [for]=\"flagCommentsControlName\">\n          {{addCommentsTitle | rpxTranslate}}<span *ngIf=\"optional\"> ({{'optional' | rpxTranslate}})</span>\n        </label>\n      </h1>\n      <div id=\"add-comments-hint\" class=\"govuk-hint\">\n        {{addCommentsHint | rpxTranslate}}\n      </div>\n      <div class=\"govuk-warning-text\"\n        *ngIf=\"!isDisplayContextParameterExternal && isDisplayContextParameter2Point1Enabled && !otherInternalFlagTypeSelected\">\n        <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n        <strong class=\"govuk-warning-text__text\">\n          <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n          {{addCommentsStepEnum.WARNING_TEXT | rpxTranslate}}\n        </strong>\n      </div>\n      <div id=\"flag-comments-not-entered-error-message\" class=\"govuk-error-message\"\n        *ngIf=\"flagCommentsNotEnteredErrorMessage\">\n        <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagCommentsNotEnteredErrorMessage | rpxTranslate}}\n      </div>\n      <div id=\"add-comments-char-limit-error\" class=\"govuk-error-message\"\n        *ngIf=\"flagCommentsCharLimitErrorMessage\">\n        <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagCommentsCharLimitErrorMessage | rpxTranslate}}\n      </div>\n      <textarea class=\"govuk-textarea\" [id]=\"flagCommentsControlName\"\n        [name]=\"flagCommentsControlName\" [formControlName]=\"flagCommentsControlName\" rows=\"5\"\n        aria-describedby=\"add-comments-hint add-comments-char-limit-info add-comments-char-limit-error\"></textarea>\n      <div id=\"add-comments-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n        {{addCommentsStepEnum.CHARACTER_LIMIT_INFO | rpxTranslate}}\n      </div>\n    </div>\n  </div>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ErrorMessage, Journey } from '../../../../../domain';\nimport { CaseFlagState } from '../../domain';\nimport { AddCommentsErrorMessage, AddCommentsStep, CaseFlagFieldState, CaseFlagFormFields, CaseFlagWizardStepTitle } from '../../enums';\nimport { AbstractJourneyComponent } from '../../../base-field';\n\n@Component({\n  selector: 'ccd-add-comments',\n  templateUrl: './add-comments.component.html',\n  standalone: false\n})\nexport class AddCommentsComponent extends AbstractJourneyComponent implements OnInit, Journey {\n\n  @Input() public formGroup: FormGroup;\n  @Input() public optional = false;\n  @Input() public isDisplayContextParameterExternal = false;\n  @Input() public isDisplayContextParameter2Point1Enabled = false;\n\n  @Output() public caseFlagStateEmitter: EventEmitter<CaseFlagState> = new EventEmitter<CaseFlagState>();\n\n  public addCommentsTitle: CaseFlagWizardStepTitle;\n  public errorMessages: ErrorMessage[] = [];\n  public flagCommentsNotEnteredErrorMessage: AddCommentsErrorMessage = null;\n  public flagCommentsCharLimitErrorMessage: AddCommentsErrorMessage = null;\n  public addCommentsHint: AddCommentsStep;\n  public addCommentsStepEnum = AddCommentsStep;\n  public readonly flagCommentsControlName = 'flagComments';\n  private readonly commentsMaxCharLimit = 200;\n  // Code for \"Other\" flag type as defined in Reference Data\n  private readonly otherFlagTypeCode = 'OT0001';\n\n  public get otherInternalFlagTypeSelected(): boolean {\n    return this.formGroup.get(CaseFlagFormFields.FLAG_TYPE)?.value?.flagCode === this.otherFlagTypeCode &&\n      this.formGroup.get(CaseFlagFormFields.IS_VISIBLE_INTERNALLY_ONLY)?.value === true;\n  }\n\n  public ngOnInit(): void {\n    this.addCommentsTitle = !this.isDisplayContextParameterExternal ?\n      CaseFlagWizardStepTitle.ADD_FLAG_COMMENTS : CaseFlagWizardStepTitle.ADD_FLAG_COMMENTS_EXTERNAL_MODE;\n    this.addCommentsHint = !this.isDisplayContextParameterExternal ?\n      AddCommentsStep.HINT_TEXT : AddCommentsStep.HINT_TEXT_EXTERNAL;\n\n    if (!this.formGroup.get(this.flagCommentsControlName)) {\n      this.formGroup.addControl(this.flagCommentsControlName, new FormControl(''));\n    }\n\n    if (!this.optional){\n      if ((this.formGroup?.value && this.formGroup?.value?.isParent === false && this.formGroup?.value?.flagComment === false) ||\n        (this.formGroup?.value?.flagType?.isParent === false && this.formGroup?.value?.flagType?.flagComment === false)) {\n        this.optional = true;\n      } else {\n        this.optional = false;\n      }\n    }\n  }\n\n  public onNext(): void {\n    // Validate flag comments entry\n    this.validateTextEntry();\n    // Return case flag field state and error messages to the parent\n    this.caseFlagStateEmitter.emit({ currentCaseFlagFieldState: CaseFlagFieldState.FLAG_COMMENTS, errorMessages: this.errorMessages });\n  }\n\n  private validateTextEntry(): void {\n    this.flagCommentsNotEnteredErrorMessage = null;\n    this.flagCommentsCharLimitErrorMessage = null;\n    this.errorMessages = [];\n    if (!this.optional && !this.formGroup.get(this.flagCommentsControlName).value) {\n      this.flagCommentsNotEnteredErrorMessage = this.isDisplayContextParameterExternal\n        ? AddCommentsErrorMessage.FLAG_COMMENTS_NOT_ENTERED_EXTERNAL\n        : AddCommentsErrorMessage.FLAG_COMMENTS_NOT_ENTERED;\n      this.errorMessages.push({\n        title: '',\n        description: this.flagCommentsNotEnteredErrorMessage,\n        fieldId: this.flagCommentsControlName\n      });\n    }\n    if (this.formGroup.get(this.flagCommentsControlName).value &&\n      this.formGroup.get(this.flagCommentsControlName).value.length > this.commentsMaxCharLimit) {\n      this.flagCommentsCharLimitErrorMessage = AddCommentsErrorMessage.FLAG_COMMENTS_CHAR_LIMIT_EXCEEDED;\n      this.errorMessages.push({\n        title: '',\n        description: AddCommentsErrorMessage.FLAG_COMMENTS_CHAR_LIMIT_EXCEEDED,\n        fieldId: this.flagCommentsControlName\n      });\n    }\n  }\n\n  public next() {\n    this.onNext();\n\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n}\n","<dl class=\"govuk-summary-list\" *ngIf=\"flagForSummaryDisplay\">\n  <div class=\"govuk-summary-list__row\">\n    <dt class=\"govuk-summary-list__key\">\n      {{addUpdateFlagHeaderText | rpxTranslate}}\n    </dt>\n    <dd class=\"govuk-summary-list__value\">\n      {{flagForSummaryDisplay.partyName || caseFlagCheckYourAnswersPageStep.CASE_LEVEL_LOCATION }}\n    </dd>\n    <dd class=\"govuk-summary-list__actions\">\n      <a class=\"govuk-link\" href=\"#\"\n        (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : caseFlagFieldState.FLAG_LOCATION); $event.preventDefault()\">\n        {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'party name' | rpxTranslate}}</span>\n      </a>\n    </dd>\n  </div>\n  <div class=\"govuk-summary-list__row\">\n    <dt class=\"govuk-summary-list__key\">\n      {{flagTypeHeaderText | rpxTranslate}}\n    </dt>\n    <dd class=\"govuk-summary-list__value\">\n      {{flagDescription}}\n    </dd>\n    <dd class=\"govuk-summary-list__actions\">\n      <a class=\"govuk-link\" href=\"#\"\n        (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_TYPE); $event.preventDefault()\">\n        {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'flag type' | rpxTranslate}}</span>\n      </a>\n    </dd>\n  </div>\n  <div class=\"govuk-summary-list__row\" *ngIf=\"flagDescriptionWelsh?.length > 0 && !externalUserUpdate\">\n    <dt class=\"govuk-summary-list__key\">\n      {{'Other description (Welsh)' | rpxTranslate}}\n    </dt>\n    <dd class=\"govuk-summary-list__value\">\n      {{flagDescriptionWelsh}}\n    </dd>\n    <dd class=\"govuk-summary-list__actions\">\n      <a class=\"govuk-link\" href=\"#\"\n        (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_TYPE); $event.preventDefault()\">\n        {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'other description (Welsh)' | rpxTranslate}}</span>\n      </a>\n    </dd>\n  </div>\n  <div class=\"govuk-summary-list__row\" *ngIf=\"flagComments?.length > 0\">\n    <dt class=\"govuk-summary-list__key\">\n      {{'Comments' | rpxTranslate}}\n    </dt>\n    <dd class=\"govuk-summary-list__value\">\n      {{externalUserUpdate ? flagUpdateComments : flagComments}}\n    </dd>\n    <dd class=\"govuk-summary-list__actions\">\n      <a class=\"govuk-link\" href=\"#\"\n        (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_COMMENTS); $event.preventDefault()\">\n        {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments' | rpxTranslate}}</span>\n      </a>\n    </dd>\n  </div>\n  <div class=\"govuk-summary-list__row\" *ngIf=\"flagCommentsWelsh?.length > 0 && !externalUserUpdate\">\n    <dt class=\"govuk-summary-list__key\">\n      {{'Comments (Welsh)' | rpxTranslate}}\n    </dt>\n    <dd class=\"govuk-summary-list__value\">\n      {{flagCommentsWelsh}}\n    </dd>\n    <dd class=\"govuk-summary-list__actions\">\n      <a class=\"govuk-link\" href=\"#\"\n        (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : caseFlagFieldState.FLAG_COMMENTS); $event.preventDefault()\">\n        {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'comments (Welsh)' | rpxTranslate}}</span>\n      </a>\n    </dd>\n  </div>\n  <div class=\"govuk-summary-list__row\">\n    <dt class=\"govuk-summary-list__key\">\n      {{'Status' | rpxTranslate}}\n    </dt>\n    <dd class=\"govuk-summary-list__value\">\n      {{flagStatus | rpxTranslate}}\n    </dd>\n    <dd class=\"govuk-summary-list__actions\">\n      <a *ngIf=\"is2Point1Enabled\" class=\"govuk-link\" href=\"#\"\n        (click)=\"changeButtonEmitter.emit(this.summaryListDisplayMode === displayMode.MANAGE ? caseFlagFieldState.FLAG_UPDATE : caseFlagFieldState.FLAG_STATUS); $event.preventDefault()\">\n        {{'Change' | rpxTranslate}}<span class=\"govuk-visually-hidden\"> {{'status' | rpxTranslate}}</span>\n      </a>\n    </dd>\n  </div>\n</dl>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { FlagDetail, FlagDetailDisplay } from '../../domain';\nimport {\n  CaseFlagCheckYourAnswersPageStep,\n  CaseFlagDisplayContextParameter,\n  CaseFlagFieldState,\n  CaseFlagSummaryListDisplayMode\n} from '../../enums';\n\n@Component({\n  selector: 'ccd-case-flag-summary-list',\n  templateUrl: './case-flag-summary-list.component.html',\n  standalone: false\n})\nexport class CaseFlagSummaryListComponent implements OnInit {\n  @Input() public flagForSummaryDisplay: FlagDetailDisplay;\n  @Input() public displayContextParameter: string;\n  @Output() public changeButtonEmitter = new EventEmitter<number>();\n\n  public flagDescription: string;\n  public flagComments: string;\n  public flagStatus: string;\n  public flagDescriptionWelsh: string;\n  public flagCommentsWelsh: string;\n  public otherDescription: string;\n  public otherDescriptionWelsh: string;\n  public flagUpdateComments: string;\n  public summaryListDisplayMode: CaseFlagSummaryListDisplayMode;\n  public addUpdateFlagHeaderText: string;\n  public caseFlagFieldState = CaseFlagFieldState;\n  public displayMode = CaseFlagSummaryListDisplayMode;\n  public flagTypeHeaderText: string;\n  public caseFlagCheckYourAnswersPageStep = CaseFlagCheckYourAnswersPageStep;\n  public is2Point1Enabled = false;\n  public externalUserUpdate = false;\n\n  constructor(private readonly rpxTranslationService: RpxTranslationService) { }\n\n  public ngOnInit(): void {\n    if (this.flagForSummaryDisplay) {\n      const flagDetail = this.flagForSummaryDisplay.flagDetail;\n      this.flagDescription = this.getFlagDescription(flagDetail);\n      this.flagDescriptionWelsh = flagDetail.otherDescription_cy;\n      this.flagComments = flagDetail.flagComment;\n      this.flagCommentsWelsh = flagDetail.flagComment_cy;\n      // Flag update comments will be coming from the flagStatusReasonChange property instead of flagUpdateComment\n      // because these haven't been persisted yet\n      this.flagUpdateComments = flagDetail['flagStatusReasonChange'];\n      this.flagStatus = flagDetail.status;\n      this.addUpdateFlagHeaderText = this.getAddUpdateFlagHeaderText();\n      this.flagTypeHeaderText = this.getFlagTypeHeaderText();\n      this.summaryListDisplayMode = this.getSummaryListDisplayMode();\n      this.is2Point1Enabled = this.getDisplayContextParameter2Point1Enabled();\n      this.externalUserUpdate = this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL;\n    }\n  }\n\n  private getFlagDescription(flagDetail: FlagDetail): string {\n    let flagName: string;\n    let subTypeValue: string;\n    if (this.rpxTranslationService.language === 'cy') {\n      flagName = flagDetail.name_cy || flagDetail.name;\n      subTypeValue = flagDetail.subTypeValue_cy || flagDetail.subTypeValue;\n    } else {\n      flagName = flagDetail.name || flagDetail.name_cy;\n      subTypeValue = flagDetail.subTypeValue || flagDetail.subTypeValue_cy;\n    }\n    // The otherDescription field should be shown verbatim; otherDescription for Welsh is shown separately\n    const otherDescription = flagDetail.otherDescription ? ` - ${flagDetail.otherDescription}` : '';\n    const subTypeValueForDisplay = subTypeValue ? ` - ${subTypeValue}` : '';\n    return `${flagName}${otherDescription}${subTypeValueForDisplay}`;\n  }\n\n  private getAddUpdateFlagHeaderText(): string {\n    switch(this.displayContextParameter) {\n      case CaseFlagDisplayContextParameter.CREATE:\n      case CaseFlagDisplayContextParameter.CREATE_2_POINT_1:\n        return CaseFlagCheckYourAnswersPageStep.ADD_FLAG_HEADER_TEXT;\n      case CaseFlagDisplayContextParameter.CREATE_EXTERNAL:\n        return CaseFlagCheckYourAnswersPageStep.ADD_FLAG_HEADER_TEXT_EXTERNAL;\n      case CaseFlagDisplayContextParameter.UPDATE:\n      case CaseFlagDisplayContextParameter.UPDATE_2_POINT_1:\n        return CaseFlagCheckYourAnswersPageStep.UPDATE_FLAG_HEADER_TEXT;\n      case CaseFlagDisplayContextParameter.UPDATE_EXTERNAL:\n        return CaseFlagCheckYourAnswersPageStep.UPDATE_FLAG_HEADER_TEXT_EXTERNAL;\n      default:\n        return CaseFlagCheckYourAnswersPageStep.NONE;\n    }\n  }\n\n  private getFlagTypeHeaderText(): string {\n    switch(this.displayContextParameter) {\n      case CaseFlagDisplayContextParameter.CREATE:\n      case CaseFlagDisplayContextParameter.CREATE_2_POINT_1:\n      case CaseFlagDisplayContextParameter.UPDATE:\n      case CaseFlagDisplayContextParameter.UPDATE_2_POINT_1:\n        return CaseFlagCheckYourAnswersPageStep.FLAG_TYPE_HEADER_TEXT;\n      case CaseFlagDisplayContextParameter.CREATE_EXTERNAL:\n      case CaseFlagDisplayContextParameter.UPDATE_EXTERNAL:\n        return CaseFlagCheckYourAnswersPageStep.FLAG_TYPE_HEADER_TEXT_EXTERNAL;\n      default:\n        return CaseFlagCheckYourAnswersPageStep.NONE;\n    }\n  }\n\n  private getSummaryListDisplayMode(): number {\n    if (this.displayContextParameter === CaseFlagDisplayContextParameter.CREATE ||\n        this.displayContextParameter === CaseFlagDisplayContextParameter.CREATE_EXTERNAL ||\n        this.displayContextParameter === CaseFlagDisplayContextParameter.CREATE_2_POINT_1) {\n      return CaseFlagSummaryListDisplayMode.CREATE;\n    }\n    return CaseFlagSummaryListDisplayMode.MANAGE;\n  }\n\n  private getDisplayContextParameter2Point1Enabled(): boolean {\n    return this.displayContextParameter === CaseFlagDisplayContextParameter.CREATE_2_POINT_1 ||\n      this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1;\n  }\n}\n","<table class=\"govuk-table\" *ngIf=\"flagData\">\n  <caption class=\"govuk-table__caption govuk-table__caption--l\" *ngIf=\"tableCaption\">{{tableCaption}}</caption>\n  <thead class=\"govuk-table__head\">\n    <tr class=\"govuk-table__row\">\n      <th scope=\"col\" class=\"govuk-table__header col-party-name\">{{firstColumnHeader}}</th>\n      <th scope=\"col\" class=\"govuk-table__header col-comments\">{{'Comments' | rpxTranslate}}</th>\n      <th scope=\"col\" class=\"govuk-table__header col-creation-date\">{{'Creation date' | rpxTranslate}}</th>\n      <th scope=\"col\" class=\"govuk-table__header col-last-modified\">{{'Last modified' | rpxTranslate}}</th>\n      <th scope=\"col\" class=\"govuk-table__header col-flag-status\">{{'Flag status' | rpxTranslate}}</th>\n    </tr>\n  </thead>\n  <tbody class=\"govuk-table__body\">\n    <tr *ngIf=\"!flagData.flags.details || (flagData.flags.details && flagData.flags.details.length === 0)\">\n      <td colspan=\"5\">{{'None' | rpxTranslate}}</td>\n    </tr>\n  </tbody>\n  <tbody class=\"govuk-table__body\" *ngIf=\"flagData.flags.details && flagData.flags.details.length > 0\">\n    <tr scope=\"row\" class=\"govuk-table__row\" *ngFor=\"let flagDetail of flagData.flags.details\">\n      <td class=\"govuk-table__cell\">\n        <div *ngIf=\"isActivePvpFlag(flagDetail)\">\n          <svg class=\"hmcts-banner__icon\" fill=\"currentColor\" role=\"presentation\" aria-hidden=\"true\" focusable=\"false\"\n            xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 25\" height=\"25\" width=\"25\">\n            <path d=\"M13.6,15.4h-2.3v-4.5h2.3V15.4z M13.6,19.8h-2.3v-2.2h2.3V19.8z M0,23.2h25L12.5,2L0,23.2z\"></path>\n          </svg>\n          <span class=\"govuk-!-font-weight-bold\">{{pvpDisplayText}}</span>\n        </div>\n        <div *ngIf=\"!isActivePvpFlag(flagDetail)\">{{flagDetail | flagFieldDisplay:'name'}}</div>\n        <div>{{flagDetail | flagFieldDisplay:'otherDescription'}}</div>\n        <div>{{flagDetail | flagFieldDisplay:'subTypeValue'}}</div>\n      </td>\n      <td class=\"govuk-table__cell\">\n        <div [ngClass]=\"{'govuk-!-font-weight-bold': isActivePvpFlag(flagDetail)}\">\n          {{flagDetail | flagFieldDisplay:'flagComment'}}\n        </div>\n        <div *ngIf=\"!caseFlagsExternalUser &&\n          (flagDetail.status === caseFlagStatus.NOT_APPROVED || flagDetail.status === caseFlagStatus.INACTIVE) &&\n          flagDetail.flagUpdateComment\">\n          <span class=\"govuk-!-font-weight-bold\">Update Reason: {{flagDetail.flagUpdateComment}}</span>\n        </div>\n      </td>\n      <td class=\"govuk-table__cell\">{{flagDetail.dateTimeCreated | date: 'dd LLL yyyy'}}</td>\n      <td class=\"govuk-table__cell\">{{flagDetail.dateTimeModified | date: 'dd LLL yyyy'}}</td>\n      <td class=\"govuk-table__cell cell-flag-status\">\n        <strong *ngIf=\"flagDetail.status === caseFlagStatus.ACTIVE\" class=\"govuk-tag govuk-tag--turquoise\">{{'Active' | rpxTranslate}}</strong>\n        <strong *ngIf=\"flagDetail.status === caseFlagStatus.INACTIVE\" class=\"govuk-tag govuk-tag--grey\">{{'Inactive' | rpxTranslate}}</strong>\n        <strong *ngIf=\"flagDetail.status === caseFlagStatus.REQUESTED\" class=\"govuk-tag govuk-tag--yellow\">{{'Requested' | rpxTranslate}}</strong>\n        <strong *ngIf=\"flagDetail.status === caseFlagStatus.NOT_APPROVED\" class=\"govuk-tag govuk-tag--red\">{{'Not approved' | rpxTranslate}}</strong>\n      </td>\n    </tr>\n  </tbody>\n</table>\n","import { Component, Input } from '@angular/core';\nimport { PVP_DISPLAY_TEXT, isPvpFlag } from '../../utils/case-flag-priority.utils';\nimport { FlagDetail, FlagsWithFormGroupPath } from '../../domain';\nimport { CaseFlagStatus } from '../../enums';\n\n@Component({\n  selector: 'ccd-case-flag-table',\n  templateUrl: './case-flag-table.component.html',\n  styleUrls: ['./case-flag-table.component.scss'],\n  standalone: false\n})\nexport class CaseFlagTableComponent {\n  @Input() public tableCaption: string;\n  @Input() public flagData: FlagsWithFormGroupPath;\n  @Input() public firstColumnHeader: string;\n  @Input() public caseFlagsExternalUser = false;\n  public readonly pvpDisplayText = PVP_DISPLAY_TEXT;\n\n  public get caseFlagStatus(): typeof CaseFlagStatus {\n    return CaseFlagStatus;\n  }\n\n  public isPvpFlag(flagDetail: FlagDetail): boolean {\n    return isPvpFlag(flagDetail);\n  }\n\n  public isActivePvpFlag(flagDetail: FlagDetail): boolean {\n    return isPvpFlag(flagDetail) && flagDetail?.status === CaseFlagStatus.ACTIVE;\n  }\n}\n","<ng-container [formGroup]=\"formGroup\">\n  <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n    <fieldset class=\"govuk-fieldset\" aria-describedby=\"manage-case-flag-heading\">\n      <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n        <h1 id=\"manage-case-flag-heading\" class=\"govuk-fieldset__heading\">\n          {{manageCaseFlagTitle | rpxTranslate}}\n        </h1>\n      </legend>\n      <div id=\"manage-case-flag-not-selected-error-message\" class=\"govuk-error-message\"\n        *ngIf=\"manageCaseFlagSelectedErrorMessage\">\n        <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{manageCaseFlagSelectedErrorMessage | rpxTranslate}}\n      </div>\n      <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n        <div class=\"govuk-radios__item\" *ngFor=\"let flagDisplay of flagsDisplayData; index as i\">\n          <input class=\"govuk-radios__input\" id=\"flag-selection-{{i}}\"\n            type=\"radio\"\n            [checked]=\"isSelected(flagDisplay)\"\n            (change)=\"onFlagSelectionChange(flagDisplay)\"/>\n          <label class=\"govuk-label govuk-radios__label\" for=\"flag-selection-{{i}}\" [innerHtml]=\"flagDisplay | manageCaseFlagsLabelDisplay\"></label>\n        </div>\n      </div>\n    </fieldset>\n  </div>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup } from '@angular/forms';\nimport { cloneDeep } from 'lodash';\nimport { CaseField, ErrorMessage, Journey } from '../../../../../domain';\nimport { FieldsUtils } from '../../../../../services/fields';\nimport { CaseFlagState, FlagDetail, FlagDetailDisplayWithFormGroupPath, Flags, FlagsWithFormGroupPath } from '../../domain';\nimport { CaseFlagDisplayContextParameter, CaseFlagFieldState, CaseFlagStatus, CaseFlagWizardStepTitle, SelectFlagErrorMessage } from '../../enums';\nimport { AbstractJourneyComponent } from '../../../base-field';\n\n@Component({\n  selector: 'ccd-manage-case-flags',\n  templateUrl: './manage-case-flags.component.html',\n  styleUrls: ['./manage-case-flags.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false\n})\nexport class ManageCaseFlagsComponent extends AbstractJourneyComponent implements OnInit, Journey {\n  @Input() public formGroup: FormGroup;\n  @Input() public flagsData: FlagsWithFormGroupPath[];\n  @Input() public caseTitle: string;\n  @Input() public displayContextParameter: string;\n  @Output() public caseFlagStateEmitter: EventEmitter<CaseFlagState> = new EventEmitter<CaseFlagState>();\n\n  public manageCaseFlagTitle: CaseFlagWizardStepTitle;\n  public errorMessages: ErrorMessage[] = [];\n  public manageCaseFlagSelectedErrorMessage: SelectFlagErrorMessage = null;\n  public flagsDisplayData: FlagDetailDisplayWithFormGroupPath[];\n  public flags: Flags;\n  public noFlagsError = false;\n  public readonly selectedControlName = 'selectedManageCaseLocation';\n  private readonly excludedFlagStatuses: CaseFlagStatus[] = [CaseFlagStatus.INACTIVE, CaseFlagStatus.NOT_APPROVED];\n  public cachedControls:{\n    [key: string]: AbstractControl;\n  };\n\n  public ngOnInit(): void {\n    this.manageCaseFlagTitle = this.setManageCaseFlagTitle(this.displayContextParameter);\n    let originalStatus: string;\n    let originalIdToFlag: string;\n    // if the user has progressed to CYA and then navigated away, the flag they selected will be set as inactive, we need to reset this\n    const locationControl = this.formGroup.get(this.selectedControlName);\n    if (locationControl) {\n      originalStatus = locationControl?.value?.originalStatus;\n      originalIdToFlag = locationControl?.value?.flagDetailDisplay.flagDetail.id;\n      this.cachedControls = cloneDeep(this.formGroup.controls);\n      Object.keys(this.formGroup.controls).forEach((controlName) => {\n        if (controlName !== this.selectedControlName) {\n          this.formGroup.removeControl(controlName);\n        }\n      });\n    }\n\n    // Map flags instances to objects for display, filtering out any where the original status is either \"Inactive\" or\n    // \"Not approved\"\n    /* istanbul ignore else */\n    if (this.flagsData) {\n      this.flagsDisplayData = this.flagsData.reduce((displayData, flagsInstance) => {\n        /* istanbul ignore else */\n        if (flagsInstance.flags.details && flagsInstance.flags.details.length > 0) {\n          displayData = [\n            ...displayData,\n            ...flagsInstance.flags.details.map((detail) => this.mapFlagDetailForDisplay(detail, flagsInstance, originalStatus, originalIdToFlag))\n          ];\n        }\n        return displayData;\n      }, []).filter((flagForDisplay) => !this.excludedFlagStatuses.includes(flagForDisplay.originalStatus as CaseFlagStatus));\n    }\n    // Add a FormControl for the selected case flag if there is at least one flags instance remaining after mapping\n    if (this.flagsDisplayData && this.flagsDisplayData.length > 0) {\n      this.formGroup.addControl(this.selectedControlName, new FormControl(null));\n    } else {\n      // No flags display data means there are no flags to select from. The user cannot proceed with a flag update.\n      // (Will need to be extended to check for case-level flags in future)\n      this.onNoFlagsError();\n    }\n  }\n\n  onFlagSelectionChange(selectedFlag: FormControl): void {\n    // Update the form control value\n    this.formGroup.get(this.selectedControlName).setValue(selectedFlag);\n\n    const flagDisplayMap = new Map(\n      this.flagsDisplayData.map((fd) => [this.getFlagID(fd), fd])\n    );\n\n    this.updateFlagDetails(flagDisplayMap);\n  }\n\n  private updateFlagDetails(flagDisplayMap: Map<string, FlagDetailDisplayWithFormGroupPath>): void {\n    const updateDetails = (\n      details: any[],\n      valueAccessor: ((detail: any) => any) | null = (detail) => detail.value\n    ) => {\n      details.forEach((detail) => {\n        const matching = flagDisplayMap.get(detail.id);\n        if (matching) {\n          if (valueAccessor) {\n            valueAccessor(detail).status = matching.originalStatus;\n          } else {\n            detail.status = matching.originalStatus;\n          }\n        }\n      });\n    };\n\n    // Iterate over each flagData item and update the corresponding flag details\n    for (const flagData of this.flagsData) {\n      const { caseField, flags } = flagData;\n      if (caseField) {\n        this.updateCaseFieldDetails(caseField, updateDetails);\n      }\n      // If flags.details exists at the root of flagData, update directly (status is not nested under value)\n      if (flags?.details) {\n        updateDetails(flags.details, null);\n      }\n    }\n  }\n\n  private updateCaseFieldDetails(caseField: CaseField, updateDetails: (details: any[], valueAccessor?: ((detail: any) => any) | null) => void): void {\n    // For caseField._value.flags.details\n    if (caseField._value?.flags?.details) {\n      updateDetails(caseField._value.flags.details);\n    }\n    // For caseField.formatted_value.flags.details\n    if (caseField.formatted_value?.flags?.details) {\n      updateDetails(caseField.formatted_value.flags.details);\n    }\n    // If caseField._value is an array, check each element's nested flags.details\n    if (Array.isArray(caseField._value)) {\n      caseField._value.forEach((val) => {\n        if (val.value?.flags?.details) {\n          updateDetails(val.value.flags.details);\n        }\n      });\n    }\n    // If caseField.formatted_value is an array, check each element's nested flags.details\n    if (Array.isArray(caseField.formatted_value)) {\n      caseField.formatted_value.forEach((val) => {\n        if (val.value?.flags?.details) {\n          updateDetails(val.value.flags.details);\n        }\n      });\n    }\n    // For caseField.formatted_value.details (not nested under flags)\n    if (caseField.formatted_value?.details) {\n      updateDetails(caseField.formatted_value.details);\n    }\n    // For caseField._value.details (not nested under flags)\n    if (caseField._value?.details) {\n      updateDetails(caseField._value.details);\n    }\n  }\n\n  isSelected(flagDisplay: FlagDetailDisplayWithFormGroupPath): boolean {\n    const selectedFlag = this.formGroup.get(this.selectedControlName)?.value;\n    return selectedFlag && this.getFlagID(selectedFlag) === this.getFlagID(flagDisplay);\n  }\n\n  getFlagID(flag: FlagDetailDisplayWithFormGroupPath) {\n    return flag?.flagDetailDisplay?.flagDetail?.id || '';\n  }\n\n  public mapFlagDetailForDisplay(flagDetail: FlagDetail, flagsInstance: FlagsWithFormGroupPath, originalStatusFromFG: string, originalPathToFlag: string): FlagDetailDisplayWithFormGroupPath {\n    // Reset the flag status with the original persisted status. This is needed because ngOnInit() needs to filter\n    // out any \"Inactive\" or \"Not approved\" flags based on their status *before* modification. If the user changes a\n    // flag's status then decides to return to the start of the flag update journey, the flag's status would no\n    // longer reflect its actual *persisted* status\n    // Also reset comments and description fields (both English and Welsh) with the original persisted data, to avoid\n    // the UI caching any changes that the user might not want persisted, if they start over and don't intend to add\n    // translations subsequently\n    let originalStatus: string;\n    let formattedValue = flagsInstance.caseField?.formatted_value;\n    // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the\n    // CaseField formatted_value from which to get the original persisted data\n    const pathToValue = flagsInstance.pathToFlagsFormGroup;\n    // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down\n    if (pathToValue.indexOf('.') > -1) {\n      pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach((part) => {\n        if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {\n          formattedValue = formattedValue[part];\n        }\n      });\n    }\n    if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {\n      const originalFlagDetail = formattedValue.details?.find((detail) => detail.id === flagDetail.id);\n      const statusToUse = this.getStatusToUse(flagsInstance, originalPathToFlag, originalStatusFromFG, originalFlagDetail);\n      if (originalFlagDetail) {\n        originalStatus = statusToUse;\n        flagDetail.flagComment = originalFlagDetail.value?.flagComment;\n        flagDetail.flagComment_cy = originalFlagDetail.value?.flagComment_cy;\n        flagDetail.otherDescription = originalFlagDetail.value?.otherDescription;\n        flagDetail.otherDescription_cy = originalFlagDetail.value?.otherDescription_cy;\n      }\n    }\n    let returnObj = {\n      flagDetailDisplay: {\n        partyName: flagsInstance.flags?.partyName,\n        flagDetail,\n        flagsCaseFieldId: flagsInstance.caseField?.id,\n        visibility: flagsInstance.flags?.visibility\n      },\n      pathToFlagsFormGroup: flagsInstance.pathToFlagsFormGroup,\n      caseField: flagsInstance.caseField,\n      roleOnCase: flagsInstance.flags?.roleOnCase,\n      originalStatus\n    };\n    if (originalPathToFlag === flagDetail.id) {\n      returnObj = { ...returnObj, originalStatus };\n    }\n    return returnObj;\n  }\n\n  public getStatusToUse(flagsInstance: FlagsWithFormGroupPath, originalPathToFlag: string, originalStatusFromFG: string, originalFlagDetail: CaseField): string{\n    let statusToUse = '';\n    if (originalFlagDetail.id === originalPathToFlag) {\n      if (originalStatusFromFG) {\n        statusToUse = originalStatusFromFG === originalFlagDetail.value?.status ? originalFlagDetail.value?.status : originalStatusFromFG;\n      } else {\n        statusToUse = originalFlagDetail.value?.status;\n      }\n    } else {\n      statusToUse = originalFlagDetail.value?.status;\n    }\n    return statusToUse;\n  }\n\n  public onNext(): void {\n    // Validate flag selection\n    this.validateSelection();\n    // Return case flag field state, error messages, and flag selection to the parent\n    this.caseFlagStateEmitter.emit({\n      currentCaseFlagFieldState: CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS,\n      errorMessages: this.errorMessages,\n      selectedFlag: this.formGroup.get(this.selectedControlName).value\n        ? this.formGroup.get(this.selectedControlName).value as FlagDetailDisplayWithFormGroupPath\n        : null\n    });\n\n    window.scrollTo(0, 0);\n  }\n\n  public setManageCaseFlagTitle(displayContextParameter: string): CaseFlagWizardStepTitle {\n    switch (displayContextParameter) {\n      case CaseFlagDisplayContextParameter.UPDATE:\n      case CaseFlagDisplayContextParameter.UPDATE_2_POINT_1:\n        return CaseFlagWizardStepTitle.MANAGE_CASE_FLAGS;\n      case CaseFlagDisplayContextParameter.UPDATE_EXTERNAL:\n        return CaseFlagWizardStepTitle.MANAGE_SUPPORT;\n      default:\n        return CaseFlagWizardStepTitle.NONE;\n    }\n  }\n\n  private validateSelection(): void {\n    this.manageCaseFlagSelectedErrorMessage = null;\n    this.errorMessages = [];\n    if (!this.formGroup.get(this.selectedControlName).value) {\n      const errorMessage = this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL ?\n        SelectFlagErrorMessage.MANAGE_SUPPORT_FLAG_NOT_SELECTED : SelectFlagErrorMessage.MANAGE_CASE_FLAGS_FLAG_NOT_SELECTED;\n      this.manageCaseFlagSelectedErrorMessage = errorMessage;\n      this.errorMessages.push({\n        title: '',\n        description: errorMessage,\n        fieldId: 'conditional-radios-list'\n      });\n    }\n  }\n\n  private onNoFlagsError(): void {\n    // Set error flag on component to remove the \"Next\" button (user cannot proceed with flag creation)\n    this.noFlagsError = true;\n    this.errorMessages = [];\n    this.errorMessages.push({ title: '', description: SelectFlagErrorMessage.NO_FLAGS, fieldId: 'conditional-radios-list' });\n    // Return case flag field state and error messages to the parent\n    this.caseFlagStateEmitter.emit({\n      currentCaseFlagFieldState: CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS,\n      errorMessages: this.errorMessages\n    });\n  }\n\n  public next() {\n    this.onNext();\n    const cachedControl = this.cachedControls?.[this.selectedControlName];\n    if (cachedControl && this.getFlagID(cachedControl.value) === this.getFlagID(this.formGroup.value[this.selectedControlName])) {\n      this.reapplyCachedControls();\n    }\n\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n\n  public reapplyCachedControls(): void {\n    if (this.cachedControls) {\n      Object.keys(this.cachedControls).forEach((controlName) => {\n        if (!this.formGroup.contains(controlName)) {\n          this.formGroup.addControl(controlName, this.cachedControls[controlName]);\n        }\n      });\n    }\n  }\n}\n","// tslint:disable:variable-name\n/**\n * DTO to provide typing of the response from the Reference Data Common API for Case Flags data.\n *\n * @see {@link https://tools.hmcts.net/confluence/pages/viewpage.action?pageId=1597741121#CaseFlagsHLDVersion2.0-Output}\n * for full details\n */\nexport class FlagType {\n  public name: string;\n  public name_cy: string;\n  public hearingRelevant: boolean;\n  public flagComment: boolean;\n  public defaultStatus: string;\n  public externallyAvailable: boolean;\n  public flagCode: string;\n  public isParent: boolean;\n  // Note: property is deliberately spelt \"Path\" and not \"path\" because the Reference Data Common API returns the former\n  public Path: string[];\n  public childFlags: FlagType[];\n  public listOfValuesLength = 0;\n  public listOfValues: {key: string, value: string, value_cy: string}[] = [];\n\n  public static searchPathByFlagTypeObject(singleFlag: FlagType, flags: FlagType[], path: FlagType[] = []): [FlagType | false, FlagType[]] {\n    for (const flag of flags) {\n      if (flag.flagCode === singleFlag.flagCode && flag.Path.join(',') === singleFlag.Path.join(',')) {\n        return [flag, path];\n      }\n      if (flag.childFlags?.length) {\n        const [result, childPath] = FlagType.searchPathByFlagTypeObject(singleFlag, flag.childFlags, [...path, flag]);\n        if (result) {\n          return [result, childPath];\n        }\n      }\n    }\n    return [false, []];\n  }\n}\n","// tslint:disable:variable-name\n/**\n * DTO to provide typing of the response from the Reference Data Location API for HMCTS service details.\n */\nexport class HmctsServiceDetail {\n  public business_area: string;\n  public ccd_case_types: string[];\n  public ccd_service_name: string;\n  public jurisdiction: string;\n  public last_update?: string;\n  public org_unit: string;\n  public service_code?: string;\n  public service_description?: string;\n  public service_id = 0;\n  public service_short_description?: string;\n  public sub_business_area: string;\n}\n","export enum SearchLanguageInterpreterControlNames {\n  LANGUAGE_SEARCH_TERM = 'languageSearchTerm',\n  MANUAL_LANGUAGE_ENTRY = 'manualLanguageEntry'\n}\n","<ng-container [formGroup]=\"formGroup\">\n  <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': languageNotSelectedErrorMessage || languageEnteredInBothFieldsErrorMessage}\">\n    <h1 class=\"govuk-label-wrapper\">\n      <label class=\"govuk-label govuk-label--m\" [for]=\"SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM\">\n        {{flagType | flagFieldDisplay:'name'}}\n      </label>\n    </h1>\n    <div id=\"language-search-box-hint\" class=\"govuk-hint\">\n      {{searchLanguageInterpreterHint | rpxTranslate}}\n    </div>\n    <div class=\"auto-complete-container\">\n      <div id=\"language-not-selected-error-message\" class=\"govuk-error-message\"\n        *ngIf=\"languageNotSelectedErrorMessage\">\n        <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{languageNotSelectedErrorMessage | rpxTranslate}}\n      </div>\n      <div id=\"language-entered-in-both-fields-error-message\" class=\"govuk-error-message\"\n        *ngIf=\"languageEnteredInBothFieldsErrorMessage\">\n        <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{languageEnteredInBothFieldsErrorMessage | rpxTranslate}}\n      </div>\n      <input aria-label=\"Language search box\" matInput [formControlName]=\"SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM\" [matAutocomplete]=\"autoSearchLanguage\"\n        class=\"govuk-input search-language__input\" type=\"text\">\n      <mat-autocomplete class=\"mat-autocomplete-panel-extend\" autoActiveFirstOption #autoSearchLanguage=\"matAutocomplete\"\n        [displayWith]=\"displayLanguage\">\n        <mat-option *ngFor=\"let language of filteredLanguages$ | async\" [value]=\"language\">\n          {{language | languageInterpreterDisplay}}\n        </mat-option>\n        <mat-option *ngIf=\"noResults && searchTerm && searchTerm.length >= minSearchCharacters\" disabled>{{'No results found' | rpxTranslate}}</mat-option>\n      </mat-autocomplete>\n    </div>\n    <div class=\"govuk-checkboxes govuk-checkboxes--small govuk-checkboxes--conditional\" data-module=\"govuk-checkboxes\">\n      <div class=\"govuk-radios__item\">\n        <input class=\"govuk-checkboxes__input\" id=\"enter-language-manually\" name=\"enter-language-manually\" type=\"checkbox\"\n          (change)=\"onEnterLanguageManually($event)\">\n        <label class=\"govuk-label govuk-checkboxes__label\" for=\"enter-language-manually\">\n          {{searchLanguageInterpreterStep.CHECKBOX_LABEL | rpxTranslate}}\n        </label>\n      </div>\n      <div class=\"govuk-radios__conditional\" *ngIf=\"isCheckboxEnabled\">\n        <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': languageNotEnteredErrorMessage || languageCharLimitErrorMessage }\">\n          <label class=\"govuk-label\" for=\"manual-language-entry\">{{searchLanguageInterpreterStep.INPUT_LABEL | rpxTranslate}}</label>\n          <div id=\"language-not-entered-error-message\" class=\"govuk-error-message\"\n            *ngIf=\"languageNotEnteredErrorMessage\">\n            <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{languageNotEnteredErrorMessage | rpxTranslate}}\n          </div>\n          <div id=\"language-char-limit-error-message\" class=\"govuk-error-message\"\n            *ngIf=\"languageCharLimitErrorMessage\">\n            <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{languageCharLimitErrorMessage | rpxTranslate}}\n          </div>\n          <input class=\"govuk-input govuk-input--width-20\" id=\"manual-language-entry\" [name]=\"SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY\" type=\"text\"\n            [formControlName]=\"SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY\">\n        </div>\n      </div>\n    </div>\n  </div>\n</ng-container>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { Observable } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\nimport { ErrorMessage, Journey } from '../../../../../domain';\nimport { FlagType } from '../../../../../domain/case-flag';\nimport { CaseFlagState, Language } from '../../domain';\nimport { CaseFlagFieldState, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep } from '../../enums';\nimport { SearchLanguageInterpreterControlNames } from './search-language-interpreter-control-names.enum';\nimport { AbstractJourneyComponent } from '../../../base-field';\nimport { MultipageComponentStateService } from \"../../../../../services\";\n\n\n@Component({\n  selector: 'ccd-search-language-interpreter',\n  templateUrl: './search-language-interpreter.component.html',\n  styleUrls: ['./search-language-interpreter.component.scss'],\n  standalone: false\n})\nexport class SearchLanguageInterpreterComponent extends AbstractJourneyComponent implements OnInit, Journey {\n  public get searchLanguageInterpreterStep(): typeof SearchLanguageInterpreterStep {\n    return SearchLanguageInterpreterStep;\n  }\n  public readonly SearchLanguageInterpreterControlNames = SearchLanguageInterpreterControlNames;\n\n  @Input()\n  public formGroup: FormGroup;\n\n  @Input()\n  public flagType: FlagType;\n\n  @Output()\n  public caseFlagStateEmitter: EventEmitter<CaseFlagState> = new EventEmitter<CaseFlagState>();\n\n  public readonly minSearchCharacters = 3;\n  public filteredLanguages$: Observable<Language[]>;\n  public searchTerm = '';\n  public isCheckboxEnabled = false;\n  public searchLanguageInterpreterHint: SearchLanguageInterpreterStep;\n  public errorMessages: ErrorMessage[] = [];\n  public languageNotSelectedErrorMessage = '';\n  public languageNotEnteredErrorMessage = '';\n  public languageCharLimitErrorMessage = '';\n  public languageEnteredInBothFieldsErrorMessage = '';\n  public noResults = false;\n  private readonly languageMaxCharLimit = 80;\n  private readonly signLanguageFlagCode = 'RA0042';\n\n  constructor(private readonly rpxTranslationService: RpxTranslationService,\n    multipageComponentStateService: MultipageComponentStateService) {\n    super(multipageComponentStateService);\n  }\n\n  public ngOnInit(): void {\n    this.searchLanguageInterpreterHint = this.flagType.flagCode === this.signLanguageFlagCode\n      ? SearchLanguageInterpreterStep.SIGN_HINT_TEXT\n      : SearchLanguageInterpreterStep.HINT_TEXT;\n    this.formGroup.addControl(SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM, new FormControl());\n    this.formGroup.addControl(SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY, new FormControl());\n    this.multipageComponentStateService.getJourneyCollectionMainObject().journeyPageNumber = CaseFlagFieldState.FLAG_LANGUAGE_INTERPRETER;\n    this.filteredLanguages$ = this.formGroup.get(SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM).valueChanges.pipe(\n      // Need to check type of input because it changes to object (i.e. Language) when a value is selected from the\n      // autocomplete panel, instead of string when a value is being typed in\n      map(input => typeof input === 'string' ? input : input.value),\n      map(searchTerm => {\n        // Update the current search term\n        this.searchTerm = searchTerm;\n        return this.filterLanguages(searchTerm);\n      }),\n      tap(languages => this.noResults = languages.length === 0)\n    );\n  }\n\n  public onNext(): void {\n    // Validate language interpreter entry\n    this.validateLanguageEntry();\n    // Return case flag field state and error messages to the parent\n    this.caseFlagStateEmitter.emit({\n      currentCaseFlagFieldState: CaseFlagFieldState.FLAG_LANGUAGE_INTERPRETER,\n      errorMessages: this.errorMessages\n    });\n  }\n\n  public onEnterLanguageManually(event: Event): void {\n    this.isCheckboxEnabled = (event.target as HTMLInputElement).checked;\n\n    // If the checkbox is disabled, i.e. unchecked, then clear the manual language entry FormControl of any value to\n    // prevent it being retained even when the field itself is hidden\n    if (!this.isCheckboxEnabled) {\n      this.formGroup.get(SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY).setValue(null);\n    }\n  }\n\n  public displayLanguage(language?: Language): string | undefined {\n    return language ? language.value : undefined;\n  }\n\n  private validateLanguageEntry(): void {\n    this.languageNotSelectedErrorMessage = null;\n    this.languageNotEnteredErrorMessage = null;\n    this.languageCharLimitErrorMessage = null;\n    this.languageEnteredInBothFieldsErrorMessage = null;\n    this.errorMessages = [];\n    // Checkbox not enabled means the user has opted to search for and select the language\n    if (!this.isCheckboxEnabled && !this.formGroup.get(SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM).value) {\n      this.languageNotSelectedErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED;\n      this.errorMessages.push({\n        title: '',\n        description: SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED,\n        fieldId: SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM\n      });\n    }\n    // Checkbox enabled means the user has opted to enter the language manually\n    if (this.isCheckboxEnabled) {\n      if (!this.formGroup.get(SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY).value) {\n        this.languageNotEnteredErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED;\n        this.errorMessages.push({\n          title: '',\n          description: SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED,\n          fieldId: SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY\n        });\n      } else if (this.formGroup.get(SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY).value.length > this.languageMaxCharLimit) {\n        this.languageCharLimitErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_CHAR_LIMIT_EXCEEDED;\n        this.errorMessages.push({\n          title: '',\n          description: SearchLanguageInterpreterErrorMessage.LANGUAGE_CHAR_LIMIT_EXCEEDED,\n          fieldId: SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY\n        });\n      } else if (this.formGroup.get(SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM).value) {\n        // Language entry is permitted in only one field at a time\n        this.languageEnteredInBothFieldsErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_ENTERED_IN_BOTH_FIELDS;\n        this.errorMessages.push({\n          title: '',\n          description: SearchLanguageInterpreterErrorMessage.LANGUAGE_ENTERED_IN_BOTH_FIELDS,\n          fieldId: SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM\n        });\n      }\n    }\n  }\n\n  private filterLanguages(searchTerm: string): Language[] {\n    if (searchTerm.length < this.minSearchCharacters) {\n      return [];\n    }\n\n    return this.flagType.listOfValues\n      ? this.flagType.listOfValues.filter(language =>\n        // If a language has both English and Welsh values, match only on the value appropriate for the page language,\n        // i.e. if RpxTranslationService.language is 'cy' then match on the value_cy property only. This is to prevent\n        // cross-matches, where a user enters a search term in English and sees the corresponding Welsh value (because\n        // the page language is Welsh) and vice versa\n        this.rpxTranslationService.language === 'cy' && language.value && language.value_cy &&\n        language.value_cy.toLowerCase().includes(searchTerm.toLowerCase(), 0) ||\n        this.rpxTranslationService.language !== 'cy' && language.value && language.value_cy &&\n        language.value.toLowerCase().includes(searchTerm.toLowerCase(), 0) ||\n        !language.value_cy && language.value.toLowerCase().includes(searchTerm.toLowerCase(), 0) ||\n        !language.value && language.value_cy.toLowerCase().includes(searchTerm.toLowerCase(), 0))\n      : [];\n  }\n\n  public next() {\n    this.onNext();\n\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n}\n","<ng-container [formGroup]=\"formGroup\">\n  <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n    <fieldset class=\"govuk-fieldset\" aria-describedby=\"flag-location-heading\">\n      <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n        <h1 id=\"flag-location-heading\" class=\"govuk-fieldset__heading\">\n          {{flagLocationTitle | rpxTranslate}}\n        </h1>\n      </legend>\n      <div id=\"flag-location-not-selected-error-message\" class=\"govuk-error-message\"\n        *ngIf=\"flagLocationNotSelectedErrorMessage\">\n        <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagLocationNotSelectedErrorMessage | rpxTranslate}}\n      </div>\n      <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n        <div class=\"govuk-radios__item\" *ngFor=\"let flagsInstance of filteredFlagsData; index as i\">\n          <input class=\"govuk-radios__input\" id=\"flag-location-{{i}}\" [name]=\"selectedLocationControlName\"\n            type=\"radio\" [value]=\"flagsInstance\" [formControlName]=\"selectedLocationControlName\"/>\n          <label class=\"govuk-label govuk-radios__label\" for=\"flag-location-{{i}}\">\n            <ng-container *ngIf=\"flagsInstance.flags.partyName\">\n              {{flagsInstance.flags.partyName}}\n              <ng-container *ngIf=\"flagsInstance.flags.roleOnCase\">\n                ({{flagsInstance.flags.roleOnCase | rpxTranslate}})\n              </ng-container>\n            </ng-container>\n            <ng-container *ngIf=\"!flagsInstance.flags.partyName\">\n              {{caseLevelFlagLabel | rpxTranslate}}\n            </ng-container>\n          </label>\n        </div>\n      </div>\n    </fieldset>\n  </div>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ErrorMessage, Journey } from '../../../../../domain';\nimport { CaseFlagState, FlagsWithFormGroupPath } from '../../domain';\nimport { CaseFlagFieldState, CaseFlagWizardStepTitle, SelectFlagLocationErrorMessage } from '../../enums';\nimport { AbstractJourneyComponent } from '../../../base-field/abstract-journey.component';\n\n@Component({\n  selector: 'ccd-select-flag-location',\n  templateUrl: './select-flag-location.component.html',\n  standalone: false\n})\nexport class SelectFlagLocationComponent extends AbstractJourneyComponent implements OnInit, Journey {\n  @Input() public formGroup: FormGroup;\n  @Input() public flagsData: FlagsWithFormGroupPath[];\n  @Input() public isDisplayContextParameterExternal = false;\n\n  @Output() public caseFlagStateEmitter: EventEmitter<CaseFlagState> = new EventEmitter<CaseFlagState>();\n\n  public flagLocationTitle: CaseFlagWizardStepTitle;\n  public errorMessages: ErrorMessage[] = [];\n  public flagLocationNotSelectedErrorMessage: SelectFlagLocationErrorMessage = null;\n  public filteredFlagsData: FlagsWithFormGroupPath[];\n  public cachedLocation: string;\n  public caseFlagsConfigError = false;\n  public readonly selectedLocationControlName = 'selectedLocation';\n  public readonly caseLevelFlagLabel = 'Case level';\n  private readonly caseLevelCaseFlagsFieldId = 'caseFlags';\n\n  public ngOnInit(): void {\n    if (this.formGroup.get(this.selectedLocationControlName)) {\n      this.cachedLocation = this.formGroup.get(this.selectedLocationControlName).value?.pathToFlagsFormGroup;\n    }\n    this.flagLocationTitle = this.isDisplayContextParameterExternal ?\n      CaseFlagWizardStepTitle.SELECT_FLAG_LOCATION_EXTERNAL : CaseFlagWizardStepTitle.SELECT_FLAG_LOCATION;\n\n    // Filter out any flags instances that don't have a party name, unless the instance is for case-level flags (this\n    // is expected not to have a party name)\n    // Also de-duplicate flags instances where the groupId, if present, is the same\n    if (this.flagsData) {\n      this.filteredFlagsData =\n        this.flagsData\n        .filter((f) => f.flags.partyName !== null || f.pathToFlagsFormGroup === this.caseLevelCaseFlagsFieldId)\n        .filter((value, index, partyLevelFlags) => !value.flags.groupId\n          ? value\n          : partyLevelFlags.findIndex((p) => p.flags.groupId === value.flags.groupId) === index);\n    }\n    // Add a FormControl for the selected flag location if there is at least one flags instance remaining after filtering\n    if (this.filteredFlagsData && this.filteredFlagsData.length > 0) {\n      const formControl = this.formGroup.get(this.selectedLocationControlName);\n\n      if (!formControl) {\n        this.formGroup.addControl(this.selectedLocationControlName, new FormControl(null));\n      } else {\n        // Needs to be setValue as they have different object references -- we use the pathToFlagsFormGroup key\n        formControl.setValue(\n          this.filteredFlagsData.find(item => item.pathToFlagsFormGroup === formControl.value?.pathToFlagsFormGroup)\n        );\n      }\n    } else {\n      // No filtered flags instances mean there are no parties to select from. The case has not been configured properly\n      // for case flags and the user cannot proceed with flag creation. (Will need to be extended to check for case-level\n      // flags in future)\n      this.onCaseFlagsConfigError();\n    }\n  }\n\n  public onNext(): void {\n    // Validate flag location selection\n    this.validateSelection();\n    //check if the user has changed their location selection\n    if (this.cachedLocation !== this.formGroup.get(this.selectedLocationControlName)?.value?.pathToFlagsFormGroup) {\n      Object.keys(this.formGroup.controls).forEach((controlName) => {\n        if (controlName !== this.selectedLocationControlName) {\n          this.formGroup.removeControl(controlName);\n        }\n      });\n    }\n    // Return case flag field state, error messages, and selected FlagsWithFormGroupPath instance (i.e. flag location) to\n    // the parent\n    this.caseFlagStateEmitter.emit({\n      currentCaseFlagFieldState: CaseFlagFieldState.FLAG_LOCATION,\n      errorMessages: this.errorMessages,\n    });\n  }\n\n  private validateSelection(): void {\n    this.flagLocationNotSelectedErrorMessage = null;\n    this.errorMessages = [];\n    if (!this.formGroup.get(this.selectedLocationControlName).value) {\n      this.flagLocationNotSelectedErrorMessage = SelectFlagLocationErrorMessage.FLAG_LOCATION_NOT_SELECTED;\n      this.errorMessages.push({\n        title: '',\n        description: SelectFlagLocationErrorMessage.FLAG_LOCATION_NOT_SELECTED,\n        fieldId: 'conditional-radios-list'\n      });\n    }\n  }\n\n  private onCaseFlagsConfigError(): void {\n    // Set error flag on component to remove the \"Next\" button (user cannot proceed with flag creation)\n    this.caseFlagsConfigError = true;\n    this.errorMessages = [];\n    this.errorMessages.push(\n      { title: '', description: SelectFlagLocationErrorMessage.FLAGS_NOT_CONFIGURED, fieldId: 'conditional-radios-list' });\n    // Return case flag field state and error messages to the parent\n    this.caseFlagStateEmitter.emit({ currentCaseFlagFieldState: CaseFlagFieldState.FLAG_TYPE, errorMessages: this.errorMessages });\n  }\n\n  public next() {\n    this.onNext();\n\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n}\n","<ng-container *ngIf=\"flagTypes?.length\" [formGroup]=\"formGroup\">\n  <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': flagTypeNotSelectedErrorMessage.length > 0}\">\n    <fieldset class=\"govuk-fieldset\" aria-describedby=\"flag-type-heading\">\n      <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n        <h1 id=\"flag-type-heading\" class=\"govuk-fieldset__heading govuk-!-margin-bottom-1\">\n          <ng-container *ngIf=\"!cachedFlagType || subJourneyIndex == 0; else priorFlagTypeSelected\">\n            {{\n            isDisplayContextParameterExternal\n            ? (caseFlagWizardStepTitle.SELECT_CASE_FLAG_EXTERNAL | rpxTranslate)\n            : (caseFlagWizardStepTitle.SELECT_CASE_FLAG | rpxTranslate)\n            }}\n          </ng-container>\n          <ng-template #priorFlagTypeSelected>\n            {{cachedFlagType | flagFieldDisplay:'name'}}\n          </ng-template>\n        </h1>\n      </legend>\n      <div id=\"flag-type-not-selected-error-message\" class=\"govuk-error-message\"\n        *ngIf=\"flagTypeNotSelectedErrorMessage.length > 0\">\n        <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagTypeNotSelectedErrorMessage |\n        rpxTranslate}}\n      </div>\n      <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n        <div class=\"govuk-radios__item\" *ngFor=\"let flagType of flagTypes; index as i; trackBy: identifyFlagType\">\n          <input class=\"govuk-radios__input\" id=\"flag-type-{{i}}\" [name]=\"caseFlagFormField.FLAG_TYPE\" type=\"radio\"\n            [value]=\"flagType\" [formControlName]=\"caseFlagFormField.FLAG_TYPE\" />\n          <label class=\"govuk-label govuk-radios__label\" for=\"flag-type-{{i}}\">\n            {{flagType | flagFieldDisplay:'name'}}\n          </label>\n        </div>\n        <div class=\"govuk-radios__conditional\" *ngIf=\"otherFlagTypeSelected\" id=\"conditional-flagType\">\n          <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': flagTypeErrorMessage.length > 0}\">\n            <label class=\"govuk-label\" for=\"other-flag-type-description\">\n              {{\n              isDisplayContextParameterExternal\n              ? (caseFlagWizardStepTitle.OTHER_FLAG_TYPE_DESCRIPTION_EXTERNAL | rpxTranslate)\n              : (caseFlagWizardStepTitle.OTHER_FLAG_TYPE_DESCRIPTION | rpxTranslate)\n              }}\n            </label>\n            <div id=\"flag-type-error-message\" class=\"govuk-error-message\" *ngIf=\"flagTypeErrorMessage.length > 0\">\n              <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagTypeErrorMessage |\n              rpxTranslate}}\n            </div>\n            <input class=\"govuk-input govuk-!-width-one-half\"\n              [ngClass]=\"{'govuk-input--error': flagTypeErrorMessage.length > 0}\" id=\"other-flag-type-description\"\n              [name]=\"caseFlagFormField.OTHER_FLAG_DESCRIPTION\" type=\"text\"\n              [formControlName]=\"caseFlagFormField.OTHER_FLAG_DESCRIPTION\" />\n            <div class=\"govuk-checkboxes__item govuk-!-margin-top-4\"\n              *ngIf=\"!isDisplayContextParameterExternal && !isCaseLevelFlag && isDisplayContextParameter2Point1Enabled\">\n              <input class=\"govuk-checkboxes__input\" id=\"is-visible-externally\" type=\"checkbox\"\n                [name]=\"caseFlagFormField.IS_VISIBLE_INTERNALLY_ONLY\"\n                [formControlName]=\"caseFlagFormField.IS_VISIBLE_INTERNALLY_ONLY\">\n              <label class=\"govuk-label govuk-checkboxes__label\" for=\"is-visible-externally\">\n                {{'This flag should only be visible to HMCTS Staff' | rpxTranslate}}\n              </label>\n            </div>\n          </div>\n        </div>\n      </div>\n    </fieldset>\n  </div>\n</ng-container>","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { ErrorMessage, Journey } from '../../../../../domain';\nimport { FlagType } from '../../../../../domain/case-flag';\nimport { CaseFlagRefdataService, MultipageComponentStateService } from '../../../../../services';\nimport { RefdataCaseFlagType } from '../../../../../services/case-flag/refdata-case-flag-type.enum';\nimport { CaseFlagState, FlagsWithFormGroupPath } from '../../domain';\nimport { CaseFlagFieldState, CaseFlagFormFields, CaseFlagWizardStepTitle, SelectFlagTypeErrorMessage } from '../../enums';\nimport { AbstractJourneyComponent } from '../../../base-field/abstract-journey.component';\nimport { SearchLanguageInterpreterControlNames } from '../search-language-interpreter/search-language-interpreter-control-names.enum';\n\n@Component({\n  selector: 'ccd-select-flag-type',\n  templateUrl: './select-flag-type.component.html',\n  styleUrls: ['./select-flag-type.component.scss'],\n  standalone: false\n})\nexport class SelectFlagTypeComponent extends AbstractJourneyComponent implements OnInit, OnDestroy, Journey {\n  @Input()\n  public formGroup: FormGroup;\n\n  @Input()\n  public jurisdiction: string;\n\n  @Input()\n  public caseTypeId: string;\n\n  @Input()\n  public hmctsServiceId: string;\n\n  @Input()\n  public isDisplayContextParameterExternal = false;\n\n  @Input()\n  public isDisplayContextParameter2Point1Enabled = false;\n\n  @Input()\n  public selectedFlagsLocation: FlagsWithFormGroupPath;\n\n  @Output()\n  public caseFlagStateEmitter: EventEmitter<CaseFlagState> = new EventEmitter<CaseFlagState>();\n\n  @Output()\n  public flagCommentsOptionalEmitter: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  public flagTypeSubJourneyEmitter: EventEmitter<any> = new EventEmitter();\n\n  public flagTypes: FlagType[];\n  public errorMessages: ErrorMessage[];\n  public flagTypeNotSelectedErrorMessage = '';\n  public flagTypeErrorMessage = '';\n  public flagRefdata$: Subscription;\n  public refdataError = false;\n  public cachedPath: (FlagType | false)[];\n  public cachedFlagType: FlagType;\n  public flagTypeControlChangesSubscription: Subscription;\n  public caseFlagFormField = CaseFlagFormFields;\n  public isCaseLevelFlag = false;\n  public cachedRDFlagTypes: FlagType[];\n  public subJourneyIndex: number = 0;\n\n  private readonly maxCharactersForOtherFlagType = 80;\n  // Code for \"Other\" flag type as defined in Reference Data\n  private readonly otherFlagTypeCode = 'OT0001';\n  private readonly caseLevelCaseFlagsFieldId = 'caseFlags';\n\n  public get caseFlagWizardStepTitle(): typeof CaseFlagWizardStepTitle {\n    return CaseFlagWizardStepTitle;\n  }\n\n  public constructor(private readonly caseFlagRefdataService: CaseFlagRefdataService, pageStateService: MultipageComponentStateService) {\n    super(pageStateService);\n    this.handleBackButtonSubJourney = this.handleBackButtonSubJourney.bind(this);\n  }\n\n  public get selectedFlagType(): FlagType | null {\n    return this.formGroup.get(CaseFlagFormFields.FLAG_TYPE)?.value;\n  }\n\n  public get otherFlagTypeSelected(): boolean {\n    return this.formGroup.get(CaseFlagFormFields.FLAG_TYPE)?.value?.flagCode === this.otherFlagTypeCode;\n  }\n\n  public ngOnInit(): void {\n    this.isCaseLevelFlag = this.selectedFlagsLocation?.flags?.flagsCaseFieldId === this.caseLevelCaseFlagsFieldId;\n    this.flagTypeSubJourneyEmitter.emit(this.subJourneyIndex);\n    this.addState(this.subJourneyIndex);\n    this.flagTypes = [];\n    const flagType = this.isCaseLevelFlag ? RefdataCaseFlagType.CASE : RefdataCaseFlagType.PARTY;\n    this.formGroup.addControl(CaseFlagFormFields.FLAG_TYPE, new FormControl(''));\n    this.formGroup.addControl(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION, new FormControl(''));\n    // FormControl is linked to a checkbox input element, so initial value should be false\n    this.formGroup.addControl(CaseFlagFormFields.IS_VISIBLE_INTERNALLY_ONLY, new FormControl(false));\n\n    // Should clear descriptionControlName if flagTypeControlName is changed\n    this.flagTypeControlChangesSubscription = this.formGroup.get(CaseFlagFormFields.FLAG_TYPE)?.valueChanges\n      .subscribe((_) => {\n        this.formGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION)?.setValue('');\n        this.cachedPath = [];\n\n        // required to clear language interpreter\n        this.formGroup.patchValue({\n          [SearchLanguageInterpreterControlNames.LANGUAGE_SEARCH_TERM]: '',\n          [SearchLanguageInterpreterControlNames.MANUAL_LANGUAGE_ENTRY]: ''\n        });\n      }\n      );\n\n    // If hmctsServiceId is present, use this to retrieve the relevant list of flag types\n    if (this.hmctsServiceId) {\n      this.flagRefdata$ = this.caseFlagRefdataService\n        .getCaseFlagsRefdata(this.hmctsServiceId, flagType, true, this.isDisplayContextParameterExternal)\n        .subscribe({\n          next: (flagTypes) => this.processFlagTypes(flagTypes),\n          error: (error) => this.onRefdataError(error)\n        });\n    } else {\n      // Else, HMCTS service code is required to retrieve the relevant list of flag types; attempt to obtain it by case type ID first\n      this.flagRefdata$ = this.caseFlagRefdataService.getHmctsServiceDetailsByCaseType(this.caseTypeId)\n        .pipe(\n          // If an error occurs retrieving HMCTS service details by case type ID, try by service name instead\n          catchError((_) => this.caseFlagRefdataService.getHmctsServiceDetailsByServiceName(this.jurisdiction)),\n          // Use switchMap to return an inner Observable of the flag types data, having received the service details\n          // including service_code. This avoids having nested `subscribe`s, which is an anti-pattern!\n          switchMap((serviceDetails) => this.caseFlagRefdataService.getCaseFlagsRefdata(serviceDetails[0].service_code, flagType,\n            true, this.isDisplayContextParameterExternal))\n        )\n        .subscribe({\n          next: (flagTypes) => this.processFlagTypes(flagTypes),\n          error: (error) => this.onRefdataError(error)\n        });\n    }\n    this.addState(this.subJourneyIndex);\n    window.addEventListener('popstate', this.handleBackButtonSubJourney);\n  }\n\n  public handleBackButtonSubJourney(event: Event): void {\n    event.preventDefault();\n    this.previous();\n  }\n\n  public addState(data: number, url?: string): void {\n    history.pushState('1'+data, '', url);\n  }\n\n  public ngOnDestroy(): void {\n    this.flagRefdata$?.unsubscribe();\n    this.flagTypeControlChangesSubscription?.unsubscribe();\n    // check if the user has an existing path when navigating away from the page\n    // if so we may need to ensure the values are set correctly.\n    this.checkForExistingPath();\n    window.removeEventListener('popstate', this.handleBackButtonSubJourney);\n  }\n\n  public checkForExistingPath(): void {\n    // Restore values from cachedPath\n    if (this.subJourneyIndex <= 0) {\n      // check if the user is navigating to the previous page in the jounrey.\n      // in this situation we need to restore the full path for data retention across pages.\n      if (this.cachedPath && this.cachedPath.length > 0) {\n        this.cachedPath.forEach((flagType) => {\n          if (flagType) {\n            this.formGroup.get(CaseFlagFormFields.FLAG_TYPE)?.setValue(flagType, { emitEvent: false });\n          }\n        });\n      }\n    }\n  }\n\n  public onNext(): void {\n    this.validateForm();\n    this.emitCaseFlagState();\n    this.emitFlagCommentsOptional();\n    this.handleFlagTypeSelection();\n    this.flagTypeSubJourneyEmitter.emit(this.subJourneyIndex);\n    this.addState(this.subJourneyIndex);\n  }\n\n  private emitCaseFlagState(): void {\n    this.caseFlagStateEmitter.emit({\n      currentCaseFlagFieldState: CaseFlagFieldState.FLAG_TYPE,\n      isParentFlagType: this.selectedFlagType ? this.selectedFlagType.isParent : null,\n      errorMessages: this.errorMessages\n    });\n  }\n\n  private emitFlagCommentsOptional(): void {\n    if (this.selectedFlagType && !this.selectedFlagType.isParent && !this.selectedFlagType.flagComment) {\n      this.flagCommentsOptionalEmitter.emit(null);\n    }\n  }\n\n  private handleFlagTypeSelection(): void {\n    if (this.selectedFlagType?.isParent) {\n      this.loadChildFlagTypes();\n    } else {\n      this.completeSubJourney();\n    }\n  }\n\n  private loadChildFlagTypes(): void {\n    this.cachedFlagType = this.selectedFlagType;\n    this.flagTypes = this.selectedFlagType.childFlags;\n    if (this.cachedPath.length !== 0 && this.cachedPath[this.subJourneyIndex] === this.selectedFlagType) {\n      this.formGroup.get(CaseFlagFormFields.FLAG_TYPE)?.setValue(this.cachedPath[this.subJourneyIndex + 1], { emitEvent: false });\n    } else {\n      this.cachedPath?.shift();\n      const value = this.cachedPath?.length ? this.cachedPath[0] : null;\n      this.formGroup.get(CaseFlagFormFields.FLAG_TYPE)?.setValue(value, { emitEvent: false });\n    }\n    this.subJourneyIndex++;\n  }\n\n  private completeSubJourney(): void {\n    const currentSelectedFlag = this.formGroup.controls.flagType;\n    const addedFlagValue = this.selectedFlagsLocation?.caseField?.value?.details;\n    if (addedFlagValue && (addedFlagValue[Object.keys(addedFlagValue).length]?.name !== currentSelectedFlag.value.name)) {\n      this.selectedFlagsLocation['caseField'].value.details.pop();\n      this.selectedFlagsLocation['caseField'].formatted_value?.details.pop();\n    }\n  }\n\n  // Simplified version of the onPrevious method with optimized code\n  public onPrevious(): void {\n    if (this.cachedFlagType) {\n      if (this.cachedFlagType.Path?.length === 1) {\n        this.formGroup.get(CaseFlagFormFields.FLAG_TYPE)?.setValue(this.cachedFlagType, { emitEvent: false });\n        this.flagTypes = this.cachedRDFlagTypes[0].childFlags;\n      } else {\n        let currentPath = this.cachedRDFlagTypes[0];\n        const pathToSearch = this.cachedFlagType.Path.slice(1);\n        for (const pathElement of pathToSearch) {\n          const foundFlag = currentPath.childFlags.find((flag) => flag.name === pathElement);\n          if (foundFlag) {\n            currentPath = foundFlag;\n          }\n        }\n        this.formGroup.get(CaseFlagFormFields.FLAG_TYPE)?.setValue(this.cachedFlagType, { emitEvent: false });\n        this.flagTypes = currentPath.childFlags;\n        this.cachedFlagType = currentPath;\n      }\n    }\n    this.subJourneyIndex = Math.max(0, this.subJourneyIndex - 1);\n    if (this.subJourneyIndex === 0) {\n      this.flagTypes = this.flagTypes.filter((flag) =>\n        this.isDisplayContextParameterExternal ? flag.flagCode !== this.otherFlagTypeCode : true);\n    }\n    this.flagTypeSubJourneyEmitter.emit(this.subJourneyIndex);\n  }\n\n  // Identity function for trackBy use by *ngFor for flagTypes in HTML template\n  public identifyFlagType(_: number, flagType: FlagType): string {\n    return `${flagType.flagCode}_${flagType.name}_${flagType.name_cy}`;\n  }\n\n  private validateForm(): void {\n    this.flagTypeNotSelectedErrorMessage = '';\n    this.flagTypeErrorMessage = '';\n    this.errorMessages = [];\n\n    if (!this.selectedFlagType) {\n      // If there is any prior flag type selection then the message will differ\n      let errorMessage = '';\n      if (this.cachedFlagType) {\n        errorMessage = SelectFlagTypeErrorMessage.FLAG_TYPE_OPTION_NOT_SELECTED;\n      } else {\n        errorMessage = this.isDisplayContextParameterExternal\n          ? SelectFlagTypeErrorMessage.FLAG_TYPE_NOT_SELECTED_EXTERNAL\n          : SelectFlagTypeErrorMessage.FLAG_TYPE_NOT_SELECTED;\n      }\n      this.flagTypeNotSelectedErrorMessage = errorMessage;\n      this.errorMessages.push({ title: '', description: errorMessage, fieldId: 'conditional-radios-list' });\n    }\n    if (this.otherFlagTypeSelected) {\n      const otherFlagTypeDescription = this.formGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION)?.value;\n      if (!otherFlagTypeDescription) {\n        this.flagTypeErrorMessage = this.isDisplayContextParameterExternal\n          ? SelectFlagTypeErrorMessage.FLAG_TYPE_NOT_ENTERED_EXTERNAL\n          : SelectFlagTypeErrorMessage.FLAG_TYPE_NOT_ENTERED;\n        this.errorMessages.push({ title: '', description: `${this.flagTypeErrorMessage}`, fieldId: 'other-flag-type-description' });\n      }\n      if (otherFlagTypeDescription.length > this.maxCharactersForOtherFlagType) {\n        this.flagTypeErrorMessage = SelectFlagTypeErrorMessage.FLAG_TYPE_LIMIT_EXCEEDED;\n        this.errorMessages.push({ title: '', description: `${SelectFlagTypeErrorMessage.FLAG_TYPE_LIMIT_EXCEEDED}`, fieldId: 'other-flag-type-description' });\n      }\n    }\n  }\n\n  public processFlagTypes(flagTypes: FlagType[]): void {\n    const prevJourneyPage = this.multipageComponentStateService.getJourneyCollection()[0];\n    const { journeyPreviousPageNumber, journeyPageNumber } = prevJourneyPage;\n    this.cachedRDFlagTypes = flagTypes;\n    if (this.selectedFlagType && (journeyPreviousPageNumber > journeyPageNumber)) {\n      const selectedFlagType = this.selectedFlagType;\n      const pathToSearch = selectedFlagType.Path.slice(1);\n      let currentPath = flagTypes[0];\n      for (const pathElement of pathToSearch) {\n        const foundFlag = currentPath.childFlags.find((flag) => flag.name === pathElement);\n        if (foundFlag) {\n          currentPath = foundFlag;\n        }\n      }\n      this.flagTypes = currentPath.childFlags;\n      this.cachedFlagType = currentPath;\n    } else {\n      this.flagTypes = flagTypes[0].childFlags.filter((flag) =>\n        this.isDisplayContextParameterExternal ? flag.flagCode !== this.otherFlagTypeCode : true);\n    }\n    const formControl = this.formGroup.get(CaseFlagFormFields.FLAG_TYPE);\n    if (formControl?.value) {\n      const [foundFlagType, path] = FlagType.searchPathByFlagTypeObject(formControl.value as FlagType, this.cachedRDFlagTypes[0].childFlags);\n      this.cachedPath = [...path, foundFlagType];\n      formControl.setValue((this.selectedFlagType && (journeyPreviousPageNumber > journeyPageNumber)) ? this.cachedPath[this.cachedPath.length - 1] : this.cachedPath[0], { emitEvent: false });\n      if (this.cachedPath.length !== 0 && (journeyPreviousPageNumber > journeyPageNumber)) {\n        this.subJourneyIndex = this.cachedPath.length-1;\n      }\n    }\n    this.flagTypeSubJourneyEmitter.emit(this.subJourneyIndex);\n    this.addState(this.subJourneyIndex);\n  }\n\n  private onRefdataError(error: any): void {\n    // Set error flag on component to remove the \"Next\" button (user cannot proceed with flag creation)\n    this.refdataError = true;\n    this.errorMessages = [];\n    this.errorMessages.push({ title: '', description: error.message, fieldId: 'conditional-radios-list' });\n    // Return case flag field state and error messages to the parent\n    this.caseFlagStateEmitter.emit({ currentCaseFlagFieldState: CaseFlagFieldState.FLAG_TYPE, errorMessages: this.errorMessages });\n  }\n\n  public next(): void {\n    this.onNext();\n    this.addState(this.subJourneyIndex);\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n\n  public previous(): void {\n    this.onPrevious();\n\n    if (this.subJourneyIndex <= 0) {\n      super.previous();\n    }\n  }\n}\n","<ng-container [formGroup]=\"formGroup\">\n  <div class=\"govuk-character-count\" data-module=\"govuk-character-count\" data-maxlength=\"200\">\n    <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n      <h1 class=\"govuk-label-wrapper govuk-!-margin-bottom-4\">\n        <label class=\"govuk-label govuk-label--m\">\n          {{updateFlagTitle | rpxTranslate}}\n        </label>\n      </h1>\n      <div id=\"update-flag-hint-external\" class=\"govuk-hint\" *ngIf=\"externalUserUpdate\">\n        {{selectedFlag?.flagDetailDisplay?.flagDetail | updateFlagTitleDisplay}}\n      </div>\n\n      <div class=\"govuk-!-margin-bottom-4\">\n        <label class=\"govuk-label govuk-label--s\" [for]=\"caseFlagFormFields.COMMENTS\">\n          {{\n            externalUserUpdate\n              ? (updateFlagStepEnum.COMMENT_FIELD_LABEL_EXTERNAL | rpxTranslate)\n              : (updateFlagTitle | rpxTranslate) + (' comments' | rpxTranslate)\n          }}\n        </label>\n        <div id=\"update-flag-comments-hint-external\" class=\"govuk-hint\" *ngIf=\"externalUserUpdate\">\n          {{updateFlagStepEnum.COMMENT_HINT_TEXT_EXTERNAL | rpxTranslate}}\n        </div>\n        <ng-container *ngIf=\"internalUserUpdate || internalUser2Point1EnabledUpdate || displayContextParameter === '';\n          else externalUser\">\n          <div id=\"update-flag-comments-hint\" class=\"govuk-hint\">\n            {{\n              internalUserUpdate\n                ? (updateFlagStepEnum.COMMENT_HINT_TEXT_INTERNAL | rpxTranslate)\n                : (updateFlagStepEnum.COMMENT_HINT_TEXT_INTERNAL_2_POINT_1 | rpxTranslate)\n            }}\n          </div>\n          <div class=\"govuk-warning-text\" *ngIf=\"internalUser2Point1EnabledUpdate && externallyVisibleFlag\">\n            <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n            <strong class=\"govuk-warning-text__text\">\n              <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n              {{updateFlagStepEnum.WARNING_TEXT | rpxTranslate}}\n            </strong>\n          </div>\n          <div id=\"update-flag-comments-not-entered-error-message\" class=\"govuk-error-message\" *ngIf=\"commentsNotEnteredErrorMessage\">\n            <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{commentsNotEnteredErrorMessage | rpxTranslate}}\n          </div>\n          <div id=\"update-flag-comments-char-limit-error\" class=\"govuk-error-message\" *ngIf=\"commentsCharLimitErrorMessage\">\n            <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{commentsCharLimitErrorMessage | rpxTranslate}}\n          </div>\n          <textarea class=\"govuk-textarea\"\n                    [id]=\"caseFlagFormFields.COMMENTS\"\n                    [name]=\"caseFlagFormFields.COMMENTS\"\n                    [formControlName]=\"caseFlagFormFields.COMMENTS\"\n                    rows=\"5\"\n                    aria-describedby=\"update-flag-comments-hint update-flag-comments-char-limit-info update-flag-comments-char-limit-error\">\n          </textarea>\n          <div id=\"update-flag-comments-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n            {{updateFlagStepEnum.CHARACTER_LIMIT_INFO | rpxTranslate}}\n          </div>\n        </ng-container>\n        <ng-template #externalUser>\n          <ng-container *ngIf=\"externalUserUpdate\">\n            <ng-container *ngTemplateOutlet=\"updateFlagStatusReason\"></ng-container>\n          </ng-container>\n        </ng-template>\n      </div>\n\n      <ng-template #updateFlagStatusReason>\n        <div id=\"update-flag-status-reason-not-entered-error-message\" class=\"govuk-error-message\" *ngIf=\"statusReasonNotEnteredErrorMessage\">\n          <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{statusReasonNotEnteredErrorMessage | rpxTranslate}}\n        </div>\n        <div id=\"update-flag-status-reason-char-limit-error\" class=\"govuk-error-message\" *ngIf=\"statusReasonCharLimitErrorMessage\">\n          <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{statusReasonCharLimitErrorMessage | rpxTranslate}}\n        </div>\n        <textarea class=\"govuk-textarea\"\n                  [id]=\"caseFlagFormFields.STATUS_CHANGE_REASON\"\n                  [name]=\"caseFlagFormFields.STATUS_CHANGE_REASON\"\n                  [formControlName]=\"caseFlagFormFields.STATUS_CHANGE_REASON\"\n                  rows=\"5\"\n                  aria-describedby=\"update-flag-comments-hint-external update-flag-status-hint update-flag-status-reason-char-limit-info\n                  update-flag-status-reason-char-limit-error\">\n        </textarea>\n        <div id=\"update-flag-status-reason-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n          {{updateFlagStepEnum.CHARACTER_LIMIT_INFO | rpxTranslate}}\n        </div>\n      </ng-template>\n\n      <div id=\"flag-status-container-v2_1\" class=\"govuk-!-margin-bottom-4\" *ngIf=\"internalUser2Point1EnabledUpdate\">\n        <fieldset class=\"govuk-fieldset\" aria-describedby=\"update-flag-status-heading\">\n          <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--s\">\n            <h1 id=\"update-flag-status-heading\" class=\"govuk-fieldset__heading\">\n              {{updateFlagTitle | rpxTranslate}} {{'status' | rpxTranslate}}\n            </h1>\n          </legend>\n          <div class=\"govuk-radios govuk-radios--conditional govuk-!-margin-bottom-4\" data-module=\"govuk-radios\" [id]=\"caseFlagFormFields.STATUS\">\n            <div class=\"govuk-radios__item\" *ngFor=\"let status of validStatusProgressions\">\n              <input class=\"govuk-radios__input\" type=\"radio\"\n                      [id]=\"caseFlagFormFields.STATUS + '_' + status\"\n                      [name]=\"caseFlagFormFields.STATUS\"\n                      [formControlName]=\"caseFlagFormFields.STATUS\"\n                      [value]=\"status\">\n              <label class=\"govuk-label govuk-radios__label\" [for]=\"caseFlagFormFields.STATUS + '_' + status\">\n                {{caseFlagStatusEnum[status] | rpxTranslate}}\n              </label>\n            </div>\n          </div>\n        </fieldset>\n\n        <div id=\"update-flag-status-hint\" class=\"govuk-hint\">\n          {{updateFlagStepEnum.STATUS_HINT_TEXT | rpxTranslate}}\n        </div>\n        <ng-container *ngTemplateOutlet=\"updateFlagStatusReason\"></ng-container>\n      </div>\n\n      <div id=\"translation-checkbox-container\" class=\"govuk-!-margin-bottom-6\" *ngIf=\"internalUser2Point1EnabledUpdate\">\n        <div class=\"govuk-checkboxes\" data-module=\"govuk-checkboxes\">\n          <div class=\"govuk-checkboxes__item\">\n            <input class=\"govuk-checkboxes__input\" type=\"checkbox\"\n                   [formControlName]=\"caseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED\"\n                   [id]=\"caseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED\"\n                   [name]=\"caseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED\">\n            <label class=\"govuk-label govuk-checkboxes__label\"\n                   [for]=\"caseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED\">\n              {{'I need to add a translation' | rpxTranslate}}\n            </label>\n          </div>\n        </div>\n      </div>\n\n      <div id=\"flag-status-container-v1\" class=\"govuk-grid-row\" *ngIf=\"internalUserUpdate\">\n        <div class=\"govuk-grid-column-one-half\">\n          <p>{{'Flag status:' | rpxTranslate}}\n            <span>\n              <strong class=\"govuk-tag\" [ngClass]=\"{'govuk-tag--grey': selectedFlag.flagDetailDisplay.flagDetail.status === 'Inactive'}\">\n                {{selectedFlag?.flagDetailDisplay?.flagDetail?.status | rpxTranslate}}\n              </strong>\n            </span>\n          </p>\n        </div>\n        <div class=\"govuk-grid-column-one-half\">\n          <button class=\"button button-secondary\" type=\"button\" (click)=\"onMakeInactive()\" *ngIf=\"selectedFlag.flagDetailDisplay.flagDetail.status === 'Active'\">\n            {{'Make inactive' | rpxTranslate}}\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { ErrorMessage, Journey } from '../../../../../domain';\nimport { CaseFlagState, FlagDetail, FlagDetailDisplayWithFormGroupPath } from '../../domain';\nimport {\n  CaseFlagDisplayContextParameter,\n  CaseFlagFieldState,\n  CaseFlagFormFields,\n  CaseFlagStatus,\n  CaseFlagWizardStepTitle,\n  UpdateFlagErrorMessage,\n  UpdateFlagStep\n} from '../../enums';\nimport { AbstractJourneyComponent } from '../../../base-field';\nimport { MultipageComponentStateService } from \"../../../../../services\";\n\n@Component({\n  selector: 'ccd-update-flag',\n  templateUrl: './update-flag.component.html',\n  standalone: false\n})\nexport class UpdateFlagComponent extends AbstractJourneyComponent implements OnInit, Journey {\n  @Input() public formGroup: FormGroup;\n  @Input() public displayContextParameter: string;\n\n  @Output() public caseFlagStateEmitter: EventEmitter<CaseFlagState> = new EventEmitter<CaseFlagState>();\n\n  public selectedFlag: FlagDetailDisplayWithFormGroupPath;\n  public updateFlagTitle = '';\n  public errorMessages: ErrorMessage[] = [];\n  public commentsNotEnteredErrorMessage: UpdateFlagErrorMessage = null;\n  public commentsCharLimitErrorMessage: UpdateFlagErrorMessage = null;\n  public statusReasonNotEnteredErrorMessage: UpdateFlagErrorMessage = null;\n  public statusReasonCharLimitErrorMessage: UpdateFlagErrorMessage = null;\n  public updateFlagStepEnum = UpdateFlagStep;\n  public validStatusProgressions: string[];\n  public readonly caseFlagStatusEnum = CaseFlagStatus;\n  public readonly caseFlagFormFields = CaseFlagFormFields;\n  private readonly textMaxCharLimit = 200;\n  private readonly selectedManageCaseLocation = 'selectedManageCaseLocation';\n  private flagDetail: FlagDetail;\n  public caseFlagDisplayContextParameter = CaseFlagDisplayContextParameter;\n  public externalUserUpdate = false;\n  public internalUserUpdate = false;\n  public internalUser2Point1EnabledUpdate = false;\n\n  public get externallyVisibleFlag(): boolean {\n    return this.selectedFlag.flagDetailDisplay.visibility?.toLowerCase() === 'external';\n  }\n\n  constructor(\n    private readonly rpxTranslationService: RpxTranslationService,\n    multipageComponentStateService: MultipageComponentStateService\n  ) {\n    super(multipageComponentStateService);\n   }\n\n  public ngOnInit(): void {\n    // Set whether this is an external, internal, or internal Case Flags v2.1 enabled user update\n    this.externalUserUpdate = this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL;\n    this.internalUserUpdate = this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE;\n    this.internalUser2Point1EnabledUpdate = this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1;\n    this.selectedFlag = this.formGroup.get(this.selectedManageCaseLocation)?.value as FlagDetailDisplayWithFormGroupPath;\n    if (this.selectedFlag?.flagDetailDisplay?.flagDetail) {\n      this.flagDetail = this.selectedFlag.flagDetailDisplay.flagDetail;\n      // If present, use the *original* flag status, not the one in the flagDetail object, because the status could have\n      // been modified via a previous \"Update Flag\" journey through the UI but not persisted yet (thus not the *true* flag\n      // status). Otherwise, use the status from the flagDetail object (initially, the original flag status won't be\n      // present because it gets cached only on first update by WriteCaseFlagFieldComponent)\n      const currentFlagStatusKey = Object.keys(CaseFlagStatus).find(\n        (key) => CaseFlagStatus[key] === (this.selectedFlag.originalStatus || this.flagDetail.status));\n\n      // Populate flag comments text area with existing comments; use the comments appropriate for the selected language,\n      // falling back on their alternate counterpart if none are available. Comments are to be populated one time only -\n      // when the user first visits the page - even if they switch language subsequently\n      let existingComments: string;\n      if (this.rpxTranslationService.language === 'cy') {\n        existingComments = this.flagDetail.flagComment_cy || this.flagDetail.flagComment;\n      } else {\n        existingComments = this.flagDetail.flagComment || this.flagDetail.flagComment_cy;\n      }\n      this.formGroup.addControl(CaseFlagFormFields.COMMENTS, new FormControl(existingComments));\n      this.formGroup.addControl(CaseFlagFormFields.STATUS, new FormControl(currentFlagStatusKey));\n      // Populate status reason only if the user is not external\n      this.formGroup.addControl(CaseFlagFormFields.STATUS_CHANGE_REASON, new FormControl(\n        this.externalUserUpdate ? '' : this.flagDetail.flagUpdateComment));\n      this.formGroup.addControl(CaseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED, new FormControl(false));\n\n      this.updateFlagTitle = this.setUpdateCaseFlagTitle(this.flagDetail);\n\n      // Set the valid status options for display, based on current status of the selected flag. \"Active\" flags can\n      // remain \"Active\" or move to \"Inactive\" only; \"Requested\" flags can remain \"Requested\" or move to \"Active\",\n      // \"Inactive\", or \"Not approved\". No other status progressions are valid\n      if (currentFlagStatusKey) {\n        switch (currentFlagStatusKey) {\n          case 'ACTIVE':\n            this.validStatusProgressions = Object.keys(CaseFlagStatus).filter((key) => !['REQUESTED', 'NOT_APPROVED'].includes(key));\n            break;\n          case 'REQUESTED':\n            this.validStatusProgressions = Object.keys(CaseFlagStatus);\n            break;\n          default:\n            this.validStatusProgressions = [];\n        }\n      }\n    }\n  }\n\n  public setUpdateCaseFlagTitle(flagDetail: FlagDetail): string {\n    switch (this.displayContextParameter) {\n      case CaseFlagDisplayContextParameter.UPDATE:\n      case CaseFlagDisplayContextParameter.UPDATE_2_POINT_1:\n        if (flagDetail?.name) {\n          const subTypeValue = flagDetail.subTypeValue || flagDetail.subTypeValue_cy\n            ? `, ${flagDetail.subTypeValue || flagDetail.subTypeValue_cy}`\n            : '';\n          const otherDescription = flagDetail.otherDescription || flagDetail.otherDescription_cy\n            ? `, ${flagDetail.otherDescription || flagDetail.otherDescription_cy}`\n            : '';\n          return subTypeValue\n            ? `${CaseFlagWizardStepTitle.UPDATE_FLAG_TITLE} \"${flagDetail.name}${subTypeValue}\"`\n            : `${CaseFlagWizardStepTitle.UPDATE_FLAG_TITLE} \"${flagDetail.name}${otherDescription}\"`;\n        }\n        return `${CaseFlagWizardStepTitle.UPDATE_FLAG_TITLE}`;\n      case CaseFlagDisplayContextParameter.UPDATE_EXTERNAL:\n        return CaseFlagWizardStepTitle.UPDATE_FLAG_TITLE_EXTERNAL;\n      default:\n        return CaseFlagWizardStepTitle.NONE;\n    }\n  }\n\n  public onNext(): void {\n    // Validate flag comments and status reason entry\n    this.validateTextEntry();\n    this.validateTranslationNeeded();\n\n    // Set selected flag status to \"Inactive\" if update is by external user\n    if (this.externalUserUpdate) {\n      this.formGroup.get(CaseFlagFormFields.STATUS)?.setValue(Object.keys(CaseFlagStatus)[2]);\n    }\n\n    // Return case flag field state, error messages, and selected flag detail to the parent. The selected flag must be\n    // re-emitted because the parent component repopulates this on handling this EventEmitter\n    this.caseFlagStateEmitter.emit({\n      currentCaseFlagFieldState: CaseFlagFieldState.FLAG_UPDATE,\n      errorMessages: this.errorMessages,\n      selectedFlag: this.selectedFlag,\n    });\n\n    window.scrollTo(0, 0);\n  }\n\n  public validateTranslationNeeded(): void {\n    // it is possible that the user can select to have translation and then navigate back to remove the required translation in the same journey\n    // this function will check the user does not have any of the translation fields applied and remove if they do\n    const flagDetails = this.selectedFlag.flagDetailDisplay.flagDetail;\n    const isTranslationRequired = this.formGroup.value.flagIsWelshTranslationNeeded;\n    const hasTranslationFields = (flagDetails.flagComment_cy || flagDetails.otherDescription || flagDetails.otherDescription_cy);\n    if (!isTranslationRequired && hasTranslationFields) {\n      flagDetails.flagComment_cy = null;\n      flagDetails.otherDescription = null;\n      flagDetails.otherDescription_cy = null;\n      this.formGroup.removeControl('flagComment_cy');\n      this.formGroup.removeControl('otherDescription');\n      this.formGroup.removeControl('otherDescription_cy');\n    }\n  }\n\n  public onMakeInactive(): void {\n    // Set selected flag status to \"Inactive\" on screen and in the FormGroup\n    this.selectedFlag.flagDetailDisplay.flagDetail.status = CaseFlagStatus.INACTIVE;\n    this.formGroup.get(CaseFlagFormFields.STATUS)?.setValue(Object.keys(CaseFlagStatus)[2]);\n  }\n\n  private validateTextEntry(): void {\n    this.commentsNotEnteredErrorMessage = null;\n    this.commentsCharLimitErrorMessage = null;\n    this.statusReasonNotEnteredErrorMessage = null;\n    this.statusReasonCharLimitErrorMessage = null;\n    this.errorMessages = [];\n    // Validation should fail if the flag has an existing comment and it has been deleted on screen; conversely, if there\n    // is no existing comment then one is not required for validation to pass\n    const comment = this.formGroup.get(CaseFlagFormFields.COMMENTS)?.value;\n    if (!comment && (this.flagDetail.flagComment || this.flagDetail.flagComment_cy)) {\n      this.commentsNotEnteredErrorMessage = !this.displayContextParameter\n        ? UpdateFlagErrorMessage.NONE\n        : UpdateFlagErrorMessage.FLAG_COMMENTS_NOT_ENTERED;\n      this.errorMessages.push({\n        title: '',\n        description: this.commentsNotEnteredErrorMessage,\n        fieldId: CaseFlagFormFields.COMMENTS\n      });\n    }\n\n    if (comment && comment.length > this.textMaxCharLimit) {\n      this.commentsCharLimitErrorMessage = UpdateFlagErrorMessage.FLAG_COMMENTS_CHAR_LIMIT_EXCEEDED;\n      this.errorMessages.push({\n        title: '',\n        description: UpdateFlagErrorMessage.FLAG_COMMENTS_CHAR_LIMIT_EXCEEDED,\n        fieldId: CaseFlagFormFields.COMMENTS\n      });\n    }\n\n    const statusReason = this.formGroup.get(CaseFlagFormFields.STATUS_CHANGE_REASON)?.value;\n    const flagStatusNotApprovedKey = Object.keys(CaseFlagStatus).find((key) => CaseFlagStatus[key] === CaseFlagStatus.NOT_APPROVED);\n    // Status reason is mandatory if flag status is \"Not approved\" or user is external\n    if (this.formGroup.get(CaseFlagFormFields.STATUS)?.value === flagStatusNotApprovedKey && !statusReason) {\n      this.statusReasonNotEnteredErrorMessage = UpdateFlagErrorMessage.STATUS_REASON_NOT_ENTERED;\n      this.errorMessages.push({\n        title: '',\n        description: UpdateFlagErrorMessage.STATUS_REASON_NOT_ENTERED,\n        fieldId: CaseFlagFormFields.STATUS_CHANGE_REASON\n      });\n    }\n\n    if (this.externalUserUpdate && !statusReason) {\n      this.statusReasonNotEnteredErrorMessage = UpdateFlagErrorMessage.STATUS_REASON_NOT_ENTERED_EXTERNAL;\n      this.errorMessages.push({\n        title: '',\n        description: UpdateFlagErrorMessage.STATUS_REASON_NOT_ENTERED_EXTERNAL,\n        fieldId: CaseFlagFormFields.STATUS_CHANGE_REASON\n      });\n    }\n\n    if (statusReason && statusReason.length > this.textMaxCharLimit) {\n      this.statusReasonCharLimitErrorMessage = UpdateFlagErrorMessage.STATUS_REASON_CHAR_LIMIT_EXCEEDED;\n      this.errorMessages.push({\n        title: '',\n        description: UpdateFlagErrorMessage.STATUS_REASON_CHAR_LIMIT_EXCEEDED,\n        fieldId: CaseFlagFormFields.STATUS_CHANGE_REASON\n      });\n    }\n  }\n\n  public next() {\n    this.onNext();\n\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n}\n","<ng-container [formGroup]=\"formGroup\">\n  <div class=\"govuk-character-count\" data-module=\"govuk-character-count\" data-maxlength=\"200\">\n    <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n      <h1 class=\"govuk-label-wrapper govuk-!-margin-bottom-6\">\n        <label class=\"govuk-label govuk-label--m\">\n          {{ updateFlagAddTranslationTitle | rpxTranslate}}\n        </label>\n      </h1>\n      <div id=\"add-translation-form-hint\" class=\"govuk-hint\">\n        {{ updateFlagAddTranslationStepEnum.HINT_TEXT | rpxTranslate}}\n      </div>\n\n      <div class=\"govuk-!-margin-bottom-4\">\n        <label [for]=\"caseFlagFormFields.OTHER_FLAG_DESCRIPTION\" class=\"govuk-label govuk-label--s\">{{'Other description' | rpxTranslate}}</label>\n        <div id=\"add-translation-other-flag-description-char-limit-error\" class=\"govuk-error-message\"\n              *ngIf=\"otherFlagDescriptionCharLimitErrorMessage\">\n          <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{otherFlagDescriptionCharLimitErrorMessage | rpxTranslate}}\n        </div>\n        <textarea\n          class=\"govuk-textarea\" rows=\"5\"\n          [id]=\"caseFlagFormFields.OTHER_FLAG_DESCRIPTION\"\n          [name]=\"caseFlagFormFields.OTHER_FLAG_DESCRIPTION\"\n          [formControlName]=\"caseFlagFormFields.OTHER_FLAG_DESCRIPTION\">\n        </textarea>\n        <div id=\"add-translation-other-flag-description-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n          {{updateFlagAddTranslationStepEnum.CHARACTER_LIMIT_INFO | rpxTranslate}}\n        </div>\n      </div>\n\n      <div class=\"govuk-!-margin-bottom-4\">\n        <label [for]=\"caseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH\" class=\"govuk-label govuk-label--s\">{{'Other description (Welsh)' | rpxTranslate}}</label>\n        <div id=\"add-translation-other-flag-description-welsh-char-limit-error\" class=\"govuk-error-message\"\n              *ngIf=\"otherFlagDescriptionWelshCharLimitErrorMessage\">\n          <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{otherFlagDescriptionWelshCharLimitErrorMessage | rpxTranslate}}\n        </div>\n        <textarea\n          class=\"govuk-textarea\" rows=\"5\"\n          [id]=\"caseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH\"\n          [name]=\"caseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH\"\n          [formControlName]=\"caseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH\">\n        </textarea>\n        <div id=\"add-translation-other-flag-description-welsh-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n          {{updateFlagAddTranslationStepEnum.CHARACTER_LIMIT_INFO | rpxTranslate}}\n        </div>\n      </div>\n\n      <div class=\"govuk-!-margin-bottom-4\">\n        <label [for]=\"caseFlagFormFields.COMMENTS\" class=\"govuk-label govuk-label--s\">{{'Flag comments' | rpxTranslate}}</label>\n        <div id=\"add-translation-flag-comments-char-limit-error\" class=\"govuk-error-message\"\n              *ngIf=\"flagCommentsCharLimitErrorMessage\">\n          <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagCommentsCharLimitErrorMessage | rpxTranslate}}\n        </div>\n        <textarea\n          class=\"govuk-textarea\" rows=\"5\"\n          [id]=\"caseFlagFormFields.COMMENTS\"\n          [name]=\"caseFlagFormFields.COMMENTS\"\n          [formControlName]=\"caseFlagFormFields.COMMENTS\">\n        </textarea>\n        <div id=\"add-translation-flag-comments-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n          {{updateFlagAddTranslationStepEnum.CHARACTER_LIMIT_INFO | rpxTranslate}}\n        </div>\n      </div>\n\n      <div class=\"govuk-!-margin-bottom-4\">\n        <label [for]=\"caseFlagFormFields.COMMENTS_WELSH\" class=\"govuk-label govuk-label--s\">{{'Flag comments (Welsh)' | rpxTranslate}}</label>\n        <div id=\"add-translation-flag-comments-welsh-char-limit-error\" class=\"govuk-error-message\"\n              *ngIf=\"flagCommentsWelshCharLimitErrorMessage\">\n          <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{flagCommentsWelshCharLimitErrorMessage | rpxTranslate}}\n        </div>\n        <textarea\n          class=\"govuk-textarea\" rows=\"5\"\n          [id]=\"caseFlagFormFields.COMMENTS_WELSH\"\n          [name]=\"caseFlagFormFields.COMMENTS_WELSH\"\n          [formControlName]=\"caseFlagFormFields.COMMENTS_WELSH\">\n        </textarea>\n        <div id=\"add-translation-flag-comments-welsh-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n          {{updateFlagAddTranslationStepEnum.CHARACTER_LIMIT_INFO | rpxTranslate}}\n        </div>\n      </div>\n    </div>\n  </div>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ErrorMessage, Journey } from '../../../../../../domain';\nimport { CaseFlagState, FlagDetailDisplayWithFormGroupPath } from '../../../domain';\nimport {\n  CaseFlagFieldState,\n  CaseFlagFormFields,\n  CaseFlagWizardStepTitle,\n  UpdateFlagAddTranslationErrorMessage,\n  UpdateFlagAddTranslationStep\n} from '../../../enums';\nimport { AbstractJourneyComponent } from '../../../../base-field';\n\n@Component({\n  selector: 'ccd-update-flag-add-translation-form',\n  templateUrl: './update-flag-add-translation-form.component.html',\n  standalone: false\n})\nexport class UpdateFlagAddTranslationFormComponent extends AbstractJourneyComponent implements OnInit, Journey {\n  @Input() public formGroup: FormGroup;\n\n  @Output() public caseFlagStateEmitter: EventEmitter<CaseFlagState> = new EventEmitter<CaseFlagState>();\n\n  public selectedFlag: FlagDetailDisplayWithFormGroupPath;\n  public updateFlagAddTranslationTitle: CaseFlagWizardStepTitle;\n  public errorMessages: ErrorMessage[] = [];\n  public otherFlagDescriptionCharLimitErrorMessage: UpdateFlagAddTranslationErrorMessage = null;\n  public otherFlagDescriptionWelshCharLimitErrorMessage: UpdateFlagAddTranslationErrorMessage = null;\n  public flagCommentsCharLimitErrorMessage: UpdateFlagAddTranslationErrorMessage = null;\n  public flagCommentsWelshCharLimitErrorMessage: UpdateFlagAddTranslationErrorMessage = null;\n  public updateFlagAddTranslationStepEnum = UpdateFlagAddTranslationStep;\n  public readonly caseFlagFormFields = CaseFlagFormFields;\n  private readonly textMaxCharLimit = 200;\n  private readonly selectedManageCaseLocation = 'selectedManageCaseLocation';\n\n  public ngOnInit(): void {\n    this.updateFlagAddTranslationTitle = CaseFlagWizardStepTitle.UPDATE_FLAG_ADD_TRANSLATION;\n    this.selectedFlag = this.formGroup.get(this.selectedManageCaseLocation).value as FlagDetailDisplayWithFormGroupPath;\n    this.multipageComponentStateService.getJourneyCollectionMainObject().journeyEndPageNumber++;\n    const flagDetail = this.selectedFlag?.flagDetailDisplay?.flagDetail;\n    this.formGroup.addControl(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION, new FormControl(flagDetail?.otherDescription));\n    this.formGroup.addControl(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH, new FormControl(flagDetail?.otherDescription_cy));\n    this.formGroup.addControl(CaseFlagFormFields.COMMENTS, new FormControl(flagDetail?.flagComment));\n    this.formGroup.addControl(CaseFlagFormFields.COMMENTS_WELSH, new FormControl(flagDetail?.flagComment_cy));\n  }\n\n  public ngOnDestroy(): void {\n    this.multipageComponentStateService.getJourneyCollectionMainObject().journeyEndPageNumber--;\n  }\n\n  public onNext(): void {\n    // Validate translation entries\n    this.validateTextEntry();\n\n    // Return case flag field state, error messages, and selected flag detail to the parent. The selected flag must be\n    // re-emitted because the parent component repopulates this on handling this EventEmitter\n    this.caseFlagStateEmitter.emit({\n      currentCaseFlagFieldState: CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION,\n      errorMessages: this.errorMessages,\n      selectedFlag: this.selectedFlag,\n    });\n\n    window.scrollTo(0, 0);\n  }\n\n  private validateTextEntry(): void {\n    this.otherFlagDescriptionCharLimitErrorMessage = null;\n    this.otherFlagDescriptionWelshCharLimitErrorMessage = null;\n    this.flagCommentsCharLimitErrorMessage = null;\n    this.flagCommentsWelshCharLimitErrorMessage = null;\n    this.errorMessages = [];\n\n    if (this.formGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION)?.value?.length > this.textMaxCharLimit) {\n      this.otherFlagDescriptionCharLimitErrorMessage = UpdateFlagAddTranslationErrorMessage.DESCRIPTION_CHAR_LIMIT_EXCEEDED;\n      this.errorMessages.push({\n        title: '',\n        description: UpdateFlagAddTranslationErrorMessage.DESCRIPTION_CHAR_LIMIT_EXCEEDED,\n        fieldId: CaseFlagFormFields.OTHER_FLAG_DESCRIPTION\n      });\n    }\n\n    if (this.formGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH)?.value?.length > this.textMaxCharLimit) {\n      this.otherFlagDescriptionWelshCharLimitErrorMessage = UpdateFlagAddTranslationErrorMessage.DESCRIPTION_CHAR_LIMIT_EXCEEDED;\n      this.errorMessages.push({\n        title: '',\n        description: UpdateFlagAddTranslationErrorMessage.DESCRIPTION_CHAR_LIMIT_EXCEEDED,\n        fieldId: CaseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH\n      });\n    }\n\n    if (this.formGroup.get(CaseFlagFormFields.COMMENTS)?.value?.length > this.textMaxCharLimit) {\n      this.flagCommentsCharLimitErrorMessage = UpdateFlagAddTranslationErrorMessage.COMMENTS_CHAR_LIMIT_EXCEEDED;\n      this.errorMessages.push({\n        title: '',\n        description: UpdateFlagAddTranslationErrorMessage.COMMENTS_CHAR_LIMIT_EXCEEDED,\n        fieldId: CaseFlagFormFields.COMMENTS\n      });\n    }\n\n    if (this.formGroup.get(CaseFlagFormFields.COMMENTS_WELSH)?.value?.length > this.textMaxCharLimit) {\n      this.flagCommentsWelshCharLimitErrorMessage = UpdateFlagAddTranslationErrorMessage.COMMENTS_CHAR_LIMIT_EXCEEDED;\n      this.errorMessages.push({\n        title: '',\n        description: UpdateFlagAddTranslationErrorMessage.COMMENTS_CHAR_LIMIT_EXCEEDED,\n        fieldId: CaseFlagFormFields.COMMENTS_WELSH\n      });\n    }\n  }\n\n  public next() {\n    this.onNext();\n\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n}\n","<ng-container [formGroup]=\"formGroup\">\n  <div class=\"govuk-character-count\" data-module=\"govuk-character-count\" data-maxlength=\"200\">\n    <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n      <fieldset class=\"govuk-fieldset\" aria-describedby=\"confirm-flag-status-heading\">\n        <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n          <h1 id=\"confirm-flag-status-heading\" class=\"govuk-fieldset__heading\">\n            {{confirmFlagStatusTitle | rpxTranslate}}\n          </h1>\n        </legend>\n        <div class=\"govuk-radios govuk-radios--conditional govuk-!-margin-bottom-4\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n          <div class=\"govuk-radios__item\" *ngFor=\"let status of flagCreationStatuses; index as i\">\n            <input class=\"govuk-radios__input\" id=\"flag-status-{{i}}\" [name]=\"selectedStatusControlName\"\n              type=\"radio\" [value]=\"status\" [formControlName]=\"selectedStatusControlName\"/>\n            <label class=\"govuk-label govuk-radios__label\" for=\"flag-status-{{i}}\">\n              {{caseFlagStatusEnum[status] | rpxTranslate}}\n            </label>\n          </div>\n        </div>\n      </fieldset>\n      <div id=\"status-reason-hint\" class=\"govuk-hint\">\n        {{statusReasonHint | rpxTranslate}}\n      </div>\n      <div id=\"status-reason-not-entered-error-message\" class=\"govuk-error-message\"\n        *ngIf=\"statusReasonNotEnteredErrorMessage\">\n        <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{statusReasonNotEnteredErrorMessage | rpxTranslate}}\n      </div>\n      <div id=\"status-reason-char-limit-error\" class=\"govuk-error-message\"\n        *ngIf=\"statusReasonCharLimitErrorMessage\">\n        <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{statusReasonCharLimitErrorMessage | rpxTranslate}}\n      </div>\n      <textarea class=\"govuk-textarea\" [id]=\"statusReasonControlName\"\n        [name]=\"statusReasonControlName\" [formControlName]=\"statusReasonControlName\" rows=\"5\"\n        aria-describedby=\"status-reason-hint status-reason-char-limit-info\"></textarea>\n      <div id=\"status-reason-char-limit-info\" class=\"govuk-hint govuk-character-count__message\" aria-live=\"polite\">\n        {{statusReasonCharLimitInfo | rpxTranslate}}\n      </div>\n    </div>\n  </div>\n</ng-container>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ErrorMessage, Journey } from '../../../../../domain';\nimport { CaseFlagState } from '../../domain';\nimport {\n  CaseFlagFieldState,\n  CaseFlagStatus,\n  CaseFlagWizardStepTitle,\n  ConfirmStatusErrorMessage,\n  ConfirmStatusStep\n} from '../../enums';\nimport { AbstractJourneyComponent } from '../../../base-field';\n\n@Component({\n  selector: 'ccd-confirm-flag-status',\n  templateUrl: './confirm-flag-status.component.html',\n  standalone: false\n})\nexport class ConfirmFlagStatusComponent extends AbstractJourneyComponent implements OnInit, Journey {\n\n  @Input() public formGroup: FormGroup;\n  @Input() public defaultStatus: string;\n\n  @Output() public caseFlagStateEmitter: EventEmitter<CaseFlagState> = new EventEmitter<CaseFlagState>();\n\n  public confirmFlagStatusTitle: CaseFlagWizardStepTitle;\n  public caseFlagStatusEnum = CaseFlagStatus;\n  public flagCreationStatuses: string[];\n  public errorMessages: ErrorMessage[] = [];\n  public statusReasonNotEnteredErrorMessage: ConfirmStatusErrorMessage = null;\n  public statusReasonCharLimitErrorMessage: ConfirmStatusErrorMessage = null;\n  public statusReasonHint: ConfirmStatusStep;\n  public statusReasonCharLimitInfo: ConfirmStatusStep;\n  public readonly selectedStatusControlName = 'selectedStatus';\n  public readonly statusReasonControlName = 'statusReason';\n  private readonly reasonMaxCharLimit = 200;\n\n  public ngOnInit(): void {\n    this.confirmFlagStatusTitle = CaseFlagWizardStepTitle.CONFIRM_FLAG_STATUS;\n    this.flagCreationStatuses = Object.keys(CaseFlagStatus).filter(key => !['INACTIVE'].includes(key));\n    this.statusReasonHint = ConfirmStatusStep.HINT_TEXT;\n    this.statusReasonCharLimitInfo = ConfirmStatusStep.CHARACTER_LIMIT_INFO;\n    this.formGroup.addControl(this.selectedStatusControlName, new FormControl(this.flagCreationStatuses.find(\n      key => CaseFlagStatus[key] === this.defaultStatus)));\n    this.formGroup.addControl(this.statusReasonControlName, new FormControl(''));\n    if (this.multipageComponentStateService.getJourneyCollectionMainObject().journeyPageNumber === CaseFlagFieldState.FLAG_STATUS) {\n      this.multipageComponentStateService.getJourneyCollectionMainObject().journeyPageNumber = CaseFlagFieldState.FLAG_COMMENTS;\n    }\n  }\n\n  public onNext(): void {\n    // Validate status reason entry\n    this.validateTextEntry();\n    // Return case flag field state and error messages to the parent\n    this.caseFlagStateEmitter.emit({ currentCaseFlagFieldState: CaseFlagFieldState.FLAG_STATUS, errorMessages: this.errorMessages });\n  }\n\n  public next() {\n    this.onNext();\n\n    if (this.errorMessages.length === 0) {\n      super.next();\n    }\n  }\n\n  private validateTextEntry(): void {\n    this.statusReasonNotEnteredErrorMessage = null;\n    this.statusReasonCharLimitErrorMessage = null;\n    this.errorMessages = [];\n    if (this.formGroup.get(this.selectedStatusControlName).value === 'NOT_APPROVED' &&\n      !this.formGroup.get(this.statusReasonControlName).value) {\n      this.statusReasonNotEnteredErrorMessage = ConfirmStatusErrorMessage.STATUS_REASON_NOT_ENTERED;\n      this.errorMessages.push({\n        title: '',\n        description: ConfirmStatusErrorMessage.STATUS_REASON_NOT_ENTERED,\n        fieldId: this.statusReasonControlName\n      });\n    }\n    if (this.formGroup.get(this.statusReasonControlName).value &&\n      this.formGroup.get(this.statusReasonControlName).value.length > this.reasonMaxCharLimit) {\n      this.statusReasonCharLimitErrorMessage = ConfirmStatusErrorMessage.STATUS_REASON_CHAR_LIMIT_EXCEEDED;\n      this.errorMessages.push({\n        title: '',\n        description: ConfirmStatusErrorMessage.STATUS_REASON_CHAR_LIMIT_EXCEEDED,\n        fieldId: this.statusReasonControlName\n      });\n    }\n  }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { Observable, Subscribable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { FlagType } from '../../../../domain/case-flag';\nimport { FlagDetail } from '../domain';\n\n@Pipe({\n  name: 'flagFieldDisplay',\n  pure: false,\n  standalone: false\n})\nexport class FlagFieldDisplayPipe extends AsyncPipe implements PipeTransform {\n  private languageObservables = new Map<string, Observable<string>>();\n\n  constructor(\n    private readonly translationService: RpxTranslationService,\n    private readonly ref: ChangeDetectorRef\n  ) {\n    super(ref);\n  }\n\n  public transform<T>(obj: null|undefined): null;\n  public transform<T>(obj: Observable<T>|Subscribable<T>|Promise<T>|null|undefined): T|null;\n  public transform<T = FlagType | FlagDetail>(value: T, fieldName: string): string|null;\n  public transform<T = FlagType | FlagDetail>(value: T, fieldName: string = ''): string|null {\n    if (typeof value === 'object' && value.hasOwnProperty(fieldName)) {\n      // Use a map from FlagType code + fieldName + fieldName_cy to an Observable returned by RpxTranslationService,\n      // to keep track of which Observables exist already. This is to avoid problems with the async pipe, caused by a\n      // new Observable being created by the pipe() operator every time it is called for the same fieldName\n      const languageObservableKey = `${value['flagCode']}_${value[fieldName]}_${value[`${fieldName}_cy`]}`;\n      if (!this.languageObservables.has(languageObservableKey)) {\n        const o: Observable<string> = this.translationService.language$.pipe(\n          map((lang) => lang === 'cy'\n            ? value[`${fieldName}_cy`] || value[fieldName]\n            : value[fieldName] || value[`${fieldName}_cy`]\n          )\n        );\n        this.languageObservables.set(languageObservableKey, o);\n        return super.transform<string>(o);\n      }\n      return super.transform<string>(this.languageObservables.get(languageObservableKey));\n    }\n    return null;\n  }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { Observable, Subscribable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Language } from '../domain';\n\n@Pipe({\n  name: 'languageInterpreterDisplay',\n  pure: false,\n  standalone: false\n})\nexport class LanguageInterpreterDisplayPipe extends AsyncPipe implements PipeTransform {\n  private languageObservables = new Map<string, Observable<string>>();\n\n  constructor(\n    private readonly translationService: RpxTranslationService,\n    private readonly ref: ChangeDetectorRef\n  ) {\n    super(ref);\n  }\n\n  public transform<T>(obj: null|undefined): null;\n  public transform<T>(obj: Observable<T>|Subscribable<T>|Promise<T>|null|undefined): T|null;\n  public transform<T = Language>(value: T): string|null;\n  public transform<T = Language>(value: T): string|null {\n    if (typeof value === 'object') {\n      // Use a map from Language key to an Observable returned by RpxTranslationService, to keep track of which\n      // Observables exist already. This is to avoid problems with the async pipe, caused by a new Observable being\n      // created by the pipe() operator every time it is called for the same fieldName\n      const languageObservableKey = `${value['key']}`;\n      if (!this.languageObservables.has(languageObservableKey)) {\n        const o: Observable<string> = this.translationService.language$.pipe(\n          map((lang) => lang === 'cy'\n            ? value['value_cy'] || value['value']\n            : value['value'] || value['value_cy']\n          )\n        );\n        this.languageObservables.set(languageObservableKey, o);\n        return super.transform<string>(o);\n      }\n      return super.transform<string>(this.languageObservables.get(languageObservableKey));\n    }\n    return null;\n  }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { Observable, Subscribable, combineLatest, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { FlagDetail, FlagDetailDisplayWithFormGroupPath } from '../domain';\n\n@Pipe({\n  name: 'manageCaseFlagsLabelDisplay',\n  pure: false,\n  standalone: false\n})\nexport class ManageCaseFlagsLabelDisplayPipe extends AsyncPipe implements PipeTransform {\n  private static readonly CASE_LEVEL_CASE_FLAGS_FIELD_ID = 'caseFlags';\n  private languageObservables = new Map<string, Observable<string>>();\n\n  constructor(\n    private readonly translationService: RpxTranslationService,\n    private readonly ref: ChangeDetectorRef\n  ) {\n    super(ref);\n  }\n\n  public transform<T>(obj: null|undefined): null;\n  public transform<T>(obj: Observable<T>|Subscribable<T>|Promise<T>|null|undefined): T|null;\n  public transform<T = FlagDetailDisplayWithFormGroupPath>(value: T): string|null;\n  public transform<T = FlagDetailDisplayWithFormGroupPath>(value: T): string|null {\n    if (typeof value === 'object') {\n      // Use a map from FlagType code + name + name_cy to an Observable returned by RpxTranslationService, to keep\n      // track of which Observables exist already. This is to avoid problems with the async pipe, caused by a new\n      // Observable being created by the pipe() operator every time it is called for the same fieldName\n      const flagDetail = (value as unknown as FlagDetailDisplayWithFormGroupPath).flagDetailDisplay.flagDetail;\n      const languageObservableKey = `${flagDetail.flagCode}_${flagDetail.name}_${flagDetail.name_cy}`;\n      if (!this.languageObservables.has(languageObservableKey)) {\n        const partyName$: Observable<string> = this.getPartyName(value as unknown as FlagDetailDisplayWithFormGroupPath);\n        const o$: Observable<string> = this.translationService.language$.pipe(\n          map((_) => {\n            const flagName = this.getFlagName(flagDetail);\n            const flagDescription = this.getFlagDescription(flagDetail);\n            const flagComment = this.getFlagComments(flagDetail);\n            return flagName === flagDescription\n              ? `<span class=\"flag-name-and-description\">${flagDescription}</span>${flagComment}`\n              : `<span class=\"flag-name-and-description\">${flagName}, ${flagDescription}</span>${flagComment}`;\n          })\n        );\n        const combined = combineLatest([partyName$, o$]).pipe(\n          map(([partyName, o]) => {\n            const roleOnCase = this.getRoleOnCase(value as unknown as FlagDetailDisplayWithFormGroupPath);\n            return `${partyName}${roleOnCase} - ${o}`;\n          })\n        );\n        this.languageObservables.set(languageObservableKey, combined);\n        return super.transform<string>(combined);\n      }\n      return super.transform<string>(this.languageObservables.get(languageObservableKey));\n    }\n    return null;\n  }\n\n  public getPartyName(flagDisplay: FlagDetailDisplayWithFormGroupPath): Observable<string> {\n    if (flagDisplay.pathToFlagsFormGroup && flagDisplay.pathToFlagsFormGroup === ManageCaseFlagsLabelDisplayPipe.CASE_LEVEL_CASE_FLAGS_FIELD_ID) {\n      return this.translationService.language === 'cy'\n        ? this.translationService.getTranslation$('Case level')\n        : of('Case level');\n    }\n    if (flagDisplay.flagDetailDisplay.partyName) {\n      return of(`${flagDisplay.flagDetailDisplay.partyName}`);\n    }\n    return of('');\n  }\n\n  public getRoleOnCase(flagDisplay: FlagDetailDisplayWithFormGroupPath): string {\n    if (flagDisplay && flagDisplay.roleOnCase) {\n      return ` (${flagDisplay.roleOnCase})`;\n    }\n    return '';\n  }\n\n  public getFlagName(flagDetail: FlagDetail): string {\n    if (flagDetail && flagDetail.path && flagDetail.path.length > 1) {\n      // Currently, flag path values are stored in English only\n      return flagDetail.path[1].value;\n    }\n    return this.getNonFlagPathName(flagDetail);\n  }\n\n  public getFlagDescription(flagDetail: FlagDetail): string {\n    /* istanbul ignore else */\n    if (flagDetail && flagDetail.name) {\n      /* istanbul ignore else */\n      if (flagDetail.name === 'Other' && flagDetail.otherDescription ||\n        flagDetail.name_cy === 'Arall' && flagDetail.otherDescription_cy) {\n        return this.translationService.language === 'cy'\n          ? flagDetail.otherDescription_cy || flagDetail.otherDescription\n          : flagDetail.otherDescription || flagDetail.otherDescription_cy;\n      }\n      return this.getNonFlagPathName(flagDetail);\n    }\n    return '';\n  }\n\n  public getFlagComments(flagDetail: FlagDetail): string {\n    if (flagDetail.flagComment || flagDetail.flagComment_cy) {\n      return this.translationService.language === 'cy'\n        ? ` (${flagDetail.flagComment_cy || flagDetail.flagComment})`\n        : ` (${flagDetail.flagComment || flagDetail.flagComment_cy})`;\n    }\n    return '';\n  }\n\n  private getNonFlagPathName(flagDetail: FlagDetail): string {\n    return flagDetail.subTypeValue || flagDetail.subTypeValue_cy\n      ? this.translationService.language === 'cy'\n        ? `${flagDetail.name_cy || flagDetail.name}, ${flagDetail.subTypeValue_cy || flagDetail.subTypeValue}`\n        : `${flagDetail.name || flagDetail.name_cy}, ${flagDetail.subTypeValue || flagDetail.subTypeValue_cy}`\n      : this.translationService.language === 'cy'\n        ? flagDetail.name_cy || flagDetail.name\n        : flagDetail.name || flagDetail.name_cy;\n  }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectorRef, Pipe, PipeTransform } from '@angular/core';\nimport { RpxTranslationService } from 'rpx-xui-translation';\nimport { Observable, Subscribable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { FlagDetail } from '../domain';\n\n@Pipe({\n  name: 'updateFlagTitleDisplay',\n  pure: false,\n  standalone: false\n})\nexport class UpdateFlagTitleDisplayPipe extends AsyncPipe implements PipeTransform {\n  private languageObservables = new Map<string, Observable<string>>();\n\n  constructor(\n    private readonly translationService: RpxTranslationService,\n    private readonly ref: ChangeDetectorRef\n  ) {\n    super(ref);\n  }\n\n  public transform<T>(obj: null|undefined): null;\n  public transform<T>(obj: Observable<T>|Subscribable<T>|Promise<T>|null|undefined): T|null;\n  public transform<T = FlagDetail>(value: T): string|null;\n  public transform<T = FlagDetail>(value: T): string|null {\n    if (typeof value === 'object') {\n      // Use a map from FlagType code + name + name_cy to an Observable returned by RpxTranslationService, to keep\n      // track of which Observables exist already. This is to avoid problems with the async pipe, caused by a new\n      // Observable being created by the pipe() operator every time it is called for the same fieldName\n      const languageObservableKey = `${value['flagCode']}_${value['name']}_${value['name_cy']}`;\n      if (!this.languageObservables.has(languageObservableKey)) {\n        const o: Observable<string> = this.translationService.language$.pipe(\n          map((_) => {\n            const flagName = this.getFlagName(value as unknown as FlagDetail);\n            const flagDescription = this.getFlagDescription(value as unknown as FlagDetail);\n            const flagComment = this.getFlagComments(value as unknown as FlagDetail);\n            return flagName === flagDescription\n              ? `${flagDescription}${flagComment}`\n              : `${flagName}, ${flagDescription}${flagComment}`;\n          })\n        );\n        this.languageObservables.set(languageObservableKey, o);\n        return super.transform<string>(o);\n      }\n      return super.transform<string>(this.languageObservables.get(languageObservableKey));\n    }\n    return null;\n  }\n\n  public getFlagName(flagDetail: FlagDetail): string {\n    return flagDetail.subTypeValue || flagDetail.subTypeValue_cy\n      ? this.translationService.language === 'cy'\n        ? `${flagDetail.name_cy || flagDetail.name}, ${flagDetail.subTypeValue_cy || flagDetail.subTypeValue}`\n        : `${flagDetail.name || flagDetail.name_cy}, ${flagDetail.subTypeValue || flagDetail.subTypeValue_cy}`\n      : this.translationService.language === 'cy'\n        ? flagDetail.name_cy || flagDetail.name\n        : flagDetail.name || flagDetail.name_cy;\n  }\n\n  public getFlagDescription(flagDetail: FlagDetail): string {\n    /* istanbul ignore else */\n    if (flagDetail && flagDetail.name) {\n      /* istanbul ignore else */\n      if (flagDetail.name === 'Other' && flagDetail.otherDescription ||\n        flagDetail.name_cy === 'Arall' && flagDetail.otherDescription_cy) {\n        return this.translationService.language === 'cy'\n          ? flagDetail.otherDescription_cy || flagDetail.otherDescription\n          : flagDetail.otherDescription || flagDetail.otherDescription_cy;\n      }\n      return this.getFlagName(flagDetail);\n    }\n    return '';\n  }\n\n  public getFlagComments(flagDetail: FlagDetail): string {\n    if (flagDetail.flagComment || flagDetail.flagComment_cy) {\n      return this.translationService.language === 'cy'\n        ? ` - ${flagDetail.flagComment_cy || flagDetail.flagComment}`\n        : ` - ${flagDetail.flagComment || flagDetail.flagComment_cy}`;\n    }\n    return '';\n  }\n}\n","<dl class=\"complex-raw\">\n  <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :id()\">\n    <dt [hidden]=\"field.hidden || field.field_type.type === 'Label'\"><span class=\"text-16\">{{isTranslatable(field) ? (field.label | rpxTranslate) : field.label}}</span></dt>\n    <dd [hidden]=\"field.hidden\">\n      <ccd-field-read [caseField]=\"field\" [context]=\"context\" [caseFields]=\"caseFields\" [topLevelFormGroup]=\"topLevelFormGroup\" [idPrefix]=\"idPrefix\"></ccd-field-read>\n    </dd>\n  </ng-container>\n</dl>\n","import { Component, Input } from '@angular/core';\nimport { CaseField } from '../../../domain';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n/**\n * Display a complex type fields as a list of values without labels.\n * This is intended for rendering of Check Your Answer page.\n */\n@Component({\n  selector: 'ccd-read-complex-field-raw',\n  templateUrl: './read-complex-field-raw.html',\n  styleUrls: [\n    './read-complex-field-raw.scss'\n  ],\n  standalone: false\n})\nexport class ReadComplexFieldRawComponent extends AbstractFieldReadComponent {\n  @Input()\n  public caseFields: CaseField[] = [];\n}\n","<div class=\"complex-panel\">\n  <dl class=\"complex-panel-title\"><dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt><dd></dd></dl>\n  <table class=\"complex-panel-table\" aria-describedby=\"complex field table\">\n    <tbody>\n      <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :path :idPrefix\">\n        <ng-container *ngIf=\"(field | ccdIsCompound); else SimpleRow\">\n          <tr class=\"complex-panel-compound-field\" [hidden]=\"field.hidden\">\n            <td colspan=\"2\">\n              <span class=\"text-16\">\n                <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n                  [caseField]=\"field\" [context]=\"context\"></ccd-field-read>\n              </span>\n            </td>\n          </tr>\n        </ng-container>\n        <ng-template #SimpleRow>\n          <tr class=\"complex-panel-simple-field\" [hidden]=\"field.hidden\">\n            <th id=\"complex-panel-simple-field-label\"><span class=\"text-16\">{{field.label | rpxTranslate}}</span></th>\n            <td>\n                <span class=\"text-16\">\n                  <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n                    [caseField]=\"field\" [context]=\"context\"></ccd-field-read>\n                </span>\n            </td>\n          </tr>\n        </ng-template>\n      </ng-container>\n    </tbody>\n  </table>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CaseField } from '../../../domain/definition';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-complex-field-table',\n  templateUrl: './read-complex-field-table.html',\n  styleUrls: ['./read-complex-field-table.scss'],\n  standalone: false\n})\nexport class ReadComplexFieldTableComponent extends AbstractFieldReadComponent implements OnInit {\n  // parent_ can be replaced with any ***_ - underscore is only important character\n  // value can also be replaced with anything\n  public static readonly DUMMY_STRING_PRE = 'parent_';\n  public static readonly DUMMY_STRING_POST = 'value';\n\n  @Input()\n  public caseFields: CaseField[] = [];\n\n  public path: string;\n\n  public ngOnInit(): void {\n    this.setDummyPathForChildArrays();\n  }\n\n  /* In order to get child arrays (within casefield) to display their logic\n    we need to add a path. This path needs to include the idPrefix as that\n    is the part of the path that is used to display the elements.\n    The joining strings will allow us to use the existing show condition to\n    match against this path. */\n  private setDummyPathForChildArrays(): void {\n    this.path = ReadComplexFieldTableComponent.DUMMY_STRING_PRE + this.idPrefix + ReadComplexFieldTableComponent.DUMMY_STRING_POST;\n  }\n}\n","<div class=\"complex-panel\" [hidden]=\"caseField.hidden\">\n  <dl class=\"complex-panel-title\">\n    <dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt>\n    <dd></dd>\n  </dl>\n  <table class=\"complex-panel-table\" aria-describedby=\"complex panel table\">\n    <tbody>\n    <!-- <COMPLEX table field header>-->\n    <tr>\n      <th *ngFor=\"let heading of columns\" scope=\"col\">\n        <span class=\"text-16\">{{columnsAllLabels[heading].label | rpxTranslate}}</span>\n        <a href=\"#\"\n           (click)=\"sortRowsByColumns(heading); $event.preventDefault()\"\n           (keyup.enter)=\"sortRowsByColumns(heading)\"\n           class=\"sort-widget\"\n           [attr.aria-label]=\"'Sort ' + columnsAllLabels[heading].label | rpxTranslate\"\n           [innerHTML]=\"sortWidget(columnsAllLabels[heading])\"></a>\n      </th>\n      <th></th>\n    </tr>\n    <!-- </COMPLEX table field header>-->\n    <ng-container *ngFor=\"let item of rows; let i = index;\">\n      <!-- <COMPLEX table collapsed view>-->\n      <tr class=\"new-table-row accordion-heading\" (keyup)=\"$event.key === 'Enter' ? (isHidden[i] = !isHidden[i]) : null\" (click)=\"isHidden[i] = !isHidden[i]\"\n          [class.last-accordion]=\"isHidden[i]\">\n        <ng-container *ngFor=\"let heading of columns\">\n          <td class=\"text-16\">\n            <div *ngIf=\"item[heading]; else showEmptyTd\">\n              <ccd-field-read\n                [caseField]=\"toCaseField(heading, item[heading].label, columnsHorizontalLabel[heading].type, item[heading])\"\n                [context]=\"context\"></ccd-field-read>\n            </div>\n            <ng-template #showEmptyTd>\n              <div>&nbsp;</div>\n            </ng-template>\n          </td>\n        </ng-container>\n        <td>\n          <div style=\"float: right;\">\n            <a href=\"#\" (click)=\"$event.preventDefault()\"> <img src=\"{{ getImage(i) }}\" alt=\"accordion-img\" class=\"accordion-image\"/></a>\n          </div>\n        </td>\n      </tr>\n      <!-- </COMPLEX table collapsed view>-->\n      <!-- <COMPLEX table expanded view>-->\n      <tr [hidden]=\"isHidden[i]\">\n        <td [colSpan]=\"columns.length + 1\">\n          <table class=\"complex-panel-table\" aria-describedby=\"complex panel table expanded\">\n            <tbody>\n            <ng-container\n              *ngFor=\"let vLabel of columnsVerticalLabel | keyvalue: keepOriginalOrder | ccdCollectionTableCaseFieldsFilter: caseField: rows[i] | ccdReadFieldsFilter:true :undefined :true\">\n              <!-- <COMPLEX table expandable body simple field>-->\n              <tr class=\"complex-panel-simple-field accordion-body\" *ngIf=\"item[vLabel.id]\" [hidden]=\"vLabel.hidden\">\n                <th scope=\"col\"><span class=\"text-16\">{{ vLabel.label | rpxTranslate }}</span></th>\n                <td *ngIf=\"vLabel['type'] !== 'Complex'\" class=\"text-16\">\n                  <ccd-field-read [caseField]=\"toCaseField('', vLabel.label, vLabel.field_type, item[vLabel.id])\"\n                                  [context]=\"context\"></ccd-field-read>\n                </td>\n              </tr>\n              <!-- </COMPLEX table expandable body simple field>-->\n\n              <!-- <COMPLEX table expandable body complex field>-->\n              <tr *ngIf=\"vLabel['type'] === 'Complex' && addCaseFieldValue(vLabel, item[vLabel.id])\" [hidden]=\"vLabel.hidden\">\n                <td colspan=\"2\">\n                  <ng-container *ngFor=\"let caseField of vLabel | ccdReadFieldsFilter:true :undefined :true\">\n                      <tr class=\"complex-panel-compound-field\" *ngIf=\"(caseField | ccdIsCompound); else SimpleRow\" [hidden]=\"caseField\">\n                        <td colspan=\"2\">\n                          <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\"></ccd-field-read></span>\n                        </td>\n                      </tr>\n                      <ng-template #SimpleRow>\n                        <tr class=\"complex-panel-nested-field\" [hidden]=\"caseField.hidden\">\n                          <th scope=\"col\"><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></th>\n                          <td *ngIf=\"!item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n                            <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\"></ccd-field-read></span>\n                          </td>\n                          <td *ngIf=\"item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n                            <ccd-read-case-link-field [caseField]=\"addCaseReferenceValue(caseField, item[vLabel.id].CaseReference)\" [context]=\"context\"></ccd-read-case-link-field>\n                          </td>\n                        </tr>\n                      </ng-template>\n                  </ng-container>\n                </td>\n              </tr>\n              <!-- <COMPLEX table expandable body complex field>-->\n            </ng-container>\n            </tbody>\n          </table>\n        </td>\n      </tr>\n      <!-- </COMPLEX table expanded view>-->\n    </ng-container>\n    </tbody>\n  </table>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { SortOrder } from '../../../domain';\nimport { CaseField } from '../../../domain/definition';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-complex-field-collection-table',\n  templateUrl: './read-complex-field-collection-table.html',\n  styleUrls: ['./read-complex-field-collection-table.scss'],\n  standalone: false\n})\nexport class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadComponent implements OnInit {\n  public columns: string[];\n  public columnsVerticalLabel: any;\n  public columnsHorizontalLabel: any;\n  public columnsAllLabels: any;\n  public rows: any[] = [];\n  public isHidden: boolean[] = [];\n  private static isSortAscending(column: any): boolean {\n    return !(column.sortOrder === SortOrder.UNSORTED || column.sortOrder === SortOrder.DESCENDING);\n  }\n\n  public ngOnInit(): void {\n    super.ngOnInit();\n    if (this.caseField.display_context_parameter\n      && this.caseField.display_context_parameter.trim().startsWith('#TABLE(')) {\n\n      const displayContextParameter = this.caseField.display_context_parameter.trim();\n      const result: string = displayContextParameter.replace('#TABLE(', '');\n      this.columns = result.replace(')', '').split(',').map((c: string) => c.trim());\n\n      const labelsVertical: { [k: string]: any } = {};\n      const labelsHorizontal: { [k: string]: any } = {};\n      const allLabels: { [k: string]: any } = {};\n      this.populateCaseFieldValuesIntoRows();\n      this.populateLabels(labelsVertical, allLabels);\n      this.populateHorizontalLabels(labelsHorizontal, allLabels, labelsVertical);\n\n      this.columnsVerticalLabel = labelsVertical;\n      this.columnsHorizontalLabel = labelsHorizontal;\n      this.columnsAllLabels = allLabels;\n\n    }\n  }\n\n  public getImage(row): string {\n    if (this.isHidden[row]) {\n      return 'assets/img/accordion-plus.png';\n    } else {\n      if (this.isVerticleDataNotEmpty(row)) {\n        return 'assets/img/accordion-minus.png';\n      } else {\n        this.isHidden[row] = true;\n        return 'assets/img/accordion-plus.png';\n      }\n    }\n  }\n\n  /**\n   * Needs to be called before 'ccdFieldsFilter' pipe is used, as it needs a caseField value.\n   */\n  public addCaseFieldValue(field, value): boolean {\n    field.value = value;\n    return true;\n  }\n\n  public isNotBlank(value: string) {\n    return value !== null && value !== '';\n  }\n\n  public addCaseReferenceValue(field, value: any): any {\n    field.value = { CaseReference: value};\n    return field;\n  }\n\n  public toCaseField(id: string, label: string, fieldType: any, value: any): CaseField {\n    return plainToClassFromExist(new CaseField(), {\n      id,\n      label,\n      display_context: 'READONLY',\n      value,\n      field_type: fieldType\n    });\n  }\n\n  public keepOriginalOrder = (a, b) => a.key;\n\n  public sortRowsByColumns(column): void {\n    const shouldSortInAscendingOrder = this.columnsHorizontalLabel[column].sortOrder === SortOrder.UNSORTED\n      || this.columnsHorizontalLabel[column].sortOrder === SortOrder.DESCENDING;\n\n    // tslint:disable-next-line:switch-default\n    switch (this.columnsHorizontalLabel[column].type.type) {\n      case 'Number':\n      case 'MoneyGBP': {\n        if (shouldSortInAscendingOrder) {\n          this.rows.sort((a, b) => a[column] - b[column]);\n          this.columnsHorizontalLabel[column].sortOrder = SortOrder.ASCENDING;\n        } else {\n          this.rows.sort((a, b) => b[column] - a[column]);\n          this.columnsHorizontalLabel[column].sortOrder = SortOrder.DESCENDING;\n        }\n        break;\n      }\n      case 'Text':\n      case 'TextArea':\n      case 'Email':\n      case 'Date':\n      case 'DateTime':\n      case 'Label':\n      case 'Postcode':\n      case 'YesOrNo':\n      case 'PhoneUK':\n      case 'FixedList': {\n        if (shouldSortInAscendingOrder) {\n          this.rows.sort((a, b) => a[column] < b[column] ? -1 : a[column] > b[column] ? 1 : 0);\n          this.columnsHorizontalLabel[column].sortOrder = SortOrder.ASCENDING;\n        } else {\n          this.rows.sort((a, b) => a[column] < b[column] ? 1 : a[column] > b[column] ? -1 : 0);\n          this.columnsHorizontalLabel[column].sortOrder = SortOrder.DESCENDING;\n        }\n      }\n        break;\n    }\n  }\n\n  public sortWidget(column: any): string {\n    return ReadComplexFieldCollectionTableComponent.isSortAscending(column) ? '&#9660;' : '&#9650;';\n  }\n\n  private populateHorizontalLabels(labelsHorizontal: { [p: string]: any },\n                                   allLabels: { [p: string]: any },\n                                   labelsVertical: { [p: string]: any }): void {\n    for (const id of this.columns) {\n      const trimmedId = id.trim();\n      labelsHorizontal[trimmedId] = allLabels[trimmedId];\n      labelsHorizontal[trimmedId].sortOrder = SortOrder.UNSORTED;\n      delete labelsVertical[trimmedId];\n    }\n  }\n\n  private populateLabels(labelsVertical: { [p: string]: any }, allLabels: { [p: string]: any }): void {\n    for (const obj of this.caseField.field_type.complex_fields) {\n      if (obj.field_type.type === 'FixedList' ||\n        obj.field_type.type === 'MultiSelectList' ||\n        obj.field_type.type === 'FixedRadioList') {\n        labelsVertical[obj.id] = {label: obj.label, type: obj.field_type, caseField: obj};\n        allLabels[obj.id] = {label: obj.label, type: obj.field_type};\n      } else if (obj.isComplex()) {\n        labelsVertical[obj.id] = {label: obj.label, type: obj.field_type.type, caseField: obj};\n        allLabels[obj.id] = {label: obj.label, type: obj.field_type.type, caseField: obj};\n      } else {\n        labelsVertical[obj.id] = {label: obj.label, type: {type: obj.field_type.type}, caseField: obj};\n        allLabels[obj.id] = {label: obj.label, type: {type: obj.field_type.type}, caseField: obj};\n      }\n    }\n  }\n\n  private populateCaseFieldValuesIntoRows(): void {\n    for (const obj of this.caseField.value) {\n      this.rows.push(obj.value);\n      this.isHidden.push(true);\n    }\n  }\n\n  private isVerticleDataNotEmpty(row): boolean {\n    let result = false;\n    for (const key in this.columnsVerticalLabel) {\n      if (this.rows[row][key]) {\n        result = true;\n      }\n    }\n    return result;\n  }\n}\n","<div class=\"form-group bottom-30\" [id]=\"id()\" [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && (dateControl.dirty || dateControl.touched)}\">\n\n  <fieldset>\n    <legend>\n      <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n    </legend>\n    <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n    <span class=\"error-message\" *ngIf=\"dateControl && dateControl.errors && (dateControl.dirty || dateControl.touched)\">\n      {{(dateControl.errors | ccdFirstError:caseField.label)}}\n    </span>\n    <cut-date-input [id]=\"getId()\"\n                    [isDateTime]=\"isDateTime()\"\n                    [mandatory]=\"caseField | ccdIsMandatory\"\n                    [isInvalid]=\"dateControl.errors && (dateControl.dirty || dateControl.touched)\"\n                    [formControl]=\"dateControl\"></cut-date-input>\n\n  </fieldset>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';\n\n@Component({\n  selector: 'ccd-write-date-field',\n  templateUrl: './write-date-field.html',\n  standalone: false\n})\nexport class WriteDateFieldComponent extends AbstractFieldWriteComponent implements OnInit {\n\n  public dateControl: FormControl;\n\n  public ngOnInit() {\n    this.dateControl = this.registerControl(new FormControl(this.caseField.value)) as FormControl;\n  }\n\n  public isDateTime(): boolean {\n    return this.caseField.field_type.id === 'DateTime';\n  }\n\n  public getId() {\n    return this.caseField.getHierachicalId();\n  }\n}\n","import { NgxMatDateFormats } from '@angular-material-components/datetime-picker';\n\nexport const CUSTOM_MOMENT_FORMATS: NgxMatDateFormats = {\n  parse: {\n    dateInput: 'DD-MM-YYYY HH:mm:ss'\n  },\n  display: {\n    dateInput: 'DD-MM-YYYY HH:mm:ss',\n    monthYearLabel: 'MMMM YYYY',\n    dateA11yLabel: 'EEE/MMM/YYYY',\n    monthYearA11yLabel: 'MMMM YYYY',\n  },\n};\n","<div class=\"govuk-form-group  bottom-30\" [id]=\"caseField.id\"\n     [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && dateControl.dirty}\">\n  <fieldset>\n    <legend>\n      <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n      <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n      <span class=\"error-message\"\n            *ngIf=\"dateControl && dateControl.errors && dateControl.dirty && !(minError || maxError)\">{{(dateControl.errors | ccdFirstError:caseField.label)}}</span>\n            <span class=\"error-message\"\n            *ngIf=\"dateControl && dateControl.dirty && minError\">{{'This date is older than the minimum date allowed' | rpxTranslate}}</span>\n            <span class=\"error-message\"\n            *ngIf=\"dateControl && dateControl.dirty && maxError\">{{'This date is later than the maximum date allowed' | rpxTranslate}}</span>\n    </legend>\n    <div class=\"datepicker-container\">\n      <input class=\"govuk-input\"\n             #input\n             attr.aria-label=\"Please enter a date and time in the format | rpxTranslate {{dateTimeEntryFormat}}\"\n             [min]=\"minDate(caseField)\"\n             [max]=\"maxDate(caseField)\"\n             [formControl]=\"dateControl\"\n             [ngxMatDatetimePicker]=\"picker\"\n             (focusin)=\"focusIn()\"\n             (focusout)=\"focusOut()\"\n             (dateChange)=\"valueChanged()\"\n             ng-model-options=\"{timezone:'utc'}\"\n      >\n      <mat-datepicker-toggle matSuffix [for]=\"picker\" id=\"pickerOpener\"></mat-datepicker-toggle>\n      <ngx-mat-datetime-picker #picker\n                               [color]=\"color\"\n                               [touchUi]=\"touchUi\"\n                               [hideTime]=\"hideTime\"\n                               [startView]=\"startView\"\n                               [stepHour]=\"stepHour\"\n                               [stepSecond]=\"stepSecond\"\n                               [stepMinute]=\"stepMinute\"\n                               [showSeconds]=\"showSeconds\"\n                               [showSpinners]=\"showSpinners\"\n                               [disableMinute]=\"disableMinute\"\n                               [enableMeridian]=\"enableMeridian\"\n                               (yearSelected)=\"yearSelected($event)\"\n                               (monthSelected)=\"monthSelected($event)\"\n                               (opened)=\"toggleClick()\"\n      >\n        <ngx-mat-datepicker-actions>\n          <button mat-raised-button color=\"primary\" ngxMatDatepickerApply>Confirm</button>\n        </ngx-mat-datepicker-actions>\n      </ngx-mat-datetime-picker>\n    </div>\n  </fieldset>\n</div>\n","import {\n  NgxMatDateAdapter,\n  NgxMatDateFormats,\n  NgxMatDatetimepicker,\n  NGX_MAT_DATE_FORMATS\n} from '@angular-material-components/datetime-picker';\nimport { NgxMatMomentAdapter, NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular-material-components/moment-adapter';\nimport { Component, ElementRef, Inject, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { MAT_LEGACY_DATE_LOCALE, LegacyThemePalette as ThemePalette } from '@angular/material/legacy-core';\nimport { Moment } from 'moment/moment';\n\nimport moment from 'moment';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { FormatTranslatorService } from '../../../services/case-fields/format-translator.service';\nimport { AbstractFormFieldComponent } from '../base-field/abstract-form-field.component';\nimport { CUSTOM_MOMENT_FORMATS } from './datetime-picker-utils';\n\n@Component({\n  selector: 'ccd-datetime-picker',\n  templateUrl: './datetime-picker.component.html',\n  styleUrls: ['./datetime-picker.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    { provide: NGX_MAT_DATE_FORMATS, useValue: CUSTOM_MOMENT_FORMATS },\n    {\n      provide: NgxMatDateAdapter,\n      useClass: NgxMatMomentAdapter,\n      deps: [MAT_LEGACY_DATE_LOCALE, NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS]\n    },\n    { provide: NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }\n  ],\n  standalone: false\n})\n\nexport class DatetimePickerComponent extends AbstractFormFieldComponent implements OnInit {\n\n  public showSpinners = true;\n  public showSeconds = false;\n  public touchUi = false;\n  public enableMeridian = false;\n  public stepHour = 1;\n  public stepMinute = 1;\n  public stepSecond = 1;\n  public color: ThemePalette = 'primary';\n  public disableMinute = true;\n  public hideTime = true;\n  public hideMinutes = true;\n  public startView = 'month';\n  public yearSelection = false;\n  public checkTime = true;\n  public stringEdited = false;\n  public minError = false;\n  public maxError = false;\n  public dateTimeEntryFormat: string;\n\n  @ViewChild('picker', { static: false }) public datetimePicker: NgxMatDatetimepicker<any>;\n  @ViewChild('input', { static: false }) public inputElement: ElementRef<HTMLInputElement>;\n\n  @Input() public dateControl: FormControl = new FormControl(new Date());\n\n  private minimumDate = new Date('01/01/1800');\n  private maximumDate = null;\n  private momentFormat = 'YYYY-MM-DDTHH:mm:ss.SSS';\n\n  constructor(private readonly formatTranslationService: FormatTranslatorService,\n    @Inject(NGX_MAT_DATE_FORMATS) private readonly ngxMatDateFormats: NgxMatDateFormats) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    this.dateTimeEntryFormat = this.formatTranslationService.showOnlyDates(this.caseField.dateTimeEntryFormat);\n    this.configureDatePicker(this.dateTimeEntryFormat);\n    // set date control based on mandatory field\n    this.dateControl = (this.caseField.isMandatory ?\n      this.registerControl(new FormControl(this.caseField.value || '', [Validators.required]))\n      : this.registerControl(new FormControl(this.caseField.value))) as FormControl;\n    // in resetting the format just after the page initialises, the input can be reformatted\n    // otherwise the last format given will be how the text shown will be displayed\n    setTimeout(() => {\n      this.setDateTimeFormat();\n      this.formatValueAndSetErrors();\n    }, 1000);\n    // when the status changes check that the maximum/minimum date has not been exceeded\n    this.dateControl.statusChanges.subscribe(() => {\n      this.minError = this.dateControl.hasError('matDatetimePickerMin');\n      this.maxError = this.dateControl.hasError('matDatetimePickerMax');\n    });\n  }\n\n  public setDateTimeFormat(): void {\n    this.ngxMatDateFormats.parse.dateInput = this.dateTimeEntryFormat;\n    this.ngxMatDateFormats.display.dateInput = this.dateTimeEntryFormat;\n  }\n\n  /*\n  When the value changes, update the form control\n  */\n  public valueChanged(): void {\n    this.formatValueAndSetErrors();\n  }\n\n  public focusIn(): void {\n    this.setDateTimeFormat();\n  }\n\n  public focusOut(): void {\n    // focus out needed to obtain errors (relevant to formatting)\n    this.formatValueAndSetErrors();\n  }\n\n  public toggleClick(): void {\n    this.setDateTimeFormat();\n  }\n\n  public minDate(caseField: CaseField): Date {\n    // set minimum date\n    if (caseField.field_type.min instanceof Date) {\n      this.minimumDate = caseField.field_type.min ? new Date(caseField.field_type.min) : this.minimumDate;\n    }\n    return this.minimumDate;\n  }\n\n  public maxDate(caseField: CaseField): Date {\n    // set maximum date\n    if (caseField.field_type.max instanceof Date) {\n      this.maximumDate = caseField.field_type.max ? new Date(caseField.field_type.max) : this.maximumDate;\n    }\n    return this.maximumDate;\n  }\n\n  public configureDatePicker(dateTimePickerFormat: string): void {\n    if (this.caseField.field_type.type === 'Date') {\n      this.hideTime = true;\n      this.checkTime = false;\n      this.dateTimeEntryFormat = this.formatTranslationService.removeTime(this.dateTimeEntryFormat);\n      this.momentFormat = 'YYYY-MM-DD';\n    }\n\n    if (this.checkTime) {\n\n      if (this.formatTranslationService.hasSeconds(dateTimePickerFormat)) {\n        this.showSeconds = true;\n        this.hideMinutes = false;\n        this.disableMinute = false;\n        this.hideTime = false;\n        if (!this.formatTranslationService.is24Hour(dateTimePickerFormat)) {\n          this.enableMeridian = true;\n        }\n      }\n      if (this.formatTranslationService.hasHours(dateTimePickerFormat)) {\n        this.hideTime = false;\n        if (!this.formatTranslationService.is24Hour(dateTimePickerFormat)) {\n          this.enableMeridian = true;\n        }\n        return;\n      }\n\n      if (this.formatTranslationService.hasMinutes(dateTimePickerFormat)) {\n        this.hideMinutes = false;\n        this.disableMinute = false;\n        this.hideTime = false;\n        if (!this.formatTranslationService.is24Hour(dateTimePickerFormat)) {\n          this.enableMeridian = true;\n        }\n        return;\n      }\n    }\n\n    if (this.formatTranslationService.hasDate(dateTimePickerFormat)) {\n      return;\n    }\n\n    if (this.formatTranslationService.hasNoDay(dateTimePickerFormat)) {\n      this.startView = 'multi-year';\n    }\n\n    if (this.formatTranslationService.hasNoDayAndMonth(dateTimePickerFormat)) {\n      this.startView = 'multi-year';\n      this.yearSelection = true;\n    }\n  }\n\n  public yearSelected(event: Moment): void {\n    if (this.startView === 'multi-year' && this.yearSelection) {\n      this.dateControl.patchValue(event.toISOString());\n      this.datetimePicker.close();\n      this.valueChanged();\n    }\n  }\n\n  public monthSelected(event: Moment): void {\n    if (this.startView === 'multi-year') {\n      this.dateControl.patchValue(event.toISOString());\n      this.dateControl.patchValue(event.toISOString());\n      this.datetimePicker.close();\n      this.valueChanged();\n    }\n  }\n\n  private formatValueAndSetErrors(): void {\n    if (this.inputElement.nativeElement.value) {\n      let formValue = this.inputElement.nativeElement.value;\n      formValue = moment(formValue, this.dateTimeEntryFormat).format(this.momentFormat);\n      if (formValue !== 'Invalid date') {\n        // if not invalid set the value as the formatted value\n        this.dateControl.setValue(formValue);\n      } else {\n        // ensure that the datepicker picks up the invalid error\n        const keepErrorText = this.inputElement.nativeElement.value;\n        this.dateControl.setValue(keepErrorText);\n        this.inputElement.nativeElement.value = keepErrorText;\n      }\n    } else {\n      // ensure required errors are picked up if relevant\n      this.dateControl.setValue('');\n    }\n  }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractAppConfig } from '../../../../app.config';\n\n@Pipe({\n  name: 'ccdDocumentUrl',\n  standalone: false\n})\nexport class DocumentUrlPipe implements PipeTransform {\n\n  constructor(private readonly appConfig: AbstractAppConfig) {}\n\n  public transform(value: string): string {\n    const remoteHrsPattern = new RegExp(this.appConfig.getRemoteHrsUrl());\n    value = value.replace(remoteHrsPattern, this.appConfig.getHrsUrl());\n    const remoteDocumentManagementPattern = new RegExp(this.appConfig.getRemoteDocumentManagementUrl());\n    return value.replace(remoteDocumentManagementPattern, this.appConfig.getDocumentManagementUrl());\n  }\n}\n","import { Component, Input } from '@angular/core';\nimport { CaseViewEvent } from '../../../../domain';\n\n@Component({\n  selector: 'ccd-event-log-details',\n  templateUrl: './event-log-details.component.html',\n  styleUrls: ['./event-log-details.scss'],\n  standalone: false\n})\nexport class EventLogDetailsComponent {\n  @Input()\n  public event: CaseViewEvent;\n}\n","<table tabindex=\"0\" class=\"EventLogDetails\">\n  <caption><h2 class=\"heading-h2\">{{'Details' | rpxTranslate}}</h2></caption>\n  <tbody tabindex=\"0\" aria-live=\"polite\">\n    <tr>\n      <th><span class=\"text-16\">{{'Date' | rpxTranslate}}</span></th>\n      <td>\n        <div class=\"tooltip text-16\">{{event.timestamp | ccdDate : 'local'}}\n        </div>\n      </td>\n    </tr>\n    <tr>\n      <th><span class=\"text-16\">{{'Author' | rpxTranslate}}</span></th>\n      <td><span class=\"text-16\">{{event.user_first_name | titlecase}} {{event.user_last_name | uppercase}}</span></td>\n    </tr>\n    <tr>\n      <th><span class=\"text-16\">{{'End state' | rpxTranslate}}</span></th>\n      <td><span class=\"text-16\">{{event.state_name}}</span></td>\n    </tr>\n    <tr>\n      <th><span class=\"text-16\">{{'Event' | rpxTranslate}}</span></th>\n      <td><span class=\"text-16\">{{event.event_name}}</span></td>\n    </tr>\n    <tr>\n      <th><span class=\"text-16\">{{'Summary' | rpxTranslate}}</span></th>\n      <td><span class=\"text-16\">{{event.summary | ccdDash}}</span></td>\n    </tr>\n    <tr>\n      <th><span class=\"text-16\">{{'Comment' | rpxTranslate}}</span></th>\n      <td><span class=\"text-16\">{{event.comment | ccdDash}}</span></td>\n    </tr>\n  </tbody>\n</table>\n","<table class=\"EventLogTable\">\n  <caption><h2 class=\"heading-h2\">{{'History' | rpxTranslate}}</h2></caption>\n  <thead>\n  <tr>\n    <th><span class=\"text-16\">{{'Event' | rpxTranslate}}</span></th>\n    <th><span class=\"text-16\">{{'Date' | rpxTranslate}}</span></th>\n    <th><span class=\"text-16\">{{'Author' | rpxTranslate}}</span></th>\n  </tr>\n  </thead>\n  <tbody>\n  <tr *ngFor=\"let event of events\" (click)=\"select(event)\" (keyup)=\"select(event)\" [ngClass]=\"{'EventLogTable-Selected': selected === event}\" tabindex=\"0\" attr.aria-label=\"{{getAriaLabelforRow(event)}}\">\n    <td>\n      <ng-container [ngSwitch]=\"isPartOfCaseTimeline\">\n        <div id=\"case-timeline\" *ngSwitchCase=\"true\">\n          <a (click)=\"caseHistoryClicked(event.id)\"\n            *ngIf=\"event.state_id !== 'Draft' && !isUserExternal\" class=\"text-16 event-link\" attr.aria-label=\"{{getAriaLabelforLink(event, isUserExternal)}}\">{{event.event_name | rpxTranslate}}</a>\n            <span *ngIf=\" event.state_id !== 'Draft' && isUserExternal\" class=\"text-16 event-link\" attr.aria-label=\"{{getAriaLabelforLink(event, isUserExternal)}}\">{{event.event_name | rpxTranslate}}</span>\n          </div>\n        <div *ngSwitchCase=\"false\">\n          <a [routerLink]=\"['./', 'event', event.id, 'history']\"\n              [target]=\"'_blank'\"\n              *ngIf=\"event.state_id !== 'Draft' && !isUserExternal\" class=\"text-16 event-link\" attr.aria-label=\"{{getAriaLabelforLink(event, isUserExternal)}}\">{{event.event_name | rpxTranslate}}</a>\n          <span *ngIf=\"event.state_id !== 'Draft' && isUserExternal\" class=\"text-16 event-link\" attr.aria-label=\"{{getAriaLabelforLink(event, isUserExternal)}}\">{{event.event_name | rpxTranslate}}</span>\n        </div>\n      </ng-container>\n      <span *ngIf=\"event.state_id === 'Draft'\">{{event.event_name}}</span>\n      <div class=\"tooltip\" *ngIf=\"significantItemExist(event)\">\n        <a href=\"{{getSignificantItemUrl(event)}}\" target=\"_blank\" rel=\"noopener\" attr.aria-label=\"{{getAriaLabelforLink(event, isUserExternal)}}\">\n          <img class=\"doc-img\" alt=\"document image\" src=\"data:image/png;base64,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\"/>\n        </a>\n        <span class=\"tooltiptext doc-tooltip\">{{getSignificantItemDesc(event)}}</span>\n      </div>\n    </td>\n    <td tabindex=\"0\" attr.aria-label=\"{{getAriaLabelforColumn(event)}}\" (keydown.enter)=\"select(event)\"><div class=\"tooltip text-16\">{{event.timestamp | ccdDate : 'local'}}\n      <span class=\"tooltiptext\">{{'Local:' | rpxTranslate}} {{event.timestamp | ccdDate : 'local'}}</span>\n    </div></td>\n    <td tabindex=\"0\"><span class=\"text-16\">{{event.user_first_name | titlecase}} {{event.user_last_name | uppercase}}</span></td>\n  </tr>\n  </tbody>\n</table>\n","import { formatDate } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CaseViewEvent } from '../../../../domain';\nimport { SessionStorageService } from '../../../../services';\n\n@Component({\n  selector: 'ccd-event-log-table',\n  templateUrl: './event-log-table.component.html',\n  styleUrls: ['./event-log-table.scss'],\n  standalone: false\n})\nexport class EventLogTableComponent implements OnInit {\n  @Input()\n  public events: CaseViewEvent[];\n\n  @Input()\n  public selected: CaseViewEvent;\n\n  @Output()\n  public onSelect = new EventEmitter<CaseViewEvent>();\n\n  @Output()\n  public onCaseHistory = new EventEmitter<string>();\n\n  public isPartOfCaseTimeline = false;\n\n  public isUserExternal: boolean;\n\n  constructor(\n    private readonly sessionStorage: SessionStorageService\n  ){}\n\n  public ngOnInit(): void {\n    this.isPartOfCaseTimeline = this.onCaseHistory.observers.length > 0;\n    this.isUserExternal = JSON.parse(this.sessionStorage.getItem('userDetails')).roles.includes('pui-case-manager');\n  }\n\n  public select(event: CaseViewEvent): void {\n    this.selected = event;\n    this.onSelect.emit(event);\n  }\n\n  public significantItemExist(event: CaseViewEvent): boolean {\n    return (event.significant_item &&\n        event.significant_item.type === 'DOCUMENT' &&\n        event.significant_item.url !== undefined &&\n        event.significant_item.description !== undefined);\n  }\n\n  public getSignificantItemUrl(event: CaseViewEvent): string {\n    if (event.significant_item) {\n      return event.significant_item.url;\n    }\n  }\n\n  public getSignificantItemDesc(event: CaseViewEvent): string {\n    if (event.significant_item) {\n      return event.significant_item.description;\n    }\n  }\n\n  public caseHistoryClicked(eventId: string) {\n    this.onCaseHistory.emit(eventId);\n  }\n\n  public getAriaLabelforColumn(event: CaseViewEvent): string {\n    if (this.selected !== event) {\n      return `date ${formatDate(event.timestamp, 'dd MMM yyyy hh:mm:ss a', 'en-GB')},\n        press enter key for event ${event.event_name} details`;\n    } else {\n      return '';\n    }\n  }\n\n  public getAriaLabelforRow(event: CaseViewEvent): string {\n    return `you are on event ${event.event_name} row, press tab key to navigate to columns`;\n  }\n\n  public getAriaLabelforLink(event: CaseViewEvent, isExternalUser: boolean): string {\n    if (isExternalUser) {\n      return `${event.event_name}`;\n    }\n    return `press enter key to open event ${event.event_name} link in separate window`;\n  }\n}\n","<div class=\"grid-row\">\n  <div class=\"column-one-half scrollbar\">\n    <ng-container [ngSwitch]=\"isPartOfCaseTimeline\">\n      <ccd-event-log-table\n        *ngSwitchCase=\"true\"\n        [events]=\"events\"\n        [selected]=\"selected\"\n        (onSelect)=\"select($event)\"\n        (onCaseHistory)=\"caseHistoryClicked($event)\"\n      ></ccd-event-log-table>\n      <ccd-event-log-table\n        *ngSwitchCase=\"false\"\n        [events]=\"events\"\n        [selected]=\"selected\"\n        (onSelect)=\"select($event)\"\n      ></ccd-event-log-table>\n    </ng-container>\n  </div>\n  <div class=\"column-one-half\">\n    <div class=\"EventLog-DetailsPanel\">\n      <ccd-event-log-details\n        *ngIf=\"selected\"\n        [event]=\"selected\"\n      ></ccd-event-log-details>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CaseViewEvent } from '../../../../domain';\n\n@Component({\n  selector: 'ccd-event-log',\n  templateUrl: './event-log.component.html',\n  styleUrls: ['./event-log.scss'],\n  standalone: false\n})\nexport class EventLogComponent implements OnInit {\n\n  @Input()\n  public events: CaseViewEvent[];\n\n  @Output()\n  public onCaseHistory = new EventEmitter<string>();\n\n  public selected: CaseViewEvent;\n\n  public isPartOfCaseTimeline = false;\n\n  public ngOnInit(): void {\n    this.selected = this.events[0];\n    this.isPartOfCaseTimeline = this.onCaseHistory.observers.length > 0;\n  }\n\n  public select(event: CaseViewEvent): void {\n    this.selected = event;\n  }\n\n  public caseHistoryClicked(eventId: string) {\n    this.onCaseHistory.emit(eventId);\n  }\n\n}\n","import { Component } from '@angular/core';\n\n@Component({\n  selector: 'exui-routerlink',\n  template: '<a [routerLink]=\"link\"><ng-content></ng-content></a>',\n  standalone: false\n})\n\nexport class RouterLinkComponent {\n  public link: string;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PlaceholderService } from '../../directives/substitutor/services/placeholder.service';\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\n\n@Pipe({\n  name: 'ccdCaseTitle',\n  standalone: false\n})\nexport class CcdCaseTitlePipe implements PipeTransform {\n  constructor(private readonly placeholderService: PlaceholderService, private readonly fieldsUtils: FieldsUtils) {\n  }\n  public transform(caseTitle: string, caseFields: CaseField[], values: any): any {\n    const caseFieldValues = this.getReadOnlyAndFormFields(values, caseFields);\n    const result = this.placeholderService.resolvePlaceholders(caseFieldValues, caseTitle);\n    return result;\n  }\n\n  private getReadOnlyAndFormFields(formGroup, caseFields: CaseField[]): any {\n    return this.fieldsUtils.mergeLabelCaseFieldsAndFormFields(caseFields, formGroup.getRawValue());\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { CaseField } from '../../domain/definition/case-field.model';\n\n@Pipe({\n  name: 'ccdCollectionTableCaseFieldsFilter',\n  standalone: false\n})\nexport class CcdCollectionTableCaseFieldsFilterPipe implements PipeTransform {\n\n  public transform(objs: { [key: string]: any }[], caseField: CaseField, value: {}): CaseField {\n    const fields: CaseField[] = objs.map((obj) => ({\n      ...obj.value.caseField,\n      type: obj.value.type.type ? obj.value.type.type : obj.value.type\n    }));\n    return plainToClassFromExist(new CaseField(), {\n      id: caseField ? caseField.id : '',\n      label: caseField ? caseField.label : '',\n      display_context: 'READONLY',\n      value,\n      field_type: {\n        id: caseField ? caseField.id : '',\n        type: 'Complex',\n        complex_fields: fields,\n      }\n    });\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { CaseField } from '../../domain';\n\n@Pipe({\n  name: 'ccdCYAPageLabelFilter',\n  standalone: false\n})\nexport class CcdCYAPageLabelFilterPipe implements PipeTransform {\n\n  public transform(caseFields: CaseField[]): CaseField[] {\n    return caseFields.map((caseField: CaseField) => {\n      if (caseField.field_type.collection_field_type &&\n        caseField.field_type.collection_field_type.complex_fields &&\n        caseField.field_type.collection_field_type.complex_fields.length) {\n        caseField.field_type.collection_field_type.complex_fields = this.transform(\n          caseField.field_type.collection_field_type.complex_fields\n        );\n      }\n      if (caseField.field_type.complex_fields && caseField.field_type.complex_fields.length) {\n        caseField.field_type.complex_fields = this.getNonLabelComplexFieldType(caseField.field_type.complex_fields);\n      }\n\n      return caseField;\n    });\n  }\n\n  private readonly getNonLabelComplexFieldType = (complexFields: CaseField[]): CaseField[] =>\n    complexFields.filter((caseField: CaseField) => caseField.field_type.type !== 'Label')\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\n\nimport { plainToClassFromExist } from 'class-transformer';\nimport { ShowCondition } from '../../directives/conditional-show/domain/conditional-show.model';\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\n\n@Pipe({\n  name: 'ccdReadFieldsFilter',\n  standalone: false\n})\nexport class ReadFieldsFilterPipe implements PipeTransform {\n\n  private static readonly EMPTY_VALUES = [\n    undefined,\n    null,\n    '',\n    {}\n  ];\n\n  private static readonly ALWAYS_NULL_FIELDS = ['CasePaymentHistoryViewer', 'WaysToPay', 'FlagLauncher', 'ComponentLauncher'];\n\n  private static readonly NESTED_TYPES = {\n    Complex: ReadFieldsFilterPipe?.isValidComplex,\n    Collection: ReadFieldsFilterPipe?.isValidCollection\n  };\n\n  /**\n   * Complex type should have at least on simple field descendant with a value.\n   */\n  private static isValidComplex(field: CaseField, values?: object, checkConditionalShowAgainst?: object): boolean {\n    values = values || {};\n    const type = field.field_type;\n    const value = ReadFieldsFilterPipe.getValue(field, values);\n\n    const hasChildrenWithValue = type.complex_fields.find(f => {\n      const willKeep = ReadFieldsFilterPipe.keepField(f, value, true, checkConditionalShowAgainst);\n      return willKeep && ReadFieldsFilterPipe.evaluateConditionalShow(f, checkConditionalShowAgainst).hidden !== true;\n    });\n\n    return !!hasChildrenWithValue;\n  }\n\n  private static isValidCollection(field: CaseField, values?: object, checkConditionalShowAgainst?: object): boolean {\n    // if field is collection and it has complex/collection child field; parent field doesnt have value defined\n    if (!Array.isArray(field.value) && values && values.hasOwnProperty(field.id)) {\n      return true;\n    }\n    const isNotEmpty = Array.isArray(field.value) && field.value.length > 0;\n    if (isNotEmpty && field.field_type.collection_field_type.type === 'Complex') {\n      return !!field.value.find(item => {\n        const complexField = plainToClassFromExist(new CaseField(), {\n          id: field.field_type.collection_field_type.id,\n          field_type: field.field_type.collection_field_type,\n          value: item.value,\n          label: null,\n        });\n        return ReadFieldsFilterPipe.isValidComplex(complexField, undefined, checkConditionalShowAgainst);\n      });\n    }\n    return isNotEmpty;\n  }\n\n  private static isEmpty(value: any): boolean {\n    const fieldValue = value?.hasOwnProperty('list_items')  && value?.hasOwnProperty('value') ? value.value : value;\n    return  ReadFieldsFilterPipe.EMPTY_VALUES.indexOf(fieldValue) !== -1\n      || fieldValue.length === 0;\n  }\n\n  private static isCompound(field: CaseField): boolean {\n    return ReadFieldsFilterPipe.NESTED_TYPES[field.field_type.type];\n  }\n\n  private static isValidCompound(field: CaseField, value?: object, checkConditionalShowAgainst?: object): boolean {\n    return ReadFieldsFilterPipe.isCompound(field)\n            && ReadFieldsFilterPipe.NESTED_TYPES[field.field_type.type](field, value, checkConditionalShowAgainst);\n  }\n\n  private static keepField(field: CaseField, value?: object, ignoreLabels = false, checkConditionalShowAgainst?: object): boolean {\n    // We shouldn't ditch labels.\n    if (!ignoreLabels && field.field_type.type === 'Label' && (field.label || '').length > 0) {\n      return true;\n    }\n    // We also shouldn't ditch fields that will always come back with a null value.\n    if (this.ALWAYS_NULL_FIELDS.indexOf(field.field_type.type) !== -1) {\n      return true;\n    }\n\n    value = value || {};\n\n    if (ReadFieldsFilterPipe.isCompound(field)) {\n      return ReadFieldsFilterPipe.isValidCompound(field, value, checkConditionalShowAgainst);\n    }\n\n    return !ReadFieldsFilterPipe.isEmpty(field.value)\n      || !ReadFieldsFilterPipe.isEmpty(value[field.id]);\n  }\n\n  private static getValue(field: CaseField, values: any, index?: number): any {\n    if (ReadFieldsFilterPipe.isEmpty(field.value)) {\n      let value: any;\n      if (index >= 0) {\n        value = values[index].value[field.id];\n      } else {\n        value = values[field.id];\n      }\n\n      return value;\n    }\n    return field.value;\n  }\n\n  private static evaluateConditionalShow(field: CaseField, formValue: any, path?: string,\n    formGroupAvailable?: boolean, fieldId?: string): CaseField {\n    if (field.display_context === 'HIDDEN') {\n      field.hidden = true;\n    } else if (field.show_condition) {\n      let cond: ShowCondition;\n      if (fieldId && field.show_condition.indexOf(`${fieldId}.`) > -1 && !formGroupAvailable && !!Object.keys(formValue).length) {\n        const search = `/.*${fieldId}./`;\n        const searchRegExp = new RegExp(search, 'g');\n        const replaceWith = '';\n        cond = ShowCondition.getInstance(field.show_condition.replace(searchRegExp, replaceWith));\n      } else {\n        cond = ShowCondition.getInstance(field.show_condition);\n      }\n      if (path) {\n        // EXUI-2460 - evaluate with and without path to ensure validity\n        field.hidden = !cond.match(formValue, path) ? !cond.match(formValue) : false;\n      } else {\n        // if no path there is no need to evaluate twice\n        field.hidden = !cond.match(formValue);\n      }\n    } else {\n      field.hidden = false;\n    }\n    return field;\n  }\n\n  /**\n   * Filter out fields having no data to display and harmonise field values coming parent's value.\n   */\n  public transform(\n    complexField: CaseField, keepEmpty?: boolean, index?: number,\n    setupHidden = false, formGroup?: FormGroup | AbstractControl, path?: string, idPrefix?: string): CaseField[] {\n    if (!complexField || !complexField.field_type) {\n      return [];\n    }\n\n    const fields = complexField.field_type.complex_fields || [];\n    const values = complexField.value || {};\n    let checkConditionalShowAgainst: any = values;\n    let formGroupAvailable = false;\n    if (formGroup) {\n      checkConditionalShowAgainst = formGroup.value ? formGroup.parent.getRawValue().data : formGroup;\n      formGroupAvailable = true;\n      if (idPrefix !== undefined) {\n        if (idPrefix !== '') {\n          const fieldId = idPrefix.substring(0, idPrefix.indexOf('_'));\n          if (checkConditionalShowAgainst[fieldId]) {\n            checkConditionalShowAgainst = values;\n            formGroupAvailable = false;\n          }\n        } else {\n          checkConditionalShowAgainst = Object.assign(checkConditionalShowAgainst, values);\n          formGroupAvailable = false;\n        }\n      }\n    }\n\n    return fields\n      .map(f => {\n        const clone = FieldsUtils.cloneObject(f);\n        const value = ReadFieldsFilterPipe.getValue(f, values, index);\n        if (!ReadFieldsFilterPipe.isEmpty(value)) {\n          clone.value = value;\n        }\n        return clone;\n      })\n      .map(f => {\n        if (!f.display_context) {\n          if (FieldsUtils.isValidDisplayContext(complexField.display_context)) {\n            f.display_context = complexField.display_context;\n          }\n        }\n        if (setupHidden) {\n          ReadFieldsFilterPipe.evaluateConditionalShow(f, checkConditionalShowAgainst, path, formGroupAvailable, complexField.id);\n        }\n        return f;\n      })\n      .filter(f => keepEmpty || ReadFieldsFilterPipe.keepField(f, undefined, false, checkConditionalShowAgainst));\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { plainToClassFromExist } from 'class-transformer';\n\nimport { CaseTab } from '../../domain/case-view';\nimport { CaseField } from '../../domain/definition';\n\n@Pipe({\n  name: 'ccdTabFields',\n  standalone: false\n})\nexport class CcdTabFieldsPipe implements PipeTransform {\n\n  public transform(tab: CaseTab): CaseField {\n    const value: any = tab.fields.reduce((acc: any, field: CaseField) => {\n      return {...acc, [field.id]: field.value};\n    }, {});\n    return plainToClassFromExist(new CaseField(), {\n      id: tab.id,\n      label: tab.label,\n      display_context: 'READONLY',\n      value,\n      field_type: {\n        id: tab.id,\n        type: 'Complex',\n        complex_fields: tab.fields\n      }\n    });\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { WizardPage } from '../../components/case-editor/domain/wizard-page.model';\nimport { CaseField } from '../../domain/definition';\n\n@Pipe({\n  name: 'ccdPageFields',\n  standalone: false\n})\nexport class CcdPageFieldsPipe implements PipeTransform {\n  public transform(page: WizardPage, dataFormGroup: FormGroup): CaseField {\n    const complexFields: CaseField[] = Object.keys((dataFormGroup.controls['data'] as FormGroup).controls).map(key => {\n      const control: AbstractControl = (dataFormGroup.controls['data'] as FormGroup).get(key);\n      return control['caseField'] as CaseField;\n    }).filter(field => {\n      return field && !!page.case_fields.find(pcf => pcf.id === field.id);\n    }).sort((a, b) => a.order - b.order);\n\n    const rawValue: any = dataFormGroup.value;\n\n    const value: any = page.case_fields.reduce((acc: any, field: CaseField) => {\n      const fieldValue: any = rawValue[field.id] || field.value;\n      return { ...acc, [field.id]: fieldValue };\n    }, {});\n    return plainToClassFromExist(new CaseField(), {\n      id: page.id,\n      label: page.label,\n      display_context: 'READONLY',\n      value,\n      field_type: {\n        id: page.id,\n        type: 'Complex',\n        complex_fields: complexFields\n      }\n    });\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'enumDisplayDescription',\n  standalone: false\n})\nexport class EnumDisplayDescriptionPipe implements PipeTransform {\n  public transform(value: any) {\n    return Object.values(value);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LinkFromReason } from '../../components/palette/linked-cases/domain';\nimport { LinkedCasesService } from '../../components/palette/linked-cases/services';\n\n@Pipe({\n  name: 'ccdLinkCasesFromReasonValue',\n  standalone: false\n})\nexport class LinkCasesFromReasonValuePipe implements PipeTransform {\n\n  constructor(private readonly linkedCasesService: LinkedCasesService) {}\n\n  public transform(linkFromReason: LinkFromReason): string {\n    if (linkFromReason?.otherDescription) {\n      const reasonCodeMapping = this.linkedCasesService.linkCaseReasons?.find(reason => reason.key === linkFromReason.reasonCode);\n      return reasonCodeMapping?.value_en === 'Other'\n        ? `${reasonCodeMapping?.value_en} - ${linkFromReason.otherDescription}`\n        : reasonCodeMapping?.value_en;\n    }\n    return this.linkedCasesService.linkCaseReasons?.find(reason => reason.key === linkFromReason.reasonCode)?.value_en;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LinkReason } from '../../components';\nimport { LinkedCasesService } from '../../components/palette/linked-cases/services';\n\n@Pipe({\n  name: 'ccdLinkCasesReasonValue',\n  standalone: false\n})\nexport class LinkCasesReasonValuePipe implements PipeTransform {\n\n  constructor(private readonly linkedCasesService: LinkedCasesService) {}\n\n  public transform(linkReason: LinkReason): string {\n\t\tif (linkReason?.OtherDescription) {\n\t\t\tconst reasonCodeMapping = this.linkedCasesService.linkCaseReasons?.find(reason => reason.key === linkReason.Reason);\n\t\t\treturn reasonCodeMapping?.value_en === 'Other'\n\t\t\t\t? `${reasonCodeMapping?.value_en} - ${linkReason.OtherDescription}`\n\t\t\t\t: reasonCodeMapping?.value_en;\n\t\t}\n    return this.linkedCasesService.linkCaseReasons?.find(reason => reason.key === linkReason.Reason)?.value_en;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SortOrder } from '../../../domain';\nimport { SearchResultViewItem } from '../../../domain/search/search-result-view-item.model';\nimport { SortParameters } from '../../../domain/search/sorting/sort-parameters';\n\n@Pipe({\n  name: 'ccdSortSearchResult',\n  standalone: false\n})\nexport class SortSearchResultPipe implements PipeTransform {\n\n  public transform(searchResults: SearchResultViewItem[], sortParameters: SortParameters) {\n\n    if (searchResults === undefined || sortParameters === undefined) {\n      return searchResults;\n    }\n    return searchResults.sort(\n      (a, b) => {\n        return sortParameters.comparator.compare(a, b)\n                  * (sortParameters.sortOrder === SortOrder.DESCENDING ? 1 : -1);\n      }\n    );\n  }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { CaseReferencePipe } from './case-reference';\nimport { CcdCaseTitlePipe } from './case-title';\nimport { CcdCollectionTableCaseFieldsFilterPipe, CcdCYAPageLabelFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, ReadFieldsFilterPipe } from './complex';\nimport { EnumDisplayDescriptionPipe } from './generic/enum-display-description/enum-display-description.pipe';\nimport { LinkCasesFromReasonValuePipe } from './link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe';\nimport { LinkCasesReasonValuePipe } from './link-cases-reason-code/ccd-link-cases-reason-code.pipe';\nimport { SortSearchResultPipe } from './search-result/sorting/sort-search-result.pipe';\n\nconst pipeDeclarations = [\n  CaseReferencePipe,\n  SortSearchResultPipe,\n  CcdCaseTitlePipe,\n  CcdCollectionTableCaseFieldsFilterPipe,\n  CcdCYAPageLabelFilterPipe,\n  ReadFieldsFilterPipe,\n  CcdTabFieldsPipe,\n  CcdPageFieldsPipe,\n  LinkCasesReasonValuePipe,\n  LinkCasesFromReasonValuePipe,\n  EnumDisplayDescriptionPipe\n];\n\n@NgModule({\n  imports: [\n    CommonModule,\n  ],\n  declarations: [\n    ...pipeDeclarations\n  ],\n  exports: [\n    ...pipeDeclarations,\n  ]\n})\nexport class PipesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { PipesModule } from '../../../pipes';\nimport { MarkdownComponent } from './markdown.component';\nimport { RouterLinkComponent } from './routerlink.component';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n  declarations: [\n    MarkdownComponent,\n    RouterLinkComponent\n  ],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    PipesModule,\n    MarkdownModule.forRoot(),\n    RouterModule\n  ],\n  exports: [\n    MarkdownComponent,\n    RouterLinkComponent\n  ],\n})\nexport class MarkdownComponentModule {}\n","import { Fee } from './fee.model';\n\nexport class FeeValue {\n    public value: Fee;\n}\n","// tslint:disable:variable-name\nexport class Fee {\n  public FeeCode: string;\n  public FeeAmount: string;\n  public FeeDescription?: string;\n  public FeeVersion: string;\n}\n","// tslint:disable:variable-name\nimport { FeeValue } from './fee-value.model';\n\nexport class OrderSummary {\n  public PaymentReference: string;\n  public Fees: FeeValue[];\n  public PaymentTotal: string;\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\nimport { FeeValue } from './fee-value.model';\n\n@Component({\n    // tslint:disable-next-line\n  selector: '[ccdReadOrderSummaryRow]',\n  templateUrl: './read-order-summary-row.html',\n  styleUrls: [\n    './read-order-summary-row.scss'\n  ],\n  standalone: false\n})\nexport class ReadOrderSummaryRowComponent extends AbstractFieldReadComponent implements OnInit {\n\n  @Input()\n  public feeValue: FeeValue;\n\n  public ngOnInit() {\n    // We don't want to register this if we don't have a caseField\n    if (this.caseField) {\n      super.ngOnInit();\n    }\n  }\n\n  public getFeeAmount(): string {\n    return this.feeValue.value ? this.feeValue.value.FeeAmount : '';\n  }\n}\n","<td>{{feeValue.value.FeeCode}}</td>\n<td>{{feeValue.value.FeeDescription | rpxTranslate}}</td>\n<td><ccd-read-money-gbp-field [amount]=\"getFeeAmount()\"></ccd-read-money-gbp-field></td>\n","<div class=\"complex-panel\">\n  <table class=\"complex-field-table\" [attr.aria-describedby]=\"'complex organisation field table' | rpxTranslate\">\n    <tbody>\n      <tr>\n        <th style=\"display: none;\"></th>\n        <td>\n          <table class=\"complex-field-table\" *ngIf=\"(selectedOrg$ | async) as selectedOrg\"\n                 [attr.aria-describedby]=\"'selected organisation field table'\">\n            <tr class=\"complex-panel-compound-field\">\n              <th style=\"display: none;\"></th>\n              <td class=\"label-width-small\"><span class=\"text-16\">{{'Name:'}}</span></td>\n              <td><span class=\"text-16\">{{selectedOrg.name}}</span></td>\n            </tr>\n            <tr class=\"complex-panel-compound-field\">\n              <th style=\"display: none;\"></th>\n              <td class=\"label-width-small\"><span class=\"text-16\">{{'Address:'}}</span></td>\n              <td>\n                <ccd-markdown [content]=\"selectedOrg.address\"></ccd-markdown>\n              </td>\n            </tr>\n          </table>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { CaseField } from '../../../domain/definition';\nimport { OrganisationConverter } from '../../../domain/organisation/organisation-converter';\nimport { SimpleOrganisationModel } from '../../../domain/organisation/simple-organisation.model';\nimport { OrganisationService, OrganisationVm } from '../../../services/organisation/organisation.service';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-organisation-field-raw',\n  templateUrl: './read-organisation-field-raw.component.html',\n  styleUrls: ['./organisation-field.scss'],\n  standalone: false\n})\nexport class ReadOrganisationFieldRawComponent extends AbstractFieldReadComponent implements OnInit {\n\n  @Input()\n  public caseFields: CaseField[] = [];\n\n  public organisations$: Observable<OrganisationVm[]>;\n  public selectedOrg$: Observable<SimpleOrganisationModel>;\n\n  constructor(private readonly organisationService: OrganisationService, private readonly organisationConverter: OrganisationConverter) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    super.ngOnInit();\n    if (this.caseField.value && this.caseField.value.OrganisationID) {\n      this.organisations$ = this.organisationService.getActiveOrganisations();\n      this.selectedOrg$ = this.organisations$.pipe(\n        switchMap((organisations: OrganisationVm[]) => of(\n            this.organisationConverter.toSimpleOrganisationModel(\n              organisations.find(findOrg => findOrg.organisationIdentifier === this.caseField.value.OrganisationID)\n            )\n          )\n        )\n      );\n    }\n  }\n}\n","<div class=\"complex-panel\">\n  <table class=\"complex-field-table\" [attr.aria-describedby]=\"'complex organisation field table' | rpxTranslate\">\n    <tbody>\n      <tr>\n        <th class=\"complex-field-title\">\n          <dl class=\"complex-panel-title\">\n            <dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt>\n          </dl>\n        </th>\n        <td>\n          <table class=\"complex-field-table\" *ngIf=\"(selectedOrg$ | async) as selectedOrg\"\n                 [attr.aria-describedby]=\"'selected organisation field table'\">\n            <tr class=\"complex-panel-compound-field\">\n              <th style=\"display: none;\"></th>\n              <td class=\"label-width-medium\"><span class=\"text-16\">{{'Name:'}}</span></td>\n              <td><span class=\"text-16\">{{selectedOrg.name}}</span></td>\n            </tr>\n            <tr class=\"complex-panel-compound-field\">\n              <th style=\"display: none;\"></th>\n              <td class=\"label-width-medium\"><span class=\"text-16\">{{'Address:'}}</span></td>\n              <td>\n                <ccd-markdown [content]=\"selectedOrg.address\"></ccd-markdown>\n              </td>\n            </tr>\n          </table>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { CaseField } from '../../../domain/definition/case-field.model';\nimport { OrganisationConverter } from '../../../domain/organisation/organisation-converter';\nimport { SimpleOrganisationModel } from '../../../domain/organisation/simple-organisation.model';\nimport { OrganisationService, OrganisationVm } from '../../../services/organisation/organisation.service';\nimport { AbstractFieldReadComponent } from '../base-field/abstract-field-read.component';\n\n@Component({\n  selector: 'ccd-read-organisation-field-table',\n  templateUrl: './read-organisation-field-table.component.html',\n  styleUrls: ['./organisation-field.scss'],\n  standalone: false\n})\n\nexport class ReadOrganisationFieldTableComponent extends AbstractFieldReadComponent implements OnInit {\n\n  @Input()\n  public caseFields: CaseField[] = [];\n\n  public organisations$: Observable<OrganisationVm[]>;\n  public selectedOrg$: Observable<SimpleOrganisationModel>;\n\n  constructor(private readonly organisationService: OrganisationService, private readonly organisationConverter: OrganisationConverter) {\n    super();\n  }\n\n  public ngOnInit(): void {\n    super.ngOnInit();\n    if (this.caseField.value && this.caseField.value.OrganisationID) {\n      this.organisations$ = this.organisationService.getActiveOrganisations();\n      this.selectedOrg$ = this.organisations$.pipe(\n        switchMap((organisations: OrganisationVm[]) => of(\n            this.organisationConverter.toSimpleOrganisationModel(\n              organisations.find(findOrg => findOrg.organisationIdentifier === this.caseField.value.OrganisationID)\n            )\n          )\n        )\n      );\n    }\n  }\n}\n","import { Component, Input } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { SimpleOrganisationModel } from '../../../domain/organisation';\nimport { AbstractFormFieldComponent } from '../base-field/abstract-form-field.component';\n\n@Component({\n  selector: 'ccd-write-organisation-complex-field',\n  templateUrl: './write-organisation-complex-field.component.html',\n  styleUrls: ['./organisation-field.scss'],\n  standalone: false\n})\nexport class WriteOrganisationComplexFieldComponent extends AbstractFormFieldComponent {\n\n  @Input()\n  public selectedOrg$: Observable<SimpleOrganisationModel>;\n\n  constructor() {\n    super();\n  }\n\n}\n","<div>\n  <input type=\"hidden\" name=\"organisationID\" [value]=\"(selectedOrg$ | async)?.organisationIdentifier\">\n  <input type=\"hidden\" name=\"organisationName\" [value]=\"(selectedOrg$ | async)?.name\">\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NotificationBannerComponent } from './notification-banner.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NotificationBannerComponent],\n  exports: [NotificationBannerComponent]\n})\nexport class NotificationBannerModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AlertModule } from './alert/alert.module';\nimport { NotificationBannerModule } from './notification-banner/notification-banner.module';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    AlertModule,\n    NotificationBannerModule\n  ],\n  exports: [\n    AlertModule,\n    NotificationBannerModule\n  ]\n})\nexport class BannersModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { BodyComponent } from './body.component';\n\n@NgModule({\n    imports: [CommonModule, RouterModule],\n    declarations: [BodyComponent],\n    exports: [BodyComponent]\n})\nexport class BodyModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { FooterComponent } from './footer.component';\n\n@NgModule({\n    imports: [\n      CommonModule,\n      RpxTranslationModule.forChild()\n    ],\n    declarations: [FooterComponent],\n    exports: [FooterComponent]\n})\nexport class FootersModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { DateInputComponent } from './date-input/date-input.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    DateInputComponent,\n  ],\n  exports: [\n    DateInputComponent,\n  ]\n})\nexport class FormModule {}\n","import { Injectable } from '@angular/core';\nimport { CaseField } from '../../../domain/definition';\nimport { Profile } from '../../../domain/profile';\n\n@Injectable()\nexport class CollectionCreateCheckerService {\n  public setDisplayContextForChildren(caseField: CaseField, profile: Profile) {\n    const children = this.getCaseFieldChildren(caseField);\n\n    if (children && children.length > 0) {\n      children.forEach(child => {\n        if (!!profile.user.idam.roles.find(role => this.hasCreateAccess(child, role))) {\n          child.display_context = caseField.display_context;\n        }\n        if (this.isCollection(child) || this.isComplex(child)) {\n          this.setDisplayContextForChildren(child, profile);\n        }\n      });\n    }\n  }\n\n  private getCaseFieldChildren(caseField: CaseField): CaseField[] {\n    let childrenCaseFields = [];\n    if (this.isCollection(caseField)) {\n      childrenCaseFields = caseField.field_type.collection_field_type.complex_fields || [];\n    } else if (this.isComplex(caseField)) {\n      childrenCaseFields = caseField.field_type.complex_fields || [];\n    }\n    return childrenCaseFields;\n  }\n\n  private isComplex(caseField: CaseField) {\n    return caseField.field_type.type === 'Complex';\n  }\n\n  private isCollection(caseField: CaseField) {\n    return caseField.field_type.type === 'Collection';\n  }\n\n  private hasCreateAccess(caseField: CaseField, role: any) {\n    return !!caseField.acls.find( acl => acl.role === role && acl.create === true);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate } from '@angular/router';\nimport { WindowService } from '../../../services/window/window.service';\nimport { FileUploadStateService } from './file-upload-state.service';\n\n@Injectable()\nexport class FileUploadProgressGuard implements CanDeactivate<any> {\n\n    public static readonly CONFIRM_MESSAGE = 'File upload in progress. Press “Cancel” to cancel the upload. Press “Ok” to continue the document upload.';\n\n    constructor(\n        private readonly fileUploadStateService: FileUploadStateService,\n        private readonly windowService: WindowService\n    ) {}\n\n    public canDeactivate() {\n        if (this.fileUploadStateService.isUploadInProgress()) {\n            const userDecision = !this.windowService.confirm(FileUploadProgressGuard.CONFIRM_MESSAGE);\n            if (userDecision) {\n                this.fileUploadStateService.setUploadInProgress(false);\n            }\n            return userDecision;\n        }\n        return true;\n    }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { CallbackErrorsComponent } from './callback-errors.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RouterModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    CallbackErrorsComponent\n  ],\n  exports: [\n    CallbackErrorsComponent,\n  ]\n})\nexport class ErrorsModule {}\n","import { NgxMatDatetimePickerModule, NgxMatNativeDateModule, NgxMatTimepickerModule } from '@angular-material-components/datetime-picker';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, NgModule, Provider, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatLegacyAutocompleteModule as MatAutocompleteModule } from '@angular/material/legacy-autocomplete';\nimport { MAT_LEGACY_DATE_LOCALE as MAT_DATE_LOCALE } from '@angular/material/legacy-core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatLegacyDialogModule as MatDialogModule } from '@angular/material/legacy-dialog';\nimport { MatLegacyFormFieldModule as MatFormFieldModule } from '@angular/material/legacy-form-field';\nimport { MatLegacyInputModule as MatInputModule } from '@angular/material/legacy-input';\nimport { RouterModule } from '@angular/router';\nimport { PaymentLibModule } from '@hmcts/ccpay-web-component';\nimport { MediaViewerModule } from '@hmcts/media-viewer';\nimport { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { HeadersModule, TabsModule } from '../../../components';\nimport { BannersModule } from '../../../components/banners/banners.module';\nimport { BodyModule } from '../../../components/body/body.module';\nimport { FootersModule } from '../../../components/footer/footers.module';\nimport { FormModule } from '../../../components/form/form.module';\nimport { CaseEditDataModule } from '../../commons/case-edit-data';\nimport { LabelSubstitutorModule } from '../../directives/substitutor';\nimport { TranslatedMarkdownModule } from '../../directives/welsh-translated-markdown';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { CaseFlagRefdataService } from '../../services/case-flag/case-flag-refdata.service';\nimport { CommonDataService } from '../../services/common-data-service/common-data-service';\nimport { FormValidatorsService } from '../../services/form/form-validators.service';\nimport { JurisdictionService } from '../../services/jurisdiction/jurisdiction.service';\nimport { LoadingModule } from '../../services/loading/loading.module';\nimport { WindowService } from '../../services/window';\nimport { CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent } from '../case-editor/case-event-completion';\nimport { WriteAddressFieldComponent } from './address/write-address-field.component';\nimport { FieldReadComponent, FieldReadLabelComponent, FieldWriteComponent } from './base-field';\nimport { CaseFileViewOverlayMenuComponent } from './case-file-view';\nimport { CaseFileViewFieldComponent } from './case-file-view/case-file-view-field.component';\nimport {\n  CaseFileViewFolderSelectorComponent\n} from './case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component';\nimport {\n  CaseFileViewFolderDocumentActionsComponent\n} from './case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component';\nimport {\n  CaseFileViewFolderSortComponent\n} from './case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component';\nimport { CaseFileViewFolderToggleComponent } from './case-file-view/components/case-file-view-folder/case-file-view-folder-toggle/case-file-view-folder-toggle.component';\nimport { CaseFileViewFolderComponent } from './case-file-view/components/case-file-view-folder/case-file-view-folder.component';\nimport {\n  AddCommentsComponent,\n  CaseFlagSummaryListComponent,\n  CaseFlagTableComponent,\n  ConfirmFlagStatusComponent,\n  FlagFieldDisplayPipe,\n  LanguageInterpreterDisplayPipe,\n  ManageCaseFlagsComponent,\n  ManageCaseFlagsLabelDisplayPipe,\n  ReadCaseFlagFieldComponent,\n  SearchLanguageInterpreterComponent,\n  SelectFlagLocationComponent,\n  SelectFlagTypeComponent,\n  UpdateFlagAddTranslationFormComponent,\n  UpdateFlagComponent,\n  UpdateFlagTitleDisplayPipe,\n  WriteCaseFlagFieldComponent\n} from './case-flag';\nimport { ReadCaseLinkFieldComponent } from './case-link/read-case-link-field.component';\nimport { WriteCaseLinkFieldComponent } from './case-link/write-case-link-field.component';\nimport { ReadCollectionFieldComponent, WriteCollectionFieldComponent } from './collection';\nimport { CollectionCreateCheckerService } from './collection/collection-create-checker.service';\nimport {\n  ReadComplexFieldCollectionTableComponent,\n  ReadComplexFieldComponent,\n  ReadComplexFieldRawComponent,\n  ReadComplexFieldTableComponent,\n  WriteComplexFieldComponent\n} from './complex';\nimport { ReadDateFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent } from './date';\nimport { DatetimePickerComponent } from './datetime-picker';\nimport { DocumentUrlPipe } from './document';\nimport { FileUploadProgressGuard } from './document/file-upload-progress.guard';\nimport { FileUploadStateService } from './document/file-upload-state.service';\nimport { ReadDocumentFieldComponent } from './document/read-document-field.component';\nimport { WriteDocumentFieldComponent } from './document/write-document-field.component';\nimport { DynamicListPipe, ReadDynamicListFieldComponent } from './dynamic-list';\nimport { WriteDynamicListFieldComponent } from './dynamic-list/write-dynamic-list-field.component';\nimport { ReadDynamicMultiSelectListFieldComponent, WriteDynamicMultiSelectListFieldComponent } from './dynamic-multi-select-list';\nimport { DynamicRadioListPipe, ReadDynamicRadioListFieldComponent } from './dynamic-radio-list';\nimport { WriteDynamicRadioListFieldComponent } from './dynamic-radio-list/write-dynamic-radio-list-field.component';\nimport { ReadEmailFieldComponent, WriteEmailFieldComponent } from './email';\nimport { FixedListPipe, ReadFixedListFieldComponent, WriteFixedListFieldComponent } from './fixed-list';\nimport { FixedRadioListPipe, ReadFixedRadioListFieldComponent, WriteFixedRadioListFieldComponent } from './fixed-radio-list';\nimport { CaseHistoryViewerFieldComponent, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent } from './history';\nimport { ReadJudicialUserFieldComponent, WriteJudicialUserFieldComponent } from './judicial-user';\nimport { LabelFieldComponent } from './label';\nimport {\n  BeforeYouStartComponent,\n  CheckYourAnswersComponent,\n  LinkCasesComponent,\n  LinkedCasesFromTableComponent,\n  LinkedCasesToTableComponent,\n  NoLinkedCasesComponent,\n  ReadLinkedCasesFieldComponent,\n  UnLinkCasesComponent,\n  WriteLinkedCasesFieldComponent\n} from './linked-cases';\nimport { LinkedCasesService } from './linked-cases/services';\nimport { MarkdownComponentModule } from './markdown';\nimport { MoneyGbpInputComponent, ReadMoneyGbpFieldComponent, WriteMoneyGbpFieldComponent } from './money-gbp';\nimport { ReadMultiSelectListFieldComponent, WriteMultiSelectListFieldComponent } from './multi-select-list';\nimport { ReadNumberFieldComponent, WriteNumberFieldComponent } from './number';\nimport { ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, WriteOrderSummaryFieldComponent } from './order-summary';\nimport {\n  ReadOrganisationFieldComponent,\n  ReadOrganisationFieldRawComponent,\n  ReadOrganisationFieldTableComponent,\n  WriteOrganisationComplexFieldComponent,\n  WriteOrganisationFieldComponent\n} from './organisation';\nimport { PaletteService } from './palette.service';\nimport { CasePaymentHistoryViewerFieldComponent } from './payment';\nimport { ReadPhoneUKFieldComponent, WritePhoneUKFieldComponent } from './phone-uk';\nimport {\n  QualifyingQuestionDetailComponent,\n  QualifyingQuestionOptionsComponent,\n  QueryAttachmentsReadComponent,\n  QueryCaseDetailsHeaderComponent,\n  QueryCheckYourAnswersComponent,\n  QueryDetailsComponent,\n  QueryEventCompletionComponent,\n  QueryListComponent,\n  QueryWriteAddDocumentsComponent,\n  QueryWriteDateInputComponent,\n  QueryWriteRaiseQueryComponent,\n  QueryWriteRespondToQueryComponent,\n  ReadQueryManagementFieldComponent,\n  CloseQueryComponent\n\n} from './query-management';\nimport { QualifyingQuestionService, QueryManagementService } from './query-management/services';\nimport { ReadTextFieldComponent, WriteTextFieldComponent } from './text';\nimport { ReadTextAreaFieldComponent, WriteTextAreaFieldComponent } from './text-area';\nimport { UnsupportedFieldComponent } from './unsupported-field.component';\nimport { PaletteUtilsModule } from './utils';\nimport { WaysToPayFieldComponent } from './waystopay';\nimport { ReadYesNoFieldComponent, WriteYesNoFieldComponent, YesNoService } from './yes-no';\nimport { QueryConfirmationComponent } from './query-management/components/query-confirmation/query-confirmation.component';\nimport { QueryManagementUtils } from './query-management/utils/query-management.utils';\nimport { ErrorsModule } from '../error/errors.module';\n\nconst PALETTE_COMPONENTS = [\n  UnsupportedFieldComponent,\n  DatetimePickerComponent,\n  WaysToPayFieldComponent,\n  FieldReadComponent,\n  FieldWriteComponent,\n  FieldReadLabelComponent,\n  LabelFieldComponent,\n  CasePaymentHistoryViewerFieldComponent,\n  MoneyGbpInputComponent,\n  CaseHistoryViewerFieldComponent,\n  EventLogComponent,\n  EventLogDetailsComponent,\n  EventLogTableComponent,\n\n  // Read\n  ReadTextFieldComponent,\n  ReadTextAreaFieldComponent,\n  ReadNumberFieldComponent,\n  ReadEmailFieldComponent,\n  ReadPhoneUKFieldComponent,\n  ReadDateFieldComponent,\n  ReadCollectionFieldComponent,\n  ReadDocumentFieldComponent,\n\n  // new\n  ReadJudicialUserFieldComponent,\n  ReadYesNoFieldComponent,\n  ReadOrganisationFieldComponent,\n  ReadOrganisationFieldTableComponent,\n  ReadOrganisationFieldRawComponent,\n  ReadOrderSummaryFieldComponent,\n  ReadOrderSummaryRowComponent,\n  ReadMoneyGbpFieldComponent,\n  ReadMultiSelectListFieldComponent,\n  ReadDynamicListFieldComponent,\n  ReadFixedListFieldComponent,\n  ReadFixedRadioListFieldComponent,\n  ReadDynamicRadioListFieldComponent,\n  ReadCaseLinkFieldComponent,\n  ReadComplexFieldComponent,\n  ReadComplexFieldRawComponent,\n  ReadComplexFieldTableComponent,\n  ReadComplexFieldCollectionTableComponent,\n  ReadCaseFlagFieldComponent,\n  ReadLinkedCasesFieldComponent,\n\n  // Write\n  WriteJudicialUserFieldComponent,\n  WriteAddressFieldComponent,\n  WriteComplexFieldComponent,\n  WriteOrganisationComplexFieldComponent,\n  WriteDocumentFieldComponent,\n  WriteDynamicListFieldComponent,\n  WriteDynamicRadioListFieldComponent,\n  WriteTextFieldComponent,\n  WriteDateContainerFieldComponent,\n  WriteTextAreaFieldComponent,\n  WritePhoneUKFieldComponent,\n  WriteNumberFieldComponent,\n  WriteEmailFieldComponent,\n  WriteDateFieldComponent,\n  WriteCaseFlagFieldComponent,\n  WriteLinkedCasesFieldComponent,\n\n  // new\n  WriteYesNoFieldComponent,\n  WriteOrganisationFieldComponent,\n  WriteOrganisationComplexFieldComponent,\n  WriteOrderSummaryFieldComponent,\n  WriteMoneyGbpFieldComponent,\n  WriteDateContainerFieldComponent,\n  WriteMultiSelectListFieldComponent,\n  WriteFixedListFieldComponent,\n  WriteFixedRadioListFieldComponent,\n  WriteCaseLinkFieldComponent,\n  WriteCollectionFieldComponent,\n\n  // ComponentLauncher web components\n  CaseFileViewFieldComponent,\n  CaseFileViewFolderComponent,\n  CaseFileViewFolderSortComponent,\n  CaseFileViewFolderToggleComponent,\n  CaseFileViewOverlayMenuComponent,\n  CaseFileViewFolderDocumentActionsComponent,\n  CaseFileViewFolderSelectorComponent,\n  // component for dynamic list\n  WriteDynamicMultiSelectListFieldComponent,\n  WriteDynamicRadioListFieldComponent,\n  WriteDynamicListFieldComponent,\n  ReadDynamicMultiSelectListFieldComponent,\n  ReadDynamicListFieldComponent,\n  ReadDynamicRadioListFieldComponent,\n  // Components for case flags\n  CaseFlagTableComponent,\n  SelectFlagTypeComponent,\n  SearchLanguageInterpreterComponent,\n  SelectFlagLocationComponent,\n  ManageCaseFlagsComponent,\n  AddCommentsComponent,\n  UpdateFlagComponent,\n  CaseFlagSummaryListComponent,\n  ConfirmFlagStatusComponent,\n  UpdateFlagAddTranslationFormComponent,\n  // Components for linked cases\n  LinkedCasesToTableComponent,\n  LinkedCasesFromTableComponent,\n  BeforeYouStartComponent,\n  LinkCasesComponent,\n  CheckYourAnswersComponent,\n  UnLinkCasesComponent,\n  NoLinkedCasesComponent,\n\n  // Components for Query Management\n  ReadQueryManagementFieldComponent,\n  QueryDetailsComponent,\n  QueryListComponent,\n  QueryWriteRespondToQueryComponent,\n  QueryWriteRaiseQueryComponent,\n  QueryCaseDetailsHeaderComponent,\n  QueryCheckYourAnswersComponent,\n  QueryWriteAddDocumentsComponent,\n  QueryWriteDateInputComponent,\n  QualifyingQuestionOptionsComponent,\n  QualifyingQuestionDetailComponent,\n  QueryAttachmentsReadComponent,\n  QueryEventCompletionComponent,\n  QueryConfirmationComponent,\n  CloseQueryComponent,\n\n  // Case event completion\n  CaseEventCompletionComponent,\n  CaseEventCompletionTaskCancelledComponent,\n  CaseEventCompletionTaskReassignedComponent\n];\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RouterModule,\n    FormsModule,\n    ReactiveFormsModule,\n    CaseEditDataModule,\n    PaletteUtilsModule,\n    PipesModule,\n    BannersModule,\n    HeadersModule,\n    FootersModule,\n    BodyModule,\n    FormModule,\n    TabsModule,\n    LabelSubstitutorModule,\n    TranslatedMarkdownModule,\n    MarkdownModule.forChild(),\n    NgxMatDatetimePickerModule,\n    NgxMatTimepickerModule,\n    NgxMatNativeDateModule,\n    MatFormFieldModule,\n    MatInputModule,\n    MatDatepickerModule,\n    MatAutocompleteModule,\n    CdkTreeModule,\n    OverlayModule,\n    PaymentLibModule,\n    ScrollToModule.forRoot(),\n    RpxTranslationModule.forChild(),\n    CdkTreeModule,\n    OverlayModule,\n    MatDialogModule,\n    MediaViewerModule,\n    LoadingModule,\n    MarkdownComponentModule,\n    ErrorsModule\n  ],\n  declarations: [\n    FixedListPipe,\n    FixedRadioListPipe,\n    DynamicListPipe,\n    DynamicRadioListPipe,\n    DocumentUrlPipe,\n    FlagFieldDisplayPipe,\n    LanguageInterpreterDisplayPipe,\n    ManageCaseFlagsLabelDisplayPipe,\n    UpdateFlagTitleDisplayPipe,\n    ...PALETTE_COMPONENTS\n  ],\n  exports: [\n    NgxMatDatetimePickerModule,\n    NgxMatNativeDateModule,\n    NgxMatTimepickerModule,\n    TabsModule,\n    PaletteUtilsModule,\n    PipesModule,\n    MarkdownComponentModule,\n    ...PALETTE_COMPONENTS\n  ],\n  providers: [\n    ChangeDetectorRef as Provider,\n    CaseFlagRefdataService,\n    YesNoService,\n    CollectionCreateCheckerService,\n    JurisdictionService,\n    PaletteService,\n    FormValidatorsService,\n    FileUploadStateService,\n    FileUploadProgressGuard,\n    WindowService,\n    CommonDataService,\n    LinkedCasesService,\n    QualifyingQuestionService,\n    QueryManagementUtils,\n    QueryManagementService,\n    {provide: MAT_DATE_LOCALE, useValue: 'en-GB'}\n  ],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class PaletteModule {\n}\n","export enum CaseEditSubmitTitles {\n  REVIEW_SUPPORT_REQUEST = 'Review support request',\n  REVIEW_FLAG_DETAILS = 'Review flag details',\n  CHECK_YOUR_ANSWERS = 'Check your answers'\n}\n","<div>\n  <!-- Event trigger name -->\n  <h1 class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n\n  <!--Case ID or Title -->\n  <div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n  <ng-template #titleBlock>\n    <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: contextFields : editForm.controls['data'] | rpxTranslate\"></ccd-markdown>\n  </ng-template>\n  <ng-template #idBlock>\n    <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n  </ng-template>\n\n  <ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n  <ccd-callback-errors [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n                      (callbackErrorsContext)=\"callbackErrorsNotify($event)\"></ccd-callback-errors>\n\n  <form class=\"check-your-answers\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n    <div *ngIf=\"!caseEdit.isEventCompletionChecksRequired\">\n      <ng-container *ngIf=\"checkYourAnswerFieldsToDisplayExists()\">\n        <h2 class=\"heading-h2\">{{pageTitle | rpxTranslate }}</h2>\n        <span class=\"text-16\" *ngIf=\"!caseEdit.isCaseFlagSubmission\">{{'Check the information below carefully.' | rpxTranslate}}</span>\n\n        <table class=\"form-table\" aria-describedby=\"check your answers table\">\n          <tbody>\n          <ng-container *ngFor=\"let page of wizard.pages\">\n            <ng-container *ngIf=\"isShown(page)\">\n              <ng-container *ngFor=\"let field of page\n              | ccdPageFields: editForm\n              | ccdReadFieldsFilter: false :undefined :true :allFieldsValues\n              | ccdCYAPageLabelFilter\">\n                <ng-container *ngIf=\"canShowFieldInCYA(field)\">\n                  <tr ccdLabelSubstitutor [caseField]=\"field\" [hidden]=\"field.hidden\"\n                      [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n                    <th *ngIf=\"!isLabel(field) && !caseEdit.isCaseFlagSubmission\" class=\"valign-top case-field-label\">\n                      <span class=\"text-16\">{{field.label | rpxTranslate}}</span>\n                    </th>\n                    <td class=\"form-cell case-field-content text-16\" [attr.colspan]=\"isLabel(field) ? '2' : '1'\">\n                      <ccd-field-read\n                        [formGroup]=\"editForm.controls['data']\" [topLevelFormGroup]=\"editForm.controls['data']\"\n                        [caseField]=\"summaryCaseField(field)\" [context]=\"paletteContext\" [caseFields]=\"contextFields\"></ccd-field-read>\n                    </td>\n                    <ng-container *ngIf=\"!caseEdit.isCaseFlagSubmission\">\n                      <td class=\"valign-top check-your-answers__change case-field-change\">\n                        <a *ngIf=\"isChangeAllowed(field)\" (click)=\"navigateToPage(page.id); $event.preventDefault()\"\n                          href=\"#\">\n                          <span class=\"text-16\" attr.aria-label=\"{{'Change' | rpxTranslate}} {{ field.label | rpxTranslate }}\">\n                            {{'Change' | rpxTranslate}}\n                          </span>\n                        </a>\n                      </td>\n                    </ng-container>\n                  </tr>\n                </ng-container>\n              </ng-container>\n            </ng-container>\n          </ng-container>\n          </tbody>\n        </table>\n      </ng-container>\n      <ng-container *ngIf=\"readOnlySummaryFieldsToDisplayExists()\">\n\n        <table class=\"summary-fields\" aria-describedby=\"summary fields table\">\n          <tbody>\n            <ng-container *ngFor=\"let field of showSummaryFields\">\n                <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n                  <tr *ngSwitchCase=\"true\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n                    <th id=\"summary-field-label\">{{field.label}}</th>\n                    <td class=\"form-cell\">\n                      <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\"></ccd-field-read>\n                    </td>\n                  </tr>\n                  <tr *ngSwitchCase=\"false\" class=\"compound-field\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n                    <td colspan=\"2\">\n                      <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\" [caseFields]=\"contextFields\"></ccd-field-read>\n                    </td>\n                  </tr>\n                </ng-container>\n              </ng-container>\n          </tbody>\n        </table>\n      </ng-container>\n      <ng-container *ngIf=\"showEventNotes()\">\n        <fieldset id=\"fieldset-event\" formGroupName=\"event\">\n          <legend style=\"display: none;\"></legend>\n          <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!summary && !summary.valid && (summary.dirty || summary.touched)}\">\n            <label for=\"field-trigger-summary\" class=\"form-label\">\n              Event summary (optional)\n              <span class=\"form-hint\">A few words describing the purpose of the event.</span>\n            </label>\n            <span class=\"error-message\" *ngIf=\"summary?.errors && (summary.dirty || summary.touched)\">\n              {{summary.errors | ccdFirstError: eventSummaryLabel | rpxTranslate}}\n            </span>\n            <input type=\"text\" id=\"field-trigger-summary\" class=\"form-control bottom-30 width-50\"\n              [ngClass]=\"{'govuk-input--error': summary?.errors && (summary.dirty || summary.touched)}\" formControlName=\"summary\" maxlength=\"1024\">\n          </div>\n          <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!description && !description.valid && (description.dirty || description.touched)}\">\n            <label for=\"field-trigger-description\" class=\"form-label\">Event description (optional)</label>\n            <span class=\"error-message\" *ngIf=\"description?.errors && (description.dirty || description.touched)\">\n              {{description.errors | ccdFirstError: eventDescriptionLabel | rpxTranslate}}\n            </span>\n            <textarea id=\"field-trigger-description\" class=\"form-control bottom-30 width-50\" formControlName=\"description\"\n              [ngClass]=\"{'govuk-input--error': description?.errors && (description.dirty || description.touched)}\" maxlength=\"65536\"></textarea>\n          </div>\n        </fieldset>\n      </ng-container>\n    </div>\n    <ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n      [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n      (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n    </ccd-case-event-completion>\n    <div class=\"form-group form-group-related\">\n      <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!hasPrevious() || caseEdit.isSubmitting\" (click)=\"previous()\">\n        {{'Previous' | rpxTranslate}}\n      </button>\n      <button type=\"submit\" [disabled]=\"isDisabled\" class=\"button\">\n        {{triggerText | rpxTranslate}}\n      </button>\n    </div>\n    <p class=\"cancel\">\n      <a (click)=\"cancel(); $event.preventDefault()\" href=\"#\" [class.disabled]=\"caseEdit.isSubmitting\">{{getCancelText() | rpxTranslate}}</a>\n    </p>\n  </form>\n</div>\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { CaseEventTrigger, CaseField, Profile } from '../../../domain';\nimport { Task } from '../../../domain/work-allocation/Task';\nimport {\n  CaseFieldService,\n  FieldsUtils,\n  MultipageComponentStateService,\n  FormValidatorsService,\n  OrderService,\n  ProfileNotifier\n} from '../../../services';\nimport { CallbackErrorsComponent, CallbackErrorsContext } from '../../error';\nimport { PaletteContext } from '../../palette';\nimport { CaseEditPageComponent } from '../case-edit-page/case-edit-page.component';\nimport { CaseEditComponent } from '../case-edit/case-edit.component';\nimport { Wizard, WizardPage } from '../domain';\nimport { CaseEditSubmitTitles } from './case-edit-submit-titles.enum';\nimport { CaseFlagStateService } from '../services/case-flag-state.service';\nimport { LinkedCasesService } from '../../palette/linked-cases/services/linked-cases.service';\nimport { PlaceholderService } from '../../../directives';\n\n// @dynamic\n@Component({\n  selector: 'ccd-case-edit-submit',\n  templateUrl: 'case-edit-submit.html',\n  styleUrls: ['../case-edit.scss'],\n  standalone: false\n})\nexport class CaseEditSubmitComponent implements OnInit, OnDestroy {\n  public eventTrigger: CaseEventTrigger;\n  public editForm: FormGroup;\n  public triggerText: string;\n  public wizard: Wizard;\n  public profile: Profile;\n  public showSummaryFields: CaseField[];\n  public paletteContext: PaletteContext = PaletteContext.CHECK_YOUR_ANSWER;\n  public profileSubscription: Subscription;\n  public contextFields: CaseField[];\n  public task: Task;\n  public pageTitle: string;\n  public metadataFieldsObject: object;\n  public allFieldsValues: any;\n  public summary: AbstractControl;\n  public description: AbstractControl;\n  public eventSummaryLabel: string = 'Event summary';\n  public eventDescriptionLabel: string = 'Event description';\n  public PLACEHOLDER_PATTERN = /\\$\\{[a-zA-Z0-9_.\\][]+\\}/;\n\n  public static readonly SHOW_SUMMARY_CONTENT_COMPARE_FUNCTION = (a: CaseField, b: CaseField): number => {\n    const aCaseField = a.show_summary_content_option === 0 || a.show_summary_content_option;\n    const bCaseField = b.show_summary_content_option === 0 || b.show_summary_content_option;\n\n    if (!aCaseField) {\n      return !bCaseField ? 0 : 1;\n    }\n\n    if (!bCaseField) {\n      return -1;\n    }\n    return a.show_summary_content_option - b.show_summary_content_option;\n  };\n\n  public get isDisabled(): boolean {\n    // EUI-3452.\n    // We don't need to check the validity of the editForm as it is readonly.\n    // This was causing issues with hidden fields that aren't wanted but have\n    // not been disabled.\n    return this.caseEdit.isSubmitting || this.hasErrors;\n  }\n\n  constructor(\n    public readonly caseEdit: CaseEditComponent,\n    private readonly fieldsUtils: FieldsUtils,\n    private readonly caseFieldService: CaseFieldService,\n    private readonly route: ActivatedRoute,\n    private readonly orderService: OrderService,\n    private readonly profileNotifier: ProfileNotifier,\n    private readonly multipageComponentStateService: MultipageComponentStateService,\n    private readonly formValidatorsService: FormValidatorsService,\n    private readonly caseFlagStateService: CaseFlagStateService,\n    private readonly linkedCasesService: LinkedCasesService,\n    private readonly placeholderService: PlaceholderService,\n  ) {\n  }\n\n  public ngOnInit(): void {\n    this.profileSubscription = this.profileNotifier.profile.subscribe((_) => this.profile = _);\n    this.eventTrigger = this.caseEdit.eventTrigger;\n    this.editForm = this.caseEdit.form;\n    this.wizard = this.caseEdit.wizard;\n    this.showSummaryFields = this.sortFieldsByShowSummaryContent(this.eventTrigger.case_fields);\n    this.caseEdit.isSubmitting = false;\n    this.contextFields = this.getCaseFields();\n    this.metadataFieldsObject = this.caseEdit?.caseDetails?.metadataFields?.\n      reduce((o, key) => Object.assign(o, { [key.id]: key.value }), {});\n    this.allFieldsValues = Object.assign(this.metadataFieldsObject ? this.metadataFieldsObject : {}, this.editForm.getRawValue().data);\n    this.triggerText = this.eventTrigger.end_button_label || CallbackErrorsComponent.TRIGGER_TEXT_SUBMIT;\n    if (this.hasUnresolvedPlaceholder(this.triggerText)){\n      this.triggerText = this.interpolateButtonText(this.triggerText);\n    }\n    // Indicates if the submission is for a Case Flag, as opposed to a \"regular\" form submission, by the presence of\n    // a FlagLauncher field in the event trigger\n    this.caseEdit.isCaseFlagSubmission =\n      this.eventTrigger.case_fields.some((caseField) => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']));\n    this.caseEdit.isLinkedCasesSubmission =\n      this.eventTrigger.case_fields.some(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['ComponentLauncher']));\n    this.pageTitle = this.getPageTitle();\n    if (!this.caseFlagStateService.initialCaseFlags && this.caseEdit.isCaseFlagSubmission && Object.keys(this.caseEdit.form.value.data).length > 0){\n      this.caseFlagStateService.initialCaseFlags = JSON.parse(JSON.stringify(this.caseEdit.form.value));\n    }\n    this.summary = this.formValidatorsService.addMarkDownValidators(this.editForm, 'event.summary');\n    this.description = this.formValidatorsService.addMarkDownValidators(this.editForm, 'event.description');\n  }\n\n  public ngOnDestroy(): void {\n    /* istanbul ignore else */\n    if (this.profileSubscription) {\n      this.profileSubscription.unsubscribe();\n    }\n  }\n\n  public submit(): void {\n    if (this.summary.valid && this.description.valid) {\n      this.linkedCasesService.resetLinkedCaseData();\n      this.checkExistingDataInSubmission();\n      this.caseEdit.submitForm({\n        eventTrigger: this.eventTrigger,\n        form: this.editForm,\n        submit: this.caseEdit.submit,\n        caseDetails: this.caseEdit.caseDetails\n      });\n      this.caseFlagStateService.resetInitialCaseFlags();\n    }\n  }\n\n  public onEventCanBeCompleted(eventCanBeCompleted: boolean): void {\n    this.caseEdit.onEventCanBeCompleted({\n      eventTrigger: this.eventTrigger,\n      eventCanBeCompleted,\n      caseDetails: this.caseEdit.caseDetails,\n      form: this.editForm,\n      submit: this.caseEdit.submit\n    });\n  }\n\n  public checkExistingDataInSubmission() {\n    if (this.caseEdit.isCaseFlagSubmission) {\n      this.eventTrigger.case_fields.forEach((field) => {\n        const fieldData = this.editForm.value.data[field.id];\n        if (fieldData?.details) {\n          const priorFlags = this.caseFlagStateService.initialCaseFlags.data[field.id].details;\n          if (priorFlags) {\n            priorFlags.forEach((flag) => {\n              if (!field._value.details.some((detail) => detail.id === flag.id)) {\n                field._value.details.push(flag);\n              }\n            });\n            if (field._value) {\n              field._value.details = field._value.details?.filter((detail: { id?: string }) => detail.id !== null);\n              if (field.formatted_value?.groupId) {\n                field._value.groupId = field.formatted_value.groupId;\n              }\n              if (field.formatted_value?.visibility) {\n                field._value.visibility = field.formatted_value?.visibility;\n              }\n              if (field.formatted_value?.details) {\n                field.formatted_value.details = field._value?.details;\n              }\n              fieldData.details = fieldData.details.filter((detail: { id?: string }) => detail.id !== null);\n            }\n          }\n        }\n      });\n    }\n  }\n\n  private getPageTitle(): string {\n    const caseFlagField = this.eventTrigger.case_fields.find(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']));\n    if (caseFlagField) {\n      const isCaseFlagExternalMode = caseFlagField.display_context_parameter === '#ARGUMENT(UPDATE,EXTERNAL)' ||\n        caseFlagField.display_context_parameter === '#ARGUMENT(CREATE,EXTERNAL)';\n      return isCaseFlagExternalMode\n        ? CaseEditSubmitTitles.REVIEW_SUPPORT_REQUEST\n        : CaseEditSubmitTitles.REVIEW_FLAG_DETAILS;\n    }\n    return CaseEditSubmitTitles.CHECK_YOUR_ANSWERS;\n  }\n\n  private get hasErrors(): boolean {\n    return this.caseEdit?.error?.callbackErrors?.length;\n  }\n\n  public navigateToPage(pageId: string): void {\n    this.caseEdit.navigateToPage(pageId);\n  }\n\n  public callbackErrorsNotify(errorContext: CallbackErrorsContext): void {\n    this.caseEdit.ignoreWarning = errorContext.ignoreWarning;\n    this.triggerText = errorContext.triggerText;\n  }\n\n  public summaryCaseField(field: CaseField): CaseField {\n    /* istanbul ignore else */\n    if (null === this.editForm.get('data').get(field.id)) {\n      // If not in form, return field itself\n      return field;\n    }\n\n    const cloneField: CaseField = this.fieldsUtils.cloneCaseField(field);\n    cloneField.value = this.editForm.get('data').get(field.id).value;\n\n    return cloneField;\n  }\n\n  public cancel(): void {\n    if (this.caseEdit.isLinkedCasesSubmission) {\n      this.handleLinkedCasesSubmission();\n    }\n    this.caseFlagStateService.resetInitialCaseFlags();\n    this.emitCancelEvent();\n  }\n\n  private handleLinkedCasesSubmission(): void {\n    const linkedCasesTab = this.getLinkedCasesTab();\n    const initialLinks = this.linkedCasesService.initialCaseLinkRefs;\n\n    if (linkedCasesTab && linkedCasesTab.value.length !== initialLinks.length) {\n      linkedCasesTab.value = linkedCasesTab.value.filter((item) =>\n        initialLinks.includes(item.value.CaseReference)\n      );\n    }\n    this.linkedCasesService.resetLinkedCaseData();\n  }\n\n  private getLinkedCasesTab(): CaseField | null {\n    return this.caseEdit.caseDetails.tabs.find((tab) =>\n      tab?.fields?.some((field) => field.id === 'caseLinks')\n    )?.fields?.[0] ?? null;\n  }\n\n  private emitCancelEvent(): void {\n    if (this.eventTrigger.can_save_draft) {\n      const origin = this.route.snapshot.queryParamMap.get(CaseEditComponent.ORIGIN_QUERY_PARAM);\n      const status = origin === 'viewDraft' ? CaseEditPageComponent.RESUMED_FORM_DISCARD : CaseEditPageComponent.NEW_FORM_DISCARD;\n      this.caseEdit.cancelled.emit({ status });\n    } else {\n      this.caseEdit.cancelled.emit();\n    }\n  }\n\n  public isLabel(field: CaseField): boolean {\n    return this.caseFieldService.isLabel(field);\n  }\n\n  public isChangeAllowed(field: CaseField): boolean {\n    return !this.caseFieldService.isReadOnly(field);\n  }\n\n  public checkYourAnswerFieldsToDisplayExists(): boolean {\n    /* istanbul ignore else */\n    if (this.eventTrigger.show_summary || this.eventTrigger.show_summary === null) {\n      for (const page of this.wizard.pages) {\n        /* istanbul ignore else */\n        if (page.case_fields && this.isShown(page)) {\n          for (const field of page.case_fields) {\n            /* istanbul ignore else */\n            if (this.canShowFieldInCYA(field)) {\n              // at least one field needs showing\n              return true;\n            }\n          }\n        }\n      }\n    } else {\n      // found no fields to show in CYA summary page\n      return false;\n    }\n  }\n\n  public readOnlySummaryFieldsToDisplayExists(): boolean {\n    return this.eventTrigger.case_fields.some((field) => field.show_summary_content_option >= 0);\n  }\n\n  public showEventNotes(): boolean {\n    // Display event notes related controls only if the following conditions are met\n    // 1. show_event_notes flag is set to true\n    // 2. profile is not a solicitor\n    // 3. is not a case flags journey, as it uses a custom check your answers component\n    if (this.eventTrigger.show_event_notes) {\n      return !this.profile?.isSolicitor()\n        && !this.caseEdit.isCaseFlagSubmission;\n    }\n    return false;\n  }\n\n  private getLastPageShown(): WizardPage {\n    let lastPage: WizardPage;\n    this.wizard.reverse().forEach((page) => {\n      if (!lastPage && this.isShown(page)) {\n        lastPage = page;\n      }\n    });\n    // noinspection JSUnusedAssignment\n    return lastPage;\n  }\n\n  public previous(): void {\n    if (this.caseEdit.isCaseFlagSubmission) {\n      // if we are in the caseflag journey we need to store the last page index so that the previous button on CYA will take to correct page\n      this.caseFlagStateService.fieldStateToNavigate = this.caseFlagStateService.lastPageFieldState;\n    }\n    if (this.caseEdit.isLinkedCasesSubmission) {\n      this.linkedCasesService.cameFromFinalStep = true;\n    }\n    /* istanbul ignore else */\n    if (this.hasPrevious()) {\n      this.navigateToPage(this.getLastPageShown().id);\n    }\n  }\n\n  public hasPrevious(): boolean {\n    return !!this.getLastPageShown();\n  }\n\n  public isShown(page: WizardPage): boolean {\n    const fields = this.fieldsUtils\n      .mergeCaseFieldsAndFormFields(this.eventTrigger.case_fields, this.editForm.controls.data.value);\n    return page.parsedShowCondition.match(fields);\n  }\n\n  public canShowFieldInCYA(field: CaseField): boolean {\n    return field.show_summary_change_option;\n  }\n\n  private sortFieldsByShowSummaryContent(fields: CaseField[]): CaseField[] {\n    return this.orderService\n      .sort(fields, CaseEditSubmitComponent.SHOW_SUMMARY_CONTENT_COMPARE_FUNCTION)\n      .filter((cf) => cf.show_summary_content_option);\n  }\n\n  private getCaseFields(): CaseField[] {\n    if (this.caseEdit.caseDetails) {\n      return FieldsUtils.getCaseFields(this.caseEdit.caseDetails);\n    }\n\n    return this.eventTrigger.case_fields;\n  }\n\n  public getCaseId(): string {\n    return this.caseEdit.getCaseId(this.caseEdit.caseDetails);\n  }\n\n  public getCaseTitle(): string {\n    return (this.caseEdit.caseDetails && this.caseEdit.caseDetails.state &&\n      this.caseEdit.caseDetails.state.title_display ? this.caseEdit.caseDetails.state.title_display : '');\n  }\n\n  public getCancelText(): string {\n    if (this.eventTrigger.can_save_draft) {\n      return 'Return to case list';\n    }\n    return 'Cancel';\n  }\n\n  private hasUnresolvedPlaceholder(buttonText: string): boolean {\n    return buttonText\n      && typeof buttonText === 'string'\n      && !!buttonText.match(this.PLACEHOLDER_PATTERN);\n  }\n\n  private interpolateButtonText(text: string): string {\n    const fields: object = this.allFieldsValues;\n    return this.resolvePlaceholders(fields, text);\n  }\n\n  private resolvePlaceholders(fields: object, stringToResolve: string): string {\n    return this.placeholderService.resolvePlaceholders(fields, stringToResolve);\n  }\n}\n\n","<div *ngIf=\"isDataLoaded()\">\n    <ccd-case-edit [submit]=\"submit()\"\n                   [validate]=\"validate()\"\n                   [caseDetails]=\"caseDetails\"\n                   [eventTrigger]=\"eventTrigger\"\n                   (cancelled)=\"emitCancelled($event)\"\n                   (submitted)=\"emitSubmitted($event)\"></ccd-case-edit>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { CaseEventData } from '../../../domain/case-event-data.model';\nimport { CaseEventTrigger } from '../../../domain/case-view/case-event-trigger.model';\nimport { CaseView } from '../../../domain/case-view/case-view.model';\nimport { HttpError } from '../../../domain/http/http-error.model';\nimport { AlertService } from '../../../services/alert/alert.service';\nimport { CasesService } from '../services/cases.service';\nimport { EventTriggerService } from '../services/event-trigger.service';\n\n\n\n@Component({\n  selector: 'ccd-case-progress',\n  templateUrl: 'case-progress.component.html',\n  standalone: false\n})\nexport class CaseProgressComponent implements OnInit {\n  @Input()\n  public case: string;\n\n  @Input()\n  public event: string;\n\n  @Output()\n  public cancelled: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  public submitted: EventEmitter<any> = new EventEmitter();\n\n  public caseDetails: CaseView;\n  public eventTrigger: CaseEventTrigger;\n\n  constructor(\n    private readonly casesService: CasesService,\n    private readonly alertService: AlertService,\n    private readonly eventTriggerService: EventTriggerService\n  ) {}\n\n  public ngOnInit(): void {\n    // tslint:disable-next-line: prefer-const\n    let caseTypeId: string;\n    this.casesService.getCaseViewV2(this.case).toPromise()\n      .then(caseView => this.caseDetails = caseView)\n      .then(caseView => this.casesService.getEventTrigger(caseTypeId, this.event, caseView.case_id).toPromise())\n      .then(eventTrigger => {\n        this.eventTriggerService.announceEventTrigger(eventTrigger);\n        this.eventTrigger = eventTrigger;\n      })\n      .catch((error: HttpError) => {\n        this.alertService.error({ phrase: error.message });\n        return throwError(error);\n      });\n  }\n\n  public submit(): (sanitizedEditForm: CaseEventData) => Observable<object> {\n    return (sanitizedEditForm: CaseEventData) =>\n      this.casesService.createEvent(this.caseDetails, sanitizedEditForm);\n  }\n\n  public validate(): (sanitizedEditForm: CaseEventData, pageId: string) => Observable<object> {\n    return (sanitizedEditForm: CaseEventData, pageId: string) => this.casesService.validateCase(\n      this.caseDetails.case_type.id,\n      sanitizedEditForm,\n      pageId);\n  }\n\n  public emitCancelled(event): void {\n    this.cancelled.emit(event);\n  }\n\n  public emitSubmitted(event): void {\n    this.submitted.emit(event);\n  }\n\n  public isDataLoaded(): boolean {\n    return this.eventTrigger && this.caseDetails ? true : false;\n  }\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'ccd-loading-spinner',\n  templateUrl: './loading-spinner.component.html',\n  styleUrls: ['./loading-spinner.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false\n})\n\nexport class LoadingSpinnerComponent {\n  @Input() public loadingText = 'Loading';\n}\n","<div class=\"spinner-container\">\n    <div class=\"spinner-inner-container\">\n        <p>{{loadingText | rpxTranslate}}</p>\n        <div class=\"spinner\" style=\"margin: auto;\"></div>\n    </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { LoadingSpinnerComponent } from './loading-spinner.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    LoadingSpinnerComponent\n  ],\n  exports: [\n    LoadingSpinnerComponent\n  ],\n})\nexport class LoadingSpinnerModule { }\n","<!-- Generic error heading and error message to be displayed only if there are no specific callback errors or warnings, or no error details -->\n<div *ngIf=\"error && (!(error.callbackErrors || error.callbackWarnings || error.details) && !error.message)\" class=\"error-summary\" role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n    <h1 class=\"heading-h1 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n      Something went wrong\n    </h1>\n    <div class=\"govuk-error-summary__body\" id=\"edit-case-event_error-summary-body\">\n      <p>We're working to fix the problem. Try again shortly.</p>\n      <p><a href=\"get-help\" target=\"_blank\">Contact us</a> if you're still having problems.</p>\n    </div>\n  </div>\n  <!-- Event error heading and error message to be displayed if there are specific error details -->\n  <div *ngIf=\"error && (error.details || error.message)\" class=\"error-summary\" role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n    <h3 class=\"heading-h3 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n      The event could not be created\n    </h3>\n    <p>{{error.message}}</p>\n    <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n      <li *ngFor=\"let fieldError of error.details.field_errors\" class=\"ccd-error-summary-li\">{{fieldError.message}}</li>\n    </ul>\n  </div>\n  ","import { Component, Input } from '@angular/core';\n\nimport { HttpError } from '../../../domain';\n\n@Component({\n  selector: 'ccd-case-edit-generic-errors',\n  templateUrl: 'case-edit-generic-errors.component.html',\n  styleUrls: ['../case-edit.scss'],\n  providers: [],\n  standalone: false\n})\nexport class CaseEditGenericErrorsComponent {\n  @Input() public error: HttpError;\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { PaletteModule } from '../palette/palette.module';\nimport { BannersModule } from '../../../components/banners/banners.module';\nimport { CaseEditDataModule, CaseEditDataService } from '../../commons/case-edit-data';\nimport { CallbackErrorsComponent } from '../../components/error';\nimport { ConditionalShowModule } from '../../directives/conditional-show';\nimport {\n  ConditionalShowRegistrarService\n} from '../../directives/conditional-show/services/conditional-show-registrar.service';\nimport { LabelSubstitutorModule } from '../../directives/substitutor/label-substitutor.module';\nimport { AddressesService } from '../../services/addresses';\nimport { CaseFieldService } from '../../services/case-fields/case-field.service';\nimport { FormatTranslatorService } from '../../services/case-fields/format-translator.service';\nimport { DocumentManagementService } from '../../services/document-management';\nimport { FieldsPurger } from '../../services/fields/fields.purger';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\nimport { FieldTypeSanitiser } from '../../services/form/field-type-sanitiser';\nimport { FormErrorService } from '../../services/form/form-error.service';\nimport { FormValueService } from '../../services/form/form-value.service';\nimport { HttpService } from '../../services/http/http.service';\nimport { OrderService } from '../../services/order/order.service';\nimport { ProfileNotifier } from '../../services/profile/profile.notifier';\nimport { ProfileService } from '../../services/profile/profile.service';\nimport { RouterHelperService } from '../../services/router';\nimport { SessionStorageService } from '../../services/session/session-storage.service';\nimport { ErrorsModule } from '../error/errors.module';\nimport { LoadingSpinnerModule } from '../loading-spinner/loading-spinner.module';\nimport { CaseCreateComponent } from './case-create/case-create.component';\nimport { CaseEditConfirmComponent } from './case-edit-confirm/case-edit-confirm.component';\nimport { CaseEditFormComponent } from './case-edit-form/case-edit-form.component';\nimport { CaseEditGenericErrorsComponent } from './case-edit-generic-errors/case-edit-generic-errors.component';\nimport { CaseEditPageComponent } from './case-edit-page/case-edit-page.component';\nimport { CaseEditSubmitComponent } from './case-edit-submit/case-edit-submit.component';\nimport { CaseEditComponent } from './case-edit/case-edit.component';\nimport { CaseProgressComponent } from './case-progress/case-progress.component';\nimport {\n  CaseNotifier,\n  EventCompletionStateMachineService,\n  EventTriggerService,\n  JudicialworkerService,\n  PageValidationService,\n  WizardFactoryService,\n  WorkAllocationService\n} from './services';\nimport { CaseEditWizardGuard } from './services/case-edit-wizard.guard';\nimport { CaseFlagStateService } from './services/case-flag-state.service';\nimport { CaseworkerService } from './services/case-worker.service';\nimport { ValidPageListCaseFieldsService } from './services/valid-page-list-caseFields.service';\nimport { MultipageComponentStateService } from '../../services';\nimport { CaseEventCompletionTaskReassignedComponent } from './case-event-completion';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RouterModule,\n    FormsModule,\n    ReactiveFormsModule,\n    CaseEditDataModule,\n    LabelSubstitutorModule,\n    ConditionalShowModule,\n    ErrorsModule,\n    PortalModule,\n    LoadingSpinnerModule,\n    BannersModule,\n    PaletteModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    CaseEditConfirmComponent,\n    CaseEditComponent,\n    CaseEditPageComponent,\n    CaseEditFormComponent,\n    CaseEditSubmitComponent,\n    CaseCreateComponent,\n    CaseProgressComponent,\n    CaseEditGenericErrorsComponent\n  ],\n  exports: [\n    CaseEditConfirmComponent,\n    CaseEditComponent,\n    CaseEditPageComponent,\n    CaseEditFormComponent,\n    CaseEditSubmitComponent,\n    CaseCreateComponent,\n    CaseProgressComponent,\n    CallbackErrorsComponent\n  ],\n  providers: [\n    CaseEditDataService,\n    CaseNotifier,\n    FieldsUtils,\n    FieldsPurger,\n    ConditionalShowRegistrarService,\n    WizardFactoryService,\n    FieldTypeSanitiser,\n    FormValueService,\n    FormErrorService,\n    FormatTranslatorService,\n    HttpService,\n    PageValidationService,\n    CaseFieldService,\n    OrderService,\n    EventTriggerService,\n    ProfileService,\n    ProfileNotifier,\n    AddressesService,\n    DocumentManagementService,\n    RouterHelperService,\n    ProfileService,\n    CaseEditWizardGuard,\n    WorkAllocationService,\n    JudicialworkerService,\n    CaseworkerService,\n    SessionStorageService,\n    EventCompletionStateMachineService,\n    CaseFlagStateService,\n    ValidPageListCaseFieldsService,\n    MultipageComponentStateService\n  ]\n})\nexport class CaseEditorModule { }\n","import { Routes } from '@angular/router';\nimport { FileUploadProgressGuard } from '../palette/document/file-upload-progress.guard';\nimport { CaseEditConfirmComponent } from './case-edit-confirm/case-edit-confirm.component';\nimport { CaseEditPageComponent } from './case-edit-page/case-edit-page.component';\nimport { CaseEditSubmitComponent } from './case-edit-submit/case-edit-submit.component';\nimport { CaseEditWizardGuard } from './services/case-edit-wizard.guard';\n\nexport const editorRouting: Routes = [\n  {\n    path: '',\n    resolve: {\n      caseEditWizardGuard: CaseEditWizardGuard,\n    },\n    component: CaseEditPageComponent,\n  },\n  {\n    path: 'submit',\n    component: CaseEditSubmitComponent,\n  },\n  {\n    path: 'confirm',\n    component: CaseEditConfirmComponent,\n  },\n  {\n    path: ':page',\n    resolve: {\n      caseEditWizardGuard: CaseEditWizardGuard,\n    },\n    canDeactivate: [FileUploadProgressGuard],\n    component: CaseEditPageComponent,\n  }\n];\n","<h1 *ngIf=\"!caseTitle.label\" class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n\n<div *ngIf=\"caseTitle.label\" class=\"case-title\">\n  <ccd-label-field [caseField]=\"caseTitle\" [labelCanBeTranslated]=\"false\" [caseFields]=\"caseFields\"></ccd-label-field>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CaseView } from '../../domain/case-view/case-view.model';\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { Draft } from '../../domain/draft.model';\n\n@Component({\n  selector: 'ccd-case-header',\n  templateUrl: './case-header.html',\n  styleUrls: ['./case-header.scss'],\n  standalone: false\n})\n\nexport class CaseHeaderComponent implements OnInit {\n\n  @Input()\n  public caseDetails: CaseView;\n  public caseTitle: CaseField;\n  public caseFields: CaseField[];\n\n  public ngOnInit(): void {\n    this.caseTitle = new CaseField();\n    if (!this.isDraft() && this.caseDetails.state.title_display) {\n      this.caseTitle.label = this.caseDetails.state.title_display;\n      this.caseFields = this.getCaseFields();\n    }\n  }\n\n  public isDraft(): boolean {\n    return Draft.isDraft(this.caseDetails.case_id);\n  }\n\n  private getCaseFields(): CaseField[] {\n    const caseDataFields = this.caseDetails.tabs.reduce((acc, tab) => {\n      return acc.concat(tab.fields);\n    }, []);\n\n    return caseDataFields.concat(this.caseDetails.metadataFields);\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { PaletteModule } from '../palette';\nimport { CaseHeaderComponent } from './case-header.component';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        RouterModule,\n        PaletteModule\n    ],\n    declarations: [\n        CaseHeaderComponent,\n    ],\n    exports: [\n        CaseHeaderComponent,\n    ]\n})\nexport class CaseHeaderModule {}\n","<pagination-template #p=\"paginationApi\" [id]=\"id\" [maxSize]=\"maxSize\" (pageChange)=\"pageChange.emit($event)\"\n  (pageBoundsCorrection)=\"pageBoundsCorrection.emit($event)\">\n  <nav role=\"navigation\" [attr.aria-label]=\"'Pagination' | rpxTranslate\">\n    <ul class=\"ngx-pagination\" [attr.aria-label]=\"screenReaderPaginationLabel | rpxTranslate\"\n      [class.responsive]=\"responsive\" *ngIf=\"!(autoHide && p.pages.length <= 1)\">\n      <li class=\"pagination-previous\" [class.disabled]=\"p.isFirstPage()\" *ngIf=\"directionLinks\">\n        <a tabindex=\"0\" *ngIf=\"1 < p.getCurrent()\" (keyup.enter)=\"p.previous()\" (click)=\"p.previous()\"\n          [attr.aria-label]=\"'Previous page' | rpxTranslate\">\n          {{ previousLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n        </a>\n        <span *ngIf=\"p.isFirstPage()\" [attr.aria-label]=\"'Previous page' | rpxTranslate\">\n          {{ previousLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n        </span>\n      </li>\n      <li class=\"small-screen\">\n        {{ p.getCurrent() }} / {{ p.getLastPage() }}\n      </li>\n      <li [class.current]=\"p.getCurrent() === page.value\" [class.ellipsis]=\"page.label === '...'\"\n        *ngFor=\"let page of p.pages\">\n        <a tabindex=\"0\" (keyup.enter)=\"p.setCurrent(page.value)\" (click)=\"p.setCurrent(page.value)\"\n          *ngIf=\"p.getCurrent() !== page.value\" [attr.aria-label]=\"(page.label === '...') ? ('Change pagination range' | rpxTranslate) : ('Page ' | rpxTranslate) + (page.label | number:'')\">\n          <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }} </span>\n          <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n        </a>\n        <a tabindex=\"0\" *ngIf=\"p.getCurrent() === page.value\">\n          <span class=\"show-for-sr\" [attr.current]=\"page\" [attr.aria-label]=\"screenReaderCurrentLabel\">{{ screenReaderCurrentLabel | rpxTranslate }} </span>\n          <span>{{ (page.label === '...') ? page.label : (page.label | number:'') }}</span>\n        </a>\n      </li>\n      <li class=\"pagination-next\" [class.disabled]=\"p.isLastPage()\" *ngIf=\"directionLinks\">\n        <a tabindex=\"0\" *ngIf=\"!p.isLastPage()\" (keyup.enter)=\"p.next()\" (click)=\"p.next()\"\n          [attr.aria-label]=\"'Next page' | rpxTranslate\">\n          {{ nextLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n        </a>\n        <span *ngIf=\"p.isLastPage()\">\n          {{ nextLabel | rpxTranslate }} <span class=\"show-for-sr\">{{ screenReaderPageLabel | rpxTranslate }}</span>\n        </span>\n      </li>\n    </ul>\n  </nav>\n</pagination-template>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nfunction coerceToBoolean(input: string | boolean): boolean {\n  return !!input && input !== 'false';\n}\n\n@Component({\n  selector: 'ccd-pagination',\n  templateUrl: './pagination.component.html',\n  styleUrls: ['./pagination.component.scss'],\n  standalone: false\n})\nexport class PaginationComponent {\n  @Input()\n  public visibilityLabel: string;\n  @Input() public id: string;\n  @Input() public maxSize = 7;\n  @Input() public previousLabel = 'Previous';\n  @Input() public nextLabel = 'Next';\n  @Input() public screenReaderPaginationLabel = 'Pagination';\n  @Input() public screenReaderPageLabel = 'page';\n  @Input() public screenReaderCurrentLabel = `You're on page`;\n  @Output() public pageChange: EventEmitter<number> = new EventEmitter<number>();\n  @Output() public pageBoundsCorrection: EventEmitter<number> = new EventEmitter<number>();\n\n  private pDirectionLinks = true;\n  private pAutoHide = false;\n  private pResponsive = false;\n\n  @Input()\n  public get directionLinks(): boolean {\n    return this.pDirectionLinks;\n  }\n\n  public set directionLinks(value: boolean) {\n    this.pDirectionLinks = coerceToBoolean(value);\n  }\n\n  @Input()\n  public get autoHide(): boolean {\n    return this.pAutoHide;\n  }\n\n  public set autoHide(value: boolean) {\n    this.pAutoHide = coerceToBoolean(value);\n  }\n\n  @Input()\n  public get responsive(): boolean {\n    return this.pResponsive;\n  }\n\n  public set responsive(value: boolean) {\n    this.pResponsive = coerceToBoolean(value);\n  }\n}\n","<table class=\"{{'govuk-table ' + classes}}\">\n  <caption class=\"govuk-table__caption\">{{caption | rpxTranslate}}</caption>\n  <thead class=\"govuk-table__head\">\n    <tr class=\"govuk-table__row\">\n      <td class=\"govuk-table__header\" *ngIf=\"selectionEnabled\">\n        <div class=\"govuk-checkboxes__item\">\n          <input class=\"govuk-checkboxes__input\" id=\"select-all\" name=\"select-all\" type=\"checkbox\" (change)=\"selectAll()\"\n                 [checked]=\"allOnPageSelected()\" [disabled]=\"!canAnyBeShared()\" />\n          <!-- This label element is used to hide the standard checkbox with a govuk-styled one -->\n          <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-all\" [attr.aria-labelledby]=\"'select-all'\">\n          </label>\n        </div>\n      </td>\n      <th class=\"govuk-table__header\" scope=\"col\" *ngFor=\"let h of tableConfig.columnConfigs\">{{h.header | rpxTranslate}}</th>\n    </tr>\n  </thead>\n  <tbody class=\"govuk-table__body\">\n    <ng-container *ngFor=\"let c of cases | paginate: { itemsPerPage: pageSize, currentPage: currentPageNo, totalItems: totalResultsCount };  index as i\">\n      <tr data-selector=\"table-row\" class=\"govuk-table__row\">\n        <td data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" *ngIf=\"selectionEnabled\">\n          <div class=\"govuk-checkboxes__item\">\n            <input class=\"govuk-checkboxes__input\" id=\"select-{{ c[tableConfig.idField] || i }}\" name=\"select-{{ c[tableConfig.idField] || i }}\"\n                  type=\"checkbox\" (change)=\"changeSelection(c)\" [checked]=\"isSelected(c)\" [disabled]=\"!canBeShared(c)\" (keyup)=\"onKeyUp($event, c)\" />\n            <!-- This label element is used to hide the standard checkbox with a govuk-styled one -->\n            <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ c[tableConfig.idField] || i }}\" [attr.aria-labelledby]=\"'select-' + (c[tableConfig.idField] || i)\">\n            </label>\n          </div>\n        </td>\n        <ng-container *ngFor=\"let col of tableConfig.columnConfigs; first as isFirst\">\n          <th data-selector=\"table-header\" class=\"govuk-table__header\" scope=\"row\" *ngIf=\"isFirst && firstCellIsHeader\">\n            <ng-container *ngIf=\"!col.type || col.type === 'text'\">{{c[col.key] | rpxTranslate}}</ng-container>\n            <ng-container *ngIf=\"col.type === 'link' && c.routerLink\">\n              <a class=\"govuk-link\" [routerLink]=\"c.routerLink\">{{c[col.key] | rpxTranslate}}</a>\n            </ng-container>\n          </th>\n          <td data-selector=\"table-cell\" class=\"govuk-table__cell\" *ngIf=\"!(isFirst && firstCellIsHeader)\" [ngSwitch]=\"col?.type\">\n            <ng-container *ngIf=\"col.type === 'link' && c.routerLink\">\n              <a class=\"govuk-link\" [routerLink]=\"c.routerLink\">{{c[col.key] | rpxTranslate}}</a>\n            </ng-container>\n            <ng-container *ngSwitchCase=\"'money'\">-{{ c[col.key] | currency:'GBP' }}</ng-container>\n            <ng-container *ngSwitchCase=\"'date'\">{{formatDate(c[col.key])}}</ng-container>\n            <ng-container *ngSwitchCase=\"'dateAtTime'\">{{formatDateAtTime(c[col.key])}}</ng-container>\n            <ng-container *ngSwitchDefault>{{c[col.key] | rpxTranslate}}</ng-container>\n          </td>\n        </ng-container>\n      </tr>\n    </ng-container>\n  </tbody>\n</table>\n<ccd-pagination *ngIf=\"totalResultsCount > pageSize\"\n  (pageChange)=\"goToPage($event)\"\n></ccd-pagination>\n","import { formatDate } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BrowserService } from '../../services/browser/browser.service';\n\nexport class DateTimeFormatUtils {\n  public static formatDateAtTime(date: Date, is24Hour: boolean): string {\n    return `${formatDate(date, 'dd MMM yyyy', 'en-GB')} at ${DateTimeFormatUtils.formatTime(date, is24Hour)}`;\n  }\n\n  public static formatTime(date: Date, is24Hour: boolean): string {\n    return is24Hour ? formatDate(date, 'HH:mm', 'en-GB') : formatDate(date, 'h:mm a', 'en-GB').toLowerCase();\n  }\n}\n\n@Component({\n  selector: 'ccd-case-list',\n  templateUrl: './case-list.component.html',\n  styleUrls: ['./case-list.component.scss'],\n  standalone: false\n})\nexport class CaseListComponent {\n\n  @Input() public classes = '';\n\n  @Input() public caption: string;\n  @Input() public firstCellIsHeader = false;\n\n  @Input() public cases: object[];\n\n  @Input() public tableConfig: TableConfig = {\n    idField: 'id',\n    columnConfigs: [\n      { header: 'Date', key: 'date', type: 'text' },\n      { header: 'Amount', key: 'amount' }\n    ]\n  };\n\n  @Input() public selectionEnabled = false;\n\n  @Output() public selection = new EventEmitter<any[]>();\n\n  @Input() public selectedCases: any[] = [];\n\n  @Input() public currentPageNo: number;\n\n  @Input() public totalResultsCount?: number;\n\n  @Input() public pageSize?: number;\n\n  @Output() public pageChange = new EventEmitter();\n\n  constructor(private readonly browserService: BrowserService) { }\n\n  public formatDate(date: Date): string {\n    return date ? formatDate(date, 'dd MMM yyyy', 'en-GB') : '-';\n  }\n\n  public formatDateAtTime(date: Date): string {\n    return date ? DateTimeFormatUtils.formatDateAtTime(date, false) : '-';\n  }\n\n  public canBeShared(c: any): boolean {\n    return true;\n  }\n\n  public canAnyBeShared(): boolean {\n    return this.cases.some(c => this.canBeShared(c));\n  }\n\n  public selectAll(): void {\n    if (this.allOnPageSelected()) {\n      // All cases already selected, so unselect all on this page\n      this.selectedCases = [];\n    } else {\n      this.cases.forEach(aCase => {\n        if (!this.isSelected(aCase) && this.canBeShared(aCase)) {\n          this.selectedCases = [... this.selectedCases, aCase];\n        }\n      });\n    }\n    this.selection.emit(this.selectedCases);\n  }\n\n  public changeSelection(aCase: any): void {\n    if (this.isSelected(aCase)) {\n      this.selectedCases.forEach((aSelectedCase, i) => {\n        if (aCase.case_id === aSelectedCase.case_id) {\n          this.selectedCases = this.selectedCases.slice(0, i).concat(this.selectedCases.slice(i + 1));\n        }\n      });\n    } else {\n      if (this.canBeShared(aCase)) {\n        this.selectedCases = [...this.selectedCases, aCase];\n      }\n    }\n    this.selection.emit(this.selectedCases);\n  }\n\n  public isSelected(aCase: any): boolean {\n    if (this.selectedCases) {\n      for (let index = 0, length = this.selectedCases.length; index < length; index++) {\n        if (aCase.case_id === this.selectedCases[index].case_id) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n\n  public allOnPageSelected(): boolean {\n    return !this.cases.some(aCase => !this.isSelected(aCase));\n  }\n\n  public onKeyUp($event: KeyboardEvent, aCase: any): void {\n    if ($event.key === 'Space') {\n      if (this.browserService.isFirefox || this.browserService.isSafari || this.browserService.isIEOrEdge) {\n        this.changeSelection(aCase);\n      }\n    }\n  }\n\n  public goToPage(pageNumber: number) {\n    this.currentPageNo = pageNumber;\n    this.pageChange.emit(pageNumber);\n  }\n}\n\nexport class TableColumnConfig {\n  public header: string;\n  public key: string;\n  public type?: string;\n  constructor() {\n    this.header = '';\n    this.key = '';\n    this.type = 'text';\n  }\n}\n\nexport class TableConfig {\n  // Specifies which field of an item uniquely identifies it among others of the same type\n  public idField: string;\n\n  public columnConfigs: TableColumnConfig[];\n\n  constructor() {\n    this.idField = '';\n    this.columnConfigs = [];\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgxPaginationModule, PaginatePipe } from 'ngx-pagination';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { PaginationComponent } from './pagination.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    NgxPaginationModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    PaginationComponent\n  ],\n  exports: [\n    PaginationComponent,\n    PaginatePipe\n  ],\n})\nexport class PaginationModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { BrowserService } from '../../services';\nimport { PaginationModule } from '../pagination/pagination.module';\nimport { CaseListComponent } from './case-list.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    RouterModule,\n    NgxPaginationModule,\n    PaginationModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [CaseListComponent],\n  exports: [CaseListComponent],\n  providers: [\n    BrowserService\n  ]\n})\nexport class CaseListModule { }\n","<form id=\"filters\" class=\"global-display\">\n  <div class=\"form-group flex\">\n    <fieldset class=\"heading-h2\" aria-label=\"Filters\">{{'Filters' | rpxTranslate }}</fieldset>\n    <button type=\"button\" class=\"button workbasket-filters-apply\" (click)=\"apply(true)\" [disabled]=\"isApplyButtonDisabled()\"\n        [title]=\"'Apply filter' | rpxTranslate\" [attr.aria-label]=\"'Apply filter' | rpxTranslate\">\n      {{'Apply' | rpxTranslate}}\n    </button>&nbsp;&nbsp;&nbsp;\n    <button type=\"button\" (click)=\"reset()\" class=\"button button-secondary\"\n        [title]=\"'Reset filter' | rpxTranslate\" [attr.aria-label]=\"'Reset filter' | rpxTranslate\">\n      {{'Reset' | rpxTranslate}}\n    </button>\n  </div>\n\n  <div class=\"form-group\">\n    <label class=\"form-label\" for=\"wb-jurisdiction\">{{'Jurisdiction' | rpxTranslate}}</label>\n    <select class=\"form-control form-control-3-4 ccd-dropdown\" id=\"wb-jurisdiction\"\n            name=\"jurisdiction\" [(ngModel)]=\"selected.jurisdiction\" aria-controls=\"search-result\"\n            (change)=\"onJurisdictionIdChange()\">\n      <option *ngIf=\"!workbasketDefaults\" [ngValue]=\"null\">{{'Select a value' | rpxTranslate}}</option>\n      <option *ngFor=\"let j of jurisdictions\" [ngValue]=\"j\">{{j.name | rpxTranslate}}</option>\n    </select>\n  </div>\n\n  <div class=\"form-group\">\n    <label class=\"form-label\" for=\"wb-case-type\">{{'Case type' | rpxTranslate}}</label>\n    <select class=\"form-control form-control-3-4 ccd-dropdown\" id=\"wb-case-type\"\n            name=\"case-type\" [(ngModel)]=\"selected.caseType\" [disabled]=\"isCaseTypesDropdownDisabled()\"\n            (change)=\"onCaseTypeIdChange()\" aria-controls=\"search-result\">\n      <option *ngIf=\"!workbasketDefaults\" [ngValue]=\"null\">{{'Select a value' | rpxTranslate}}</option>\n      <option *ngFor=\"let ct of selectedJurisdictionCaseTypes\" [ngValue]=\"ct\">{{ct.name | rpxTranslate}}</option>\n    </select>\n  </div>\n\n  <div class=\"form-group\">\n    <label class=\"form-label\" for=\"wb-case-state\">{{'State' | rpxTranslate}}</label>\n    <select class=\"form-control form-control-3-4 ccd-dropdown\" id=\"wb-case-state\"\n            name=\"state\" [(ngModel)]=\"selected.caseState\" [disabled]=\"isCaseStatesDropdownDisabled()\"\n            aria-controls=\"search-result\">\n      <option [ngValue]=\"null\">{{'Any' | rpxTranslate}}</option>\n      <option *ngFor=\"let cs of selectedCaseTypeStates\" [ngValue]=\"cs\">{{cs.name | rpxTranslate}}</option>\n    </select>\n  </div>\n\n  <ng-container ccdConditionalShowForm *ngIf=\"isSearchableAndWorkbasketInputsReady()\" [formGroup]=\"formGroup\" [contextFields]=\"caseFields\">\n    <div id=\"dynamicFilters\">\n      <div class=\"form-group\" *ngFor=\"let workbasketInput of workbasketInputs\">\n        <ccd-field-write [caseField]=\"workbasketInput.field\" [formGroup]=\"formGroup\" [isExpanded]=\"true\" [isInSearchBlock]=\"true\" (keyup.enter)=\"apply(null)\">\n        </ccd-field-write>\n      </div>\n    </div>\n  </ng-container>\n\n    <button type=\"button\" class=\"button\" (click)=\"scrollToTop()\"\n          [title]=\"'Back to top' | rpxTranslate\" [attr.aria-label]=\"'Back to top' | rpxTranslate\">{{'Back to top' | rpxTranslate}}\n    </button>\n</form>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { CaseState } from '../../domain/definition/case-state.model';\nimport { CaseTypeLite } from '../../domain/definition/case-type-lite.model';\nimport { Jurisdiction } from '../../domain/definition/jurisdiction.model';\nimport { WorkbasketInputModel } from '../../domain/workbasket/workbasket-input.model';\nimport { AlertService } from '../../services/alert/alert.service';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\nimport { JurisdictionService } from '../../services/jurisdiction/jurisdiction.service';\nimport { OrderService } from '../../services/order/order.service';\nimport { WindowService } from '../../services/window/window.service';\nimport { WorkbasketInputFilterService } from '../../services/workbasket/workbasket-input-filter.service';\n\nconst FORM_GROUP_VAL_LOC_STORAGE = 'workbasket-filter-form-group-value';\nconst SAVED_QUERY_PARAM_LOC_STORAGE = 'savedQueryParams';\nconst REGION_LIST_AND_FRC_FILTER = 'regionList';\n\n@Component({\n  selector: 'ccd-workbasket-filters',\n  templateUrl: './workbasket-filters.component.html',\n  styleUrls: ['./workbasket-filters.component.scss'],\n  standalone: false\n})\nexport class WorkbasketFiltersComponent implements OnInit {\n  public static readonly PARAM_JURISDICTION = 'jurisdiction';\n  public static readonly PARAM_CASE_TYPE = 'case-type';\n  public static readonly PARAM_CASE_STATE = 'case-state';\n  public caseFields: CaseField[];\n\n  @Input()\n  public jurisdictions: Jurisdiction[];\n\n  @Input()\n  public defaults;\n\n  @Output()\n  public onApply: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  public onReset: EventEmitter<any> = new EventEmitter();\n\n  public workbasketInputs: WorkbasketInputModel[];\n  public workbasketInputsReady: boolean;\n\n  public workbasketDefaults: boolean;\n\n  public selected: {\n    init?: boolean,\n    jurisdiction?: Jurisdiction,\n    caseType?: CaseTypeLite,\n    caseState?: CaseState,\n    formGroup?: FormGroup,\n    page?: number,\n    metadataFields?: string[]\n  // EXUI-3162 - selected is never undefined\n  } = {};\n\n  public formGroup: FormGroup = new FormGroup({});\n\n  public selectedJurisdictionCaseTypes?: CaseTypeLite[];\n  public selectedCaseTypeStates?: CaseState[];\n\n  public initialised = false;\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly workbasketInputFilterService: WorkbasketInputFilterService,\n    private readonly orderService: OrderService,\n    private readonly jurisdictionService: JurisdictionService,\n    private readonly alertService: AlertService,\n    private readonly windowService: WindowService) {\n  }\n\n  public scrollToTop(): void {\n    window.scrollTo({ top: 0, behavior: 'smooth' });\n  }\n\n  private getDefaultJurisdiction(): Jurisdiction {\n    if (!this.jurisdictions || this.jurisdictions.length === 0) {\n      return null;\n    }\n    return this.defaults.jurisdiction_id\n      ? this.jurisdictions.find(j => this.defaults.jurisdiction_id === j.id)\n      : this.jurisdictions[0];\n  }\n  private getDefaultCaseType(): CaseTypeLite {\n    return this.defaults.case_type_id\n      ? this.getDefaultJurisdiction()?.caseTypes.find(ct => this.defaults.case_type_id === ct.id)\n      : this.getDefaultJurisdiction()?.caseTypes[0];\n  }\n\n  public ngOnInit(): void {\n    this.selected = {\n      jurisdiction: null,\n      caseType: null,\n      formGroup: null,\n      caseState: undefined,\n      page: 1,\n      metadataFields: []\n    };\n    // EXUI-3162 - do not use defaults unless present\n    if (this.defaults) {\n      const j = this.getDefaultJurisdiction();\n      const ct = this.getDefaultCaseType();\n      j.currentCaseType = ct;\n      this.selected.jurisdiction = j ? j : null;\n      this.selected.caseType = ct ? ct : null;\n    }\n    this.jurisdictionService.announceSelectedJurisdiction(this.selected.jurisdiction);\n    this.route.queryParams.subscribe(params => {\n      if (!this.initialised || !params || !Object.keys(params).length) {\n        this.initFilters(false);\n        this.initialised = true;\n      }\n    });\n  }\n\n  public apply(init: boolean): void {\n    // Save filters as query parameters for current route\n    const queryParams = {};\n    if (this.selected.jurisdiction) {\n      queryParams[WorkbasketFiltersComponent.PARAM_JURISDICTION] = this.selected.jurisdiction.id;\n    }\n    if (this.selected.caseType) {\n      queryParams[WorkbasketFiltersComponent.PARAM_CASE_TYPE] = this.selected.caseType.id;\n    }\n    if (this.selected.caseState) {\n      queryParams[WorkbasketFiltersComponent.PARAM_CASE_STATE] = this.selected.caseState.id;\n    }\n    // without explicitly preserving alerts any message on the page\n    // would be cleared out because of this initial navigation.\n    // The above is only true if no alerts were set prior to loading case list page.\n    if (!this.alertService.isPreserveAlerts()) {\n      this.alertService.setPreserveAlerts(!this.initialised);\n    }\n    if (Object.keys(this.formGroup.controls).length === 0) {\n      this.selected.formGroup = JSON.parse(localStorage.getItem(FORM_GROUP_VAL_LOC_STORAGE));\n    } else {\n      // Update form group filters\n      this.updateFormGroupFilters();\n\n      this.selected.formGroup = this.formGroup;\n    }\n    this.selected.init = init;\n    this.selected.page = 1;\n    this.selected.metadataFields = this.getMetadataFields();\n    if (init) {\n      this.windowService.setLocalStorage(SAVED_QUERY_PARAM_LOC_STORAGE, JSON.stringify(queryParams));\n      if (Object.keys(this.formGroup.controls).length > 0) {\n        // Find all \"special case\" JudicialUser FormControl keys and remove the corresponding values from the\n        // FormGroup value because these values are not intended to be stored and subsequently passed as query string\n        // parameters when calling searchCases API endpoint\n        const judicialUserControlValuesToRemove =\n          Object.keys(this.formGroup.controls).filter((key) => key.endsWith('_judicialUserControl'));\n        judicialUserControlValuesToRemove.forEach((controlKey) => delete this.formGroup.value[controlKey]);\n        this.windowService.setLocalStorage(FORM_GROUP_VAL_LOC_STORAGE, JSON.stringify(this.formGroup.value));\n      }\n    }\n    // Announce selected jurisdiction via JurisdictionService\n    if (this.selected.jurisdiction) {\n      // Set the selected case type as the current case type of the selected jurisdiction\n      this.selected.jurisdiction.currentCaseType = this.selected.caseType;\n      this.jurisdictionService.announceSelectedJurisdiction(this.selected.jurisdiction);\n    }\n    // Apply filters\n    this.onApply.emit({ selected: this.selected, queryParams });\n    this.setFocusToTop();\n  }\n\n  public reset(): void {\n    this.windowService.removeLocalStorage(FORM_GROUP_VAL_LOC_STORAGE);\n    this.windowService.removeLocalStorage(SAVED_QUERY_PARAM_LOC_STORAGE);\n    setTimeout(() => {\n      this.resetFieldsWhenNoDefaults();\n      this.onReset.emit(true);\n    }, 500);\n  }\n\n  public getMetadataFields(): string[] {\n    if (this.workbasketInputs) {\n      return this.workbasketInputs\n        .filter(workbasketInput => workbasketInput.field.metadata === true)\n        .map(workbasketInput => workbasketInput.field.id);\n    }\n  }\n\n  public onJurisdictionIdChange() {\n    if (this.selected.jurisdiction) {\n      this.jurisdictionService.announceSelectedJurisdiction(this.selected.jurisdiction);\n      this.selectedJurisdictionCaseTypes = this.selected.jurisdiction.caseTypes.length > 0\n        ? this.selected.jurisdiction.caseTypes : null;\n      // Line was too long for linting so refactored it.\n      if (this.workbasketDefaults && this.selectedJurisdictionCaseTypes) {\n        this.selected.caseType = this.selectedJurisdictionCaseTypes[0];\n      } else {\n        this.selected.caseType = null;\n      }\n\n      this.selected.caseState = null;\n      this.clearWorkbasketInputs();\n\n      if (!this.isApplyButtonDisabled()) {\n        this.onCaseTypeIdChange();\n      }\n    } else {\n      this.resetCaseType();\n      this.resetCaseState();\n    }\n  }\n\n  public onCaseTypeIdChange(): void {\n    if (this.selected.caseType) {\n      this.selectedCaseTypeStates = this.sortStates(this.selected.caseType.states);\n      this.selected.caseState = null;\n      this.formGroup = new FormGroup({});\n      this.clearWorkbasketInputs();\n      if (!this.isApplyButtonDisabled()) {\n        this.workbasketInputFilterService.getWorkbasketInputs(this.selected.jurisdiction.id, this.selected.caseType.id).pipe(\n          take(1)\n        ).subscribe(workbasketInputs => {\n          this.workbasketInputsReady = true;\n          this.workbasketInputs = workbasketInputs\n            .sort(this.orderService.sortAsc);\n          const formValue = this.windowService.getLocalStorage(FORM_GROUP_VAL_LOC_STORAGE);\n\n          workbasketInputs.forEach(item => {\n            if (item.field.elementPath) {\n              item.field.id = `${item.field.id}.${item.field.elementPath}`;\n            }\n            item.field.label = item.label;\n            if (formValue) {\n              const searchFormValueObject = JSON.parse(formValue);\n              item.field.value = searchFormValueObject[item.field.id];\n            }\n          });\n          this.getCaseFields();\n        }, error => {\n          console.log('Workbasket input fields request will be discarded reason: ', error.message);\n        });\n      }\n    } else {\n      this.resetCaseState();\n    }\n  }\n\n  public isCaseTypesDropdownDisabled(): boolean {\n    return !this.selectedJurisdictionCaseTypes;\n  }\n\n  public isCaseStatesDropdownDisabled(): boolean {\n    return !this.selected.caseType || !(this.selected.caseType.states && this.selected.caseType.states.length > 0);\n  }\n\n  public isApplyButtonDisabled(): boolean {\n    return !(this.selected.jurisdiction && this.selected.caseType);\n  }\n\n  public isSearchableAndWorkbasketInputsReady(): boolean {\n    return this.selected.jurisdiction && this.selected.caseType && this.workbasketInputsReady;\n  }\n\n  /**\n   * This method is used to clear the previously used\n   * form group control filter values to make sure only the\n   * currently selected form group control filter values are present.\n   *\n   * Has been implemented for 'Region and FRC filters' and can be extended\n   * in future to incorporate other dynamic filters.\n   */\n  public updateFormGroupFilters(): void {\n    // Read the form group local storage\n    const formGroupLS = JSON.parse(this.windowService.getLocalStorage(FORM_GROUP_VAL_LOC_STORAGE));\n\n    // Form group local storage is available and contains regionList property\n    if (!!formGroupLS && formGroupLS.hasOwnProperty(REGION_LIST_AND_FRC_FILTER)) {\n      if (this.formGroup.get(REGION_LIST_AND_FRC_FILTER)) {\n        // If regionList value does not match between local storage and form group\n        // then the filter value has been changed and we need to clear the old filter values\n        if (formGroupLS[REGION_LIST_AND_FRC_FILTER] !== this.formGroup.get(REGION_LIST_AND_FRC_FILTER).value) {\n          for (const key in formGroupLS) {\n            if (formGroupLS.hasOwnProperty(key)) {\n              const value = formGroupLS[key];\n              // Clear the filter form group control values if it has a value in local storage\n              // The regionList form group control value should be ignored as it always contain the latest value\n              if (key !== REGION_LIST_AND_FRC_FILTER && value !== null) {\n                this.formGroup.get(key).setValue(null);\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  private sortStates(states: CaseState[]) {\n    return states.sort(this.orderService.sortAsc);\n  }\n\n  /**\n   * Try to initialise filters based on query parameters or workbasket defaults.\n   * Query parameters, when available, take precedence over workbasket defaults.\n   */\n  private initFilters(init: boolean) {\n    const savedQueryParams = this.windowService.getLocalStorage(SAVED_QUERY_PARAM_LOC_STORAGE);\n    const routeSnapshot: ActivatedRouteSnapshot = this.route.snapshot;\n    if (savedQueryParams) {\n      routeSnapshot.queryParams = JSON.parse(savedQueryParams);\n    }\n    const selectedJurisdictionId = routeSnapshot.queryParams[WorkbasketFiltersComponent.PARAM_JURISDICTION] ||\n      (this.defaults && this.defaults.jurisdiction_id);\n    if (selectedJurisdictionId) {\n      this.selected.jurisdiction = this.jurisdictions.find(j => selectedJurisdictionId === j.id);\n      if (this.selected.jurisdiction && this.selected.jurisdiction.caseTypes.length > 0) {\n        this.selectedJurisdictionCaseTypes = this.selected.jurisdiction.caseTypes;\n        this.selected.caseType = this.selectCaseType(this.selected, this.selectedJurisdictionCaseTypes, routeSnapshot);\n        if (this.selected.caseType) {\n          this.onCaseTypeIdChange();\n          this.selected.caseState = this.selectCaseState(this.selected.caseType, routeSnapshot);\n        }\n        this.workbasketDefaults = true;\n      }\n    } else {\n      this.selected.jurisdiction = null;\n      this.selected.caseType = null;\n    }\n    this.apply(init);\n  }\n\n  private selectCaseState(caseType: CaseTypeLite, routeSnapshot: ActivatedRouteSnapshot): CaseState {\n    let caseState;\n    if (caseType) {\n      const selectedCaseStateId = this.selectCaseStateIdFromQueryOrDefaults(routeSnapshot, (this.defaults && this.defaults.state_id));\n      caseState = caseType.states.find(ct => selectedCaseStateId === ct.id);\n    }\n    return caseState ? caseState : null;\n  }\n\n  private selectCaseStateIdFromQueryOrDefaults(routeSnapshot: ActivatedRouteSnapshot, defaultCaseStateId: string): string {\n    return routeSnapshot.queryParams[WorkbasketFiltersComponent.PARAM_CASE_STATE] || defaultCaseStateId;\n  }\n\n  private selectCaseType(selected: any, caseTypes: CaseTypeLite[], routeSnapshot: ActivatedRouteSnapshot): CaseTypeLite {\n    let caseType;\n    if (selected.jurisdiction) {\n      const selectedCaseTypeId = this.selectCaseTypeIdFromQueryOrDefaults(routeSnapshot, (this.defaults && this.defaults.case_type_id));\n      caseType = caseTypes.find(ct => selectedCaseTypeId === ct.id);\n    }\n    return caseType ? caseType : caseTypes[0];\n  }\n\n  private selectCaseTypeIdFromQueryOrDefaults(routeSnapshot: ActivatedRouteSnapshot, defaultCaseTypeId: string): string {\n    return routeSnapshot.queryParams[WorkbasketFiltersComponent.PARAM_CASE_TYPE] || defaultCaseTypeId;\n  }\n\n  private resetFieldsWhenNoDefaults() {\n    this.resetCaseState();\n    this.resetCaseType();\n    this.clearWorkbasketInputs();\n    this.workbasketDefaults = false;\n    this.selected.jurisdiction = null;\n    this.initialised = false;\n    this.initFilters(true);\n  }\n\n  private clearWorkbasketInputs() {\n    this.workbasketInputsReady = false;\n    this.workbasketInputs = [];\n  }\n\n  private resetCaseState() {\n    this.defaults.state_id = null;\n    this.selected.caseState = null;\n    this.selectedCaseTypeStates = null;\n  }\n\n  private resetCaseType() {\n    this.selected.caseType = undefined; // option should be blank rather than \"Select a value\" in case of reset.\n    this.selectedJurisdictionCaseTypes = null;\n  }\n\n  private setFocusToTop() {\n    window.scrollTo(0, 0);\n\n    const topContainer = document.getElementById('search-result-heading__text');\n    if (topContainer) {\n      topContainer.focus();\n    }\n  }\n\n  private getCaseFields(): void {\n    if (this.workbasketInputs) {\n      this.caseFields = this.workbasketInputs.map(item => FieldsUtils.convertToCaseField(item.field));\n    }\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { ConditionalShowModule } from '../../directives/conditional-show/conditional-show.module';\nimport { AlertService } from '../../services/alert/alert.service';\nimport { JurisdictionService } from '../../services/jurisdiction/jurisdiction.service';\nimport { OrderService } from '../../services/order/order.service';\nimport { WindowService } from '../../services/window/window.service';\nimport { WorkbasketInputFilterService } from '../../services/workbasket/workbasket-input-filter.service';\nimport { PaletteModule } from '../palette/palette.module';\nimport { WorkbasketFiltersComponent } from './workbasket-filters.component';\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        PaletteModule,\n        ConditionalShowModule,\n        RpxTranslationModule.forChild()\n    ],\n    declarations: [\n        WorkbasketFiltersComponent,\n    ],\n    exports: [\n        WorkbasketFiltersComponent,\n    ],\n    providers: [\n        WorkbasketInputFilterService,\n        OrderService,\n        JurisdictionService,\n        AlertService,\n        WindowService,\n    ]\n})\nexport class WorkbasketFiltersModule {}\n","export type AccessTypeEnum =\n    'read'\n    | 'create'\n    | 'update';\n\nexport const READ_ACCESS: AccessTypeEnum = 'read';\nexport const CREATE_ACCESS: AccessTypeEnum = 'create';\nexport const UPDATE_ACCESS: AccessTypeEnum = 'update';\n","<ccd-workbasket-filters\n  *ngIf=\"isVisible\"\n  [jurisdictions]=\"jurisdictions\"\n  [defaults]=\"defaults\"\n  (onApply)=\"onWrapperApply($event)\"\n  (onReset)=\"onWrapperReset($event)\"\n></ccd-workbasket-filters>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { READ_ACCESS } from '../../domain/case-view/access-types.model';\nimport { Jurisdiction } from '../../domain/definition/jurisdiction.model';\nimport { DefinitionsService } from '../../services/definitions/definitions.service';\n\n@Component({\n  selector: 'ccd-case-list-filters',\n  templateUrl: './case-list-filters.component.html',\n  standalone: false\n})\nexport class CaseListFiltersComponent implements OnInit {\n\n  @Input()\n  public defaults;\n\n  @Output()\n  public onApply: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  public onReset: EventEmitter<any> = new EventEmitter();\n\n  public jurisdictions: Jurisdiction[];\n  public isVisible: boolean;\n\n  constructor(\n    private readonly definitionsService: DefinitionsService,\n  ) {\n  }\n\n  public ngOnInit(): void {\n    this.isVisible = false;\n\n    this.definitionsService.getJurisdictions(READ_ACCESS)\n      .subscribe(jurisdictions => {\n        this.isVisible = jurisdictions.length > 0;\n        this.jurisdictions = jurisdictions;\n      });\n  }\n\n  public onWrapperApply(value) {\n    this.onApply.emit(value);\n  }\n\n  public onWrapperReset(value) {\n    this.onReset.emit(value);\n  }\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { AlertService, DefinitionsModule, JurisdictionService, OrderService, WindowService,\n    WorkbasketInputFilterService } from '../../services';\nimport { PaletteModule } from '../palette';\nimport { WorkbasketFiltersModule } from '../workbasket-filters';\nimport { CaseListFiltersComponent } from './case-list-filters.component';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        PaletteModule,\n        DefinitionsModule,\n        WorkbasketFiltersModule,\n        RpxTranslationModule.forChild()\n    ],\n    declarations: [\n        CaseListFiltersComponent,\n    ],\n    exports: [\n        CaseListFiltersComponent,\n    ],\n    providers: [\n        WorkbasketInputFilterService,\n        OrderService,\n        JurisdictionService,\n        AlertService,\n        WindowService\n    ]\n})\nexport class CaseListFiltersModule {}\n","// tslint:disable:variable-name\nimport { Type } from 'class-transformer';\nimport { CaseTab } from '../../../domain/case-view/case-tab.model';\nimport { CaseViewEvent } from '../../../domain/case-view/case-view-event.model';\nimport { Jurisdiction } from '../../../domain/definition/jurisdiction.model';\n\n// @dynamic\nexport class CaseHistoryCaseType {\n  public id: string;\n  public name: string;\n  public description?: string;\n\n  @Type(() => Jurisdiction)\n  public jurisdiction: Jurisdiction;\n}\n\n// @dynamic\nexport class CaseHistory {\n  public case_id?: string;\n\n  @Type(() => CaseHistoryCaseType)\n  public caseType: CaseHistoryCaseType;\n\n  @Type(() => CaseTab)\n  public tabs: CaseTab[];\n\n  @Type(() => CaseViewEvent)\n  public event: CaseViewEvent;\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { plainToClass } from 'class-transformer';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { HttpErrorService } from '../../../services/http/http-error.service';\nimport { HttpService } from '../../../services/http/http.service';\nimport { CaseHistory } from '../domain/case-history.model';\n\n@Injectable()\nexport class CaseHistoryService {\n  public static readonly V2_MEDIATYPE_CASE_EVENT_VIEW =\n    'application/vnd.uk.gov.hmcts.ccd-data-store-api.ui-event-view.v2+json;charset=UTF-8';\n\n  constructor(private readonly httpService: HttpService,\n              private readonly httpErrorService: HttpErrorService,\n              private readonly appConfig: AbstractAppConfig) {}\n\n  public get(caseId: string, eventId: string): Observable<CaseHistory> {\n    const url = this.appConfig.getCaseHistoryUrl(caseId, eventId);\n    const headers = new HttpHeaders()\n      .set('experimental', 'true')\n      .set('Accept', CaseHistoryService.V2_MEDIATYPE_CASE_EVENT_VIEW)\n      .set('Content-Type', 'application/json');\n\n    return this.httpService\n      .get(url, {headers, observe: 'body'})\n      .pipe(\n        map((caseHistory: object) => plainToClass(CaseHistory, caseHistory)),\n        catchError(\n        (error: any): any => {\n          this.httpErrorService.setError(error);\n          return throwError(error);\n        }\n      )) as Observable<CaseHistory>;\n  }\n}\n","<div *ngIf=\"isDataLoaded()\">\n  <div class=\"grid-row\">\n    <div class=\"column-full\">\n      <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n    </div>\n  </div>\n  <div class=\"grid-row\">\n    <div class=\"column-full\">\n      <div>\n        <h2 class=\"heading-h2\">{{'Event Details' | rpxTranslate}}</h2>\n        <table class=\"EventDetails\" aria-describedby=\"event details table\">\n          <tbody>\n          <tr>\n            <th>{{'Date' | rpxTranslate}}</th>\n            <td>{{caseHistory.event.timestamp | ccdDate : 'local'}}</td>\n          </tr>\n          <tr>\n            <th>{{'Author' | rpxTranslate}}</th>\n            <td>{{caseHistory.event.user_first_name | titlecase}} {{caseHistory.event.user_last_name | uppercase}}</td>\n          </tr>\n          <tr>\n            <th>{{'End state' | rpxTranslate}}</th>\n            <td>{{caseHistory.event.state_name}}</td>\n          </tr>\n          <tr>\n            <th>{{'Event' | rpxTranslate}}</th>\n            <td>{{caseHistory.event.event_name}}</td>\n          </tr>\n          <tr>\n            <th>{{'Summary' | rpxTranslate}}</th>\n            <td>{{caseHistory.event.summary | ccdDash}}</td>\n          </tr>\n          <tr>\n            <th>{{'Comment' | rpxTranslate}}</th>\n            <td>{{caseHistory.event.comment | ccdDash}}</td>\n          </tr>\n          </tbody>\n        </table>\n      </div>\n      <div>\n        <h2 class=\"heading-h2\">{{'Case Details' | rpxTranslate}}</h2>\n        <ng-container *ngFor=\"let tab of tabs\">\n          <div class=\"caseHistorySection\">\n            <h3 class=\"heading-h3\">{{tab.label}}</h3>\n            <table class=\"CaseHistory\" id=\"{{tab.id}}\" [attr.aria-describedby]=\"'case history table' | rpxTranslate\">\n              <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true\">\n                <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"tab.fields\" [hidden]=\"field.hidden\">\n                  <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n                    <tr *ngSwitchCase=\"true\">\n                      <th id=\"case-viewer-label-header\">\n                        <div class=\"case-viewer-label\">{{field.label}}</div>\n                      </th>\n                      <td>\n                        <ccd-field-read [caseField]=\"field\" [caseReference]=\"caseHistory.case_id\"></ccd-field-read>\n                      </td>\n                    </tr>\n                    <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n                      <th colspan=\"2\">\n                        <ccd-field-read [caseField]=\"field\" [caseReference]=\"caseHistory.case_id\"></ccd-field-read>\n                      </th>\n                    </tr>\n                  </ng-container>\n                </div>\n              </ng-container>\n            </table>\n          </div>\n        </ng-container>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription, throwError } from 'rxjs';\nimport { catchError, map, take } from 'rxjs/operators';\nimport { ShowCondition } from '../../directives/conditional-show/domain/conditional-show.model';\nimport { CaseTab } from '../../domain/case-view/case-tab.model';\nimport { CaseView } from '../../domain/case-view/case-view.model';\nimport { HttpError } from '../../domain/http/http-error.model';\nimport { AlertService } from '../../services/alert/alert.service';\nimport { OrderService } from '../../services/order/order.service';\nimport { CaseNotifier } from '../case-editor/services/case.notifier';\nimport { CaseHistory } from './domain/case-history.model';\nimport { CaseHistoryService } from './services/case-history.service';\n\n@Component({\n  selector: 'ccd-case-history',\n  templateUrl: './case-history.component.html',\n  styleUrls: ['./case-history.component.scss'],\n  standalone: false\n})\nexport class CaseHistoryComponent implements OnInit, OnDestroy {\n  public static readonly PARAM_EVENT_ID = 'eid';\n\n  private static readonly ERROR_MESSAGE = 'No case history to show';\n\n  @Input()\n  public event: string;\n\n  public caseHistory: CaseHistory;\n  public caseDetails: CaseView;\n  public tabs: CaseTab[];\n  public caseSubscription: Subscription;\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly alertService: AlertService,\n    private readonly orderService: OrderService,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly caseHistoryService: CaseHistoryService) { }\n\n  public ngOnInit() {\n    this.caseSubscription = this.caseNotifier.caseView\n    .pipe(take(1))\n    .subscribe((caseDetails) => {\n      this.caseDetails = caseDetails;\n      const eventId = this.route.snapshot.paramMap.get(CaseHistoryComponent.PARAM_EVENT_ID) || this.event;\n      this.caseHistoryService\n        .get(this.caseDetails.case_id, eventId)\n        .pipe(\n          map(caseHistory => {\n            if (!caseHistory) {\n              const error = new HttpError();\n              error.message = CaseHistoryComponent.ERROR_MESSAGE;\n              throw error;\n            }\n\n            this.caseHistory = caseHistory;\n            this.tabs = this.orderService.sort(this.caseHistory.tabs);\n            this.tabs = this.sortTabFieldsAndFilterTabs(this.tabs);\n          }),\n          catchError(error => {\n            console.error(error);\n            if (error.status !== 401 && error.status !== 403) {\n              this.alertService.error(error.message);\n            }\n            return throwError(error);\n            })\n        ).toPromise();\n    });\n  }\n\n  public ngOnDestroy(): void {\n    if (this.caseSubscription) {\n      this.caseSubscription.unsubscribe();\n    }\n  }\n\n  public isDataLoaded() {\n    return !!(this.caseDetails && this.caseHistory);\n  }\n\n  private sortTabFieldsAndFilterTabs(tabs: CaseTab[]): CaseTab[] {\n    return tabs\n      .map(tab => Object.assign({}, tab, { fields: this.orderService.sort(tab.fields) }))\n      .filter(tab => ShowCondition.getInstance(tab.show_condition).matchByContextFields(tab.fields));\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { ConditionalShowModule, LabelSubstitutorModule } from '../../directives';\nimport { CaseHeaderModule } from '../case-header/case-header.module';\nimport { PaletteModule } from '../palette';\nimport { CaseHistoryComponent } from './case-history.component';\nimport { CaseHistoryService } from './services/case-history.service';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        RouterModule,\n        CaseHeaderModule,\n        ConditionalShowModule,\n        PaletteModule,\n        LabelSubstitutorModule,\n        RpxTranslationModule.forChild()\n\n    ],\n    declarations: [\n        CaseHistoryComponent\n    ],\n    providers: [\n        CaseHistoryService,\n    ],\n    exports: [\n        CaseHistoryComponent,\n    ]\n})\nexport class CaseHistoryModule {}\n","<div *ngIf=\"isDataLoaded()\">\n    <ng-container [ngSwitch]=\"displayMode\">\n        <ng-container *ngSwitchCase=\"dspMode.TIMELINE\">\n            <ccd-event-log [events]=\"events\" (onCaseHistory)=\"caseHistoryClicked($event)\" *ngIf=\"displayMode === dspMode.TIMELINE\">\n            </ccd-event-log>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"dspMode.DETAILS\">\n            <div class=\"govuk-breadcrumbs\">\n                <ol class=\"govuk-breadcrumbs__list\">\n                    <li class=\"govuk-breadcrumbs__list-item\">\n                        <a href=\"#\" (click)=\"goToCaseTimeline(); $event.preventDefault()\" class=\"govuk-back-link\">\n                          {{'Back to case timeline' | rpxTranslate}}\n                        </a>\n                    </li>\n                </ol>\n            </div>\n            <ccd-case-history [event]=\"selectedEventId\"></ccd-case-history>\n        </ng-container>\n    </ng-container>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CaseViewEvent } from '../../domain/case-view/case-view-event.model';\nimport { HttpError } from '../../domain/http/http-error.model';\nimport { AlertService } from '../../services/alert/alert.service';\nimport { CaseNotifier, CasesService } from '../case-editor';\n\nexport enum CaseTimelineDisplayMode {\n  TIMELINE,\n  DETAILS\n}\n@Component({\n  selector: 'ccd-case-timeline',\n  templateUrl: './case-timeline.component.html',\n  standalone: false\n})\nexport class CaseTimelineComponent implements OnInit {\n\n  @Input()\n  public case: string;\n\n  public events: CaseViewEvent[];\n  public selectedEventId: string;\n  public dspMode = CaseTimelineDisplayMode;\n  public displayMode: CaseTimelineDisplayMode = CaseTimelineDisplayMode.TIMELINE;\n\n  constructor(\n    private readonly caseNotifier: CaseNotifier,\n    private readonly casesService: CasesService,\n    private readonly alertService: AlertService,\n  ) {}\n\n  public ngOnInit() {\n    this.casesService\n      .getCaseViewV2(this.case)\n      .pipe(\n        map(caseView => {\n          this.events = caseView.events;\n          this.caseNotifier.announceCase(caseView);\n        })\n      )\n      .toPromise()\n      .catch((error: HttpError) => {\n        this.alertService.error({ phrase: error.message });\n        return throwError(error);\n      });\n  }\n\n  public isDataLoaded(): boolean {\n    return this.events ? true : false;\n  }\n\n  public caseHistoryClicked(eventId: string) {\n    this.displayMode = CaseTimelineDisplayMode.DETAILS;\n    this.selectedEventId = eventId;\n  }\n\n  public goToCaseTimeline(): void {\n    this.displayMode = CaseTimelineDisplayMode.TIMELINE;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { CaseHistoryModule } from '../case-history';\nimport { ErrorsModule } from '../error/errors.module';\nimport { PaletteModule } from '../palette';\nimport { CaseTimelineComponent } from './case-timeline.component';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        ErrorsModule,\n        FormsModule,\n        ReactiveFormsModule,\n        CaseHistoryModule,\n        PaletteModule,\n        RpxTranslationModule.forChild()\n    ],\n    declarations: [\n        CaseTimelineComponent\n    ],\n    exports: [\n        CaseTimelineComponent\n    ]\n})\n\nexport class CaseTimelineModule {}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, NavigationEnd, Resolve, Router } from '@angular/router';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { of, throwError } from 'rxjs';\nimport { catchError, filter, map } from 'rxjs/operators';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { CaseView, Draft } from '../../../domain';\nimport { DraftService, NavigationOrigin, SessionStorageService } from '../../../services';\nimport { NavigationNotifierService } from '../../../services/navigation/navigation-notifier.service';\nimport { PUI_CASE_MANAGER, USER_DETAILS } from '../../../utils';\nimport { CaseNotifier } from '../../case-editor';\n\n@Injectable()\nexport class CaseResolver implements Resolve<CaseView> {\n  public static readonly EVENT_REGEX = new RegExp('\\/trigger\\/.*?\\/submit$');\n  public static readonly PARAM_CASE_ID = 'cid';\n  public static readonly CASE_CREATED_MSG = 'The case has been created successfully';\n\n  public static readonly EVENT_ID_QM_RESPOND_TO_QUERY = 'eventId=queryManagementRespondQuery';\n\n  public static defaultWAPage = '/work/my-work/list';\n  public static defaultPage = '/cases';\n  // we need to run the CaseResolver on every child route of 'case/:jid/:ctid/:cid'\n  // this is achieved with runGuardsAndResolvers: 'always' configuration\n  // we cache the case view to avoid retrieving it for each child route\n  public previousUrl: string;\n  constructor(private caseNotifier: CaseNotifier,\n              private draftService: DraftService,\n              private navigationNotifierService: NavigationNotifierService,\n              private router: Router,\n              private sessionStorage: SessionStorageService) {\n    router.events.pipe(filter(event => event instanceof NavigationEnd))\n      .subscribe((event: NavigationEnd) => {\n        this.previousUrl = event.url;\n      });\n  }\n\n  public resolve(route: ActivatedRouteSnapshot): Promise<CaseView> {\n    const cid = route.paramMap.get(CaseResolver.PARAM_CASE_ID);\n    const currentUrl = this.router.url ?? '';\n\n    // Prevent resolving if eventId=queryManagementRespondQuery is in the URL\n    if (currentUrl.includes(CaseResolver.EVENT_ID_QM_RESPOND_TO_QUERY)) {\n      console.info('Skipping resolve for event queryManagementRespondQuery.');\n      this.goToDefaultPage();\n    }\n\n    if (!cid) {\n      console.info('No case ID available in the route. Will navigate to case list.');\n      // when redirected to case view after a case created, and the user has no READ access,\n      // the post returns no id\n      this.navigateToCaseList();\n    } else {\n      const resultPromise =\n        this.isRootCaseViewRoute(route) ? this.getAndCacheCaseView(cid)\n          : this.caseNotifier.cachedCaseView ? Promise.resolve(this.caseNotifier.cachedCaseView)\n            : this.getAndCacheCaseView(cid);\n\n      return resultPromise.then((caseView) => {\n        const newCaseInfo = {\n          caseId: caseView.case_id,\n          jurisdiction: caseView.case_type.jurisdiction.id,\n          caseType: caseView.case_type.id\n        };\n        this.sessionStorage.setItem('caseInfo', JSON.stringify(newCaseInfo));\n        return caseView;\n      });\n    }\n  }\n\n  private navigateToCaseList() {\n    this.navigationNotifierService.announceNavigation({action: NavigationOrigin.NO_READ_ACCESS_REDIRECTION});\n  }\n\n  private isRootCaseViewRoute(route: ActivatedRouteSnapshot) {\n    // is route case/:jid/:ctid/:cid\n    return ((!route.firstChild || !route.firstChild.url.length) && !this.isTabViewRoute(route));\n  }\n\n  private isTabViewRoute(route: ActivatedRouteSnapshot) {\n    // is route case/:jid/:ctid/:cid#fragment\n    return route.firstChild && route.firstChild.fragment;\n  }\n\n  private getAndCacheCaseView(cid): Promise<CaseView> {\n    if (this.caseNotifier.cachedCaseView && this.caseNotifier.cachedCaseView.case_id && this.caseNotifier.cachedCaseView.case_id === cid) {\n      this.caseNotifier.announceCase(this.caseNotifier.cachedCaseView);\n      return of(this.caseNotifier.cachedCaseView).toPromise();\n    } else {\n      if (Draft.isDraft(cid)) {\n        return this.getAndCacheDraft(cid);\n      } else {\n        return this.caseNotifier.fetchAndRefresh(cid)\n          .pipe(catchError(error => this.processErrorInCaseFetch(error, cid)))\n          .toPromise();\n      }\n    }\n  }\n\n  private getAndCacheDraft(cid): Promise<CaseView> {\n      return this.draftService\n      .getDraft(cid)\n      .pipe(\n        map(caseView => {\n          this.caseNotifier.cachedCaseView = plainToClassFromExist(new CaseView(), caseView);\n          this.caseNotifier.announceCase(this.caseNotifier.cachedCaseView);\n          return this.caseNotifier.cachedCaseView;\n        }),\n        catchError(error => this.processErrorInCaseFetch(error, cid))\n      ).toPromise();\n  }\n\n  private processErrorInCaseFetch(error: any, caseReference: string) {\n    console.error('!!! processErrorInCaseFetch !!!');\n    console.error(error);\n    // TODO Should be logged to remote logging infrastructure\n    if (error.status === 400) {\n      this.router.navigate(['/search/noresults']);\n      return of(null);\n    }\n    if (CaseResolver.EVENT_REGEX.test(this.previousUrl) && error.status === 404) {\n      this.router.navigate(['/list/case']);\n      return of(null);\n    }\n    // EXUI-4061 - navigate to no results page for 404 errors\n    if (error.status === 404) {\n      this.router.navigate(['/search/noresults']);\n      return of(null);\n    }\n    // Error 403, navigate to restricted case access page\n    if (error.status === 403) {\n      this.router.navigate([`/cases/restricted-case-access/${caseReference}`]);\n      return of(null);\n    }\n    if (error.status !== 401) {\n      this.router.navigate(['/error']);\n    }\n    this.goToDefaultPage();\n    return throwError(error);\n  }\n\n  // as discussed for EUI-5456, need functionality to go to default page\n  private goToDefaultPage(): void {\n    console.info('Going to default page!');\n    const userDetails = JSON.parse(this.sessionStorage.getItem(USER_DETAILS));\n    userDetails && userDetails.roles\n        && !userDetails.roles.includes(PUI_CASE_MANAGER)\n        &&\n        (userDetails.roles.includes('caseworker-ia-iacjudge')\n          || userDetails.roles.includes('caseworker-ia-caseofficer')\n          || userDetails.roles.includes('caseworker-ia-admofficer')\n          || userDetails.roles.includes('caseworker-civil')\n          || userDetails.roles.includes('caseworker-privatelaw'))\n        ? this.router.navigate([CaseResolver.defaultWAPage]) : this.router.navigate([CaseResolver.defaultPage]);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router } from '@angular/router';\nimport { throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { CaseEventTrigger } from '../../../domain/case-view/case-event-trigger.model';\nimport { Profile } from '../../../domain/profile/profile.model';\nimport { AlertService } from '../../../services/alert/alert.service';\nimport { ProfileNotifier } from '../../../services/profile/profile.notifier';\nimport { ProfileService } from '../../../services/profile/profile.service';\nimport { CasesService } from '../../case-editor/services/cases.service';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { ErrorNotifierService } from '../../../services/error/error-notifier.service';\nimport { LoadingService, SessionStorageService } from '../../../services';\n\n@Injectable()\nexport class EventTriggerResolver implements Resolve<CaseEventTrigger> {\n  public static readonly PARAM_CASE_ID = 'cid';\n  public static readonly PARAM_EVENT_ID = 'eid';\n  public static readonly IGNORE_WARNING = 'ignoreWarning';\n  private static readonly IGNORE_WARNING_VALUES = [ 'true', 'false' ];\n  private cachedEventTrigger: CaseEventTrigger;\n  private cachedProfile: Profile;\n  constructor(\n    private readonly casesService: CasesService,\n    private readonly alertService: AlertService,\n    private readonly profileService: ProfileService,\n    private readonly profileNotifier: ProfileNotifier,\n    private router: Router,\n    private appConfig: AbstractAppConfig,\n    private errorNotifier: ErrorNotifierService,\n    private readonly loadingService: LoadingService,\n    private readonly sessionStorageService: SessionStorageService,\n    ) {}\n\n  public resolve(route: ActivatedRouteSnapshot): Promise<CaseEventTrigger> {\n    const jurisdiction = route.parent?.paramMap.get('jurisdiction') || route.paramMap.get('jurisdiction');\n    const caseType = route.parent?.paramMap.get('caseType') || route.paramMap.get('caseType');\n    const eventTriggerId = route.paramMap.get(EventTriggerResolver.PARAM_EVENT_ID);\n    const cid = route.paramMap.get(EventTriggerResolver.PARAM_CASE_ID);\n    const query = route.queryParams;\n\n    // If jurisdiction or caseType are missing, redirect to correct URL\n    if (!jurisdiction || !caseType) {\n      const caseInfo = JSON.parse(this.sessionStorageService.getItem('caseInfo') || '{}');\n      const jurisdictionId = caseInfo?.jurisdiction;\n      const caseTypeId = caseInfo?.caseType;\n      const caseId = caseInfo?.caseId;\n      if (!jurisdictionId || !caseTypeId || !caseId || (caseId !== cid)) {\n        this.alertService.error({ phrase: 'Cannot determine jurisdiction and case type' });\n        this.router.navigate([this.router.url]);\n        return Promise.resolve(null);\n      }\n\n      this.router.navigate([\n        '/cases/case-details',\n        jurisdictionId,\n        caseTypeId,\n        cid,\n        'trigger',\n        eventTriggerId\n      ], {\n      queryParams: {\n        ...query\n      }\n      });\n      return Promise.resolve(null);\n    }\n\n    if (this.isRootTriggerEventRoute(route)) {\n      return this.getAndCacheEventTrigger(route);\n    }\n    if (this.cachedEventTrigger && ((route.params?.eid === this.cachedEventTrigger?.id) && (route.params?.cid === this.cachedEventTrigger?.case_id))) {\n      return Promise.resolve(this.cachedEventTrigger);\n    }\n    return this.getAndCacheEventTrigger(route);\n  }\n\n  private isRootTriggerEventRoute(route: ActivatedRouteSnapshot) {\n    // if route is 'trigger/:eid'\n    return !route.firstChild || !route.firstChild.url.length;\n  }\n\n  public resetCachedEventTrigger(): void {\n    this.cachedEventTrigger = null;\n  }\n\n  private getAndCacheEventTrigger(route: ActivatedRouteSnapshot): Promise<CaseEventTrigger> {\n    const cid = route.parent.paramMap.get(EventTriggerResolver.PARAM_CASE_ID);\n    // tslint:disable-next-line: prefer-const\n    let caseTypeId: string;\n    const jurisdiction = route.parent.paramMap.get('jurisdiction');\n    const caseType = route.parent.paramMap.get('caseType');\n    const eventTriggerId = route.paramMap.get(EventTriggerResolver.PARAM_EVENT_ID);\n    let ignoreWarning = route.queryParamMap.get(EventTriggerResolver.IGNORE_WARNING);\n    if (-1 === EventTriggerResolver.IGNORE_WARNING_VALUES.indexOf(ignoreWarning)) {\n      ignoreWarning = 'false';\n    }\n\n    if (this.cachedProfile) {\n      this.profileNotifier.announceProfile(this.cachedProfile);\n    } else {\n      this.profileService.get().subscribe(profile => {\n        this.cachedProfile = profile;\n        this.profileNotifier.announceProfile(profile);\n      });\n    }\n\n    return this.casesService\n      .getEventTrigger(caseTypeId, eventTriggerId, cid, ignoreWarning)\n      .pipe(\n        map((eventTrigger) => this.cachedEventTrigger = eventTrigger),\n        catchError((error) => {\n          error.details = { eventId: eventTriggerId, ...error.details };\n          this.alertService.setPreserveAlerts(true);\n          this.alertService.error(error.message);\n          this.errorNotifier.announceError(error);\n          if (!this.router.url?.includes('/cases/case-details/')) {\n            caseTypeId = route.parent.paramMap.get('caseType');\n            this.router.navigate([`/cases/case-details/${jurisdiction}/${caseType}/${cid}`], { fragment: 'Tasks' });\n          }\n          return throwError(error);\n        })\n      ).toPromise();\n  }\n}\n","<div *ngIf=\"isDataLoaded()\" class=\"screen-990\">\n  <ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n  <ccd-case-edit [caseDetails]=\"caseDetails\"\n                 [submit]=\"submit()\"\n                 [validate]=\"validate()\"\n                 [eventTrigger]=\"eventTrigger\"\n                 (cancelled)=\"cancel()\"\n                 (submitted)=\"submitted($event)\"></ccd-case-edit>\n</div>\n","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Navigation, Router } from '@angular/router';\nimport { Observable, Subscription, of } from 'rxjs';\nimport { Constants } from '../../../commons/constants';\nimport { Activity, CaseEventData, CaseEventTrigger, CaseView, DisplayMode } from '../../../domain';\nimport { CaseReferencePipe } from '../../../pipes';\nimport { ActivityPollingService, AlertService, EventStatusService, FieldsUtils, LoadingService, SessionStorageService } from '../../../services';\nimport { CaseNotifier, CasesService } from '../../case-editor';\nimport { EventTriggerResolver } from '../services';\n\n@Component({\n  selector: 'ccd-case-event-trigger',\n  templateUrl: './case-event-trigger.html',\n  standalone: false\n})\nexport class CaseEventTriggerComponent implements OnInit, OnDestroy {\n  public static readonly EVENT_COMPLETION_MESSAGE = `Case #%CASEREFERENCE% has been updated with event: %NAME%`;\n  public static readonly CALLBACK_FAILED_MESSAGE = ' but the callback service cannot be completed';\n\n  public BANNER = DisplayMode.BANNER;\n  public eventTrigger: CaseEventTrigger;\n  public caseDetails: CaseView;\n  public activitySubscription: Subscription;\n  public caseSubscription: Subscription;\n  public parentUrl: string;\n  public routerCurrentNavigation: Navigation;\n\n  constructor(\n    private readonly ngZone: NgZone,\n    private readonly casesService: CasesService,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly router: Router,\n    private readonly alertService: AlertService,\n    private readonly route: ActivatedRoute,\n    private readonly caseReferencePipe: CaseReferencePipe,\n    private readonly activityPollingService: ActivityPollingService,\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly loadingService: LoadingService,\n    private eventTriggerResolver: EventTriggerResolver\n  ) {\n    this.routerCurrentNavigation = this.router.getCurrentNavigation();\n  }\n\n  public ngOnInit(): void {\n    if (this.loadingService.hasSharedSpinner()){\n      this.loadingService.unregisterSharedSpinner();\n    }\n    if (this.route.snapshot.data.case) {\n      this.caseDetails = this.route.snapshot.data.case;\n    } else {\n      this.caseSubscription = this.caseNotifier.caseView.subscribe(caseDetails => {\n        this.caseDetails = caseDetails;\n      });\n    }\n    this.eventTrigger = this.route.snapshot.data.eventTrigger;\n    if (this.activityPollingService.isEnabled) {\n      this.ngZone.runOutsideAngular( () => {\n        this.activitySubscription = this.postEditActivity().subscribe(() => {\n          // console.log('Posted EDIT activity and result is: ' + JSON.stringify(_resolved));\n        });\n      });\n    }\n    this.route.parent.url.subscribe(path => {\n      this.parentUrl = `/${path.join('/')}`;\n    });\n  }\n\n  public ngOnDestroy(): void {\n    if (this.activitySubscription && this.activityPollingService.isEnabled) {\n      this.activitySubscription.unsubscribe();\n    }\n    if (!this.route.snapshot.data.case && this.caseSubscription) {\n      this.caseSubscription.unsubscribe();\n    }\n    this.eventTriggerResolver.resetCachedEventTrigger();\n  }\n\n  public postEditActivity(): Observable<Activity[]> {\n    return this.activityPollingService.postEditActivity(this.caseDetails.case_id);\n  }\n\n  public submit(): (sanitizedEditForm: CaseEventData) => Observable<object> {\n    return (sanitizedEditForm: CaseEventData) =>\n      this.casesService.createEvent(this.caseDetails, sanitizedEditForm);\n  }\n\n  public validate(): (sanitizedEditForm: CaseEventData, pageId: string) => Observable<object> {\n    return (sanitizedEditForm: CaseEventData, pageId: string) => {\n      // Bypass validation if the eventTrigger case fields contain a FlagLauncher field; this field type cannot be\n      // validated, unlike regular fields\n      return this.eventTrigger?.case_fields?.some((caseField) => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']))\n        ? of(null)\n        : this.casesService.validateCase(this.caseDetails.case_type.id, sanitizedEditForm, pageId);\n    };\n  }\n\n  public submitted(event: any): void {\n    const eventStatus: string = event['status'];\n    const taskCompletionFailed = this.sessionStorageService.getItem('taskCompletionError') === 'true';\n    this.router\n      .navigate([this.parentUrl])\n      .then(() => {\n        const caseReference = this.caseReferencePipe.transform(this.caseDetails.case_id.toString());\n        const replacements = { CASEREFERENCE: caseReference, NAME: this.eventTrigger.name };\n        this.alertService.setPreserveAlerts(true);\n        if (taskCompletionFailed) {\n          // if task still present in session storage, we know that the task has not been correctly completed\n          this.alertService.warning({\n            phrase: CaseEventTriggerComponent.EVENT_COMPLETION_MESSAGE + '. ' + Constants.TASK_COMPLETION_ERROR\n            , replacements});\n          this.sessionStorageService.removeItem('taskCompletionError');\n        } else if (EventStatusService.isIncomplete(eventStatus)) {\n          this.alertService.warning({\n            phrase: CaseEventTriggerComponent.EVENT_COMPLETION_MESSAGE + CaseEventTriggerComponent.CALLBACK_FAILED_MESSAGE,\n            replacements\n          });\n        } else {\n          this.alertService.success({\n            phrase: CaseEventTriggerComponent.EVENT_COMPLETION_MESSAGE,\n            replacements,\n            preserve: true\n          });\n        }\n      });\n  }\n\n  // replace the old link with the new one with jurisdiction and case type id\n  private getNavigationUrl(url: string): string {\n    const urlRegex = /\\/case-details\\/(\\d+)/;\n    const match = url.match(urlRegex);\n    if (match && /^\\d+$/.test(match[1]) && this.caseDetails?.case_type) {\n      const jurisdiction = this.caseDetails.case_type.jurisdiction.id;\n      const id = this.caseDetails.case_type.id;\n      return url.replace(\n        urlRegex,\n        `/case-details/${jurisdiction}/${id}/${match[1]}`\n      );\n    }\n    return url;\n  }\n\n  public cancel(): Promise<boolean> {\n    let previousUrl = this.routerCurrentNavigation?.previousNavigation?.finalUrl?.toString();\n    if (previousUrl) {\n      previousUrl = this.getNavigationUrl(previousUrl);\n      if (previousUrl.indexOf('#') > -1) {\n        const url = previousUrl.split('#')[0];\n        const fragment = previousUrl.split('#')[1].replace(/%20/g, ' ');\n        return this.router.navigate([url], { fragment: fragment });\n      } else {\n        return this.router.navigate([previousUrl]);\n      }\n    } else {\n      const updatedUrl = this.getNavigationUrl(this.parentUrl);\n      return this.router.navigate([updatedUrl]);\n    }\n  }\n\n  public isDataLoaded(): boolean {\n    return !!(this.eventTrigger && this.caseDetails);\n  }\n}\n","<div *ngIf=\"isDataLoaded()\">\n    <ccd-case-viewer [hasPrint]=\"hasPrint\"\n                     [hasEventSelector]=\"hasEventSelector\">\n    </ccd-case-viewer>\n</div>\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { plainToClassFromExist } from 'class-transformer';\nimport { Observable, Subscription, throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CaseView } from '../../../domain/case-view/case-view.model';\nimport { Draft } from '../../../domain/draft.model';\nimport { AlertService } from '../../../services/alert/alert.service';\nimport { DraftService } from '../../../services/draft/draft.service';\nimport { NavigationNotifierService } from '../../../services/navigation/navigation-notifier.service';\nimport { CaseNotifier } from '../../case-editor/services/case.notifier';\nimport { CasesService } from '../../case-editor/services/cases.service';\n\n\n@Component({\n  selector: 'ccd-case-view',\n  templateUrl: 'case-view.component.html',\n  standalone: false\n})\nexport class CaseViewComponent implements OnInit, OnDestroy {\n\n  @Input()\n  public case: string;\n  @Input()\n  public hasPrint = true;\n  @Input()\n  public hasEventSelector = true;\n\n  @Output()\n  public navigationTriggered: EventEmitter<any> = new EventEmitter();\n\n  public navigationSubscription: Subscription;\n  public caseDetails: CaseView;\n\n  constructor(\n    private readonly navigationNotifierService: NavigationNotifierService,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly casesService: CasesService,\n    private readonly draftService: DraftService,\n    private readonly alertService: AlertService,\n  ) {}\n\n  public ngOnInit(): void {\n    this.getCaseView(this.case)\n      .pipe(\n        map(caseView => {\n          this.caseDetails = plainToClassFromExist(new CaseView(), caseView);\n          this.caseNotifier.announceCase(this.caseDetails);\n        })\n      )\n      .toPromise()\n      .catch(error => this.checkErrorGettingCaseView(error));\n    this.navigationSubscription = this.navigationNotifierService.navigation.subscribe(navigation => {\n      this.navigationTriggered.emit(navigation);\n    });\n  }\n\n  public ngOnDestroy(): void {\n    if (this.navigationSubscription) {\n      this.navigationSubscription.unsubscribe();\n    }\n  }\n\n  public isDataLoaded(): boolean {\n    return !!this.caseDetails;\n  }\n\n  private getCaseView(cid): Observable<CaseView> {\n    if (Draft.isDraft(cid)) {\n      return this.getDraft(cid);\n    } else {\n      return this.casesService.getCaseViewV2(cid);\n    }\n  }\n\n  private getDraft(cid): Observable<CaseView> {\n    return this.draftService\n      .getDraft(cid);\n  }\n\n  private checkErrorGettingCaseView(error: any) {\n    // TODO Should be logged to remote logging infrastructure\n    console.error('Called checkErrorGettingCaseView.');\n    console.error(error);\n    if (error.status !== 401 && error.status !== 403) {\n      this.alertService.error(error.message);\n    }\n    return throwError(error);\n  }\n}\n","<ccd-loading-spinner  *ngIf=\"showSpinner\"></ccd-loading-spinner>\n<div>\n  <cut-alert type=\"information\">\n    <ng-container *ngIf=\"accessType === 'CHALLENGED'\">{{'This case requires' | rpxTranslate}} {{accessType | rpxTranslate | lowercase}} {{'access' | rpxTranslate}}.</ng-container>\n    <ng-container *ngIf=\"accessType === 'SPECIFIC'\">{{'Authorisation is needed to access this case' | rpxTranslate}}</ng-container>\n    <br />\n    <ng-container *ngIf=\"accessType === 'CHALLENGED'\">{{'This is because the case is outside your work area. If you request access to the case, it will be logged for auditing purposes' | rpxTranslate}}.</ng-container>\n    <ng-container *ngIf=\"accessType === 'SPECIFIC'\">{{\"This could be because it's outside your jurisdiction, or you may be excluded from the case. If you request access to this case, it will be logged for auditing purposes\" | rpxTranslate }}.</ng-container>\n  </cut-alert>\n  <h1 class=\"heading-h1\">#{{ caseDetails.case_id | ccdCaseReference}}</h1>\n  <h2 class=\"govuk-heading-m\">{{'Case details' | rpxTranslate}}</h2>\n  <dl class=\"govuk-summary-list\">\n    <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.basicFields?.caseNameHmctsInternal\">\n      <dt class=\"govuk-summary-list__key summary-key\">{{'Case name' | rpxTranslate}}</dt>\n      <dd class=\"govuk-summary-list__value\">{{caseDetails.basicFields.caseNameHmctsInternal | rpxTranslate}}</dd>\n    </div>\n    <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.case_type?.jurisdiction?.name\">\n      <dt class=\"govuk-summary-list__key summary-key\">{{'Service' | rpxTranslate}}</dt>\n      <dd class=\"govuk-summary-list__value\">{{caseDetails.case_type.jurisdiction.name | rpxTranslate}}</dd>\n    </div>\n    <div class=\"govuk-summary-list__row\" *ngIf=\"caseDetails.state?.description\">\n      <dt class=\"govuk-summary-list__key summary-key\">{{'State' | rpxTranslate}}</dt>\n      <dd class=\"govuk-summary-list__value\">{{caseDetails.state.description | rpxTranslate}}</dd>\n    </div>\n    <div class=\"govuk-summary-list__row\" *ngIf=\"courtOrHearingCentre\">\n      <dt class=\"govuk-summary-list__key summary-key\">{{'Court or hearing centre' | rpxTranslate}}</dt>\n      <dd class=\"govuk-summary-list__value\">{{courtOrHearingCentre | titlecase}}</dd>\n    </div>\n\n    <div class=\"govuk-summary-list__row\" *ngIf=\"accessType\">\n      <dt class=\"govuk-summary-list__key summary-key\">{{'Access' | rpxTranslate}}</dt>\n      <dd class=\"govuk-summary-list__value\">{{accessType | titlecase | rpxTranslate}}</dd>\n    </div>\n  </dl>\n</div>\n<div class=\"govuk-button-group\">\n  <button class=\"govuk-button govuk-!-margin-right-3\" [routerLink]=\"getRequestUrl(accessType)\">\n    {{'Request access' | rpxTranslate}}\n  </button>\n  <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n    <p>\n      <a class=\"govuk-body\" (click)=\"onCancel(); $event.preventDefault()\" href=\"#\">\n        {{'Cancel' | rpxTranslate}}\n      </a>\n    </p>\n  </div>\n</div>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { CaseView } from '../../../domain/case-view/case-view.model';\nimport { CasesService } from '../../case-editor/services/cases.service';\n\n@Component({\n  selector: 'ccd-case-basic-access-view',\n  templateUrl: 'case-basic-access-view.component.html',\n  standalone: false\n})\nexport class CaseBasicAccessViewComponent implements OnInit, OnDestroy {\n  public static CANCEL_LINK_DESTINATION = '/work/my-work/list';\n\n  @Input()\n  public caseDetails: CaseView = null;\n\n  @Input()\n  public accessType: string = null;\n\n  public courtOrHearingCentre: string = null;\n  public showSpinner: boolean;\n  private courtOrHearingCentreSubscription: Subscription;\n\n  constructor(\n    private readonly casesService: CasesService,\n    private readonly router: Router) {}\n\n  public ngOnInit(): void {\n    const locationId = this.caseDetails &&\n                        this.caseDetails.basicFields &&\n                        this.caseDetails.basicFields.caseManagementLocation &&\n                        this.caseDetails.basicFields.caseManagementLocation.baseLocation ?\n      this.caseDetails.basicFields.caseManagementLocation.baseLocation : null;\n\n    if (locationId) {\n      this.showSpinner = true;\n      this.courtOrHearingCentreSubscription = this.casesService.getCourtOrHearingCentreName(locationId).subscribe(courtOrHearingCentre => {\n        this.courtOrHearingCentre = courtOrHearingCentre[0] && courtOrHearingCentre[0].court_name ?\n        courtOrHearingCentre[0].court_name : null;\n        this.showSpinner = false;\n      },\n      error => this.showSpinner = false);\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (this.courtOrHearingCentreSubscription) {\n      this.courtOrHearingCentreSubscription.unsubscribe();\n    }\n  }\n\n  public onCancel(): void {\n    this.router.navigateByUrl(CaseBasicAccessViewComponent.CANCEL_LINK_DESTINATION);\n  }\n\n  public getRequestUrl(accessType: string): string {\n    return accessType === 'CHALLENGED' ? 'challenged-access-request' : 'specific-access-request';\n  }\n}\n","export enum CaseViewEventIds {\n  DELETE = 'DELETE',\n  QueryManagementRaiseQuery = 'queryManagementRaiseQuery',\n}\n","import { Component } from '@angular/core';\nimport { MatLegacyDialogRef as MatDialogRef } from '@angular/material/legacy-dialog';\n\n@Component({\n  selector: 'ccd-delete-or-cancel-dialog',\n  templateUrl: './delete-or-cancel-dialog.component.html',\n  styleUrls: ['../action-dialog.component.scss'],\n  standalone: false\n})\nexport class DeleteOrCancelDialogComponent {\n\n  public result: string;\n\n  constructor(private readonly matDialogRef: MatDialogRef<DeleteOrCancelDialogComponent>) {}\n\n  public delete() {\n    this.result = 'Delete';\n    this.matDialogRef.close(this.result);\n  }\n  public cancel() {\n    this.result = 'Cancel';\n    this.matDialogRef.close(this.result);\n  }\n}\n","<div>\n    <div class=\"dialog-header\">\n      <h2 (click)=\"cancel()\" class=\"heading-h2 x\">X</h2>\n    </div>\n    <div>\n      <h2 class=\"heading-h2 dialog-title\">{{'Are you sure you want to delete this draft?' | rpxTranslate}}</h2>\n    </div>\n    <div class=\"dialog-info\">\n      <span class=\"text-info\">{{'You are about to delete this draft. Are you sure you want to proceed?' | rpxTranslate}}</span>\n    </div>\n    <div>\n      <button type=\"button\" title=\"Delete\" class=\"button action-button\" (click)=\"delete()\">{{'Delete draft' | rpxTranslate}}</button>\n      <button type=\"button\" title=\"Cancel\" class=\"button button-secondary\" (click)=\"cancel()\">{{'Cancel' | rpxTranslate}}</button>\n    </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { DeleteOrCancelDialogComponent } from './delete-or-cancel-dialog';\nimport { DocumentDialogComponent } from './document-dialog';\nimport { RemoveDialogComponent } from './remove-dialog';\nimport { SaveOrDiscardDialogComponent } from './save-or-discard-dialog';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    DocumentDialogComponent,\n    DeleteOrCancelDialogComponent,\n    SaveOrDiscardDialogComponent,\n    RemoveDialogComponent,\n  ],\n  exports: [\n    DocumentDialogComponent,\n    DeleteOrCancelDialogComponent,\n    SaveOrDiscardDialogComponent,\n    RemoveDialogComponent,\n  ]\n})\nexport class DialogsModule {}\n","<!-- Generic error heading and error message to be displayed only if there are no specific callback errors or warnings, or no error details -->\n<div *ngIf=\"error && !(error.callbackErrors || error.callbackWarnings || error.details)\" class=\"error-summary\"\n     role=\"group\" aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n  <h1 class=\"heading-h1 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n    {{'Something went wrong' | rpxTranslate}}\n  </h1>\n  <div class=\"govuk-error-summary__body\" id=\"edit-case-event_error-summary-body\">\n    <p>{{\"We're working to fix the problem. Try again shortly.\" | rpxTranslate}}</p>\n    <p>\n      <a href=\"get-help\" target=\"_blank\">\n        {{\"Contact us\" | rpxTranslate}}</a> {{\"if you're still having problems.\" | rpxTranslate}}\n    </p>\n  </div>\n</div>\n<!-- Callback error heading and error message to be displayed if there are specific error details -->\n<div *ngIf=\"error && error.details\" class=\"error-summary\" role=\"group\"\n     aria-labelledby=\"edit-case-event_error-summary-heading\" tabindex=\"-1\">\n  <h2 class=\"heading-h2 error-summary-heading\" id=\"edit-case-event_error-summary-heading\">\n    {{'The callback data failed validation' | rpxTranslate}}\n  </h2>\n  <p>{{error.message | rpxTranslate}}</p>\n  <ul *ngIf=\"error.details?.field_errors\" class=\"error-summary-list\">\n    <li *ngFor=\"let fieldError of error.details.field_errors\">\n      {{fieldError.message | rpxTranslate}}\n    </li>\n  </ul>\n</div>\n<ccd-callback-errors\n  [triggerTextContinue]=\"triggerTextStart\"\n  [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n  [callbackErrorsSubject]=\"callbackErrorsSubject\"\n  (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n<div class=\"grid-row\">\n  <div class=\"column-one-half\">\n    <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n    <div class=\"case-viewer-controls\" *ngIf=\"hasPrint && !isDraft() && isPrintEnabled()\">\n      <a id=\"case-viewer-control-print\" routerLink=\"print\" class=\"button button-secondary\">{{'Print' | rpxTranslate}}</a>\n    </div>\n  </div>\n  <div *ngIf=\"hasEventSelector\" class=\"column-one-half\">\n    <ccd-event-trigger [isDisabled]=\"isTriggerButtonDisabled()\" [triggers]=\"caseDetails.triggers\"\n                       [triggerText]=\"triggerText\"\n                       [eventId]=\"eventId\"\n                       (onTriggerChange)=\"clearErrorsAndWarnings()\"\n                       (onTriggerSubmit)=\"applyTrigger($event)\"></ccd-event-trigger>\n  </div>\n</div>\n<div class=\"grid-row\" *ngIf=\"activeCaseFlags && !caseFlagsExternalUser\">\n  <div class=\"column-full\">\n    <ccd-notification-banner [notificationBannerConfig]=\"notificationBannerConfig\" (linkClicked)=\"onLinkClicked($event)\">\n    </ccd-notification-banner>\n  </div>\n</div>\n<div class=\"grid-row\">\n  <div class=\"column-full\">\n    <ng-container *ngIf=\"hasTabsPresent()\">\n      <mat-tab-group #tabGroup animationDuration=\"0ms\" (selectedIndexChange)=\"tabChanged($event)\" [disableRipple]=\"true\" [(selectedIndex)]=\"selectedTabIndex\"\n        [selectedIndex]=\"selectedTabIndex\">\n        <mat-tab *ngFor=\"let tab of prependedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n          <ng-template matTabContent>\n            <ng-container *ngIf=\"tab.id === 'tasks'\">\n              <exui-tasks-ce></exui-tasks-ce>\n            </ng-container>\n            <ng-container *ngIf=\"tab.id === 'roles-and-access'\">\n              <exui-roles-and-access-ce></exui-roles-and-access-ce>\n            </ng-container>\n          </ng-template>\n        </mat-tab>\n        <mat-tab *ngFor=\"let tab of sortedTabs; let curIdx=index\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\" [aria-label]=\"curIdx === 0 ? tab.label + ', Please use left and right arrow keys to navigate case tabs' : '' | rpxTranslate\">\n          <ng-template matTabContent>\n            <table [class]=\"tab.id\" [attr.aria-label]=\"'case viewer table' | rpxTranslate\">\n              <tbody>\n              <ng-container *ngFor=\"let field of tab | ccdTabFields | ccdReadFieldsFilter:false :undefined :true : formGroup?.controls['data']\">\n                <div ccdLabelSubstitutor [caseField]=\"field\" [contextFields]=\"caseFields\" [hidden]=\"field.hidden\">\n                  <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n                    <tr *ngSwitchCase=\"true\">\n                      <th id=\"case-viewer-field-label\" *ngIf=\"!isFieldToHaveNoLabel(field)\">\n                        <div class=\"case-viewer-label text-16\">\n                          {{field.label | rpxTranslate}}</div>\n                      </th>\n                      <td [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n                        <span class=\"text-16\">\n                          <ccd-field-read [topLevelFormGroup]=\"formGroup?.controls['data']\" [caseFields]=\"caseFields\"\n                                          [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\">\n                          </ccd-field-read>\n                        </span>\n                      </td>\n                    </tr>\n                    <tr *ngSwitchCase=\"false\" class=\"compound-field\">\n                      <th [id]=\"'case-viewer-field-read--' + field.id\" scope=\"col\">\n                        <span class=\"text-16\">\n                          <ccd-field-read [topLevelFormGroup]=\"formGroup.controls['data']\" [caseFields]=\"caseFields\"\n                                          [caseField]=\"field\" [caseReference]=\"caseDetails.case_id\">\n                          </ccd-field-read>\n                        </span>\n                      </th>\n                    </tr>\n                  </ng-container>\n                </div>\n              </ng-container>\n              </tbody>\n            </table>\n          </ng-template>\n        </mat-tab>\n        <mat-tab *ngFor=\"let tab of appendedTabs\" [id]=\"tab.id\" [label]=\"tab.label | rpxTranslate\">\n          <ng-template matTabContent>\n            <ng-container *ngIf=\"tab.id === 'hearings'\">\n              <exui-case-hearings-ce></exui-case-hearings-ce>\n            </ng-container>\n          </ng-template>\n        </mat-tab>\n      </mat-tab-group>\n    </ng-container>\n  </div>\n</div>\n","import { Location } from '@angular/common';\nimport {\n  ChangeDetectorRef, Component, Input, NgZone, OnChanges, OnDestroy, OnInit,\n  SimpleChanges, ViewChild\n} from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MatLegacyDialog as MatDialog, MatLegacyDialogConfig as MatDialogConfig } from '@angular/material/legacy-dialog';\nimport { MatLegacyTabGroup as MatTabGroup } from '@angular/material/legacy-tabs';\nimport { ActivatedRoute, NavigationEnd, Params, Router } from '@angular/router';\nimport { plainToClass } from 'class-transformer';\nimport { RpxTranslatePipe } from 'rpx-xui-translation';\nimport { Observable, Subscription } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport {\n  NotificationBannerConfig,\n  NotificationBannerHeaderClass,\n  NotificationBannerType\n} from '../../../../components/banners/notification-banner';\nimport { ShowCondition } from '../../../directives';\nimport { Activity, CaseField, CaseTab, CaseView, CaseViewTrigger, DRAFT_QUERY_PARAM, DisplayMode, Draft } from '../../../domain';\nimport { CaseViewEventIds } from '../../../domain/case-view/case-view-event-ids.enum';\nimport {\n  ActivityPollingService,\n  AlertService,\n  DraftService,\n  ErrorNotifierService,\n  FieldsUtils,\n  LoadingService,\n  NavigationNotifierService,\n  NavigationOrigin,\n  OrderService,\n  SessionStorageService\n} from '../../../services';\nimport { ConvertHrefToRouterService } from '../../case-editor/services/convert-href-to-router.service';\nimport { DeleteOrCancelDialogComponent } from '../../dialogs';\nimport { CallbackErrorsContext } from '../../error';\nimport { initDialog } from '../../helpers';\nimport { LinkedCasesService } from '../../palette/linked-cases/services';\nimport { CaseFlagStateService } from '../../case-editor/services/case-flag-state.service';\nimport { PVP_DISPLAY_TEXT, hasActivePvpFlagInCaseFields } from '../../palette/case-flag/utils/case-flag-priority.utils';\n\n@Component({\n  selector: 'ccd-case-full-access-view',\n  templateUrl: './case-full-access-view.component.html',\n  styleUrls: ['./case-full-access-view.component.scss'],\n  standalone: false\n})\nexport class CaseFullAccessViewComponent implements OnInit, OnDestroy, OnChanges {\n  public static readonly ORIGIN_QUERY_PARAM = 'origin';\n  public static readonly TRIGGER_TEXT_START = 'Go';\n  public static readonly TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Go';\n  public static readonly UNICODE_SPACE = '%20';\n  public static readonly EMPTY_SPACE = ' ';\n  private readonly HEARINGS_TAB_LABEL = 'Hearings';\n\n  @Input() public hasPrint = true;\n  @Input() public hasEventSelector = true;\n  @Input() public caseDetails: CaseView;\n  @Input() public prependedTabs: CaseTab[] = [];\n  @Input() public appendedTabs: CaseTab[] = [];\n\n  public BANNER = DisplayMode.BANNER;\n  public sortedTabs: CaseTab[];\n  public caseFields: CaseField[];\n  public formGroup: FormGroup;\n  public error: any;\n  public triggerTextStart = CaseFullAccessViewComponent.TRIGGER_TEXT_START;\n  public triggerTextIgnoreWarnings = CaseFullAccessViewComponent.TRIGGER_TEXT_CONTINUE;\n  public triggerText: string = CaseFullAccessViewComponent.TRIGGER_TEXT_START;\n  public ignoreWarning = false;\n  public activitySubscription: Subscription;\n  public caseSubscription: Subscription;\n  public errorSubscription: Subscription;\n  public dialogConfig: MatDialogConfig;\n  public message: string;\n  public subscription: Subscription;\n  public notificationBannerConfig: NotificationBannerConfig;\n  public selectedTabIndex = 0;\n  public activeCaseFlags = false;\n  public caseFlagsExternalUser = false;\n  private readonly caseFlagsReadExternalMode = '#ARGUMENT(READ,EXTERNAL)';\n  private readonly potentiallyViolentPersonFlagPrefix = `${PVP_DISPLAY_TEXT}.`;\n  private subs: Subscription[] = [];\n  public eventId: string;\n  public isEventButtonClicked: boolean = false;\n\n  public callbackErrorsSubject: Observable<any>;\n  @ViewChild('tabGroup', { static: false }) public tabGroup: MatTabGroup;\n\n  constructor(\n    private readonly ngZone: NgZone,\n    private readonly route: ActivatedRoute,\n    private readonly router: Router,\n    private readonly navigationNotifierService: NavigationNotifierService,\n    private readonly orderService: OrderService,\n    private readonly activityPollingService: ActivityPollingService,\n    private readonly dialog: MatDialog,\n    private readonly alertService: AlertService,\n    private readonly draftService: DraftService,\n    private readonly errorNotifierService: ErrorNotifierService,\n    private readonly convertHrefToRouterService: ConvertHrefToRouterService,\n    private readonly location: Location,\n    private readonly crf: ChangeDetectorRef,\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly rpxTranslationPipe: RpxTranslatePipe,\n    private readonly loadingService: LoadingService,\n    private readonly linkedCasesService: LinkedCasesService,\n    private readonly caseFlagStateService: CaseFlagStateService,\n    private zone: NgZone\n  ) {\n  }\n\n  public ngOnInit(): void {\n    this.callbackErrorsSubject = this.errorNotifierService.errorSource.pipe(filter((x) => {\n      if (x && x.status !== 401 && x.status !== 403) {\n        this.error = x;\n        this.isEventButtonClicked = false;\n        return true;\n      }\n      return false;\n    }));\n\n    initDialog();\n    this.init();\n\n    this.sessionStorageService?.removeItem('eventUrl');\n\n    this.subscription = this.convertHrefToRouterService?.getHrefMarkdownLinkContent().subscribe((hrefMarkdownLinkContent: string) => {\n      // do not convert router with initial default value; convert to router only on updated link content\n      if (hrefMarkdownLinkContent !== 'Default') {\n        this.convertHrefToRouterService.callAngularRouter(hrefMarkdownLinkContent);\n      }\n    });\n\n    if (this.activityPollingService.isEnabled && !this.activitySubscription) {\n      this.ngZone.runOutsideAngular(() => {\n        this.activitySubscription = this.postViewActivity().subscribe();\n      });\n    }\n\n    this.checkRouteAndSetCaseViewTab();\n\n    // Check for active Case Flags\n    this.activeCaseFlags = this.hasActiveCaseFlags();\n    this.linkedCasesService.resetLinkedCaseData();\n    this.caseFlagStateService.resetInitialCaseFlags();\n  }\n\n  public ngOnChanges(changes: SimpleChanges) {\n    if (changes && changes.prependedTabs && !changes.prependedTabs.firstChange) {\n      this.init();\n      this.crf.detectChanges();\n      this.organiseTabPosition();\n    }\n  }\n\n  public isPrintEnabled(): boolean {\n    return this.caseDetails.case_type.printEnabled;\n  }\n\n  public ngOnDestroy(): void {\n    if (this.activityPollingService.isEnabled) {\n      this.unsubscribe(this.activitySubscription);\n    }\n    if (!this.route.snapshot.data.case) {\n      this.unsubscribe(this.caseSubscription);\n    }\n    this.unsubscribe(this.callbackErrorsSubject);\n    this.unsubscribe(this.errorSubscription);\n    this.unsubscribe(this.subscription);\n    this.subs.forEach((s) => s.unsubscribe());\n  }\n\n  public unsubscribe(subscription: any) {\n    if (subscription) {\n      subscription.unsubscribe();\n    }\n  }\n\n  private normalizeLabel(label: string): string {\n    return (label || '').toString().replace(/\\s+/g, '').toLowerCase();\n  }\n\n  private getAbsoluteTabIndexByLabel(label: string): number {\n    const normalized = this.normalizeLabel(label);\n    const tabs = this.tabGroup?._tabs?.toArray?.() ?? [];\n    return tabs.findIndex((tab) => this.normalizeLabel(tab?.textLabel) === normalized);\n  }\n\n  private selectTabByLabel(label: string): void {\n    const index = this.getAbsoluteTabIndexByLabel(label);\n    if (index > -1) {\n      this.selectedTabIndex = index;\n      if (this.tabGroup) {\n        this.tabGroup.selectedIndex = index;\n      }\n    }\n  }\n\n  private checkRouteAndSetCaseViewTab(): void {\n    this.subs.push(this.router.events\n      .pipe(filter((event) => event instanceof NavigationEnd))\n      .subscribe((event: NavigationEnd) => {\n        const url = event && (event as any).url;\n        if (url) {\n          const tabUrl = url ? url.split('#') : null;\n          const tab = tabUrl && tabUrl.length > 1 ? tabUrl[tabUrl.length - 1].replaceAll('%20', ' ') : '';\n          // Use absolute index rather than relative position\n          this.selectTabByLabel(tab);\n        }\n      }));\n  }\n\n  public postViewActivity(): Observable<Activity[]> {\n    return this.activityPollingService.postViewActivity(this.caseDetails?.case_id);\n  }\n\n  public clearErrorsAndWarnings(): void {\n    this.resetErrors();\n    this.ignoreWarning = false;\n    this.triggerText = CaseFullAccessViewComponent.TRIGGER_TEXT_START;\n    this.isEventButtonClicked = false;\n  }\n\n  public async applyTrigger(trigger: CaseViewTrigger): Promise<void> {\n    if (this.isEventButtonClicked){\n      return;\n    }\n    this.isEventButtonClicked = true;\n    const spinner = this.loadingService.register();\n    this.loadingService.addSharedSpinner(spinner);\n    this.errorNotifierService.announceError(null);\n    const theQueryParams: Params = {};\n\n    if (this.ignoreWarning) {\n      theQueryParams.ignoreWarning = this.ignoreWarning;\n    }\n\n    // we may need to take care of different triggers in the future\n    if (trigger.id === CaseViewEventIds.QueryManagementRaiseQuery) {\n      await this.router.navigate([`/query-management/query/${this.caseDetails.case_id}`]);\n      this.loadingService.unregister(spinner);\n    } else if (trigger.id === CaseViewEventIds.DELETE) {\n      const dialogRef = this.dialog.open(DeleteOrCancelDialogComponent, this.dialogConfig);\n      dialogRef.afterClosed().subscribe((result) => {\n        if (result === 'Delete') {\n          this.draftService.deleteDraft(this.caseDetails.case_id)\n            .subscribe(() => {\n              this.navigationNotifierService.announceNavigation({ action: NavigationOrigin.DRAFT_DELETED });\n            }, () => {\n              this.navigationNotifierService.announceNavigation({ action: NavigationOrigin.ERROR_DELETING_DRAFT });\n            });\n        }\n      });\n    } else if (this.isDraft() && trigger.id !== CaseViewEventIds.DELETE) {\n      theQueryParams[DRAFT_QUERY_PARAM] = this.caseDetails.case_id;\n      theQueryParams[CaseFullAccessViewComponent.ORIGIN_QUERY_PARAM] = 'viewDraft';\n      this.navigationNotifierService.announceNavigation(\n        {\n          action: NavigationOrigin.DRAFT_RESUMED,\n          jid: this.caseDetails.case_type.jurisdiction.id,\n          ctid: this.caseDetails.case_type.id,\n          etid: trigger.id,\n          queryParams: theQueryParams\n        });\n    } else {\n      this.navigationNotifierService.announceNavigation(\n        {\n          action: NavigationOrigin.EVENT_TRIGGERED,\n          queryParams: theQueryParams,\n          etid: trigger.id,\n          relativeTo: this.route\n        });\n    }\n  }\n\n  public hasTabsPresent(): boolean {\n    return this.sortedTabs.length > 0 || this.prependedTabs.length > 0 || this.appendedTabs.length > 0;\n  }\n\n  public callbackErrorsNotify(callbackErrorsContext: CallbackErrorsContext): void {\n    this.ignoreWarning = callbackErrorsContext.ignoreWarning;\n    this.triggerText = callbackErrorsContext.triggerText;\n    this.eventId = callbackErrorsContext.eventId;\n  }\n\n  public isDraft(): boolean {\n    return Draft.isDraft(this.caseDetails.case_id);\n  }\n\n  public isTriggerButtonDisabled(): boolean {\n    return (this.error\n      && this.error.callbackErrors\n      && this.error.callbackErrors.length)\n      || (this.error\n        && this.error.details\n        && this.error.details.field_errors\n        && this.error.details.field_errors.length);\n  }\n\n  public organiseTabPosition(): void {\n    const url = this.location.path(true);\n    let hashValue = url.substring(url.indexOf('#') + 1);\n    const hasHash = url.includes('#');\n    const isSpecialTabPath = url.includes('roles-and-access') || url.includes('tasks') || url.includes('hearings');\n    if (!hasHash && !isSpecialTabPath) {\n      const paths = url.split('/');\n      const lastPath = decodeURIComponent(paths[paths.length - 1]);\n      let foundTab: CaseTab = null;\n      if (!this.prependedTabs) {\n        this.prependedTabs = [];\n      }\n      const additionalTabs = [...this.prependedTabs, ...this.appendedTabs];\n      if (additionalTabs && additionalTabs.length) {\n        foundTab = additionalTabs.find((caseTab: CaseTab) => caseTab.id.toLowerCase() === lastPath.toLowerCase());\n      }\n      if (foundTab) {\n        this.router.navigate([\n          'cases',\n          'case-details',\n          this.caseDetails.case_type.jurisdiction.id,\n          this.caseDetails.case_type.id,\n          this.caseDetails.case_id,\n          foundTab.id\n        ]).then(() => {\n          this.selectTabByLabel(foundTab.label);\n        });\n      } else {\n        this.caseDetails.tabs.sort((aTab, bTab) => aTab.order > bTab.order ? 1 : (bTab.order > aTab.order ? -1 : 0));\n        const preferredLabel = FieldsUtils.defaultTabList?.[this.caseDetails?.case_type?.id];\n        let preSelectTab: CaseTab = null;\n        if (preferredLabel) {\n          preSelectTab = this.caseDetails.tabs.find((tab) => (tab.label === preferredLabel) || (tab.id === preferredLabel)) ?? null;\n        }\n\n        if (!preSelectTab) {\n          preSelectTab = this.findPreSelectedActiveTab();\n        }\n        const renderedTabs = this.tabGroup?._tabs?.toArray?.() ?? [];\n        const preferredRendered = preSelectTab && renderedTabs.some((tab) => tab.textLabel === preSelectTab.label || tab.textLabel?.toLowerCase() === preSelectTab.label?.toLowerCase());\n        if (!preferredRendered) {\n          preSelectTab = this.findPreSelectedActiveTab();\n        }\n        this.router.navigate([\n          'cases',\n          'case-details',\n          this.caseDetails.case_type.jurisdiction.id,\n          this.caseDetails.case_type.id,\n          this.caseDetails.case_id\n        ], { fragment: preSelectTab.label }).then(() => {\n          this.selectTabByLabel(preSelectTab.label);\n        });\n      }\n    } else {\n      const regExp = new RegExp(CaseFullAccessViewComponent.UNICODE_SPACE, 'g');\n      hashValue = hashValue.replace(regExp, CaseFullAccessViewComponent.EMPTY_SPACE);\n      if (hashValue.includes('hearings')) {\n        hashValue = 'hearings';\n      } else if (hashValue.includes('roles-and-access') || hashValue.includes('tasks')) {\n        hashValue = hashValue.includes('roles-and-access') ? 'roles and access' : 'tasks';\n      }\n      this.selectTabByLabel(hashValue);\n      if (!hasHash && isSpecialTabPath) {\n        const tabIndex = this.getAbsoluteTabIndexByLabel(hashValue);\n        const tabLabel = tabIndex > -1 ? this.tabGroup?._tabs?.toArray?.()[tabIndex]?.textLabel : null;\n        if (tabLabel) {\n          this.router.navigate([\n            'cases',\n            'case-details',\n            this.caseDetails.case_type.jurisdiction.id,\n            this.caseDetails.case_type.id,\n            this.caseDetails.case_id\n          ], { fragment: tabLabel });\n        }\n      }\n    }\n    // once the page has beeen stabilised, ensure the selected tab is scrolled into view\n    this.zone.onStable.pipe(take(1)).subscribe(() => {\n      const header: any = (this.tabGroup as any)._tabHeader;\n      if (this.selectedTabIndex < 5){\n        header?._scrollToLabel?.(0);\n      } else {\n        header?._scrollToLabel?.(this.selectedTabIndex);\n      }\n      this.tabGroup.realignInkBar();\n    });\n  }\n\n  public findPreSelectedActiveTab(): CaseTab {\n    const unOrderedTabsInSortedTabs = this.caseDetails.tabs\n      .filter((tab) => !tab.order && this.sortedTabs.some((sortedTab) => sortedTab.id === tab.id));\n    return unOrderedTabsInSortedTabs.length ? unOrderedTabsInSortedTabs[0] : this.sortedTabs[0];\n  }\n\n  // Refactored under EXUI-110 to address infinite tab loop to use tabIndexChanged instead\n  public tabChanged(tabIndexChanged: number): void {\n    void tabIndexChanged;\n    const matTab = this.tabGroup._tabs.find((tab) => tab.isActive);\n    const tabLabel = matTab?.textLabel;\n    this.router.navigate(['cases', 'case-details', this.caseDetails.case_type.jurisdiction.id, this.caseDetails.case_type.id, this.caseDetails.case_id], { fragment: tabLabel });\n  }\n\n  public onLinkClicked(triggerOutputEventText: string): void {\n    // Get the *absolute* (not relative) index of the target tab and set as the active tab, using the selectedIndex input\n    // of mat-tab-group (bound to selectedTabIndex)\n    const targetTabIndex = this.tabGroup._tabs.toArray().findIndex((tab) => tab.textLabel === triggerOutputEventText);\n    if (targetTabIndex > -1) {\n      this.selectedTabIndex = targetTabIndex;\n      this.tabGroup.selectedIndex = targetTabIndex;\n    }\n  }\n\n  public hasActiveCaseFlags(): boolean {\n    // Determine which tab contains the FlagLauncher CaseField type, from the CaseView object in the snapshot data\n    const caseFlagsTab = this.caseDetails?.tabs?.find(\n      (tab) => tab.fields?.some((caseField) => FieldsUtils.isFlagLauncherCaseField(caseField))\n    ) ?? null;\n\n    if (caseFlagsTab) {\n      // Check whether the FlagLauncher CaseField is in external mode or not; the notification banner should not be\n      // displayed for external users\n      this.caseFlagsExternalUser = caseFlagsTab.fields.find(\n        (caseField) => FieldsUtils.isFlagLauncherCaseField(caseField)).display_context_parameter === this.caseFlagsReadExternalMode;\n\n      // Get the active case flags count\n      // Cannot filter out anything other than to remove the FlagLauncher CaseField because Flags fields may be\n      // contained in other CaseField instances, either as a sub-field of a Complex field, or fields in a collection\n      // (or sub-fields of Complex fields in a collection)\n      const activeCaseFlags = caseFlagsTab.fields\n        .filter((caseField) => !FieldsUtils.isFlagLauncherCaseField(caseField) && caseField.value)\n        .reduce((active, caseFlag) => {\n          return FieldsUtils.countActiveFlagsInCaseField(active, caseFlag);\n        }, 0);\n\n      if (activeCaseFlags > 0) {\n        const hasActivePotentiallyViolentPersonFlag = this.hasActivePotentiallyViolentPersonFlag(caseFlagsTab.fields);\n        const baseDescription = activeCaseFlags > 1\n          ? `There are ${activeCaseFlags} active flags on this case.` : 'There is 1 active flag on this case.';\n        const description = hasActivePotentiallyViolentPersonFlag\n          ? `${this.potentiallyViolentPersonFlagPrefix} ${baseDescription}`\n          : baseDescription;\n        // Initialise and display notification banner\n        this.notificationBannerConfig = {\n          bannerType: NotificationBannerType.INFORMATION,\n          headingText: 'Important',\n          description,\n          showLink: true,\n          linkText: 'View case flags',\n          triggerOutputEvent: true,\n          triggerOutputEventText: caseFlagsTab.label,\n          headerClass: NotificationBannerHeaderClass.INFORMATION\n        };\n\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  private hasActivePotentiallyViolentPersonFlag(caseFields: CaseField[]): boolean {\n    return hasActivePvpFlagInCaseFields(caseFields);\n  }\n\n  /**\n   * Indicates that a CaseField is to be displayed without a label, as is expected for all ComponentLauncher-type\n   * fields.\n   * @param caseField The `CaseField` instance to check\n   * @returns `true` if it should not have a label; `false` otherwise\n   */\n  public isFieldToHaveNoLabel(caseField: CaseField): boolean {\n    return caseField.field_type.type === 'ComponentLauncher'\n      && caseField.display_context_parameter === '#ARGUMENT(CaseFileView)';\n  }\n\n  private init(): void {\n    // Clone and sort tabs array\n    this.sortedTabs = this.orderService.sort(this.caseDetails?.tabs);\n    this.caseFields = this.getTabFields();\n    this.sortedTabs = this.sortTabFieldsAndFilterTabs(this.sortedTabs);\n    this.formGroup = this.buildFormGroup(this.caseFields);\n    if (this.caseDetails?.triggers && this.error) {\n      this.resetErrors();\n    }\n  }\n\n  private sortTabFieldsAndFilterTabs(tabs: CaseTab[]): CaseTab[] {\n    return tabs?.map((tab) => ({ \n        ...tab,\n        fields: this.orderService.sort(tab.fields) \n      }))\n      .filter((tab) => ShowCondition.getInstance(tab.show_condition).matchByContextFields(this.caseFields));\n  }\n\n  private getTabFields(): CaseField[] {\n    const caseDataFields = this.sortedTabs?.reduce((acc, tab) => {\n      return acc.concat(plainToClass(CaseField, tab.fields));\n    }, []);\n\n    return caseDataFields?.concat(this.caseDetails.metadataFields);\n  }\n\n  /**\n   * For EUI-3825:\n   * Builds a FormGroup from all the CaseFields contained within the view.\n   * This FormGroup is necessary for evaluation the show/hide conditions of\n   * fields that are dependent on a field only available on a DIFFERENT tab.\n   */\n  private buildFormGroup(caseFields: CaseField[]): FormGroup {\n    let value: object = {};\n    if (caseFields) {\n      caseFields.forEach((caseField) => {\n        value = {\n          ...value,\n          [caseField.id]: caseField.value\n        };\n      });\n    }\n    return new FormGroup({ data: new FormControl(value) });\n  }\n\n  private resetErrors(): void {\n    this.errorNotifierService.announceError(null);\n    this.alertService.clear();\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AbstractAppConfig } from '../../../../../app.config';\n\n@Pipe({\n  name: 'ccdPrintUrl',\n  standalone: false\n})\nexport class PrintUrlPipe implements PipeTransform {\n  private static readonly MSIE_BROWSER_NAME = 'MSIE';\n  private static readonly IE11_BROWSER_ENGINE = 'Trident';\n\n  constructor(private readonly appConfig: AbstractAppConfig) {}\n\n  /**\n   * Takes a \"remote\" Print Service URL (for example, as returned by calling the `/documents` CCD endpoint) and\n   * rewrites it into a \"local\", application-specific URL for the front-end. The resulting URL is of the form:\n   *\n   * Configurable \"Local URL\" (e.g. `/print`) + _pathname_ from original \"remote URL\"\n   * (e.g. `/jurisdictions/TEST/case-types/Test1/cases/1111222233334444`)\n   *\n   * @param remoteUrl The \"remote\" URL to rewrite\n   * @returns A rewritten URL as per the above description, or the original `remoteUrl` if it is `null`, `undefined`,\n   * or the empty string\n   */\n  public transform(remoteUrl: string): string {\n    if (remoteUrl?.length > 0) {\n      let printServiceUrlPathname: string;\n\n      /**\n       * Check navigator.userAgent to see if the browser is IE or not. Check for either the browser name, \"MSIE\", or\n       * the rendering engine, \"Trident\" (used to identify IE 11 because it no longer reports as \"MSIE\").\n       * Note: IE does not support the URL interface and requires a workaround to parse URLs.\n       */\n      if (navigator.userAgent.indexOf(PrintUrlPipe.MSIE_BROWSER_NAME) !== -1 ||\n          navigator.userAgent.indexOf(PrintUrlPipe.IE11_BROWSER_ENGINE) !== -1) {\n        // Workaround for not being able to use the URL interface\n        const urlParser = document.createElement('a');\n        urlParser.href = remoteUrl;\n        // Get the pathname from the anchor element with the \"remote\" Print Service URL\n        printServiceUrlPathname = urlParser.pathname;\n        if (printServiceUrlPathname[0] !== '/') {\n          // Fix for IE11; it returns the pathname without leading slash\n          printServiceUrlPathname = `/${printServiceUrlPathname}`;\n        }\n      } else {\n        // Get the pathname parsed from the \"remote\" Print Service URL object\n        printServiceUrlPathname = new URL(remoteUrl).pathname;\n      }\n\n      // Return an amended URL comprising the \"local\" Print Service URL (usually /print) and the \"remote\" pathname\n      return this.appConfig.getPrintServiceUrl() + printServiceUrlPathname;\n    }\n\n    return remoteUrl;\n  }\n}\n","<div *ngIf=\"isDataLoaded()\">\n  <ccd-case-header [caseDetails]=\"caseDetails\"></ccd-case-header>\n  <h2 class=\"heading-h2\">{{'Print' | rpxTranslate}}</h2>\n  <table [attr.aria-describedby]=\"'case print table' | rpxTranslate\">\n    <thead>\n      <tr>\n        <th>{{'Name' | rpxTranslate}}</th>\n        <th>{{'Type' | rpxTranslate}}</th>\n      </tr>\n    </thead>\n    <tbody>\n      <tr *ngFor=\"let document of documents\">\n        <td class=\"document-name\"><a [href]=\"document.url | ccdPrintUrl\" target=\"_blank\" rel=\"external\">\n          {{document.name}}\n        </a></td>\n        <td class=\"document-type\">{{document.type | rpxTranslate}}</td>\n      </tr>\n    </tbody>\n  </table>\n</div>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { Subscription, throwError } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { CasePrintDocument } from '../../../domain/case-view/case-print-document.model';\nimport { CaseView } from '../../../domain/case-view/case-view.model';\nimport { HttpError } from '../../../domain/http/http-error.model';\nimport { AlertService } from '../../../services/alert/alert.service';\nimport { CaseNotifier } from '../../case-editor/services/case.notifier';\nimport { CasesService } from '../../case-editor/services/cases.service';\n\n@Component({\n  templateUrl: './case-printer.html',\n  standalone: false\n})\nexport class CasePrinterComponent implements OnInit, OnDestroy {\n\n  private readonly ERROR_MESSAGE = 'No documents to print';\n\n  public caseDetails: CaseView;\n  public documents: CasePrintDocument[];\n  public caseSubscription: Subscription;\n\n  constructor(\n    private readonly caseNotifier: CaseNotifier,\n    private readonly casesService: CasesService,\n    private readonly alertService: AlertService\n  ) {}\n\n  public ngOnInit(): void {\n    this.caseSubscription = this.caseNotifier.caseView.subscribe(caseDetails => {\n      this.caseDetails = caseDetails;\n      this.casesService\n        .getPrintDocuments(this.caseDetails.case_id)\n        .pipe(\n          map(documents => {\n\n            if (!documents || !documents.length) {\n              const error = new HttpError();\n              error.message = this.ERROR_MESSAGE;\n              throw error;\n            }\n\n            this.documents = documents;\n          }),\n          catchError(error => {\n            this.alertService.error(error.message);\n            return throwError(error);\n          })\n        ).toPromise();\n    });\n  }\n\n  public ngOnDestroy(): void {\n    if (this.caseSubscription) {\n      this.caseSubscription.unsubscribe();\n    }\n  }\n\n  public isDataLoaded() {\n    return this.caseDetails && this.documents ? true : false;\n  }\n\n}\n","<div *ngIf=\"isDataLoaded()\">\n  <ccd-case-basic-access-view *ngIf=\"!hasStandardAccess()\"\n                              [accessType]=\"userAccessType\"\n                              [caseDetails]=\"caseDetails\"\n                              id=\"content\">\n  </ccd-case-basic-access-view>\n  <ccd-case-full-access-view *ngIf=\"hasStandardAccess()\"\n                             [caseDetails]=\"caseDetails\"\n                             [hasPrint]=\"hasPrint\"\n                             [hasEventSelector]=\"hasEventSelector\"\n                             [prependedTabs]=\"prependedTabs\"\n                             [appendedTabs]=\"appendedTabs\"\n                             id=\"content\">\n  </ccd-case-full-access-view>\n</div>\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { CaseTab, CaseView } from '../../domain';\nimport { CaseNotifier } from '../case-editor';\nimport { OrderService } from '../../services';\n\n@Component({\n  selector: 'ccd-case-viewer',\n  templateUrl: './case-viewer.component.html',\n  standalone: false\n})\nexport class CaseViewerComponent implements OnInit, OnDestroy {\n  public static readonly METADATA_FIELD_ACCESS_PROCESS_ID = '[ACCESS_PROCESS]';\n  public static readonly METADATA_FIELD_ACCESS_GRANTED_ID = '[ACCESS_GRANTED]';\n  public static readonly NON_STANDARD_USER_ACCESS_TYPES = ['CHALLENGED', 'SPECIFIC'];\n  public static readonly BASIC_USER_ACCESS_TYPES = 'BASIC';\n\n  @Input() public hasPrint = true;\n  @Input() public hasEventSelector = true;\n  @Input() public prependedTabs: CaseTab[] = [];\n  @Input() public appendedTabs: CaseTab[] = [];\n\n  public caseDetails: CaseView;\n  public caseSubscription: Subscription;\n  public userAccessType: string;\n  public accessGranted: boolean;\n\n  constructor(\n    private readonly route: ActivatedRoute,\n    private readonly caseNotifier: CaseNotifier,\n    private readonly appConfig: AbstractAppConfig,\n    private readonly orderService: OrderService\n  ) {}\n\n  public ngOnInit(): void {\n    this.loadCaseDetails();\n  }\n\n  public ngOnDestroy(): void {\n    if (this.caseSubscription) {\n      this.caseSubscription.unsubscribe();\n    }\n  }\n\n  public loadCaseDetails(): void {\n    if (this.route.snapshot.data.case) {\n      this.caseDetails = this.route.snapshot.data.case;\n      this.caseDetails.tabs = this.orderService.sort(this.caseDetails.tabs);\n      this.caseDetails.tabs = this.suffixDuplicateTabs(this.caseDetails.tabs);\n      this.setUserAccessType(this.caseDetails);\n    } else {\n      this.caseSubscription = this.caseNotifier.caseView.subscribe((caseDetails) => {\n        console.info('Setting the case into case viewer component as retrieved from XHR request.');\n        this.caseDetails = caseDetails;\n        this.setUserAccessType(this.caseDetails);\n      });\n    }\n  }\n\n  public setUserAccessType(caseDetails: CaseView): void {\n    if (caseDetails && Array.isArray(caseDetails.metadataFields)) {\n      const accessProcess = caseDetails.metadataFields.find((metadataField) =>\n        metadataField.id === CaseViewerComponent.METADATA_FIELD_ACCESS_PROCESS_ID);\n      const accessGranted = caseDetails.metadataFields.find((metadataField) =>\n        metadataField.id === CaseViewerComponent.METADATA_FIELD_ACCESS_GRANTED_ID);\n      this.accessGranted = accessGranted ? accessGranted.value !== CaseViewerComponent.BASIC_USER_ACCESS_TYPES : false;\n      this.userAccessType = accessProcess ? accessProcess.value : null;\n    }\n  }\n\n  public isDataLoaded(): boolean {\n    return !!this.caseDetails;\n  }\n\n  public hasStandardAccess(): boolean {\n    return !this.accessGranted ? CaseViewerComponent.NON_STANDARD_USER_ACCESS_TYPES.indexOf(this.userAccessType) === -1 : true;\n  }\n\n  private suffixDuplicateTabs(tabs: CaseTab[]): CaseTab[] {\n    const count = {};\n    const firstOccurences = {};\n\n    let item: string;\n    let itemCount: number;\n    for (let i = 0, c = tabs.length; i < c; i++) {\n      item = tabs[i].label;\n      itemCount = count[item];\n      itemCount = count[item] = (itemCount == null ? 1 : itemCount + 1);\n\n      if (count[item] > 1) {\n        tabs[i].label = tabs[i].label + Array(count[item] - 1).fill('_').join('');\n      } else {\n        firstOccurences[item] = i;\n      }\n    }\n\n    return tabs;\n  }\n}\n","/**\n * Cloned from rpx-xui-webapp src/app/components/error-message/error-message.component.ts\n */\nimport { Component, Input } from '@angular/core';\n\nimport { ErrorMessage } from '../../domain';\n\n@Component({\n  selector: 'exui-error-message',\n  templateUrl: './error-message.component.html',\n  standalone: false\n})\nexport class ErrorMessageComponent {\n  @Input() public error: ErrorMessage;\n}\n","<!-- Cloned from rpx-xui-webapp src/app/components/error-message/error-message.component.html -->\n<ng-container *ngIf=\"error\">\n  <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"govuk-error-summary\">\n    <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">{{error.title | rpxTranslate}}</h2>\n    <div class=\"govuk-error-summary__body\">\n      <ul class=\"govuk-list govuk-error-summary__list\">\n        <li>\n          <a routerLink=\".\" tabindex=\"0\" [fragment]=\"error.fieldId\">{{error.description | rpxTranslate}}</a>\n        </li>\n      </ul>\n    </div>\n  </div>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { ActivityModule } from '../activity';\nimport { ErrorMessageComponent } from './error-message.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    RouterModule,\n    ActivityModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    ErrorMessageComponent\n  ],\n  exports: [\n    ErrorMessageComponent\n  ]\n})\nexport class EventMessageModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { LoadingService } from '../../../../services/loading/loading.service';\n\n@Component({\n  selector: 'app-multiple-tasks-exist',\n  templateUrl: './multiple-tasks-exist.component.html',\n  standalone: false\n})\nexport class MultipleTasksExistComponent implements OnInit {\n\n  public caseId: string;\n  public jurisdiction: string;\n  public caseType: string;\n\n  constructor(private readonly route: ActivatedRoute, private readonly loadingService: LoadingService) {\n    this.caseId = this.route.snapshot.data.case.case_id;\n    this.jurisdiction = this.route.snapshot.data.case.case_type.jurisdiction.id;\n    this.caseType = this.route.snapshot.data.case.case_type.id;\n  }\n\n  public ngOnInit() {\n    // Check if the loading service has a shared spinner\n    if (this.loadingService.hasSharedSpinner()){\n      this.loadingService.unregisterSharedSpinner();\n    }\n  }\n}\n","<div class=\"govuk-!-margin-9\">\n  <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n    <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n      {{'There is a problem' | rpxTranslate}}\n    </h2>\n    <div class=\"govuk-error-summary__body\">\n      <ul class=\"govuk-list govuk-error-summary__list\">\n        <li>\n          <a href=\"#\">{{'Multiple tasks exist' | rpxTranslate}}</a>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"govuk-form-group govuk-form-group--error\">\n    <h2 class=\"govuk-heading-m\">\n      {{'Multiple tasks exist' | rpxTranslate}}\n    </h2>\n    <p>{{\"You're starting work which could complete more than one of the active tasks for this case.\" | rpxTranslate}}</p>\n    <p>{{'Return to tasks tab and start the event from there.' | rpxTranslate}}</p>\n    <a [routerLink]=\"['/', 'cases', 'case-details', jurisdiction, caseType, caseId, 'tasks']\">{{'Return to tasks tab' | rpxTranslate}}</a>\n  </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ActivatedRoute, NavigationExtras, Router } from '@angular/router';\n\n@Component({\n  selector: 'app-no-tasks-available',\n  templateUrl: './no-tasks-available.component.html',\n  standalone: false\n})\nexport class NoTasksAvailableComponent {\n\n  public caseId: string;\n  public jurisdiction: string;\n  public caseType: string;\n\n  constructor(private readonly route: ActivatedRoute) {\n    this.caseId = this.route.snapshot.data.case.case_id;\n    this.jurisdiction = this.route.snapshot.data.case.case_type.jurisdiction.id;\n    this.caseType = this.route.snapshot.data.case.case_type.id;\n  }\n}\n","<div class=\"govuk-!-margin-9\">\n  <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n    <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n      {{'There is a problem' | rpxTranslate}}\n    </h2>\n    <div class=\"govuk-error-summary__body\">\n      <ul class=\"govuk-list govuk-error-summary__list\">\n        <li>\n          <a href=\"#\">{{'No task available' | rpxTranslate}}</a>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"govuk-form-group govuk-form-group--error\">\n    <h2 class=\"govuk-heading-m\">{{'No task available' | rpxTranslate}}</h2>\n    <p>{{'You should have an assigned task for this event, but something has gone wrong.' | rpxTranslate}}</p>\n    <a [routerLink]=\"['/', 'cases', 'case-details', jurisdiction, caseType, caseId, 'tasks']\">{{'Return to tasks tab' | rpxTranslate}}</a>\n  </div>\n</div>\n","<div class=\"govuk-!-margin-9\" *ngIf=\"assignedUserName\">\n  <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n    <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n      {{'There is a problem' | rpxTranslate}}\n    </h2>\n    <div class=\"govuk-error-summary__body\">\n      <ul class=\"govuk-list govuk-error-summary__list\">\n        <li>\n          <a href=\"#\">{{'Task assignment required' | rpxTranslate}}</a>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"govuk-form-group govuk-form-group--error\">\n      <h2 class=\"govuk-heading-m\">{{'Task assignment required' | rpxTranslate}}</h2>\n\n    <p>{{'This task is assigned to' | rpxTranslate}} {{assignedUserName}}. {{'You must assign it to yourself to continue.' | rpxTranslate}}</p>\n\n    <a [routerLink]=\"['/', 'cases', 'case-details', jurisdiction, caseType, caseId, 'tasks']\">\n      {{'Return to tasks tab' | rpxTranslate}}\n    </a>\n  </div>\n</div>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { Task } from '../../../../domain/work-allocation/Task';\nimport { CaseworkerService } from '../../../case-editor/services/case-worker.service';\nimport { JudicialworkerService } from '../../../case-editor/services/judicial-worker.service';\n\n@Component({\n  selector: 'app-task-assigned',\n  templateUrl: './task-assigned.component.html',\n  standalone: false\n})\nexport class TaskAssignedComponent implements OnInit, OnDestroy {\n\n  public task: Task = null;\n  public caseId: string;\n  public jurisdiction: string;\n  public caseType: string;\n  public assignedUserName: string;\n  public caseworkerSubscription: Subscription;\n  public judicialworkerSubscription: Subscription;\n\n  constructor(private readonly route: ActivatedRoute,\n    private readonly judicialworkerService: JudicialworkerService,\n    private readonly caseworkerService: CaseworkerService) {\n    this.caseId = this.route.snapshot.data.case.case_id;\n    this.task = this.route.snapshot.queryParams as Task;\n  }\n\n  public ngOnInit(): void {\n    // Current user is a caseworker?\n    this.jurisdiction = this.task.jurisdiction;\n    this.caseType = this.task.case_type_id;\n    this.caseworkerSubscription = this.caseworkerService.getCaseworkers(this.task.jurisdiction).subscribe(result => {\n      if (result && result[0].service === this.task.jurisdiction && result[0].caseworkers) {\n        const caseworker = result[0].caseworkers.find(x => x.idamId === this.task.assignee);\n        if (caseworker) {\n          this.assignedUserName = `${caseworker.firstName} ${caseworker.lastName}`;\n        }\n      }\n\n      if (!this.assignedUserName) {\n        // Current user is a judicial user?\n        this.judicialworkerSubscription =\n          this.judicialworkerService.getJudicialworkers([this.task.assignee], this.task.jurisdiction)\n            .subscribe(judicialworkers => {\n              if (judicialworkers) {\n                const judicialworker = judicialworkers.find(x => x.sidam_id === this.task.assignee);\n                if (judicialworker) {\n                  this.assignedUserName = judicialworker.full_name;\n                }\n              }\n\n              if (!this.assignedUserName) {\n                this.assignedUserName = 'another user';\n              }\n            });\n      }\n    });\n  }\n\n  public ngOnDestroy(): void {\n    if (this.caseworkerSubscription) {\n      this.caseworkerSubscription.unsubscribe();\n    }\n    if (this.judicialworkerSubscription) {\n      this.judicialworkerSubscription.unsubscribe();\n    }\n  }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-task-cancelled',\n  templateUrl: './task-cancelled.component.html',\n  standalone: false\n})\nexport class TaskCancelledComponent {\n  @Input() public caseId: string;\n}\n","<div class=\"govuk-!-margin-9\">\n  <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n    <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n      {{'There is a problem' | rpxTranslate}}\n    </h2>\n    <div class=\"govuk-error-summary__body\">\n      <ul class=\"govuk-list govuk-error-summary__list\">\n        <li>\n          <a href=\"#\">{{'Task cancelled/marked as done' | rpxTranslate}}</a>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"govuk-form-group govuk-form-group--error\">\n    <h2 class=\"govuk-heading-m\">{{'Task cancelled/marked as done' | rpxTranslate}}</h2>\n\n    <p>{{'This task has been cancelled or marked as done.' | rpxTranslate}}</p>\n\n    <p>{{'Click Continue to complete the task and save your progress.' | rpxTranslate}}</p>\n\n    <p>{{'Alternatively, click Cancel to return to the tasks tab without saving your progress.' | rpxTranslate}}</p>\n\n    <div class=\"form-group form-group-related\">\n      <button type=\"submit\" class=\"govuk-button govuk-!-margin-right-2\" data-module=\"govuk-button\">{{'Continue' | rpxTranslate}}</button>\n      <a  [routerLink]=\"['/', 'cases', 'case-details', caseId, 'tasks']\"\n              class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\">{{'Cancel' | rpxTranslate}}</a>\n    </div>\n  </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { Task } from '../../../../domain/work-allocation/Task';\n\n@Component({\n  selector: 'app-task-conflict',\n  templateUrl: './task-conflict.component.html',\n  standalone: false\n})\nexport class TaskConflictComponent {\n  @Input() public task: Task;\n  @Input() public caseId: string;\n}\n","<div class=\"govuk-!-margin-9\">\n  <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"error-summary\">\n    <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n      {{'There is a problem' | rpxTranslate}}\n    </h2>\n    <div class=\"govuk-error-summary__body\">\n      <ul class=\"govuk-list govuk-error-summary__list\">\n        <li>\n          <a href=\"#\">{{'Task conflict' | rpxTranslate}}</a>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"govuk-form-group govuk-form-group--error\">\n    <h2 class=\"govuk-heading-m\">{{'Task conflict' | rpxTranslate}}</h2>\n    <p>{{'This task cannot be completed due to conflict with another task or tasks for this case.' | rpxTranslate}}</p>\n    <p>{{'If the problem persists, contact William Priest' | rpxTranslate}}</p>\n    <a [routerLink]=\"['/', 'cases', 'case-details', caseId, 'tasks']\">{{'Return to tasks tab' | rpxTranslate}}</a>\n  </div>\n</div>\n","import { Component } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n  selector: 'app-task-unassigned',\n  templateUrl: './task-unassigned.component.html',\n  standalone: false\n})\nexport class TaskUnassignedComponent {\n\n  public caseId: string;\n  public jurisdiction: string;\n  public caseType: string;\n\n  constructor(private readonly route: ActivatedRoute) {\n    this.caseId = this.route.snapshot.data.case.case_id;\n    this.jurisdiction = this.route.snapshot.data.case.case_type.jurisdiction.id;\n    this.caseType = this.route.snapshot.data.case.case_type.id;\n  }\n}\n","<div class=\"govuk-!-margin-9\">\n  <div class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\"\n    data-module=\"error-summary\">\n    <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n      {{'There is a problem' | rpxTranslate}}\n    </h2>\n    <div class=\"govuk-error-summary__body\">\n      <ul class=\"govuk-list govuk-error-summary__list\">\n        <li>\n          <a href=\"#\">{{'Task assignment required' | rpxTranslate}}</a>\n        </li>\n      </ul>\n    </div>\n  </div>\n\n  <div class=\"govuk-form-group govuk-form-group--error\">\n    <h2 class=\"govuk-heading-m\">{{'Task assignment required' | rpxTranslate}}</h2>\n\n    <p>{{'You must assign one of the available tasks from the task tab to continue with your work.' | rpxTranslate}}</p>\n\n    <a [routerLink]=\"['/', 'cases', 'case-details', jurisdiction, caseType, caseId, 'tasks']\">\n      {{'Return to tasks tab to assign a task' | rpxTranslate}}\n    </a>\n  </div>\n</div>\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { map, switchMap, tap } from 'rxjs/operators';\n\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { Task, TaskEventCompletionInfo } from '../../../domain/work-allocation/Task';\nimport { TaskPayload } from '../../../domain/work-allocation/TaskPayload';\nimport { ReadCookieService, SessionStorageService } from '../../../services';\nimport { CaseEditComponent, CaseNotifier, WorkAllocationService } from '../../case-editor';\nimport { removeTaskFromClientContext } from '../../case-editor/case-edit-utils/case-edit.utils';\n\n@Injectable()\nexport class EventStartGuard implements CanActivate {\n  public jurisdiction: string;\n  public caseType: string;\n  private caseId: string;\n\n  constructor(private readonly workAllocationService: WorkAllocationService,\n    private readonly router: Router,\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly abstractConfig: AbstractAppConfig,\n    private readonly cookieService: ReadCookieService,\n    private readonly caseNotifier: CaseNotifier) {\n    this.caseNotifier.caseView.subscribe((caseDetails) => {\n      if (caseDetails) {\n        this.jurisdiction = caseDetails?.case_type?.jurisdiction?.id;\n        this.caseType = caseDetails?.case_type?.id;\n        this.caseId = caseDetails?.case_id;\n      }\n    });\n  }\n\n  public canActivate(route: ActivatedRouteSnapshot): Observable<boolean> {\n    const caseId = route.params['cid'];\n    const eventId = route.params['eid'];\n    const taskId = route.queryParams['tid'];\n    // check if we have the case details in the case notifier\n    // if not, then fetch the case details using case notifier\n    const caseDataObservable = (!this.jurisdiction || !this.caseType || !this.caseId) ?\n      this.caseNotifier.fetchAndRefresh(caseId).pipe(\n        tap((caseDetails) => {\n          this.jurisdiction = caseDetails?.case_type?.jurisdiction?.id;\n          this.caseType = caseDetails?.case_type?.id;\n          this.caseId = caseDetails?.case_id;\n        }),\n        map(() => true)\n      ) : of(true);\n\n    let userId: string;\n    const userInfoStr = this.sessionStorageService.getItem('userDetails');\n    if (userInfoStr) {\n      const userInfo = JSON.parse(userInfoStr);\n      userId = userInfo.id ? userInfo.id : userInfo.uid;\n    }\n    const languageCookie = this.cookieService.getCookie('exui-preferred-language');\n    const currentLanguage = !!languageCookie && languageCookie !== '' ? languageCookie : 'en';\n    const preClientContext = this.sessionStorageService.getItem(CaseEditComponent.CLIENT_CONTEXT);\n    if (!preClientContext) {\n      // creates client context for language if not already existing\n      const storeClientContext = {\n        client_context: {\n          user_language: {\n            language: currentLanguage\n          }\n        }\n      };\n      this.sessionStorageService.setItem(CaseEditComponent.CLIENT_CONTEXT, JSON.stringify(storeClientContext));\n    } else {\n      const clientContextObj = JSON.parse(preClientContext);\n      if (!clientContextObj?.client_context?.user_language) {\n        const clientContextAddLanguage = {\n          ...clientContextObj,\n          client_context: {\n            ...clientContextObj.client_context,\n            user_language: {\n              language: currentLanguage\n            }\n          }\n        }\n        this.sessionStorageService.setItem(CaseEditComponent.CLIENT_CONTEXT, JSON.stringify(clientContextAddLanguage));\n      }\n    }\n    return caseDataObservable.pipe(\n      switchMap(() => {\n        if (this.jurisdiction && this.caseType) {\n          if (this.caseId === caseId) {\n            return this.workAllocationService.getTasksByCaseIdAndEventId(eventId, caseId, this.caseType, this.jurisdiction)\n              .pipe(\n                switchMap((payload: TaskPayload) => this.checkForTasks(payload, caseId, eventId, taskId, userId))\n              );\n          }\n          this.abstractConfig.logMessage(`EventStartGuard: caseId ${this.caseId} in case notifier not matched with the route parameter caseId ${caseId}`);\n        } else {\n          this.abstractConfig.logMessage(`EventStartGuard: caseInfo details not available in case notifier for ${caseId}`);\n        }\n        return of(false);\n      })\n    );\n  }\n\n  public checkTaskInEventNotRequired(payload: TaskPayload, caseId: string, taskId: string, eventId: string, userId: string): boolean {\n    if (!payload || !payload.tasks) {\n      return true;\n    }\n    const taskNumber = payload.tasks.length;\n    if (taskNumber === 0) {\n      // if there are no tasks just carry on\n      return true;\n    }\n    // Get number of tasks assigned to user\n    const userInfoStr = this.sessionStorageService.getItem('userDetails');\n    const userInfo = JSON.parse(userInfoStr);\n    const tasksAssignedToUser = payload.tasks.filter(x =>\n      x.task_state !== 'unassigned' && (x.assignee === userInfo.id || x.assignee === userInfo.uid)\n    );\n    if (tasksAssignedToUser.length === 0) {\n      // if no tasks assigned to user carry on\n      return true;\n    } else if (tasksAssignedToUser.length > 1 && !taskId) {\n      // if more than one task assigned to the user then give multiple tasks error\n      this.router.navigate([`/cases/case-details/${this.jurisdiction}/${this.caseType}/${caseId}/multiple-tasks-exist`]);\n      return false;\n    } else {\n      let task: any;\n      if (taskId) {\n        task = payload.tasks.find(x => x.id === taskId);\n      } else {\n        task = tasksAssignedToUser[0];\n      }\n      this.setClientContextStorage(task, caseId, eventId, userId);\n      return true;\n    }\n  }\n\n  private checkForTasks(payload: TaskPayload, caseId: string, eventId: string, taskId: string, userId: string): Observable<boolean> {\n    this.abstractConfig.logMessage(`checkForTasks: for caseId ${caseId} and eventId ${eventId} and taskId ${taskId} and userId ${userId}`);\n    if (taskId && payload?.tasks?.length > 0) {\n      const task = payload.tasks.find((t) => t.id == taskId);\n      if (task) {\n        this.setClientContextStorage(task, caseId, eventId, userId);\n      } else {\n        removeTaskFromClientContext(this.sessionStorageService);\n      }\n    }\n    if (payload.task_required_for_event) {\n      // There are some issues in EventTriggerResolver/CaseService and/or CCD for some events\n      // which triggers the CanActivate guard again.\n      // If event start is initiated again, then we do not need to perform state machine processing again.\n      // https://tools.hmcts.net/jira/browse/EUI-5489\n      if (this.router && this.router.url && this.router.url.includes('event-start')) {\n        return of(true);\n      }\n      this.router.navigate([`/cases/case-details/${this.jurisdiction}/${this.caseType}/${caseId}/event-start`], { queryParams: { caseId, eventId, taskId } });\n      return of(false);\n    } else {\n      return of(this.checkTaskInEventNotRequired(payload, caseId, taskId, eventId, userId));\n    }\n  }\n\n  // EXUI-2743 - Make taskEventCompletionInfo always available in session storage with client context\n  private setClientContextStorage(task: Task, caseId: string, eventId: string, userId: string): void {\n    // Store task to session\n    const taskEventCompletionInfo: TaskEventCompletionInfo = {\n      caseId: caseId,\n      eventId: eventId,\n      userId: userId,\n      taskId: task.id,\n      createdTimestamp: Date.now()\n    };\n    const currentLanguage = this.cookieService.getCookie('exui-preferred-language');\n    const storeClientContext = {\n      client_context: {\n        user_task: {\n          task_data: task,\n          complete_task: true\n        },\n        user_language: {\n          language: currentLanguage\n        }\n      }\n    };\n    this.sessionStorageService.setItem(CaseEditComponent.TASK_EVENT_COMPLETION_INFO, JSON.stringify(taskEventCompletionInfo));\n    this.sessionStorageService.setItem(CaseEditComponent.CLIENT_CONTEXT, JSON.stringify(storeClientContext));\n    this.abstractConfig.logMessage(`EventStartGuard:setClientContextStorage: set task ${task?.id} in client context for caseId ${caseId} and eventId ${eventId}`); \n  }\n}\n","export enum EventStartStates {\n  CHECK_FOR_MATCHING_TASKS = 'check-for-matching-tasks',\n  NO_TASK = 'no-task',\n  ONE_OR_MORE_TASKS = 'one-or-more-tasks',\n  TASK_ASSIGNED_TO_USER = 'task-assigned-to-user',\n  ONE_TASK_ASSIGNED_TO_USER = 'one-task-assigned-to-user',\n  MULTIPLE_TASKS_ASSIGNED_TO_USER = 'multiple-tasks-assigned-to-user',\n  TASK_UNASSIGNED = 'task-unassigned',\n  TASK_ASSIGNMENT_REQUIRED = 'task-assignment-required',\n  ASSIGN_TASK_TO_SELF = 'assign-task-to-self',\n  ASK_MANAGER_TO_ASSIGN_TASK = 'ask-manager-to-assign-task',\n  SHOW_WARNING = 'show-warning',\n  FINAL = 'final'\n}\n","import { Injectable } from '@angular/core';\nimport { Params } from '@angular/router';\nimport { State, StateMachine } from '@edium/fsm';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { EventStartStateMachineContext, EventStartStates } from '../models';\nimport { TaskEventCompletionInfo } from '../../../domain/work-allocation/Task';\nimport { UserInfo } from '../../../domain/user/user-info.model';\nimport { CaseEditComponent } from '../../case-editor';\n\nconst EVENT_STATE_MACHINE = 'EVENT STATE MACHINE';\n\n@Injectable()\nexport class EventStartStateMachineService {\n  public stateCheckForMatchingTasks: State;\n  public stateNoTask: State;\n  public stateOneTask: State;\n  public stateOneOrMoreTasks: State;\n  public stateTaskAssignedToUser: State;\n  public stateOneTaskAssignedToUser: State;\n  public stateMultipleTasksAssignedToUser: State;\n  public stateTaskUnassigned: State;\n  public stateFinal: State;\n\n  constructor(private readonly abstractConfig: AbstractAppConfig) {}\n\n  public initialiseStateMachine(context: EventStartStateMachineContext): StateMachine {\n    return new StateMachine(EVENT_STATE_MACHINE, context);\n  }\n\n  public createStates(stateMachine: StateMachine): void {\n    // Initial state\n    this.stateCheckForMatchingTasks = stateMachine.createState(\n      EventStartStates.CHECK_FOR_MATCHING_TASKS,\n      false,\n      this.entryActionForStateCheckForMatchingTasks\n    );\n\n    // States based on number of tasks available\n    this.stateNoTask = stateMachine.createState(\n      EventStartStates.NO_TASK,\n      false,\n      this.entryActionForStateNoTask\n    );\n    this.stateOneOrMoreTasks = stateMachine.createState(\n      EventStartStates.ONE_OR_MORE_TASKS,\n      false,\n      this.entryActionForStateOneOrMoreTasks\n    );\n\n    // States based on number of tasks assigned to user\n    this.stateTaskUnassigned = stateMachine.createState(\n      EventStartStates.TASK_UNASSIGNED,\n      false,\n      this.entryActionForStateTaskUnAssigned\n    );\n    this.stateTaskAssignedToUser = stateMachine.createState(\n      EventStartStates.TASK_ASSIGNED_TO_USER,\n      false,\n      this.entryActionForStateTaskAssignedToUser\n    );\n    this.stateOneTaskAssignedToUser = stateMachine.createState(\n      EventStartStates.ONE_TASK_ASSIGNED_TO_USER,\n      false,\n      this.entryActionForStateOneTaskAssignedToUser\n    );\n    this.stateMultipleTasksAssignedToUser = stateMachine.createState(\n      EventStartStates.MULTIPLE_TASKS_ASSIGNED_TO_USER,\n      false,\n      this.entryActionForStateMultipleTasksAssignedToUser\n    );\n\n    // Create final state, the second param isComplete is set to true to make sure state machine finished running\n    this.stateFinal = stateMachine.createState(\n      EventStartStates.FINAL,\n      true,\n      this.finalAction\n    );\n  }\n\n  public addTransitions(): void {\n    // Initial transition\n    this.addTransitionsForStateCheckForMatchingTasks();\n\n    // Transitions based on number of tasks available\n    this.addTransitionsForStateNoTask();\n    this.addTransitionsForStateOneOrMoreTasks();\n\n    // Transitions based on number of tasks assigned to user\n    this.addTransitionsForStateTaskUnassigned();\n    this.addTransitionsForStateTaskAssignedToUser();\n    this.addTransitionsForStateOneTaskAssignedToUser();\n    this.addTransitionsForStateMultipleTasksAssignedToUser();\n  }\n\n  public startStateMachine(stateMachine: StateMachine): void {\n    stateMachine.start(this.stateCheckForMatchingTasks);\n  }\n\n  /**\n   * Initial entry action for state check for matching tasks, decided based on the number of tasks\n   */\n  public entryActionForStateCheckForMatchingTasks(state: State, context: EventStartStateMachineContext): void {\n    const taskCount = context && context.tasks ? context.tasks.length : 0;\n\n    if (taskCount === 0) {\n      // Trigger state no task\n      state.trigger(EventStartStates.NO_TASK);\n    } else {\n      // Trigger state one or more tasks\n      state.trigger(EventStartStates.ONE_OR_MORE_TASKS);\n    }\n  }\n\n  public entryActionForStateNoTask(state: State, context: EventStartStateMachineContext): void {\n    // Trigger final state to complete processing of state machine\n    state.trigger(EventStartStates.FINAL);\n    // Navigate to no tasks available error page\n    context.router.navigate([`/cases/case-details/${context.tasks[0]?.jurisdiction}/${context.tasks[0]?.case_type_id}/${context.caseId}/no-tasks-available`], { relativeTo: context.route });\n  }\n\n  public entryActionForStateOneOrMoreTasks(state: State, context: EventStartStateMachineContext): void {\n    state.trigger(EventStartStates.TASK_ASSIGNED_TO_USER);\n  }\n\n  public entryActionForStateMultipleTasks(state: State, context: EventStartStateMachineContext): void {\n    state.trigger(EventStartStates.MULTIPLE_TASKS_ASSIGNED_TO_USER);\n  }\n\n  public entryActionForStateTaskAssignedToUser(state: State, context: EventStartStateMachineContext): void {\n    // Get number of tasks assigned to user\n    const userInfoStr = context.sessionStorageService.getItem('userDetails');\n    const userInfo = JSON.parse(userInfoStr);\n    const tasksAssignedToUser = context.tasks.filter(x =>\n        x.task_state !== 'unassigned' && x.assignee === userInfo.id || x.assignee === userInfo.uid\n      );\n\n    // Check if user initiated the event from task tab\n    const isEventInitiatedFromTaskTab = context.taskId !== undefined && tasksAssignedToUser.findIndex(x => x.id === context.taskId) > -1;\n\n    if (isEventInitiatedFromTaskTab) {\n      // User initiated event from task tab\n      state.trigger(EventStartStates.ONE_TASK_ASSIGNED_TO_USER);\n    } else {\n      // User initiated event from dropdown\n      switch (tasksAssignedToUser.length) {\n        case 0:\n          // No tasks assigned to user, trigger state task unassigned\n          state.trigger(EventStartStates.TASK_UNASSIGNED);\n          break;\n        case 1:\n          // One task assigned to user\n          state.trigger(EventStartStates.ONE_TASK_ASSIGNED_TO_USER);\n          break;\n        default:\n          // Multiple tasks assigned to user, trigger state multiple tasks assigned to user\n          state.trigger(EventStartStates.MULTIPLE_TASKS_ASSIGNED_TO_USER);\n          break;\n      }\n    }\n  }\n\n  public entryActionForStateTaskUnAssigned(state: State, context: EventStartStateMachineContext): void {\n    let navigationURL = '';\n    let theQueryParams: Params = {};\n    if (context.tasks[0].assignee) {\n      // Task is assigned to some other user, navigate to task assigned error page\n      navigationURL = `/cases/case-details/${context.tasks[0]?.jurisdiction}/${context.tasks[0]?.case_type_id}/${context.caseId}/task-assigned`;\n      theQueryParams = context.tasks[0];\n    } else {\n      // Task is unassigned, navigate to task unassigned error page\n      navigationURL = `/cases/case-details/${context.tasks[0]?.jurisdiction}/${context.tasks[0]?.case_type_id}/${context.caseId}/task-unassigned`;\n    }\n\n    // Trigger final state to complete processing of state machine\n    state.trigger(EventStartStates.FINAL);\n    // Navigate\n    context.router.navigate([`${navigationURL}`], { queryParams: theQueryParams, relativeTo: context.route });\n  }\n\n  public entryActionForStateOneTaskAssignedToUser = (state: State, context: EventStartStateMachineContext): void => {\n    // Trigger final state to complete processing of state machine\n    state.trigger(EventStartStates.FINAL);\n\n    // Get task assigned to user\n    let task = context.tasks.find(x => x.id === context.taskId);\n    if (!task) {\n      task = context.tasks[0];\n    }\n\n    const taskStr = JSON.stringify(task);\n    this.abstractConfig?.logMessage?.(`entryActionForStateOneTaskAssignedToUser: task_state ${task?.task_state} for task id ${task?.id}`);\n    console.log('entryActionForStateOneTaskAssignedToUser: setting client context task_data to ' + taskStr);\n    // Store task to session\n    const currentLanguage = context.cookieService.getCookie('exui-preferred-language');\n    const clientContext = {\n      client_context: {\n        user_task: {\n          task_data: task,\n          complete_task: true\n        },\n        user_language: {\n          language: currentLanguage\n        }\n      }\n    };\n    let userInfo: UserInfo;\n    const userInfoStr = context.sessionStorageService.getItem('userDetails');\n    if (userInfoStr) {\n      userInfo = JSON.parse(userInfoStr);\n    }\n    // Store task to session\n    const taskEventCompletionInfo: TaskEventCompletionInfo = {\n      caseId: context.caseId,\n      eventId: context.eventId,\n      userId: userInfo.id ? userInfo.id : userInfo.uid,\n      taskId: task.id,\n      createdTimestamp: Date.now()};\n    context.sessionStorageService.setItem(CaseEditComponent.TASK_EVENT_COMPLETION_INFO, JSON.stringify(taskEventCompletionInfo));\n    // EXUI-2668 - Only add client context when taskEventCompletionInfo is set - stops auto completing incorrect tasks\n    context.sessionStorageService.setItem(CaseEditComponent.CLIENT_CONTEXT, JSON.stringify(clientContext));\n    // Allow user to perform the event\n    context.router.navigate([`/cases/case-details/${task.jurisdiction}/${task.case_type_id}/${context.caseId}/trigger/${context.eventId}`],\n      { relativeTo: context.route });\n  }\n\n  public entryActionForStateMultipleTasksAssignedToUser(state: State, context: EventStartStateMachineContext): void {\n    // Trigger final state to complete processing of state machine\n    state.trigger(EventStartStates.FINAL);\n    // Navigate to multiple tasks exist error page\n    context.router.navigate([`/cases/case-details/${context.tasks[0]?.jurisdiction}/${context.tasks[0]?.case_type_id}/${context.caseId}/multiple-tasks-exist`], { relativeTo: context.route });\n  }\n\n  public finalAction(state: State): void {\n    // Final actions can be performed here, the state machine finished running\n    // console.log('FINAL', state);\n    return;\n  }\n\n  public addTransitionsForStateCheckForMatchingTasks(): void {\n    // No tasks\n    this.stateCheckForMatchingTasks.addTransition(\n      EventStartStates.NO_TASK,\n      this.stateNoTask\n    );\n    // One task\n    this.stateCheckForMatchingTasks.addTransition(\n      EventStartStates.ONE_OR_MORE_TASKS,\n      this.stateOneOrMoreTasks\n    );\n  }\n\n  public addTransitionsForStateNoTask(): void {\n    this.stateNoTask.addTransition(\n      EventStartStates.FINAL,\n      this.stateFinal\n    );\n  }\n\n  public addTransitionsForStateOneOrMoreTasks(): void {\n    this.stateOneOrMoreTasks.addTransition(\n      EventStartStates.TASK_ASSIGNED_TO_USER,\n      this.stateTaskAssignedToUser\n    );\n  }\n\n  public addTransitionsForStateTaskUnassigned(): void {\n    this.stateTaskUnassigned.addTransition(\n      EventStartStates.FINAL,\n      this.stateFinal\n    );\n  }\n\n  public addTransitionsForStateTaskAssignedToUser(): void {\n    this.stateTaskAssignedToUser.addTransition(\n      EventStartStates.ONE_TASK_ASSIGNED_TO_USER,\n      this.stateOneTaskAssignedToUser\n    );\n    this.stateTaskAssignedToUser.addTransition(\n      EventStartStates.TASK_UNASSIGNED,\n      this.stateTaskUnassigned\n    );\n    this.stateTaskAssignedToUser.addTransition(\n      EventStartStates.MULTIPLE_TASKS_ASSIGNED_TO_USER,\n      this.stateMultipleTasksAssignedToUser\n    );\n    this.stateTaskAssignedToUser.addTransition(\n      EventStartStates.FINAL,\n      this.stateFinal\n    );\n  }\n\n  public addTransitionsForStateOneTaskAssignedToUser(): void {\n    this.stateOneTaskAssignedToUser.addTransition(\n      EventStartStates.FINAL,\n      this.stateFinal\n    );\n  }\n\n  public addTransitionsForStateMultipleTasksAssignedToUser(): void {\n    this.stateMultipleTasksAssignedToUser.addTransition(\n      EventStartStates.FINAL,\n      this.stateFinal\n    );\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { StateMachine } from '@edium/fsm';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { Task } from '../../domain/work-allocation/Task';\nimport { ReadCookieService } from '../../services/cookie/read-cookie-service';\nimport { SessionStorageService } from '../../services/session/session-storage.service';\nimport { EventStartStateMachineContext } from './models/event-start-state-machine-context.model';\nimport { EventStartStateMachineService } from './services/event-start-state-machine.service';\n\n@Component({\n  selector: 'ccd-event-start',\n  templateUrl: './event-start.component.html',\n  standalone: false\n})\nexport class EventStartComponent implements OnInit {\n\n  public stateMachine: StateMachine;\n  public context: EventStartStateMachineContext;\n\n  constructor(private service: EventStartStateMachineService,\n    private readonly router: Router,\n    private readonly route: ActivatedRoute,\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly cookieService: ReadCookieService,\n    private readonly abstractConfig: AbstractAppConfig) {\n  }\n\n  public ngOnInit(): void {\n    // Get task and case id payload from route data\n    const tasks: Task[] = this.route.snapshot.data.tasks;\n    const caseId = this.route.snapshot.data.case.case_id;\n    const eventId = this.route.snapshot.queryParams['eventId'];\n    const taskId = this.route.snapshot.queryParams['taskId'];\n\n    // Setup the context\n    this.context = {\n      tasks,\n      caseId,\n      eventId,\n      taskId,\n      router: this.router,\n      route: this.route,\n      sessionStorageService: this.sessionStorageService,\n      cookieService: this.cookieService\n    };\n\n    // Initialise state machine\n    this.service = new EventStartStateMachineService(this.abstractConfig);\n    this.stateMachine = this.service.initialiseStateMachine(this.context);\n    // Create states\n    this.service.createStates(this.stateMachine);\n    // Add transitions for the states\n    this.service.addTransitions();\n    // Start state machine\n    this.service.startStateMachine(this.stateMachine);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Task } from '../../../domain/work-allocation/Task';\nimport { TaskPayload } from '../../../domain/work-allocation/TaskPayload';\nimport { WorkAllocationService } from '../../case-editor/services/work-allocation.service';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { CaseNotifier } from '../../case-editor';\n\n@Injectable()\nexport class EventTasksResolverService implements Resolve<Task[]> {\n  jurisdiction: any;\n  caseType: any;\n\n  constructor(private readonly service: WorkAllocationService,\n              private readonly abstractConfig: AbstractAppConfig,\n              private readonly caseNotifier: CaseNotifier) {\n    this.caseNotifier.caseView.subscribe((caseDetails) => {\n      if (caseDetails) {\n        this.jurisdiction = caseDetails?.case_type?.jurisdiction?.id;\n        this.caseType = caseDetails?.case_type?.id;\n      }\n    });\n  }\n\n  public resolve(route: ActivatedRouteSnapshot): Observable<Task[]> {\n    const eventId = route.queryParamMap.get('eventId');\n    const caseId = route.queryParamMap.get('caseId');\n    if (this.caseType && this.jurisdiction) {\n      return this.service.getTasksByCaseIdAndEventId(eventId, caseId, this.caseType, this.jurisdiction)\n        .pipe(\n          map((payload: TaskPayload) => payload.tasks)\n        );\n    }\n    this.abstractConfig.logMessage(`EventTasksResolverService: caseInfo details not available in session storage for ${caseId}`);\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { MultipleTasksExistComponent } from './components/multiple-tasks-exist/multiple-tasks-exist.component';\nimport { NoTasksAvailableComponent } from './components/no-tasks-available/no-tasks-available.component';\nimport { TaskAssignedComponent } from './components/task-assigned/task-assigned.component';\nimport { TaskCancelledComponent } from './components/task-cancelled/task-cancelled.component';\nimport { TaskConflictComponent } from './components/task-conflict/task-conflict.component';\nimport { TaskUnassignedComponent } from './components/task-unassigned/task-unassigned.component';\nimport { EventStartGuard } from './event-guard/event-start.guard';\nimport { EventStartComponent } from './event-start.component';\nimport { EventTasksResolverService } from './resolvers/event-tasks-resolver.service';\nimport { EventStartStateMachineService } from './services';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    RouterModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    EventStartComponent,\n    MultipleTasksExistComponent,\n    NoTasksAvailableComponent,\n    TaskAssignedComponent,\n    TaskCancelledComponent,\n    TaskConflictComponent,\n    TaskUnassignedComponent\n  ],\n  providers: [\n    EventStartGuard,\n    EventTasksResolverService,\n    EventStartStateMachineService\n  ],\n  exports: [\n    EventStartComponent,\n    TaskAssignedComponent,\n    TaskUnassignedComponent\n  ]\n})\nexport class EventStartModule {}\n","<form *ngIf=\"triggers && triggers.length\" class=\"event-trigger\" (ngSubmit)=\"triggerSubmit()\" [formGroup]=\"triggerForm\">\n  <div class=\"form-group\" style=\"width: 350px !important;\">\n    <label class=\"form-label\" for=\"next-step\">{{'Next step' | rpxTranslate}}</label>\n    <select class=\"form-control ccd-dropdown\" id=\"next-step\" (change)=\"triggerChange()\" formControlName=\"trigger\" [ngClass]=\"{\n          'EventTrigger-empty': !triggerForm.value['trigger']\n        }\" [compareWith]=\"compareFn\">\n      <option *ngIf=\"1 !== triggers.length\" value=\"\" data-default>{{'Select action' | rpxTranslate}}</option>\n      <option *ngFor=\"let trigger of triggers\" [ngValue]=\"trigger\"  [title]=\"trigger.description\">{{trigger.name | rpxTranslate}}</option>\n    </select>\n  </div>\n  <button [disabled]=\"isButtonDisabled()\" type=\"submit\" class=\"button\">{{triggerText | rpxTranslate}}</button>\n</form>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { CaseViewTrigger } from '../../domain/case-view/case-view-trigger.model';\nimport { OrderService } from '../../services/order/order.service';\n\n@Component({\n  selector: 'ccd-event-trigger',\n  templateUrl: './event-trigger.component.html',\n  styleUrls: ['./event-trigger.component.scss'],\n  standalone: false\n})\nexport class EventTriggerComponent implements OnChanges, OnInit {\n\n  @Input()\n  public triggers: CaseViewTrigger[];\n\n  @Input()\n  public triggerText: string;\n\n  @Input()\n  public isDisabled: boolean;\n\n  @Input()\n  public eventId:  string = '';\n\n  @Output()\n  public onTriggerSubmit: EventEmitter<CaseViewTrigger> = new EventEmitter();\n\n  @Output()\n  public onTriggerChange: EventEmitter<any> = new EventEmitter();\n\n  public triggerForm: FormGroup;\n\n  constructor(private readonly appConfig: AbstractAppConfig,\n    private readonly fb: FormBuilder,\n    private readonly orderService: OrderService) {}\n\n  public ngOnInit(): void {\n    this.triggers = this.orderService.sort(this.triggers);\n    if(this.eventId){\n      const eventBundle = this.triggers.find(ev => ev.id === this.eventId);\n        this.triggerForm.controls['trigger'].patchValue(\n          {id : eventBundle?.id, name: eventBundle?.name, description: eventBundle?.description}\n      )\n    }\n\n  }\n  public ngOnChanges(changes?: SimpleChanges): void {\n    if (changes?.triggers?.currentValue) {\n      const eventsToHide = this.appConfig.getEventsToHide();\n      const filteredTriggers = this.triggers\n        ?.filter((event) => !eventsToHide || !eventsToHide.includes(event.id));\n      this.triggers = this.orderService.sort(filteredTriggers);\n      this.triggerForm = this.fb.group({\n        trigger: [this.getDefault(), Validators.required]\n      });\n    }\n  }\n\n  compareFn(c1: CaseViewTrigger, c2:CaseViewTrigger): boolean {\n    return c1 && c2 ? c1.id === c2.id : c1 === c2;\n  }\n\n  public isButtonDisabled(): boolean {\n    return !this.triggerForm.valid || this.isDisabled;\n  }\n\n  public triggerSubmit() {\n    this.onTriggerSubmit.emit(this.triggerForm.value['trigger']);\n  }\n\n  public triggerChange() {\n    this.isDisabled = false;\n    this.onTriggerChange.emit(null);\n  }\n\n  private getDefault(): any {\n    return this.triggers?.length === 1 ? this.triggers[0] : '';\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { ActivityModule } from '../activity';\nimport { EventTriggerComponent } from './event-trigger.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    ActivityModule,\n    RpxTranslationModule.forChild()\n  ],\n  declarations: [\n    EventTriggerComponent\n  ],\n  exports: [\n    EventTriggerComponent\n  ]\n})\nexport class EventTriggerModule {}\n","export enum AccessReason {\n  LINKED_TO_CURRENT_CASE = 'The cases or parties are linked to the case I am working on',\n  CONSOLIDATE_CASE = 'To determine if the case needs to be consolidated',\n  ORDER_FOR_TRANSFER = 'To consider an order for transfer',\n  OTHER = 'Other reason'\n}\n\nexport enum ChallengedAccessRequestPageText {\n  TITLE = 'Why do you need to access this case?',\n  HINT = 'Select a reason.',\n  CASE_REF = 'Case reference'\n}\n\nexport enum ChallengedAccessRequestErrors {\n  NO_SELECTION = 'Select a reason',\n  NO_CASE_REFERENCE = 'Enter a case reference',\n  NO_REASON = 'Enter a reason'\n}\n","<exui-error-message *ngIf=\"formGroup.invalid && submitted\" [error]=\"errorMessage\"></exui-error-message>\n<cut-alert type=\"information\">\n  {{'This case requires challenged access.' | rpxTranslate}}<br/>\n  {{'This is because the case is outside your work area. If you request access to the case, it will be logged for auditing purposes.' | rpxTranslate}}\n</cut-alert>\n<form [formGroup]=\"formGroup\" (submit)=\"onSubmit()\">\n  <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': formGroup.invalid && submitted}\">\n    <fieldset class=\"govuk-fieldset\" aria-describedby=\"reason-hint\">\n      <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n        <h1 class=\"govuk-fieldset__heading\">\n          {{title | rpxTranslate}}\n        </h1>\n      </legend>\n      <div id=\"reason-hint\" class=\"govuk-hint\">\n        {{hint | rpxTranslate}}\n      </div>\n      <div id=\"error-message\" class=\"govuk-error-message\" *ngIf=\"formGroup.get('radioSelected').invalid && submitted\">\n        {{errorMessage.description | rpxTranslate}}\n      </div>\n      <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\">\n        <div class=\"govuk-radios__item\">\n          <input class=\"govuk-radios__input\" id=\"reason-0\" name=\"radioSelected\" type=\"radio\" [value]=\"accessReasons[0].reason\"\n          data-aria-controls=\"conditional-reason-0\" formControlName=\"radioSelected\" [checked]=\"accessReasons[0].checked\"\n          (change)=\"onChange()\"/>\n          <label class=\"govuk-label govuk-radios__label\" for=\"reason-0\">\n            {{accessReasons[0].reason | rpxTranslate}}\n          </label>\n        </div>\n        <div id=\"conditional-reason-0\" *ngIf=\"formGroup.get('radioSelected').value === accessReasons[0].reason\"\n        class=\"govuk-radios__conditional\">\n          <div class=\"govuk-form-group\">\n            <label class=\"govuk-label\" for=\"case-reference\">\n              {{caseRefLabel}}\n            </label>\n            <div id=\"case-reference-error-message\" class=\"govuk-error-message\" *ngIf=\"formGroup.get('caseReference').invalid && submitted\">\n              {{errorMessage.description | rpxTranslate}}\n            </div>\n            <input class=\"govuk-input govuk-!-width-one-third\"\n            [ngClass]=\"{'govuk-input--error': formGroup.get('caseReference').invalid && submitted}\" id=\"case-reference\"\n            name=\"case-reference\" type=\"text\" formControlName=\"caseReference\">\n          </div>\n        </div>\n        <div class=\"govuk-radios__item\">\n          <input class=\"govuk-radios__input\" id=\"reason-1\" name=\"radioSelected\" type=\"radio\" [value]=\"accessReasons[1].reason\"\n          formControlName=\"radioSelected\" [checked]=\"accessReasons[1].checked\" (change)=\"onChange()\"/>\n          <label class=\"govuk-label govuk-radios__label\" for=\"reason-1\">\n            {{accessReasons[1].reason | rpxTranslate}}\n          </label>\n        </div>\n        <div class=\"govuk-radios__item\">\n          <input class=\"govuk-radios__input\" id=\"reason-2\" name=\"radioSelected\" type=\"radio\" [value]=\"accessReasons[2].reason\"\n          formControlName=\"radioSelected\" [checked]=\"accessReasons[2].checked\" (change)=\"onChange()\"/>\n          <label class=\"govuk-label govuk-radios__label\" for=\"reason-2\">\n            {{accessReasons[2].reason | rpxTranslate}}\n          </label>\n        </div>\n        <div class=\"govuk-radios__item\">\n          <input class=\"govuk-radios__input\" id=\"reason-3\" name=\"radioSelected\" type=\"radio\" [value]=\"accessReasons[3].reason\"\n          data-aria-controls=\"conditional-reason-3\" formControlName=\"radioSelected\" [checked]=\"accessReasons[3].checked\"\n          (change)=\"onChange()\"/>\n          <label class=\"govuk-label govuk-radios__label\" for=\"reason-3\" id=\"reason-3-label\">\n            {{accessReasons[3].reason | rpxTranslate}}\n          </label>\n        </div>\n        <div id=\"conditional-reason-3\" *ngIf=\"formGroup.get('radioSelected').value === accessReasons[3].reason\"\n        class=\"govuk-radios__conditional\">\n          <div class=\"govuk-form-group\">\n            <div id=\"other-reason-error-message\" class=\"govuk-error-message\" *ngIf=\"formGroup.get('otherReason').invalid && submitted\">\n              {{errorMessage.description | rpxTranslate}}\n            </div>\n            <textarea class=\"govuk-textarea\" [ngClass]=\"{'govuk-textarea--error': formGroup.get('otherReason').invalid && submitted}\"\n            id=\"other-reason\" name=\"other-reason\" rows=\"5\" aria-describedby=\"reason-3-label\" formControlName=\"otherReason\"></textarea>\n          </div>\n        </div>\n      </div>\n    </fieldset>\n  </div>\n  <div class=\"govuk-button-group\">\n    <button class=\"govuk-button govuk-!-margin-right-3\" type=\"submit\">\n      {{'Submit' | rpxTranslate}}\n    </button>\n    <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n      <p>\n        <a class='govuk-body' (click)=\"onCancel(); $event.preventDefault()\" href=\"#\">\n          {{'Cancel' | rpxTranslate}}\n        </a>\n      </p>\n    </div>\n  </div>\n</form>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { AbstractControl, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { ChallengedAccessRequest, ErrorMessage } from '../../../domain';\nimport { CaseNotifier, CasesService } from '../../case-editor';\nimport { AccessReason, ChallengedAccessRequestErrors, ChallengedAccessRequestPageText } from './models';\n\n@Component({\n  selector: 'ccd-case-challenged-access-request',\n  templateUrl: './case-challenged-access-request.component.html',\n  standalone: false\n})\nexport class CaseChallengedAccessRequestComponent implements OnDestroy, OnInit {\n  public static CANCEL_LINK_DESTINATION = '/work/my-work/list';\n\n  public title: string;\n  public hint: string;\n  public caseRefLabel: string;\n  public readonly accessReasons: DisplayedAccessReason[];\n  public formGroup: FormGroup;\n  public submitted = false;\n  public errorMessage: ErrorMessage;\n  public $roleAssignmentResponseSubscription: Subscription;\n\n  private readonly genericError = 'There is a problem';\n  private readonly radioSelectedControlName = 'radioSelected';\n  private readonly caseReferenceControlName = 'caseReference';\n  private readonly otherReasonControlName = 'otherReason';\n\n  constructor(\n    private readonly fb: FormBuilder,\n    private readonly router: Router,\n    private readonly casesService: CasesService,\n    private readonly route: ActivatedRoute,\n    private readonly caseNotifier: CaseNotifier\n  ) {\n    this.accessReasons = [\n      { reason: AccessReason.LINKED_TO_CURRENT_CASE, checked: false },\n      { reason: AccessReason.CONSOLIDATE_CASE, checked: false },\n      { reason: AccessReason.ORDER_FOR_TRANSFER, checked: false },\n      { reason: AccessReason.OTHER, checked: false }\n    ];\n  }\n\n  public ngOnInit(): void {\n    this.title = ChallengedAccessRequestPageText.TITLE;\n    this.hint = ChallengedAccessRequestPageText.HINT;\n    this.caseRefLabel = ChallengedAccessRequestPageText.CASE_REF;\n    this.formGroup = this.fb.group({\n      radioSelected: new FormControl(null, Validators.required)\n    });\n    this.formGroup.addControl(this.caseReferenceControlName,\n      new FormControl('', {\n        validators: [(control: AbstractControl): { [key: string]: boolean } | null => {\n          if (this.formGroup.get(this.radioSelectedControlName).value === AccessReason.LINKED_TO_CURRENT_CASE && this.inputEmpty(control)) {\n            return { invalid: true };\n          }\n          return null;\n        }],\n        updateOn: 'submit'\n      })\n    );\n    this.formGroup.addControl(this.otherReasonControlName,\n      new FormControl('', {\n        validators: [(control: AbstractControl): { [key: string]: boolean } | null => {\n          if (this.formGroup.get(this.radioSelectedControlName).value === AccessReason.OTHER && this.inputEmpty(control)) {\n            return { invalid: true };\n          }\n          return null;\n        }],\n        updateOn: 'submit'\n      })\n    );\n  }\n\n  public onChange(): void {\n    this.submitted = false;\n    // Clear the \"Case reference\" and \"Other reason\" fields manually. This prevents any previous value being retained by\n    // the field's FormControl when the field itself is removed from the DOM by *ngIf. (If it is subsequently added back\n    // to the DOM by *ngIf, it will appear empty but the associated FormControl still has the previous value.)\n    this.formGroup.get(this.caseReferenceControlName).setValue('');\n    this.formGroup.get(this.otherReasonControlName).setValue('');\n  }\n\n  public onSubmit(): void {\n    this.submitted = true;\n    if (this.formGroup.get(this.radioSelectedControlName).invalid) {\n      this.errorMessage = {\n        title: this.genericError,\n        description: ChallengedAccessRequestErrors.NO_SELECTION\n      };\n    } else {\n      if (this.formGroup.get(this.caseReferenceControlName).invalid) {\n        this.errorMessage = {\n          title: this.genericError,\n          description: ChallengedAccessRequestErrors.NO_CASE_REFERENCE,\n          fieldId: 'case-reference'\n        };\n      }\n\n      if (this.formGroup.get(this.otherReasonControlName).invalid) {\n        this.errorMessage = {\n          title: this.genericError,\n          description: ChallengedAccessRequestErrors.NO_REASON,\n          fieldId: 'other-reason'\n        };\n      }\n    }\n\n    // Initiate Challenged Access Request\n    if (this.formGroup.valid) {\n      // Get the Case Reference (for which access is being requested) from the ActivatedRouteSnapshot data\n      const caseId = this.route.snapshot.params.cid;\n      const radioSelectedValue = this.formGroup.get(this.radioSelectedControlName).value;\n      // Get the index of the selected AccessReason enum value. Can't use Object.values because it's not available in\n      // < ES2017!\n      const reasonNumber = Object.keys(AccessReason).map(e => AccessReason[e]).indexOf(radioSelectedValue);\n      const challengedAccessRequest = {\n        reason: reasonNumber,\n        caseReference: reasonNumber === 0 ? this.formGroup.get(this.caseReferenceControlName).value : null,\n        otherReason: reasonNumber === 3 ? this.formGroup.get(this.otherReasonControlName).value : null\n      } as ChallengedAccessRequest;\n\n      this.$roleAssignmentResponseSubscription = this.casesService.createChallengedAccessRequest(caseId, challengedAccessRequest)\n        .pipe(switchMap(() => this.caseNotifier.fetchAndRefresh(caseId)))\n        .subscribe(\n          () => {\n            // Would have been nice to pass the caseId within state.data, but this isn't part of NavigationExtras until\n            // Angular 7.2!\n            this.router.navigate(['success'], { relativeTo: this.route });\n          },\n          () => {\n            // Navigate to error page\n          }\n        );\n    }\n  }\n\n  public onCancel(): void {\n    this.router.navigateByUrl(CaseChallengedAccessRequestComponent.CANCEL_LINK_DESTINATION);\n  }\n\n  public ngOnDestroy(): void {\n    if (this.$roleAssignmentResponseSubscription) {\n      this.$roleAssignmentResponseSubscription.unsubscribe();\n    }\n  }\n\n  private inputEmpty(input: AbstractControl): boolean {\n    return input.value === null || input.value.trim().length === 0;\n  }\n}\n\nexport interface DisplayedAccessReason {\n  reason: AccessReason;\n  checked: boolean;\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n  selector: 'ccd-case-challenged-access-success',\n  templateUrl: './case-challenged-access-success.component.html',\n  standalone: false\n})\nexport class CaseChallengedAccessSuccessComponent implements OnInit {\n  public caseId: string;\n  public jurisdiction: string;\n  public caseType: string;\n\n  constructor(private readonly route: ActivatedRoute) { }\n\n  public ngOnInit(): void {\n    this.caseId = this.route.snapshot.params.cid;\n    this.jurisdiction = this.route.snapshot.params.jurisdiction;\n    this.caseType = this.route.snapshot.params.caseType;\n  }\n}\n","<div class=\"govuk-width-container\">\n  <div class=\"govuk-grid-row\">\n    <div class=\"govuk-grid-column-two-thirds\">\n      <div class=\"govuk-panel govuk-panel--confirmation\">\n        <h1 class=\"govuk-panel__title\">\n          {{'Access successful' | rpxTranslate}}<br><br>\n          <div class=\"govuk-panel__body\">\n            {{'Case reference:' | rpxTranslate}}<br>\n            {{caseId}}\n          </div>\n        </h1>\n      </div>\n      <h2 class=\"govuk-heading-m\">{{'What happens next' | rpxTranslate}}</h2>\n      <p class=\"govuk-body\">\n        {{'You can access this case file until midnight tonight.' | rpxTranslate}}\n      </p>\n      <p class=\"govuk-body\">\n        {{\"You'll need to request access again once this expires.\" | rpxTranslate}}\n      </p>\n      <p class=\"govuk-body\">\n        {{\"Your request will be logged for auditing purposes.\" | rpxTranslate}}\n      </p>\n      <p class=\"govuk-body\"><a [routerLink]=\"['/', 'cases', 'case-details', jurisdiction, caseType, caseId]\">{{\"View case file\" | rpxTranslate}}</a>.</p>\n    </div>\n  </div>\n</div>\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n  selector: 'case-review-specific-access-reject',\n  templateUrl: './case-review-specific-access-reject.component.html',\n  standalone: false\n})\nexport class CaseReviewSpecificAccessRejectComponent implements OnInit {\n\n  public caseId: string;\n  public jurisdiction: string;\n  public caseType: string;\n  public readonly retunToTask = 'Return to the Tasks tab for this case';\n  public readonly returnToMyTask = 'Return to My tasks';\n\n  constructor(private readonly route: ActivatedRoute) { }\n\n  public ngOnInit(): void {\n    this.caseId = this.route.snapshot.data.case.case_id;\n    this.jurisdiction = this.route.snapshot.data.case.case_type.jurisdiction.id;\n    this.caseType = this.route.snapshot.data.case.case_type.id;\n  }\n}\n","<p></p>\n<div class=\"govuk-width-container\">\n  <div class=\"govuk-grid-row\">\n    <div class=\"govuk-grid-column-two-thirds\">\n      <div class=\"govuk-panel govuk-panel--confirmation\">\n        <h1 class=\"govuk-panel__title\">\n          {{'Request for access denied' | rpxTranslate}}<br>\n        </h1>\n      </div>\n      <h2 class=\"govuk-heading-m\">{{'What happens next' | rpxTranslate}}</h2>\n      <p class=\"govuk-body\">\n        {{'The requester has been denied access to this case.' | rpxTranslate}}\n      </p>\n    </div>\n  </div>\n  <div class=\"form-group form-group-related\">\n    <p>\n      <a button class=\"govuk-button govuk-!-margin-right-3\" href=\"tasks/list\" >{{returnToMyTask | rpxTranslate}}</a>\n    </p>\n  </div>\n  <p class=\"cancel\"><a href=\"cases/case-details/{{jurisdiction}}/{{caseType}}/{{caseId}}\" >{{retunToTask | rpxTranslate}}</a></p>\n</div>\n","export enum AccessReason {\n  APPROVE_REQUEST = 'Approve request',\n  REJECT_REQUEST = 'Reject request',\n  REQUEST_MORE_INFORMATION = 'Request more information',\n}\n\nexport enum ReviewSpecificAccessRequestPageText {\n  TITLE = 'Review specific access request',\n  HINT = 'What do you want to do with this request?',\n  CASE_REF = 'Case reference'\n}\n\nexport enum ReviewSpecificAccessRequestErrors {\n  NO_SELECTION = 'Select an option',\n  GENERIC_ERROR = 'There is a problem',\n}\n","<exui-error-message\n  *ngIf=\"formGroup.invalid && submitted\"\n  [error]=\"errorMessage\">\n</exui-error-message>\n\n<form [formGroup]=\"formGroup\" (submit)=\"onSubmit()\">\n  <div class=\"govuk-form-group\">\n    <fieldset class=\"govuk-fieldset\" aria-describedby=\"reason-hint\">\n      <div class=\"govuk-grid-column-two-thirds\">\n        <p></p>\n        <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n          <h1 class=\"govuk-fieldset__heading\">\n            {{ title | rpxTranslate }}\n          </h1>\n        </legend>\n        <p></p>\n        <table class=\"govuk-table\">\n          <caption></caption>\n          <tbody class=\"govuk-table__body\">\n            <tr class=\"govuk-table__row\">\n              <th scope=\"row\" class=\"govuk-table__header leftLabel\" >\n                {{'Case name' | rpxTranslate}}\n              </th>\n              <td class=\"govuk-table__cell\">{{ requestAccessDetails.caseName }}</td>\n            </tr>\n            <tr class=\"govuk-table__row\">\n              <th scope=\"row\" class=\"govuk-table__header leftLabel\" >\n                {{'Case reference' | rpxTranslate}}\n              </th>\n              <td class=\"govuk-table__cell\">{{ requestAccessDetails.caseReference }}</td>\n            </tr>\n            <tr class=\"govuk-table__row\">\n              <th scope=\"row\" class=\"govuk-table__header leftLabel\" >\n                {{'Date submitted' | rpxTranslate}}\n              </th>\n              <td class=\"govuk-table__cell\">{{ requestAccessDetails.dateSubmitted }}</td>\n            </tr>\n            <tr class=\"govuk-table__row\">\n              <th scope=\"row\" class=\"govuk-table__header leftLabel\" >\n                {{'Request from' | rpxTranslate}}\n              </th>\n              <td class=\"govuk-table__cell\">{{ requestAccessDetails.requestFrom }}<br /></td>\n            </tr>\n            <tr class=\"govuk-table__row\">\n              <th scope=\"row\" class=\"govuk-table__header leftLabel\" >\n                {{'Reason for case access' | rpxTranslate}}\n              </th>\n              <td class=\"govuk-table__cell\">{{ requestAccessDetails.reasonForCaseAccess | rpxTranslate }}</td>\n            </tr>\n          </tbody>\n        </table>\n\n        <div\n          class=\"govuk-form-group\"\n          [ngClass]=\"{ 'form-group-error': formGroup.invalid && submitted }\">\n          <fieldset class=\"govuk-fieldset\">\n            <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n              <h1 class=\"govuk-fieldset__heading\">\n                {{ hint | rpxTranslate }}\n              </h1>\n            </legend>\n            <div\n              id=\"error-message\"\n              class=\"govuk-error-message\"\n              *ngIf=\"formGroup.get('radioSelected').invalid && submitted\">\n              {{ errorMessage.description | rpxTranslate }}\n            </div>\n            <div class=\"govuk-radios__item\">\n              <input\n                class=\"govuk-radios__input\"\n                id=\"reason-0\"\n                name=\"radioSelected\"\n                type=\"radio\"\n                [value]=\"accessReasons[0].reason\"\n                formControlName=\"radioSelected\"\n                [checked]=\"accessReasons[0].checked\"\n                (change)=\"onChange()\"/>\n              <label class=\"govuk-label govuk-radios__label\" for=\"reason-0\">\n                {{ accessReasons[0].reason | rpxTranslate }}\n              </label>\n            </div>\n            <div class=\"govuk-radios__item\">\n              <input\n                class=\"govuk-radios__input\"\n                id=\"reason-1\"\n                name=\"radioSelected\"\n                type=\"radio\"\n                [value]=\"accessReasons[1].reason\"\n                formControlName=\"radioSelected\"\n                [checked]=\"accessReasons[1].checked\"\n                (change)=\"onChange()\"/>\n              <label class=\"govuk-label govuk-radios__label\" for=\"reason-1\">\n                {{ accessReasons[1].reason | rpxTranslate }}\n              </label>\n            </div>\n            <div class=\"govuk-radios__item\">\n              <input\n                class=\"govuk-radios__input\"\n                id=\"reason-2\"\n                name=\"radioSelected\"\n                type=\"radio\"\n                [value]=\"accessReasons[2].reason\"\n                formControlName=\"radioSelected\"\n                [checked]=\"accessReasons[2].checked\"\n                (change)=\"onChange()\"/>\n              <label class=\"govuk-label govuk-radios__label\" for=\"reason-2\">\n                {{ accessReasons[2].reason | rpxTranslate }}\n              </label>\n            </div>\n          </fieldset>\n        </div>\n      </div>\n    </fieldset>\n  </div>\n\n  <div class=\"govuk-button-group\">\n    <button class=\"govuk-button govuk-!-margin-right-3\" type=\"submit\">\n      {{'Continue' | rpxTranslate}}\n    </button>\n    <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n      <p>\n        <a class=\"govuk-body\" (click)=\"onCancel(); $event.preventDefault()\" href=\"#\">\n          {{'Cancel' | rpxTranslate}}\n        </a>\n      </p>\n    </div>\n  </div>\n</form>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { AbstractAppConfig } from '../../../../app.config';\nimport { CaseView, ErrorMessage, ReviewSpecificAccessRequest } from '../../../domain';\nimport { AccessReason, ReviewSpecificAccessRequestErrors, ReviewSpecificAccessRequestPageText } from './models';\n\n@Component({\n  selector: 'ccd-case-review-specific-access-request',\n  templateUrl: './case-review-specific-access-request.component.html',\n  styleUrls: ['./case-review-specific-access-request.component.scss'],\n  standalone: false\n})\nexport class CaseReviewSpecificAccessRequestComponent\n  implements OnInit, OnDestroy {\n  public static CANCEL_LINK_DESTINATION = '/work/my-work/list';\n  public collapsed = false;\n  public title: string;\n  public hint: string;\n  public caseRefLabel: string;\n  public formGroup: FormGroup;\n  public submitted = false;\n  public errorMessage: ErrorMessage;\n  public readonly accessReasons: DisplayedAccessReason[];\n  public requestAccessDetails: RequestAccessDetails;\n  public caseSubscription: Subscription;\n  public userAccessType: string;\n  public caseDetails: CaseView;\n\n  private readonly genericError = 'There is a problem';\n  private readonly radioSelectedControlName = 'radioSelected';\n\n  constructor(\n    private readonly fb: FormBuilder,\n    private readonly route: ActivatedRoute,\n    private readonly router: Router,\n    private readonly appConfig: AbstractAppConfig,\n  ) {\n    this.accessReasons = [\n      { reason: AccessReason.APPROVE_REQUEST, checked: false },\n      { reason: AccessReason.REJECT_REQUEST, checked: false },\n      { reason: AccessReason.REQUEST_MORE_INFORMATION, checked: false },\n    ];\n  }\n\n  public ngOnInit(): void {\n    // TODO: this ticket is blocked so mocked with those data to go through, they will be removed and implimented with actual data\n    // when dependency resolved\n    this.setMockData();\n    this.title = ReviewSpecificAccessRequestPageText.TITLE;\n    this.hint = ReviewSpecificAccessRequestPageText.HINT;\n    this.caseRefLabel = ReviewSpecificAccessRequestPageText.CASE_REF;\n    this.formGroup = this.fb.group({\n      radioSelected: new FormControl(null, Validators.required),\n    });\n  }\n\n  public ngOnDestroy(): void {\n    if (this.caseSubscription) {\n      this.caseSubscription.unsubscribe();\n    }\n  }\n\n  public onChange(): void {\n    this.submitted = false;\n  }\n\n  public onSubmit(): void {\n    this.submitted = true;\n\n    if (this.formGroup.get(this.radioSelectedControlName).invalid) {\n      this.errorMessage = {\n        title: this.genericError,\n        description: ReviewSpecificAccessRequestErrors.NO_SELECTION,\n      };\n    }\n    // Initiate Review Access Request\n    if (this.formGroup.valid) {\n      // Get the Case Reference (for which access is being requested) from the ActivatedRouteSnapshot data\n      const caseId = this.route.snapshot.data.case.case_id;\n      const radioSelectedValue = this.formGroup.get(\n        this.radioSelectedControlName\n      ).value;\n      // Get the index of the selected AccessReason enum value. Can't use Object.values because it's not available in\n      // < ES2017!\n      const reasonNumber = Object.keys(AccessReason)\n        .map((e) => AccessReason[e])\n        .indexOf(radioSelectedValue);\n      // request model created , it will be used for submission part\n      const challengedAccessRequest = {\n        reason: reasonNumber,\n        caseId,\n      } as ReviewSpecificAccessRequest;\n      if (AccessReason.REJECT_REQUEST === radioSelectedValue) {\n        this.router.navigate(['rejected'], { relativeTo: this.route });\n      }\n    }\n  }\n\n  public onCancel(): void {\n    this.router.navigateByUrl(CaseReviewSpecificAccessRequestComponent.CANCEL_LINK_DESTINATION);\n  }\n\n  // remove once Access management goes live\n  public setMockData(): void {\n    const requestAccessDetailsMock =\n      this.appConfig.getAccessManagementRequestReviewMockModel();\n\n    if (requestAccessDetailsMock.active) {\n      this.requestAccessDetails = requestAccessDetailsMock.details;\n    }\n  }\n}\n\nexport interface DisplayedAccessReason {\n  reason: AccessReason;\n  checked: boolean;\n}\n\nexport interface RequestAccessDetails {\n  caseName: string;\n  caseReference: string;\n  dateSubmitted: string;\n  requestFrom: string;\n  reasonForCaseAccess: string;\n}\n","export enum SpecificAccessRequestPageText {\n  TITLE = 'Why do you need to access this case?',\n  HINT = 'Provide a reason.',\n  CASE_REF = 'Case reference'\n}\n\nexport enum SpecificAccessRequestErrors {\n  NO_REASON = 'Enter a reason'\n}\n","<exui-error-message\n  *ngIf=\"(formGroup.invalid && submitted) || getSpecificAccessError\"\n  [error]=\"errorMessage\"></exui-error-message>\n<cut-alert type=\"information\">\n  {{'Authorisation is needed to access this case.' | rpxTranslate}}<br />\n  {{'This could be because it\\'s outside your jurisdiction, or you may be excluded from the case. If you request access to this case, it will be logged for auditing purposes.' | rpxTranslate}}\n</cut-alert>\n<form [formGroup]=\"formGroup\" (submit)=\"onSubmit()\">\n  <div class=\"govuk-form-group\"\n    [ngClass]=\"{ 'form-group-error': formGroup.invalid && submitted }\">\n    <fieldset class=\"govuk-fieldset\" aria-describedby=\"reason-hint\">\n      <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n        <h1 class=\"govuk-fieldset__heading\">\n          {{ title | rpxTranslate }}\n        </h1>\n      </legend>\n\n      <details class=\"govuk-details\" data-module=\"govuk-details\" role=\"group\">\n        <summary\n          class=\"govuk-details__summary\"\n          aria-expanded=\"false\">\n          <span class=\"govuk-details__summary-text\">\n            {{'Help with requesting case access' | rpxTranslate}}\n          </span>\n        </summary>\n        <div\n          class=\"govuk-details__text\"\n          aria-hidden=\"true\">\n          <p class=\"govuk-body\">{{'You could include:' | rpxTranslate}}</p>\n          <ul class=\"govuk-list govuk-list--bullet\">\n            <li>{{'the case reference of the linked case' | rpxTranslate}}</li>\n            <li>{{'how long you require access to this case' | rpxTranslate}}</li>\n            <li>{{'any other reasons why you require access' | rpxTranslate}}</li>\n          </ul>\n        </div>\n      </details>\n\n      <div id=\"reason-hint\" class=\"govuk-hint\">\n        {{ hint | rpxTranslate }}\n      </div>\n      <div id=\"conditional-reason-3\">\n        <div class=\"govuk-form-group\">\n          <div\n            id=\"specific-reason-error-message\"\n            class=\"govuk-error-message\"\n            *ngIf=\"formGroup.get('specificReason').invalid && submitted\">\n            {{ errorMessage.description | rpxTranslate }}\n          </div>\n          <textarea\n            class=\"govuk-textarea\"\n            [ngClass]=\"{\n              'govuk-textarea--error':\n                formGroup.get('specificReason').invalid && submitted\n            }\"\n            id=\"specific-reason\"\n            name=\"specific-reason\"\n            rows=\"8\"\n            formControlName=\"specificReason\">\n          </textarea>\n        </div>\n      </div>\n    </fieldset>\n  </div>\n\n  <div class=\"govuk-button-group\">\n    <button class=\"govuk-button govuk-!-margin-right-3\" type=\"submit\">\n      {{'Submit' | rpxTranslate}}\n    </button>\n    <div class=\"govuk-grid-column-full govuk-!-padding-left-0\">\n      <p>\n        <a class=\"govuk-body\" (click)=\"onCancel(); $event.preventDefault()\" href=\"#\">\n          {{'Cancel' | rpxTranslate}}\n        </a>\n      </p>\n    </div>\n  </div>\n</form>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport {\n  AbstractControl,\n  FormBuilder,\n  FormControl,\n  FormGroup\n} from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { ErrorMessage, SpecificAccessRequest } from '../../../domain';\nimport { CaseNotifier, CasesService } from '../../case-editor';\nimport {\n  SpecificAccessRequestErrors,\n  SpecificAccessRequestPageText\n} from './models';\n\n@Component({\n  selector: 'ccd-case-specific-access-request',\n  templateUrl: './case-specific-access-request.component.html',\n  standalone: false\n})\nexport class CaseSpecificAccessRequestComponent implements OnDestroy, OnInit {\n  public static CANCEL_LINK_DESTINATION = '/work/my-work/list';\n  public collapsed = false;\n  public title: string;\n  public hint: string;\n  public caseRefLabel: string;\n  public formGroup: FormGroup;\n  public submitted = false;\n  public errorMessage: ErrorMessage;\n  public $roleAssignmentResponseSubscription: Subscription;\n\n  private readonly genericError = 'There is a problem';\n  private readonly specificReasonControlName = 'specificReason';\n  public getSpecificAccessError = false;\n\n  constructor(\n    private readonly fb: FormBuilder,\n    private readonly router: Router,\n    private readonly casesService: CasesService,\n    private readonly route: ActivatedRoute,\n    private readonly caseNotifier: CaseNotifier\n  ) { }\n\n  public ngOnInit(): void {\n    this.title = SpecificAccessRequestPageText.TITLE;\n    this.hint = SpecificAccessRequestPageText.HINT;\n    this.caseRefLabel = SpecificAccessRequestPageText.CASE_REF;\n    this.formGroup = this.fb.group({\n      radioSelected: new FormControl(null, null),\n    });\n\n    this.formGroup.addControl(\n      this.specificReasonControlName,\n      new FormControl('', {\n        validators: [\n          (control: AbstractControl): { [key: string]: boolean } | null => {\n            if (this.inputEmpty(control)) {\n              return { invalid: true };\n            }\n            return null;\n          },\n        ],\n        updateOn: 'submit',\n      })\n    );\n  }\n\n  public onChange(): void {\n    this.submitted = false;\n    // Clear the \"specific reason\" fields manually. This prevents any previous value being retained by\n    // the field's FormControl when the field itself is removed from the DOM by *ngIf. (If it is subsequently added back\n    // to the DOM by *ngIf, it will appear empty but the associated FormControl still has the previous value.)\n    this.formGroup.get(this.specificReasonControlName).setValue('');\n  }\n\n  public onSubmit(): void {\n    this.submitted = true;\n    if (this.formGroup.get(this.specificReasonControlName).invalid) {\n      this.errorMessage = {\n        title: this.genericError,\n        description: SpecificAccessRequestErrors.NO_REASON,\n        fieldId: 'specific-reason',\n      };\n    }\n\n    // Initiate Specific Access Request\n    if (this.formGroup.valid) {\n      // Get the Case Reference (for which access is being requested) from the ActivatedRouteSnapshot data\n      const caseId = this.route.snapshot.params.cid;\n      const specificAccessRequest = {\n        specificReason: this.formGroup.get(this.specificReasonControlName).value\n      } as SpecificAccessRequest;\n\n      this.$roleAssignmentResponseSubscription = this.casesService.createSpecificAccessRequest(caseId, specificAccessRequest)\n        .pipe(switchMap(() => this.caseNotifier.fetchAndRefresh(caseId)))\n        .subscribe(\n          () => {\n            // Would have been nice to pass the caseId within state.data, but this isn't part of NavigationExtras until\n            // Angular 7.2\n            this.getSpecificAccessError = false;\n            this.router.navigate(['success'], { relativeTo: this.route });\n          },\n          () => {\n            // Show the generic error message\n            this.getSpecificAccessError = true;\n            this.errorMessage = {\n              title: this.genericError,\n              description: 'Sorry, there is a problem with the service; Try again later.'\n            };\n          }\n        );\n    }\n  }\n\n  public onCancel(): void {\n    // Navigate to the page before previous one (should be Search Results or Case List page, for example)\n    this.router.navigateByUrl(CaseSpecificAccessRequestComponent.CANCEL_LINK_DESTINATION);\n  }\n\n  public ngOnDestroy(): void {\n    if (this.$roleAssignmentResponseSubscription) {\n      this.$roleAssignmentResponseSubscription.unsubscribe();\n    }\n  }\n\n  private inputEmpty(input: AbstractControl): boolean {\n    return input.value === null || input.value.trim().length === 0;\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n@Component({\n  selector: 'ccd-case-specific-access-success',\n  templateUrl: './case-specific-access-success.component.html',\n  standalone: false\n})\nexport class CaseSpecificAccessSuccessComponent implements OnInit {\n\n  public caseId: string;\n\n  constructor(private readonly route: ActivatedRoute) { }\n\n  public ngOnInit(): void {\n    this.caseId = this.route.snapshot.params.cid;\n  }\n}\n","<div class=\"govuk-width-container\">\n  <div class=\"govuk-grid-row\">\n    <div class=\"govuk-grid-column-two-thirds\">\n      <div class=\"govuk-panel govuk-panel--confirmation\">\n        <h1 class=\"govuk-panel__title\">\n          Request sent<br><br>\n          <div class=\"govuk-panel__body\">\n            Case reference:<br>\n            {{caseId}}\n          </div>\n        </h1>\n      </div>\n      <h2 class=\"govuk-heading-m \">What happens next</h2>\n      <p class=\"govuk-body\">\n        Your request to access this case file has been sent.\n      </p>\n      <p class=\"govuk-body\">\n        Once your request has been authorised, you’ll be able to access the case through\n        <a href=\"work/my-work/my-access\">My access</a>.\n      </p>\n      <p class=\"govuk-body\">\n        Your request will be logged for auditing purposes.\n      </p>\n    </div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatLegacyTabsModule as MatTabsModule } from '@angular/material/legacy-tabs';\nimport { RouterModule } from '@angular/router';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { AlertModule } from '../../../components/banners/alert/alert.module';\nimport { BannersModule } from '../../../components/banners/banners.module';\nimport { ConditionalShowModule, LabelSubstitutorModule } from '../../directives';\nimport { CaseReferencePipe } from '../../pipes';\nimport {\n  ActivityPollingService,\n  ActivityService,\n  DraftService,\n  ErrorNotifierService,\n  HttpService,\n  NavigationNotifierService,\n  OrderService\n} from '../../services';\nimport { ActivityModule } from '../activity';\nimport { CaseEditorModule, CaseNotifier, ConvertHrefToRouterService } from '../case-editor';\nimport { CaseHeaderModule } from '../case-header';\nimport { CaseHistoryModule } from '../case-history';\nimport { EventMessageModule } from '../error-message/error-message.module';\nimport { ErrorsModule } from '../error/errors.module';\nimport { EventStartModule } from '../event-start/event-start.module';\nimport { EventTriggerModule } from '../event-trigger';\nimport { LoadingSpinnerModule } from '../loading-spinner/loading-spinner.module';\nimport { PaletteModule } from '../palette';\nimport { CaseBasicAccessViewComponent } from './case-basic-access-view';\nimport { CaseChallengedAccessRequestComponent } from './case-challenged-access-request/case-challenged-access-request.component';\nimport { CaseChallengedAccessSuccessComponent } from './case-challenged-access-success/case-challenged-access-success.component';\nimport { CaseEventTriggerComponent } from './case-event-trigger';\nimport { CaseFullAccessViewComponent } from './case-full-access-view/case-full-access-view.component';\nimport { CaseReviewSpecificAccessRejectComponent } from './case-review-specific-access-reject';\nimport { CaseReviewSpecificAccessRequestComponent } from './case-review-specific-access-request/case-review-specific-access-request.component';\nimport { CaseSpecificAccessRequestComponent } from './case-specific-access-request/case-specific-access-request.component';\nimport { CaseSpecificAccessSuccessComponent } from './case-specific-access-success/case-specific-access-success.component';\nimport { CaseViewComponent } from './case-view';\nimport { CaseViewerComponent } from './case-viewer.component';\nimport { CasePrinterComponent, PrintUrlPipe } from './printer';\nimport { CaseResolver, EventTriggerResolver } from './services';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RouterModule,\n    ErrorsModule,\n    ActivityModule,\n    CaseHeaderModule,\n    EventStartModule,\n    EventTriggerModule,\n    PaletteModule,\n    CaseEditorModule,\n    ConditionalShowModule,\n    CaseHistoryModule,\n    MatTabsModule,\n    ReactiveFormsModule,\n    AlertModule,\n    LabelSubstitutorModule,\n    RpxTranslationModule.forChild(),\n    BannersModule,\n    LabelSubstitutorModule,\n    LoadingSpinnerModule,\n    EventMessageModule\n  ],\n  declarations: [\n    CaseEventTriggerComponent,\n    CasePrinterComponent,\n    CaseViewerComponent,\n    CaseFullAccessViewComponent,\n    CaseViewComponent,\n    CaseBasicAccessViewComponent,\n    PrintUrlPipe,\n    CaseChallengedAccessRequestComponent,\n    CaseSpecificAccessRequestComponent,\n    CaseReviewSpecificAccessRequestComponent,\n    CaseChallengedAccessSuccessComponent,\n    CaseSpecificAccessSuccessComponent,\n    CaseReviewSpecificAccessRejectComponent\n  ],\n  exports: [\n    CaseViewerComponent,\n    CaseViewComponent\n  ],\n  providers: [\n    CaseNotifier,\n    ConvertHrefToRouterService,\n    NavigationNotifierService,\n    CaseReferencePipe,\n    EventTriggerResolver,\n    ActivityService,\n    ActivityPollingService,\n    OrderService,\n    DraftService,\n    HttpService,\n    CaseResolver,\n    ErrorNotifierService\n  ],\n  schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class CaseViewerModule {\n}\n","import { Routes } from '@angular/router';\nimport { editorRouting } from '../case-editor';\nimport { CaseHistoryComponent } from '../case-history';\nimport {\n  EventStartComponent,\n  MultipleTasksExistComponent,\n  NoTasksAvailableComponent,\n  TaskAssignedComponent,\n  TaskCancelledComponent,\n  TaskConflictComponent,\n  TaskUnassignedComponent\n} from '../event-start';\nimport { EventStartGuard } from '../event-start/event-guard/event-start.guard';\nimport { EventTasksResolverService } from '../event-start/resolvers/event-tasks-resolver.service';\nimport { FileUploadProgressGuard } from '../palette/document/file-upload-progress.guard';\nimport { CaseChallengedAccessRequestComponent } from './case-challenged-access-request';\nimport { CaseChallengedAccessSuccessComponent } from './case-challenged-access-success';\nimport { CaseEventTriggerComponent } from './case-event-trigger';\nimport { CaseReviewSpecificAccessRejectComponent } from './case-review-specific-access-reject';\nimport { CaseReviewSpecificAccessRequestComponent } from './case-review-specific-access-request';\nimport { CaseSpecificAccessRequestComponent } from './case-specific-access-request';\nimport { CaseSpecificAccessSuccessComponent } from './case-specific-access-success';\nimport { CasePrinterComponent } from './printer/case-printer.component';\nimport { EventTriggerResolver } from './services/event-trigger.resolver';\n\nexport const viewerRouting: Routes = [\n  {\n    path: 'print',\n    component: CasePrinterComponent,\n  },\n  {\n    path: 'trigger/:eid',\n    resolve: {\n      eventTrigger: EventTriggerResolver,\n    },\n    component: CaseEventTriggerComponent,\n    children: editorRouting,\n    canActivate: [EventStartGuard],\n    canDeactivate: [FileUploadProgressGuard],\n  },\n  {\n    path: 'event-start',\n    component: EventStartComponent,\n    resolve: {\n      tasks: EventTasksResolverService\n    }\n  },\n  {\n    path: 'task-assigned',\n    component: TaskAssignedComponent\n  },\n  {\n    path: 'task-unassigned',\n    component: TaskUnassignedComponent\n  },\n  {\n    path: 'multiple-tasks-exist',\n    component: MultipleTasksExistComponent\n  },\n  {\n    path: 'no-tasks-available',\n    component: NoTasksAvailableComponent\n  },\n  {\n    path: 'task-cancelled',\n    component: TaskCancelledComponent\n  },\n  {\n    path: 'task-conflict',\n    component: TaskConflictComponent\n  },\n  {\n    path: 'event/:eid/history',\n    component: CaseHistoryComponent,\n  },\n  {\n    path: 'challenged-access-request',\n    children: [\n      {\n        path: '',\n        component: CaseChallengedAccessRequestComponent,\n        data: {\n          title: 'Request Challenged Access',\n        },\n        pathMatch: 'full',\n      },\n      {\n        path: 'success',\n        component: CaseChallengedAccessSuccessComponent,\n        data: {\n          title: 'Challenged Access Success',\n        },\n      },\n    ],\n  },\n  {\n    path: 'specific-access-request',\n    children: [\n      {\n        path: '',\n        component: CaseSpecificAccessRequestComponent,\n        data: {\n          title: 'Request Specific Access',\n        },\n        pathMatch: 'full',\n      },\n      {\n        path: 'success',\n        component: CaseSpecificAccessSuccessComponent,\n        data: {\n          title: 'Specific Access Success',\n        },\n      },\n    ],\n  },\n  {\n    path: 'review-specific-access-request',\n    children: [\n      {\n        path: '',\n        component: CaseReviewSpecificAccessRequestComponent,\n        data: {\n          title: 'Request Specific Access',\n        },\n        pathMatch: 'full',\n      },\n      {\n        path: 'rejected',\n        component: CaseReviewSpecificAccessRejectComponent,\n        data: {\n          title: 'Review Access Rejected'\n        }\n      }\n    ],\n  },\n];\n","<form  (ngSubmit)=\"apply()\">\n  <div class=\"form-group\">\n    <label class=\"form-label\" for=\"cc-jurisdiction\">{{'Jurisdiction' | rpxTranslate}}</label>\n    <select class=\"form-control ccd-dropdown\" id=\"cc-jurisdiction\" name=\"jurisdiction\" [formControl]=\"filterJurisdictionControl\" (change)=\"onJurisdictionIdChange()\">\n      <option value=\"\">--{{'Select a value' | rpxTranslate}}--</option>\n      <option *ngFor=\"let j of jurisdictions\" [value]=\"j.id\">{{j.name | rpxTranslate}}</option>\n    </select>\n  </div>\n\n  <div class=\"form-group\">\n    <label class=\"form-label\" for=\"cc-case-type\">{{'Case type' | rpxTranslate}}</label>\n    <select class=\"form-control ccd-dropdown\" id=\"cc-case-type\" name=\"case-type\" [formControl]=\"filterCaseTypeControl\" (change)=\"onCaseTypeIdChange()\">\n      <option value=\"\">--{{'Select a value' | rpxTranslate}}--</option>\n      <option *ngFor=\"let ct of selectedJurisdictionCaseTypes\" [value]=\"ct.id\">{{ct.name | rpxTranslate}}</option>\n    </select>\n  </div>\n\n  <div class=\"form-group\">\n    <label class=\"form-label\" for=\"cc-event\">{{'Event' | rpxTranslate}}</label>\n    <select class=\"form-control ccd-dropdown\" id=\"cc-event\" name=\"event\" [formControl]=\"filterEventControl\" (change)=\"onEventIdChange()\">\n      <option value=\"\">--{{'Select a value' | rpxTranslate}}--</option>\n      <option *ngFor=\"let e of selectedCaseTypeEvents\" [value]=\"e.id\">{{e.name | rpxTranslate}}</option>\n    </select>\n  </div>\n\n  <button type=\"submit\" class=\"button\" [disabled]=\"!isCreatable()\">{{startButtonText | rpxTranslate}}</button>\n</form>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { CREATE_ACCESS } from '../../domain/case-view/access-types.model';\nimport { CaseEvent } from '../../domain/definition/case-event.model';\nimport { CaseTypeLite } from '../../domain/definition/case-type-lite.model';\nimport { Jurisdiction } from '../../domain/definition/jurisdiction.model';\nimport { DefinitionsService } from '../../services/definitions/definitions.service';\nimport { JurisdictionService } from '../../services/jurisdiction/jurisdiction.service';\nimport { OrderService } from '../../services/order/order.service';\nimport { SessionStorageService } from '../../services/session/session-storage.service';\nimport { USER_DETAILS } from '../../utils';\nimport { CreateCaseFiltersSelection } from './create-case-filters-selection.model';\n\n@Component({\n  selector: 'ccd-create-case-filters',\n  templateUrl: './create-case-filters.component.html',\n  standalone: false\n})\nexport class CreateCaseFiltersComponent implements OnInit {\n\n  @Input()\n  public isDisabled: boolean;\n  @Input()\n  public startButtonText: string;\n  @Output()\n  public selectionSubmitted: EventEmitter<CreateCaseFiltersSelection> = new EventEmitter();\n  @Output()\n  public selectionChanged: EventEmitter<any> = new EventEmitter();\n\n  public formGroup: FormGroup = new FormGroup({});\n\n  public selected: {\n    jurisdiction?: Jurisdiction,\n    caseType?: CaseTypeLite,\n    event?: CaseEvent,\n    formGroup?: FormGroup\n  };\n\n  public jurisdictions: Jurisdiction[];\n  public selectedJurisdictionCaseTypes?: CaseTypeLite[];\n  public selectedCaseTypeEvents?: CaseEvent[];\n\n  public filterJurisdictionControl: FormControl;\n  public filterCaseTypeControl: FormControl;\n  public filterEventControl: FormControl;\n\n  constructor(\n    private readonly orderService: OrderService,\n    private readonly definitionsService: DefinitionsService,\n    private readonly sessionStorageService: SessionStorageService,\n    private readonly jurisdictionService: JurisdictionService\n  ) { }\n\n  public ngOnInit() {\n    this.selected = {};\n    this.initControls();\n    this.definitionsService.getJurisdictions(CREATE_ACCESS)\n      .subscribe(jurisdictions => {\n        this.jurisdictions = jurisdictions;\n        this.selectJurisdiction(this.jurisdictions, this.filterJurisdictionControl);\n      });\n    if (document.getElementById('cc-jurisdiction')) {\n      document.getElementById('cc-jurisdiction').focus();\n    }\n  }\n\n  public onJurisdictionIdChange(): void {\n    this.resetCaseType();\n    this.resetEvent();\n    if (this.filterJurisdictionControl.value !== '') {\n      this.formGroup.controls['caseType'].enable();\n      this.selected.jurisdiction = this.findJurisdiction(this.jurisdictions, this.filterJurisdictionControl.value);\n      this.selectedJurisdictionCaseTypes = this.selected.jurisdiction.caseTypes;\n      this.selectCaseType(this.selectedJurisdictionCaseTypes, this.filterCaseTypeControl);\n    }\n  }\n\n  public onCaseTypeIdChange(): void {\n    this.resetEvent();\n    if (this.filterCaseTypeControl.value !== '') {\n      this.selected.caseType = this.findCaseType(this.selectedJurisdictionCaseTypes, this.filterCaseTypeControl.value);\n      this.formGroup.controls['event'].enable();\n      this.selectedCaseTypeEvents = this.sortEvents(this.selected.caseType.events);\n      this.selectEvent(this.selectedCaseTypeEvents, this.filterEventControl);\n    }\n  }\n\n  public onEventIdChange(): void {\n    this.emitChange();\n    if (this.filterEventControl.value !== '') {\n      this.selected.event = this.findEvent(this.selectedCaseTypeEvents, this.filterEventControl.value);\n    } else {\n      this.selected.event = null;\n    }\n  }\n\n  public isCreatable(): boolean {\n    return !this.isEmpty(this.selected) &&\n      !this.isEmpty(this.selected.jurisdiction) &&\n      !this.isEmpty(this.selected.caseType) &&\n      !this.isEmpty(this.selected.event) &&\n      !this.isDisabled;\n  }\n\n  public apply() {\n    this.selected.jurisdiction.currentCaseType = this.selected.caseType;\n    this.jurisdictionService.announceSelectedJurisdiction(this.selected.jurisdiction);\n    this.selectionSubmitted.emit({\n      jurisdictionId: this.selected.jurisdiction.id,\n      caseTypeId: this.selected.caseType.id,\n      eventId: this.selected.event.id\n    });\n  }\n\n  public initControls(): void {\n    this.filterJurisdictionControl = new FormControl('');\n    this.formGroup.addControl('jurisdiction', this.filterJurisdictionControl);\n    this.filterCaseTypeControl = new FormControl({ value: '', disabled: true });\n    this.formGroup.addControl('caseType', this.filterCaseTypeControl);\n    this.filterEventControl = new FormControl({ value: '', disabled: true });\n    this.formGroup.addControl('event', this.filterEventControl);\n  }\n\n  public emitChange(): void {\n    setTimeout(() => { // workaround to prevent 'ExpressionChangedAfterItHasBeenCheckedError'\n      if (this.selectionChanged) {\n        this.selectionChanged.emit();\n      }\n    }, 0);\n  }\n\n  private sortEvents(events: CaseEvent[]): CaseEvent[] {\n    return this.orderService.sort(this.retainEventsWithCreateRights(this.retainEventsWithNoPreStates(events)));\n  }\n\n  private retainEventsWithNoPreStates(events: CaseEvent[]): CaseEvent[] {\n    return events.filter(event => event.pre_states.length === 0);\n  }\n\n  private retainEventsWithCreateRights(events: CaseEvent[]): CaseEvent[] {\n    const userProfile = JSON.parse(this.sessionStorageService.getItem(USER_DETAILS));\n    return events.filter(event => userProfile && userProfile.roles &&\n      !!userProfile.roles.find(role => this.hasCreateAccess(event, role)));\n  }\n\n  private hasCreateAccess(caseEvent: CaseEvent, role: any): boolean {\n    return !!caseEvent.acls.find(acl => acl.role === role && acl.create === true);\n  }\n\n  private selectJurisdiction(jurisdictions: Jurisdiction[], filterJurisdictionControl: FormControl) {\n    if (jurisdictions.length === 1) {\n      filterJurisdictionControl.setValue(jurisdictions[0].id);\n      this.onJurisdictionIdChange();\n    }\n  }\n\n  private selectCaseType(caseTypes: CaseTypeLite[], filterCaseTypeControl: FormControl) {\n    if (caseTypes.length === 1) {\n      filterCaseTypeControl.setValue(caseTypes[0].id);\n      this.onCaseTypeIdChange();\n    }\n  }\n\n  private selectEvent(events: CaseEvent[], filterEventControl: FormControl) {\n    if (events.length === 1) {\n      filterEventControl.setValue(events[0].id);\n      this.onEventIdChange();\n    }\n  }\n\n  private findJurisdiction(jurisdictions: Jurisdiction[], id: string): Jurisdiction {\n    return jurisdictions.find(j => j.id === id);\n  }\n\n  private findCaseType(caseTypes: CaseTypeLite[], id: string): CaseTypeLite {\n    return caseTypes.find(caseType => caseType.id === id);\n  }\n\n  private findEvent(events: CaseEvent[], id: string): CaseEvent {\n    return events.find(event => event.id === id);\n  }\n\n  private resetCaseType(): void {\n    this.emitChange();\n    this.filterCaseTypeControl.setValue('');\n    this.selected.caseType = null;\n    this.selectedJurisdictionCaseTypes = [];\n    this.formGroup.controls['caseType'].disable();\n  }\n\n  private resetEvent(): void {\n    this.emitChange();\n    this.filterEventControl.setValue('');\n    this.selected.event = null;\n    this.selectedCaseTypeEvents = [];\n    this.formGroup.controls['event'].disable();\n  }\n\n  private isEmpty(value: any): boolean {\n    return value === null || value === undefined;\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { DefinitionsModule } from '../../services/definitions/definitions.module';\nimport { ErrorsModule } from '../error/errors.module';\nimport { CreateCaseFiltersComponent } from './create-case-filters.component';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        DefinitionsModule,\n        ErrorsModule,\n        RpxTranslationModule.forChild()\n    ],\n    declarations: [\n        CreateCaseFiltersComponent\n    ],\n    exports: [\n        CreateCaseFiltersComponent\n    ]\n})\n\nexport class CreateCaseFiltersModule {}\n","export class CreateCaseFiltersSelection {\n    public jurisdictionId: string;\n    public caseTypeId: string;\n    public eventId: string;\n\n    constructor() {\n        this.jurisdictionId = 'TEST',\n        this.caseTypeId = 'TestAddressBookCase',\n        this.eventId = 'startCase';\n    }\n}\n","// tslint:disable:variable-name\nimport { Orderable } from '../../../domain/order/orderable.model';\nimport { Field } from '../../../domain/search/field.model';\n\nexport class SearchInput implements Orderable {\n  constructor(\n    public label: string,\n    public order: number,\n    public field: Field,\n    public metadata?: boolean,\n    public display_context_parameter?: string) {}\n}\n","<h2 class=\"heading-h2\" aria-label=\"Filters\">{{'Filters' | rpxTranslate}}</h2>\n<form class=\"global-display\">\n  <div class=\"form-group\" style=\"margin-top: 13px;\">\n    <label class=\"form-label\" for=\"s-jurisdiction\">{{'Jurisdiction' | rpxTranslate}}*</label>\n    <select class=\"form-control form-control-3-4 ccd-dropdown\" id=\"s-jurisdiction\"\n            name=\"jurisdiction\" [(ngModel)]=\"selected.jurisdiction\" aria-controls=\"search-result\"\n            (change)=\"onJurisdictionIdChange()\">\n      <option *ngFor=\"let j of jurisdictions\" [ngValue]=\"j\">{{j.name | rpxTranslate}}</option>\n    </select>\n  </div>\n  <div class=\"form-group\">\n    <label class=\"form-label\" for=\"s-case-type\">{{'Case type*' | rpxTranslate}}</label>\n    <select [disabled]=\"isJurisdictionSelected()\" class=\"form-control form-control-3-4 ccd-dropdown\"\n            id=\"s-case-type\" name=\"case-type\" [(ngModel)]=\"selected.caseType\" aria-controls=\"search-result\"\n            (change)=\"onCaseTypeIdChange()\">\n      <option *ngFor=\"let ct of selectedJurisdictionCaseTypes\" [ngValue]=\"ct\">{{ct.name | rpxTranslate}}</option>\n    </select>\n  </div>\n\n  <ng-container ccdConditionalShowForm *ngIf=\"isSearchableAndSearchInputsReady()\" [formGroup]=\"formGroup\" [contextFields]=\"caseFields\">\n    <div id=\"dynamicFilters\">\n      <div class=\"form-group\" *ngFor=\"let searchInput of searchInputs\">\n        <ccd-field-write [caseField]=\"searchInput.field\" [formGroup]=\"formGroup\" [isExpanded]=\"true\" (keyup.enter)=\"apply()\">\n        </ccd-field-write>\n      </div>\n    </div>\n  </ng-container>\n\n  <button [disabled]=\"!isSearchableAndSearchInputsReady()\" type=\"button\" class=\"button\" (click)=\"apply()\" (keyup.enter)=\"apply()\" [title]=\"'Apply filter' | rpxTranslate\"\n          [attr.aria-label]=\"'Apply filter' | rpxTranslate\">\n    {{'Apply' | rpxTranslate}}\n  </button> &nbsp;&nbsp;&nbsp;\n  <button id=\"reset\" type=\"button\" (click)=\"reset()\" class=\"button button-secondary\"\n          [title]=\"'Reset filter' | rpxTranslate\" [attr.aria-label]=\"'Reset filter' | rpxTranslate\">\n    {{'Reset' | rpxTranslate}}\n  </button>\n</form>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { tap } from 'rxjs/operators';\nimport { compressToUTF16, decompressFromUTF16} from 'lz-string';\n\nimport { CaseField } from '../../domain/definition/case-field.model';\nimport { CaseState } from '../../domain/definition/case-state.model';\nimport { CaseTypeLite } from '../../domain/definition/case-type-lite.model';\nimport { Jurisdiction } from '../../domain/definition/jurisdiction.model';\nimport { FieldsUtils } from '../../services/fields/fields.utils';\nimport { JurisdictionService } from '../../services/jurisdiction/jurisdiction.service';\nimport { OrderService } from '../../services/order/order.service';\nimport { SearchService } from '../../services/search/search.service';\nimport { WindowService } from '../../services/window/window.service';\nimport { SearchInput } from './domain/search-input.model';\n\nconst JURISDICTION_LOC_STORAGE = 'search-jurisdiction';\nconst META_FIELDS_LOC_STORAGE = 'search-metadata-fields';\nconst FORM_GROUP_VALUE_LOC_STORAGE = 'search-form-group-value';\nconst CASE_TYPE_LOC_STORAGE = 'search-caseType';\n@Component({\n  selector: 'ccd-search-filters',\n  templateUrl: './search-filters.component.html',\n  standalone: false\n})\n\nexport class SearchFiltersComponent implements OnInit {\n  public readonly PARAM_JURISDICTION = 'jurisdiction';\n  public readonly PARAM_CASE_TYPE = 'case-type';\n  public readonly PARAM_CASE_STATE = 'case-state';\n  public caseFields: CaseField[];\n\n  @Input()\n  public jurisdictions: Jurisdiction[];\n\n  @Input()\n  public autoApply: boolean;\n\n  @Output()\n  public onApply: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  public onReset: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  public onJurisdiction: EventEmitter<any> = new EventEmitter();\n\n  public searchInputs: SearchInput[];\n  public searchInputsReady: boolean;\n\n  public selected: {\n    jurisdiction?: Jurisdiction,\n    caseType?: CaseTypeLite,\n    formGroup?: FormGroup,\n    caseState?: CaseState,\n    page?: number,\n    metadataFields?: string[]\n  };\n\n  public selectedJurisdictionCaseTypes?: CaseTypeLite[];\n\n  public formGroup: FormGroup = new FormGroup({});\n\n  constructor(private readonly searchService: SearchService,\n    private readonly orderService: OrderService,\n    private readonly jurisdictionService: JurisdictionService,\n    private readonly windowService: WindowService) {\n    this.selected = {};\n  }\n\n  public ngOnInit(): void {\n    const jurisdiction = this.getValuesFromLocalStorage();\n    if (this.jurisdictions.length === 1 || jurisdiction) {\n      this.selected.jurisdiction = this.jurisdictions[0];\n      if(jurisdiction) {\n        this.selected.jurisdiction = this.jurisdictions\n          .filter(j => j.id === jurisdiction.id)[0];\n        if(jurisdiction.currentCaseType &&\n          this.selected.jurisdiction.caseTypes.find(ct => ct.id === jurisdiction.currentCaseType.id)) {\n          this.selected.jurisdiction.currentCaseType = jurisdiction.currentCaseType;\n        } else {\n          this.selected.jurisdiction.currentCaseType = this.selected.jurisdiction.caseTypes[0];\n        }\n      }\n      this.onJurisdictionIdChange();\n    }\n    if (this.selected) {\n      this.selected.formGroup = this.formGroup;\n      this.selected.page = 1;\n      this.selected.metadataFields = this.getMetadataFields();\n    }\n    this.onApply.emit({\n      selected: this.selected,\n      queryParams: this.getQueryParams()\n    });\n\n  }\n\n  public reset(): void {\n    this.windowService.removeLocalStorage(FORM_GROUP_VALUE_LOC_STORAGE);\n    this.windowService.removeLocalStorage(CASE_TYPE_LOC_STORAGE);\n    this.windowService.removeLocalStorage(JURISDICTION_LOC_STORAGE);\n    this.windowService.removeLocalStorage(META_FIELDS_LOC_STORAGE);\n    this.selected = {};\n    if (this.jurisdictions.length === 1) {\n      this.selected.jurisdiction = this.jurisdictions[0];\n      this.onJurisdictionIdChange();\n    }\n    this.onReset.emit();\n  }\n\n  public apply(): void {\n    this.selected.formGroup = this.formGroup;\n    this.selected.page = 1;\n    this.selected.metadataFields = this.getMetadataFields();\n    this.populateValuesInLocalStorage();\n    this.onApply.emit({\n      selected: this.selected,\n      queryParams: this.getQueryParams()\n    });\n    this.setFocusToTop();\n  }\n\n  public populateValuesInLocalStorage(): void {\n    this.windowService.setLocalStorage(FORM_GROUP_VALUE_LOC_STORAGE,\n      JSON.stringify(this.selected.formGroup.value));\n    this.windowService.setLocalStorage(META_FIELDS_LOC_STORAGE, JSON.stringify(this.selected.metadataFields));\n    try {\n      const compJurisd = compressToUTF16(JSON.stringify(this.selected.jurisdiction));\n      this.windowService.setLocalStorage(JURISDICTION_LOC_STORAGE, compJurisd);\n     } catch (e) {\n      this.windowService.setLocalStorage(JURISDICTION_LOC_STORAGE, null);\n    }\n    if (this.selected.caseType) {\n      this.windowService.setLocalStorage(CASE_TYPE_LOC_STORAGE, JSON.stringify(this.selected.caseType));\n    }\n  }\n\n  public getValuesFromLocalStorage(): Jurisdiction {\n    const jurisdiction = this.windowService.getLocalStorage(JURISDICTION_LOC_STORAGE);\n    if (jurisdiction) {\n      try {\n        const localStorageJurisdiction = JSON.parse(decompressFromUTF16(jurisdiction));\n        if (localStorageJurisdiction) {\n          return localStorageJurisdiction;\n        }\n      } catch (e) {\n        console.log(\"Failed to retrieve jurisdiction from local storage\");\n        this.windowService.setLocalStorage(JURISDICTION_LOC_STORAGE, null)\n      }\n    }\n    return null;\n  }\n\n  public getMetadataFields(): string[] {\n    if (this.searchInputs) {\n      return this.searchInputs\n        .filter(searchInput => searchInput.field.metadata === true)\n        .map(searchInput => searchInput.field.id);\n    }\n  }\n\n  public isSearchable(): boolean {\n    let result: boolean;\n    result = this.selected.jurisdiction !== undefined && this.selected.jurisdiction !== null;\n    result = result && this.selected.caseType !== undefined && this.selected.caseType !== null;\n    return result;\n  }\n\n  public isSearchableAndSearchInputsReady(): boolean {\n    return this.isSearchable() && this.searchInputsReady;\n  }\n\n  public onJurisdictionIdChange(): void {\n    this.selected.caseType = null;\n    this.selectedJurisdictionCaseTypes = this.selected?.jurisdiction?.caseTypes;\n    this.selectCaseType(this.selectedJurisdictionCaseTypes);\n    this.jurisdictionService.announceSelectedJurisdiction(this.selected.jurisdiction);\n    this.onJurisdiction.emit(this.selected.jurisdiction);\n  }\n\n  public onCaseTypeIdChange(): void {\n    if (this.selected.jurisdiction && this.selected.caseType) {\n      this.selected.jurisdiction.currentCaseType = this.selected.caseType;\n      this.jurisdictionService.announceSelectedJurisdiction(this.selected.jurisdiction)\n    }\n    this.formGroup = new FormGroup({});\n    this.searchInputsReady = false;\n    this.searchInputs = [];\n    this.searchService.getSearchInputs(\n      this.selected.jurisdiction.id,\n      this.selected.caseType.id\n    ).pipe(\n      tap(() => this.searchInputsReady = true)\n    ).subscribe(searchInputs => {\n      this.searchInputs = searchInputs.sort(this.orderService.sortAsc);\n\n      const formValue = this.windowService.getLocalStorage(FORM_GROUP_VALUE_LOC_STORAGE);\n      let formValueObject = null;\n      if (formValue) {\n        formValueObject = JSON.parse(formValue);\n      }\n      searchInputs.forEach(item => {\n        if (item.field.elementPath) {\n          item.field.id = `${item.field.id}.${item.field.elementPath}`;\n        }\n        item.field.label = item.label;\n        if (formValueObject) {\n          item.field.value = formValueObject[item.field.id];\n        }\n      });\n      this.getCaseFields();\n    }, error => {\n      console.log('Search input fields request will be discarded reason: ', error.message);\n    });\n  }\n\n  public isJurisdictionSelected(): boolean {\n    return this.selected.jurisdiction === null ||\n      this.selected.jurisdiction === undefined;\n  }\n\n  private getQueryParams() {\n    // Save filters as query parameters for current route\n    const queryParams = {};\n    if (this.selected?.jurisdiction) {\n      queryParams[this.PARAM_JURISDICTION] = this.selected.jurisdiction.id;\n    }\n    if (this.selected?.caseType) {\n      queryParams[this.PARAM_CASE_TYPE] = this.selected.caseType.id;\n    }\n    if (this.selected?.caseState) {\n      queryParams[this.PARAM_CASE_STATE] = this.selected.caseState.id;\n    }\n    return queryParams;\n  }\n\n  private selectCaseType(caseTypes: CaseTypeLite[]) {\n    if (caseTypes && caseTypes.length > 0) {\n      this.selected.caseType = caseTypes[0];\n      const caseType = this.windowService.getLocalStorage(CASE_TYPE_LOC_STORAGE);\n      if (caseType) {\n        const caseTypeObject = JSON.parse(caseType);\n        const result = caseTypes.filter(c => c.id === caseTypeObject.id);\n        if (result !== undefined && result.length > 0) {\n          this.selected.caseType = result[0];\n        } else {\n          this.selected.caseType = caseTypes[0];\n        }\n      } else {\n        this.selected.caseType = caseTypes[0];\n      }\n      this.selected.jurisdiction.currentCaseType = this.selected.caseType;\n      this.onCaseTypeIdChange();\n    }\n  }\n\n  private setFocusToTop() {\n    window.scrollTo(0, 0);\n\n    const topContainer = document.getElementById('search-result-heading__text');\n    if (topContainer) {\n      topContainer.focus();\n    }\n  }\n\n  private getCaseFields(): void {\n    if (this.searchInputs) {\n      this.caseFields = this.searchInputs.map(item => FieldsUtils.convertToCaseField(item.field));\n    }\n  }\n}\n","<ccd-search-filters\n    *ngIf=\"isVisible\"\n    [jurisdictions]=\"jurisdictions\"\n    [autoApply]=\"autoApply\"\n    (onApply)=\"onWrapperApply($event)\"\n    (onReset)=\"onWrapperReset($event)\"\n    (onJuridiction)=\"onWrapperJurisdiction($event)\"\n></ccd-search-filters>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { READ_ACCESS } from '../../domain/case-view/access-types.model';\nimport { Jurisdiction } from '../../domain/definition/jurisdiction.model';\nimport { DefinitionsService } from '../../services/definitions/definitions.service';\n\n@Component({\n  selector: 'ccd-search-filters-wrapper',\n  templateUrl: './search-filters-wrapper.component.html',\n  standalone: false\n})\n\nexport class SearchFiltersWrapperComponent implements OnInit {\n\n    @Input()\n    public autoApply: boolean;\n\n    @Output()\n    public onApply: EventEmitter<any> = new EventEmitter();\n\n    @Output()\n    public onReset: EventEmitter<any> = new EventEmitter();\n\n    @Output()\n    public onJurisdiction: EventEmitter<any> = new EventEmitter();\n\n    public jurisdictions: Jurisdiction[];\n    public isVisible: boolean;\n\n    constructor(\n        private readonly definitionsService: DefinitionsService,\n    ) {\n    }\n\n    public ngOnInit(): void {\n        this.isVisible = false;\n\n        this.definitionsService.getJurisdictions(READ_ACCESS)\n            .subscribe(jurisdictions => {\n                this.isVisible = true;\n                this.jurisdictions = jurisdictions;\n            });\n    }\n\n    public onWrapperApply(value) {\n        this.onApply.emit(value);\n    }\n\n    public onWrapperReset(value) {\n        this.onReset.emit(value);\n    }\n\n    public onWrapperJurisdiction(value) {\n        this.onJurisdiction.emit(value);\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { ConditionalShowModule } from '../../directives/conditional-show/conditional-show.module';\nimport { DefinitionsService } from '../../services/definitions/definitions.service';\nimport { JurisdictionService } from '../../services/jurisdiction/jurisdiction.service';\nimport { OrderService } from '../../services/order/order.service';\nimport { SearchService } from '../../services/search/search.service';\nimport { WindowService } from '../../services/window/window.service';\nimport { PaletteModule } from '../palette/palette.module';\n\nimport { SearchFiltersWrapperComponent } from './search-filters-wrapper.component';\nimport { SearchFiltersComponent } from './search-filters.component';\n\n@NgModule({\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        PaletteModule,\n        ConditionalShowModule,\n        RpxTranslationModule.forChild()\n    ],\n    declarations: [\n        SearchFiltersComponent,\n        SearchFiltersWrapperComponent\n    ],\n    exports: [\n        SearchFiltersWrapperComponent\n    ],\n    providers: [\n        SearchService,\n        OrderService,\n        JurisdictionService,\n        DefinitionsService,\n        WindowService\n    ]\n})\nexport class SearchFiltersModule {}\n","<table *ngIf=\"hasResults() || hasDrafts()\">\n  <caption>\n    <h2 class=\"heading-h2\" id=\"search-result-heading__text\" tabindex=\"-1\">{{ (caseState ? 'Your cases' : 'Search result') | rpxTranslate}}</h2>\n\n    <div class=\"govuk-warning-text pagination-limit-warning\" *ngIf=\"paginationLimitEnforced\">\n      <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n      <strong class=\"govuk-warning-text__text\">\n        <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n        {{'The total size of the result set is' | rpxTranslate}} {{paginationMetadata.totalResultsCount | number}}. {{'Only the first 10,000 records are available for display.' | rpxTranslate}}\n      </strong>\n    </div>\n\n    <div *ngIf=\"(hasResults() || hasDrafts())\" class=\"pagination-top\">\n      <output [attr.aria-label]=\"getTotalResults() + ' ' + ('results have been found' | rpxTranslate)\"></output>\n          <span class=\"text-16\" id=\"search-result-summary__text\">{{'Showing' | rpxTranslate}}\n        <span class=\"govuk-!-font-weight-bold\">{{ getFirstResult() }}</span>\n        {{'to' | rpxTranslate}}\n        <span class=\"govuk-!-font-weight-bold\">{{ getLastResult() }}</span>\n        {{'of' | rpxTranslate}}\n        <span class=\"govuk-!-font-weight-bold\">{{ getTotalResults() }}</span> {{'results' | rpxTranslate}}</span>\n    </div>\n    <div *ngIf=\"(hasResults() || hasDrafts()) && selectionEnabled\" class=\"reset-selection\"\n    [attr.aria-label]=\"'Reset selection' | rpxTranslate\">\n      <span><a class=\"search-result-reset-link\" href=\"#\" (click)=\"clearSelection(); $event.preventDefault()\">{{'Reset case selection' | rpxTranslate}}</a></span>\n    </div>\n  </caption>\n  <thead>\n    <tr scope=\"row\">\n      <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\">\n        <div class=\"govuk-checkboxes__item\">\n          <input class=\"govuk-checkboxes__input\" id=\"select-all\" name=\"select-all\" type=\"checkbox\" (change)=\"selectAll()\" [checked]=\"allOnPageSelected()\" [disabled]=\"!canAnyBeShared()\" />\n          <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-all\" [attr.aria-labelledby]=\"'select-all'\">\n          </label>\n        </div>\n      </td>\n      <th *ngFor=\"let col of resultView.columns\" class=\"search-result-column-header\"\n        [attr.aria-sort]=\"isSortAscending(col) === null ? null : (isSortAscending(col) ? 'ascending' : 'descending')\" scope=\"col\">\n        <div>\n          <div class=\"search-result-column-label\" (click)=\"sort(col)\" (keyup)=\"noop()\">\n            {{ isTranslatable(col) ? (col.label | rpxTranslate) : col.label }}\n          </div>\n          <div *ngIf=\"comparator(col)\" class=\"search-result-column-sort\">\n            <a (click)=\"sort(col); $event.preventDefault()\" (keyup.enter)=\"sort(col)\" class=\"sort-widget\" [innerHTML]=\"sortWidget(col)\" [attr.aria-label]=\"'Sort ' + col.label | rpxTranslate\" href=\"#\"></a>\n          </div>\n        </div>\n      </th>\n      <th *ngIf=\"activityEnabled()\" style=\"width: 110px;\" scope=\"col\">&ZeroWidthSpace;</th>\n    </tr>\n  </thead>\n\n  <tbody>\n    <!-- sorted by consumer -->\n    <ng-container *ngIf=\"consumerSortingEnabled\">\n      <tr *ngFor=\"let result of resultView.results | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n        <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n          <div class=\"govuk-checkboxes__item\">\n            <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n              type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" />\n            <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n            </label>\n          </div>\n        </td>\n        <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n          <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n            attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n            <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n              <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n                              ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n                              [contextFields]=\"result.hydrated_case_fields\"\n                              [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n              <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n            </ng-container>\n          </a>\n          <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n            <ccd-field-read ccdLabelSubstitutor\n                            [caseField]=\"result.columns[col.case_field_id]\"\n                            [contextFields]=\"result.hydrated_case_fields\"\n                            [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n          </div>\n        </td>\n        <td *ngIf=\"activityEnabled()\">\n          <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n            <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n          </div>\n        </td>\n      </tr>\n    </ng-container>\n    <!-- sorted by toolkit -->\n    <ng-container *ngIf=\"!consumerSortingEnabled\">\n      <tr *ngFor=\"let result of resultView.results | ccdSortSearchResult : sortParameters | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n        <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n          <div class=\"govuk-checkboxes__item\">\n            <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n              type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" (keyup)=\"onKeyUp($event, result)\" />\n            <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n            </label>\n          </div>\n        </td>\n        <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n\n          <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n            attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n            <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n              <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n                              ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n                              [contextFields]=\"result.hydrated_case_fields\"\n                              [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n              <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n            </ng-container>\n          </a>\n          <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n            <ccd-field-read ccdLabelSubstitutor\n                            [caseField]=\"result.columns[col.case_field_id]\"\n                            [contextFields]=\"result.hydrated_case_fields\"\n                            [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n          </div>\n        </td>\n        <td *ngIf=\"activityEnabled()\">\n          <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n            <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n          </div>\n        </td>\n      </tr>\n    </ng-container>\n\n  </tbody>\n</table>\n\n<ccd-pagination\n  *ngIf=\"hasResults()\"\n  (pageChange)=\"goToPage($event)\"\n  [visibilityLabel]=\"hideRows ? 'hidden' : 'visible'\"\n  [autoHide]=\"true\"\n  [maxSize]=\"8\"\n  [screenReaderPaginationLabel]=\"'Pagination'\"\n  [screenReaderPageLabel]=\"page\"\n  [screenReaderCurrentLabel]=\"'You\\'re on page'\"></ccd-pagination>\n\n<div *ngIf=\"!(hasResults() || hasDrafts())\" class=\"notification\"\n[attr.aria-describedby]=\"'No cases found. Try using different filters.' | rpxTranslate\">\n{{'No cases found. Try using different filters.' | rpxTranslate}}\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { AbstractAppConfig } from '../../../app.config';\nimport { PlaceholderService } from '../../directives';\nimport {\n  CaseField, CaseState, CaseType, DisplayMode,\n  DRAFT_PREFIX, Jurisdiction, PaginationMetadata, SearchResultView, SearchResultViewColumn,\n  SearchResultViewItem, SearchResultViewItemComparator, SortOrder, SortParameters\n} from '../../domain';\nimport { CaseReferencePipe } from '../../pipes';\nimport { ActivityService, BrowserService, SearchResultViewItemComparatorFactory, SessionStorageService, FieldsUtils } from '../../services';\n\n@Component({\n  selector: 'ccd-search-result',\n  templateUrl: './search-result.component.html',\n  styleUrls: ['./search-result.component.scss'],\n  standalone: false\n})\nexport class SearchResultComponent implements OnChanges, OnInit {\n\n  public static readonly PARAM_JURISDICTION = 'jurisdiction';\n  public static readonly PARAM_CASE_TYPE = 'case-type';\n  public static readonly PARAM_CASE_STATE = 'case-state';\n\n  private readonly PAGINATION_MAX_ITEM_RESULT = 10000;\n\n  public ICON = DisplayMode.ICON;\n\n  @Input()\n  public caseLinkUrlTemplate: string;\n\n  @Input()\n  public jurisdiction: Jurisdiction;\n\n  @Input()\n  public caseType: CaseType;\n\n  @Input()\n  public caseState: CaseState;\n\n  @Input()\n  public caseFilterFG: FormGroup;\n\n  @Input()\n  public resultView: SearchResultView;\n\n  @Input()\n  public page: number;\n\n  @Input()\n  public paginationMetadata: PaginationMetadata;\n\n  @Input()\n  public metadataFields: string[];\n\n  @Input()\n  public selectionEnabled = false;\n\n  @Input()\n  public showOnlySelected = false;\n\n  @Input()\n  public preSelectedCases: SearchResultViewItem[] = [];\n\n  @Input()\n  public consumerSortingEnabled = false;\n\n  @Output()\n  public selection = new EventEmitter<SearchResultViewItem[]>();\n\n  @Output()\n  public changePage: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  public clickCase: EventEmitter<any> = new EventEmitter();\n\n  @Output()\n  public sortHandler: EventEmitter<any> = new EventEmitter();\n\n  public paginationLimitEnforced = false;\n\n  public paginationPageSize: number;\n\n  public hideRows: boolean;\n\n  public selected: {\n    init?: boolean,\n    jurisdiction?: Jurisdiction,\n    caseType?: CaseType,\n    caseState?: CaseState,\n    formGroup?: FormGroup,\n    metadataFields?: string[],\n    page?: number\n  } = {};\n\n  public sortParameters: SortParameters;\n  public searchResultViewItemComparatorFactory: SearchResultViewItemComparatorFactory;\n  public draftsCount: number;\n\n  public consumerSortParameters: { column: string, order: SortOrder, type: string } = { column: null, order: null, type: null };\n\n  public selectedCases: SearchResultViewItem[] = [];\n\n  constructor(\n    searchResultViewItemComparatorFactory: SearchResultViewItemComparatorFactory,\n    appConfig: AbstractAppConfig,\n    private readonly activityService: ActivityService,\n    private readonly caseReferencePipe: CaseReferencePipe,\n    private readonly placeholderService: PlaceholderService,\n    private readonly browserService: BrowserService,\n    private readonly sessionStorageService: SessionStorageService\n  ) {\n    this.searchResultViewItemComparatorFactory = searchResultViewItemComparatorFactory;\n    this.paginationPageSize = appConfig.getPaginationPageSize();\n    this.hideRows = false;\n  }\n\n  public ngOnInit(): void {\n    if (this.preSelectedCases) {\n      for (const preSelectedCase of this.preSelectedCases) {\n        if (this.selectedCases && !this.selectedCases.some(aCase => aCase.case_id === preSelectedCase.case_id)) {\n          this.selectedCases.push(preSelectedCase);\n        }\n      }\n    }\n    this.sessionStorageService.removeItem('eventUrl');\n    this.selection.emit(this.selectedCases);\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n\n    if (changes['resultView']) {\n      this.hideRows = false;\n\n      this.sortParameters = undefined;\n      // Clone `resultView` to prevent sorting the external variable\n      this.resultView = {\n        columns: this.resultView.columns.slice(0),\n        results: this.resultView.results.slice(0),\n        hasDrafts: this.resultView.hasDrafts\n      };\n\n      this.resultView.columns = this.resultView.columns.sort((a: SearchResultViewColumn, b: SearchResultViewColumn) => {\n        return a.order - b.order;\n      });\n\n      this.hydrateResultView();\n      this.draftsCount = this.draftsCount ? this.draftsCount : this.numberOfDrafts();\n    }\n    if (changes['page']) {\n      this.selected.page = (changes['page']).currentValue;\n    }\n  }\n\n  public isTranslatable(col: SearchResultViewColumn): boolean {\n    return FieldsUtils.isTranslatable(col.case_field_type);\n  }\n\n  public get resultTotal(): number {\n    const total = this.paginationMetadata.totalResultsCount;\n    const maximumResultReached = total >= this.PAGINATION_MAX_ITEM_RESULT;\n    this.paginationLimitEnforced = maximumResultReached;\n\n    return maximumResultReached ? this.PAGINATION_MAX_ITEM_RESULT : total;\n  }\n\n  public clearSelection(): void {\n    this.selectedCases = [];\n    this.selection.emit(this.selectedCases);\n  }\n\n  public canBeShared(caseView: SearchResultViewItem): boolean {\n    return caseView.supplementary_data && caseView.supplementary_data.hasOwnProperty('orgs_assigned_users');\n  }\n\n  public canAnyBeShared(): boolean {\n    for (let i = 0, l = this.resultView.results.length; i < l; i++) {\n      if (this.canBeShared(this.resultView.results[i])) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  public selectAll(): void {\n    if (this.allOnPageSelected()) {\n      // all cases already selected, so unselect all on this page\n      this.resultView.results.forEach(c => {\n        this.selectedCases.forEach((s, i) => {\n          if (c.case_id === s.case_id) {\n            this.selectedCases.splice(i, 1);\n          }\n        });\n      });\n    } else {\n      this.resultView.results.forEach(c => {\n        if (!this.isSelected(c) && this.canBeShared(c)) {\n          this.selectedCases.push(c);\n        }\n      });\n    }\n    this.selection.emit(this.selectedCases);\n  }\n\n  public changeSelection(c: SearchResultViewItem): void {\n    if (this.isSelected(c)) {\n      this.selectedCases.forEach((s, i) => {\n        if (c.case_id === s.case_id) {\n          this.selectedCases.splice(i, 1);\n        }\n      });\n    } else {\n      if (this.canBeShared(c)) {\n        this.selectedCases.push(c);\n      }\n    }\n    this.selection.emit(this.selectedCases);\n  }\n\n  public isSelected(c: SearchResultViewItem): boolean {\n    for (let i = 0, l = this.selectedCases.length; i < l; i++) {\n      if (c.case_id === this.selectedCases[i].case_id) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  public allOnPageSelected(): boolean {\n    let canBeSharedCount = 0;\n    for (let i = 0, l = this.resultView.results.length; i < l; i++) {\n      const r = this.resultView.results[i];\n      if (this.canBeShared(r)) {\n        canBeSharedCount++;\n      }\n      if (!this.isSelected(r) && this.canBeShared(r)) {\n        return false;\n      }\n    }\n    if (canBeSharedCount === 0) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * Hydrates result view with case field definitions.\n   */\n  // A longer term resolution is to move this piece of logic to the backend\n  public hydrateResultView(): void {\n    this.resultView.results.forEach(result => {\n      const caseFields = [];\n\n      Object.keys(result.case_fields).forEach(fieldId => {\n\n        const field = result.case_fields[fieldId];\n\n        caseFields.push(Object.assign(new CaseField(), {\n          id: fieldId,\n          label: null,\n          field_type: {},\n          value: field,\n          display_context: null,\n        }));\n      });\n\n      result.hydrated_case_fields = caseFields;\n      result.columns = {};\n\n      this.resultView.columns.forEach(col => {\n        result.columns[col.case_field_id] = this.buildCaseField(col, result);\n      });\n    });\n\n  }\n\n  public goToPage(page): void {\n    this.hideRows = true;\n    this.selected.init = false;\n    this.selected.jurisdiction = this.jurisdiction;\n    this.selected.caseType = this.caseType;\n    this.selected.caseState = this.caseState;\n    this.selected.formGroup = this.caseFilterFG;\n    this.selected.metadataFields = this.metadataFields;\n    this.selected.page = page;\n    // Apply filters\n    const queryParams = {};\n    queryParams[SearchResultComponent.PARAM_JURISDICTION] = this.selected.jurisdiction ? this.selected.jurisdiction.id : null;\n    queryParams[SearchResultComponent.PARAM_CASE_TYPE] = this.selected.caseType ? this.selected.caseType.id : null;\n    queryParams[SearchResultComponent.PARAM_CASE_STATE] = this.selected.caseState ? this.selected.caseState.id : null;\n    this.changePage.emit({\n      selected: this.selected,\n      queryParams\n    });\n\n    const topContainer = document.getElementById('top');\n    if (topContainer) {\n      if (document.activeElement instanceof HTMLElement) {\n        document.activeElement.blur();\n      }\n      topContainer.focus();\n    }\n  }\n\n  public buildCaseField(col: SearchResultViewColumn, result: SearchResultViewItem): CaseField {\n    return Object.assign(new CaseField(), {\n      id: col.case_field_id,\n      label: col.label,\n      field_type: col.case_field_type,\n      value: result.case_fields[col.case_field_id],\n      display_context_parameter: col.display_context_parameter,\n      display_context: col.display_context,\n    });\n  }\n\n  public getColumnsWithPrefix(col: CaseField, result: SearchResultViewItem): CaseField {\n    col.value = this.draftPrefixOrGet(col, result);\n    col.value = this.placeholderService.resolvePlaceholders(result.case_fields, col.value);\n    return col;\n  }\n\n  public hasResults(): any {\n    return this.resultView.results.length && this.paginationMetadata.totalPagesCount;\n  }\n\n  public hasDrafts(): boolean {\n    return this.resultView.hasDrafts();\n  }\n\n  public comparator(column: SearchResultViewColumn): SearchResultViewItemComparator {\n    return this.searchResultViewItemComparatorFactory.createSearchResultViewItemComparator(column);\n  }\n\n  public sort(column: SearchResultViewColumn) {\n    if (this.consumerSortingEnabled) {\n      if (column.case_field_id !== this.consumerSortParameters.column) {\n        this.consumerSortParameters.order = SortOrder.DESCENDING;\n      } else {\n        this.consumerSortParameters.order = this.consumerSortParameters.order === SortOrder.DESCENDING ?\n          SortOrder.ASCENDING :\n          SortOrder.DESCENDING;\n      }\n      this.consumerSortParameters.column = column.case_field_id;\n      this.consumerSortParameters.type = column.case_field_type.type;\n      this.sortHandler.emit(this.consumerSortParameters);\n    } else {\n      if (this.comparator(column) === undefined) {\n        return;\n      } else if (this.isSortAscending(column)) {\n        this.sortParameters = new SortParameters(this.comparator(column), SortOrder.ASCENDING);\n      } else {\n        this.sortParameters = new SortParameters(this.comparator(column), SortOrder.DESCENDING);\n      }\n    }\n  }\n\n  public sortWidget(column: SearchResultViewColumn) {\n    let condition = false;\n    if (this.consumerSortingEnabled) {\n      const isColumn = column.case_field_id === this.consumerSortParameters.column;\n      const isAscending = this.consumerSortParameters.order === SortOrder.ASCENDING;\n      condition = !isColumn || (isColumn && isAscending);\n    } else {\n      condition = this.isSortAscending(column);\n    }\n\n    return condition ? '&#9660;' : '&#9650;';\n  }\n\n  public activityEnabled(): boolean {\n    return this.activityService.isEnabled;\n  }\n\n  public hyphenateIfCaseReferenceOrGet(col, result): any {\n    if (col.case_field_id === '[CASE_REFERENCE]') {\n      return this.caseReferencePipe.transform(result.case_fields[col.case_field_id]);\n    } else {\n      if (col.id) {\n        if (col.id === '[CASE_REFERENCE]') {\n          return this.caseReferencePipe.transform(result.case_fields[col.id]);\n        } else {\n          return result.case_fields[col.id];\n        }\n      } else {\n        return result.case_fields[col.case_field_id];\n      }\n    }\n  }\n\n  public draftPrefixOrGet(col, result): any {\n    return result.case_id.startsWith(DRAFT_PREFIX) ? DRAFT_PREFIX : this.hyphenateIfCaseReferenceOrGet(col, result);\n  }\n\n  public isSortAscending(column: SearchResultViewColumn): boolean {\n    // simple way to determine if the column param is sorted and if its asc/desc\n    if (this.consumerSortParameters.column === column.case_field_id) {\n      return this.consumerSortParameters.order === SortOrder.ASCENDING;\n    }\n    return null;\n  }\n\n  public getFirstResult(): number {\n    const currentPage = (this.selected.page ? this.selected.page : 1);\n    return ((currentPage - 1) * this.paginationPageSize) + 1 + this.getDraftsCountIfNotPageOne(currentPage);\n  }\n\n  public getLastResult(): number {\n    const currentPage = (this.selected.page ? this.selected.page : 1);\n    return ((currentPage - 1) * this.paginationPageSize) + this.resultView.results.length + this.getDraftsCountIfNotPageOne(currentPage);\n  }\n\n  public getTotalResults(): number {\n    const total = this.paginationMetadata.totalResultsCount + this.draftsCount;\n\n    return total >= this.PAGINATION_MAX_ITEM_RESULT ? this.PAGINATION_MAX_ITEM_RESULT : total;\n  }\n\n  public prepareCaseLinkUrl(caseId: string): string {\n    let url = this.caseLinkUrlTemplate;\n    url = url.replace('jurisdiction_id', this.jurisdiction.id);\n    url = url.replace('caseType_id', this.caseType.id);\n    url = url.replace('case_id', caseId);\n\n    return url;\n  }\n\n  private getDraftsCountIfNotPageOne(currentPage): number {\n    return currentPage > 1 ? this.draftsCount : 0;\n  }\n\n  private numberOfDrafts(): number {\n    return this.resultView.results.filter(_ => _.case_id.startsWith(DRAFT_PREFIX)).length;\n  }\n\n  public goToCase(caseId: string) {\n    this.clickCase.emit({\n      caseId\n    });\n  }\n\n  public onKeyUp($event: KeyboardEvent, c: SearchResultViewItem): void {\n    if ($event.key === 'Space') {\n      if (this.browserService.isFirefox || this.browserService.isSafari || this.browserService.isIEOrEdge) {\n        this.changeSelection(c);\n      }\n    }\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  noop(): void {}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { RpxTranslationModule } from 'rpx-xui-translation';\nimport { LabelSubstitutorModule } from '../../directives/substitutor/label-substitutor.module';\nimport { PipesModule } from '../../pipes/pipes.module';\nimport { BrowserService } from '../../services/browser/browser.service';\nimport { SearchResultViewItemComparatorFactory } from '../../services/search-result/sorting/search-result-view-item-comparator-factory';\nimport { ActivityModule } from '../activity/activity.module';\nimport { PaginationModule } from '../pagination/pagination.module';\nimport { PaletteModule } from '../palette/palette.module';\nimport { SearchResultComponent } from './search-result.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    NgxPaginationModule,\n    RouterModule,\n    FormsModule,\n    ReactiveFormsModule,\n    LabelSubstitutorModule,\n    PipesModule,\n    ActivityModule,\n    PaginationModule,\n    RpxTranslationModule.forChild(),\n    PaletteModule\n  ],\n  declarations: [\n    SearchResultComponent\n  ],\n  exports: [\n    SearchResultComponent,\n  ],\n  providers: [\n    SearchResultViewItemComparatorFactory,\n    BrowserService\n  ]\n})\nexport class SearchResultModule {}\n","// tslint:disable:variable-name\nexport class ComplexFieldOverride {\n  public complex_field_element_id: string;\n  public display_context: string;\n  public label?: string;\n  public hint_text?: string;\n  public show_condition?: string;\n}\n","import { CaseField, FieldType } from '../domain/definition';\nimport { AccessControlList } from '../domain/definition/access-control-list.model';\n\nexport class CaseFieldBuilder {\n\n  private readonly caseField: CaseField = new CaseField();\n  public static create(): CaseFieldBuilder {\n    return new CaseFieldBuilder();\n  }\n\n  public withACLs(acls: AccessControlList[]): CaseFieldBuilder {\n    this.caseField.acls = acls;\n    return this;\n  }\n\n  public withId(id: string): CaseFieldBuilder {\n    this.caseField.id = id;\n    return this;\n  }\n\n  public withFieldType(fieldType: FieldType): CaseFieldBuilder {\n    this.caseField.field_type = fieldType;\n    return this;\n  }\n\n  public withDisplayContext(displayContext: string): CaseFieldBuilder {\n    this.caseField.display_context = displayContext;\n    return this;\n  }\n\n  public withDisplayContextParameter(displayContextParameter: string): CaseFieldBuilder {\n    this.caseField.display_context_parameter = displayContextParameter;\n    return this;\n  }\n\n  public withHidden(hidden: boolean): CaseFieldBuilder {\n    this.caseField.hidden = hidden;\n    return this;\n  }\n\n  public withHintText(hintText: string): CaseFieldBuilder {\n    this.caseField.hint_text = hintText;\n    return this;\n  }\n\n  public withLabel(label: string): CaseFieldBuilder {\n    this.caseField.label = label;\n    return this;\n  }\n\n  public withOrder(order: number): CaseFieldBuilder {\n    this.caseField.order = order;\n    return this;\n  }\n\n  public withSecurityLabel(securityLabel: string): CaseFieldBuilder {\n    this.caseField.security_label = securityLabel;\n    return this;\n  }\n\n  public withShowCondition(showCondition: string): CaseFieldBuilder {\n    this.caseField.show_condition = showCondition;\n    return this;\n  }\n\n  public withShowSummaryContentOption(option: number): CaseFieldBuilder {\n    this.caseField.show_summary_content_option = option;\n    return this;\n  }\n\n  public withValue(value: any): CaseFieldBuilder {\n    this.caseField.value = value;\n    return this;\n  }\n\n  public withListValue(value: any): CaseFieldBuilder {\n    this.caseField.list_items = value;\n    return this;\n  }\n\n  public build(): CaseField {\n    return this.caseField;\n  }\n}\n","import { ComplexFieldOverride } from '../components/case-editor/domain/wizard-page-field-complex-override.model';\nimport { WizardPageField } from '../components/case-editor/domain/wizard-page-field.model';\nimport { WizardPage } from '../components/case-editor/domain/wizard-page.model';\nimport { ShowCondition } from '../directives/conditional-show/domain/conditional-show.model';\nimport { CaseEventTrigger } from '../domain/case-view/case-event-trigger.model';\nimport { AccessControlList } from '../domain/definition/access-control-list.model';\nimport { CaseField } from '../domain/definition/case-field.model';\nimport { FieldTypeEnum } from '../domain/definition/field-type-enum.model';\nimport { FieldType } from '../domain/definition/field-type.model';\nimport { FixedListItem } from '../domain/definition/fixed-list-item.model';\nimport { CaseFieldBuilder } from './case-field-builder';\n\nexport const textFieldType = (): FieldType => {\n  return {\n    id: 'Text',\n    type: 'Text',\n    complex_fields: []\n  };\n};\n\nexport const createCaseEventTrigger = (id: string,\n                                       name: string,\n                                       caseId: string,\n                                       showSummary: boolean,\n                                       caseFields: CaseField[],\n                                       wizardPages = [],\n                                       canSaveDraft = false): CaseEventTrigger => {\n  const eventTrigger = new CaseEventTrigger();\n\n  eventTrigger.id = id;\n  eventTrigger.name = name;\n  eventTrigger.case_id = caseId;\n  eventTrigger.show_summary = showSummary;\n  eventTrigger.wizard_pages = wizardPages;\n  eventTrigger.event_token = 'test-token';\n  eventTrigger.case_fields = caseFields;\n  eventTrigger.can_save_draft = canSaveDraft;\n  return eventTrigger;\n};\n\nexport const aCaseField = (id: string,\n                           label: string,\n                           type: FieldTypeEnum,\n                           displayContext: string,\n                           showSummaryContentOption: number,\n                           typeComplexFields: CaseField[] = [],\n                           retainHiddenValue?: boolean,\n                           hidden?: boolean): CaseField => {\n  return ({\n    id: id || 'personFirstName',\n    field_type: {\n      id: type.toString() || 'Text',\n      type: type || 'Text',\n      complex_fields: typeComplexFields || []\n    },\n    display_context: displayContext || 'OPTIONAL',\n    display_context_parameter: displayContext || 'OPTIONAL',\n    label: label || 'First name',\n    show_summary_content_option: showSummaryContentOption,\n    retain_hidden_value: retainHiddenValue || false,\n    hidden: hidden || false\n  }) as CaseField;\n};\n\nexport const createWizardPage = (id: string,\n                                 label: string,\n                                 order: number,\n                                 wizardPageFields: WizardPageField[] = [],\n                                 caseFields: CaseField[] = [],\n                                 showCondition: string,\n                                 parsedShowCondition: ShowCondition = null): WizardPage => {\n  const wizardPage = new WizardPage();\n  wizardPage.id = id;\n  wizardPage.label = label;\n  wizardPage.order = order;\n  wizardPage.wizard_page_fields = wizardPageFields;\n  wizardPage.case_fields = caseFields;\n  wizardPage.show_condition = showCondition;\n  wizardPage.parsedShowCondition = parsedShowCondition;\n  return wizardPage;\n};\n\nexport const createWizardPageField = (id: string,\n                                      order: number,\n                                      pageColumnNumber: number,\n                                      complexFieldOverrides: ComplexFieldOverride[] = []): WizardPageField => {\n  const wizardPageField = new WizardPageField();\n  wizardPageField.case_field_id = id;\n  wizardPageField.order = order;\n  wizardPageField.page_column_no = pageColumnNumber;\n  wizardPageField.complex_field_overrides = complexFieldOverrides;\n  return wizardPageField;\n};\n\nexport const createComplexFieldOverride = (id: string,\n                                           order: number,\n                                           displayContext: string,\n                                           label: string,\n                                           hint: string,\n                                           showCondition: string): ComplexFieldOverride => {\n  const complexFieldOverride = new ComplexFieldOverride();\n  complexFieldOverride.complex_field_element_id = id;\n  complexFieldOverride.display_context = displayContext;\n  complexFieldOverride.label = label;\n  complexFieldOverride.hint_text = hint;\n  complexFieldOverride.show_condition = showCondition;\n  return complexFieldOverride;\n};\n\nexport const createHiddenComplexFieldOverride = (id: string): ComplexFieldOverride => {\n  const complexFieldOverride = new ComplexFieldOverride();\n  complexFieldOverride.complex_field_element_id = id;\n  complexFieldOverride.display_context = 'HIDDEN';\n  return complexFieldOverride;\n};\n\nexport const createCaseField = (id: string,\n                                label: string,\n                                hint: string,\n                                fieldType: FieldType,\n                                displayContext: string,\n                                order = undefined,\n                                showCondition = undefined,\n                                acls: AccessControlList[] = undefined,\n                                hidden?: boolean): CaseField => {\n  return CaseFieldBuilder.create()\n    .withId(id || 'personFirstName')\n    .withFieldType(fieldType || textFieldType())\n    .withDisplayContext(displayContext || 'OPTIONAL')\n    .withLabel(label || 'First name')\n    .withHintText(hint || 'First name hint text')\n    .withShowSummaryContentOption(0)\n    .withOrder(order)\n    .withShowCondition(showCondition || undefined)\n    .withACLs(acls)\n    .withHidden(hidden || false)\n    .build();\n};\n\nexport const newCaseField = (id: string,\n                             label: string,\n                             hint: string,\n                             fieldType: FieldType,\n                             displayContext: string,\n                             order = undefined): CaseFieldBuilder => {\n  return CaseFieldBuilder.create()\n    .withId(id || 'personFirstName')\n    .withFieldType(fieldType || textFieldType())\n    .withDisplayContext(displayContext || 'OPTIONAL')\n    .withHintText(hint || 'First name hint text')\n    .withLabel(label || 'First name')\n    .withOrder(order)\n    .withShowSummaryContentOption(0);\n};\n\nexport const createFieldType = (typeId: string,\n                                type: FieldTypeEnum,\n                                complexFields: CaseField[] = [],\n                                collectionFieldType: FieldType = undefined): FieldType => {\n  return {\n    id: typeId || 'Text',\n    type: type || 'Text',\n    complex_fields: complexFields || [],\n    collection_field_type: collectionFieldType || undefined\n  };\n};\n\nexport const createFixedListFieldType = (typeId: string,\n                                         fixedListItems: FixedListItem[] = []): FieldType => {\n  return {\n    id: `FixedList-${typeId}`,\n    type: 'FixedList',\n    fixed_list_items: fixedListItems || []\n  };\n};\n\nexport const createMultiSelectListFieldType = (typeId: string,\n                                               fixedListItems: FixedListItem[] = []): FieldType => {\n  return {\n    id: `MultiSelectList-${typeId}`,\n    type: 'MultiSelectList',\n    fixed_list_items: fixedListItems || []\n  };\n};\n\nexport const createACL = (role: string,\n                          aclCreate: boolean,\n                          aclRead: boolean,\n                          aclUpdate: boolean,\n                          aclDelete: boolean): AccessControlList => {\n  return ({\n    role: role || 'roleX',\n    create: aclCreate,\n    read: aclRead,\n    update: aclUpdate,\n    delete: aclDelete\n  }) as AccessControlList;\n};\n","import { ActivatedRouteSnapshot } from '@angular/router';\n\nexport class TestRouteSnapshotBuilder {\n  private parent: ActivatedRouteSnapshot = null;\n  private params: object = {};\n  private data: object = {};\n\n  public withParent(parent: ActivatedRouteSnapshot): TestRouteSnapshotBuilder {\n    this.parent = parent;\n    return this;\n  }\n\n  public withParams(params: object): TestRouteSnapshotBuilder {\n    this.params = params;\n    return this;\n  }\n\n  public withData(data: object): TestRouteSnapshotBuilder {\n    this.data = data;\n    return this;\n  }\n\n  public build(): ActivatedRouteSnapshot {\n    return {\n      url: [],\n      title: '',\n      params: this.params,\n      queryParams: [],\n      fragment: '',\n      data: this.data,\n      outlet: null,\n      component: null,\n      routeConfig: null,\n      root: null,\n      parent: this.parent,\n      firstChild: null,\n      children: [],\n      pathFromRoot: null,\n      paramMap: null,\n      queryParamMap: null,\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c1","_c0","_c2","i1","i1.AuthService","i2.LoadingService","i2.HttpErrorService","i1.HttpService","i2.AbstractAppConfig","i3.SessionStorageService","i1.ActivityService","i1.ActivityPollingService","i2","i1.HttpErrorService","i1.FormatTranslatorService","i1.CaseFieldService","SortOrder","_score","i1.FieldsUtils","i1.FieldTypeSanitiser","i2.PlaceholderService","i3","i1.AbstractAppConfig","i2.HttpService","i3.RequestOptionsBuilder","i4.LoadingService","i2.RouterHelperService","i3.WizardFactoryService","i4.AlertService","i5.EventTriggerService","i3.HttpErrorService","i1.CasesService","i1.AlertService","i3.CaseNotifier","i1.SessionStorageService","i2.CaseNotifier","i4.FieldsUtils","i4.FieldsPurger","i5.ConditionalShowRegistrarService","i2.WizardFactoryService","i4.SessionStorageService","i4.WindowService","i4.FormValueService","i4.FormErrorService","i6.ValidPageListCaseFieldsService","i2.WorkAllocationService","i7.AbstractAppConfig","i4.ReadCookieService","i1.OrderService","i3.WizardPageFieldToCaseFieldMapper","i1.LoadingService","i1.RetryUtil","i2.AlertService","i3.DraftService","i4.EventTriggerService","i1.CaseEditComponent","i1.FormValueService","i1.JurisdictionService","i1.SearchService","i3.FormValueService","i5.PageValidationService","i6","i7.CaseFieldService","i8.CaseEditDataService","i9.LoadingService","i10.ValidPageListCaseFieldsService","i9.MultipageComponentStateService","i9.AddressesService","i11.LinkedCasesService","i12.CaseFlagStateService","i1.EventCompletionStateMachineService","i4.WorkAllocationService","i5.AlertService","i2.JudicialworkerService","i3.CaseworkerService","i1.IsCompoundPipe","i2.FormValidatorsService","i1.AddressesService","i2.IsCompoundPipe","i1.MultipageComponentStateService","i2.CaseFileViewService","i2.DocumentManagementService","i2.SessionStorageService","i2.WindowService","i4.AbstractAppConfig","i2.CaseFlagStateService","i2.CaseEditDataService","i3.CaseFlagStateService","i4","i5.LinkedCasesService","i6.MultipageComponentStateService","i3.ProfileNotifier","i1.WindowService","i4.CasesService","i3.DocumentManagementService","i5.FileUploadStateService","i6.JurisdictionService","i7.SessionStorageService","i1.CaseFlagRefdataService","i1.FormValidatorsService","i2.LinkedCasesService","i3.MultipageComponentStateService","i1.LinkedCasesService","i2.MultipageComponentStateService","i3.ValidatorsUtils","i4.LinkedCasesService","i5.MultipageComponentStateService","i2.CasesService","i3.LinkedCasesService","i3.CasesService","i4.MultipageComponentStateService","i3.AbstractAppConfig","i4.CommonDataService","i2.CommonDataService","i5.CaseEditDataService","i7.MultipageComponentStateService","i1.OrganisationService","i2.OrganisationConverter","i3.WindowService","uuidv4","i2.QualifyingQuestionService","i3.QualifyingQuestionService","i4.QueryManagementService","i5.ErrorNotifierService","i4.CaseNotifier","i1.QueryManagementService","i1.CaseNotifier","i3.QueryManagementService","i1.BrowserService","i1.YesNoService","FIX_CASEFIELD_FOR","i1.PaletteService","i1.DocumentManagementService","i1.PlaceholderService","i2.FieldsUtils","i1.FileUploadStateService","MAT_DATE_LOCALE","MatFormFieldModule","MatInputModule","MatAutocompleteModule","MatDialogModule","i6.LabelSubstitutorDirective","i7.MarkdownComponent","i8.ReadFieldsFilterPipe","i9.IsCompoundPipe","i10.CcdCollectionTableCaseFieldsFilterPipe","i11.FieldLabelPipe","i12.IsReadOnlyPipe","i13.FirstErrorPipe","i18.CaseReferencePipe","i19.LinkCasesReasonValuePipe","i20.LinkCasesFromReasonValuePipe","i2.CaseFieldService","i2.OrderService","i2.ProfileNotifier","i4.CaseFlagStateService","i6.PlaceholderService","i3.EventTriggerService","i4.MarkdownComponent","i5.CaseReferencePipe","i6.CcdCaseTitlePipe","i9.LabelSubstitutorDirective","i10.ConditionalShowFormDirective","i11.FieldReadComponent","i12.FieldWriteComponent","i13.IsCompoundPipe","i14.IsReadOnlyAndNotCollectionPipe","i15.FirstErrorPipe","i16.CcdCYAPageLabelFilterPipe","i17.ReadFieldsFilterPipe","i18.CcdPageFieldsPipe","i2.WorkbasketInputFilterService","i3.OrderService","i4.JurisdictionService","i6.WindowService","i4.FieldWriteComponent","i5.ConditionalShowFormDirective","i1.DefinitionsService","i3.WorkbasketFiltersComponent","i5.CaseHistoryService","i3.CaseHeaderComponent","i4.FieldReadComponent","i5.LabelSubstitutorDirective","i6.DatePipe","i7.IsCompoundPipe","i8.DashPipe","i9.ReadFieldsFilterPipe","i10.CcdTabFieldsPipe","i3.CaseHistoryComponent","i4.EventLogComponent","i2.DraftService","i3.NavigationNotifierService","i3.ProfileService","i4.ProfileNotifier","i5","i6.AbstractAppConfig","i7.ErrorNotifierService","i8.LoadingService","i8.SessionStorageService","i3.AlertService","i4.CaseReferencePipe","i3.ActivityPollingService","i3.LoadingService","i5.EventTriggerResolver","i1.NavigationNotifierService","i4.DraftService","i2.NavigationNotifierService","i2.ActivityPollingService","i2.ErrorNotifierService","i4.ConvertHrefToRouterService","i7.LinkedCasesService","i8.CaseFlagStateService","i4.OrderService","i1.WorkAllocationService","i3.ReadCookieService","i1.EventStartStateMachineService","i5.AbstractAppConfig","AccessReason","MatTabsModule","i3.ActivityComponent","i4.CaseEditComponent","i7.CallbackErrorsComponent","i5.CaseHeaderComponent","i8.EventTriggerComponent","i9.FieldReadComponent","i11.LabelSubstitutorDirective","i12.NotificationBannerComponent","i14.ReadFieldsFilterPipe","i15.CcdTabFieldsPipe","i16","i17.AlertComponent","i18.ErrorMessageComponent","i2.DefinitionsService","i3.JurisdictionService","i1.SearchResultViewItemComparatorFactory","i3.CaseReferencePipe","i4.PlaceholderService","i4.LabelSubstitutorDirective","i5.ActivityComponent","i6.PaginationComponent","i7.FieldReadComponent","i8","i9.CaseReferencePipe","i10.SortSearchResultPipe"],"mappings":"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"}