@hmcts/ccd-case-ui-toolkit 7.0.39-task-event-completion-fix → 7.0.40-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app.config.mjs +96 -0
- package/esm2022/lib/components/banners/alert/alert-icon-class.pipe.mjs +25 -0
- package/esm2022/lib/components/banners/alert/alert.component.mjs +92 -0
- package/esm2022/lib/components/banners/alert/alert.module.mjs +32 -0
- package/esm2022/lib/components/banners/banners.module.mjs +32 -0
- package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +116 -0
- package/esm2022/lib/components/banners/notification-banner/notification-banner.module.mjs +19 -0
- package/esm2022/lib/components/body/body.component.mjs +21 -0
- package/esm2022/lib/components/body/body.module.mjs +20 -0
- package/esm2022/lib/components/footer/footer.component.mjs +109 -0
- package/esm2022/lib/components/footer/footers.module.mjs +25 -0
- package/esm2022/lib/components/form/date-input/date-input.component.mjs +341 -0
- package/esm2022/lib/components/form/form.module.mjs +29 -0
- package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +98 -0
- package/esm2022/lib/components/header/headers.module.mjs +25 -0
- package/esm2022/lib/components/header/navigation/navigation-item.component.mjs +45 -0
- package/esm2022/lib/components/header/navigation/navigation.component.mjs +26 -0
- package/esm2022/lib/components/header/phase/phase.component.mjs +49 -0
- package/esm2022/lib/components/tabs/tab.component.mjs +32 -0
- package/esm2022/lib/components/tabs/tabs.component.mjs +83 -0
- package/esm2022/lib/components/tabs/tabs.module.mjs +38 -0
- package/esm2022/lib/shared/commons/address-validation-constants.mjs +13 -0
- package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +19 -0
- package/esm2022/lib/shared/commons/case-edit-data/case-edit-data.service.mjs +46 -0
- package/esm2022/lib/shared/commons/constants.mjs +13 -0
- package/esm2022/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +43 -0
- package/esm2022/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +36 -0
- package/esm2022/lib/shared/components/activity/activity.component.mjs +156 -0
- package/esm2022/lib/shared/components/activity/activity.module.mjs +55 -0
- package/esm2022/lib/shared/components/case-editor/case-access-utils/index.mjs +105 -0
- package/esm2022/lib/shared/components/case-editor/case-create/case-create.component.mjs +96 -0
- package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +464 -0
- package/esm2022/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +130 -0
- package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +140 -0
- package/esm2022/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +70 -0
- package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +806 -0
- package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +603 -0
- package/esm2022/lib/shared/components/case-editor/case-editor.module.mjs +214 -0
- package/esm2022/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +97 -0
- package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +83 -0
- package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +167 -0
- package/esm2022/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +85 -0
- package/esm2022/lib/shared/components/case-editor/domain/confirmation.model.mjs +25 -0
- package/esm2022/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.mjs +9 -0
- package/esm2022/lib/shared/components/case-editor/domain/wizard-page-field.model.mjs +7 -0
- package/esm2022/lib/shared/components/case-editor/domain/wizard-page.model.mjs +33 -0
- package/esm2022/lib/shared/components/case-editor/domain/wizard.model.mjs +55 -0
- package/esm2022/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +98 -0
- package/esm2022/lib/shared/components/case-editor/services/case-flag-state.service.mjs +19 -0
- package/esm2022/lib/shared/components/case-editor/services/case-worker.service.mjs +35 -0
- package/esm2022/lib/shared/components/case-editor/services/case.notifier.mjs +53 -0
- package/esm2022/lib/shared/components/case-editor/services/cases.service.mjs +300 -0
- package/esm2022/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +42 -0
- package/esm2022/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +153 -0
- package/esm2022/lib/shared/components/case-editor/services/event-trigger.service.mjs +18 -0
- package/esm2022/lib/shared/components/case-editor/services/judicial-worker.service.mjs +35 -0
- package/esm2022/lib/shared/components/case-editor/services/page-validation.service.mjs +59 -0
- package/esm2022/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +40 -0
- package/esm2022/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +117 -0
- package/esm2022/lib/shared/components/case-editor/services/work-allocation.service.mjs +220 -0
- package/esm2022/lib/shared/components/case-header/case-header.component.mjs +64 -0
- package/esm2022/lib/shared/components/case-header/case-header.module.mjs +33 -0
- package/esm2022/lib/shared/components/case-history/case-history.component.mjs +252 -0
- package/esm2022/lib/shared/components/case-history/case-history.module.mjs +64 -0
- package/esm2022/lib/shared/components/case-history/domain/case-history.model.mjs +37 -0
- package/esm2022/lib/shared/components/case-history/services/case-history.service.mjs +43 -0
- package/esm2022/lib/shared/components/case-list/case-list.component.mjs +368 -0
- package/esm2022/lib/shared/components/case-list/case-list.module.mjs +47 -0
- package/esm2022/lib/shared/components/case-list-filters/case-list-filters.component.mjs +57 -0
- package/esm2022/lib/shared/components/case-list-filters/case-list-filters.module.mjs +64 -0
- package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +115 -0
- package/esm2022/lib/shared/components/case-timeline/case-timeline.module.mjs +52 -0
- package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +246 -0
- package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +311 -0
- package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +75 -0
- package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +156 -0
- package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +703 -0
- package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +61 -0
- package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +256 -0
- package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +211 -0
- package/esm2022/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +50 -0
- package/esm2022/lib/shared/components/case-viewer/case-view/case-view.component.mjs +107 -0
- package/esm2022/lib/shared/components/case-viewer/case-viewer.component.mjs +133 -0
- package/esm2022/lib/shared/components/case-viewer/case-viewer.module.mjs +191 -0
- package/esm2022/lib/shared/components/case-viewer/printer/case-printer.component.mjs +117 -0
- package/esm2022/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +61 -0
- package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +138 -0
- package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +86 -0
- package/esm2022/lib/shared/components/create-case-filters/create-case-filters-selection.model.mjs +11 -0
- package/esm2022/lib/shared/components/create-case-filters/create-case-filters.component.mjs +289 -0
- package/esm2022/lib/shared/components/create-case-filters/create-case-filters.module.mjs +44 -0
- package/esm2022/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +60 -0
- package/esm2022/lib/shared/components/dialogs/dialogs.module.mjs +51 -0
- package/esm2022/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +62 -0
- package/esm2022/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +60 -0
- package/esm2022/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +64 -0
- package/esm2022/lib/shared/components/error/callback-errors.component.mjs +147 -0
- package/esm2022/lib/shared/components/error/domain/error-context.mjs +6 -0
- package/esm2022/lib/shared/components/error/errors.module.mjs +33 -0
- package/esm2022/lib/shared/components/error-message/error-message.component.mjs +45 -0
- package/esm2022/lib/shared/components/error-message/error-message.module.mjs +41 -0
- package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +62 -0
- package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +56 -0
- package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +112 -0
- package/esm2022/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +70 -0
- package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +61 -0
- package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +56 -0
- package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +104 -0
- package/esm2022/lib/shared/components/event-start/event-start.component.mjs +56 -0
- package/esm2022/lib/shared/components/event-start/event-start.module.mjs +71 -0
- package/esm2022/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +31 -0
- package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +179 -0
- package/esm2022/lib/shared/components/event-trigger/event-trigger.component.mjs +129 -0
- package/esm2022/lib/shared/components/event-trigger/event-trigger.module.mjs +37 -0
- package/esm2022/lib/shared/components/loading-spinner/loading-spinner.component.mjs +26 -0
- package/esm2022/lib/shared/components/loading-spinner/loading-spinner.module.mjs +29 -0
- package/esm2022/lib/shared/components/pagination/pagination.component.mjs +260 -0
- package/esm2022/lib/shared/components/pagination/pagination.module.mjs +35 -0
- package/esm2022/lib/shared/components/palette/address/address-option.model.mjs +23 -0
- package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +286 -0
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +30 -0
- package/esm2022/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +44 -0
- package/esm2022/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +84 -0
- package/esm2022/lib/shared/components/palette/base-field/field-read-label.component.mjs +85 -0
- package/esm2022/lib/shared/components/palette/base-field/field-read.component.mjs +90 -0
- package/esm2022/lib/shared/components/palette/base-field/field-write.component.mjs +78 -0
- package/esm2022/lib/shared/components/palette/base-field/payment-field.component.mjs +37 -0
- package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +196 -0
- package/esm2022/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.mjs +50 -0
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +51 -0
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +358 -0
- package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +158 -0
- package/esm2022/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +94 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +190 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +301 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +206 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +169 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +225 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +311 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +202 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +353 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +269 -0
- package/esm2022/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +510 -0
- package/esm2022/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +43 -0
- package/esm2022/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +43 -0
- package/esm2022/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +111 -0
- package/esm2022/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +79 -0
- package/esm2022/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +253 -0
- package/esm2022/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +697 -0
- package/esm2022/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +33 -0
- package/esm2022/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +125 -0
- package/esm2022/lib/shared/components/palette/collection/collection-create-checker.service.mjs +42 -0
- package/esm2022/lib/shared/components/palette/collection/read-collection-field.component.mjs +78 -0
- package/esm2022/lib/shared/components/palette/collection/write-collection-field.component.mjs +447 -0
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +378 -0
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +51 -0
- package/esm2022/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +76 -0
- package/esm2022/lib/shared/components/palette/complex/read-complex-field.component.mjs +71 -0
- package/esm2022/lib/shared/components/palette/complex/write-complex-field.component.mjs +173 -0
- package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +26 -0
- package/esm2022/lib/shared/components/palette/date/write-date-container-field.component.mjs +33 -0
- package/esm2022/lib/shared/components/palette/date/write-date-field.component.mjs +77 -0
- package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +312 -0
- package/esm2022/lib/shared/components/palette/document/document-url.pipe.mjs +25 -0
- package/esm2022/lib/shared/components/palette/document/file-upload-progress.guard.mjs +31 -0
- package/esm2022/lib/shared/components/palette/document/file-upload-state.service.mjs +17 -0
- package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +88 -0
- package/esm2022/lib/shared/components/palette/document/write-document-field.component.mjs +430 -0
- package/esm2022/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +18 -0
- package/esm2022/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +37 -0
- package/esm2022/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +124 -0
- package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +44 -0
- package/esm2022/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +146 -0
- package/esm2022/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +25 -0
- package/esm2022/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +43 -0
- package/esm2022/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +123 -0
- package/esm2022/lib/shared/components/palette/email/read-email-field.component.mjs +36 -0
- package/esm2022/lib/shared/components/palette/email/write-email-field.component.mjs +74 -0
- package/esm2022/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +23 -0
- package/esm2022/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +27 -0
- package/esm2022/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +107 -0
- package/esm2022/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +18 -0
- package/esm2022/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +27 -0
- package/esm2022/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +96 -0
- package/esm2022/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +17 -0
- package/esm2022/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +99 -0
- package/esm2022/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +224 -0
- package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +72 -0
- package/esm2022/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +49 -0
- package/esm2022/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +253 -0
- package/esm2022/lib/shared/components/palette/label/label-field.component.mjs +50 -0
- package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +111 -0
- package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +191 -0
- package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +543 -0
- package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +213 -0
- package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +287 -0
- package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +69 -0
- package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +209 -0
- package/esm2022/lib/shared/components/palette/linked-cases/domain/linked-cases.model.mjs +67 -0
- package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +168 -0
- package/esm2022/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +138 -0
- package/esm2022/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +27 -0
- package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +234 -0
- package/esm2022/lib/shared/components/palette/markdown/markdown-component.module.mjs +48 -0
- package/esm2022/lib/shared/components/palette/markdown/markdown.component.mjs +81 -0
- package/esm2022/lib/shared/components/palette/markdown/routerlink.component.mjs +25 -0
- package/esm2022/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +128 -0
- package/esm2022/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +50 -0
- package/esm2022/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +79 -0
- package/esm2022/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +46 -0
- package/esm2022/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +126 -0
- package/esm2022/lib/shared/components/palette/number/read-number-field.component.mjs +25 -0
- package/esm2022/lib/shared/components/palette/number/write-number-field.component.mjs +74 -0
- package/esm2022/lib/shared/components/palette/order-summary/fee-value.model.mjs +4 -0
- package/esm2022/lib/shared/components/palette/order-summary/fee.model.mjs +8 -0
- package/esm2022/lib/shared/components/palette/order-summary/order-summary.model.mjs +6 -0
- package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +74 -0
- package/esm2022/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +45 -0
- package/esm2022/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +45 -0
- package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +88 -0
- package/esm2022/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +92 -0
- package/esm2022/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +52 -0
- package/esm2022/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +35 -0
- package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +397 -0
- package/esm2022/lib/shared/components/palette/palette.module.mjs +736 -0
- package/esm2022/lib/shared/components/palette/palette.service.mjs +153 -0
- package/esm2022/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +25 -0
- package/esm2022/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +23 -0
- package/esm2022/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +74 -0
- package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +44 -0
- package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +150 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +67 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +61 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +292 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +330 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +24 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +165 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +78 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +121 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +202 -0
- package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +107 -0
- package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +24 -0
- package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +45 -0
- package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +124 -0
- package/esm2022/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +22 -0
- package/esm2022/lib/shared/components/palette/text/read-text-field.component.mjs +25 -0
- package/esm2022/lib/shared/components/palette/text/write-text-field.component.mjs +78 -0
- package/esm2022/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +25 -0
- package/esm2022/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +89 -0
- package/esm2022/lib/shared/components/palette/unsupported-field.component.mjs +18 -0
- package/esm2022/lib/shared/components/palette/utils/dash.pipe.mjs +16 -0
- package/esm2022/lib/shared/components/palette/utils/date.pipe.mjs +133 -0
- package/esm2022/lib/shared/components/palette/utils/field-label.pipe.mjs +30 -0
- package/esm2022/lib/shared/components/palette/utils/first-error.pipe.mjs +65 -0
- package/esm2022/lib/shared/components/palette/utils/is-compound.pipe.mjs +43 -0
- package/esm2022/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +22 -0
- package/esm2022/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +32 -0
- package/esm2022/lib/shared/components/palette/utils/is-read-only.pipe.mjs +22 -0
- package/esm2022/lib/shared/components/palette/utils/utils.module.mjs +71 -0
- package/esm2022/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +35 -0
- package/esm2022/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +37 -0
- package/esm2022/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +102 -0
- package/esm2022/lib/shared/components/palette/yes-no/yes-no.service.mjs +50 -0
- package/esm2022/lib/shared/components/search-filters/domain/search-input.model.mjs +15 -0
- package/esm2022/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +63 -0
- package/esm2022/lib/shared/components/search-filters/search-filters.component.mjs +341 -0
- package/esm2022/lib/shared/components/search-filters/search-filters.module.mjs +71 -0
- package/esm2022/lib/shared/components/search-result/search-result.component.mjs +822 -0
- package/esm2022/lib/shared/components/search-result/search-result.module.mjs +82 -0
- package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +497 -0
- package/esm2022/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +67 -0
- package/esm2022/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +169 -0
- package/esm2022/lib/shared/directives/conditional-show/conditional-show.module.mjs +33 -0
- package/esm2022/lib/shared/directives/conditional-show/domain/conditional-show.model.mjs +201 -0
- package/esm2022/lib/shared/directives/conditional-show/services/condition-parser.service.mjs +200 -0
- package/esm2022/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +17 -0
- package/esm2022/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +48 -0
- package/esm2022/lib/shared/directives/focus-element/focus-element.directive.mjs +38 -0
- package/esm2022/lib/shared/directives/focus-element/focus-element.module.mjs +21 -0
- package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +88 -0
- package/esm2022/lib/shared/directives/substitutor/label-substitutor.module.mjs +30 -0
- package/esm2022/lib/shared/directives/substitutor/services/placeholder.service.mjs +209 -0
- package/esm2022/lib/shared/domain/activity/activity.model.mjs +17 -0
- package/esm2022/lib/shared/domain/addresses/address.model.mjs +11 -0
- package/esm2022/lib/shared/domain/alert/alert.model.mjs +5 -0
- package/esm2022/lib/shared/domain/case-details.model.mjs +13 -0
- package/esm2022/lib/shared/domain/case-event-data.model.mjs +11 -0
- package/esm2022/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +8 -0
- package/esm2022/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +10 -0
- package/esm2022/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +10 -0
- package/esm2022/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +125 -0
- package/esm2022/lib/shared/domain/case-flag/flag-type.model.mjs +37 -0
- package/esm2022/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +18 -0
- package/esm2022/lib/shared/domain/case-view/case-event-trigger.model.mjs +34 -0
- package/esm2022/lib/shared/domain/case-view/case-print-document.model.mjs +6 -0
- package/esm2022/lib/shared/domain/case-view/case-tab.model.mjs +17 -0
- package/esm2022/lib/shared/domain/case-view/case-view-event.model.mjs +16 -0
- package/esm2022/lib/shared/domain/case-view/case-view-trigger.model.mjs +7 -0
- package/esm2022/lib/shared/domain/case-view/case-view.model.mjs +27 -0
- package/esm2022/lib/shared/domain/definition/access-control-list.model.mjs +8 -0
- package/esm2022/lib/shared/domain/definition/banner.model.mjs +8 -0
- package/esm2022/lib/shared/domain/definition/case-event.model.mjs +11 -0
- package/esm2022/lib/shared/domain/definition/case-field.model.mjs +218 -0
- package/esm2022/lib/shared/domain/definition/case-state.model.mjs +7 -0
- package/esm2022/lib/shared/domain/definition/case-type-lite.model.mjs +10 -0
- package/esm2022/lib/shared/domain/definition/case-type.model.mjs +20 -0
- package/esm2022/lib/shared/domain/definition/event-case-field.model.mjs +6 -0
- package/esm2022/lib/shared/domain/definition/field-type.model.mjs +30 -0
- package/esm2022/lib/shared/domain/definition/fixed-list-item.model.mjs +6 -0
- package/esm2022/lib/shared/domain/definition/jurisdiction.model.mjs +8 -0
- package/esm2022/lib/shared/domain/document/document-data.model.mjs +28 -0
- package/esm2022/lib/shared/domain/draft.model.mjs +16 -0
- package/esm2022/lib/shared/domain/http/http-error.model.mjs +49 -0
- package/esm2022/lib/shared/domain/organisation/organisation-converter.mjs +42 -0
- package/esm2022/lib/shared/domain/pagination-metadata.model.mjs +5 -0
- package/esm2022/lib/shared/domain/profile/profile.model.mjs +33 -0
- package/esm2022/lib/shared/domain/search/field.model.mjs +17 -0
- package/esm2022/lib/shared/domain/search/search-result-view-column.model.mjs +9 -0
- package/esm2022/lib/shared/domain/search/search-result-view-item.model.mjs +18 -0
- package/esm2022/lib/shared/domain/search/search-result-view.model.mjs +26 -0
- package/esm2022/lib/shared/domain/search/sorting/sort-parameters.mjs +9 -0
- package/esm2022/lib/shared/domain/workbasket/workbasket-input.model.mjs +11 -0
- package/esm2022/lib/shared/fixture/case-field-builder.mjs +67 -0
- package/esm2022/lib/shared/pipes/case-reference/case-reference.pipe.mjs +33 -0
- package/esm2022/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +31 -0
- package/esm2022/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +32 -0
- package/esm2022/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +27 -0
- package/esm2022/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +39 -0
- package/esm2022/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +173 -0
- package/esm2022/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +31 -0
- package/esm2022/lib/shared/pipes/complex/fields-filter.pipe.mjs +105 -0
- package/esm2022/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +16 -0
- package/esm2022/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +28 -0
- package/esm2022/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +28 -0
- package/esm2022/lib/shared/pipes/pipes.module.mjs +64 -0
- package/esm2022/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +24 -0
- package/esm2022/lib/shared/services/activity/activity.polling.service.mjs +122 -0
- package/esm2022/lib/shared/services/activity/activity.service.mjs +85 -0
- package/esm2022/lib/shared/services/addresses/address-parser.mjs +76 -0
- package/esm2022/lib/shared/services/addresses/addresses.service.mjs +65 -0
- package/esm2022/lib/shared/services/alert/alert.service.mjs +157 -0
- package/esm2022/lib/shared/services/auth/auth.service.mjs +35 -0
- package/esm2022/lib/shared/services/banners/banners.service.mjs +35 -0
- package/esm2022/lib/shared/services/browser/browser.service.mjs +24 -0
- package/esm2022/lib/shared/services/case-fields/case-field.service.mjs +34 -0
- package/esm2022/lib/shared/services/case-fields/format-translator.service.mjs +242 -0
- package/esm2022/lib/shared/services/case-file-view/case-file-view.service.mjs +48 -0
- package/esm2022/lib/shared/services/case-flag/case-flag-refdata.service.mjs +104 -0
- package/esm2022/lib/shared/services/common-data-service/common-data-service.mjs +29 -0
- package/esm2022/lib/shared/services/definitions/definitions.module.mjs +19 -0
- package/esm2022/lib/shared/services/definitions/definitions.service.mjs +32 -0
- package/esm2022/lib/shared/services/document-management/document-management.service.mjs +114 -0
- package/esm2022/lib/shared/services/draft/draft.service.mjs +89 -0
- package/esm2022/lib/shared/services/error/error-notifier.service.mjs +16 -0
- package/esm2022/lib/shared/services/eventStatusService/event-status.service.mjs +21 -0
- package/esm2022/lib/shared/services/fields/fields.purger.mjs +305 -0
- package/esm2022/lib/shared/services/fields/fields.utils.mjs +615 -0
- package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +102 -0
- package/esm2022/lib/shared/services/form/form-error.service.mjs +46 -0
- package/esm2022/lib/shared/services/form/form-validators.service.mjs +82 -0
- package/esm2022/lib/shared/services/form/form-value.service.mjs +552 -0
- package/esm2022/lib/shared/services/http/http-error.service.mjs +67 -0
- package/esm2022/lib/shared/services/http/http.service.mjs +95 -0
- package/esm2022/lib/shared/services/jurisdiction/jurisdiction.service.mjs +35 -0
- package/esm2022/lib/shared/services/loading/loading.module.mjs +22 -0
- package/esm2022/lib/shared/services/loading/loading.service.mjs +31 -0
- package/esm2022/lib/shared/services/navigation/navigation-notifier.service.mjs +16 -0
- package/esm2022/lib/shared/services/order/order.service.mjs +37 -0
- package/esm2022/lib/shared/services/organisation/organisation.service.mjs +57 -0
- package/esm2022/lib/shared/services/profile/profile.notifier.mjs +17 -0
- package/esm2022/lib/shared/services/profile/profile.service.mjs +36 -0
- package/esm2022/lib/shared/services/request/request.options.builder.mjs +61 -0
- package/esm2022/lib/shared/services/router/router-helper.service.mjs +20 -0
- package/esm2022/lib/shared/services/search/search.service.mjs +96 -0
- package/esm2022/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +71 -0
- package/esm2022/lib/shared/services/session/session-storage.service.mjs +34 -0
- package/esm2022/lib/shared/services/utils/retry/retry.service.mjs +87 -0
- package/esm2022/lib/shared/services/window/window.service.mjs +40 -0
- package/esm2022/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +57 -0
- package/esm2022/lib/shared/test/test-route-snapshot-builder.mjs +38 -0
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +37136 -0
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -0
- package/lib/app.config.d.ts +4 -0
- package/lib/app.config.d.ts.map +1 -1
- package/lib/components/banners/alert/alert.component.d.ts +1 -1
- package/lib/components/banners/notification-banner/notification-banner.component.d.ts +1 -1
- package/lib/components/footer/footer.component.d.ts +1 -1
- package/lib/components/form/date-input/date-input.component.d.ts +1 -1
- package/lib/components/header/header-bar/header-bar.component.d.ts +1 -1
- package/lib/components/header/navigation/navigation-item.component.d.ts +1 -1
- package/lib/components/header/navigation/navigation.component.d.ts +1 -1
- package/lib/components/header/phase/phase.component.d.ts +1 -1
- package/lib/components/tabs/tab.component.d.ts +1 -1
- package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts +1 -1
- package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
- package/lib/shared/components/activity/activity-banner/activity-banner.component.d.ts +1 -1
- package/lib/shared/components/activity/activity-icon/activity-icon.component.d.ts +1 -1
- package/lib/shared/components/activity/activity.component.d.ts +1 -1
- package/lib/shared/components/case-editor/case-create/case-create.component.d.ts +1 -1
- package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +1 -2
- package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts +1 -1
- package/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.d.ts +1 -1
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
- package/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.d.ts +1 -1
- package/lib/shared/components/case-editor/case-progress/case-progress.component.d.ts +1 -1
- package/lib/shared/components/case-header/case-header.component.d.ts +1 -1
- package/lib/shared/components/case-history/case-history.component.d.ts +1 -1
- package/lib/shared/components/case-list/case-list.component.d.ts +1 -1
- package/lib/shared/components/case-list-filters/case-list-filters.component.d.ts +1 -1
- package/lib/shared/components/case-timeline/case-timeline.component.d.ts +1 -1
- package/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.d.ts +1 -1
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +2 -1
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-view/case-view.component.d.ts +1 -1
- package/lib/shared/components/case-viewer/case-viewer.component.d.ts +1 -1
- package/lib/shared/components/create-case-filters/create-case-filters.component.d.ts +1 -1
- package/lib/shared/components/error/callback-errors.component.d.ts +1 -1
- package/lib/shared/components/error-message/error-message.component.d.ts +1 -1
- package/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.d.ts +1 -1
- package/lib/shared/components/event-start/components/task-conflict/task-conflict.component.d.ts +1 -1
- package/lib/shared/components/event-trigger/event-trigger.component.d.ts +1 -1
- package/lib/shared/components/loading-spinner/loading-spinner.component.d.ts +1 -1
- package/lib/shared/components/pagination/pagination.component.d.ts +1 -1
- package/lib/shared/components/palette/address/write-address-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts +1 -1
- package/lib/shared/components/palette/base-field/abstract-field-write.component.d.ts +1 -1
- package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts +2 -2
- package/lib/shared/components/palette/base-field/abstract-form-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/field-read-label.component.d.ts +1 -1
- package/lib/shared/components/palette/base-field/field-read.component.d.ts +1 -1
- package/lib/shared/components/palette/base-field/field-write.component.d.ts +1 -1
- package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts +8 -1
- package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts.map +1 -1
- package/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.d.ts +1 -1
- package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts +1 -1
- package/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +1 -1
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +1 -1
- package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +2 -2
- package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/complex/read-complex-field-raw.component.d.ts +1 -1
- package/lib/shared/components/palette/complex/read-complex-field-table.component.d.ts +1 -1
- package/lib/shared/components/palette/complex/read-complex-field.component.d.ts +1 -1
- package/lib/shared/components/palette/complex/write-complex-field.component.d.ts +1 -1
- package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts +1 -1
- package/lib/shared/components/palette/history/event-log/event-log-details.component.d.ts +1 -1
- package/lib/shared/components/palette/history/event-log/event-log-table.component.d.ts +1 -1
- package/lib/shared/components/palette/history/event-log/event-log.component.d.ts +1 -1
- package/lib/shared/components/palette/label/label-field.component.d.ts +1 -1
- package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts +1 -1
- package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts +1 -1
- package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts +1 -1
- package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +2 -2
- package/lib/shared/components/palette/markdown/markdown.component.d.ts +2 -4
- package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
- package/lib/shared/components/palette/money-gbp/money-gbp-input.component.d.ts +1 -1
- package/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.d.ts +1 -1
- package/lib/shared/components/palette/order-summary/read-order-summary-row.component.d.ts +1 -1
- package/lib/shared/components/palette/organisation/read-organisation-field-raw.component.d.ts +1 -1
- package/lib/shared/components/palette/organisation/read-organisation-field-table.component.d.ts +1 -1
- package/lib/shared/components/palette/organisation/read-organisation-field.component.d.ts +1 -1
- package/lib/shared/components/palette/organisation/write-organisation-complex-field.component.d.ts +1 -1
- package/lib/shared/components/palette/palette.module.d.ts +2 -2
- package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
- package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +1 -1
- package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts +1 -1
- package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts.map +1 -1
- package/lib/shared/components/search-filters/search-filters-wrapper.component.d.ts +1 -1
- package/lib/shared/components/search-filters/search-filters.component.d.ts +1 -1
- package/lib/shared/components/search-result/search-result.component.d.ts +1 -1
- package/lib/shared/components/workbasket-filters/workbasket-filters.component.d.ts +1 -1
- package/lib/shared/directives/conditional-show/conditional-show-form.directive.d.ts +1 -1
- package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts +1 -1
- package/lib/shared/domain/alert/alert-level.model.d.ts +1 -1
- package/lib/shared/domain/alert/alert-level.model.d.ts.map +1 -1
- package/lib/shared/domain/case-view/access-types.model.d.ts +1 -1
- package/lib/shared/domain/case-view/access-types.model.d.ts.map +1 -1
- package/lib/shared/domain/case-view/role-request.model.d.ts +4 -4
- package/lib/shared/domain/case-view/role-request.model.d.ts.map +1 -1
- package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
- package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
- package/lib/shared/domain/predicate.model.d.ts +1 -1
- package/lib/shared/domain/predicate.model.d.ts.map +1 -1
- package/lib/shared/pipes/complex/fields-filter.pipe.d.ts.map +1 -1
- package/lib/shared/services/order/order.service.d.ts +2 -2
- package/lib/shared/services/order/order.service.d.ts.map +1 -1
- package/lib/shared/services/request/request.options.builder.d.ts +1 -1
- package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
- package/package.json +6 -12
- package/esm2020/lib/app.config.mjs +0 -45
- package/esm2020/lib/components/banners/alert/alert-icon-class.pipe.mjs +0 -25
- package/esm2020/lib/components/banners/alert/alert.component.mjs +0 -95
- package/esm2020/lib/components/banners/alert/alert.module.mjs +0 -32
- package/esm2020/lib/components/banners/banners.module.mjs +0 -32
- package/esm2020/lib/components/banners/notification-banner/notification-banner.component.mjs +0 -120
- package/esm2020/lib/components/banners/notification-banner/notification-banner.module.mjs +0 -19
- package/esm2020/lib/components/body/body.component.mjs +0 -20
- package/esm2020/lib/components/body/body.module.mjs +0 -20
- package/esm2020/lib/components/footer/footer.component.mjs +0 -105
- package/esm2020/lib/components/footer/footers.module.mjs +0 -25
- package/esm2020/lib/components/form/date-input/date-input.component.mjs +0 -331
- package/esm2020/lib/components/form/form.module.mjs +0 -29
- package/esm2020/lib/components/header/header-bar/header-bar.component.mjs +0 -97
- package/esm2020/lib/components/header/headers.module.mjs +0 -25
- package/esm2020/lib/components/header/navigation/navigation-item.component.mjs +0 -41
- package/esm2020/lib/components/header/navigation/navigation.component.mjs +0 -24
- package/esm2020/lib/components/header/phase/phase.component.mjs +0 -45
- package/esm2020/lib/components/tabs/tab.component.mjs +0 -28
- package/esm2020/lib/components/tabs/tabs.component.mjs +0 -79
- package/esm2020/lib/components/tabs/tabs.module.mjs +0 -38
- package/esm2020/lib/shared/commons/address-validation-constants.mjs +0 -13
- package/esm2020/lib/shared/commons/case-edit-data/case-edit-data.module.mjs +0 -19
- package/esm2020/lib/shared/commons/case-edit-data/case-edit-data.service.mjs +0 -47
- package/esm2020/lib/shared/commons/constants.mjs +0 -13
- package/esm2020/lib/shared/components/activity/activity-banner/activity-banner.component.mjs +0 -39
- package/esm2020/lib/shared/components/activity/activity-icon/activity-icon.component.mjs +0 -33
- package/esm2020/lib/shared/components/activity/activity.component.mjs +0 -151
- package/esm2020/lib/shared/components/activity/activity.module.mjs +0 -55
- package/esm2020/lib/shared/components/case-editor/case-access-utils/index.mjs +0 -105
- package/esm2020/lib/shared/components/case-editor/case-create/case-create.component.mjs +0 -87
- package/esm2020/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +0 -463
- package/esm2020/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +0 -125
- package/esm2020/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +0 -135
- package/esm2020/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +0 -69
- package/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +0 -779
- package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +0 -587
- package/esm2020/lib/shared/components/case-editor/case-editor.module.mjs +0 -214
- package/esm2020/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +0 -86
- package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +0 -80
- package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +0 -153
- package/esm2020/lib/shared/components/case-editor/case-progress/case-progress.component.mjs +0 -77
- package/esm2020/lib/shared/components/case-editor/domain/confirmation.model.mjs +0 -21
- package/esm2020/lib/shared/components/case-editor/domain/wizard-page-field-complex-override.model.mjs +0 -4
- package/esm2020/lib/shared/components/case-editor/domain/wizard-page-field.model.mjs +0 -3
- package/esm2020/lib/shared/components/case-editor/domain/wizard-page.model.mjs +0 -26
- package/esm2020/lib/shared/components/case-editor/domain/wizard.model.mjs +0 -54
- package/esm2020/lib/shared/components/case-editor/services/case-edit-wizard.guard.mjs +0 -93
- package/esm2020/lib/shared/components/case-editor/services/case-flag-state.service.mjs +0 -19
- package/esm2020/lib/shared/components/case-editor/services/case-worker.service.mjs +0 -32
- package/esm2020/lib/shared/components/case-editor/services/case.notifier.mjs +0 -51
- package/esm2020/lib/shared/components/case-editor/services/cases.service.mjs +0 -292
- package/esm2020/lib/shared/components/case-editor/services/convert-href-to-router.service.mjs +0 -41
- package/esm2020/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +0 -143
- package/esm2020/lib/shared/components/case-editor/services/event-trigger.service.mjs +0 -20
- package/esm2020/lib/shared/components/case-editor/services/judicial-worker.service.mjs +0 -32
- package/esm2020/lib/shared/components/case-editor/services/page-validation.service.mjs +0 -58
- package/esm2020/lib/shared/components/case-editor/services/valid-page-list-caseFields.service.mjs +0 -39
- package/esm2020/lib/shared/components/case-editor/services/wizard-page-field-to-case-field.mapper.mjs +0 -117
- package/esm2020/lib/shared/components/case-editor/services/work-allocation.service.mjs +0 -214
- package/esm2020/lib/shared/components/case-header/case-header.component.mjs +0 -61
- package/esm2020/lib/shared/components/case-header/case-header.module.mjs +0 -33
- package/esm2020/lib/shared/components/case-history/case-history.component.mjs +0 -242
- package/esm2020/lib/shared/components/case-history/case-history.module.mjs +0 -64
- package/esm2020/lib/shared/components/case-history/domain/case-history.model.mjs +0 -29
- package/esm2020/lib/shared/components/case-history/services/case-history.service.mjs +0 -40
- package/esm2020/lib/shared/components/case-list/case-list.component.mjs +0 -362
- package/esm2020/lib/shared/components/case-list/case-list.module.mjs +0 -47
- package/esm2020/lib/shared/components/case-list-filters/case-list-filters.component.mjs +0 -52
- package/esm2020/lib/shared/components/case-list-filters/case-list-filters.module.mjs +0 -64
- package/esm2020/lib/shared/components/case-timeline/case-timeline.component.mjs +0 -109
- package/esm2020/lib/shared/components/case-timeline/case-timeline.module.mjs +0 -52
- package/esm2020/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +0 -247
- package/esm2020/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +0 -298
- package/esm2020/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +0 -72
- package/esm2020/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +0 -141
- package/esm2020/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +0 -670
- package/esm2020/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +0 -58
- package/esm2020/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +0 -241
- package/esm2020/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +0 -199
- package/esm2020/lib/shared/components/case-viewer/case-specific-access-success/case-specific-access-success.component.mjs +0 -47
- package/esm2020/lib/shared/components/case-viewer/case-view/case-view.component.mjs +0 -98
- package/esm2020/lib/shared/components/case-viewer/case-viewer.component.mjs +0 -125
- package/esm2020/lib/shared/components/case-viewer/case-viewer.module.mjs +0 -191
- package/esm2020/lib/shared/components/case-viewer/printer/case-printer.component.mjs +0 -110
- package/esm2020/lib/shared/components/case-viewer/printer/pipes/print-url.pipe.mjs +0 -60
- package/esm2020/lib/shared/components/case-viewer/services/case.resolver.mjs +0 -128
- package/esm2020/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +0 -77
- package/esm2020/lib/shared/components/create-case-filters/create-case-filters-selection.model.mjs +0 -8
- package/esm2020/lib/shared/components/create-case-filters/create-case-filters.component.mjs +0 -275
- package/esm2020/lib/shared/components/create-case-filters/create-case-filters.module.mjs +0 -44
- package/esm2020/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.mjs +0 -57
- package/esm2020/lib/shared/components/dialogs/dialogs.module.mjs +0 -51
- package/esm2020/lib/shared/components/dialogs/document-dialog/document-dialog.component.mjs +0 -59
- package/esm2020/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.mjs +0 -57
- package/esm2020/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.mjs +0 -61
- package/esm2020/lib/shared/components/error/callback-errors.component.mjs +0 -149
- package/esm2020/lib/shared/components/error/domain/error-context.mjs +0 -3
- package/esm2020/lib/shared/components/error/errors.module.mjs +0 -33
- package/esm2020/lib/shared/components/error-message/error-message.component.mjs +0 -43
- package/esm2020/lib/shared/components/error-message/error-message.module.mjs +0 -41
- package/esm2020/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +0 -59
- package/esm2020/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +0 -53
- package/esm2020/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +0 -104
- package/esm2020/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.mjs +0 -68
- package/esm2020/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +0 -58
- package/esm2020/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +0 -53
- package/esm2020/lib/shared/components/event-start/event-guard/event-start.guard.mjs +0 -101
- package/esm2020/lib/shared/components/event-start/event-start.component.mjs +0 -49
- package/esm2020/lib/shared/components/event-start/event-start.module.mjs +0 -71
- package/esm2020/lib/shared/components/event-start/resolvers/event-tasks-resolver.service.mjs +0 -29
- package/esm2020/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +0 -170
- package/esm2020/lib/shared/components/event-trigger/event-trigger.component.mjs +0 -123
- package/esm2020/lib/shared/components/event-trigger/event-trigger.module.mjs +0 -37
- package/esm2020/lib/shared/components/loading-spinner/loading-spinner.component.mjs +0 -27
- package/esm2020/lib/shared/components/loading-spinner/loading-spinner.module.mjs +0 -29
- package/esm2020/lib/shared/components/pagination/pagination.component.mjs +0 -262
- package/esm2020/lib/shared/components/pagination/pagination.module.mjs +0 -35
- package/esm2020/lib/shared/components/palette/address/address-option.model.mjs +0 -21
- package/esm2020/lib/shared/components/palette/address/write-address-field.component.mjs +0 -280
- package/esm2020/lib/shared/components/palette/base-field/abstract-field-read.component.mjs +0 -31
- package/esm2020/lib/shared/components/palette/base-field/abstract-field-write.component.mjs +0 -44
- package/esm2020/lib/shared/components/palette/base-field/abstract-form-field.component.mjs +0 -83
- package/esm2020/lib/shared/components/palette/base-field/field-read-label.component.mjs +0 -86
- package/esm2020/lib/shared/components/palette/base-field/field-read.component.mjs +0 -85
- package/esm2020/lib/shared/components/palette/base-field/field-write.component.mjs +0 -74
- package/esm2020/lib/shared/components/palette/base-field/payment-field.component.mjs +0 -35
- package/esm2020/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +0 -171
- package/esm2020/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.mjs +0 -48
- package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +0 -48
- package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +0 -342
- package/esm2020/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +0 -154
- package/esm2020/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu.component.mjs +0 -94
- package/esm2020/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +0 -190
- package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +0 -288
- package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +0 -207
- package/esm2020/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +0 -165
- package/esm2020/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +0 -219
- package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +0 -306
- package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +0 -200
- package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +0 -343
- package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +0 -267
- package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +0 -510
- package/esm2020/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +0 -41
- package/esm2020/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +0 -41
- package/esm2020/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +0 -109
- package/esm2020/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +0 -77
- package/esm2020/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +0 -246
- package/esm2020/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +0 -686
- package/esm2020/lib/shared/components/palette/case-link/read-case-link-field.component.mjs +0 -32
- package/esm2020/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +0 -122
- package/esm2020/lib/shared/components/palette/collection/collection-create-checker.service.mjs +0 -42
- package/esm2020/lib/shared/components/palette/collection/read-collection-field.component.mjs +0 -81
- package/esm2020/lib/shared/components/palette/collection/write-collection-field.component.mjs +0 -441
- package/esm2020/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +0 -379
- package/esm2020/lib/shared/components/palette/complex/read-complex-field-raw.component.mjs +0 -53
- package/esm2020/lib/shared/components/palette/complex/read-complex-field-table.component.mjs +0 -78
- package/esm2020/lib/shared/components/palette/complex/read-complex-field.component.mjs +0 -75
- package/esm2020/lib/shared/components/palette/complex/write-complex-field.component.mjs +0 -169
- package/esm2020/lib/shared/components/palette/date/read-date-field.component.mjs +0 -28
- package/esm2020/lib/shared/components/palette/date/write-date-container-field.component.mjs +0 -33
- package/esm2020/lib/shared/components/palette/date/write-date-field.component.mjs +0 -76
- package/esm2020/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +0 -309
- package/esm2020/lib/shared/components/palette/document/document-url.pipe.mjs +0 -24
- package/esm2020/lib/shared/components/palette/document/file-upload-progress.guard.mjs +0 -29
- package/esm2020/lib/shared/components/palette/document/file-upload-state.service.mjs +0 -16
- package/esm2020/lib/shared/components/palette/document/read-document-field.component.mjs +0 -81
- package/esm2020/lib/shared/components/palette/document/write-document-field.component.mjs +0 -408
- package/esm2020/lib/shared/components/palette/dynamic-list/dynamic-list.pipe.mjs +0 -18
- package/esm2020/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.mjs +0 -36
- package/esm2020/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +0 -124
- package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.mjs +0 -43
- package/esm2020/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.mjs +0 -145
- package/esm2020/lib/shared/components/palette/dynamic-radio-list/dynamic-radio-list.pipe.mjs +0 -25
- package/esm2020/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.mjs +0 -42
- package/esm2020/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +0 -124
- package/esm2020/lib/shared/components/palette/email/read-email-field.component.mjs +0 -35
- package/esm2020/lib/shared/components/palette/email/write-email-field.component.mjs +0 -73
- package/esm2020/lib/shared/components/palette/fixed-list/fixed-list.pipe.mjs +0 -23
- package/esm2020/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.mjs +0 -26
- package/esm2020/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +0 -106
- package/esm2020/lib/shared/components/palette/fixed-radio-list/fixed-radio-list.pipe.mjs +0 -18
- package/esm2020/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.mjs +0 -26
- package/esm2020/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +0 -95
- package/esm2020/lib/shared/components/palette/history/case-history-viewer-field.component.mjs +0 -16
- package/esm2020/lib/shared/components/palette/history/event-log/event-log-details.component.mjs +0 -97
- package/esm2020/lib/shared/components/palette/history/event-log/event-log-table.component.mjs +0 -225
- package/esm2020/lib/shared/components/palette/history/event-log/event-log.component.mjs +0 -72
- package/esm2020/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.mjs +0 -45
- package/esm2020/lib/shared/components/palette/judicial-user/write-judicial-user-field.component.mjs +0 -242
- package/esm2020/lib/shared/components/palette/label/label-field.component.mjs +0 -50
- package/esm2020/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +0 -108
- package/esm2020/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +0 -189
- package/esm2020/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +0 -530
- package/esm2020/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +0 -204
- package/esm2020/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +0 -280
- package/esm2020/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +0 -66
- package/esm2020/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +0 -201
- package/esm2020/lib/shared/components/palette/linked-cases/domain/linked-cases.model.mjs +0 -22
- package/esm2020/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +0 -163
- package/esm2020/lib/shared/components/palette/linked-cases/services/linked-cases.service.mjs +0 -132
- package/esm2020/lib/shared/components/palette/linked-cases/utils/validators.utils.mjs +0 -27
- package/esm2020/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +0 -229
- package/esm2020/lib/shared/components/palette/markdown/markdown-component.module.mjs +0 -49
- package/esm2020/lib/shared/components/palette/markdown/markdown.component.mjs +0 -78
- package/esm2020/lib/shared/components/palette/markdown/routerlink.component.mjs +0 -23
- package/esm2020/lib/shared/components/palette/money-gbp/money-gbp-input.component.mjs +0 -123
- package/esm2020/lib/shared/components/palette/money-gbp/read-money-gbp-field.component.mjs +0 -47
- package/esm2020/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +0 -78
- package/esm2020/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.mjs +0 -45
- package/esm2020/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +0 -126
- package/esm2020/lib/shared/components/palette/number/read-number-field.component.mjs +0 -24
- package/esm2020/lib/shared/components/palette/number/write-number-field.component.mjs +0 -73
- package/esm2020/lib/shared/components/palette/order-summary/fee-value.model.mjs +0 -3
- package/esm2020/lib/shared/components/palette/order-summary/fee.model.mjs +0 -4
- package/esm2020/lib/shared/components/palette/order-summary/order-summary.model.mjs +0 -3
- package/esm2020/lib/shared/components/palette/order-summary/read-order-summary-field.component.mjs +0 -73
- package/esm2020/lib/shared/components/palette/order-summary/read-order-summary-row.component.mjs +0 -43
- package/esm2020/lib/shared/components/palette/order-summary/write-order-summary-field.component.mjs +0 -44
- package/esm2020/lib/shared/components/palette/organisation/read-organisation-field-raw.component.mjs +0 -83
- package/esm2020/lib/shared/components/palette/organisation/read-organisation-field-table.component.mjs +0 -87
- package/esm2020/lib/shared/components/palette/organisation/read-organisation-field.component.mjs +0 -56
- package/esm2020/lib/shared/components/palette/organisation/write-organisation-complex-field.component.mjs +0 -33
- package/esm2020/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +0 -384
- package/esm2020/lib/shared/components/palette/palette.module.mjs +0 -738
- package/esm2020/lib/shared/components/palette/palette.service.mjs +0 -155
- package/esm2020/lib/shared/components/palette/payment/case-payment-history-viewer-field.component.mjs +0 -24
- package/esm2020/lib/shared/components/palette/phone-uk/read-phone-uk-field.component.mjs +0 -22
- package/esm2020/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +0 -73
- package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +0 -42
- package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +0 -144
- package/esm2020/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +0 -64
- package/esm2020/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +0 -60
- package/esm2020/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +0 -281
- package/esm2020/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +0 -327
- package/esm2020/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +0 -22
- package/esm2020/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +0 -164
- package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +0 -74
- package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +0 -107
- package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +0 -201
- package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +0 -101
- package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +0 -21
- package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +0 -38
- package/esm2020/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +0 -121
- package/esm2020/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +0 -22
- package/esm2020/lib/shared/components/palette/text/read-text-field.component.mjs +0 -24
- package/esm2020/lib/shared/components/palette/text/write-text-field.component.mjs +0 -77
- package/esm2020/lib/shared/components/palette/text-area/read-text-area-field.component.mjs +0 -24
- package/esm2020/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +0 -87
- package/esm2020/lib/shared/components/palette/unsupported-field.component.mjs +0 -17
- package/esm2020/lib/shared/components/palette/utils/dash.pipe.mjs +0 -16
- package/esm2020/lib/shared/components/palette/utils/date.pipe.mjs +0 -132
- package/esm2020/lib/shared/components/palette/utils/field-label.pipe.mjs +0 -29
- package/esm2020/lib/shared/components/palette/utils/first-error.pipe.mjs +0 -62
- package/esm2020/lib/shared/components/palette/utils/is-compound.pipe.mjs +0 -43
- package/esm2020/lib/shared/components/palette/utils/is-mandatory.pipe.mjs +0 -21
- package/esm2020/lib/shared/components/palette/utils/is-read-only-and-not-collection.pipe.mjs +0 -31
- package/esm2020/lib/shared/components/palette/utils/is-read-only.pipe.mjs +0 -21
- package/esm2020/lib/shared/components/palette/utils/utils.module.mjs +0 -71
- package/esm2020/lib/shared/components/palette/waystopay/waystopay-field.component.mjs +0 -34
- package/esm2020/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +0 -34
- package/esm2020/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +0 -100
- package/esm2020/lib/shared/components/palette/yes-no/yes-no.service.mjs +0 -50
- package/esm2020/lib/shared/components/search-filters/domain/search-input.model.mjs +0 -10
- package/esm2020/lib/shared/components/search-filters/search-filters-wrapper.component.mjs +0 -58
- package/esm2020/lib/shared/components/search-filters/search-filters.component.mjs +0 -326
- package/esm2020/lib/shared/components/search-filters/search-filters.module.mjs +0 -71
- package/esm2020/lib/shared/components/search-result/search-result.component.mjs +0 -815
- package/esm2020/lib/shared/components/search-result/search-result.module.mjs +0 -82
- package/esm2020/lib/shared/components/workbasket-filters/workbasket-filters.component.mjs +0 -479
- package/esm2020/lib/shared/components/workbasket-filters/workbasket-filters.module.mjs +0 -67
- package/esm2020/lib/shared/directives/conditional-show/conditional-show-form.directive.mjs +0 -164
- package/esm2020/lib/shared/directives/conditional-show/conditional-show.module.mjs +0 -33
- package/esm2020/lib/shared/directives/conditional-show/domain/conditional-show.model.mjs +0 -200
- package/esm2020/lib/shared/directives/conditional-show/services/condition-parser.service.mjs +0 -200
- package/esm2020/lib/shared/directives/conditional-show/services/conditional-show-registrar.service.mjs +0 -19
- package/esm2020/lib/shared/directives/conditional-show/services/grey-bar.service.mjs +0 -47
- package/esm2020/lib/shared/directives/focus-element/focus-element.directive.mjs +0 -36
- package/esm2020/lib/shared/directives/focus-element/focus-element.module.mjs +0 -21
- package/esm2020/lib/shared/directives/substitutor/label-substitutor.directive.mjs +0 -82
- package/esm2020/lib/shared/directives/substitutor/label-substitutor.module.mjs +0 -30
- package/esm2020/lib/shared/directives/substitutor/services/placeholder.service.mjs +0 -200
- package/esm2020/lib/shared/domain/activity/activity.model.mjs +0 -10
- package/esm2020/lib/shared/domain/addresses/address.model.mjs +0 -13
- package/esm2020/lib/shared/domain/alert/alert.model.mjs +0 -3
- package/esm2020/lib/shared/domain/case-details.model.mjs +0 -4
- package/esm2020/lib/shared/domain/case-event-data.model.mjs +0 -4
- package/esm2020/lib/shared/domain/case-file-view/case-file-view-category.model.mjs +0 -3
- package/esm2020/lib/shared/domain/case-file-view/case-file-view-document.model.mjs +0 -4
- package/esm2020/lib/shared/domain/case-file-view/categories-and-documents.model.mjs +0 -7
- package/esm2020/lib/shared/domain/case-file-view/document-tree-node/document-tree-node.model.mjs +0 -117
- package/esm2020/lib/shared/domain/case-flag/flag-type.model.mjs +0 -28
- package/esm2020/lib/shared/domain/case-flag/hmcts-service-detail.model.mjs +0 -10
- package/esm2020/lib/shared/domain/case-view/case-event-trigger.model.mjs +0 -23
- package/esm2020/lib/shared/domain/case-view/case-print-document.model.mjs +0 -3
- package/esm2020/lib/shared/domain/case-view/case-tab.model.mjs +0 -12
- package/esm2020/lib/shared/domain/case-view/case-view-event.model.mjs +0 -4
- package/esm2020/lib/shared/domain/case-view/case-view-trigger.model.mjs +0 -3
- package/esm2020/lib/shared/domain/case-view/case-view.model.mjs +0 -17
- package/esm2020/lib/shared/domain/definition/access-control-list.model.mjs +0 -3
- package/esm2020/lib/shared/domain/definition/banner.model.mjs +0 -3
- package/esm2020/lib/shared/domain/definition/case-event.model.mjs +0 -3
- package/esm2020/lib/shared/domain/definition/case-field.model.mjs +0 -200
- package/esm2020/lib/shared/domain/definition/case-state.model.mjs +0 -3
- package/esm2020/lib/shared/domain/definition/case-type-lite.model.mjs +0 -5
- package/esm2020/lib/shared/domain/definition/case-type.model.mjs +0 -12
- package/esm2020/lib/shared/domain/definition/event-case-field.model.mjs +0 -4
- package/esm2020/lib/shared/domain/definition/field-type.model.mjs +0 -22
- package/esm2020/lib/shared/domain/definition/fixed-list-item.model.mjs +0 -3
- package/esm2020/lib/shared/domain/definition/jurisdiction.model.mjs +0 -3
- package/esm2020/lib/shared/domain/document/document-data.model.mjs +0 -14
- package/esm2020/lib/shared/domain/draft.model.mjs +0 -11
- package/esm2020/lib/shared/domain/http/http-error.model.mjs +0 -40
- package/esm2020/lib/shared/domain/organisation/organisation-converter.mjs +0 -42
- package/esm2020/lib/shared/domain/pagination-metadata.model.mjs +0 -3
- package/esm2020/lib/shared/domain/profile/profile.model.mjs +0 -29
- package/esm2020/lib/shared/domain/search/field.model.mjs +0 -11
- package/esm2020/lib/shared/domain/search/search-result-view-column.model.mjs +0 -3
- package/esm2020/lib/shared/domain/search/search-result-view-item.model.mjs +0 -12
- package/esm2020/lib/shared/domain/search/search-result-view.model.mjs +0 -23
- package/esm2020/lib/shared/domain/search/sorting/sort-parameters.mjs +0 -7
- package/esm2020/lib/shared/domain/workbasket/workbasket-input.model.mjs +0 -5
- package/esm2020/lib/shared/fixture/case-field-builder.mjs +0 -69
- package/esm2020/lib/shared/pipes/case-reference/case-reference.pipe.mjs +0 -33
- package/esm2020/lib/shared/pipes/case-title/ccd-case-title.pipe.mjs +0 -29
- package/esm2020/lib/shared/pipes/complex/ccd-collection-table-value-case-fields.pipe.mjs +0 -32
- package/esm2020/lib/shared/pipes/complex/ccd-cyapage-label-filter.pipe.mjs +0 -29
- package/esm2020/lib/shared/pipes/complex/ccd-page-fields.pipe.mjs +0 -39
- package/esm2020/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.mjs +0 -173
- package/esm2020/lib/shared/pipes/complex/ccd-tab-fields.pipe.mjs +0 -31
- package/esm2020/lib/shared/pipes/complex/fields-filter.pipe.mjs +0 -105
- package/esm2020/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +0 -16
- package/esm2020/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.mjs +0 -27
- package/esm2020/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.mjs +0 -27
- package/esm2020/lib/shared/pipes/pipes.module.mjs +0 -64
- package/esm2020/lib/shared/pipes/search-result/sorting/sort-search-result.pipe.mjs +0 -24
- package/esm2020/lib/shared/services/activity/activity.polling.service.mjs +0 -114
- package/esm2020/lib/shared/services/activity/activity.service.mjs +0 -82
- package/esm2020/lib/shared/services/addresses/address-parser.mjs +0 -76
- package/esm2020/lib/shared/services/addresses/addresses.service.mjs +0 -63
- package/esm2020/lib/shared/services/alert/alert.service.mjs +0 -142
- package/esm2020/lib/shared/services/auth/auth.service.mjs +0 -33
- package/esm2020/lib/shared/services/banners/banners.service.mjs +0 -33
- package/esm2020/lib/shared/services/browser/browser.service.mjs +0 -24
- package/esm2020/lib/shared/services/case-fields/case-field.service.mjs +0 -34
- package/esm2020/lib/shared/services/case-fields/format-translator.service.mjs +0 -242
- package/esm2020/lib/shared/services/case-file-view/case-file-view.service.mjs +0 -46
- package/esm2020/lib/shared/services/case-flag/case-flag-refdata.service.mjs +0 -102
- package/esm2020/lib/shared/services/common-data-service/common-data-service.mjs +0 -28
- package/esm2020/lib/shared/services/definitions/definitions.module.mjs +0 -19
- package/esm2020/lib/shared/services/definitions/definitions.service.mjs +0 -30
- package/esm2020/lib/shared/services/document-management/document-management.service.mjs +0 -112
- package/esm2020/lib/shared/services/draft/draft.service.mjs +0 -86
- package/esm2020/lib/shared/services/error/error-notifier.service.mjs +0 -18
- package/esm2020/lib/shared/services/eventStatusService/event-status.service.mjs +0 -21
- package/esm2020/lib/shared/services/fields/fields.purger.mjs +0 -304
- package/esm2020/lib/shared/services/fields/fields.utils.mjs +0 -615
- package/esm2020/lib/shared/services/form/field-type-sanitiser.mjs +0 -102
- package/esm2020/lib/shared/services/form/form-error.service.mjs +0 -46
- package/esm2020/lib/shared/services/form/form-validators.service.mjs +0 -82
- package/esm2020/lib/shared/services/form/form-value.service.mjs +0 -551
- package/esm2020/lib/shared/services/http/http-error.service.mjs +0 -65
- package/esm2020/lib/shared/services/http/http.service.mjs +0 -93
- package/esm2020/lib/shared/services/jurisdiction/jurisdiction.service.mjs +0 -33
- package/esm2020/lib/shared/services/loading/loading.module.mjs +0 -22
- package/esm2020/lib/shared/services/loading/loading.service.mjs +0 -33
- package/esm2020/lib/shared/services/navigation/navigation-notifier.service.mjs +0 -18
- package/esm2020/lib/shared/services/order/order.service.mjs +0 -39
- package/esm2020/lib/shared/services/organisation/organisation.service.mjs +0 -54
- package/esm2020/lib/shared/services/profile/profile.notifier.mjs +0 -19
- package/esm2020/lib/shared/services/profile/profile.service.mjs +0 -34
- package/esm2020/lib/shared/services/request/request.options.builder.mjs +0 -61
- package/esm2020/lib/shared/services/router/router-helper.service.mjs +0 -20
- package/esm2020/lib/shared/services/search/search.service.mjs +0 -89
- package/esm2020/lib/shared/services/search-result/sorting/search-result-view-item-comparator-factory.mjs +0 -71
- package/esm2020/lib/shared/services/session/session-storage.service.mjs +0 -34
- package/esm2020/lib/shared/services/utils/retry/retry.service.mjs +0 -86
- package/esm2020/lib/shared/services/window/window.service.mjs +0 -40
- package/esm2020/lib/shared/services/workbasket/workbasket-input-filter.service.mjs +0 -53
- package/esm2020/lib/shared/test/test-route-snapshot-builder.mjs +0 -40
- package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +0 -38812
- package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +0 -1
- package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +0 -35830
- package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +0 -1
- /package/{esm2020 → esm2022}/hmcts-ccd-case-ui-toolkit.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/banners/alert/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/banners/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/domain/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/domain/notification-banner-config.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/enums/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/enums/notification-banner-style.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/enums/notification-banner-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/banners/notification-banner/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/body/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/footer/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/date-input/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/form/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/header/header-bar/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/header/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/header/navigation/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/header/phase/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/tabs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/commons/case-edit-data/case-edit-validation.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/commons/case-edit-data/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/activity/activity-banner/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/activity/activity-icon/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/activity/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-create/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-confirm/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-form/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-page/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-edit-submit/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-event-completion/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/case-progress/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-params.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-portal-types.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-return-states.enum.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-state-machine-context.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/event-completion-states.enum.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/domain/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/editor.routing.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-editor/services/wizard-factory.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-header/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-history/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-list-filters/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-timeline/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-basic-access-view/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-challenged-access-request/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-challenged-access-request/models/case-challenged-access-request.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-challenged-access-request/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-challenged-access-success/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-event-trigger/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-full-access-view/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-review-specific-access-reject/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-review-specific-access-request/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-review-specific-access-request/models/case-review-specific-access-request.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-review-specific-access-request/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-specific-access-request/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-specific-access-request/models/case-specific-access-request.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-specific-access-request/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-specific-access-success/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/case-view/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/printer/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/printer/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/case-viewer/viewer.routing.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/create-case-filters/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/dialogs/delete-or-cancel-dialog/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/dialogs/document-dialog/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/dialogs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/dialogs/remove-dialog/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/dialogs/save-or-discard-dialog/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/error/domain/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/error/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/error-message/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/event-start/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/event-start/models/event-start-state-machine-context.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/event-start/models/event-start-states-enum.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/event-start/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/event-start/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/event-trigger/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/helpers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/helpers/init-dialog-helper.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/loading-spinner/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/pagination/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/address/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/base-field/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/base-field/palette-context.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-file-view/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-file-view/components/shared/case-file-view-overlay-menu/case-file-view-overlay-menu-item.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-file-view/components/shared/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-file-view/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-file-view/test-data/categories-and-documents-test-data.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/domain/case-flag-state.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/domain/case-flag.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/domain/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/domain/language.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-flag/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/case-link/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/collection/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/complex/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/complex/sort-order.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/date/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/datetime-picker/datetime-picker-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/datetime-picker/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/document/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/dynamic-list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/dynamic-multi-select-list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/dynamic-radio-list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/email/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/fixed-list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/fixed-radio-list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/history/event-log/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/history/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/judicial-user/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/label/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/domain/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/enums/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/linked-cases/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/markdown/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/money-gbp/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/multi-select-list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/number/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/order-summary/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/organisation/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/payment/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/phone-uk/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/__mocks__/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/query-create-context.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/text/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/text-area/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/waystopay/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/palette/yes-no/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/search-filters/domain/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/search-filters/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/search-result/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/components/workbasket-filters/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/directives/conditional-show/domain/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/directives/conditional-show/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/directives/conditional-show/services/condition.peg.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/directives/conditional-show/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/directives/focus-element/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/directives/substitutor/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/directives/substitutor/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/activity/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/addresses/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/alert/alert-level.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/alert/alert-status-params.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/alert/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-edit/case-edit.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-edit/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-file-view/case-file-view-sort-columns.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-file-view/document-tree-node/document-tree-node-type.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-file-view/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-flag/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-view/access-types.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-view/case-view-event-ids.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-view/challenged-access-request.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-view/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-view/review-specific-access-request.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-view/role-assignment-response.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-view/role-request.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-view/service-org-response.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/case-view/specific-access-request.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/definition/display-context-enum.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/definition/field-type-enum.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/definition/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/document/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/error-message.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/http/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/jurisdiction/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/jurisdiction/judicial-user.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/order/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/order/orderable.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/organisation/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/organisation/simple-organisation.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/predicate.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/profile/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/search/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/search/sorting/search-result-view-item-comparator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/sort-order.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/user/user-details.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/user/user-info.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/Task.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/TaskPayload.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/case-worker.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/judicial-worker.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/task-response.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/task-search-parameter.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/work-allocation/wa-service-config.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/domain/workbasket/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/fixture/shared.test.fixture.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/pipes/case-reference/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/pipes/case-title/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/pipes/complex/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/pipes/generic/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/pipes/link-cases-from-reason-code/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/pipes/link-cases-reason-code/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/activity/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/addresses/address-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/addresses/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/alert/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/auth/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/banners/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/browser/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/case-fields/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/case-file-view/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/case-flag/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/case-flag/refdata-case-flag-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/definitions/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/document-management/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/draft/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/error/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/eventStatusService/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/fields/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/form/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/http/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/jurisdiction/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/loading/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/navigation/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/navigation/navigation-origin.model.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/order/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/organisation/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/profile/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/request/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/router/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/search/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/session/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/utils/retry/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/window/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/shared/services/workbasket/index.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -0,0 +1,806 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Component } from '@angular/core';
|
|
2
|
+
import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';
|
|
3
|
+
import { ActivatedRoute } from '@angular/router';
|
|
4
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
5
|
+
import { finalize } from 'rxjs/operators';
|
|
6
|
+
import { CaseEditDataService } from '../../../commons/case-edit-data';
|
|
7
|
+
import { DRAFT_PREFIX } from '../../../domain/draft.model';
|
|
8
|
+
import { AddressesService, LoadingService } from '../../../services';
|
|
9
|
+
import { CaseFieldService } from '../../../services/case-fields/case-field.service';
|
|
10
|
+
import { FieldsUtils } from '../../../services/fields';
|
|
11
|
+
import { FormErrorService } from '../../../services/form/form-error.service';
|
|
12
|
+
import { FormValueService } from '../../../services/form/form-value.service';
|
|
13
|
+
import { SaveOrDiscardDialogComponent } from '../../dialogs/save-or-discard-dialog';
|
|
14
|
+
import { initDialog } from '../../helpers';
|
|
15
|
+
import { CaseEditComponent } from '../case-edit/case-edit.component';
|
|
16
|
+
import { PageValidationService } from '../services/page-validation.service';
|
|
17
|
+
import { ValidPageListCaseFieldsService } from '../services/valid-page-list-caseFields.service';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "../case-edit/case-edit.component";
|
|
20
|
+
import * as i2 from "@angular/router";
|
|
21
|
+
import * as i3 from "../../../services/form/form-value.service";
|
|
22
|
+
import * as i4 from "../../../services/form/form-error.service";
|
|
23
|
+
import * as i5 from "../services/page-validation.service";
|
|
24
|
+
import * as i6 from "@angular/material/legacy-dialog";
|
|
25
|
+
import * as i7 from "../../../services/case-fields/case-field.service";
|
|
26
|
+
import * as i8 from "../../../commons/case-edit-data";
|
|
27
|
+
import * as i9 from "../../../services";
|
|
28
|
+
import * as i10 from "../services/valid-page-list-caseFields.service";
|
|
29
|
+
function CaseEditPageComponent_ng_container_0_h1_1_Template(rf, ctx) { if (rf & 1) {
|
|
30
|
+
i0.ɵɵelementStart(0, "h1", 11);
|
|
31
|
+
i0.ɵɵtext(1);
|
|
32
|
+
i0.ɵɵpipe(2, "rpxTranslate");
|
|
33
|
+
i0.ɵɵelementEnd();
|
|
34
|
+
} if (rf & 2) {
|
|
35
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
36
|
+
i0.ɵɵadvance();
|
|
37
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r1.eventTrigger.name));
|
|
38
|
+
} }
|
|
39
|
+
function CaseEditPageComponent_ng_container_0_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
40
|
+
i0.ɵɵelementContainerStart(0);
|
|
41
|
+
i0.ɵɵelementStart(1, "span", 12);
|
|
42
|
+
i0.ɵɵtext(2);
|
|
43
|
+
i0.ɵɵpipe(3, "rpxTranslate");
|
|
44
|
+
i0.ɵɵelementEnd();
|
|
45
|
+
i0.ɵɵelementStart(4, "h1", 11);
|
|
46
|
+
i0.ɵɵtext(5);
|
|
47
|
+
i0.ɵɵpipe(6, "rpxTranslate");
|
|
48
|
+
i0.ɵɵelementEnd();
|
|
49
|
+
i0.ɵɵelementContainerEnd();
|
|
50
|
+
} if (rf & 2) {
|
|
51
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
52
|
+
i0.ɵɵadvance(2);
|
|
53
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, ctx_r1.eventTrigger.name));
|
|
54
|
+
i0.ɵɵadvance(3);
|
|
55
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, ctx_r1.currentPage.label));
|
|
56
|
+
} }
|
|
57
|
+
function CaseEditPageComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
i0.ɵɵelementContainerStart(0);
|
|
59
|
+
i0.ɵɵtemplate(1, CaseEditPageComponent_ng_container_0_h1_1_Template, 3, 3, "h1", 10)(2, CaseEditPageComponent_ng_container_0_ng_container_2_Template, 7, 6, "ng-container", 2);
|
|
60
|
+
i0.ɵɵelementContainerEnd();
|
|
61
|
+
} if (rf & 2) {
|
|
62
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
63
|
+
i0.ɵɵadvance();
|
|
64
|
+
i0.ɵɵproperty("ngIf", !ctx_r1.currentPage.label);
|
|
65
|
+
i0.ɵɵadvance();
|
|
66
|
+
i0.ɵɵproperty("ngIf", ctx_r1.currentPage.label);
|
|
67
|
+
} }
|
|
68
|
+
function CaseEditPageComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
+
i0.ɵɵelement(0, "div");
|
|
70
|
+
} }
|
|
71
|
+
function CaseEditPageComponent_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
i0.ɵɵelement(0, "ccd-markdown", 13);
|
|
73
|
+
i0.ɵɵpipe(1, "ccdCaseTitle");
|
|
74
|
+
} if (rf & 2) {
|
|
75
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
76
|
+
i0.ɵɵproperty("content", i0.ɵɵpipeBind3(1, 1, ctx_r1.getCaseTitle(), ctx_r1.caseFields, ctx_r1.editForm.controls["data"]));
|
|
77
|
+
} }
|
|
78
|
+
function CaseEditPageComponent_ng_template_4_h2_0_Template(rf, ctx) { if (rf & 1) {
|
|
79
|
+
i0.ɵɵelementStart(0, "h2", 15);
|
|
80
|
+
i0.ɵɵtext(1);
|
|
81
|
+
i0.ɵɵpipe(2, "ccdCaseReference");
|
|
82
|
+
i0.ɵɵelementEnd();
|
|
83
|
+
} if (rf & 2) {
|
|
84
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
85
|
+
i0.ɵɵadvance();
|
|
86
|
+
i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r1.getCaseId()), "");
|
|
87
|
+
} }
|
|
88
|
+
function CaseEditPageComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
|
89
|
+
i0.ɵɵtemplate(0, CaseEditPageComponent_ng_template_4_h2_0_Template, 3, 3, "h2", 14);
|
|
90
|
+
} if (rf & 2) {
|
|
91
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
92
|
+
i0.ɵɵproperty("ngIf", ctx_r1.getCaseId());
|
|
93
|
+
} }
|
|
94
|
+
function CaseEditPageComponent_div_6_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
95
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
96
|
+
i0.ɵɵelementStart(0, "div", 19)(1, "ul", 20)(2, "li")(3, "a", 21);
|
|
97
|
+
i0.ɵɵlistener("click", function CaseEditPageComponent_div_6_div_4_Template_a_click_3_listener() { const validationError_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.navigateToErrorElement(validationError_r4.id)); });
|
|
98
|
+
i0.ɵɵtext(4);
|
|
99
|
+
i0.ɵɵpipe(5, "rpxTranslate");
|
|
100
|
+
i0.ɵɵpipe(6, "rpxTranslate");
|
|
101
|
+
i0.ɵɵelementEnd()()()();
|
|
102
|
+
} if (rf & 2) {
|
|
103
|
+
const validationError_r4 = ctx.$implicit;
|
|
104
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
105
|
+
i0.ɵɵadvance(4);
|
|
106
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind3(6, 3, validationError_r4.message, ctx_r1.getRpxTranslatePipeArgs(i0.ɵɵpipeBind1(5, 1, validationError_r4.label)), null), " ");
|
|
107
|
+
} }
|
|
108
|
+
function CaseEditPageComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
109
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "h2", 17);
|
|
110
|
+
i0.ɵɵtext(2);
|
|
111
|
+
i0.ɵɵpipe(3, "rpxTranslate");
|
|
112
|
+
i0.ɵɵelementEnd();
|
|
113
|
+
i0.ɵɵtemplate(4, CaseEditPageComponent_div_6_div_4_Template, 7, 7, "div", 18);
|
|
114
|
+
i0.ɵɵelementEnd();
|
|
115
|
+
} if (rf & 2) {
|
|
116
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
117
|
+
i0.ɵɵadvance(2);
|
|
118
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "There is a problem"), " ");
|
|
119
|
+
i0.ɵɵadvance(2);
|
|
120
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.validationErrors);
|
|
121
|
+
} }
|
|
122
|
+
function CaseEditPageComponent_form_10_ccd_case_edit_form_3_Template(rf, ctx) { if (rf & 1) {
|
|
123
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
124
|
+
i0.ɵɵelementStart(0, "ccd-case-edit-form", 32);
|
|
125
|
+
i0.ɵɵlistener("valuesChanged", function CaseEditPageComponent_form_10_ccd_case_edit_form_3_Template_ccd_case_edit_form_valuesChanged_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.applyValuesChanged($event)); });
|
|
126
|
+
i0.ɵɵelementEnd();
|
|
127
|
+
} if (rf & 2) {
|
|
128
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
129
|
+
i0.ɵɵproperty("fields", ctx_r1.currentPage.getCol1Fields())("formGroup", ctx_r1.editForm.controls["data"])("caseFields", ctx_r1.caseFields)("pageChangeSubject", ctx_r1.pageChangeSubject);
|
|
130
|
+
} }
|
|
131
|
+
function CaseEditPageComponent_form_10_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
132
|
+
i0.ɵɵelementStart(0, "div", 33)(1, "div", 34);
|
|
133
|
+
i0.ɵɵelement(2, "ccd-case-edit-form", 35);
|
|
134
|
+
i0.ɵɵelementEnd();
|
|
135
|
+
i0.ɵɵelementStart(3, "div", 36);
|
|
136
|
+
i0.ɵɵelement(4, "ccd-case-edit-form", 37);
|
|
137
|
+
i0.ɵɵelementEnd()();
|
|
138
|
+
} if (rf & 2) {
|
|
139
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
140
|
+
i0.ɵɵadvance(2);
|
|
141
|
+
i0.ɵɵproperty("fields", ctx_r1.currentPage.getCol1Fields())("formGroup", ctx_r1.editForm.controls["data"])("caseFields", ctx_r1.caseFields);
|
|
142
|
+
i0.ɵɵadvance(2);
|
|
143
|
+
i0.ɵɵproperty("fields", ctx_r1.currentPage.getCol2Fields())("formGroup", ctx_r1.editForm.controls["data"])("caseFields", ctx_r1.caseFields);
|
|
144
|
+
} }
|
|
145
|
+
function CaseEditPageComponent_form_10_Template(rf, ctx) { if (rf & 1) {
|
|
146
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
147
|
+
i0.ɵɵelementStart(0, "form", 22);
|
|
148
|
+
i0.ɵɵlistener("submit", function CaseEditPageComponent_form_10_Template_form_submit_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.submit()); });
|
|
149
|
+
i0.ɵɵelementStart(1, "fieldset", 23);
|
|
150
|
+
i0.ɵɵelement(2, "legend", 24);
|
|
151
|
+
i0.ɵɵtemplate(3, CaseEditPageComponent_form_10_ccd_case_edit_form_3_Template, 1, 4, "ccd-case-edit-form", 25)(4, CaseEditPageComponent_form_10_div_4_Template, 5, 6, "div", 26);
|
|
152
|
+
i0.ɵɵelementEnd();
|
|
153
|
+
i0.ɵɵelementStart(5, "div", 27)(6, "button", 28);
|
|
154
|
+
i0.ɵɵpipe(7, "async");
|
|
155
|
+
i0.ɵɵlistener("click", function CaseEditPageComponent_form_10_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toPreviousPage()); });
|
|
156
|
+
i0.ɵɵtext(8);
|
|
157
|
+
i0.ɵɵpipe(9, "rpxTranslate");
|
|
158
|
+
i0.ɵɵelementEnd();
|
|
159
|
+
i0.ɵɵelementStart(10, "button", 29);
|
|
160
|
+
i0.ɵɵtext(11);
|
|
161
|
+
i0.ɵɵpipe(12, "rpxTranslate");
|
|
162
|
+
i0.ɵɵelementEnd()();
|
|
163
|
+
i0.ɵɵelementStart(13, "p", 30)(14, "a", 31);
|
|
164
|
+
i0.ɵɵlistener("click", function CaseEditPageComponent_form_10_Template_a_click_14_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.cancel()); });
|
|
165
|
+
i0.ɵɵtext(15);
|
|
166
|
+
i0.ɵɵpipe(16, "rpxTranslate");
|
|
167
|
+
i0.ɵɵelementEnd()()();
|
|
168
|
+
} if (rf & 2) {
|
|
169
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
170
|
+
i0.ɵɵproperty("formGroup", ctx_r1.editForm);
|
|
171
|
+
i0.ɵɵadvance(3);
|
|
172
|
+
i0.ɵɵproperty("ngIf", !ctx_r1.currentPage.isMultiColumn());
|
|
173
|
+
i0.ɵɵadvance();
|
|
174
|
+
i0.ɵɵproperty("ngIf", ctx_r1.currentPage.isMultiColumn());
|
|
175
|
+
i0.ɵɵadvance(2);
|
|
176
|
+
i0.ɵɵproperty("disabled", !i0.ɵɵpipeBind1(7, 8, ctx_r1.hasPreviousPage$));
|
|
177
|
+
i0.ɵɵadvance(2);
|
|
178
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 10, "Previous"), " ");
|
|
179
|
+
i0.ɵɵadvance(2);
|
|
180
|
+
i0.ɵɵproperty("disabled", ctx_r1.submitting());
|
|
181
|
+
i0.ɵɵadvance();
|
|
182
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 12, ctx_r1.triggerText));
|
|
183
|
+
i0.ɵɵadvance(4);
|
|
184
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(16, 14, ctx_r1.getCancelText()));
|
|
185
|
+
} }
|
|
186
|
+
function CaseEditPageComponent_ccd_case_event_completion_11_Template(rf, ctx) { if (rf & 1) {
|
|
187
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
188
|
+
i0.ɵɵelementStart(0, "ccd-case-event-completion", 38);
|
|
189
|
+
i0.ɵɵlistener("eventCanBeCompleted", function CaseEditPageComponent_ccd_case_event_completion_11_Template_ccd_case_event_completion_eventCanBeCompleted_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onEventCanBeCompleted($event)); });
|
|
190
|
+
i0.ɵɵelementEnd();
|
|
191
|
+
} if (rf & 2) {
|
|
192
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
193
|
+
i0.ɵɵproperty("eventCompletionParams", ctx_r1.caseEdit.eventCompletionParams);
|
|
194
|
+
} }
|
|
195
|
+
export class CaseEditPageComponent {
|
|
196
|
+
caseEdit;
|
|
197
|
+
route;
|
|
198
|
+
formValueService;
|
|
199
|
+
formErrorService;
|
|
200
|
+
cdRef;
|
|
201
|
+
pageValidationService;
|
|
202
|
+
dialog;
|
|
203
|
+
caseFieldService;
|
|
204
|
+
caseEditDataService;
|
|
205
|
+
loadingService;
|
|
206
|
+
validPageListCaseFieldsService;
|
|
207
|
+
addressService;
|
|
208
|
+
static RESUMED_FORM_DISCARD = 'RESUMED_FORM_DISCARD';
|
|
209
|
+
static NEW_FORM_DISCARD = 'NEW_FORM_DISCARD';
|
|
210
|
+
static NEW_FORM_SAVE = 'NEW_FORM_CHANGED_SAVE';
|
|
211
|
+
static RESUMED_FORM_SAVE = 'RESUMED_FORM_SAVE';
|
|
212
|
+
static TRIGGER_TEXT_START = 'Continue';
|
|
213
|
+
static TRIGGER_TEXT_SAVE = 'Save and continue';
|
|
214
|
+
static TRIGGER_TEXT_CONTINUE = 'Ignore Warning and Continue';
|
|
215
|
+
eventTrigger;
|
|
216
|
+
editForm;
|
|
217
|
+
wizard;
|
|
218
|
+
currentPage;
|
|
219
|
+
dialogConfig;
|
|
220
|
+
triggerTextStart = CaseEditPageComponent.TRIGGER_TEXT_START;
|
|
221
|
+
triggerTextIgnoreWarnings = CaseEditPageComponent.TRIGGER_TEXT_CONTINUE;
|
|
222
|
+
triggerText;
|
|
223
|
+
formValuesChanged = false;
|
|
224
|
+
pageChangeSubject = new Subject();
|
|
225
|
+
caseFields;
|
|
226
|
+
failingCaseFields;
|
|
227
|
+
validationErrors = [];
|
|
228
|
+
hasPreviousPage$ = new BehaviorSubject(false);
|
|
229
|
+
callbackErrorsSubject = new Subject();
|
|
230
|
+
isLinkedCasesJourneyAtFinalStep;
|
|
231
|
+
routeParamsSub;
|
|
232
|
+
caseEditFormSub;
|
|
233
|
+
caseIsLinkedCasesJourneyAtFinalStepSub;
|
|
234
|
+
caseTriggerSubmitEventSub;
|
|
235
|
+
validateSub;
|
|
236
|
+
dialogRefAfterClosedSub;
|
|
237
|
+
saveDraftSub;
|
|
238
|
+
caseFormValidationErrorsSub;
|
|
239
|
+
static scrollToTop() {
|
|
240
|
+
window.scrollTo(0, 0);
|
|
241
|
+
}
|
|
242
|
+
static setFocusToTop() {
|
|
243
|
+
const topContainer = document.getElementById('top');
|
|
244
|
+
if (topContainer) {
|
|
245
|
+
topContainer.focus();
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService, addressService) {
|
|
249
|
+
this.caseEdit = caseEdit;
|
|
250
|
+
this.route = route;
|
|
251
|
+
this.formValueService = formValueService;
|
|
252
|
+
this.formErrorService = formErrorService;
|
|
253
|
+
this.cdRef = cdRef;
|
|
254
|
+
this.pageValidationService = pageValidationService;
|
|
255
|
+
this.dialog = dialog;
|
|
256
|
+
this.caseFieldService = caseFieldService;
|
|
257
|
+
this.caseEditDataService = caseEditDataService;
|
|
258
|
+
this.loadingService = loadingService;
|
|
259
|
+
this.validPageListCaseFieldsService = validPageListCaseFieldsService;
|
|
260
|
+
this.addressService = addressService;
|
|
261
|
+
}
|
|
262
|
+
ngOnInit() {
|
|
263
|
+
initDialog();
|
|
264
|
+
this.eventTrigger = this.caseEdit.eventTrigger;
|
|
265
|
+
this.editForm = this.caseEdit.form;
|
|
266
|
+
this.wizard = this.caseEdit.wizard;
|
|
267
|
+
this.caseFields = this.getCaseFields();
|
|
268
|
+
this.syncCaseEditDataService();
|
|
269
|
+
this.routeParamsSub = this.route.params
|
|
270
|
+
.subscribe(params => {
|
|
271
|
+
const pageId = params['page'];
|
|
272
|
+
/* istanbul ignore else */
|
|
273
|
+
if (!this.currentPage || pageId !== this.currentPage?.id) {
|
|
274
|
+
const page = this.caseEdit.getPage(pageId);
|
|
275
|
+
if (page) {
|
|
276
|
+
this.currentPage = page;
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
if (this.currentPage) {
|
|
280
|
+
return this.next();
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
return this.first();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
this.hasPreviousPage$.next(this.caseEdit.hasPrevious(this.currentPage?.id));
|
|
287
|
+
}
|
|
288
|
+
this.triggerText = this.getTriggerText();
|
|
289
|
+
});
|
|
290
|
+
CaseEditPageComponent.setFocusToTop();
|
|
291
|
+
this.caseEditFormSub = this.caseEditDataService.caseEditForm$.subscribe({
|
|
292
|
+
next: editForm => this.editForm = editForm
|
|
293
|
+
});
|
|
294
|
+
this.caseIsLinkedCasesJourneyAtFinalStepSub =
|
|
295
|
+
this.caseEditDataService.caseIsLinkedCasesJourneyAtFinalStep$.subscribe({
|
|
296
|
+
next: isLinkedCasesJourneyAtFinalStep => this.isLinkedCasesJourneyAtFinalStep = isLinkedCasesJourneyAtFinalStep
|
|
297
|
+
});
|
|
298
|
+
this.caseTriggerSubmitEventSub = this.caseEditDataService.caseTriggerSubmitEvent$.subscribe({
|
|
299
|
+
next: state => {
|
|
300
|
+
if (state) {
|
|
301
|
+
this.caseEditDataService.setTriggerSubmitEvent(false);
|
|
302
|
+
this.submit();
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
ngAfterViewChecked() {
|
|
308
|
+
this.cdRef.detectChanges();
|
|
309
|
+
}
|
|
310
|
+
ngOnDestroy() {
|
|
311
|
+
this.routeParamsSub?.unsubscribe();
|
|
312
|
+
this.caseEditFormSub?.unsubscribe();
|
|
313
|
+
this.caseIsLinkedCasesJourneyAtFinalStepSub?.unsubscribe();
|
|
314
|
+
this.caseTriggerSubmitEventSub?.unsubscribe();
|
|
315
|
+
this.validateSub?.unsubscribe();
|
|
316
|
+
this.dialogRefAfterClosedSub?.unsubscribe();
|
|
317
|
+
this.saveDraftSub?.unsubscribe();
|
|
318
|
+
this.caseFormValidationErrorsSub?.unsubscribe();
|
|
319
|
+
}
|
|
320
|
+
applyValuesChanged(valuesChanged) {
|
|
321
|
+
this.formValuesChanged = valuesChanged;
|
|
322
|
+
}
|
|
323
|
+
first() {
|
|
324
|
+
return this.caseEdit.first();
|
|
325
|
+
}
|
|
326
|
+
currentPageIsNotValid() {
|
|
327
|
+
this.failingCaseFields = this.pageValidationService.getInvalidFields(this.currentPage, this.editForm);
|
|
328
|
+
return this.failingCaseFields.length > 0 ||
|
|
329
|
+
(this.isLinkedCasesJourney() && !this.isLinkedCasesJourneyAtFinalStep);
|
|
330
|
+
}
|
|
331
|
+
isLinkedCasesJourney() {
|
|
332
|
+
return FieldsUtils.containsLinkedCasesCaseField(this.currentPage.case_fields);
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* caseEventData.event_data contains all the values from the previous pages so we set caseEventData.data = caseEventData.event_data
|
|
336
|
+
* This builds the form with data from the previous pages
|
|
337
|
+
* EUI-3732 - Breathing space data not persisted on Previous button click with ExpUI Demo
|
|
338
|
+
*/
|
|
339
|
+
toPreviousPage() {
|
|
340
|
+
this.caseEditDataService.clearFormValidationErrors();
|
|
341
|
+
const caseEventData = this.buildCaseEventData(true);
|
|
342
|
+
caseEventData.data = caseEventData.event_data;
|
|
343
|
+
this.updateFormData(caseEventData);
|
|
344
|
+
this.previous();
|
|
345
|
+
CaseEditPageComponent.setFocusToTop();
|
|
346
|
+
}
|
|
347
|
+
// Adding validation message to show it as Error Summary
|
|
348
|
+
generateErrorMessage(fields, container, path) {
|
|
349
|
+
const group = container || this.editForm.controls['data'];
|
|
350
|
+
let validErrorFieldFound = false;
|
|
351
|
+
let validationErrorAmount = this.validationErrors.length;
|
|
352
|
+
const failingFields = fields.filter(casefield => !this.caseFieldService.isReadOnly(casefield))
|
|
353
|
+
.filter(casefield => !this.pageValidationService.isHidden(casefield, this.editForm, path));
|
|
354
|
+
// note that thougn these checks are on getinvalidfields they are needed for sub field checks
|
|
355
|
+
failingFields
|
|
356
|
+
.forEach(casefield => {
|
|
357
|
+
let errorPresent = true;
|
|
358
|
+
validErrorFieldFound = true;
|
|
359
|
+
const fieldElement = FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])
|
|
360
|
+
? group.get(`${casefield.id}_judicialUserControl`)
|
|
361
|
+
: group.get(casefield.id);
|
|
362
|
+
if (fieldElement) {
|
|
363
|
+
const label = casefield.label || 'Field';
|
|
364
|
+
let id = casefield.id;
|
|
365
|
+
if (fieldElement['component'] && fieldElement['component'].parent) {
|
|
366
|
+
if (fieldElement['component'].idPrefix.indexOf(`_${id}_`) === -1) {
|
|
367
|
+
id = `${fieldElement['component'].idPrefix}${id}`;
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
id = `${fieldElement['component'].idPrefix}`;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
if (fieldElement.hasError('required')) {
|
|
374
|
+
if (casefield.id === 'AddressLine1') {
|
|
375
|
+
// EUI-1067 - Display more relevant error message to user and correctly navigate to the field
|
|
376
|
+
this.addressService.setMandatoryError(true);
|
|
377
|
+
this.caseEditDataService.addFormValidationError({ id: `${path}_${path}`, message: `An address is required` });
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is required`, label });
|
|
381
|
+
}
|
|
382
|
+
fieldElement.markAsDirty();
|
|
383
|
+
// For the JudicialUser field type, an error needs to be set on the component so that an error message
|
|
384
|
+
// can be displayed at field level
|
|
385
|
+
if (FieldsUtils.isCaseFieldOfType(casefield, ['JudicialUser'])) {
|
|
386
|
+
fieldElement['component'].errors = { required: true };
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
else if (fieldElement.hasError('pattern')) {
|
|
390
|
+
this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is not valid`, label });
|
|
391
|
+
fieldElement.markAsDirty();
|
|
392
|
+
}
|
|
393
|
+
else if (fieldElement.hasError('minlength')) {
|
|
394
|
+
this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% is below the minimum length`, label });
|
|
395
|
+
fieldElement.markAsDirty();
|
|
396
|
+
}
|
|
397
|
+
else if (fieldElement.hasError('maxlength')) {
|
|
398
|
+
this.caseEditDataService.addFormValidationError({ id, message: `%FIELDLABEL% exceeds the maximum length`, label });
|
|
399
|
+
fieldElement.markAsDirty();
|
|
400
|
+
}
|
|
401
|
+
else if (fieldElement.invalid) {
|
|
402
|
+
if (casefield.isComplex()) {
|
|
403
|
+
errorPresent = this.generateErrorMessage(casefield.field_type.complex_fields, fieldElement, id);
|
|
404
|
+
}
|
|
405
|
+
else if (casefield.isCollection() && casefield.field_type.collection_field_type.type === 'Complex') {
|
|
406
|
+
const fieldArray = fieldElement;
|
|
407
|
+
if (fieldArray['component'] && fieldArray['component']['collItems'] && fieldArray['component']['collItems'].length > 0) {
|
|
408
|
+
id = `${fieldArray['component']['collItems'][0].prefix}`;
|
|
409
|
+
}
|
|
410
|
+
fieldArray.controls.forEach((c) => {
|
|
411
|
+
errorPresent = this.generateErrorMessage(casefield.field_type.collection_field_type.complex_fields, c.get('value'), id);
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
else if (FieldsUtils.isCaseFieldOfType(casefield, ['FlagLauncher'])) {
|
|
415
|
+
this.validationErrors.push({
|
|
416
|
+
id,
|
|
417
|
+
message: FieldsUtils.getValidationErrorMessageForFlagLauncherCaseField(casefield)
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
else {
|
|
421
|
+
this.validationErrors.push({ id, message: `Select or fill the required ${casefield.label} field` });
|
|
422
|
+
fieldElement.markAsDirty();
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
else {
|
|
427
|
+
validErrorFieldFound = false;
|
|
428
|
+
}
|
|
429
|
+
if (!errorPresent && this.validationErrors.length === validationErrorAmount) {
|
|
430
|
+
// if no error messages have been added in internal field despite parent field failing
|
|
431
|
+
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` });
|
|
432
|
+
}
|
|
433
|
+
});
|
|
434
|
+
if (!validErrorFieldFound) {
|
|
435
|
+
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` })
|
|
436
|
+
: this.validationErrors.push({ id: null, message: `The field that is causing the error cannot be determined but there is an error present` });
|
|
437
|
+
}
|
|
438
|
+
else if (this.validationErrors.length === validationErrorAmount) {
|
|
439
|
+
// if no error messages have been generated
|
|
440
|
+
if (path) {
|
|
441
|
+
return false;
|
|
442
|
+
}
|
|
443
|
+
else {
|
|
444
|
+
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` });
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
CaseEditPageComponent.scrollToTop();
|
|
448
|
+
return true;
|
|
449
|
+
}
|
|
450
|
+
navigateToErrorElement(elementId) {
|
|
451
|
+
/* istanbul ignore else */
|
|
452
|
+
if (elementId) {
|
|
453
|
+
const htmlElement = document.getElementById(elementId);
|
|
454
|
+
/* istanbul ignore else */
|
|
455
|
+
if (htmlElement) {
|
|
456
|
+
htmlElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
457
|
+
htmlElement.focus();
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
submit() {
|
|
462
|
+
this.caseEditDataService.clearFormValidationErrors();
|
|
463
|
+
console.log('Page submit event fired!');
|
|
464
|
+
if (this.currentPageIsNotValid()) {
|
|
465
|
+
// The generateErrorMessage method filters out the hidden fields.
|
|
466
|
+
// The error message for LinkedCases journey will never get displayed because the
|
|
467
|
+
// LinkedCases is configured with ComponentLauncher field as visible and caseLinks field as hidden.
|
|
468
|
+
if (this.isLinkedCasesJourney()) {
|
|
469
|
+
this.validationErrors.push({ id: 'next-button', message: 'Please select Next to go to the next page' });
|
|
470
|
+
CaseEditPageComponent.scrollToTop();
|
|
471
|
+
}
|
|
472
|
+
else {
|
|
473
|
+
this.generateErrorMessage(this.failingCaseFields);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
if (!this.caseEdit.isSubmitting && !this.currentPageIsNotValid()) {
|
|
477
|
+
this.addressService.setMandatoryError(false);
|
|
478
|
+
console.log('Case Edit Error', this.caseEdit.error);
|
|
479
|
+
if (this.caseEdit.validPageList.findIndex(page => page.id === this.currentPage.id) === -1) {
|
|
480
|
+
this.caseEdit.validPageList.push(this.currentPage);
|
|
481
|
+
}
|
|
482
|
+
this.caseEdit.isSubmitting = true;
|
|
483
|
+
this.caseEdit.error = null;
|
|
484
|
+
const caseEventData = this.buildCaseEventData();
|
|
485
|
+
const loadingSpinnerToken = this.loadingService.register();
|
|
486
|
+
this.validateSub = this.caseEdit.validate(caseEventData, this.currentPage.id)
|
|
487
|
+
.pipe(finalize(() => {
|
|
488
|
+
this.loadingService.unregister(loadingSpinnerToken);
|
|
489
|
+
}))
|
|
490
|
+
.subscribe((jsonData) => {
|
|
491
|
+
/* istanbul ignore else */
|
|
492
|
+
if (jsonData) {
|
|
493
|
+
this.updateFormData(jsonData);
|
|
494
|
+
}
|
|
495
|
+
this.saveDraft();
|
|
496
|
+
this.next();
|
|
497
|
+
}, error => {
|
|
498
|
+
this.handleError(error);
|
|
499
|
+
});
|
|
500
|
+
CaseEditPageComponent.scrollToTop();
|
|
501
|
+
// Remove all JudicialUser FormControls with the ID suffix "_judicialUserControl" because these are not
|
|
502
|
+
// intended to be present in the Case Event data (they are added only for value selection and validation
|
|
503
|
+
// purposes)
|
|
504
|
+
this.removeAllJudicialUserFormControls(this.currentPage, this.editForm);
|
|
505
|
+
}
|
|
506
|
+
CaseEditPageComponent.setFocusToTop();
|
|
507
|
+
}
|
|
508
|
+
updateFormData(jsonData) {
|
|
509
|
+
for (const caseFieldId of Object.keys(jsonData.data)) {
|
|
510
|
+
/* istanbul ignore else */
|
|
511
|
+
if (this.pageWithFieldExists(caseFieldId)) {
|
|
512
|
+
this.updateEventTriggerCaseFields(caseFieldId, jsonData, this.caseEdit.eventTrigger);
|
|
513
|
+
this.updateFormControlsValue(this.editForm, caseFieldId, jsonData.data[caseFieldId]);
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
// we do the check, becasue the data comes from the external source
|
|
518
|
+
pageWithFieldExists(caseFieldId) {
|
|
519
|
+
return this.wizard.findWizardPage(caseFieldId);
|
|
520
|
+
}
|
|
521
|
+
updateEventTriggerCaseFields(caseFieldId, jsonData, eventTrigger) {
|
|
522
|
+
/* istanbul ignore else */
|
|
523
|
+
if (eventTrigger?.case_fields) {
|
|
524
|
+
eventTrigger.case_fields
|
|
525
|
+
.filter(element => element.id === caseFieldId)
|
|
526
|
+
.forEach(element => {
|
|
527
|
+
if (this.isAnObject(element.value)) {
|
|
528
|
+
const updatedJsonDataObject = this.updateJsonDataObject(caseFieldId, jsonData, element);
|
|
529
|
+
element.value = {
|
|
530
|
+
...element.value,
|
|
531
|
+
...updatedJsonDataObject,
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
else {
|
|
535
|
+
element.value = jsonData.data[caseFieldId];
|
|
536
|
+
}
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
updateJsonDataObject(caseFieldId, jsonData, element) {
|
|
541
|
+
return Object.keys(jsonData.data[caseFieldId]).reduce((acc, key) => {
|
|
542
|
+
const elementValue = element.value[key];
|
|
543
|
+
const jsonDataValue = jsonData.data[caseFieldId][key];
|
|
544
|
+
const hasElementGotValueProperty = this.isAnObject(elementValue) && elementValue.value !== undefined;
|
|
545
|
+
const jsonDataOrElementValue = jsonDataValue?.value !== null && jsonDataValue?.value !== undefined ? jsonDataValue : elementValue;
|
|
546
|
+
return {
|
|
547
|
+
...acc,
|
|
548
|
+
[`${key}`]: hasElementGotValueProperty ? jsonDataOrElementValue : jsonDataValue
|
|
549
|
+
};
|
|
550
|
+
}, {});
|
|
551
|
+
}
|
|
552
|
+
isAnObject(property) {
|
|
553
|
+
return typeof property === 'object' && !Array.isArray(property) && property !== null;
|
|
554
|
+
}
|
|
555
|
+
updateFormControlsValue(formGroup, caseFieldId, value) {
|
|
556
|
+
const theControl = formGroup.controls['data'].get(caseFieldId);
|
|
557
|
+
if (theControl && theControl['status'] !== 'DISABLED') {
|
|
558
|
+
if (Array.isArray(theControl.value) && Array.isArray(value)
|
|
559
|
+
&& theControl.value.length > value.length && theControl['caseField']
|
|
560
|
+
&& theControl['caseField']['display_context'] && theControl['caseField']['display_context'] === 'OPTIONAL'
|
|
561
|
+
&& theControl['caseField']['field_type'] && theControl['caseField']['field_type']['type'] === 'Collection') {
|
|
562
|
+
// do nothing
|
|
563
|
+
}
|
|
564
|
+
else {
|
|
565
|
+
theControl.patchValue(value);
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
callbackErrorsNotify(errorContext) {
|
|
570
|
+
this.caseEdit.ignoreWarning = errorContext.ignoreWarning;
|
|
571
|
+
this.triggerText = errorContext.triggerText;
|
|
572
|
+
}
|
|
573
|
+
next() {
|
|
574
|
+
if (this.canNavigateToSummaryPage()) {
|
|
575
|
+
this.caseEdit.isSubmitting = false;
|
|
576
|
+
}
|
|
577
|
+
this.resetErrors();
|
|
578
|
+
this.formValuesChanged = false;
|
|
579
|
+
this.pageChangeSubject.next(true);
|
|
580
|
+
return this.caseEdit.next(this.currentPage.id);
|
|
581
|
+
}
|
|
582
|
+
previous() {
|
|
583
|
+
this.resetErrors();
|
|
584
|
+
this.saveDraft();
|
|
585
|
+
this.formValuesChanged = false;
|
|
586
|
+
this.pageChangeSubject.next(true);
|
|
587
|
+
return this.caseEdit.previous(this.currentPage.id);
|
|
588
|
+
}
|
|
589
|
+
hasPrevious() {
|
|
590
|
+
return this.caseEdit.hasPrevious(this.currentPage.id);
|
|
591
|
+
}
|
|
592
|
+
cancel() {
|
|
593
|
+
if (this.eventTrigger.can_save_draft) {
|
|
594
|
+
if (this.formValuesChanged) {
|
|
595
|
+
const dialogRef = this.dialog.open(SaveOrDiscardDialogComponent, this.dialogConfig);
|
|
596
|
+
this.dialogRefAfterClosedSub = dialogRef.afterClosed().subscribe(result => {
|
|
597
|
+
if (result === 'Discard') {
|
|
598
|
+
this.discard();
|
|
599
|
+
}
|
|
600
|
+
else if (result === 'Save') {
|
|
601
|
+
const draftCaseEventData = this.formValueService.sanitise(this.editForm.value);
|
|
602
|
+
if (this.route.snapshot.queryParamMap.get(CaseEditComponent.ORIGIN_QUERY_PARAM) === 'viewDraft') {
|
|
603
|
+
this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.RESUMED_FORM_SAVE, data: draftCaseEventData });
|
|
604
|
+
}
|
|
605
|
+
else {
|
|
606
|
+
this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.NEW_FORM_SAVE, data: draftCaseEventData });
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
else {
|
|
612
|
+
this.discard();
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
else {
|
|
616
|
+
this.caseEdit.cancelled.emit();
|
|
617
|
+
}
|
|
618
|
+
this.caseEditDataService.clearFormValidationErrors();
|
|
619
|
+
}
|
|
620
|
+
submitting() {
|
|
621
|
+
return this.caseEdit.isSubmitting;
|
|
622
|
+
}
|
|
623
|
+
getCaseId() {
|
|
624
|
+
return (this.caseEdit.caseDetails ? this.caseEdit.caseDetails.case_id : '');
|
|
625
|
+
}
|
|
626
|
+
getCaseTitle() {
|
|
627
|
+
return (this.caseEdit.caseDetails && this.caseEdit.caseDetails.state &&
|
|
628
|
+
this.caseEdit.caseDetails.state.title_display ? this.caseEdit.caseDetails.state.title_display : '');
|
|
629
|
+
}
|
|
630
|
+
getCancelText() {
|
|
631
|
+
return this.eventTrigger.can_save_draft ? 'Return to case list' : 'Cancel';
|
|
632
|
+
}
|
|
633
|
+
canNavigateToSummaryPage() {
|
|
634
|
+
const nextPage = this.caseEdit.getNextPage({
|
|
635
|
+
currentPageId: this.currentPage?.id,
|
|
636
|
+
wizard: this.wizard,
|
|
637
|
+
eventTrigger: this.eventTrigger,
|
|
638
|
+
form: this.editForm
|
|
639
|
+
});
|
|
640
|
+
return this.eventTrigger.show_summary || !!nextPage;
|
|
641
|
+
}
|
|
642
|
+
getTriggerText() {
|
|
643
|
+
const textBasedOnCanSaveDraft = this.eventTrigger?.can_save_draft
|
|
644
|
+
? CaseEditPageComponent.TRIGGER_TEXT_SAVE
|
|
645
|
+
: CaseEditPageComponent.TRIGGER_TEXT_START;
|
|
646
|
+
return this.canNavigateToSummaryPage()
|
|
647
|
+
? textBasedOnCanSaveDraft
|
|
648
|
+
: 'Submit';
|
|
649
|
+
}
|
|
650
|
+
discard() {
|
|
651
|
+
if (this.route.snapshot.queryParamMap.get(CaseEditComponent.ORIGIN_QUERY_PARAM) === 'viewDraft') {
|
|
652
|
+
this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.RESUMED_FORM_DISCARD });
|
|
653
|
+
}
|
|
654
|
+
else {
|
|
655
|
+
this.caseEdit.cancelled.emit({ status: CaseEditPageComponent.NEW_FORM_DISCARD });
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
handleError(error) {
|
|
659
|
+
this.caseEdit.isSubmitting = false;
|
|
660
|
+
this.caseEdit.error = error;
|
|
661
|
+
this.caseEdit.callbackErrorsSubject.next(this.caseEdit.error);
|
|
662
|
+
this.callbackErrorsSubject.next(this.caseEdit.error);
|
|
663
|
+
/* istanbul ignore else */
|
|
664
|
+
if (this.caseEdit.error.details) {
|
|
665
|
+
this.formErrorService
|
|
666
|
+
.mapFieldErrors(this.caseEdit.error.details.field_errors, this.editForm?.controls?.['data'], 'validation');
|
|
667
|
+
}
|
|
668
|
+
console.log('handleError ', error);
|
|
669
|
+
}
|
|
670
|
+
resetErrors() {
|
|
671
|
+
this.caseEdit.error = null;
|
|
672
|
+
this.caseEdit.ignoreWarning = false;
|
|
673
|
+
this.triggerText = this.getTriggerText();
|
|
674
|
+
if (this.caseEdit.callbackErrorsSubject) {
|
|
675
|
+
this.caseEdit.callbackErrorsSubject.next(null);
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
saveDraft() {
|
|
679
|
+
if (this.eventTrigger.can_save_draft) {
|
|
680
|
+
const draftCaseEventData = this.formValueService.sanitise(this.editForm.value);
|
|
681
|
+
draftCaseEventData.event_token = this.eventTrigger.event_token;
|
|
682
|
+
draftCaseEventData.ignore_warning = this.caseEdit.ignoreWarning;
|
|
683
|
+
this.saveDraftSub = this.caseEdit.saveDraft(draftCaseEventData).subscribe((draft) => this.eventTrigger.case_id = DRAFT_PREFIX + draft.id, error => this.handleError(error));
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
getCaseFields() {
|
|
687
|
+
if (this.caseEdit.caseDetails) {
|
|
688
|
+
return FieldsUtils.getCaseFields(this.caseEdit.caseDetails);
|
|
689
|
+
}
|
|
690
|
+
return this.eventTrigger.case_fields;
|
|
691
|
+
}
|
|
692
|
+
getCaseFieldsFromCurrentAndPreviousPages() {
|
|
693
|
+
const result = [];
|
|
694
|
+
this.wizard.pages.forEach(page => {
|
|
695
|
+
if (page.order <= this.currentPage.order) {
|
|
696
|
+
page.case_fields.forEach(field => result.push(field));
|
|
697
|
+
}
|
|
698
|
+
});
|
|
699
|
+
return result;
|
|
700
|
+
}
|
|
701
|
+
buildCaseEventData(fromPreviousPage) {
|
|
702
|
+
const formValue = this.editForm.value;
|
|
703
|
+
// Get the CaseEventData for the current page.
|
|
704
|
+
const pageFields = this.currentPage.case_fields;
|
|
705
|
+
const pageEventData = this.getFilteredCaseEventData(pageFields, formValue, true);
|
|
706
|
+
// Get the CaseEventData for the entire form (all pages).
|
|
707
|
+
const allCaseFields = this.getCaseFieldsFromCurrentAndPreviousPages();
|
|
708
|
+
const formEventData = this.getFilteredCaseEventData(allCaseFields, formValue, false, true, fromPreviousPage);
|
|
709
|
+
// Now here's the key thing - the pageEventData has a property called `event_data` and
|
|
710
|
+
// we need THAT to be the value of the entire form: `formEventData.data`.
|
|
711
|
+
pageEventData.event_data = formEventData.data;
|
|
712
|
+
// Finalise the CaseEventData object.
|
|
713
|
+
pageEventData.event_token = this.eventTrigger.event_token;
|
|
714
|
+
pageEventData.ignore_warning = this.caseEdit.ignoreWarning;
|
|
715
|
+
// Finally, try to set up the case_reference.
|
|
716
|
+
if (this.caseEdit.caseDetails) {
|
|
717
|
+
pageEventData.case_reference = this.caseEdit.caseDetails.case_id;
|
|
718
|
+
}
|
|
719
|
+
// Return the now hopefully sane CaseEventData.
|
|
720
|
+
return pageEventData;
|
|
721
|
+
}
|
|
722
|
+
/**
|
|
723
|
+
* Abstracted this method from buildCaseEventData to remove duplication.
|
|
724
|
+
* @param caseFields The fields to filter the data by.
|
|
725
|
+
* @param formValue The original value of the form.
|
|
726
|
+
* @param clearEmpty Whether or not to clear out empty values.
|
|
727
|
+
* @param clearNonCase Whether or not to clear out fields that are not part of the case.
|
|
728
|
+
* @returns CaseEventData for the specified parameters.
|
|
729
|
+
*/
|
|
730
|
+
getFilteredCaseEventData(caseFields, formValue, clearEmpty = false, clearNonCase = false, fromPreviousPage = false) {
|
|
731
|
+
// Get the data for the fields specified.
|
|
732
|
+
const formFields = this.formValueService.filterCurrentPageFields(caseFields, formValue);
|
|
733
|
+
// Sort out the dynamic lists.
|
|
734
|
+
this.formValueService.sanitiseDynamicLists(caseFields, formFields);
|
|
735
|
+
// Get hold of the CaseEventData.
|
|
736
|
+
const caseEventData = this.formValueService.sanitise(formFields);
|
|
737
|
+
// delete fields which are not part of the case event journey wizard pages case fields
|
|
738
|
+
this.validPageListCaseFieldsService.deleteNonValidatedFields(this.caseEdit.validPageList, caseEventData.data, this.eventTrigger.case_fields, fromPreviousPage, this.editForm.controls['data'].value);
|
|
739
|
+
// Tidy it up before we return it.
|
|
740
|
+
this.formValueService.removeUnnecessaryFields(caseEventData.data, caseFields, clearEmpty, clearNonCase, fromPreviousPage, this.currentPage.case_fields);
|
|
741
|
+
return caseEventData;
|
|
742
|
+
}
|
|
743
|
+
syncCaseEditDataService() {
|
|
744
|
+
this.caseEditDataService.setCaseDetails(this.caseEdit.caseDetails);
|
|
745
|
+
this.caseEditDataService.setCaseEventTriggerName(this.eventTrigger.name);
|
|
746
|
+
this.caseEditDataService.setCaseTitle(this.getCaseTitle());
|
|
747
|
+
this.caseEditDataService.setCaseEditForm(this.editForm);
|
|
748
|
+
this.caseFormValidationErrorsSub = this.caseEditDataService.caseFormValidationErrors$.subscribe({
|
|
749
|
+
next: (validationErrors) => this.validationErrors = validationErrors
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
getRpxTranslatePipeArgs(fieldLabel) {
|
|
753
|
+
return fieldLabel ? ({ FIELDLABEL: fieldLabel }) : null;
|
|
754
|
+
}
|
|
755
|
+
onEventCanBeCompleted(eventCanBeCompleted) {
|
|
756
|
+
this.caseEdit.onEventCanBeCompleted({
|
|
757
|
+
eventTrigger: this.eventTrigger,
|
|
758
|
+
eventCanBeCompleted,
|
|
759
|
+
caseDetails: this.caseEdit.caseDetails,
|
|
760
|
+
form: this.editForm,
|
|
761
|
+
submit: this.caseEdit.submit,
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
removeAllJudicialUserFormControls(page, editForm) {
|
|
765
|
+
page.case_fields.forEach(caseField => {
|
|
766
|
+
if (FieldsUtils.isCaseFieldOfType(caseField, ['JudicialUser'])) {
|
|
767
|
+
editForm.controls['data'].removeControl(`${caseField.id}_judicialUserControl`);
|
|
768
|
+
}
|
|
769
|
+
});
|
|
770
|
+
}
|
|
771
|
+
static ɵfac = function CaseEditPageComponent_Factory(t) { return new (t || CaseEditPageComponent)(i0.ɵɵdirectiveInject(i1.CaseEditComponent), i0.ɵɵdirectiveInject(i2.ActivatedRoute), i0.ɵɵdirectiveInject(i3.FormValueService), i0.ɵɵdirectiveInject(i4.FormErrorService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i5.PageValidationService), i0.ɵɵdirectiveInject(i6.MatLegacyDialog), i0.ɵɵdirectiveInject(i7.CaseFieldService), i0.ɵɵdirectiveInject(i8.CaseEditDataService), i0.ɵɵdirectiveInject(i9.LoadingService), i0.ɵɵdirectiveInject(i10.ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(i9.AddressesService)); };
|
|
772
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditPageComponent, selectors: [["ccd-case-edit-page"]], decls: 12, vars: 11, consts: [["titleBlock", ""], ["idBlock", ""], [4, "ngIf"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], [3, "error"], [3, "callbackErrorsContext", "triggerTextContinue", "triggerTextIgnore", "callbackErrorsSubject"], [1, "width-50"], ["class", "form", 3, "formGroup", "submit", 4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], ["class", "govuk-heading-l", 4, "ngIf"], [1, "govuk-heading-l"], [1, "govuk-caption-l"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], ["class", "govuk-error-summary__body", 4, "ngFor", "ngForOf"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [1, "validation-error", 3, "click"], [1, "form", 3, "submit", "formGroup"], ["id", "fieldset-case-data"], [2, "display", "none"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged", 4, "ngIf"], ["class", "grid-row", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], ["id", "caseEditForm", 3, "valuesChanged", "fields", "formGroup", "caseFields", "pageChangeSubject"], [1, "grid-row"], [1, "column-two-thirds", "rightBorderSeparator"], ["id", "caseEditForm1", 3, "fields", "formGroup", "caseFields"], [1, "column-one-third"], ["id", "caseEditForm2", 3, "fields", "formGroup", "caseFields"], [3, "eventCanBeCompleted", "eventCompletionParams"]], template: function CaseEditPageComponent_Template(rf, ctx) { if (rf & 1) {
|
|
773
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
774
|
+
i0.ɵɵtemplate(0, CaseEditPageComponent_ng_container_0_Template, 3, 2, "ng-container", 2)(1, CaseEditPageComponent_div_1_Template, 1, 0, "div", 3)(2, CaseEditPageComponent_ng_template_2_Template, 2, 5, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(4, CaseEditPageComponent_ng_template_4_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(6, CaseEditPageComponent_div_6_Template, 5, 4, "div", 4);
|
|
775
|
+
i0.ɵɵelement(7, "ccd-case-edit-generic-errors", 5);
|
|
776
|
+
i0.ɵɵelementStart(8, "ccd-callback-errors", 6);
|
|
777
|
+
i0.ɵɵlistener("callbackErrorsContext", function CaseEditPageComponent_Template_ccd_callback_errors_callbackErrorsContext_8_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.callbackErrorsNotify($event)); });
|
|
778
|
+
i0.ɵɵelementEnd();
|
|
779
|
+
i0.ɵɵelementStart(9, "div", 7);
|
|
780
|
+
i0.ɵɵtemplate(10, CaseEditPageComponent_form_10_Template, 17, 16, "form", 8);
|
|
781
|
+
i0.ɵɵelementEnd();
|
|
782
|
+
i0.ɵɵtemplate(11, CaseEditPageComponent_ccd_case_event_completion_11_Template, 1, 1, "ccd-case-event-completion", 9);
|
|
783
|
+
} if (rf & 2) {
|
|
784
|
+
const titleBlock_r8 = i0.ɵɵreference(3);
|
|
785
|
+
const idBlock_r9 = i0.ɵɵreference(5);
|
|
786
|
+
i0.ɵɵproperty("ngIf", ctx.currentPage);
|
|
787
|
+
i0.ɵɵadvance();
|
|
788
|
+
i0.ɵɵproperty("ngIf", ctx.getCaseTitle())("ngIfThen", titleBlock_r8)("ngIfElse", idBlock_r9);
|
|
789
|
+
i0.ɵɵadvance(5);
|
|
790
|
+
i0.ɵɵproperty("ngIf", ctx.validationErrors.length > 0);
|
|
791
|
+
i0.ɵɵadvance();
|
|
792
|
+
i0.ɵɵproperty("error", ctx.caseEdit.error);
|
|
793
|
+
i0.ɵɵadvance();
|
|
794
|
+
i0.ɵɵproperty("triggerTextContinue", ctx.triggerTextStart)("triggerTextIgnore", ctx.triggerTextIgnoreWarnings)("callbackErrorsSubject", ctx.caseEdit.callbackErrorsSubject);
|
|
795
|
+
i0.ɵɵadvance(2);
|
|
796
|
+
i0.ɵɵproperty("ngIf", ctx.currentPage);
|
|
797
|
+
i0.ɵɵadvance();
|
|
798
|
+
i0.ɵɵproperty("ngIf", ctx.caseEdit.isEventCompletionChecksRequired);
|
|
799
|
+
} }, styles: [".rightBorderSeparator[_ngcontent-%COMP%]{border-right-width:4px;border-right-color:#ffcc02;border-right-style:solid}.validation-error[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:#d4351c}"] });
|
|
800
|
+
}
|
|
801
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditPageComponent, [{
|
|
802
|
+
type: Component,
|
|
803
|
+
args: [{ selector: 'ccd-case-edit-page', template: "<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']\"></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)\" 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)=\"submit()\">\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\" [disabled]=\"!(hasPreviousPage$ | async)\" (click)=\"toPreviousPage()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button class=\"button\" type=\"submit\" [disabled]=\"submitting()\">{{triggerText | rpxTranslate}}</button>\n </div>\n\n <p class=\"cancel\"><a (click)=\"cancel()\" href=\"javascript:void(0)\">{{getCancelText() | rpxTranslate}}</a></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", styles: [".rightBorderSeparator{border-right-width:4px;border-right-color:#ffcc02;border-right-style:solid}.validation-error{cursor:pointer;text-decoration:underline;color:#d4351c}\n"] }]
|
|
804
|
+
}], () => [{ type: i1.CaseEditComponent }, { type: i2.ActivatedRoute }, { type: i3.FormValueService }, { type: i4.FormErrorService }, { type: i0.ChangeDetectorRef }, { type: i5.PageValidationService }, { type: i6.MatLegacyDialog }, { type: i7.CaseFieldService }, { type: i8.CaseEditDataService }, { type: i9.LoadingService }, { type: i10.ValidPageListCaseFieldsService }, { type: i9.AddressesService }], null); })();
|
|
805
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditPageComponent, { className: "CaseEditPageComponent", filePath: "lib/shared/components/case-editor/case-edit-page/case-edit-page.component.ts", lineNumber: 31 }); })();
|
|
806
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LXBhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2Nhc2UtZWRpdC1wYWdlL2Nhc2UtZWRpdC1wYWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtcGFnZS9jYXNlLWVkaXQtcGFnZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVsRyxPQUFPLEVBQUUsZUFBZSxJQUFJLFNBQVMsRUFBMkMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQTJCLE1BQU0saUNBQWlDLENBQUM7QUFJL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDN0UsT0FBTyxF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Ozs7O1lBNUV6QyxzQ0FBaUI7WUFTMUIsY0FBc0I7WUFBaUIsQUFBakIsQUFBdEIseUNBQXNCLDJCQUFpQix3QkFBWTtZQVNuRCxlQUFpQztZQUFqQyxzREFBaUM7WUFlVCxjQUF3QjtZQUF4QiwwQ0FBd0I7WUFHcEQsY0FBd0M7WUFFeEMsQUFEQSxBQURBLDBEQUF3QyxvREFDTyw2REFDUztZQUlqRCxlQUFpQjtZQUFqQixzQ0FBaUI7WUFnQ0UsY0FBOEM7WUFBOUMsbUVBQThDOzs7aUZENUM3RCxxQkFBcUI7Y0FMakMsU0FBUzsyQkFDRSxvQkFBb0I7O2tGQUluQixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2csIE1hdExlZ2FjeURpYWxvZ0NvbmZpZyBhcyBNYXREaWFsb2dDb25maWd9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2FzZUVkaXREYXRhU2VydmljZSwgQ2FzZUVkaXRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2Nhc2UtZWRpdC1kYXRhJztcbmltcG9ydCB7IENhc2VFdmVudERhdGEgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vY2FzZS1ldmVudC1kYXRhLm1vZGVsJztcbmltcG9ydCB7IENhc2VFdmVudFRyaWdnZXIgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vY2FzZS12aWV3L2Nhc2UtZXZlbnQtdHJpZ2dlci5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBEUkFGVF9QUkVGSVggfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZHJhZnQubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc2VzU2VydmljZSwgTG9hZGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlRmllbGRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2FzZS1maWVsZHMvY2FzZS1maWVsZC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGRzJztcbmltcG9ydCB7IEZvcm1FcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtL2Zvcm0tZXJyb3Iuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtVmFsdWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS9mb3JtLXZhbHVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2F2ZU9yRGlzY2FyZERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3Mvc2F2ZS1vci1kaXNjYXJkLWRpYWxvZyc7XG5pbXBvcnQgeyBDYWxsYmFja0Vycm9yc0NvbnRleHQgfSBmcm9tICcuLi8uLi9lcnJvci9kb21haW4vZXJyb3ItY29udGV4dCc7XG5pbXBvcnQgeyBpbml0RGlhbG9nIH0gZnJvbSAnLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBDYXNlRWRpdENvbXBvbmVudCB9IGZyb20gJy4uL2Nhc2UtZWRpdC9jYXNlLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZFBhZ2UgfSBmcm9tICcuLi9kb21haW4vd2l6YXJkLXBhZ2UubW9kZWwnO1xuaW1wb3J0IHsgV2l6YXJkIH0gZnJvbSAnLi4vZG9tYWluL3dpemFyZC5tb2RlbCc7XG5pbXBvcnQgeyBQYWdlVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wYWdlLXZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy92YWxpZC1wYWdlLWxpc3QtY2FzZUZpZWxkcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZWRpdC1wYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQtcGFnZS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FzZS1lZGl0LXBhZ2Uuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0UGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRVNVTUVEX0ZPUk1fRElTQ0FSRCA9ICdSRVNVTUVEX0ZPUk1fRElTQ0FSRCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTkVXX0ZPUk1fRElTQ0FSRCA9ICdORVdfRk9STV9ESVNDQVJEJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBORVdfRk9STV9TQVZFID0gJ05FV19GT1JNX0NIQU5HRURfU0FWRSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVTVU1FRF9GT1JNX1NBVkUgPSAnUkVTVU1FRF9GT1JNX1NBVkUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSSUdHRVJfVEVYVF9TVEFSVCA9ICdDb250aW51ZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFJJR0dFUl9URVhUX1NBVkUgPSAnU2F2ZSBhbmQgY29udGludWUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRSSUdHRVJfVEVYVF9DT05USU5VRSA9ICdJZ25vcmUgV2FybmluZyBhbmQgQ29udGludWUnO1xuXG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG4gIHB1YmxpYyBlZGl0Rm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgd2l6YXJkOiBXaXphcmQ7XG4gIHB1YmxpYyBjdXJyZW50UGFnZTogV2l6YXJkUGFnZTtcbiAgcHVibGljIGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnO1xuICBwdWJsaWMgdHJpZ2dlclRleHRTdGFydCA9IENhc2VFZGl0UGFnZUNvbXBvbmVudC5UUklHR0VSX1RFWFRfU1RBUlQ7XG4gIHB1YmxpYyB0cmlnZ2VyVGV4dElnbm9yZVdhcm5pbmdzID0gQ2FzZUVkaXRQYWdlQ29tcG9uZW50LlRSSUdHRVJfVEVYVF9DT05USU5VRTtcbiAgcHVibGljIHRyaWdnZXJUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBmb3JtVmFsdWVzQ2hhbmdlZCA9IGZhbHNlO1xuICBwdWJsaWMgcGFnZUNoYW5nZVN1YmplY3Q6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW107XG4gIHB1YmxpYyBmYWlsaW5nQ2FzZUZpZWxkczogQ2FzZUZpZWxkW107XG4gIHB1YmxpYyB2YWxpZGF0aW9uRXJyb3JzOiBDYXNlRWRpdFZhbGlkYXRpb25FcnJvcltdID0gW107XG4gIHB1YmxpYyBoYXNQcmV2aW91c1BhZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIGNhbGxiYWNrRXJyb3JzU3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIGlzTGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXA6IGJvb2xlYW47XG4gIHB1YmxpYyByb3V0ZVBhcmFtc1N1YjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY2FzZUVkaXRGb3JtU3ViOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjYXNlSXNMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcFN1YjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY2FzZVRyaWdnZXJTdWJtaXRFdmVudFN1YjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgdmFsaWRhdGVTdWI6IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGRpYWxvZ1JlZkFmdGVyQ2xvc2VkU3ViOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBzYXZlRHJhZnRTdWI6IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGNhc2VGb3JtVmFsaWRhdGlvbkVycm9yc1N1YjogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgc3RhdGljIHNjcm9sbFRvVG9wKCk6IHZvaWQge1xuICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHNldEZvY3VzVG9Ub3AoKSB7XG4gICAgY29uc3QgdG9wQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvcCcpO1xuICAgIGlmICh0b3BDb250YWluZXIpIHtcbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjYXNlRWRpdDogQ2FzZUVkaXRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtVmFsdWVTZXJ2aWNlOiBGb3JtVmFsdWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUVycm9yU2VydmljZTogRm9ybUVycm9yU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VWYWxpZGF0aW9uU2VydmljZTogUGFnZVZhbGlkYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlRmllbGRTZXJ2aWNlOiBDYXNlRmllbGRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUVkaXREYXRhU2VydmljZTogQ2FzZUVkaXREYXRhU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkUGFnZUxpc3RDYXNlRmllbGRzU2VydmljZTogVmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWRkcmVzc1NlcnZpY2U6IEFkZHJlc3Nlc1NlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaW5pdERpYWxvZygpO1xuICAgIHRoaXMuZXZlbnRUcmlnZ2VyID0gdGhpcy5jYXNlRWRpdC5ldmVudFRyaWdnZXI7XG4gICAgdGhpcy5lZGl0Rm9ybSA9IHRoaXMuY2FzZUVkaXQuZm9ybTtcbiAgICB0aGlzLndpemFyZCA9IHRoaXMuY2FzZUVkaXQud2l6YXJkO1xuICAgIHRoaXMuY2FzZUZpZWxkcyA9IHRoaXMuZ2V0Q2FzZUZpZWxkcygpO1xuXG4gICAgdGhpcy5zeW5jQ2FzZUVkaXREYXRhU2VydmljZSgpO1xuXG4gICAgdGhpcy5yb3V0ZVBhcmFtc1N1YiA9IHRoaXMucm91dGUucGFyYW1zXG4gICAgICAuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICAgIGNvbnN0IHBhZ2VJZCA9IHBhcmFtc1sncGFnZSddO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudFBhZ2UgfHwgcGFnZUlkICE9PSB0aGlzLmN1cnJlbnRQYWdlPy5pZCkge1xuICAgICAgICAgIGNvbnN0IHBhZ2UgPSB0aGlzLmNhc2VFZGl0LmdldFBhZ2UocGFnZUlkKTtcbiAgICAgICAgICBpZiAocGFnZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSA9IHBhZ2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLm5leHQoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmZpcnN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuaGFzUHJldmlvdXNQYWdlJC5uZXh0KHRoaXMuY2FzZUVkaXQuaGFzUHJldmlvdXModGhpcy5jdXJyZW50UGFnZT8uaWQpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRyaWdnZXJUZXh0ID0gdGhpcy5nZXRUcmlnZ2VyVGV4dCgpO1xuICAgICAgfSk7XG4gICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LnNldEZvY3VzVG9Ub3AoKTtcbiAgICB0aGlzLmNhc2VFZGl0Rm9ybVN1YiA9IHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5jYXNlRWRpdEZvcm0kLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBlZGl0Rm9ybSA9PiB0aGlzLmVkaXRGb3JtID0gZWRpdEZvcm1cbiAgICB9KTtcbiAgICB0aGlzLmNhc2VJc0xpbmtlZENhc2VzSm91cm5leUF0RmluYWxTdGVwU3ViID1cbiAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5jYXNlSXNMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcCQuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogaXNMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcCA9PiB0aGlzLmlzTGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXAgPSBpc0xpbmtlZENhc2VzSm91cm5leUF0RmluYWxTdGVwXG4gICAgICB9KTtcbiAgICB0aGlzLmNhc2VUcmlnZ2VyU3VibWl0RXZlbnRTdWIgPSB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2FzZVRyaWdnZXJTdWJtaXRFdmVudCQuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IHN0YXRlID0+IHtcbiAgICAgICAgaWYgKHN0YXRlKSB7XG4gICAgICAgICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLnNldFRyaWdnZXJTdWJtaXRFdmVudChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zdWJtaXQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlUGFyYW1zU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2FzZUVkaXRGb3JtU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2FzZUlzTGlua2VkQ2FzZXNKb3VybmV5QXRGaW5hbFN0ZXBTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jYXNlVHJpZ2dlclN1Ym1pdEV2ZW50U3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMudmFsaWRhdGVTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5kaWFsb2dSZWZBZnRlckNsb3NlZFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNhdmVEcmFmdFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNhc2VGb3JtVmFsaWRhdGlvbkVycm9yc1N1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBseVZhbHVlc0NoYW5nZWQodmFsdWVzQ2hhbmdlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZm9ybVZhbHVlc0NoYW5nZWQgPSB2YWx1ZXNDaGFuZ2VkO1xuICB9XG5cbiAgcHVibGljIGZpcnN0KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VFZGl0LmZpcnN0KCk7XG4gIH1cblxuICBwdWJsaWMgY3VycmVudFBhZ2VJc05vdFZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuZmFpbGluZ0Nhc2VGaWVsZHMgPSB0aGlzLnBhZ2VWYWxpZGF0aW9uU2VydmljZS5nZXRJbnZhbGlkRmllbGRzKHRoaXMuY3VycmVudFBhZ2UsIHRoaXMuZWRpdEZvcm0pO1xuICAgIHJldHVybiB0aGlzLmZhaWxpbmdDYXNlRmllbGRzLmxlbmd0aCA+IDAgfHxcbiAgICAgICh0aGlzLmlzTGlua2VkQ2FzZXNKb3VybmV5KCkgJiYgIXRoaXMuaXNMaW5rZWRDYXNlc0pvdXJuZXlBdEZpbmFsU3RlcCk7XG4gIH1cblxuICBwdWJsaWMgaXNMaW5rZWRDYXNlc0pvdXJuZXkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZpZWxkc1V0aWxzLmNvbnRhaW5zTGlua2VkQ2FzZXNDYXNlRmllbGQodGhpcy5jdXJyZW50UGFnZS5jYXNlX2ZpZWxkcyk7XG4gIH1cblxuICAvKipcbiAgICogY2FzZUV2ZW50RGF0YS5ldmVudF9kYXRhIGNvbnRhaW5zIGFsbCB0aGUgdmFsdWVzIGZyb20gdGhlIHByZXZpb3VzIHBhZ2VzIHNvIHdlIHNldCBjYXNlRXZlbnREYXRhLmRhdGEgPSBjYXNlRXZlbnREYXRhLmV2ZW50X2RhdGFcbiAgICogVGhpcyBidWlsZHMgdGhlIGZvcm0gd2l0aCBkYXRhIGZyb20gdGhlIHByZXZpb3VzIHBhZ2VzXG4gICAqIEVVSS0zNzMyIC0gQnJlYXRoaW5nIHNwYWNlIGRhdGEgbm90IHBlcnNpc3RlZCBvbiBQcmV2aW91cyBidXR0b24gY2xpY2sgd2l0aCBFeHBVSSBEZW1vXG4gICAqL1xuICBwdWJsaWMgdG9QcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNsZWFyRm9ybVZhbGlkYXRpb25FcnJvcnMoKTtcblxuICAgIGNvbnN0IGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEgPSB0aGlzLmJ1aWxkQ2FzZUV2ZW50RGF0YSh0cnVlKTtcbiAgICBjYXNlRXZlbnREYXRhLmRhdGEgPSBjYXNlRXZlbnREYXRhLmV2ZW50X2RhdGE7XG4gICAgdGhpcy51cGRhdGVGb3JtRGF0YShjYXNlRXZlbnREYXRhKTtcbiAgICB0aGlzLnByZXZpb3VzKCk7XG4gICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LnNldEZvY3VzVG9Ub3AoKTtcbiAgfVxuXG4gIC8vIEFkZGluZyB2YWxpZGF0aW9uIG1lc3NhZ2UgdG8gc2hvdyBpdCBhcyBFcnJvciBTdW1tYXJ5XG4gIHB1YmxpYyBnZW5lcmF0ZUVycm9yTWVzc2FnZShmaWVsZHM6IENhc2VGaWVsZFtdLCBjb250YWluZXI/OiBBYnN0cmFjdENvbnRyb2wsIHBhdGg/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBncm91cDogQWJzdHJhY3RDb250cm9sID0gY29udGFpbmVyIHx8IHRoaXMuZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXTtcbiAgICBsZXQgdmFsaWRFcnJvckZpZWxkRm91bmQgPSBmYWxzZTtcbiAgICBsZXQgdmFsaWRhdGlvbkVycm9yQW1vdW50ID0gdGhpcy52YWxpZGF0aW9uRXJyb3JzLmxlbmd0aDtcbiAgICBjb25zdCBmYWlsaW5nRmllbGRzID0gZmllbGRzLmZpbHRlcihjYXNlZmllbGQgPT4gIXRoaXMuY2FzZUZpZWxkU2VydmljZS5pc1JlYWRPbmx5KGNhc2VmaWVsZCkpXG4gICAgLmZpbHRlcihjYXNlZmllbGQgPT4gIXRoaXMucGFnZVZhbGlkYXRpb25TZXJ2aWNlLmlzSGlkZGVuKGNhc2VmaWVsZCwgdGhpcy5lZGl0Rm9ybSwgcGF0aCkpO1xuICAgIC8vIG5vdGUgdGhhdCB0aG91Z24gdGhlc2UgY2hlY2tzIGFyZSBvbiBnZXRpbnZhbGlkZmllbGRzIHRoZXkgYXJlIG5lZWRlZCBmb3Igc3ViIGZpZWxkIGNoZWNrc1xuICAgIGZhaWxpbmdGaWVsZHNcbiAgICAgIC5mb3JFYWNoKGNhc2VmaWVsZCA9PiB7XG4gICAgICAgIGxldCBlcnJvclByZXNlbnQgPSB0cnVlO1xuICAgICAgICB2YWxpZEVycm9yRmllbGRGb3VuZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGZpZWxkRWxlbWVudCA9IEZpZWxkc1V0aWxzLmlzQ2FzZUZpZWxkT2ZUeXBlKGNhc2VmaWVsZCwgWydKdWRpY2lhbFVzZXInXSlcbiAgICAgICAgICA/IGdyb3VwLmdldChgJHtjYXNlZmllbGQuaWR9X2p1ZGljaWFsVXNlckNvbnRyb2xgKVxuICAgICAgICAgIDogZ3JvdXAuZ2V0KGNhc2VmaWVsZC5pZCk7XG4gICAgICAgIGlmIChmaWVsZEVsZW1lbnQpIHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IGNhc2VmaWVsZC5sYWJlbCB8fCAnRmllbGQnO1xuICAgICAgICAgIGxldCBpZCA9IGNhc2VmaWVsZC5pZDtcbiAgICAgICAgICBpZiAoZmllbGRFbGVtZW50Wydjb21wb25lbnQnXSAmJiBmaWVsZEVsZW1lbnRbJ2NvbXBvbmVudCddLnBhcmVudCkge1xuICAgICAgICAgICAgaWYgKGZpZWxkRWxlbWVudFsnY29tcG9uZW50J10uaWRQcmVmaXguaW5kZXhPZihgXyR7aWR9X2ApID09PSAtMSkge1xuICAgICAgICAgICAgICBpZCA9IGAke2ZpZWxkRWxlbWVudFsnY29tcG9uZW50J10uaWRQcmVmaXh9JHtpZH1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWQgPSBgJHtmaWVsZEVsZW1lbnRbJ2NvbXBvbmVudCddLmlkUHJlZml4fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaWVsZEVsZW1lbnQuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgICAgIGlmIChjYXNlZmllbGQuaWQgPT09ICdBZGRyZXNzTGluZTEnKSB7XG4gICAgICAgICAgICAgIC8vIEVVSS0xMDY3IC0gRGlzcGxheSBtb3JlIHJlbGV2YW50IGVycm9yIG1lc3NhZ2UgdG8gdXNlciBhbmQgY29ycmVjdGx5IG5hdmlnYXRlIHRvIHRoZSBmaWVsZFxuICAgICAgICAgICAgICB0aGlzLmFkZHJlc3NTZXJ2aWNlLnNldE1hbmRhdG9yeUVycm9yKHRydWUpO1xuICAgICAgICAgICAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuYWRkRm9ybVZhbGlkYXRpb25FcnJvcih7IGlkOiBgJHtwYXRofV8ke3BhdGh9YCwgbWVzc2FnZTogYEFuIGFkZHJlc3MgaXMgcmVxdWlyZWRgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmFkZEZvcm1WYWxpZGF0aW9uRXJyb3IoeyBpZCwgbWVzc2FnZTogYCVGSUVMRExBQkVMJSBpcyByZXF1aXJlZGAsIGxhYmVsIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGRFbGVtZW50Lm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAvLyBGb3IgdGhlIEp1ZGljaWFsVXNlciBmaWVsZCB0eXBlLCBhbiBlcnJvciBuZWVkcyB0byBiZSBzZXQgb24gdGhlIGNvbXBvbmVudCBzbyB0aGF0IGFuIGVycm9yIG1lc3NhZ2VcbiAgICAgICAgICAgIC8vIGNhbiBiZSBkaXNwbGF5ZWQgYXQgZmllbGQgbGV2ZWxcbiAgICAgICAgICAgIGlmIChGaWVsZHNVdGlscy5pc0Nhc2VGaWVsZE9mVHlwZShjYXNlZmllbGQsIFsnSnVkaWNpYWxVc2VyJ10pKSB7XG4gICAgICAgICAgICAgIGZpZWxkRWxlbWVudFsnY29tcG9uZW50J10uZXJyb3JzID0geyByZXF1aXJlZDogdHJ1ZSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGRFbGVtZW50Lmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgICAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5hZGRGb3JtVmFsaWRhdGlvbkVycm9yKHsgaWQsIG1lc3NhZ2U6IGAlRklFTERMQUJFTCUgaXMgbm90IHZhbGlkYCwgbGFiZWwgfSk7XG4gICAgICAgICAgICBmaWVsZEVsZW1lbnQubWFya0FzRGlydHkoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkRWxlbWVudC5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcbiAgICAgICAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5hZGRGb3JtVmFsaWRhdGlvbkVycm9yKHsgaWQsIG1lc3NhZ2U6IGAlRklFTERMQUJFTCUgaXMgYmVsb3cgdGhlIG1pbmltdW0gbGVuZ3RoYCwgbGFiZWwgfSk7XG4gICAgICAgICAgICBmaWVsZEVsZW1lbnQubWFya0FzRGlydHkoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGZpZWxkRWxlbWVudC5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcbiAgICAgICAgICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5hZGRGb3JtVmFsaWRhdGlvbkVycm9yKHsgaWQsIG1lc3NhZ2U6IGAlRklFTERMQUJFTCUgZXhjZWVkcyB0aGUgbWF4aW11bSBsZW5ndGhgLCBsYWJlbCB9KTtcbiAgICAgICAgICAgIGZpZWxkRWxlbWVudC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGRFbGVtZW50LmludmFsaWQpIHtcbiAgICAgICAgICAgIGlmIChjYXNlZmllbGQuaXNDb21wbGV4KCkpIHtcbiAgICAgICAgICAgICAgZXJyb3JQcmVzZW50ID0gdGhpcy5nZW5lcmF0ZUVycm9yTWVzc2FnZShjYXNlZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcywgZmllbGRFbGVtZW50LCBpZCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNhc2VmaWVsZC5pc0NvbGxlY3Rpb24oKSAmJiBjYXNlZmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZpZWxkQXJyYXkgPSBmaWVsZEVsZW1lbnQgYXMgRm9ybUFycmF5O1xuICAgICAgICAgICAgICBpZiAoZmllbGRBcnJheVsnY29tcG9uZW50J10gJiYgZmllbGRBcnJheVsnY29tcG9uZW50J11bJ2NvbGxJdGVtcyddICYmIGZpZWxkQXJyYXlbJ2NvbXBvbmVudCddWydjb2xsSXRlbXMnXS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgaWQgPSBgJHtmaWVsZEFycmF5Wydjb21wb25lbnQnXVsnY29sbEl0ZW1zJ11bMF0ucHJlZml4fWA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZmllbGRBcnJheS5jb250cm9scy5mb3JFYWNoKChjOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgICAgICAgICAgIGVycm9yUHJlc2VudCA9IHRoaXMuZ2VuZXJhdGVFcnJvck1lc3NhZ2UoY2FzZWZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBjLmdldCgndmFsdWUnKSwgaWQpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZWZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSkge1xuICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogRmllbGRzVXRpbHMuZ2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZUZvckZsYWdMYXVuY2hlckNhc2VGaWVsZChjYXNlZmllbGQpXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZCwgbWVzc2FnZTogYFNlbGVjdCBvciBmaWxsIHRoZSByZXF1aXJlZCAke2Nhc2VmaWVsZC5sYWJlbH0gZmllbGRgIH0pO1xuICAgICAgICAgICAgICBmaWVsZEVsZW1lbnQubWFya0FzRGlydHkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsaWRFcnJvckZpZWxkRm91bmQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWVycm9yUHJlc2VudCAmJiB0aGlzLnZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID09PSB2YWxpZGF0aW9uRXJyb3JBbW91bnQpIHtcbiAgICAgICAgICAvLyBpZiBubyBlcnJvciBtZXNzYWdlcyBoYXZlIGJlZW4gYWRkZWQgaW4gaW50ZXJuYWwgZmllbGQgZGVzcGl0ZSBwYXJlbnQgZmllbGQgZmFpbGluZ1xuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsgaWQ6IGNhc2VmaWVsZC5pZCwgbWVzc2FnZTogYEEgZmllbGQgdGhhdCBpcyBjYXVzaW5nIGFuIGVycm9yIGlzICR7Y2FzZWZpZWxkLmlkfSBidXQgaXQgaXMgbm90IHByb2R1Y2luZyBhIHZhbGlkIGVycm9yIG1lc3NhZ2UuIFBsZWFzZSBlbnN1cmUgYWxsIGRldGFpbHMgYXJlIGNvcnJlY3RgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBpZiAoIXZhbGlkRXJyb3JGaWVsZEZvdW5kKSB7XG4gICAgICBwYXRoID8gdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogcGF0aCwgbWVzc2FnZTogYFRoZXJlIGlzIGFuIGludGVybmFsIGlzc3VlIHdpdGggJHtwYXRofSBmaWVsZHMuIFRoZSBmaWVsZCB0aGF0IGlzIGNhdXNpbmcgdGhlIGVycm9yIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJ1dCB0aGVyZSBpcyBhbiBlcnJvciBwcmVzZW50YCB9KVxuICAgICAgIDogdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogbnVsbCwgbWVzc2FnZTogYFRoZSBmaWVsZCB0aGF0IGlzIGNhdXNpbmcgdGhlIGVycm9yIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJ1dCB0aGVyZSBpcyBhbiBlcnJvciBwcmVzZW50YCB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPT09IHZhbGlkYXRpb25FcnJvckFtb3VudCkge1xuICAgICAgLy8gaWYgbm8gZXJyb3IgbWVzc2FnZXMgaGF2ZSBiZWVuIGdlbmVyYXRlZFxuICAgICAgaWYgKHBhdGgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogbnVsbCwgbWVzc2FnZTogYFRoZSBmaWVsZCB0aGF0IGlzIGNhdXNpbmcgdGhlIGVycm9yIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJ1dCB0aGVyZSBpcyBhbiBlcnJvciBwcmVzZW50LiBQbGVhc2UgZmlsbCBpbiBtb3JlIG9mIHRoZSBmb3JtYCB9KVxuICAgICAgfVxuICAgIH1cbiAgICBDYXNlRWRpdFBhZ2VDb21wb25lbnQuc2Nyb2xsVG9Ub3AoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvRXJyb3JFbGVtZW50KGVsZW1lbnRJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoZWxlbWVudElkKSB7XG4gICAgICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGh0bWxFbGVtZW50KSB7XG4gICAgICAgIGh0bWxFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnLCBibG9jazogJ2NlbnRlcicgfSk7XG4gICAgICAgIGh0bWxFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2xlYXJGb3JtVmFsaWRhdGlvbkVycm9ycygpO1xuICAgIGNvbnNvbGUubG9nKCdQYWdlIHN1Ym1pdCBldmVudCBmaXJlZCEnKVxuICAgIGlmICh0aGlzLmN1cnJlbnRQYWdlSXNOb3RWYWxpZCgpKSB7XG4gICAgICAvLyBUaGUgZ2VuZXJhdGVFcnJvck1lc3NhZ2UgbWV0aG9kIGZpbHRlcnMgb3V0IHRoZSBoaWRkZW4gZmllbGRzLlxuICAgICAgLy8gVGhlIGVycm9yIG1lc3NhZ2UgZm9yIExpbmtlZENhc2VzIGpvdXJuZXkgd2lsbCBuZXZlciBnZXQgZGlzcGxheWVkIGJlY2F1c2UgdGhlXG4gICAgICAvLyBMaW5rZWRDYXNlcyBpcyBjb25maWd1cmVkIHdpdGggQ29tcG9uZW50TGF1bmNoZXIgZmllbGQgYXMgdmlzaWJsZSBhbmQgY2FzZUxpbmtzIGZpZWxkIGFzIGhpZGRlbi5cbiAgICAgIGlmICh0aGlzLmlzTGlua2VkQ2FzZXNKb3VybmV5KCkpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogJ25leHQtYnV0dG9uJywgbWVzc2FnZTogJ1BsZWFzZSBzZWxlY3QgTmV4dCB0byBnbyB0byB0aGUgbmV4dCBwYWdlJyB9KTtcbiAgICAgICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LnNjcm9sbFRvVG9wKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmdlbmVyYXRlRXJyb3JNZXNzYWdlKHRoaXMuZmFpbGluZ0Nhc2VGaWVsZHMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgJiYgIXRoaXMuY3VycmVudFBhZ2VJc05vdFZhbGlkKCkpIHtcbiAgICAgIHRoaXMuYWRkcmVzc1NlcnZpY2Uuc2V0TWFuZGF0b3J5RXJyb3IoZmFsc2UpO1xuICAgICAgY29uc29sZS5sb2coJ0Nhc2UgRWRpdCBFcnJvcicsIHRoaXMuY2FzZUVkaXQuZXJyb3IpO1xuICAgICAgaWYgKHRoaXMuY2FzZUVkaXQudmFsaWRQYWdlTGlzdC5maW5kSW5kZXgocGFnZT0+IHBhZ2UuaWQgPT09IHRoaXMuY3VycmVudFBhZ2UuaWQpID09PSAtMSkge1xuICAgICAgICB0aGlzLmNhc2VFZGl0LnZhbGlkUGFnZUxpc3QucHVzaCh0aGlzLmN1cnJlbnRQYWdlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2FzZUVkaXQuaXNTdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2FzZUVkaXQuZXJyb3IgPSBudWxsO1xuICAgICAgY29uc3QgY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSA9IHRoaXMuYnVpbGRDYXNlRXZlbnREYXRhKCk7XG4gICAgICBjb25zdCBsb2FkaW5nU3Bpbm5lclRva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgICAgdGhpcy52YWxpZGF0ZVN1YiA9IHRoaXMuY2FzZUVkaXQudmFsaWRhdGUoY2FzZUV2ZW50RGF0YSwgdGhpcy5jdXJyZW50UGFnZS5pZClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyKGxvYWRpbmdTcGlubmVyVG9rZW4pO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoanNvbkRhdGEpID0+IHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmIChqc29uRGF0YSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGb3JtRGF0YShqc29uRGF0YSBhcyBDYXNlRXZlbnREYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5zYXZlRHJhZnQoKTtcbiAgICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICB9KTtcbiAgICAgIENhc2VFZGl0UGFnZUNvbXBvbmVudC5zY3JvbGxUb1RvcCgpO1xuICAgICAgLy8gUmVtb3ZlIGFsbCBKdWRpY2lhbFVzZXIgRm9ybUNvbnRyb2xzIHdpdGggdGhlIElEIHN1ZmZpeCBcIl9qdWRpY2lhbFVzZXJDb250cm9sXCIgYmVjYXVzZSB0aGVzZSBhcmUgbm90XG4gICAgICAvLyBpbnRlbmRlZCB0byBiZSBwcmVzZW50IGluIHRoZSBDYXNlIEV2ZW50IGRhdGEgKHRoZXkgYXJlIGFkZGVkIG9ubHkgZm9yIHZhbHVlIHNlbGVjdGlvbiBhbmQgdmFsaWRhdGlvblxuICAgICAgLy8gcHVycG9zZXMpXG4gICAgICB0aGlzLnJlbW92ZUFsbEp1ZGljaWFsVXNlckZvcm1Db250cm9scyh0aGlzLmN1cnJlbnRQYWdlLCB0aGlzLmVkaXRGb3JtKTtcbiAgICB9XG4gICAgQ2FzZUVkaXRQYWdlQ29tcG9uZW50LnNldEZvY3VzVG9Ub3AoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGb3JtRGF0YShqc29uRGF0YTogQ2FzZUV2ZW50RGF0YSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgY2FzZUZpZWxkSWQgb2YgT2JqZWN0LmtleXMoanNvbkRhdGEuZGF0YSkpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAodGhpcy5wYWdlV2l0aEZpZWxkRXhpc3RzKGNhc2VGaWVsZElkKSkge1xuICAgICAgICB0aGlzLnVwZGF0ZUV2ZW50VHJpZ2dlckNhc2VGaWVsZHMoY2FzZUZpZWxkSWQsIGpzb25EYXRhLCB0aGlzLmNhc2VFZGl0LmV2ZW50VHJpZ2dlcik7XG4gICAgICAgIHRoaXMudXBkYXRlRm9ybUNvbnRyb2xzVmFsdWUodGhpcy5lZGl0Rm9ybSwgY2FzZUZpZWxkSWQsIGpzb25EYXRhLmRhdGFbY2FzZUZpZWxkSWRdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyB3ZSBkbyB0aGUgY2hlY2ssIGJlY2FzdWUgdGhlIGRhdGEgY29tZXMgZnJvbSB0aGUgZXh0ZXJuYWwgc291cmNlXG4gIHB1YmxpYyBwYWdlV2l0aEZpZWxkRXhpc3RzKGNhc2VGaWVsZElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy53aXphcmQuZmluZFdpemFyZFBhZ2UoY2FzZUZpZWxkSWQpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUV2ZW50VHJpZ2dlckNhc2VGaWVsZHMoY2FzZUZpZWxkSWQ6IHN0cmluZywganNvbkRhdGE6IENhc2VFdmVudERhdGEsIGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcikge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGV2ZW50VHJpZ2dlcj8uY2FzZV9maWVsZHMpIHtcbiAgICAgIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkc1xuICAgICAgICAuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5pZCA9PT0gY2FzZUZpZWxkSWQpXG4gICAgICAgIC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlzQW5PYmplY3QoZWxlbWVudC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRKc29uRGF0YU9iamVjdCA9IHRoaXMudXBkYXRlSnNvbkRhdGFPYmplY3QoY2FzZUZpZWxkSWQsIGpzb25EYXRhLCBlbGVtZW50KTtcblxuICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IHtcbiAgICAgICAgICAgICAgLi4uZWxlbWVudC52YWx1ZSxcbiAgICAgICAgICAgICAgLi4udXBkYXRlZEpzb25EYXRhT2JqZWN0LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWxlbWVudC52YWx1ZSA9IGpzb25EYXRhLmRhdGFbY2FzZUZpZWxkSWRdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVKc29uRGF0YU9iamVjdChjYXNlRmllbGRJZDogc3RyaW5nLCBqc29uRGF0YTogQ2FzZUV2ZW50RGF0YSwgZWxlbWVudDogQ2FzZUZpZWxkKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhqc29uRGF0YS5kYXRhW2Nhc2VGaWVsZElkXSkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudFZhbHVlID0gZWxlbWVudC52YWx1ZVtrZXldO1xuICAgICAgY29uc3QganNvbkRhdGFWYWx1ZSA9IGpzb25EYXRhLmRhdGFbY2FzZUZpZWxkSWRdW2tleV07XG4gICAgICBjb25zdCBoYXNFbGVtZW50R290VmFsdWVQcm9wZXJ0eSA9IHRoaXMuaXNBbk9iamVjdChlbGVtZW50VmFsdWUpICYmIGVsZW1lbnRWYWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkO1xuICAgICAgY29uc3QganNvbkRhdGFPckVsZW1lbnRWYWx1ZSA9IGpzb25EYXRhVmFsdWU/LnZhbHVlICE9PSBudWxsICYmIGpzb25EYXRhVmFsdWU/LnZhbHVlICE9PSB1bmRlZmluZWQgPyBqc29uRGF0YVZhbHVlIDogZWxlbWVudFZhbHVlO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5hY2MsXG4gICAgICAgIFtgJHtrZXl9YF06IGhhc0VsZW1lbnRHb3RWYWx1ZVByb3BlcnR5ID8ganNvbkRhdGFPckVsZW1lbnRWYWx1ZSA6IGpzb25EYXRhVmFsdWVcbiAgICAgIH07XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FuT2JqZWN0KHByb3BlcnR5OiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBwcm9wZXJ0eSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkocHJvcGVydHkpICYmIHByb3BlcnR5ICE9PSBudWxsO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZvcm1Db250cm9sc1ZhbHVlKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjYXNlRmllbGRJZDogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdGhlQ29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1snZGF0YSddLmdldChjYXNlRmllbGRJZCk7XG4gICAgaWYgKHRoZUNvbnRyb2wgJiYgdGhlQ29udHJvbFsnc3RhdHVzJ10gIT09ICdESVNBQkxFRCcpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoZUNvbnRyb2wudmFsdWUpICYmIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gICAgICAgICYmIHRoZUNvbnRyb2wudmFsdWUubGVuZ3RoID4gdmFsdWUubGVuZ3RoICYmIHRoZUNvbnRyb2xbJ2Nhc2VGaWVsZCddXG4gICAgICAgICYmIHRoZUNvbnRyb2xbJ2Nhc2VGaWVsZCddWydkaXNwbGF5X2NvbnRleHQnXSAmJiB0aGVDb250cm9sWydjYXNlRmllbGQnXVsnZGlzcGxheV9jb250ZXh0J10gPT09ICdPUFRJT05BTCdcbiAgICAgICAgJiYgdGhlQ29udHJvbFsnY2FzZUZpZWxkJ11bJ2ZpZWxkX3R5cGUnXSAmJiB0aGVDb250cm9sWydjYXNlRmllbGQnXVsnZmllbGRfdHlwZSddWyd0eXBlJ10gPT09ICdDb2xsZWN0aW9uJykge1xuICAgICAgICAvLyBkbyBub3RoaW5nXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGVDb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc05vdGlmeShlcnJvckNvbnRleHQ6IENhbGxiYWNrRXJyb3JzQ29udGV4dCkge1xuICAgIHRoaXMuY2FzZUVkaXQuaWdub3JlV2FybmluZyA9IGVycm9yQ29udGV4dC5pZ25vcmVXYXJuaW5nO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSBlcnJvckNvbnRleHQudHJpZ2dlclRleHQ7XG4gIH1cblxuICBwdWJsaWMgbmV4dCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodGhpcy5jYW5OYXZpZ2F0ZVRvU3VtbWFyeVBhZ2UoKSkge1xuICAgICAgdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5yZXNldEVycm9ycygpO1xuICAgIHRoaXMuZm9ybVZhbHVlc0NoYW5nZWQgPSBmYWxzZTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQubmV4dCh0aGlzLmN1cnJlbnRQYWdlLmlkKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aW91cygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLnJlc2V0RXJyb3JzKCk7XG4gICAgdGhpcy5zYXZlRHJhZnQoKTtcbiAgICB0aGlzLmZvcm1WYWx1ZXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgdGhpcy5wYWdlQ2hhbmdlU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIHJldHVybiB0aGlzLmNhc2VFZGl0LnByZXZpb3VzKHRoaXMuY3VycmVudFBhZ2UuaWQpO1xuICB9XG5cbiAgcHVibGljIGhhc1ByZXZpb3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VFZGl0Lmhhc1ByZXZpb3VzKHRoaXMuY3VycmVudFBhZ2UuaWQpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ldmVudFRyaWdnZXIuY2FuX3NhdmVfZHJhZnQpIHtcbiAgICAgIGlmICh0aGlzLmZvcm1WYWx1ZXNDaGFuZ2VkKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oU2F2ZU9yRGlzY2FyZERpYWxvZ0NvbXBvbmVudCwgdGhpcy5kaWFsb2dDb25maWcpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZkFmdGVyQ2xvc2VkU3ViID0gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCA9PT0gJ0Rpc2NhcmQnKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2NhcmQoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PT0gJ1NhdmUnKSB7XG4gICAgICAgICAgICBjb25zdCBkcmFmdENhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEgPSB0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2UodGhpcy5lZGl0Rm9ybS52YWx1ZSkgYXMgQ2FzZUV2ZW50RGF0YTtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KENhc2VFZGl0Q29tcG9uZW50Lk9SSUdJTl9RVUVSWV9QQVJBTSkgPT09ICd2aWV3RHJhZnQnKSB7XG4gICAgICAgICAgICAgIHRoaXMuY2FzZUVkaXQuY2FuY2VsbGVkLmVtaXQoeyBzdGF0dXM6IENhc2VFZGl0UGFnZUNvbXBvbmVudC5SRVNVTUVEX0ZPUk1fU0FWRSwgZGF0YTogZHJhZnRDYXNlRXZlbnREYXRhIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5jYXNlRWRpdC5jYW5jZWxsZWQuZW1pdCh7IHN0YXR1czogQ2FzZUVkaXRQYWdlQ29tcG9uZW50Lk5FV19GT1JNX1NBVkUsIGRhdGE6IGRyYWZ0Q2FzZUV2ZW50RGF0YSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5kaXNjYXJkKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZUVkaXQuY2FuY2VsbGVkLmVtaXQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2xlYXJGb3JtVmFsaWRhdGlvbkVycm9ycygpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdHRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQuaXNTdWJtaXR0aW5nO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyA/IHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMuY2FzZV9pZCA6ICcnKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMgJiYgdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZSAmJlxuICAgICAgdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZS50aXRsZV9kaXNwbGF5ID8gdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZS50aXRsZV9kaXNwbGF5IDogJycpO1xuICB9XG5cbiAgcHVibGljIGdldENhbmNlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ldmVudFRyaWdnZXIuY2FuX3NhdmVfZHJhZnQgPyAnUmV0dXJuIHRvIGNhc2UgbGlzdCcgOiAnQ2FuY2VsJztcbiAgfVxuXG4gIHByaXZhdGUgY2FuTmF2aWdhdGVUb1N1bW1hcnlQYWdlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5jYXNlRWRpdC5nZXROZXh0UGFnZSh7XG4gICAgICBjdXJyZW50UGFnZUlkOiB0aGlzLmN1cnJlbnRQYWdlPy5pZCxcbiAgICAgIHdpemFyZDogdGhpcy53aXphcmQsXG4gICAgICBldmVudFRyaWdnZXI6IHRoaXMuZXZlbnRUcmlnZ2VyLFxuICAgICAgZm9ybTogdGhpcy5lZGl0Rm9ybVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfc3VtbWFyeSB8fCAhIW5leHRQYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUcmlnZ2VyVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRleHRCYXNlZE9uQ2FuU2F2ZURyYWZ0ID0gdGhpcy5ldmVudFRyaWdnZXI/LmNhbl9zYXZlX2RyYWZ0XG4gICAgICA/IENhc2VFZGl0UGFnZUNvbXBvbmVudC5UUklHR0VSX1RFWFRfU0FWRVxuICAgICAgOiBDYXNlRWRpdFBhZ2VDb21wb25lbnQuVFJJR0dFUl9URVhUX1NUQVJUO1xuXG4gICAgcmV0dXJuIHRoaXMuY2FuTmF2aWdhdGVUb1N1bW1hcnlQYWdlKClcbiAgICAgID8gdGV4dEJhc2VkT25DYW5TYXZlRHJhZnRcbiAgICAgIDogJ1N1Ym1pdCc7XG4gIH1cblxuICBwcml2YXRlIGRpc2NhcmQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNKSA9PT0gJ3ZpZXdEcmFmdCcpIHtcbiAgICAgIHRoaXMuY2FzZUVkaXQuY2FuY2VsbGVkLmVtaXQoeyBzdGF0dXM6IENhc2VFZGl0UGFnZUNvbXBvbmVudC5SRVNVTUVEX0ZPUk1fRElTQ0FSRCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXNlRWRpdC5jYW5jZWxsZWQuZW1pdCh7IHN0YXR1czogQ2FzZUVkaXRQYWdlQ29tcG9uZW50Lk5FV19GT1JNX0RJU0NBUkQgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnJvcikge1xuICAgIHRoaXMuY2FzZUVkaXQuaXNTdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgdGhpcy5jYXNlRWRpdC5lcnJvciA9IGVycm9yO1xuICAgIHRoaXMuY2FzZUVkaXQuY2FsbGJhY2tFcnJvcnNTdWJqZWN0Lm5leHQodGhpcy5jYXNlRWRpdC5lcnJvcik7XG4gICAgdGhpcy5jYWxsYmFja0Vycm9yc1N1YmplY3QubmV4dCh0aGlzLmNhc2VFZGl0LmVycm9yKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmNhc2VFZGl0LmVycm9yLmRldGFpbHMpIHtcbiAgICAgIHRoaXMuZm9ybUVycm9yU2VydmljZVxuICAgICAgICAubWFwRmllbGRFcnJvcnModGhpcy5jYXNlRWRpdC5lcnJvci5kZXRhaWxzLmZpZWxkX2Vycm9ycywgdGhpcy5lZGl0Rm9ybT8uY29udHJvbHM/LlsnZGF0YSddIGFzIEZvcm1Hcm91cCwgJ3ZhbGlkYXRpb24nKTtcbiAgICB9XG4gICAgY29uc29sZS5sb2coJ2hhbmRsZUVycm9yICcsIGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRFcnJvcnMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdC5lcnJvciA9IG51bGw7XG4gICAgdGhpcy5jYXNlRWRpdC5pZ25vcmVXYXJuaW5nID0gZmFsc2U7XG4gICAgdGhpcy50cmlnZ2VyVGV4dCA9IHRoaXMuZ2V0VHJpZ2dlclRleHQoKTtcbiAgICBpZiAodGhpcy5jYXNlRWRpdC5jYWxsYmFja0Vycm9yc1N1YmplY3QpIHtcbiAgICAgIHRoaXMuY2FzZUVkaXQuY2FsbGJhY2tFcnJvcnNTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzYXZlRHJhZnQoKSB7XG4gICAgaWYgKHRoaXMuZXZlbnRUcmlnZ2VyLmNhbl9zYXZlX2RyYWZ0KSB7XG4gICAgICBjb25zdCBkcmFmdENhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEgPSB0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2UodGhpcy5lZGl0Rm9ybS52YWx1ZSkgYXMgQ2FzZUV2ZW50RGF0YTtcbiAgICAgIGRyYWZ0Q2FzZUV2ZW50RGF0YS5ldmVudF90b2tlbiA9IHRoaXMuZXZlbnRUcmlnZ2VyLmV2ZW50X3Rva2VuO1xuICAgICAgZHJhZnRDYXNlRXZlbnREYXRhLmlnbm9yZV93YXJuaW5nID0gdGhpcy5jYXNlRWRpdC5pZ25vcmVXYXJuaW5nO1xuICAgICAgdGhpcy5zYXZlRHJhZnRTdWIgPSB0aGlzLmNhc2VFZGl0LnNhdmVEcmFmdChkcmFmdENhc2VFdmVudERhdGEpLnN1YnNjcmliZShcbiAgICAgICAgKGRyYWZ0KSA9PiB0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2lkID0gRFJBRlRfUFJFRklYICsgZHJhZnQuaWQsIGVycm9yID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZUZpZWxkcygpOiBDYXNlRmllbGRbXSB7XG4gICAgaWYgKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMpIHtcbiAgICAgIHJldHVybiBGaWVsZHNVdGlscy5nZXRDYXNlRmllbGRzKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZUZpZWxkc0Zyb21DdXJyZW50QW5kUHJldmlvdXNQYWdlcygpOiBDYXNlRmllbGRbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBDYXNlRmllbGRbXSA9IFtdO1xuICAgIHRoaXMud2l6YXJkLnBhZ2VzLmZvckVhY2gocGFnZSA9PiB7XG4gICAgICBpZiAocGFnZS5vcmRlciA8PSB0aGlzLmN1cnJlbnRQYWdlLm9yZGVyKSB7XG4gICAgICAgIHBhZ2UuY2FzZV9maWVsZHMuZm9yRWFjaChmaWVsZCA9PiByZXN1bHQucHVzaChmaWVsZCkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRDYXNlRXZlbnREYXRhKGZyb21QcmV2aW91c1BhZ2U/OiBib29sZWFuKTogQ2FzZUV2ZW50RGF0YSB7XG4gICAgY29uc3QgZm9ybVZhbHVlOiBvYmplY3QgPSB0aGlzLmVkaXRGb3JtLnZhbHVlO1xuXG4gICAgLy8gR2V0IHRoZSBDYXNlRXZlbnREYXRhIGZvciB0aGUgY3VycmVudCBwYWdlLlxuICAgIGNvbnN0IHBhZ2VGaWVsZHM6IENhc2VGaWVsZFtdID0gdGhpcy5jdXJyZW50UGFnZS5jYXNlX2ZpZWxkcztcbiAgICBjb25zdCBwYWdlRXZlbnREYXRhOiBDYXNlRXZlbnREYXRhID0gdGhpcy5nZXRGaWx0ZXJlZENhc2VFdmVudERhdGEocGFnZUZpZWxkcywgZm9ybVZhbHVlLCB0cnVlKTtcblxuICAgIC8vIEdldCB0aGUgQ2FzZUV2ZW50RGF0YSBmb3IgdGhlIGVudGlyZSBmb3JtIChhbGwgcGFnZXMpLlxuICAgIGNvbnN0IGFsbENhc2VGaWVsZHMgPSB0aGlzLmdldENhc2VGaWVsZHNGcm9tQ3VycmVudEFuZFByZXZpb3VzUGFnZXMoKTtcbiAgICBjb25zdCBmb3JtRXZlbnREYXRhOiBDYXNlRXZlbnREYXRhID0gdGhpcy5nZXRGaWx0ZXJlZENhc2VFdmVudERhdGEoYWxsQ2FzZUZpZWxkcywgZm9ybVZhbHVlLCBmYWxzZSwgdHJ1ZSwgZnJvbVByZXZpb3VzUGFnZSk7XG5cbiAgICAvLyBOb3cgaGVyZSdzIHRoZSBrZXkgdGhpbmcgLSB0aGUgcGFnZUV2ZW50RGF0YSBoYXMgYSBwcm9wZXJ0eSBjYWxsZWQgYGV2ZW50X2RhdGFgIGFuZFxuICAgIC8vIHdlIG5lZWQgVEhBVCB0byBiZSB0aGUgdmFsdWUgb2YgdGhlIGVudGlyZSBmb3JtOiBgZm9ybUV2ZW50RGF0YS5kYXRhYC5cbiAgICBwYWdlRXZlbnREYXRhLmV2ZW50X2RhdGEgPSBmb3JtRXZlbnREYXRhLmRhdGE7XG5cbiAgICAvLyBGaW5hbGlzZSB0aGUgQ2FzZUV2ZW50RGF0YSBvYmplY3QuXG4gICAgcGFnZUV2ZW50RGF0YS5ldmVudF90b2tlbiA9IHRoaXMuZXZlbnRUcmlnZ2VyLmV2ZW50X3Rva2VuO1xuICAgIHBhZ2VFdmVudERhdGEuaWdub3JlX3dhcm5pbmcgPSB0aGlzLmNhc2VFZGl0Lmlnbm9yZVdhcm5pbmc7XG5cbiAgICAvLyBGaW5hbGx5LCB0cnkgdG8gc2V0IHVwIHRoZSBjYXNlX3JlZmVyZW5jZS5cbiAgICBpZiAodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscykge1xuICAgICAgcGFnZUV2ZW50RGF0YS5jYXNlX3JlZmVyZW5jZSA9IHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMuY2FzZV9pZDtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdGhlIG5vdyBob3BlZnVsbHkgc2FuZSBDYXNlRXZlbnREYXRhLlxuICAgIHJldHVybiBwYWdlRXZlbnREYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEFic3RyYWN0ZWQgdGhpcyBtZXRob2QgZnJvbSBidWlsZENhc2VFdmVudERhdGEgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uLlxuICAgKiBAcGFyYW0gY2FzZUZpZWxkcyBUaGUgZmllbGRzIHRvIGZpbHRlciB0aGUgZGF0YSBieS5cbiAgICogQHBhcmFtIGZvcm1WYWx1ZSBUaGUgb3JpZ2luYWwgdmFsdWUgb2YgdGhlIGZvcm0uXG4gICAqIEBwYXJhbSBjbGVhckVtcHR5IFdoZXRoZXIgb3Igbm90IHRvIGNsZWFyIG91dCBlbXB0eSB2YWx1ZXMuXG4gICAqIEBwYXJhbSBjbGVhck5vbkNhc2UgV2hldGhlciBvciBub3QgdG8gY2xlYXIgb3V0IGZpZWxkcyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgY2FzZS5cbiAgICogQHJldHVybnMgQ2FzZUV2ZW50RGF0YSBmb3IgdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRGaWx0ZXJlZENhc2VFdmVudERhdGEoY2FzZUZpZWxkczogQ2FzZUZpZWxkW10sIGZvcm1WYWx1ZTogb2JqZWN0LCBjbGVhckVtcHR5ID0gZmFsc2UsXG4gICAgY2xlYXJOb25DYXNlID0gZmFsc2UsIGZyb21QcmV2aW91c1BhZ2UgPSBmYWxzZSk6IENhc2VFdmVudERhdGEge1xuICAgIC8vIEdldCB0aGUgZGF0YSBmb3IgdGhlIGZpZWxkcyBzcGVjaWZpZWQuXG4gICAgY29uc3QgZm9ybUZpZWxkcyA9IHRoaXMuZm9ybVZhbHVlU2VydmljZS5maWx0ZXJDdXJyZW50UGFnZUZpZWxkcyhjYXNlRmllbGRzLCBmb3JtVmFsdWUpO1xuXG4gICAgLy8gU29ydCBvdXQgdGhlIGR5bmFtaWMgbGlzdHMuXG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnNhbml0aXNlRHluYW1pY0xpc3RzKGNhc2VGaWVsZHMsIGZvcm1GaWVsZHMpO1xuXG4gICAgLy8gR2V0IGhvbGQgb2YgdGhlIENhc2VFdmVudERhdGEuXG4gICAgY29uc3QgY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSA9IHRoaXMuZm9ybVZhbHVlU2VydmljZS5zYW5pdGlzZShmb3JtRmllbGRzKSBhcyBDYXNlRXZlbnREYXRhO1xuXG4gICAgLy8gZGVsZXRlIGZpZWxkcyB3aGljaCBhcmUgbm90IHBhcnQgb2YgdGhlIGNhc2UgZXZlbnQgam91cm5leSB3aXphcmQgcGFnZXMgY2FzZSBmaWVsZHNcbiAgICB0aGlzLnZhbGlkUGFnZUxpc3RDYXNlRmllbGRzU2VydmljZS5kZWxldGVOb25WYWxpZGF0ZWRGaWVsZHModGhpcy5jYXNlRWRpdC52YWxpZFBhZ2VMaXN0LCBjYXNlRXZlbnREYXRhLmRhdGEsIHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLCBmcm9tUHJldmlvdXNQYWdlLCB0aGlzLmVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ10udmFsdWUpO1xuXG4gICAgLy8gVGlkeSBpdCB1cCBiZWZvcmUgd2UgcmV0dXJuIGl0LlxuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVVbm5lY2Vzc2FyeUZpZWxkcyhjYXNlRXZlbnREYXRhLmRhdGEsIGNhc2VGaWVsZHMsIGNsZWFyRW1wdHksIGNsZWFyTm9uQ2FzZSxcbiAgICAgIGZyb21QcmV2aW91c1BhZ2UsIHRoaXMuY3VycmVudFBhZ2UuY2FzZV9maWVsZHMpO1xuXG4gICAgcmV0dXJuIGNhc2VFdmVudERhdGE7XG4gIH1cblxuICBwcml2YXRlIHN5bmNDYXNlRWRpdERhdGFTZXJ2aWNlKCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5zZXRDYXNlRGV0YWlscyh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKTtcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0Q2FzZUV2ZW50VHJpZ2dlck5hbWUodGhpcy5ldmVudFRyaWdnZXIubmFtZSk7XG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLnNldENhc2VUaXRsZSh0aGlzLmdldENhc2VUaXRsZSgpKTtcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0Q2FzZUVkaXRGb3JtKHRoaXMuZWRpdEZvcm0pO1xuICAgIHRoaXMuY2FzZUZvcm1WYWxpZGF0aW9uRXJyb3JzU3ViID0gdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNhc2VGb3JtVmFsaWRhdGlvbkVycm9ycyQuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2YWxpZGF0aW9uRXJyb3JzKSA9PiB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSB2YWxpZGF0aW9uRXJyb3JzXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UnB4VHJhbnNsYXRlUGlwZUFyZ3MoZmllbGRMYWJlbDogc3RyaW5nKTogeyBGSUVMRExBQkVMOiBzdHJpbmcgfSB8IG51bGwge1xuICAgIHJldHVybiBmaWVsZExhYmVsID8gKHsgRklFTERMQUJFTDogZmllbGRMYWJlbCB9KSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgb25FdmVudENhbkJlQ29tcGxldGVkKGV2ZW50Q2FuQmVDb21wbGV0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0Lm9uRXZlbnRDYW5CZUNvbXBsZXRlZCh7XG4gICAgICBldmVudFRyaWdnZXI6IHRoaXMuZXZlbnRUcmlnZ2VyLFxuICAgICAgZXZlbnRDYW5CZUNvbXBsZXRlZCxcbiAgICAgIGNhc2VEZXRhaWxzOiB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLFxuICAgICAgZm9ybTogdGhpcy5lZGl0Rm9ybSxcbiAgICAgIHN1Ym1pdDogdGhpcy5jYXNlRWRpdC5zdWJtaXQsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUFsbEp1ZGljaWFsVXNlckZvcm1Db250cm9scyhwYWdlOiBXaXphcmRQYWdlLCBlZGl0Rm9ybTogRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgcGFnZS5jYXNlX2ZpZWxkcy5mb3JFYWNoKGNhc2VGaWVsZCA9PiB7XG4gICAgICBpZiAoRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0p1ZGljaWFsVXNlciddKSkge1xuICAgICAgICAoZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXSBhcyBGb3JtR3JvdXApLnJlbW92ZUNvbnRyb2woYCR7Y2FzZUZpZWxkLmlkfV9qdWRpY2lhbFVzZXJDb250cm9sYCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50UGFnZVwiPlxuICA8aDEgKm5nSWY9XCIhY3VycmVudFBhZ2UubGFiZWxcIiBjbGFzcz1cImdvdnVrLWhlYWRpbmctbFwiPnt7ZXZlbnRUcmlnZ2VyLm5hbWUgfCBycHhUcmFuc2xhdGV9fTwvaDE+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50UGFnZS5sYWJlbFwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZ292dWstY2FwdGlvbi1sXCI+e3sgZXZlbnRUcmlnZ2VyLm5hbWUgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj57e2N1cnJlbnRQYWdlLmxhYmVsIHwgcnB4VHJhbnNsYXRlfX08L2gxPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tQ2FzZSBJRCBvciBUaXRsZSAtLT5cbjxkaXYgKm5nSWY9XCJnZXRDYXNlVGl0bGUoKTsgdGhlbiB0aXRsZUJsb2NrOyBlbHNlIGlkQmxvY2tcIj48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjdGl0bGVCbG9jaz5cbiAgPGNjZC1tYXJrZG93biBbY29udGVudF09XCJnZXRDYXNlVGl0bGUoKSB8IGNjZENhc2VUaXRsZTogY2FzZUZpZWxkcyA6IGVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIj48L2NjZC1tYXJrZG93bj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2lkQmxvY2s+XG4gIDxoMiAqbmdJZj1cImdldENhc2VJZCgpXCIgY2xhc3M9XCJoZWFkaW5nLWgyXCI+I3t7IGdldENhc2VJZCgpIHwgY2NkQ2FzZVJlZmVyZW5jZSB9fTwvaDI+XG48L25nLXRlbXBsYXRlPlxuXG48IS0tIEVycm9yIG1lc3NhZ2Ugc3VtbWFyeSAtLT5cbjxkaXYgKm5nSWY9XCJ2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlcIiBhcmlhLWxhYmVsbGVkYnk9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCIgcm9sZT1cImFsZXJ0XCIgdGFiaW5kZXg9XCItMVwiIGRhdGEtbW9kdWxlPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiPlxuICA8aDIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X190aXRsZVwiIGlkPVwiZXJyb3Itc3VtbWFyeS10aXRsZVwiPlxuICAgIHt7J1RoZXJlIGlzIGEgcHJvYmxlbScgfCBycHhUcmFuc2xhdGV9fVxuICA8L2gyPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxpZGF0aW9uRXJyb3Igb2YgdmFsaWRhdGlvbkVycm9yc1wiIGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeV9fYm9keVwiPlxuICAgIDx1bCBjbGFzcz1cImdvdnVrLWxpc3QgZ292dWstZXJyb3Itc3VtbWFyeV9fbGlzdFwiPlxuICAgICAgPGxpPlxuICAgICAgICA8YSAoY2xpY2spPVwibmF2aWdhdGVUb0Vycm9yRWxlbWVudCh2YWxpZGF0aW9uRXJyb3IuaWQpXCIgY2xhc3M9XCJ2YWxpZGF0aW9uLWVycm9yXCI+XG4gICAgICAgICAge3sgdmFsaWRhdGlvbkVycm9yLm1lc3NhZ2UgfCBycHhUcmFuc2xhdGU6IGdldFJweFRyYW5zbGF0ZVBpcGVBcmdzKHZhbGlkYXRpb25FcnJvci5sYWJlbCB8IHJweFRyYW5zbGF0ZSk6IG51bGwgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48Y2NkLWNhc2UtZWRpdC1nZW5lcmljLWVycm9ycyBbZXJyb3JdPVwiY2FzZUVkaXQuZXJyb3JcIj48L2NjZC1jYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnM+XG5cbjxjY2QtY2FsbGJhY2stZXJyb3JzXG4gIFt0cmlnZ2VyVGV4dENvbnRpbnVlXT1cInRyaWdnZXJUZXh0U3RhcnRcIlxuICBbdHJpZ2dlclRleHRJZ25vcmVdPVwidHJpZ2dlclRleHRJZ25vcmVXYXJuaW5nc1wiXG4gIFtjYWxsYmFja0Vycm9yc1N1YmplY3RdPVwiY2FzZUVkaXQuY2FsbGJhY2tFcnJvcnNTdWJqZWN0XCJcbiAgKGNhbGxiYWNrRXJyb3JzQ29udGV4dCk9XCJjYWxsYmFja0Vycm9yc05vdGlmeSgkZXZlbnQpXCI+XG48L2NjZC1jYWxsYmFjay1lcnJvcnM+XG48ZGl2IGNsYXNzPVwid2lkdGgtNTBcIj5cbiAgPGZvcm0gKm5nSWY9XCJjdXJyZW50UGFnZVwiIGNsYXNzPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm1cIiAoc3VibWl0KT1cInN1Ym1pdCgpXCI+XG4gICAgPGZpZWxkc2V0IGlkPVwiZmllbGRzZXQtY2FzZS1kYXRhXCI+XG4gICAgICA8bGVnZW5kIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj48L2xlZ2VuZD5cbiAgICAgIDwhLS0gc2luZ2xlIGNvbHVtbiAtLT5cbiAgICAgIDxjY2QtY2FzZS1lZGl0LWZvcm0gaWQ9J2Nhc2VFZGl0Rm9ybScgKm5nSWY9XCIhY3VycmVudFBhZ2UuaXNNdWx0aUNvbHVtbigpXCIgW2ZpZWxkc109XCJjdXJyZW50UGFnZS5nZXRDb2wxRmllbGRzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VDaGFuZ2VTdWJqZWN0XT1cInBhZ2VDaGFuZ2VTdWJqZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlc0NoYW5nZWQpPVwiYXBwbHlWYWx1ZXNDaGFuZ2VkKCRldmVudClcIj48L2NjZC1jYXNlLWVkaXQtZm9ybT5cbiAgICAgIDwhLS0gdHdvIGNvbHVtbnMgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY3VycmVudFBhZ2UuaXNNdWx0aUNvbHVtbigpXCIgY2xhc3M9XCJncmlkLXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLXR3by10aGlyZHMgcmlnaHRCb3JkZXJTZXBhcmF0b3JcIj5cbiAgICAgICAgICA8Y2NkLWNhc2UtZWRpdC1mb3JtIGlkPSdjYXNlRWRpdEZvcm0xJyBbZmllbGRzXT1cImN1cnJlbnRQYWdlLmdldENvbDFGaWVsZHMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCI+PC9jY2QtY2FzZS1lZGl0LWZvcm0+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLW9uZS10aGlyZFwiPlxuICAgICAgICAgIDxjY2QtY2FzZS1lZGl0LWZvcm0gaWQ9J2Nhc2VFZGl0Rm9ybTInIFtmaWVsZHNdPVwiY3VycmVudFBhZ2UuZ2V0Q29sMkZpZWxkcygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjYXNlRmllbGRzXT1cImNhc2VGaWVsZHNcIj48L2NjZC1jYXNlLWVkaXQtZm9ybT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZWxkc2V0PlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1yZWxhdGVkXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cIiEoaGFzUHJldmlvdXNQYWdlJCB8IGFzeW5jKVwiIChjbGljayk9XCJ0b1ByZXZpb3VzUGFnZSgpXCI+XG4gICAgICAgIHt7J1ByZXZpb3VzJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b25cIiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cInN1Ym1pdHRpbmcoKVwiPnt7dHJpZ2dlclRleHQgfCBycHhUcmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPHAgY2xhc3M9XCJjYW5jZWxcIj48YSAoY2xpY2spPVwiY2FuY2VsKClcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+e3tnZXRDYW5jZWxUZXh0KCkgfCBycHhUcmFuc2xhdGV9fTwvYT48L3A+XG4gIDwvZm9ybT5cbjwvZGl2PlxuXG48Y2NkLWNhc2UtZXZlbnQtY29tcGxldGlvbiAqbmdJZj1cImNhc2VFZGl0LmlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWRcIlxuICBbZXZlbnRDb21wbGV0aW9uUGFyYW1zXT1cImNhc2VFZGl0LmV2ZW50Q29tcGxldGlvblBhcmFtc1wiXG4gIChldmVudENhbkJlQ29tcGxldGVkKT1cIm9uRXZlbnRDYW5CZUNvbXBsZXRlZCgkZXZlbnQpXCI+XG48L2NjZC1jYXNlLWV2ZW50LWNvbXBsZXRpb24+XG4iXX0=
|