@hmcts/ccd-case-ui-toolkit 7.0.38 → 7.0.39-angular-upgrade
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app.config.mjs +93 -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 +707 -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 +70 -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 +146 -0
- package/esm2022/lib/shared/components/error/domain/error-context.mjs +5 -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 +117 -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 +181 -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 +37101 -0
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -0
- 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 -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 +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/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/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 -432
- 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 -681
- 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 -64
- 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 -148
- 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 -111
- 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 -38766
- package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +0 -1
- package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +0 -35789
- 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
|
@@ -1,686 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { FormGroup } from '@angular/forms';
|
|
3
|
-
import { ActivatedRoute } from '@angular/router';
|
|
4
|
-
import { RpxTranslationService } from 'rpx-xui-translation';
|
|
5
|
-
import { CaseEditDataService } from '../../../commons/case-edit-data/case-edit-data.service';
|
|
6
|
-
import { FieldsUtils } from '../../../services/fields';
|
|
7
|
-
import { CaseFlagStateService } from '../../case-editor/services/case-flag-state.service';
|
|
8
|
-
import { AbstractFieldWriteComponent } from '../base-field/abstract-field-write.component';
|
|
9
|
-
import { CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagStatus } from './enums';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/router";
|
|
12
|
-
import * as i2 from "../../../commons/case-edit-data/case-edit-data.service";
|
|
13
|
-
import * as i3 from "../../case-editor/services/case-flag-state.service";
|
|
14
|
-
import * as i4 from "rpx-xui-translation";
|
|
15
|
-
function WriteCaseFlagFieldComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
-
const _r6 = i0.ɵɵgetCurrentView();
|
|
17
|
-
i0.ɵɵelementStart(0, "div", 5)(1, "ul", 6)(2, "li")(3, "a", 7);
|
|
18
|
-
i0.ɵɵlistener("click", function WriteCaseFlagFieldComponent_div_0_div_4_Template_a_click_3_listener() { const restoredCtx = i0.ɵɵrestoreView(_r6); const errorMessage_r4 = restoredCtx.$implicit; const ctx_r5 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r5.navigateToErrorElement(errorMessage_r4.fieldId)); });
|
|
19
|
-
i0.ɵɵtext(4);
|
|
20
|
-
i0.ɵɵpipe(5, "rpxTranslate");
|
|
21
|
-
i0.ɵɵelementEnd()()()();
|
|
22
|
-
} if (rf & 2) {
|
|
23
|
-
const errorMessage_r4 = ctx.$implicit;
|
|
24
|
-
i0.ɵɵadvance(4);
|
|
25
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 1, errorMessage_r4.description));
|
|
26
|
-
} }
|
|
27
|
-
function WriteCaseFlagFieldComponent_div_0_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
-
i0.ɵɵelementStart(0, "div", 2)(1, "h2", 3);
|
|
29
|
-
i0.ɵɵtext(2);
|
|
30
|
-
i0.ɵɵpipe(3, "rpxTranslate");
|
|
31
|
-
i0.ɵɵelementEnd();
|
|
32
|
-
i0.ɵɵtemplate(4, WriteCaseFlagFieldComponent_div_0_div_4_Template, 6, 3, "div", 4);
|
|
33
|
-
i0.ɵɵelementEnd();
|
|
34
|
-
} if (rf & 2) {
|
|
35
|
-
const ctx_r0 = i0.ɵɵnextContext();
|
|
36
|
-
i0.ɵɵadvance(2);
|
|
37
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, "There is a problem"), " ");
|
|
38
|
-
i0.ɵɵadvance(2);
|
|
39
|
-
i0.ɵɵproperty("ngForOf", ctx_r0.errorMessages);
|
|
40
|
-
} }
|
|
41
|
-
function WriteCaseFlagFieldComponent_div_1_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
-
const _r13 = i0.ɵɵgetCurrentView();
|
|
43
|
-
i0.ɵɵelementContainerStart(0);
|
|
44
|
-
i0.ɵɵelementStart(1, "ccd-select-flag-location", 11);
|
|
45
|
-
i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_2_Template_ccd_select_flag_location_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.onCaseFlagStateEmitted($event)); });
|
|
46
|
-
i0.ɵɵelementEnd();
|
|
47
|
-
i0.ɵɵelementContainerEnd();
|
|
48
|
-
} if (rf & 2) {
|
|
49
|
-
const ctx_r7 = i0.ɵɵnextContext(2);
|
|
50
|
-
i0.ɵɵadvance(1);
|
|
51
|
-
i0.ɵɵproperty("formGroup", ctx_r7.caseFlagParentFormGroup)("flagsData", ctx_r7.flagsData)("isDisplayContextParameterExternal", ctx_r7.isDisplayContextParameterExternal);
|
|
52
|
-
} }
|
|
53
|
-
function WriteCaseFlagFieldComponent_div_1_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
54
|
-
const _r15 = i0.ɵɵgetCurrentView();
|
|
55
|
-
i0.ɵɵelementContainerStart(0);
|
|
56
|
-
i0.ɵɵelementStart(1, "ccd-select-flag-type", 12);
|
|
57
|
-
i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_3_Template_ccd_select_flag_type_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r14.onCaseFlagStateEmitted($event)); })("flagCommentsOptionalEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_3_Template_ccd_select_flag_type_flagCommentsOptionalEmitter_1_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r16 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r16.onFlagCommentsOptionalEmitted($event)); });
|
|
58
|
-
i0.ɵɵelementEnd();
|
|
59
|
-
i0.ɵɵelementContainerEnd();
|
|
60
|
-
} if (rf & 2) {
|
|
61
|
-
const ctx_r8 = i0.ɵɵnextContext(2);
|
|
62
|
-
i0.ɵɵadvance(1);
|
|
63
|
-
i0.ɵɵproperty("formGroup", ctx_r8.caseFlagParentFormGroup)("jurisdiction", ctx_r8.jurisdiction)("caseTypeId", ctx_r8.caseTypeId)("hmctsServiceId", ctx_r8.hmctsServiceId)("isDisplayContextParameterExternal", ctx_r8.isDisplayContextParameterExternal)("isDisplayContextParameter2Point1Enabled", ctx_r8.isDisplayContextParameter2Point1Enabled)("selectedFlagsLocation", ctx_r8.selectedFlagsLocation);
|
|
64
|
-
} }
|
|
65
|
-
function WriteCaseFlagFieldComponent_div_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
66
|
-
const _r18 = i0.ɵɵgetCurrentView();
|
|
67
|
-
i0.ɵɵelementContainerStart(0);
|
|
68
|
-
i0.ɵɵelementStart(1, "ccd-search-language-interpreter", 13);
|
|
69
|
-
i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_4_Template_ccd_search_language_interpreter_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r17.onCaseFlagStateEmitted($event)); });
|
|
70
|
-
i0.ɵɵelementEnd();
|
|
71
|
-
i0.ɵɵelementContainerEnd();
|
|
72
|
-
} if (rf & 2) {
|
|
73
|
-
const ctx_r9 = i0.ɵɵnextContext(2);
|
|
74
|
-
i0.ɵɵadvance(1);
|
|
75
|
-
i0.ɵɵproperty("formGroup", ctx_r9.caseFlagParentFormGroup)("flagType", ctx_r9.flagType);
|
|
76
|
-
} }
|
|
77
|
-
function WriteCaseFlagFieldComponent_div_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
|
|
78
|
-
const _r20 = i0.ɵɵgetCurrentView();
|
|
79
|
-
i0.ɵɵelementContainerStart(0);
|
|
80
|
-
i0.ɵɵelementStart(1, "ccd-add-comments", 14);
|
|
81
|
-
i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_5_Template_ccd_add_comments_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r19.onCaseFlagStateEmitted($event)); });
|
|
82
|
-
i0.ɵɵelementEnd();
|
|
83
|
-
i0.ɵɵelementContainerEnd();
|
|
84
|
-
} if (rf & 2) {
|
|
85
|
-
const ctx_r10 = i0.ɵɵnextContext(2);
|
|
86
|
-
i0.ɵɵadvance(1);
|
|
87
|
-
i0.ɵɵproperty("formGroup", ctx_r10.caseFlagParentFormGroup)("optional", ctx_r10.flagCommentsOptional)("isDisplayContextParameterExternal", ctx_r10.isDisplayContextParameterExternal)("isDisplayContextParameter2Point1Enabled", ctx_r10.isDisplayContextParameter2Point1Enabled);
|
|
88
|
-
} }
|
|
89
|
-
function WriteCaseFlagFieldComponent_div_1_ng_container_6_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
-
const _r22 = i0.ɵɵgetCurrentView();
|
|
91
|
-
i0.ɵɵelementContainerStart(0);
|
|
92
|
-
i0.ɵɵelementStart(1, "ccd-confirm-flag-status", 15);
|
|
93
|
-
i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_1_ng_container_6_Template_ccd_confirm_flag_status_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r22); const ctx_r21 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r21.onCaseFlagStateEmitted($event)); });
|
|
94
|
-
i0.ɵɵelementEnd();
|
|
95
|
-
i0.ɵɵelementContainerEnd();
|
|
96
|
-
} if (rf & 2) {
|
|
97
|
-
const ctx_r11 = i0.ɵɵnextContext(2);
|
|
98
|
-
i0.ɵɵadvance(1);
|
|
99
|
-
i0.ɵɵproperty("formGroup", ctx_r11.caseFlagParentFormGroup)("defaultStatus", ctx_r11.flagType.defaultStatus);
|
|
100
|
-
} }
|
|
101
|
-
function WriteCaseFlagFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
102
|
-
i0.ɵɵelementStart(0, "div", 8)(1, "div", 9);
|
|
103
|
-
i0.ɵɵtemplate(2, WriteCaseFlagFieldComponent_div_1_ng_container_2_Template, 2, 3, "ng-container", 10);
|
|
104
|
-
i0.ɵɵtemplate(3, WriteCaseFlagFieldComponent_div_1_ng_container_3_Template, 2, 7, "ng-container", 10);
|
|
105
|
-
i0.ɵɵtemplate(4, WriteCaseFlagFieldComponent_div_1_ng_container_4_Template, 2, 2, "ng-container", 10);
|
|
106
|
-
i0.ɵɵtemplate(5, WriteCaseFlagFieldComponent_div_1_ng_container_5_Template, 2, 4, "ng-container", 10);
|
|
107
|
-
i0.ɵɵtemplate(6, WriteCaseFlagFieldComponent_div_1_ng_container_6_Template, 2, 2, "ng-container", 10);
|
|
108
|
-
i0.ɵɵelementEnd()();
|
|
109
|
-
} if (rf & 2) {
|
|
110
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
111
|
-
i0.ɵɵproperty("formGroup", ctx_r1.formGroup);
|
|
112
|
-
i0.ɵɵadvance(1);
|
|
113
|
-
i0.ɵɵproperty("ngSwitch", ctx_r1.fieldState);
|
|
114
|
-
i0.ɵɵadvance(1);
|
|
115
|
-
i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagFieldState.FLAG_LOCATION);
|
|
116
|
-
i0.ɵɵadvance(1);
|
|
117
|
-
i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagFieldState.FLAG_TYPE);
|
|
118
|
-
i0.ɵɵadvance(1);
|
|
119
|
-
i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagFieldState.FLAG_LANGUAGE_INTERPRETER);
|
|
120
|
-
i0.ɵɵadvance(1);
|
|
121
|
-
i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagFieldState.FLAG_COMMENTS);
|
|
122
|
-
i0.ɵɵadvance(1);
|
|
123
|
-
i0.ɵɵproperty("ngSwitchCase", ctx_r1.caseFlagFieldState.FLAG_STATUS);
|
|
124
|
-
} }
|
|
125
|
-
function WriteCaseFlagFieldComponent_div_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
126
|
-
const _r27 = i0.ɵɵgetCurrentView();
|
|
127
|
-
i0.ɵɵelementContainerStart(0);
|
|
128
|
-
i0.ɵɵelementStart(1, "ccd-manage-case-flags", 16);
|
|
129
|
-
i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_2_ng_container_2_Template_ccd_manage_case_flags_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r27); const ctx_r26 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r26.onCaseFlagStateEmitted($event)); });
|
|
130
|
-
i0.ɵɵelementEnd();
|
|
131
|
-
i0.ɵɵelementContainerEnd();
|
|
132
|
-
} if (rf & 2) {
|
|
133
|
-
const ctx_r23 = i0.ɵɵnextContext(2);
|
|
134
|
-
i0.ɵɵadvance(1);
|
|
135
|
-
i0.ɵɵproperty("formGroup", ctx_r23.caseFlagParentFormGroup)("flagsData", ctx_r23.flagsData)("caseTitle", ctx_r23.caseTitle)("displayContextParameter", ctx_r23.displayContextParameter);
|
|
136
|
-
} }
|
|
137
|
-
function WriteCaseFlagFieldComponent_div_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
138
|
-
const _r29 = i0.ɵɵgetCurrentView();
|
|
139
|
-
i0.ɵɵelementContainerStart(0);
|
|
140
|
-
i0.ɵɵelementStart(1, "ccd-update-flag", 17);
|
|
141
|
-
i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_2_ng_container_3_Template_ccd_update_flag_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r29); const ctx_r28 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r28.onCaseFlagStateEmitted($event)); });
|
|
142
|
-
i0.ɵɵelementEnd();
|
|
143
|
-
i0.ɵɵelementContainerEnd();
|
|
144
|
-
} if (rf & 2) {
|
|
145
|
-
const ctx_r24 = i0.ɵɵnextContext(2);
|
|
146
|
-
i0.ɵɵadvance(1);
|
|
147
|
-
i0.ɵɵproperty("formGroup", ctx_r24.caseFlagParentFormGroup)("displayContextParameter", ctx_r24.displayContextParameter);
|
|
148
|
-
} }
|
|
149
|
-
function WriteCaseFlagFieldComponent_div_2_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
150
|
-
const _r31 = i0.ɵɵgetCurrentView();
|
|
151
|
-
i0.ɵɵelementContainerStart(0);
|
|
152
|
-
i0.ɵɵelementStart(1, "ccd-update-flag-add-translation-form", 18);
|
|
153
|
-
i0.ɵɵlistener("caseFlagStateEmitter", function WriteCaseFlagFieldComponent_div_2_ng_container_4_Template_ccd_update_flag_add_translation_form_caseFlagStateEmitter_1_listener($event) { i0.ɵɵrestoreView(_r31); const ctx_r30 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r30.onCaseFlagStateEmitted($event)); });
|
|
154
|
-
i0.ɵɵelementEnd();
|
|
155
|
-
i0.ɵɵelementContainerEnd();
|
|
156
|
-
} if (rf & 2) {
|
|
157
|
-
const ctx_r25 = i0.ɵɵnextContext(2);
|
|
158
|
-
i0.ɵɵadvance(1);
|
|
159
|
-
i0.ɵɵproperty("formGroup", ctx_r25.caseFlagParentFormGroup);
|
|
160
|
-
} }
|
|
161
|
-
function WriteCaseFlagFieldComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
162
|
-
i0.ɵɵelementStart(0, "div", 8)(1, "div", 9);
|
|
163
|
-
i0.ɵɵtemplate(2, WriteCaseFlagFieldComponent_div_2_ng_container_2_Template, 2, 4, "ng-container", 10);
|
|
164
|
-
i0.ɵɵtemplate(3, WriteCaseFlagFieldComponent_div_2_ng_container_3_Template, 2, 2, "ng-container", 10);
|
|
165
|
-
i0.ɵɵtemplate(4, WriteCaseFlagFieldComponent_div_2_ng_container_4_Template, 2, 1, "ng-container", 10);
|
|
166
|
-
i0.ɵɵelementEnd()();
|
|
167
|
-
} if (rf & 2) {
|
|
168
|
-
const ctx_r2 = i0.ɵɵnextContext();
|
|
169
|
-
i0.ɵɵproperty("formGroup", ctx_r2.formGroup);
|
|
170
|
-
i0.ɵɵadvance(1);
|
|
171
|
-
i0.ɵɵproperty("ngSwitch", ctx_r2.fieldState);
|
|
172
|
-
i0.ɵɵadvance(1);
|
|
173
|
-
i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS);
|
|
174
|
-
i0.ɵɵadvance(1);
|
|
175
|
-
i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_UPDATE);
|
|
176
|
-
i0.ɵɵadvance(1);
|
|
177
|
-
i0.ɵɵproperty("ngSwitchCase", ctx_r2.caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION);
|
|
178
|
-
} }
|
|
179
|
-
export class WriteCaseFlagFieldComponent extends AbstractFieldWriteComponent {
|
|
180
|
-
constructor(route, caseEditDataService, caseFlagStateService, rpxTranslationService) {
|
|
181
|
-
super();
|
|
182
|
-
this.route = route;
|
|
183
|
-
this.caseEditDataService = caseEditDataService;
|
|
184
|
-
this.caseFlagStateService = caseFlagStateService;
|
|
185
|
-
this.rpxTranslationService = rpxTranslationService;
|
|
186
|
-
this.caseFlagFieldState = CaseFlagFieldState;
|
|
187
|
-
this.errorMessages = [];
|
|
188
|
-
this.flagCommentsOptional = false;
|
|
189
|
-
this.allCaseFlagStagesCompleted = false;
|
|
190
|
-
// Code for "Other" flag type as defined in Reference Data
|
|
191
|
-
this.otherFlagTypeCode = 'OT0001';
|
|
192
|
-
this.selectedManageCaseLocation = 'selectedManageCaseLocation';
|
|
193
|
-
this.caseNameMissing = 'Case name missing';
|
|
194
|
-
}
|
|
195
|
-
get flagType() {
|
|
196
|
-
return this.caseFlagParentFormGroup?.value.flagType;
|
|
197
|
-
}
|
|
198
|
-
get selectedFlagsLocation() {
|
|
199
|
-
return this.caseFlagParentFormGroup?.value.selectedLocation;
|
|
200
|
-
}
|
|
201
|
-
set selectedFlagsLocation(selectedLocation) {
|
|
202
|
-
if (this.caseFlagParentFormGroup) {
|
|
203
|
-
this.caseFlagParentFormGroup.value.selectedLocation = selectedLocation;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
ngOnInit() {
|
|
207
|
-
// If it is start of the journey or navigation from check your answers page then fieldStateToNavigate property
|
|
208
|
-
// in case flag state service will contain the field state to navigate based on create or manage journey
|
|
209
|
-
this.fieldState = this.caseFlagStateService.fieldStateToNavigate;
|
|
210
|
-
if (this.fieldState === undefined ||
|
|
211
|
-
this.fieldState === CaseFlagFieldState.FLAG_LOCATION ||
|
|
212
|
-
this.fieldState === CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS) {
|
|
213
|
-
const params = this.route.snapshot.params;
|
|
214
|
-
// Clear the form group, field state to navigate and set the page location
|
|
215
|
-
this.caseFlagStateService.resetCache(`../${params['eid']}/${params['page']}`);
|
|
216
|
-
}
|
|
217
|
-
// Reassign the form group from the case flag state service
|
|
218
|
-
this.caseFlagParentFormGroup = this.caseFlagStateService.formGroup;
|
|
219
|
-
// Clear form validation errors as a new page will be rendered based on field state
|
|
220
|
-
this.caseEditDataService.clearFormValidationErrors();
|
|
221
|
-
// Check for existing FlagLauncher control in parent and remove it - this is the only way to ensure its invalidity
|
|
222
|
-
// is set correctly at the start, when the component is reloaded and the control is re-registered. Otherwise, the
|
|
223
|
-
// validator state gets carried over
|
|
224
|
-
if (this.formGroup && this.formGroup.get(this.caseField.id)) {
|
|
225
|
-
this.formGroup.removeControl(this.caseField.id);
|
|
226
|
-
}
|
|
227
|
-
// From this point, this.formGroup refers to the FormGroup for the FlagLauncher field, not the parent FormGroup
|
|
228
|
-
this.formGroup = this.registerControl(new FormGroup({}, {
|
|
229
|
-
validators: (_) => {
|
|
230
|
-
if (!this.allCaseFlagStagesCompleted) {
|
|
231
|
-
// Return an error to mark the FormGroup as invalid if not all Case Flag stages have been completed
|
|
232
|
-
return { notAllCaseFlagStagesCompleted: true };
|
|
233
|
-
}
|
|
234
|
-
return null;
|
|
235
|
-
}
|
|
236
|
-
}), true);
|
|
237
|
-
// Get the case type ID from the CaseView object in the snapshot data (required for retrieving the available flag
|
|
238
|
-
// types for a case)
|
|
239
|
-
if (this.route.snapshot.data.case && this.route.snapshot.data.case.case_type) {
|
|
240
|
-
this.caseTypeId = this.route.snapshot.data.case.case_type.id;
|
|
241
|
-
// Get the jurisdiction (required for retrieving the available flag types if unable to determine using case type ID)
|
|
242
|
-
if (this.route.snapshot.data.case.case_type.jurisdiction) {
|
|
243
|
-
this.jurisdiction = this.route.snapshot.data.case.case_type.jurisdiction.id;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
// Extract all flags-related data from the CaseEventTrigger object in the snapshot data
|
|
247
|
-
if (this.route.snapshot.data.eventTrigger) {
|
|
248
|
-
// Get the HMCTSServiceId from supplementary data, if it exists (required for retrieving the available flag types in
|
|
249
|
-
// the first instance, only falling back on case type ID or jurisdiction if it's not present)
|
|
250
|
-
if (this.route.snapshot.data.eventTrigger.supplementary_data
|
|
251
|
-
&& this.route.snapshot.data.eventTrigger.supplementary_data.HMCTSServiceId) {
|
|
252
|
-
this.hmctsServiceId = this.route.snapshot.data.eventTrigger.supplementary_data.HMCTSServiceId;
|
|
253
|
-
}
|
|
254
|
-
if (this.route.snapshot.data.eventTrigger.case_fields) {
|
|
255
|
-
this.flagsData = (this.route.snapshot.data.eventTrigger.case_fields)
|
|
256
|
-
.reduce((flags, caseField) => FieldsUtils.extractFlagsDataFromCaseField(flags, caseField, caseField.id, caseField), []);
|
|
257
|
-
// Set displayContextParameter (to be passed as an input to ManageCaseFlagsComponent for setting correct title)
|
|
258
|
-
this.displayContextParameter =
|
|
259
|
-
this.setDisplayContextParameter(this.route.snapshot.data.eventTrigger.case_fields);
|
|
260
|
-
// Set boolean indicating the display_context_parameter is "update"
|
|
261
|
-
this.isDisplayContextParameterUpdate = this.setDisplayContextParameterUpdate(this.displayContextParameter);
|
|
262
|
-
// Set boolean indicating the display_context_parameter is "external"
|
|
263
|
-
this.isDisplayContextParameterExternal = this.setDisplayContextParameterExternal(this.displayContextParameter);
|
|
264
|
-
// Set boolean indicating the display_context_parameter is Case Flags v2.1 enabled
|
|
265
|
-
this.isDisplayContextParameter2Point1Enabled = this.setDisplayContextParameter2Point1Enabled(this.displayContextParameter);
|
|
266
|
-
// Set starting field state if fieldState not the right value
|
|
267
|
-
if (!this.fieldState) {
|
|
268
|
-
this.fieldState = this.isDisplayContextParameterUpdate ? CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS : CaseFlagFieldState.FLAG_LOCATION;
|
|
269
|
-
}
|
|
270
|
-
// Get case title, to be used by child components
|
|
271
|
-
this.caseTitleSubscription = this.caseEditDataService.caseTitle$.subscribe({
|
|
272
|
-
next: title => {
|
|
273
|
-
this.caseTitle = title?.length > 0 ? title : this.caseNameMissing;
|
|
274
|
-
}
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
setDisplayContextParameterUpdate(displayContextParameter) {
|
|
280
|
-
return displayContextParameter === CaseFlagDisplayContextParameter.UPDATE ||
|
|
281
|
-
displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL ||
|
|
282
|
-
displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1;
|
|
283
|
-
}
|
|
284
|
-
setDisplayContextParameterExternal(displayContextParameter) {
|
|
285
|
-
return displayContextParameter === CaseFlagDisplayContextParameter.CREATE_EXTERNAL ||
|
|
286
|
-
displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL;
|
|
287
|
-
}
|
|
288
|
-
setDisplayContextParameter2Point1Enabled(displayContextParameter) {
|
|
289
|
-
return displayContextParameter === CaseFlagDisplayContextParameter.CREATE_2_POINT_1 ||
|
|
290
|
-
displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1;
|
|
291
|
-
}
|
|
292
|
-
onCaseFlagStateEmitted(caseFlagState) {
|
|
293
|
-
this.caseEditDataService.clearFormValidationErrors();
|
|
294
|
-
this.errorMessages = caseFlagState.errorMessages;
|
|
295
|
-
this.selectedFlag = caseFlagState.selectedFlag;
|
|
296
|
-
// Validation succeeded; proceed to next state or final review stage ("Check your answers")
|
|
297
|
-
if (this.errorMessages.length === 0) {
|
|
298
|
-
if (this.canMoveToFinalReviewStage(caseFlagState)) {
|
|
299
|
-
this.moveToFinalReviewStage();
|
|
300
|
-
// Don't move to next state if current state is CaseFlagFieldState.FLAG_TYPE and the flag type is a parent - this
|
|
301
|
-
// means the user needs to select from the next set of flag types before they can move on
|
|
302
|
-
}
|
|
303
|
-
else if (!caseFlagState.isParentFlagType) {
|
|
304
|
-
// Proceed to next state
|
|
305
|
-
this.proceedToNextState();
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
canMoveToFinalReviewStage(caseFlagState) {
|
|
310
|
-
// If the journey is request support or manage support
|
|
311
|
-
// and the current state is either CaseFlagFieldState.FLAG_COMMENTS or CaseFlagFieldState.FLAG_UPDATE
|
|
312
|
-
// then move to final review stage
|
|
313
|
-
if (this.isDisplayContextParameterExternal) {
|
|
314
|
-
return caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_COMMENTS ||
|
|
315
|
-
caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE;
|
|
316
|
-
}
|
|
317
|
-
// If the current state is one of:
|
|
318
|
-
// * CaseFlagFieldState.FLAG_STATUS AND Case Flags v2.1 is enabled
|
|
319
|
-
// * CaseFlagFieldState.FLAG_COMMENTS AND Case Flags v2.1 is not enabled
|
|
320
|
-
// * CaseFlagFieldState.FLAG_UPDATE and Welsh translation checkbox is not selected
|
|
321
|
-
// * CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION
|
|
322
|
-
// then move to final review stage
|
|
323
|
-
return (caseFlagState.currentCaseFlagFieldState ===
|
|
324
|
-
CaseFlagFieldState.FLAG_STATUS && this.isDisplayContextParameter2Point1Enabled) ||
|
|
325
|
-
(caseFlagState.currentCaseFlagFieldState ===
|
|
326
|
-
CaseFlagFieldState.FLAG_COMMENTS && !this.isDisplayContextParameter2Point1Enabled) ||
|
|
327
|
-
(caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE &&
|
|
328
|
-
!this.caseFlagParentFormGroup.get(CaseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED)?.value) ||
|
|
329
|
-
caseFlagState.currentCaseFlagFieldState === CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION;
|
|
330
|
-
}
|
|
331
|
-
proceedToNextState() {
|
|
332
|
-
if (!this.isAtFinalState()) {
|
|
333
|
-
// Skip the "language interpreter" state if current state is CaseFlagFieldState.FLAG_TYPE and the flag type doesn't
|
|
334
|
-
// have a "list of values" - currently, this is present only for those flag types that require language interpreter
|
|
335
|
-
// selection
|
|
336
|
-
if (this.fieldState === CaseFlagFieldState.FLAG_TYPE && !this.flagType?.listOfValues) {
|
|
337
|
-
this.fieldState = CaseFlagFieldState.FLAG_COMMENTS;
|
|
338
|
-
}
|
|
339
|
-
else {
|
|
340
|
-
this.fieldState++;
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
setFlagsCaseFieldValue() {
|
|
345
|
-
// tslint:disable-next-line: switch-default
|
|
346
|
-
switch (this.fieldState) {
|
|
347
|
-
case CaseFlagFieldState.FLAG_STATUS:
|
|
348
|
-
this.addFlagToCollection();
|
|
349
|
-
break;
|
|
350
|
-
case CaseFlagFieldState.FLAG_COMMENTS:
|
|
351
|
-
if (this.isDisplayContextParameterExternal || !this.isDisplayContextParameter2Point1Enabled) {
|
|
352
|
-
this.addFlagToCollection();
|
|
353
|
-
}
|
|
354
|
-
break;
|
|
355
|
-
case this.manageFlagFinalState:
|
|
356
|
-
this.updateFlagInCollection();
|
|
357
|
-
break;
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
addFlagToCollection() {
|
|
361
|
-
// Ensure no more than one new flag is being added at a time, by iterating through each Flags case field and removing
|
|
362
|
-
// any previous entry from the details array where that entry has no id (hence it is new - and there should be only
|
|
363
|
-
// one such entry). (This scenario occurs if the user repeats the Case Flag creation journey by using the "Change"
|
|
364
|
-
// link and selects either the same flag location as before or a different one.)
|
|
365
|
-
this.flagsData.forEach(instance => {
|
|
366
|
-
// Use the pathToFlagsFormGroup property for each Flags case field to drill down to the correct part of the
|
|
367
|
-
// CaseField value to remove the new value from
|
|
368
|
-
let value = instance.caseField?.value;
|
|
369
|
-
const pathToValue = instance.pathToFlagsFormGroup;
|
|
370
|
-
// Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
|
|
371
|
-
if (pathToValue.indexOf('.') > -1) {
|
|
372
|
-
pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach(part => value = value[part]);
|
|
373
|
-
}
|
|
374
|
-
if (value?.details?.length > 0) {
|
|
375
|
-
const indexOfNewFlagDetail = value.details.findIndex(element => !element.hasOwnProperty('id'));
|
|
376
|
-
if (indexOfNewFlagDetail > -1) {
|
|
377
|
-
value.details.splice(indexOfNewFlagDetail, 1);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
});
|
|
381
|
-
const formValues = this.caseFlagParentFormGroup?.value;
|
|
382
|
-
// Determine the correct location - internal or external - for the new flag. If returned as undefined, this
|
|
383
|
-
// indicates a configuration error with the external `Flags` object instance
|
|
384
|
-
this.determinedLocation =
|
|
385
|
-
this.determineLocationForFlag(!this.isDisplayContextParameterExternal, this.selectedFlagsLocation, formValues);
|
|
386
|
-
// Do not mutate this.selectedFlagsLocation; if this.selectedFlagsLocation becomes undefined,
|
|
387
|
-
// determineLocationForFlag() will no longer do anything when called with it - and the appropriate error message will
|
|
388
|
-
// not be redisplayed if the user clicks "Next" again on the "Add comments" page, after the error is first shown
|
|
389
|
-
if (this.determinedLocation) {
|
|
390
|
-
const path = this.determinedLocation.pathToFlagsFormGroup;
|
|
391
|
-
const flagDataRef = this.flagsData.find(item => item.pathToFlagsFormGroup === path);
|
|
392
|
-
let flagsCaseFieldValue = flagDataRef.caseField?.value;
|
|
393
|
-
// Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the
|
|
394
|
-
// CaseField value to apply changes to
|
|
395
|
-
// Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
|
|
396
|
-
if (path.indexOf('.') > -1) {
|
|
397
|
-
path.slice(path.indexOf('.') + 1).split('.').forEach(part => flagsCaseFieldValue = flagsCaseFieldValue[part]);
|
|
398
|
-
}
|
|
399
|
-
// If the CaseField for the selected flags location has no value, set it to an empty object so it can be populated
|
|
400
|
-
// with flag details
|
|
401
|
-
if (!flagsCaseFieldValue) {
|
|
402
|
-
flagDataRef.caseField.value = {};
|
|
403
|
-
flagsCaseFieldValue = flagDataRef.caseField.value;
|
|
404
|
-
}
|
|
405
|
-
// Create a details array if one does not exist
|
|
406
|
-
if (!flagsCaseFieldValue.hasOwnProperty('details')) {
|
|
407
|
-
flagsCaseFieldValue.details = [];
|
|
408
|
-
}
|
|
409
|
-
// Populate new FlagDetail instance and add to the Flags data within the CaseField instance of the selected flag
|
|
410
|
-
// location
|
|
411
|
-
flagsCaseFieldValue.details.push({ value: this.populateNewFlagDetailInstance() });
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* Determines the correct location (i.e. either the internal or external instance of a `Flags` object) for a new flag,
|
|
416
|
-
* according to the following:
|
|
417
|
-
*
|
|
418
|
-
* * Whether the user is internal or external (no effect for external users because they can access only the external
|
|
419
|
-
* instance)
|
|
420
|
-
* * The existence of two `Flags` objects - one internal, one external - linked by the same `groupId`;
|
|
421
|
-
* * For flags of type "Other", whether "only visible to HMCTS staff" has been selected or not ("Other" defaults to
|
|
422
|
-
* externally visible);
|
|
423
|
-
* * For all other flag types, the value of the `externallyAvailable` attribute.
|
|
424
|
-
*
|
|
425
|
-
* If the user is internal then the new flag should be assigned to the external `Flags` instance if:
|
|
426
|
-
* * Such an instance exists, AND
|
|
427
|
-
* * The flag type is "Other" and "only visible to HMCTS staff" was not selected, OR
|
|
428
|
-
* * The flag type is not "Other" and `externallyAvailable` is `true`.
|
|
429
|
-
*
|
|
430
|
-
* @param isInternalUser Whether the current user is internal or not
|
|
431
|
-
* @param selectedFlagsLocation The currently selected location for the new flag
|
|
432
|
-
* @param formValues All the values from the `caseFlagParentFormGroup`
|
|
433
|
-
* @returns The correctly determined location: either the internal or external location (if one exists) where a groupId
|
|
434
|
-
* is present; the original location otherwise. **Note:** If the external location is returned as undefined, this
|
|
435
|
-
* indicates a configuration error
|
|
436
|
-
*/
|
|
437
|
-
determineLocationForFlag(isInternalUser, selectedFlagsLocation, formValues) {
|
|
438
|
-
if (isInternalUser && selectedFlagsLocation?.flags?.groupId) {
|
|
439
|
-
if ((formValues?.flagType?.flagCode === this.otherFlagTypeCode && !formValues?.flagIsVisibleInternallyOnly) ||
|
|
440
|
-
(formValues?.flagType?.flagCode !== this.otherFlagTypeCode && formValues?.flagType?.externallyAvailable)) {
|
|
441
|
-
// If necessary, find the corresponding flags object with the same groupId and external visibility (should be
|
|
442
|
-
// only one unless misconfigured)
|
|
443
|
-
const location = selectedFlagsLocation.flags.visibility?.toLowerCase() === 'external'
|
|
444
|
-
? selectedFlagsLocation
|
|
445
|
-
: this.flagsData.filter((f) => f.flags?.groupId === selectedFlagsLocation.flags.groupId &&
|
|
446
|
-
f.flags?.visibility?.toLowerCase() === 'external')?.[0];
|
|
447
|
-
// If location is not truthy, set an error message and make caseFlagParentFormGroup invalid to prevent
|
|
448
|
-
// navigation to the summary page (by not triggering the submit event)
|
|
449
|
-
if (!location) {
|
|
450
|
-
this.errorMessages.push({
|
|
451
|
-
title: '',
|
|
452
|
-
description: CaseFlagErrorMessage.NO_EXTERNAL_FLAGS_COLLECTION
|
|
453
|
-
});
|
|
454
|
-
this.caseFlagParentFormGroup.setErrors({
|
|
455
|
-
noExternalCollection: true
|
|
456
|
-
});
|
|
457
|
-
}
|
|
458
|
-
return location;
|
|
459
|
-
}
|
|
460
|
-
else {
|
|
461
|
-
// If necessary, find the corresponding flags object with the same groupId and internal visibility (should be
|
|
462
|
-
// only one unless misconfigured); assumed to be internal if visibility attribute is null or undefined
|
|
463
|
-
const location = selectedFlagsLocation.flags.visibility?.toLowerCase() !== 'external'
|
|
464
|
-
? selectedFlagsLocation
|
|
465
|
-
: this.flagsData.filter((f) => f.flags?.groupId === selectedFlagsLocation.flags.groupId &&
|
|
466
|
-
f.flags?.visibility?.toLowerCase() !== 'external')?.[0];
|
|
467
|
-
// If location is not truthy, set an error message and make caseFlagParentFormGroup invalid to prevent
|
|
468
|
-
// navigation to the summary page (by not triggering the submit event)
|
|
469
|
-
if (!location) {
|
|
470
|
-
this.errorMessages.push({
|
|
471
|
-
title: '',
|
|
472
|
-
description: CaseFlagErrorMessage.NO_INTERNAL_FLAGS_COLLECTION
|
|
473
|
-
});
|
|
474
|
-
this.caseFlagParentFormGroup.setErrors({
|
|
475
|
-
noInternalCollection: true
|
|
476
|
-
});
|
|
477
|
-
}
|
|
478
|
-
return location;
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
return selectedFlagsLocation;
|
|
482
|
-
}
|
|
483
|
-
updateFlagInCollection() {
|
|
484
|
-
// Ensure no more than one flag is being updated at a time, by iterating through each Flags case field and resetting
|
|
485
|
-
// the description, comments, status, and date/time modified (if present) for each entry in the details array, with
|
|
486
|
-
// original values from the corresponding formatted_value property. (This scenario occurs if the user repeats the
|
|
487
|
-
// Manage Case Flag journey by using the "Change" link and selects a different flag to update.)
|
|
488
|
-
this.flagsData.forEach(instance => {
|
|
489
|
-
// Use the pathToFlagsFormGroup property for each Flags case field to drill down to the correct part of the
|
|
490
|
-
// CaseField value for which to restore the original values
|
|
491
|
-
let value = instance.caseField?.value;
|
|
492
|
-
let formattedValue = instance.caseField?.formatted_value;
|
|
493
|
-
const pathToValue = instance.pathToFlagsFormGroup;
|
|
494
|
-
// Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
|
|
495
|
-
if (pathToValue.indexOf('.') > -1) {
|
|
496
|
-
pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach(part => {
|
|
497
|
-
value = value[part];
|
|
498
|
-
if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
|
|
499
|
-
formattedValue = formattedValue[part];
|
|
500
|
-
}
|
|
501
|
-
});
|
|
502
|
-
}
|
|
503
|
-
if (value?.details?.length > 0 && formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
|
|
504
|
-
value.details.forEach(flagDetail => {
|
|
505
|
-
const originalFlagDetail = formattedValue.details?.find(detail => detail.id === flagDetail.id);
|
|
506
|
-
if (originalFlagDetail) {
|
|
507
|
-
flagDetail.value.otherDescription = originalFlagDetail.value?.otherDescription || null;
|
|
508
|
-
flagDetail.value.otherDescription_cy = originalFlagDetail.value?.otherDescription_cy || null;
|
|
509
|
-
flagDetail.value.flagComment = originalFlagDetail.value?.flagComment || null;
|
|
510
|
-
flagDetail.value.flagComment_cy = originalFlagDetail.value?.flagComment_cy || null;
|
|
511
|
-
flagDetail.value.flagUpdateComment = originalFlagDetail.value?.flagUpdateComment || null;
|
|
512
|
-
flagDetail.value.status = originalFlagDetail.value?.status;
|
|
513
|
-
flagDetail.value.dateTimeModified = originalFlagDetail.value?.dateTimeModified || null;
|
|
514
|
-
}
|
|
515
|
-
});
|
|
516
|
-
}
|
|
517
|
-
});
|
|
518
|
-
if (!this.selectedFlag) {
|
|
519
|
-
this.selectedFlag = this.formGroup.get(this.selectedManageCaseLocation).value;
|
|
520
|
-
}
|
|
521
|
-
let flagsCaseFieldValue = this.selectedFlag.caseField?.value;
|
|
522
|
-
// Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the
|
|
523
|
-
// CaseField value to apply changes to
|
|
524
|
-
const path = this.selectedFlag.pathToFlagsFormGroup;
|
|
525
|
-
// Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
|
|
526
|
-
if (path.indexOf('.') > -1) {
|
|
527
|
-
path.slice(path.indexOf('.') + 1).split('.').forEach(part => flagsCaseFieldValue = flagsCaseFieldValue[part]);
|
|
528
|
-
}
|
|
529
|
-
if (flagsCaseFieldValue) {
|
|
530
|
-
const flagDetailToUpdate = flagsCaseFieldValue.details?.find(detail => detail.id === this.selectedFlag.flagDetailDisplay?.flagDetail?.id);
|
|
531
|
-
if (flagDetailToUpdate) {
|
|
532
|
-
// Cache the *original* status of the flag before it is modified. This is needed if the user changes the flag status
|
|
533
|
-
// then decides to return to any part of the flag update journey. The ManageCaseFlagsComponent and UpdateFlagComponent
|
|
534
|
-
// should refer to a flag's original status, not the one set via the UI because this hasn't been persisted yet
|
|
535
|
-
this.selectedFlag.originalStatus = flagDetailToUpdate.value?.status;
|
|
536
|
-
// Update description fields only if flag type is "Other" (flag code OT0001); these fields apply only to that flag type
|
|
537
|
-
// If their FormControls don't exist, it means these fields weren't visited as part of the "Update Flag" journey, so do
|
|
538
|
-
// *not* update their values (otherwise they will become undefined)
|
|
539
|
-
if (flagDetailToUpdate.value?.flagCode === this.otherFlagTypeCode) {
|
|
540
|
-
if (this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION)) {
|
|
541
|
-
flagDetailToUpdate.value.otherDescription = this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION).value;
|
|
542
|
-
}
|
|
543
|
-
if (this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH)) {
|
|
544
|
-
flagDetailToUpdate.value.otherDescription_cy = this.caseFlagParentFormGroup.get(CaseFlagFormFields.OTHER_FLAG_DESCRIPTION_WELSH).value;
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
// Ensure that any comments entered with language set to Welsh do not end up in the English comments field
|
|
548
|
-
if (this.rpxTranslationService.language !== 'cy') {
|
|
549
|
-
flagDetailToUpdate.value.flagComment = this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS)?.value;
|
|
550
|
-
}
|
|
551
|
-
// Populate from the *English* comments field if:
|
|
552
|
-
// * The Welsh comments field has no value (Welsh comments field acquires a value only when an HMCTS internal user has
|
|
553
|
-
// gone through the "add translation" step for Manage Case Flags), AND
|
|
554
|
-
// * The language is set to Welsh
|
|
555
|
-
// If the FormControl doesn't exist, it means this field wasn't visited as part of the "Update Flag" journey, so do
|
|
556
|
-
// *not* update its value (otherwise it will be overridden) - unless the user is external AND working in Welsh
|
|
557
|
-
if (this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS_WELSH) || this.rpxTranslationService.language === 'cy') {
|
|
558
|
-
flagDetailToUpdate.value.flagComment_cy = this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS_WELSH)?.value
|
|
559
|
-
? this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS_WELSH)?.value
|
|
560
|
-
: this.rpxTranslationService.language === 'cy'
|
|
561
|
-
? this.caseFlagParentFormGroup.get(CaseFlagFormFields.COMMENTS)?.value
|
|
562
|
-
: null;
|
|
563
|
-
}
|
|
564
|
-
flagDetailToUpdate.value.flagUpdateComment = this.caseFlagParentFormGroup.get(CaseFlagFormFields.STATUS_CHANGE_REASON)?.value;
|
|
565
|
-
flagDetailToUpdate.value.status = CaseFlagStatus[this.caseFlagParentFormGroup.get(CaseFlagFormFields.STATUS)?.value];
|
|
566
|
-
flagDetailToUpdate.value.dateTimeModified = new Date().toISOString();
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
}
|
|
570
|
-
isAtFinalState() {
|
|
571
|
-
return this.isDisplayContextParameterUpdate
|
|
572
|
-
? this.fieldState === this.manageFlagFinalState
|
|
573
|
-
: !this.isDisplayContextParameter2Point1Enabled
|
|
574
|
-
? this.fieldState === CaseFlagFieldState.FLAG_COMMENTS
|
|
575
|
-
: this.fieldState === CaseFlagFieldState.FLAG_STATUS;
|
|
576
|
-
}
|
|
577
|
-
navigateToErrorElement(elementId) {
|
|
578
|
-
if (elementId) {
|
|
579
|
-
const htmlElement = document.getElementById(elementId);
|
|
580
|
-
if (htmlElement) {
|
|
581
|
-
htmlElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
582
|
-
htmlElement.focus();
|
|
583
|
-
}
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
onFlagCommentsOptionalEmitted(_) {
|
|
587
|
-
this.flagCommentsOptional = true;
|
|
588
|
-
}
|
|
589
|
-
populateNewFlagDetailInstance() {
|
|
590
|
-
const langSearchTerm = this.caseFlagParentFormGroup?.value['languageSearchTerm'];
|
|
591
|
-
const manualLangEntry = this.caseFlagParentFormGroup?.value['manualLanguageEntry'];
|
|
592
|
-
const flagType = this.caseFlagParentFormGroup?.value['flagType'];
|
|
593
|
-
const otherDesc = this.caseFlagParentFormGroup?.value['otherDescription'];
|
|
594
|
-
const formValues = this.caseFlagParentFormGroup?.value;
|
|
595
|
-
return {
|
|
596
|
-
name: this.flagType?.name,
|
|
597
|
-
name_cy: flagType?.name_cy,
|
|
598
|
-
// Currently, subTypeValue, subTypeValue_cy and subTypeKey are applicable only to language flag types
|
|
599
|
-
subTypeValue: langSearchTerm && this.rpxTranslationService.language === 'en'
|
|
600
|
-
? langSearchTerm.value
|
|
601
|
-
: manualLangEntry && this.rpxTranslationService.language === 'en'
|
|
602
|
-
? manualLangEntry
|
|
603
|
-
: null,
|
|
604
|
-
subTypeValue_cy: langSearchTerm && this.rpxTranslationService.language === 'cy'
|
|
605
|
-
? langSearchTerm?.value_cy
|
|
606
|
-
: manualLangEntry && this.rpxTranslationService.language === 'cy'
|
|
607
|
-
? manualLangEntry
|
|
608
|
-
: null,
|
|
609
|
-
// For user-entered (i.e. non-Reference Data) languages, there is no key
|
|
610
|
-
subTypeKey: langSearchTerm
|
|
611
|
-
? langSearchTerm.key
|
|
612
|
-
: null,
|
|
613
|
-
otherDescription: flagType?.flagCode === this.otherFlagTypeCode &&
|
|
614
|
-
otherDesc && this.rpxTranslationService.language === 'en'
|
|
615
|
-
? otherDesc
|
|
616
|
-
: null,
|
|
617
|
-
otherDescription_cy: flagType?.flagCode === this.otherFlagTypeCode &&
|
|
618
|
-
otherDesc && this.rpxTranslationService.language === 'cy'
|
|
619
|
-
? otherDesc
|
|
620
|
-
: null,
|
|
621
|
-
flagComment: this.rpxTranslationService.language === 'en'
|
|
622
|
-
? formValues?.flagComments
|
|
623
|
-
: null,
|
|
624
|
-
flagComment_cy: this.rpxTranslationService.language === 'cy'
|
|
625
|
-
? formValues?.flagComments
|
|
626
|
-
: null,
|
|
627
|
-
flagUpdateComment: formValues?.statusReason,
|
|
628
|
-
dateTimeCreated: new Date().toISOString(),
|
|
629
|
-
path: flagType?.Path &&
|
|
630
|
-
flagType?.Path.map(pathValue => Object.assign({ id: null, value: pathValue })),
|
|
631
|
-
hearingRelevant: flagType?.hearingRelevant ? 'Yes' : 'No',
|
|
632
|
-
flagCode: flagType?.flagCode,
|
|
633
|
-
// Status should be set to whatever the default is for this flag type, if flag is being created by an external
|
|
634
|
-
// user, otherwise it should be set to "Active" if Case Flags v2.1 is NOT enabled, or the selected status if it is
|
|
635
|
-
status: this.isDisplayContextParameterExternal
|
|
636
|
-
? flagType?.defaultStatus
|
|
637
|
-
: !this.isDisplayContextParameter2Point1Enabled
|
|
638
|
-
? CaseFlagStatus.ACTIVE
|
|
639
|
-
: CaseFlagStatus[formValues?.selectedStatus],
|
|
640
|
-
availableExternally: flagType?.externallyAvailable ? 'Yes' : 'No'
|
|
641
|
-
};
|
|
642
|
-
}
|
|
643
|
-
moveToFinalReviewStage() {
|
|
644
|
-
this.setFlagsCaseFieldValue();
|
|
645
|
-
// Check that no errors have been set on caseFlagParentFormGroup (by determineLocationForFlag()); prevent moving to
|
|
646
|
-
// final review stage if errors exist
|
|
647
|
-
if (!this.caseFlagParentFormGroup.errors) {
|
|
648
|
-
// Clear the "notAllCaseFlagStagesCompleted" error
|
|
649
|
-
this.allCaseFlagStagesCompleted = true;
|
|
650
|
-
this.formGroup.updateValueAndValidity();
|
|
651
|
-
this.caseEditDataService.setTriggerSubmitEvent(true);
|
|
652
|
-
// Update this.selectedFlagsLocation with the correctly determined location, so the correct value is available to
|
|
653
|
-
// ReadCaseFlagFieldComponent when it initialises the Case Flag Summary page
|
|
654
|
-
this.selectedFlagsLocation = this.determinedLocation;
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
ngOnDestroy() {
|
|
658
|
-
// Reset the fieldstateToNavigate as the write journey completes at this point
|
|
659
|
-
this.caseFlagStateService.fieldStateToNavigate = undefined;
|
|
660
|
-
this.caseTitleSubscription?.unsubscribe();
|
|
661
|
-
}
|
|
662
|
-
get manageFlagFinalState() {
|
|
663
|
-
return this.caseFlagParentFormGroup.get(CaseFlagFormFields.IS_WELSH_TRANSLATION_NEEDED)?.value
|
|
664
|
-
? CaseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION : CaseFlagFieldState.FLAG_UPDATE;
|
|
665
|
-
}
|
|
666
|
-
setDisplayContextParameter(caseFields) {
|
|
667
|
-
return caseFields.find(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']))?.display_context_parameter;
|
|
668
|
-
}
|
|
669
|
-
}
|
|
670
|
-
WriteCaseFlagFieldComponent.ɵfac = function WriteCaseFlagFieldComponent_Factory(t) { return new (t || WriteCaseFlagFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i2.CaseEditDataService), i0.ɵɵdirectiveInject(i3.CaseFlagStateService), i0.ɵɵdirectiveInject(i4.RpxTranslationService)); };
|
|
671
|
-
WriteCaseFlagFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteCaseFlagFieldComponent, selectors: [["ccd-write-case-flag-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 3, consts: [["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], ["class", "form-group", 3, "formGroup", 4, "ngIf"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], ["class", "govuk-error-summary__body", 4, "ngFor", "ngForOf"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [1, "validation-error", 3, "click"], [1, "form-group", 3, "formGroup"], [1, "govuk-form-group", 3, "ngSwitch"], [4, "ngSwitchCase"], [3, "formGroup", "flagsData", "isDisplayContextParameterExternal", "caseFlagStateEmitter"], [3, "formGroup", "jurisdiction", "caseTypeId", "hmctsServiceId", "isDisplayContextParameterExternal", "isDisplayContextParameter2Point1Enabled", "selectedFlagsLocation", "caseFlagStateEmitter", "flagCommentsOptionalEmitter"], [3, "formGroup", "flagType", "caseFlagStateEmitter"], [3, "formGroup", "optional", "isDisplayContextParameterExternal", "isDisplayContextParameter2Point1Enabled", "caseFlagStateEmitter"], [3, "formGroup", "defaultStatus", "caseFlagStateEmitter"], [3, "formGroup", "flagsData", "caseTitle", "displayContextParameter", "caseFlagStateEmitter"], [3, "formGroup", "displayContextParameter", "caseFlagStateEmitter"], [3, "formGroup", "caseFlagStateEmitter"]], template: function WriteCaseFlagFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
672
|
-
i0.ɵɵtemplate(0, WriteCaseFlagFieldComponent_div_0_Template, 5, 4, "div", 0);
|
|
673
|
-
i0.ɵɵtemplate(1, WriteCaseFlagFieldComponent_div_1_Template, 7, 7, "div", 1);
|
|
674
|
-
i0.ɵɵtemplate(2, WriteCaseFlagFieldComponent_div_2_Template, 5, 5, "div", 1);
|
|
675
|
-
} if (rf & 2) {
|
|
676
|
-
i0.ɵɵproperty("ngIf", ctx.errorMessages.length > 0);
|
|
677
|
-
i0.ɵɵadvance(1);
|
|
678
|
-
i0.ɵɵproperty("ngIf", !ctx.isDisplayContextParameterUpdate);
|
|
679
|
-
i0.ɵɵadvance(1);
|
|
680
|
-
i0.ɵɵproperty("ngIf", ctx.isDisplayContextParameterUpdate);
|
|
681
|
-
} }, styles: [".validation-error[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:#d4351c}"] });
|
|
682
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteCaseFlagFieldComponent, [{
|
|
683
|
-
type: Component,
|
|
684
|
-
args: [{ selector: 'ccd-write-case-flag-field', template: "<!-- Error message summary -->\n<div *ngIf=\"errorMessages.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 errorMessage of errorMessages\" class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a (click)=\"navigateToErrorElement(errorMessage.fieldId)\" class=\"validation-error\">{{errorMessage.description | rpxTranslate}}</a>\n </li>\n </ul>\n </div>\n</div>\n<div *ngIf=\"!isDisplayContextParameterUpdate\" class=\"form-group\" [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngSwitch]=\"fieldState\">\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_LOCATION\">\n <ccd-select-flag-location\n [formGroup]=\"caseFlagParentFormGroup\" [flagsData]=\"flagsData\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"\n [isDisplayContextParameterExternal]=\"isDisplayContextParameterExternal\"\n ></ccd-select-flag-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_TYPE\">\n <ccd-select-flag-type [formGroup]=\"caseFlagParentFormGroup\" [jurisdiction]=\"jurisdiction\" [caseTypeId]=\"caseTypeId\"\n [hmctsServiceId]=\"hmctsServiceId\" [isDisplayContextParameterExternal]=\"isDisplayContextParameterExternal\"\n [isDisplayContextParameter2Point1Enabled]=\"isDisplayContextParameter2Point1Enabled\"\n [selectedFlagsLocation]=\"selectedFlagsLocation\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"\n (flagCommentsOptionalEmitter)=\"onFlagCommentsOptionalEmitted($event)\"></ccd-select-flag-type>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_LANGUAGE_INTERPRETER\">\n <ccd-search-language-interpreter [formGroup]=\"caseFlagParentFormGroup\"\n [flagType]=\"flagType\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\">\n </ccd-search-language-interpreter>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_COMMENTS\">\n <ccd-add-comments [formGroup]=\"caseFlagParentFormGroup\" [optional]=\"flagCommentsOptional\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"\n [isDisplayContextParameterExternal]=\"isDisplayContextParameterExternal\"\n [isDisplayContextParameter2Point1Enabled]=\"isDisplayContextParameter2Point1Enabled\">\n </ccd-add-comments>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_STATUS\">\n <ccd-confirm-flag-status [formGroup]=\"caseFlagParentFormGroup\" [defaultStatus]=\"flagType.defaultStatus\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"></ccd-confirm-flag-status>\n </ng-container>\n </div>\n</div>\n<div *ngIf=\"isDisplayContextParameterUpdate\" class=\"form-group\" [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngSwitch]=\"fieldState\">\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_MANAGE_CASE_FLAGS\">\n <ccd-manage-case-flags [formGroup]=\"caseFlagParentFormGroup\" [flagsData]=\"flagsData\" [caseTitle]=\"caseTitle\"\n [displayContextParameter]=\"displayContextParameter\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"></ccd-manage-case-flags>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_UPDATE\">\n <ccd-update-flag [formGroup]=\"caseFlagParentFormGroup\"\n [displayContextParameter]=\"displayContextParameter\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"></ccd-update-flag>\n </ng-container>\n <ng-container *ngSwitchCase=\"caseFlagFieldState.FLAG_UPDATE_WELSH_TRANSLATION\">\n <ccd-update-flag-add-translation-form\n [formGroup]=\"caseFlagParentFormGroup\"\n (caseFlagStateEmitter)=\"onCaseFlagStateEmitted($event)\"\n ></ccd-update-flag-add-translation-form>\n </ng-container>\n </div>\n</div>\n", styles: [".validation-error{cursor:pointer;text-decoration:underline;color:#d4351c}\n"] }]
|
|
685
|
-
}], function () { return [{ type: i1.ActivatedRoute }, { type: i2.CaseEditDataService }, { type: i3.CaseFlagStateService }, { type: i4.RpxTranslationService }]; }, null); })();
|
|
686
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy93cml0ZS1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3dyaXRlLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQW1CLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUc3RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDMUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFM0YsT0FBTyxFQUFFLCtCQUErQixFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7SUNQdEksOEJBQWtGLFlBQUEsU0FBQSxXQUFBO0lBR3pFLDZPQUFTLGVBQUEsc0RBQTRDLENBQUEsSUFBQztJQUEwQixZQUEyQzs7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Q0FBQyxDQUFDO1lBQ3JELGlIQUFpSDtZQUNqSCw0RUFBNEU7WUFDNUUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLDhFQUE4RTtRQUM5RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLEdBQUcsU0FBUyxDQUFDO1FBQzNELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLEVBQUUsS0FBSztZQUM5RixDQUFDLENBQUMsa0JBQWtCLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztJQUN0RixDQUFDO0lBRU0sMEJBQTBCLENBQUMsVUFBdUI7UUFDdkQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSx5QkFBeUIsQ0FBQztJQUM3SCxDQUFDOztzR0E5aEJVLDJCQUEyQjs4RUFBM0IsMkJBQTJCO1FDbEJ4Qyw0RUFXTTtRQUNOLDRFQW1DTTtRQUNOLDRFQW1CTTs7UUFuRUEsbURBQThCO1FBWTlCLGVBQXNDO1FBQXRDLDJEQUFzQztRQW9DdEMsZUFBcUM7UUFBckMsMERBQXFDOzt1RkQ5QjlCLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUnB4VHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAncnB4LXh1aS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhc2VFZGl0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2Nhc2UtZWRpdC1kYXRhL2Nhc2UtZWRpdC1kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRmxhZ1R5cGUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vY2FzZS1mbGFnJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGRzJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZS1mbGFnLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgRmxhZ0RldGFpbCwgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCwgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIsIENhc2VGbGFnRXJyb3JNZXNzYWdlLCBDYXNlRmxhZ0ZpZWxkU3RhdGUsIENhc2VGbGFnRm9ybUZpZWxkcywgQ2FzZUZsYWdTdGF0dXMgfSBmcm9tICcuL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWNhc2UtZmxhZy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93cml0ZS1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBXcml0ZUNhc2VGbGFnRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBmaWVsZFN0YXRlOiBudW1iZXI7XG4gIHB1YmxpYyBjYXNlRmxhZ0ZpZWxkU3RhdGUgPSBDYXNlRmxhZ0ZpZWxkU3RhdGU7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgZmxhZ3NEYXRhOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoW107XG4gIHB1YmxpYyBzZWxlY3RlZEZsYWc6IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGg7XG4gIHB1YmxpYyBjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBwdWJsaWMgZmxhZ0NvbW1lbnRzT3B0aW9uYWwgPSBmYWxzZTtcbiAgcHVibGljIGp1cmlzZGljdGlvbjogc3RyaW5nO1xuICBwdWJsaWMgY2FzZVR5cGVJZDogc3RyaW5nO1xuICBwdWJsaWMgaG1jdHNTZXJ2aWNlSWQ6IHN0cmluZztcbiAgcHVibGljIGlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGU6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWw6IGJvb2xlYW47XG4gIHB1YmxpYyBpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBjYXNlVGl0bGU6IHN0cmluZztcbiAgcHVibGljIGNhc2VUaXRsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXI6IHN0cmluZztcbiAgcHVibGljIGRldGVybWluZWRMb2NhdGlvbjogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aDtcbiAgcHJpdmF0ZSBhbGxDYXNlRmxhZ1N0YWdlc0NvbXBsZXRlZCA9IGZhbHNlO1xuICAvLyBDb2RlIGZvciBcIk90aGVyXCIgZmxhZyB0eXBlIGFzIGRlZmluZWQgaW4gUmVmZXJlbmNlIERhdGFcbiAgcHJpdmF0ZSByZWFkb25seSBvdGhlckZsYWdUeXBlQ29kZSA9ICdPVDAwMDEnO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uID0gJ3NlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uJztcbiAgcHVibGljIHJlYWRvbmx5IGNhc2VOYW1lTWlzc2luZyA9ICdDYXNlIG5hbWUgbWlzc2luZyc7XG5cbiAgcHVibGljIGdldCBmbGFnVHlwZSgpOiBGbGFnVHlwZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwPy52YWx1ZS5mbGFnVHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRGbGFnc0xvY2F0aW9uKCk6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cD8udmFsdWUuc2VsZWN0ZWRMb2NhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRGbGFnc0xvY2F0aW9uKHNlbGVjdGVkTG9jYXRpb246IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXApIHtcbiAgICAgIHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAudmFsdWUuc2VsZWN0ZWRMb2NhdGlvbiA9IHNlbGVjdGVkTG9jYXRpb247XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlRWRpdERhdGFTZXJ2aWNlOiBDYXNlRWRpdERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUZsYWdTdGF0ZVNlcnZpY2U6IENhc2VGbGFnU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcnB4VHJhbnNsYXRpb25TZXJ2aWNlOiBScHhUcmFuc2xhdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBJZiBpdCBpcyBzdGFydCBvZiB0aGUgam91cm5leSBvciBuYXZpZ2F0aW9uIGZyb20gY2hlY2sgeW91ciBhbnN3ZXJzIHBhZ2UgdGhlbiBmaWVsZFN0YXRlVG9OYXZpZ2F0ZSBwcm9wZXJ0eVxuICAgIC8vIGluIGNhc2UgZmxhZyBzdGF0ZSBzZXJ2aWNlIHdpbGwgY29udGFpbiB0aGUgZmllbGQgc3RhdGUgdG8gbmF2aWdhdGUgYmFzZWQgb24gY3JlYXRlIG9yIG1hbmFnZSBqb3VybmV5XG4gICAgdGhpcy5maWVsZFN0YXRlID0gdGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5maWVsZFN0YXRlVG9OYXZpZ2F0ZTtcbiAgICBpZiAodGhpcy5maWVsZFN0YXRlID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgdGhpcy5maWVsZFN0YXRlID09PSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19MT0NBVElPTiB8fFxuICAgICAgICB0aGlzLmZpZWxkU3RhdGUgPT09IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcztcbiAgICAgIC8vIENsZWFyIHRoZSBmb3JtIGdyb3VwLCBmaWVsZCBzdGF0ZSB0byBuYXZpZ2F0ZSBhbmQgc2V0IHRoZSBwYWdlIGxvY2F0aW9uXG4gICAgICB0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLnJlc2V0Q2FjaGUoYC4uLyR7cGFyYW1zWydlaWQnXX0vJHtwYXJhbXNbJ3BhZ2UnXX1gKTtcbiAgICB9XG4gICAgLy8gUmVhc3NpZ24gdGhlIGZvcm0gZ3JvdXAgZnJvbSB0aGUgY2FzZSBmbGFnIHN0YXRlIHNlcnZpY2VcbiAgICB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwID0gdGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5mb3JtR3JvdXA7XG4gICAgLy8gQ2xlYXIgZm9ybSB2YWxpZGF0aW9uIGVycm9ycyBhcyBhIG5ldyBwYWdlIHdpbGwgYmUgcmVuZGVyZWQgYmFzZWQgb24gZmllbGQgc3RhdGVcbiAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2UuY2xlYXJGb3JtVmFsaWRhdGlvbkVycm9ycygpO1xuICAgIC8vIENoZWNrIGZvciBleGlzdGluZyBGbGFnTGF1bmNoZXIgY29udHJvbCBpbiBwYXJlbnQgYW5kIHJlbW92ZSBpdCAtIHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGVuc3VyZSBpdHMgaW52YWxpZGl0eVxuICAgIC8vIGlzIHNldCBjb3JyZWN0bHkgYXQgdGhlIHN0YXJ0LCB3aGVuIHRoZSBjb21wb25lbnQgaXMgcmVsb2FkZWQgYW5kIHRoZSBjb250cm9sIGlzIHJlLXJlZ2lzdGVyZWQuIE90aGVyd2lzZSwgdGhlXG4gICAgLy8gdmFsaWRhdG9yIHN0YXRlIGdldHMgY2FycmllZCBvdmVyXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmNhc2VGaWVsZC5pZCkpIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLnJlbW92ZUNvbnRyb2wodGhpcy5jYXNlRmllbGQuaWQpO1xuICAgIH1cbiAgICAvLyBGcm9tIHRoaXMgcG9pbnQsIHRoaXMuZm9ybUdyb3VwIHJlZmVycyB0byB0aGUgRm9ybUdyb3VwIGZvciB0aGUgRmxhZ0xhdW5jaGVyIGZpZWxkLCBub3QgdGhlIHBhcmVudCBGb3JtR3JvdXBcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtR3JvdXAoe30sIHtcbiAgICAgIHZhbGlkYXRvcnM6IChfOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuYWxsQ2FzZUZsYWdTdGFnZXNDb21wbGV0ZWQpIHtcbiAgICAgICAgICAvLyBSZXR1cm4gYW4gZXJyb3IgdG8gbWFyayB0aGUgRm9ybUdyb3VwIGFzIGludmFsaWQgaWYgbm90IGFsbCBDYXNlIEZsYWcgc3RhZ2VzIGhhdmUgYmVlbiBjb21wbGV0ZWRcbiAgICAgICAgICByZXR1cm4geyBub3RBbGxDYXNlRmxhZ1N0YWdlc0NvbXBsZXRlZDogdHJ1ZSB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH0pLCB0cnVlKSBhcyBGb3JtR3JvdXA7XG5cbiAgICAvLyBHZXQgdGhlIGNhc2UgdHlwZSBJRCBmcm9tIHRoZSBDYXNlVmlldyBvYmplY3QgaW4gdGhlIHNuYXBzaG90IGRhdGEgKHJlcXVpcmVkIGZvciByZXRyaWV2aW5nIHRoZSBhdmFpbGFibGUgZmxhZ1xuICAgIC8vIHR5cGVzIGZvciBhIGNhc2UpXG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlICYmIHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlLmNhc2VfdHlwZSkge1xuICAgICAgdGhpcy5jYXNlVHlwZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UuY2FzZV90eXBlLmlkO1xuICAgICAgLy8gR2V0IHRoZSBqdXJpc2RpY3Rpb24gKHJlcXVpcmVkIGZvciByZXRyaWV2aW5nIHRoZSBhdmFpbGFibGUgZmxhZyB0eXBlcyBpZiB1bmFibGUgdG8gZGV0ZXJtaW5lIHVzaW5nIGNhc2UgdHlwZSBJRClcbiAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS5jYXNlX3R5cGUuanVyaXNkaWN0aW9uKSB7XG4gICAgICAgIHRoaXMuanVyaXNkaWN0aW9uID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UuY2FzZV90eXBlLmp1cmlzZGljdGlvbi5pZDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gRXh0cmFjdCBhbGwgZmxhZ3MtcmVsYXRlZCBkYXRhIGZyb20gdGhlIENhc2VFdmVudFRyaWdnZXIgb2JqZWN0IGluIHRoZSBzbmFwc2hvdCBkYXRhXG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5ldmVudFRyaWdnZXIpIHtcbiAgICAgIC8vIEdldCB0aGUgSE1DVFNTZXJ2aWNlSWQgZnJvbSBzdXBwbGVtZW50YXJ5IGRhdGEsIGlmIGl0IGV4aXN0cyAocmVxdWlyZWQgZm9yIHJldHJpZXZpbmcgdGhlIGF2YWlsYWJsZSBmbGFnIHR5cGVzIGluXG4gICAgICAvLyB0aGUgZmlyc3QgaW5zdGFuY2UsIG9ubHkgZmFsbGluZyBiYWNrIG9uIGNhc2UgdHlwZSBJRCBvciBqdXJpc2RpY3Rpb24gaWYgaXQncyBub3QgcHJlc2VudClcbiAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZXZlbnRUcmlnZ2VyLnN1cHBsZW1lbnRhcnlfZGF0YVxuICAgICAgICAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZXZlbnRUcmlnZ2VyLnN1cHBsZW1lbnRhcnlfZGF0YS5ITUNUU1NlcnZpY2VJZCkge1xuICAgICAgICB0aGlzLmhtY3RzU2VydmljZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmV2ZW50VHJpZ2dlci5zdXBwbGVtZW50YXJ5X2RhdGEuSE1DVFNTZXJ2aWNlSWQ7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKSB7XG4gICAgICAgIHRoaXMuZmxhZ3NEYXRhID0gKCh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKSBhcyBDYXNlRmllbGRbXSlcbiAgICAgICAgICAucmVkdWNlKChmbGFncywgY2FzZUZpZWxkKSA9PiBGaWVsZHNVdGlscy5leHRyYWN0RmxhZ3NEYXRhRnJvbUNhc2VGaWVsZChmbGFncywgY2FzZUZpZWxkLCBjYXNlRmllbGQuaWQsIGNhc2VGaWVsZCksIFtdKTtcblxuICAgICAgICAvLyBTZXQgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgKHRvIGJlIHBhc3NlZCBhcyBhbiBpbnB1dCB0byBNYW5hZ2VDYXNlRmxhZ3NDb21wb25lbnQgZm9yIHNldHRpbmcgY29ycmVjdCB0aXRsZSlcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9XG4gICAgICAgICAgdGhpcy5zZXREaXNwbGF5Q29udGV4dFBhcmFtZXRlcih0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzIGFzIENhc2VGaWVsZFtdKTtcblxuICAgICAgICAvLyBTZXQgYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBkaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyIGlzIFwidXBkYXRlXCJcbiAgICAgICAgdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyVXBkYXRlID0gdGhpcy5zZXREaXNwbGF5Q29udGV4dFBhcmFtZXRlclVwZGF0ZSh0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyKTtcblxuICAgICAgICAvLyBTZXQgYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBkaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyIGlzIFwiZXh0ZXJuYWxcIlxuICAgICAgICB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCA9IHRoaXMuc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCh0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyKTtcblxuICAgICAgICAvLyBTZXQgYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBkaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyIGlzIENhc2UgRmxhZ3MgdjIuMSBlbmFibGVkXG4gICAgICAgIHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkID0gdGhpcy5zZXREaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkKHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIpO1xuXG4gICAgICAgIC8vIFNldCBzdGFydGluZyBmaWVsZCBzdGF0ZSBpZiBmaWVsZFN0YXRlIG5vdCB0aGUgcmlnaHQgdmFsdWVcbiAgICAgICAgaWYgKCF0aGlzLmZpZWxkU3RhdGUpIHtcbiAgICAgICAgICB0aGlzLmZpZWxkU3RhdGUgPSB0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGUgPyBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19NQU5BR0VfQ0FTRV9GTEFHUyA6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xPQ0FUSU9OO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IGNhc2UgdGl0bGUsIHRvIGJlIHVzZWQgYnkgY2hpbGQgY29tcG9uZW50c1xuICAgICAgICB0aGlzLmNhc2VUaXRsZVN1YnNjcmlwdGlvbiA9IHRoaXMuY2FzZUVkaXREYXRhU2VydmljZS5jYXNlVGl0bGUkLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogdGl0bGUgPT4ge1xuICAgICAgICAgICAgdGhpcy5jYXNlVGl0bGUgPSB0aXRsZT8ubGVuZ3RoID4gMCA/IHRpdGxlIDogdGhpcy5jYXNlTmFtZU1pc3Npbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGUoZGlzcGxheUNvbnRleHRQYXJhbWV0ZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEUgfHxcbiAgICAgIGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV9FWFRFUk5BTCB8fFxuICAgICAgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsKGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFX0VYVEVSTkFMIHx8XG4gICAgICBkaXNwbGF5Q29udGV4dFBhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUw7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZChkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLkNSRUFURV8yX1BPSU5UXzEgfHxcbiAgICAgIGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV8yX1BPSU5UXzE7XG4gIH1cblxuICBwdWJsaWMgb25DYXNlRmxhZ1N0YXRlRW1pdHRlZChjYXNlRmxhZ1N0YXRlOiBDYXNlRmxhZ1N0YXRlKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdERhdGFTZXJ2aWNlLmNsZWFyRm9ybVZhbGlkYXRpb25FcnJvcnMoKTtcblxuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IGNhc2VGbGFnU3RhdGUuZXJyb3JNZXNzYWdlcztcbiAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IGNhc2VGbGFnU3RhdGUuc2VsZWN0ZWRGbGFnO1xuXG4gICAgLy8gVmFsaWRhdGlvbiBzdWNjZWVkZWQ7IHByb2NlZWQgdG8gbmV4dCBzdGF0ZSBvciBmaW5hbCByZXZpZXcgc3RhZ2UgKFwiQ2hlY2sgeW91ciBhbnN3ZXJzXCIpXG4gICAgaWYgKHRoaXMuZXJyb3JNZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGlmICh0aGlzLmNhbk1vdmVUb0ZpbmFsUmV2aWV3U3RhZ2UoY2FzZUZsYWdTdGF0ZSkpIHtcbiAgICAgICAgdGhpcy5tb3ZlVG9GaW5hbFJldmlld1N0YWdlKCk7XG4gICAgICAgIC8vIERvbid0IG1vdmUgdG8gbmV4dCBzdGF0ZSBpZiBjdXJyZW50IHN0YXRlIGlzIENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1RZUEUgYW5kIHRoZSBmbGFnIHR5cGUgaXMgYSBwYXJlbnQgLSB0aGlzXG4gICAgICAgIC8vIG1lYW5zIHRoZSB1c2VyIG5lZWRzIHRvIHNlbGVjdCBmcm9tIHRoZSBuZXh0IHNldCBvZiBmbGFnIHR5cGVzIGJlZm9yZSB0aGV5IGNhbiBtb3ZlIG9uXG4gICAgICB9IGVsc2UgaWYgKCFjYXNlRmxhZ1N0YXRlLmlzUGFyZW50RmxhZ1R5cGUpIHtcbiAgICAgICAgLy8gUHJvY2VlZCB0byBuZXh0IHN0YXRlXG4gICAgICAgIHRoaXMucHJvY2VlZFRvTmV4dFN0YXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNhbk1vdmVUb0ZpbmFsUmV2aWV3U3RhZ2UoY2FzZUZsYWdTdGF0ZTogQ2FzZUZsYWdTdGF0ZSk6IGJvb2xlYW4ge1xuICAgIC8vIElmIHRoZSBqb3VybmV5IGlzIHJlcXVlc3Qgc3VwcG9ydCBvciBtYW5hZ2Ugc3VwcG9ydFxuICAgIC8vIGFuZCB0aGUgY3VycmVudCBzdGF0ZSBpcyBlaXRoZXIgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFMgb3IgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFXG4gICAgLy8gdGhlbiBtb3ZlIHRvIGZpbmFsIHJldmlldyBzdGFnZVxuICAgIGlmICh0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJFeHRlcm5hbCkge1xuICAgICAgcmV0dXJuIGNhc2VGbGFnU3RhdGUuY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfQ09NTUVOVFMgfHxcbiAgICAgICAgY2FzZUZsYWdTdGF0ZS5jdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlID09PSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEU7XG4gICAgfVxuICAgIC8vIElmIHRoZSBjdXJyZW50IHN0YXRlIGlzIG9uZSBvZjpcbiAgICAvLyAqIENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1NUQVRVUyBBTkQgQ2FzZSBGbGFncyB2Mi4xIGlzIGVuYWJsZWRcbiAgICAvLyAqIENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0NPTU1FTlRTIEFORCBDYXNlIEZsYWdzIHYyLjEgaXMgbm90IGVuYWJsZWRcbiAgICAvLyAqIENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURSBhbmQgV2Vsc2ggdHJhbnNsYXRpb24gY2hlY2tib3ggaXMgbm90IHNlbGVjdGVkXG4gICAgLy8gKiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEVfV0VMU0hfVFJBTlNMQVRJT05cbiAgICAvLyB0aGVuIG1vdmUgdG8gZmluYWwgcmV2aWV3IHN0YWdlXG4gICAgcmV0dXJuIChjYXNlRmxhZ1N0YXRlLmN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGUgPT09XG4gICAgICBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19TVEFUVVMgJiYgdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWQpIHx8XG4gICAgICAoY2FzZUZsYWdTdGF0ZS5jdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlID09PVxuICAgICAgICBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19DT01NRU5UUyAmJiAhdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWQpIHx8XG4gICAgICAoY2FzZUZsYWdTdGF0ZS5jdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlID09PSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19VUERBVEUgJiZcbiAgICAgICAgIXRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5JU19XRUxTSF9UUkFOU0xBVElPTl9ORUVERUQpPy52YWx1ZSkgfHxcbiAgICAgIGNhc2VGbGFnU3RhdGUuY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFX1dFTFNIX1RSQU5TTEFUSU9OO1xuICB9XG5cbiAgcHVibGljIHByb2NlZWRUb05leHRTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNBdEZpbmFsU3RhdGUoKSkge1xuICAgICAgLy8gU2tpcCB0aGUgXCJsYW5ndWFnZSBpbnRlcnByZXRlclwiIHN0YXRlIGlmIGN1cnJlbnQgc3RhdGUgaXMgQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSBhbmQgdGhlIGZsYWcgdHlwZSBkb2Vzbid0XG4gICAgICAvLyBoYXZlIGEgXCJsaXN0IG9mIHZhbHVlc1wiIC0gY3VycmVudGx5LCB0aGlzIGlzIHByZXNlbnQgb25seSBmb3IgdGhvc2UgZmxhZyB0eXBlcyB0aGF0IHJlcXVpcmUgbGFuZ3VhZ2UgaW50ZXJwcmV0ZXJcbiAgICAgIC8vIHNlbGVjdGlvblxuICAgICAgaWYgKHRoaXMuZmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSAmJiAhdGhpcy5mbGFnVHlwZT8ubGlzdE9mVmFsdWVzKSB7XG4gICAgICAgIHRoaXMuZmllbGRTdGF0ZSA9IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0NPTU1FTlRTO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5maWVsZFN0YXRlKys7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEZsYWdzQ2FzZUZpZWxkVmFsdWUoKTogdm9pZCB7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBzd2l0Y2gtZGVmYXVsdFxuICAgIHN3aXRjaCAodGhpcy5maWVsZFN0YXRlKSB7XG4gICAgICBjYXNlIENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1NUQVRVUzpcbiAgICAgICAgdGhpcy5hZGRGbGFnVG9Db2xsZWN0aW9uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19DT01NRU5UUzpcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsIHx8ICF0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZCkge1xuICAgICAgICAgIHRoaXMuYWRkRmxhZ1RvQ29sbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB0aGlzLm1hbmFnZUZsYWdGaW5hbFN0YXRlOlxuICAgICAgICB0aGlzLnVwZGF0ZUZsYWdJbkNvbGxlY3Rpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZEZsYWdUb0NvbGxlY3Rpb24oKTogdm9pZCB7XG4gICAgLy8gRW5zdXJlIG5vIG1vcmUgdGhhbiBvbmUgbmV3IGZsYWcgaXMgYmVpbmcgYWRkZWQgYXQgYSB0aW1lLCBieSBpdGVyYXRpbmcgdGhyb3VnaCBlYWNoIEZsYWdzIGNhc2UgZmllbGQgYW5kIHJlbW92aW5nXG4gICAgLy8gYW55IHByZXZpb3VzIGVudHJ5IGZyb20gdGhlIGRldGFpbHMgYXJyYXkgd2hlcmUgdGhhdCBlbnRyeSBoYXMgbm8gaWQgKGhlbmNlIGl0IGlzIG5ldyAtIGFuZCB0aGVyZSBzaG91bGQgYmUgb25seVxuICAgIC8vIG9uZSBzdWNoIGVudHJ5KS4gKFRoaXMgc2NlbmFyaW8gb2NjdXJzIGlmIHRoZSB1c2VyIHJlcGVhdHMgdGhlIENhc2UgRmxhZyBjcmVhdGlvbiBqb3VybmV5IGJ5IHVzaW5nIHRoZSBcIkNoYW5nZVwiXG4gICAgLy8gbGluayBhbmQgc2VsZWN0cyBlaXRoZXIgdGhlIHNhbWUgZmxhZyBsb2NhdGlvbiBhcyBiZWZvcmUgb3IgYSBkaWZmZXJlbnQgb25lLilcbiAgICB0aGlzLmZsYWdzRGF0YS5mb3JFYWNoKGluc3RhbmNlID0+IHtcbiAgICAgIC8vIFVzZSB0aGUgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgcHJvcGVydHkgZm9yIGVhY2ggRmxhZ3MgY2FzZSBmaWVsZCB0byBkcmlsbCBkb3duIHRvIHRoZSBjb3JyZWN0IHBhcnQgb2YgdGhlXG4gICAgICAvLyBDYXNlRmllbGQgdmFsdWUgdG8gcmVtb3ZlIHRoZSBuZXcgdmFsdWUgZnJvbVxuICAgICAgbGV0IHZhbHVlID0gaW5zdGFuY2UuY2FzZUZpZWxkPy52YWx1ZTtcbiAgICAgIGNvbnN0IHBhdGhUb1ZhbHVlID0gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgICAvLyBSb290LWxldmVsIEZsYWdzIENhc2VGaWVsZHMgZG9uJ3QgaGF2ZSBhIGRvdC1kZWxpbWl0ZWQgcGF0aCAtIGp1c3QgdGhlIENhc2VGaWVsZCBJRCBpdHNlbGYgLSBzbyBkb24ndCBkcmlsbCBkb3duXG4gICAgICBpZiAocGF0aFRvVmFsdWUuaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgICAgcGF0aFRvVmFsdWUuc2xpY2UocGF0aFRvVmFsdWUuaW5kZXhPZignLicpICsgMSkuc3BsaXQoJy4nKS5mb3JFYWNoKHBhcnQgPT4gdmFsdWUgPSB2YWx1ZVtwYXJ0XSk7XG4gICAgICB9XG4gICAgICBpZiAodmFsdWU/LmRldGFpbHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc3QgaW5kZXhPZk5ld0ZsYWdEZXRhaWwgPSB2YWx1ZS5kZXRhaWxzLmZpbmRJbmRleChlbGVtZW50ID0+ICFlbGVtZW50Lmhhc093blByb3BlcnR5KCdpZCcpKTtcbiAgICAgICAgaWYgKGluZGV4T2ZOZXdGbGFnRGV0YWlsID4gLTEpIHtcbiAgICAgICAgICB2YWx1ZS5kZXRhaWxzLnNwbGljZShpbmRleE9mTmV3RmxhZ0RldGFpbCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwPy52YWx1ZTtcbiAgICAvLyBEZXRlcm1pbmUgdGhlIGNvcnJlY3QgbG9jYXRpb24gLSBpbnRlcm5hbCBvciBleHRlcm5hbCAtIGZvciB0aGUgbmV3IGZsYWcuIElmIHJldHVybmVkIGFzIHVuZGVmaW5lZCwgdGhpc1xuICAgIC8vIGluZGljYXRlcyBhIGNvbmZpZ3VyYXRpb24gZXJyb3Igd2l0aCB0aGUgZXh0ZXJuYWwgYEZsYWdzYCBvYmplY3QgaW5zdGFuY2VcbiAgICB0aGlzLmRldGVybWluZWRMb2NhdGlvbiA9XG4gICAgICB0aGlzLmRldGVybWluZUxvY2F0aW9uRm9yRmxhZyghdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWwsIHRoaXMuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLCBmb3JtVmFsdWVzKTtcbiAgICAvLyBEbyBub3QgbXV0YXRlIHRoaXMuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uOyBpZiB0aGlzLnNlbGVjdGVkRmxhZ3NMb2NhdGlvbiBiZWNvbWVzIHVuZGVmaW5lZCxcbiAgICAvLyBkZXRlcm1pbmVMb2NhdGlvbkZvckZsYWcoKSB3aWxsIG5vIGxvbmdlciBkbyBhbnl0aGluZyB3aGVuIGNhbGxlZCB3aXRoIGl0IC0gYW5kIHRoZSBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlIHdpbGxcbiAgICAvLyBub3QgYmUgcmVkaXNwbGF5ZWQgaWYgdGhlIHVzZXIgY2xpY2tzIFwiTmV4dFwiIGFnYWluIG9uIHRoZSBcIkFkZCBjb21tZW50c1wiIHBhZ2UsIGFmdGVyIHRoZSBlcnJvciBpcyBmaXJzdCBzaG93blxuXG4gICAgaWYgKHRoaXMuZGV0ZXJtaW5lZExvY2F0aW9uKSB7XG4gICAgICBjb25zdCBwYXRoID0gdGhpcy5kZXRlcm1pbmVkTG9jYXRpb24ucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgICBjb25zdCBmbGFnRGF0YVJlZiA9IHRoaXMuZmxhZ3NEYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnBhdGhUb0ZsYWdzRm9ybUdyb3VwID09PSBwYXRoKTtcbiAgICAgIGxldCBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gZmxhZ0RhdGFSZWYuY2FzZUZpZWxkPy52YWx1ZTtcbiAgICAgIC8vIFVzZSB0aGUgcGF0aFRvRmxhZ3NGb3JtR3JvdXAgcHJvcGVydHkgZnJvbSB0aGUgc2VsZWN0ZWQgZmxhZyBsb2NhdGlvbiB0byBkcmlsbCBkb3duIHRvIHRoZSBjb3JyZWN0IHBhcnQgb2YgdGhlXG4gICAgICAvLyBDYXNlRmllbGQgdmFsdWUgdG8gYXBwbHkgY2hhbmdlcyB0b1xuICAgICAgLy8gUm9vdC1sZXZlbCBGbGFncyBDYXNlRmllbGRzIGRvbid0IGhhdmUgYSBkb3QtZGVsaW1pdGVkIHBhdGggLSBqdXN0IHRoZSBDYXNlRmllbGQgSUQgaXRzZWxmIC0gc28gZG9uJ3QgZHJpbGwgZG93blxuICAgICAgaWYgKHBhdGguaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgICAgcGF0aC5zbGljZShwYXRoLmluZGV4T2YoJy4nKSArIDEpLnNwbGl0KCcuJykuZm9yRWFjaChwYXJ0ID0+IGZsYWdzQ2FzZUZpZWxkVmFsdWUgPSBmbGFnc0Nhc2VGaWVsZFZhbHVlW3BhcnRdKTtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRoZSBDYXNlRmllbGQgZm9yIHRoZSBzZWxlY3RlZCBmbGFncyBsb2NhdGlvbiBoYXMgbm8gdmFsdWUsIHNldCBpdCB0byBhbiBlbXB0eSBvYmplY3Qgc28gaXQgY2FuIGJlIHBvcHVsYXRlZFxuICAgICAgLy8gd2l0aCBmbGFnIGRldGFpbHNcbiAgICAgIGlmICghZmxhZ3NDYXNlRmllbGRWYWx1ZSkge1xuICAgICAgICBmbGFnRGF0YVJlZi5jYXNlRmllbGQudmFsdWUgPSB7fTtcbiAgICAgICAgZmxhZ3NDYXNlRmllbGRWYWx1ZSA9IGZsYWdEYXRhUmVmLmNhc2VGaWVsZC52YWx1ZTtcbiAgICAgIH1cbiAgICAgIC8vIENyZWF0ZSBhIGRldGFpbHMgYXJyYXkgaWYgb25lIGRvZXMgbm90IGV4aXN0XG4gICAgICBpZiAoIWZsYWdzQ2FzZUZpZWxkVmFsdWUuaGFzT3duUHJvcGVydHkoJ2RldGFpbHMnKSkge1xuICAgICAgICBmbGFnc0Nhc2VGaWVsZFZhbHVlLmRldGFpbHMgPSBbXTtcbiAgICAgIH1cbiAgICAgIC8vIFBvcHVsYXRlIG5ldyBGbGFnRGV0YWlsIGluc3RhbmNlIGFuZCBhZGQgdG8gdGhlIEZsYWdzIGRhdGEgd2l0aGluIHRoZSBDYXNlRmllbGQgaW5zdGFuY2Ugb2YgdGhlIHNlbGVjdGVkIGZsYWdcbiAgICAgIC8vIGxvY2F0aW9uXG4gICAgICBmbGFnc0Nhc2VGaWVsZFZhbHVlLmRldGFpbHMucHVzaCh7dmFsdWU6IHRoaXMucG9wdWxhdGVOZXdGbGFnRGV0YWlsSW5zdGFuY2UoKX0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHRoZSBjb3JyZWN0IGxvY2F0aW9uIChpLmUuIGVpdGhlciB0aGUgaW50ZXJuYWwgb3IgZXh0ZXJuYWwgaW5zdGFuY2Ugb2YgYSBgRmxhZ3NgIG9iamVjdCkgZm9yIGEgbmV3IGZsYWcsXG4gICAqIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nOlxuICAgKlxuICAgKiAqIFdoZXRoZXIgdGhlIHVzZXIgaXMgaW50ZXJuYWwgb3IgZXh0ZXJuYWwgKG5vIGVmZmVjdCBmb3IgZXh0ZXJuYWwgdXNlcnMgYmVjYXVzZSB0aGV5IGNhbiBhY2Nlc3Mgb25seSB0aGUgZXh0ZXJuYWxcbiAgICogaW5zdGFuY2UpXG4gICAqICogVGhlIGV4aXN0ZW5jZSBvZiB0d28gYEZsYWdzYCBvYmplY3RzIC0gb25lIGludGVybmFsLCBvbmUgZXh0ZXJuYWwgLSBsaW5rZWQgYnkgdGhlIHNhbWUgYGdyb3VwSWRgO1xuICAgKiAqIEZvciBmbGFncyBvZiB0eXBlIFwiT3RoZXJcIiwgd2hldGhlciBcIm9ubHkgdmlzaWJsZSB0byBITUNUUyBzdGFmZlwiIGhhcyBiZWVuIHNlbGVjdGVkIG9yIG5vdCAoXCJPdGhlclwiIGRlZmF1bHRzIHRvXG4gICAqIGV4dGVybmFsbHkgdmlzaWJsZSk7XG4gICAqICogRm9yIGFsbCBvdGhlciBmbGFnIHR5cGVzLCB0aGUgdmFsdWUgb2YgdGhlIGBleHRlcm5hbGx5QXZhaWxhYmxlYCBhdHRyaWJ1dGUuXG4gICAqXG4gICAqIElmIHRoZSB1c2VyIGlzIGludGVybmFsIHRoZW4gdGhlIG5ldyBmbGFnIHNob3VsZCBiZSBhc3NpZ25lZCB0byB0aGUgZXh0ZXJuYWwgYEZsYWdzYCBpbnN0YW5jZSBpZjpcbiAgICogKiBTdWNoIGFuIGluc3RhbmNlIGV4aXN0cywgQU5EXG4gICAqICogVGhlIGZsYWcgdHlwZSBpcyBcIk90aGVyXCIgYW5kIFwib25seSB2aXNpYmxlIHRvIEhNQ1RTIHN0YWZmXCIgd2FzIG5vdCBzZWxlY3RlZCwgT1JcbiAgICogKiBUaGUgZmxhZyB0eXBlIGlzIG5vdCBcIk90aGVyXCIgYW5kIGBleHRlcm5hbGx5QXZhaWxhYmxlYCBpcyBgdHJ1ZWAuXG4gICAqXG4gICAqIEBwYXJhbSBpc0ludGVybmFsVXNlciBXaGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgaXMgaW50ZXJuYWwgb3Igbm90XG4gICAqIEBwYXJhbSBzZWxlY3RlZEZsYWdzTG9jYXRpb24gVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBsb2NhdGlvbiBmb3IgdGhlIG5ldyBmbGFnXG4gICAqIEBwYXJhbSBmb3JtVmFsdWVzIEFsbCB0aGUgdmFsdWVzIGZyb20gdGhlIGBjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cGBcbiAgICogQHJldHVybnMgVGhlIGNvcnJlY3RseSBkZXRlcm1pbmVkIGxvY2F0aW9uOiBlaXRoZXIgdGhlIGludGVybmFsIG9yIGV4dGVybmFsIGxvY2F0aW9uIChpZiBvbmUgZXhpc3RzKSB3aGVyZSBhIGdyb3VwSWRcbiAgICogaXMgcHJlc2VudDsgdGhlIG9yaWdpbmFsIGxvY2F0aW9uIG90aGVyd2lzZS4gKipOb3RlOioqIElmIHRoZSBleHRlcm5hbCBsb2NhdGlvbiBpcyByZXR1cm5lZCBhcyB1bmRlZmluZWQsIHRoaXNcbiAgICogaW5kaWNhdGVzIGEgY29uZmlndXJhdGlvbiBlcnJvclxuICAgKi9cbiAgcHVibGljIGRldGVybWluZUxvY2F0aW9uRm9yRmxhZyhpc0ludGVybmFsVXNlcjogYm9vbGVhbiwgc2VsZWN0ZWRGbGFnc0xvY2F0aW9uOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoLFxuICAgIGZvcm1WYWx1ZXM6IGFueSk6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGgge1xuICAgICAgaWYgKGlzSW50ZXJuYWxVc2VyICYmIHNlbGVjdGVkRmxhZ3NMb2NhdGlvbj8uZmxhZ3M/Lmdyb3VwSWQpIHtcbiAgICAgICAgaWYgKChmb3JtVmFsdWVzPy5mbGFnVHlwZT8uZmxhZ0NvZGUgPT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGUgJiYgIWZvcm1WYWx1ZXM/LmZsYWdJc1Zpc2libGVJbnRlcm5hbGx5T25seSkgfHxcbiAgICAgICAgICAoZm9ybVZhbHVlcz8uZmxhZ1R5cGU/LmZsYWdDb2RlICE9PSB0aGlzLm90aGVyRmxhZ1R5cGVDb2RlICYmIGZvcm1WYWx1ZXM/LmZsYWdUeXBlPy5leHRlcm5hbGx5QXZhaWxhYmxlKSkge1xuICAgICAgICAgICAgLy8gSWYgbmVjZXNzYXJ5LCBmaW5kIHRoZSBjb3JyZXNwb25kaW5nIGZsYWdzIG9iamVjdCB3aXRoIHRoZSBzYW1lIGdyb3VwSWQgYW5kIGV4dGVybmFsIHZpc2liaWxpdHkgKHNob3VsZCBiZVxuICAgICAgICAgICAgLy8gb25seSBvbmUgdW5sZXNzIG1pc2NvbmZpZ3VyZWQpXG4gICAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHNlbGVjdGVkRmxhZ3NMb2NhdGlvbi5mbGFncy52aXNpYmlsaXR5Py50b0xvd2VyQ2FzZSgpID09PSAnZXh0ZXJuYWwnXG4gICAgICAgICAgICAgID8gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uXG4gICAgICAgICAgICAgIDogdGhpcy5mbGFnc0RhdGEuZmlsdGVyKFxuICAgICAgICAgICAgICAgIChmKSA9PiBmLmZsYWdzPy5ncm91cElkID09PSBzZWxlY3RlZEZsYWdzTG9jYXRpb24uZmxhZ3MuZ3JvdXBJZCAmJlxuICAgICAgICAgICAgICAgIGYuZmxhZ3M/LnZpc2liaWxpdHk/LnRvTG93ZXJDYXNlKCkgPT09ICdleHRlcm5hbCcpPy5bMF07XG4gICAgICAgICAgICAvLyBJZiBsb2NhdGlvbiBpcyBub3QgdHJ1dGh5LCBzZXQgYW4gZXJyb3IgbWVzc2FnZSBhbmQgbWFrZSBjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cCBpbnZhbGlkIHRvIHByZXZlbnRcbiAgICAgICAgICAgIC8vIG5hdmlnYXRpb24gdG8gdGhlIHN1bW1hcnkgcGFnZSAoYnkgbm90IHRyaWdnZXJpbmcgdGhlIHN1Ym1pdCBldmVudClcbiAgICAgICAgICAgIGlmICghbG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogQ2FzZUZsYWdFcnJvck1lc3NhZ2UuTk9fRVhURVJOQUxfRkxBR1NfQ09MTEVDVElPTlxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgICAgIG5vRXh0ZXJuYWxDb2xsZWN0aW9uOiB0cnVlXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIG5lY2Vzc2FyeSwgZmluZCB0aGUgY29ycmVzcG9uZGluZyBmbGFncyBvYmplY3Qgd2l0aCB0aGUgc2FtZSBncm91cElkIGFuZCBpbnRlcm5hbCB2aXNpYmlsaXR5IChzaG91bGQgYmVcbiAgICAgICAgICAvLyBvbmx5IG9uZSB1bmxlc3MgbWlzY29uZmlndXJlZCk7IGFzc3VtZWQgdG8gYmUgaW50ZXJuYWwgaWYgdmlzaWJpbGl0eSBhdHRyaWJ1dGUgaXMgbnVsbCBvciB1bmRlZmluZWRcbiAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHNlbGVjdGVkRmxhZ3NMb2NhdGlvbi5mbGFncy52aXNpYmlsaXR5Py50b0xvd2VyQ2FzZSgpICE9PSAnZXh0ZXJuYWwnXG4gICAgICAgICAgICA/IHNlbGVjdGVkRmxhZ3NMb2NhdGlvblxuICAgICAgICAgICAgOiB0aGlzLmZsYWdzRGF0YS5maWx0ZXIoXG4gICAgICAgICAgICAgIChmKSA9PiBmLmZsYWdzPy5ncm91cElkID09PSBzZWxlY3RlZEZsYWdzTG9jYXRpb24uZmxhZ3MuZ3JvdXBJZCAmJlxuICAgICAgICAgICAgICBmLmZsYWdzPy52aXNpYmlsaXR5Py50b0xvd2VyQ2FzZSgpICE9PSAnZXh0ZXJuYWwnKT8uWzBdO1xuICAgICAgICAgIC8vIElmIGxvY2F0aW9uIGlzIG5vdCB0cnV0aHksIHNldCBhbiBlcnJvciBtZXNzYWdlIGFuZCBtYWtlIGNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwIGludmFsaWQgdG8gcHJldmVudFxuICAgICAgICAgIC8vIG5hdmlnYXRpb24gdG8gdGhlIHN1bW1hcnkgcGFnZSAoYnkgbm90IHRyaWdnZXJpbmcgdGhlIHN1Ym1pdCBldmVudClcbiAgICAgICAgICBpZiAoIWxvY2F0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IENhc2VGbGFnRXJyb3JNZXNzYWdlLk5PX0lOVEVSTkFMX0ZMQUdTX0NPTExFQ1RJT05cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgICBub0ludGVybmFsQ29sbGVjdGlvbjogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBsb2NhdGlvbjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHNlbGVjdGVkRmxhZ3NMb2NhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGbGFnSW5Db2xsZWN0aW9uKCk6IHZvaWQge1xuICAgIC8vIEVuc3VyZSBubyBtb3JlIHRoYW4gb25lIGZsYWcgaXMgYmVpbmcgdXBkYXRlZCBhdCBhIHRpbWUsIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIGVhY2ggRmxhZ3MgY2FzZSBmaWVsZCBhbmQgcmVzZXR0aW5nXG4gICAgLy8gdGhlIGRlc2NyaXB0aW9uLCBjb21tZW50cywgc3RhdHVzLCBhbmQgZGF0ZS90aW1lIG1vZGlmaWVkIChpZiBwcmVzZW50KSBmb3IgZWFjaCBlbnRyeSBpbiB0aGUgZGV0YWlscyBhcnJheSwgd2l0aFxuICAgIC8vIG9yaWdpbmFsIHZhbHVlcyBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGZvcm1hdHRlZF92YWx1ZSBwcm9wZXJ0eS4gKFRoaXMgc2NlbmFyaW8gb2NjdXJzIGlmIHRoZSB1c2VyIHJlcGVhdHMgdGhlXG4gICAgLy8gTWFuYWdlIENhc2UgRmxhZyBqb3VybmV5IGJ5IHVzaW5nIHRoZSBcIkNoYW5nZVwiIGxpbmsgYW5kIHNlbGVjdHMgYSBkaWZmZXJlbnQgZmxhZyB0byB1cGRhdGUuKVxuICAgIHRoaXMuZmxhZ3NEYXRhLmZvckVhY2goaW5zdGFuY2UgPT4ge1xuICAgICAgLy8gVXNlIHRoZSBwYXRoVG9GbGFnc0Zvcm1Hcm91cCBwcm9wZXJ0eSBmb3IgZWFjaCBGbGFncyBjYXNlIGZpZWxkIHRvIGRyaWxsIGRvd24gdG8gdGhlIGNvcnJlY3QgcGFydCBvZiB0aGVcbiAgICAgIC8vIENhc2VGaWVsZCB2YWx1ZSBmb3Igd2hpY2ggdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgdmFsdWVzXG4gICAgICBsZXQgdmFsdWUgPSBpbnN0YW5jZS5jYXNlRmllbGQ/LnZhbHVlO1xuICAgICAgbGV0IGZvcm1hdHRlZFZhbHVlID0gaW5zdGFuY2UuY2FzZUZpZWxkPy5mb3JtYXR0ZWRfdmFsdWU7XG4gICAgICBjb25zdCBwYXRoVG9WYWx1ZSA9IGluc3RhbmNlLnBhdGhUb0ZsYWdzRm9ybUdyb3VwO1xuICAgICAgLy8gUm9vdC1sZXZlbCBGbGFncyBDYXNlRmllbGRzIGRvbid0IGhhdmUgYSBkb3QtZGVsaW1pdGVkIHBhdGggLSBqdXN0IHRoZSBDYXNlRmllbGQgSUQgaXRzZWxmIC0gc28gZG9uJ3QgZHJpbGwgZG93blxuICAgICAgaWYgKHBhdGhUb1ZhbHVlLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICAgIHBhdGhUb1ZhbHVlLnNsaWNlKHBhdGhUb1ZhbHVlLmluZGV4T2YoJy4nKSArIDEpLnNwbGl0KCcuJykuZm9yRWFjaChwYXJ0ID0+IHtcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlW3BhcnRdO1xuICAgICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSAmJiBGaWVsZHNVdGlscy5pc05vbkVtcHR5T2JqZWN0KGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZVtwYXJ0XTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHZhbHVlPy5kZXRhaWxzPy5sZW5ndGggPiAwICYmIGZvcm1hdHRlZFZhbHVlICYmIEZpZWxkc1V0aWxzLmlzTm9uRW1wdHlPYmplY3QoZm9ybWF0dGVkVmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLmRldGFpbHMuZm9yRWFjaChmbGFnRGV0YWlsID0+IHtcbiAgICAgICAgICBjb25zdCBvcmlnaW5hbEZsYWdEZXRhaWwgPSBmb3JtYXR0ZWRWYWx1ZS5kZXRhaWxzPy5maW5kKGRldGFpbCA9PiBkZXRhaWwuaWQgPT09IGZsYWdEZXRhaWwuaWQpO1xuICAgICAgICAgIGlmIChvcmlnaW5hbEZsYWdEZXRhaWwpIHtcbiAgICAgICAgICAgIGZsYWdEZXRhaWwudmFsdWUub3RoZXJEZXNjcmlwdGlvbiA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8ub3RoZXJEZXNjcmlwdGlvbiB8fCBudWxsO1xuICAgICAgICAgICAgZmxhZ0RldGFpbC52YWx1ZS5vdGhlckRlc2NyaXB0aW9uX2N5ID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5vdGhlckRlc2NyaXB0aW9uX2N5IHx8IG51bGw7XG4gICAgICAgICAgICBmbGFnRGV0YWlsLnZhbHVlLmZsYWdDb21tZW50ID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5mbGFnQ29tbWVudCB8fCBudWxsO1xuICAgICAgICAgICAgZmxhZ0RldGFpbC52YWx1ZS5mbGFnQ29tbWVudF9jeSA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8uZmxhZ0NvbW1lbnRfY3kgfHwgbnVsbDtcbiAgICAgICAgICAgIGZsYWdEZXRhaWwudmFsdWUuZmxhZ1VwZGF0ZUNvbW1lbnQgPSBvcmlnaW5hbEZsYWdEZXRhaWwudmFsdWU/LmZsYWdVcGRhdGVDb21tZW50IHx8IG51bGw7XG4gICAgICAgICAgICBmbGFnRGV0YWlsLnZhbHVlLnN0YXR1cyA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8uc3RhdHVzO1xuICAgICAgICAgICAgZmxhZ0RldGFpbC52YWx1ZS5kYXRlVGltZU1vZGlmaWVkID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5kYXRlVGltZU1vZGlmaWVkIHx8IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRGbGFnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uKS52YWx1ZSBhcyBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoO1xuICAgIH1cbiAgICBsZXQgZmxhZ3NDYXNlRmllbGRWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRGbGFnLmNhc2VGaWVsZD8udmFsdWU7XG4gICAgLy8gVXNlIHRoZSBwYXRoVG9GbGFnc0Zvcm1Hcm91cCBwcm9wZXJ0eSBmcm9tIHRoZSBzZWxlY3RlZCBmbGFnIGxvY2F0aW9uIHRvIGRyaWxsIGRvd24gdG8gdGhlIGNvcnJlY3QgcGFydCBvZiB0aGVcbiAgICAvLyBDYXNlRmllbGQgdmFsdWUgdG8gYXBwbHkgY2hhbmdlcyB0b1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnNlbGVjdGVkRmxhZy5wYXRoVG9GbGFnc0Zvcm1Hcm91cDtcbiAgICAvLyBSb290LWxldmVsIEZsYWdzIENhc2VGaWVsZHMgZG9uJ3QgaGF2ZSBhIGRvdC1kZWxpbWl0ZWQgcGF0aCAtIGp1c3QgdGhlIENhc2VGaWVsZCBJRCBpdHNlbGYgLSBzbyBkb24ndCBkcmlsbCBkb3duXG4gICAgaWYgKHBhdGguaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgIHBhdGguc2xpY2UocGF0aC5pbmRleE9mKCcuJykgKyAxKS5zcGxpdCgnLicpLmZvckVhY2gocGFydCA9PiBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gZmxhZ3NDYXNlRmllbGRWYWx1ZVtwYXJ0XSk7XG4gICAgfVxuICAgIGlmIChmbGFnc0Nhc2VGaWVsZFZhbHVlKSB7XG4gICAgICBjb25zdCBmbGFnRGV0YWlsVG9VcGRhdGUgPSBmbGFnc0Nhc2VGaWVsZFZhbHVlLmRldGFpbHM/LmZpbmQoXG4gICAgICAgIGRldGFpbCA9PiBkZXRhaWwuaWQgPT09IHRoaXMuc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5Py5mbGFnRGV0YWlsPy5pZCk7XG4gICAgICBpZiAoZmxhZ0RldGFpbFRvVXBkYXRlKSB7XG4gICAgICAgIC8vIENhY2hlIHRoZSAqb3JpZ2luYWwqIHN0YXR1cyBvZiB0aGUgZmxhZyBiZWZvcmUgaXQgaXMgbW9kaWZpZWQuIFRoaXMgaXMgbmVlZGVkIGlmIHRoZSB1c2VyIGNoYW5nZXMgdGhlIGZsYWcgc3RhdHVzXG4gICAgICAgIC8vIHRoZW4gZGVjaWRlcyB0byByZXR1cm4gdG8gYW55IHBhcnQgb2YgdGhlIGZsYWcgdXBkYXRlIGpvdXJuZXkuIFRoZSBNYW5hZ2VDYXNlRmxhZ3NDb21wb25lbnQgYW5kIFVwZGF0ZUZsYWdDb21wb25lbnRcbiAgICAgICAgLy8gc2hvdWxkIHJlZmVyIHRvIGEgZmxhZydzIG9yaWdpbmFsIHN0YXR1cywgbm90IHRoZSBvbmUgc2V0IHZpYSB0aGUgVUkgYmVjYXVzZSB0aGlzIGhhc24ndCBiZWVuIHBlcnNpc3RlZCB5ZXRcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZsYWcub3JpZ2luYWxTdGF0dXMgPSBmbGFnRGV0YWlsVG9VcGRhdGUudmFsdWU/LnN0YXR1cztcbiAgICAgICAgLy8gVXBkYXRlIGRlc2NyaXB0aW9uIGZpZWxkcyBvbmx5IGlmIGZsYWcgdHlwZSBpcyBcIk90aGVyXCIgKGZsYWcgY29kZSBPVDAwMDEpOyB0aGVzZSBmaWVsZHMgYXBwbHkgb25seSB0byB0aGF0IGZsYWcgdHlwZVxuICAgICAgICAvLyBJZiB0aGVpciBGb3JtQ29udHJvbHMgZG9uJ3QgZXhpc3QsIGl0IG1lYW5zIHRoZXNlIGZpZWxkcyB3ZXJlbid0IHZpc2l0ZWQgYXMgcGFydCBvZiB0aGUgXCJVcGRhdGUgRmxhZ1wiIGpvdXJuZXksIHNvIGRvXG4gICAgICAgIC8vICpub3QqIHVwZGF0ZSB0aGVpciB2YWx1ZXMgKG90aGVyd2lzZSB0aGV5IHdpbGwgYmVjb21lIHVuZGVmaW5lZClcbiAgICAgICAgaWYgKGZsYWdEZXRhaWxUb1VwZGF0ZS52YWx1ZT8uZmxhZ0NvZGUgPT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGUpIHtcbiAgICAgICAgICBpZiAodGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLk9USEVSX0ZMQUdfREVTQ1JJUFRJT04pKSB7XG4gICAgICAgICAgICBmbGFnRGV0YWlsVG9VcGRhdGUudmFsdWUub3RoZXJEZXNjcmlwdGlvbiA9IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuZ2V0KFxuICAgICAgICAgICAgICBDYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTikudmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuT1RIRVJfRkxBR19ERVNDUklQVElPTl9XRUxTSCkpIHtcbiAgICAgICAgICAgIGZsYWdEZXRhaWxUb1VwZGF0ZS52YWx1ZS5vdGhlckRlc2NyaXB0aW9uX2N5ID0gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5nZXQoXG4gICAgICAgICAgICAgIENhc2VGbGFnRm9ybUZpZWxkcy5PVEhFUl9GTEFHX0RFU0NSSVBUSU9OX1dFTFNIKS52YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gRW5zdXJlIHRoYXQgYW55IGNvbW1lbnRzIGVudGVyZWQgd2l0aCBsYW5ndWFnZSBzZXQgdG8gV2Vsc2ggZG8gbm90IGVuZCB1cCBpbiB0aGUgRW5nbGlzaCBjb21tZW50cyBmaWVsZFxuICAgICAgICBpZiAodGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgIT09ICdjeScpIHtcbiAgICAgICAgICBmbGFnRGV0YWlsVG9VcGRhdGUudmFsdWUuZmxhZ0NvbW1lbnQgPSB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFMpPy52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQb3B1bGF0ZSBmcm9tIHRoZSAqRW5nbGlzaCogY29tbWVudHMgZmllbGQgaWY6XG4gICAgICAgIC8vICogVGhlIFdlbHNoIGNvbW1lbnRzIGZpZWxkIGhhcyBubyB2YWx1ZSAoV2Vsc2ggY29tbWVudHMgZmllbGQgYWNxdWlyZXMgYSB2YWx1ZSBvbmx5IHdoZW4gYW4gSE1DVFMgaW50ZXJuYWwgdXNlciBoYXNcbiAgICAgICAgLy8gZ29uZSB0aHJvdWdoIHRoZSBcImFkZCB0cmFuc2xhdGlvblwiIHN0ZXAgZm9yIE1hbmFnZSBDYXNlIEZsYWdzKSwgQU5EXG4gICAgICAgIC8vICogVGhlIGxhbmd1YWdlIGlzIHNldCB0byBXZWxzaFxuICAgICAgICAvLyBJZiB0aGUgRm9ybUNvbnRyb2wgZG9lc24ndCBleGlzdCwgaXQgbWVhbnMgdGhpcyBmaWVsZCB3YXNuJ3QgdmlzaXRlZCBhcyBwYXJ0IG9mIHRoZSBcIlVwZGF0ZSBGbGFnXCIgam91cm5leSwgc28gZG9cbiAgICAgICAgLy8gKm5vdCogdXBkYXRlIGl0cyB2YWx1ZSAob3RoZXJ3aXNlIGl0IHdpbGwgYmUgb3ZlcnJpZGRlbikgLSB1bmxlc3MgdGhlIHVzZXIgaXMgZXh0ZXJuYWwgQU5EIHdvcmtpbmcgaW4gV2Vsc2hcbiAgICAgICAgaWYgKHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UU19XRUxTSCkgfHwgdGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgPT09ICdjeScpIHtcbiAgICAgICAgICBmbGFnRGV0YWlsVG9VcGRhdGUudmFsdWUuZmxhZ0NvbW1lbnRfY3kgPSB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuQ09NTUVOVFNfV0VMU0gpPy52YWx1ZVxuICAgICAgICAgID8gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLkNPTU1FTlRTX1dFTFNIKT8udmFsdWVcbiAgICAgICAgICA6IHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnY3knXG4gICAgICAgICAgICA/IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAuZ2V0KENhc2VGbGFnRm9ybUZpZWxkcy5DT01NRU5UUyk/LnZhbHVlXG4gICAgICAgICAgICA6IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZmxhZ0RldGFpbFRvVXBkYXRlLnZhbHVlLmZsYWdVcGRhdGVDb21tZW50ID0gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cC5nZXQoQ2FzZUZsYWdGb3JtRmllbGRzLlNUQVRVU19DSEFOR0VfUkVBU09OKT8udmFsdWU7XG4gICAgICAgIGZsYWdEZXRhaWxUb1VwZGF0ZS52YWx1ZS5zdGF0dXMgPSBDYXNlRmxhZ1N0YXR1c1t0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuU1RBVFVTKT8udmFsdWVdO1xuICAgICAgICBmbGFnRGV0YWlsVG9VcGRhdGUudmFsdWUuZGF0ZVRpbWVNb2RpZmllZCA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNBdEZpbmFsU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlclVwZGF0ZVxuICAgICAgPyB0aGlzLmZpZWxkU3RhdGUgPT09IHRoaXMubWFuYWdlRmxhZ0ZpbmFsU3RhdGVcbiAgICAgIDogIXRoaXMuaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlcjJQb2ludDFFbmFibGVkXG4gICAgICAgID8gdGhpcy5maWVsZFN0YXRlID09PSBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19DT01NRU5UU1xuICAgICAgICA6IHRoaXMuZmllbGRTdGF0ZSA9PT0gQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfU1RBVFVTO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG9FcnJvckVsZW1lbnQoZWxlbWVudElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoZWxlbWVudElkKSB7XG4gICAgICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7XG4gICAgICBpZiAoaHRtbEVsZW1lbnQpIHtcbiAgICAgICAgaHRtbEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9KTtcbiAgICAgICAgaHRtbEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25GbGFnQ29tbWVudHNPcHRpb25hbEVtaXR0ZWQoXzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mbGFnQ29tbWVudHNPcHRpb25hbCA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgcG9wdWxhdGVOZXdGbGFnRGV0YWlsSW5zdGFuY2UoKTogRmxhZ0RldGFpbCB7XG4gICAgY29uc3QgbGFuZ1NlYXJjaFRlcm0gPSB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwPy52YWx1ZVsnbGFuZ3VhZ2VTZWFyY2hUZXJtJ107XG4gICAgY29uc3QgbWFudWFsTGFuZ0VudHJ5ID0gdGhpcy5jYXNlRmxhZ1BhcmVudEZvcm1Hcm91cD8udmFsdWVbJ21hbnVhbExhbmd1YWdlRW50cnknXTtcbiAgICBjb25zdCBmbGFnVHlwZSA9IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXA/LnZhbHVlWydmbGFnVHlwZSddO1xuICAgIGNvbnN0IG90aGVyRGVzYyA9IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXA/LnZhbHVlWydvdGhlckRlc2NyaXB0aW9uJ107XG4gICAgY29uc3QgZm9ybVZhbHVlcyA9IHRoaXMuY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXA/LnZhbHVlO1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB0aGlzLmZsYWdUeXBlPy5uYW1lLFxuICAgICAgbmFtZV9jeTogZmxhZ1R5cGU/Lm5hbWVfY3ksXG4gICAgICAvLyBDdXJyZW50bHksIHN1YlR5cGVWYWx1ZSwgc3ViVHlwZVZhbHVlX2N5IGFuZCBzdWJUeXBlS2V5IGFyZSBhcHBsaWNhYmxlIG9ubHkgdG8gbGFuZ3VhZ2UgZmxhZyB0eXBlc1xuICAgICAgc3ViVHlwZVZhbHVlOiBsYW5nU2VhcmNoVGVybSAmJiB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2VuJ1xuICAgICAgICA/IGxhbmdTZWFyY2hUZXJtLnZhbHVlXG4gICAgICAgIDogbWFudWFsTGFuZ0VudHJ5ICYmIHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnZW4nXG4gICAgICAgICAgPyBtYW51YWxMYW5nRW50cnlcbiAgICAgICAgICA6IG51bGwsXG4gICAgICBzdWJUeXBlVmFsdWVfY3k6IGxhbmdTZWFyY2hUZXJtICYmIHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnY3knXG4gICAgICA/IGxhbmdTZWFyY2hUZXJtPy52YWx1ZV9jeVxuICAgICAgOiBtYW51YWxMYW5nRW50cnkgJiYgdGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgPT09ICdjeSdcbiAgICAgICAgPyBtYW51YWxMYW5nRW50cnlcbiAgICAgICAgOiBudWxsLFxuICAgICAgLy8gRm9yIHVzZXItZW50ZXJlZCAoaS5lLiBub24tUmVmZXJlbmNlIERhdGEpIGxhbmd1YWdlcywgdGhlcmUgaXMgbm8ga2V5XG4gICAgICBzdWJUeXBlS2V5OiBsYW5nU2VhcmNoVGVybVxuICAgICAgICA/IGxhbmdTZWFyY2hUZXJtLmtleVxuICAgICAgICA6IG51bGwsXG4gICAgICBvdGhlckRlc2NyaXB0aW9uOiBmbGFnVHlwZT8uZmxhZ0NvZGUgPT09IHRoaXMub3RoZXJGbGFnVHlwZUNvZGUgJiZcbiAgICAgICAgb3RoZXJEZXNjICYmIHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnZW4nXG4gICAgICAgID8gb3RoZXJEZXNjXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgb3RoZXJEZXNjcmlwdGlvbl9jeTogZmxhZ1R5cGU/LmZsYWdDb2RlID09PSB0aGlzLm90aGVyRmxhZ1R5cGVDb2RlICYmXG4gICAgICAgIG90aGVyRGVzYyAmJiB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2N5J1xuICAgICAgICA/IG90aGVyRGVzY1xuICAgICAgICA6IG51bGwsXG4gICAgICBmbGFnQ29tbWVudDogdGhpcy5ycHhUcmFuc2xhdGlvblNlcnZpY2UubGFuZ3VhZ2UgPT09ICdlbidcbiAgICAgICAgPyBmb3JtVmFsdWVzPy5mbGFnQ29tbWVudHNcbiAgICAgICAgOiBudWxsLFxuICAgICAgZmxhZ0NvbW1lbnRfY3k6IHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlID09PSAnY3knXG4gICAgICAgID8gZm9ybVZhbHVlcz8uZmxhZ0NvbW1lbnRzXG4gICAgICAgIDogbnVsbCxcbiAgICAgIGZsYWdVcGRhdGVDb21tZW50OiBmb3JtVmFsdWVzPy5zdGF0dXNSZWFzb24sXG4gICAgICBkYXRlVGltZUNyZWF0ZWQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIHBhdGg6IGZsYWdUeXBlPy5QYXRoICYmXG4gICAgICAgIGZsYWdUeXBlPy5QYXRoLm1hcChwYXRoVmFsdWUgPT4gT2JqZWN0LmFzc2lnbih7IGlkOiBudWxsLCB2YWx1ZTogcGF0aFZhbHVlIH0pKSxcbiAgICAgIGhlYXJpbmdSZWxldmFudDogZmxhZ1R5cGU/LmhlYXJpbmdSZWxldmFudCA/ICdZZXMnIDogJ05vJyxcbiAgICAgIGZsYWdDb2RlOiBmbGFnVHlwZT8uZmxhZ0NvZGUsXG4gICAgICAvLyBTdGF0dXMgc2hvdWxkIGJlIHNldCB0byB3aGF0ZXZlciB0aGUgZGVmYXVsdCBpcyBmb3IgdGhpcyBmbGFnIHR5cGUsIGlmIGZsYWcgaXMgYmVpbmcgY3JlYXRlZCBieSBhbiBleHRlcm5hbFxuICAgICAgLy8gdXNlciwgb3RoZXJ3aXNlIGl0IHNob3VsZCBiZSBzZXQgdG8gXCJBY3RpdmVcIiBpZiBDYXNlIEZsYWdzIHYyLjEgaXMgTk9UIGVuYWJsZWQsIG9yIHRoZSBzZWxlY3RlZCBzdGF0dXMgaWYgaXQgaXNcbiAgICAgIHN0YXR1czogdGhpcy5pc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWxcbiAgICAgICAgPyBmbGFnVHlwZT8uZGVmYXVsdFN0YXR1c1xuICAgICAgICA6ICF0aGlzLmlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZFxuICAgICAgICAgID8gQ2FzZUZsYWdTdGF0dXMuQUNUSVZFXG4gICAgICAgICAgOiBDYXNlRmxhZ1N0YXR1c1tmb3JtVmFsdWVzPy5zZWxlY3RlZFN0YXR1c10sXG4gICAgICBhdmFpbGFibGVFeHRlcm5hbGx5OiBmbGFnVHlwZT8uZXh0ZXJuYWxseUF2YWlsYWJsZSA/ICdZZXMnIDogJ05vJ1xuICAgIH0gYXMgRmxhZ0RldGFpbDtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVG9GaW5hbFJldmlld1N0YWdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RmxhZ3NDYXNlRmllbGRWYWx1ZSgpO1xuICAgIC8vIENoZWNrIHRoYXQgbm8gZXJyb3JzIGhhdmUgYmVlbiBzZXQgb24gY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXAgKGJ5IGRldGVybWluZUxvY2F0aW9uRm9yRmxhZygpKTsgcHJldmVudCBtb3ZpbmcgdG9cbiAgICAvLyBmaW5hbCByZXZpZXcgc3RhZ2UgaWYgZXJyb3JzIGV4aXN0XG4gICAgaWYgKCF0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmVycm9ycykge1xuICAgICAgLy8gQ2xlYXIgdGhlIFwibm90QWxsQ2FzZUZsYWdTdGFnZXNDb21wbGV0ZWRcIiBlcnJvclxuICAgICAgdGhpcy5hbGxDYXNlRmxhZ1N0YWdlc0NvbXBsZXRlZCA9IHRydWU7XG4gICAgICB0aGlzLmZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmNhc2VFZGl0RGF0YVNlcnZpY2Uuc2V0VHJpZ2dlclN1Ym1pdEV2ZW50KHRydWUpO1xuICAgICAgLy8gVXBkYXRlIHRoaXMuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uIHdpdGggdGhlIGNvcnJlY3RseSBkZXRlcm1pbmVkIGxvY2F0aW9uLCBzbyB0aGUgY29ycmVjdCB2YWx1ZSBpcyBhdmFpbGFibGUgdG9cbiAgICAgIC8vIFJlYWRDYXNlRmxhZ0ZpZWxkQ29tcG9uZW50IHdoZW4gaXQgaW5pdGlhbGlzZXMgdGhlIENhc2UgRmxhZyBTdW1tYXJ5IHBhZ2VcbiAgICAgIHRoaXMuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uID0gdGhpcy5kZXRlcm1pbmVkTG9jYXRpb247XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIFJlc2V0IHRoZSBmaWVsZHN0YXRlVG9OYXZpZ2F0ZSBhcyB0aGUgd3JpdGUgam91cm5leSBjb21wbGV0ZXMgYXQgdGhpcyBwb2ludFxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZmllbGRTdGF0ZVRvTmF2aWdhdGUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5jYXNlVGl0bGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1hbmFnZUZsYWdGaW5hbFN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLmNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwLmdldChDYXNlRmxhZ0Zvcm1GaWVsZHMuSVNfV0VMU0hfVFJBTlNMQVRJT05fTkVFREVEKT8udmFsdWVcbiAgICA/IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURV9XRUxTSF9UUkFOU0xBVElPTiA6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1VQREFURTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNwbGF5Q29udGV4dFBhcmFtZXRlcihjYXNlRmllbGRzOiBDYXNlRmllbGRbXSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNhc2VGaWVsZHMuZmluZChjYXNlRmllbGQgPT4gRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSk/LmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI7XG4gIH1cbn1cbiIsIjwhLS0gRXJyb3IgbWVzc2FnZSBzdW1tYXJ5IC0tPlxuPGRpdiAqbmdJZj1cImVycm9yTWVzc2FnZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwiZ292dWstZXJyb3Itc3VtbWFyeVwiIGFyaWEtbGFiZWxsZWRieT1cImVycm9yLXN1bW1hcnktdGl0bGVcIiByb2xlPVwiYWxlcnRcIiB0YWJpbmRleD1cIi0xXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5XCI+XG4gIDxoMiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX3RpdGxlXCIgaWQ9XCJlcnJvci1zdW1tYXJ5LXRpdGxlXCI+XG4gICAge3snVGhlcmUgaXMgYSBwcm9ibGVtJyB8IHJweFRyYW5zbGF0ZX19XG4gIDwvaDI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBlcnJvck1lc3NhZ2VzXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1zdW1tYXJ5X19ib2R5XCI+XG4gICAgPHVsIGNsYXNzPVwiZ292dWstbGlzdCBnb3Z1ay1lcnJvci1zdW1tYXJ5X19saXN0XCI+XG4gICAgICA8bGk+XG4gICAgICAgIDxhIChjbGljayk9XCJuYXZpZ2F0ZVRvRXJyb3JFbGVtZW50KGVycm9yTWVzc2FnZS5maWVsZElkKVwiIGNsYXNzPVwidmFsaWRhdGlvbi1lcnJvclwiPnt7ZXJyb3JNZXNzYWdlLmRlc2NyaXB0aW9uIHwgcnB4VHJhbnNsYXRlfX08L2E+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiIWlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGVcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ1N3aXRjaF09XCJmaWVsZFN0YXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTE9DQVRJT05cIj5cbiAgICAgIDxjY2Qtc2VsZWN0LWZsYWctbG9jYXRpb25cbiAgICAgICAgW2Zvcm1Hcm91cF09XCJjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cFwiIFtmbGFnc0RhdGFdPVwiZmxhZ3NEYXRhXCJcbiAgICAgICAgKGNhc2VGbGFnU3RhdGVFbWl0dGVyKT1cIm9uQ2FzZUZsYWdTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiXG4gICAgICAgIFtpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWxdPVwiaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXCJcbiAgICAgID48L2NjZC1zZWxlY3QtZmxhZy1sb2NhdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19UWVBFXCI+XG4gICAgICA8Y2NkLXNlbGVjdC1mbGFnLXR5cGUgW2Zvcm1Hcm91cF09XCJjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cFwiIFtqdXJpc2RpY3Rpb25dPVwianVyaXNkaWN0aW9uXCIgW2Nhc2VUeXBlSWRdPVwiY2FzZVR5cGVJZFwiXG4gICAgICAgIFtobWN0c1NlcnZpY2VJZF09XCJobWN0c1NlcnZpY2VJZFwiIFtpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWxdPVwiaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXCJcbiAgICAgICAgW2lzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZF09XCJpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWRcIlxuICAgICAgICBbc2VsZWN0ZWRGbGFnc0xvY2F0aW9uXT1cInNlbGVjdGVkRmxhZ3NMb2NhdGlvblwiXG4gICAgICAgIChjYXNlRmxhZ1N0YXRlRW1pdHRlcik9XCJvbkNhc2VGbGFnU3RhdGVFbWl0dGVkKCRldmVudClcIlxuICAgICAgICAoZmxhZ0NvbW1lbnRzT3B0aW9uYWxFbWl0dGVyKT1cIm9uRmxhZ0NvbW1lbnRzT3B0aW9uYWxFbWl0dGVkKCRldmVudClcIj48L2NjZC1zZWxlY3QtZmxhZy10eXBlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xBTkdVQUdFX0lOVEVSUFJFVEVSXCI+XG4gICAgICA8Y2NkLXNlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlciBbZm9ybUdyb3VwXT1cImNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwXCJcbiAgICAgICAgW2ZsYWdUeXBlXT1cImZsYWdUeXBlXCJcbiAgICAgICAgKGNhc2VGbGFnU3RhdGVFbWl0dGVyKT1cIm9uQ2FzZUZsYWdTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiPlxuICAgICAgPC9jY2Qtc2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0NPTU1FTlRTXCI+XG4gICAgICA8Y2NkLWFkZC1jb21tZW50cyBbZm9ybUdyb3VwXT1cImNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwXCIgW29wdGlvbmFsXT1cImZsYWdDb21tZW50c09wdGlvbmFsXCJcbiAgICAgICAgKGNhc2VGbGFnU3RhdGVFbWl0dGVyKT1cIm9uQ2FzZUZsYWdTdGF0ZUVtaXR0ZWQoJGV2ZW50KVwiXG4gICAgICAgIFtpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyRXh0ZXJuYWxdPVwiaXNEaXNwbGF5Q29udGV4dFBhcmFtZXRlckV4dGVybmFsXCJcbiAgICAgICAgW2lzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIyUG9pbnQxRW5hYmxlZF09XCJpc0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyMlBvaW50MUVuYWJsZWRcIj5cbiAgICAgIDwvY2NkLWFkZC1jb21tZW50cz5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19TVEFUVVNcIj5cbiAgICAgIDxjY2QtY29uZmlybS1mbGFnLXN0YXR1cyBbZm9ybUdyb3VwXT1cImNhc2VGbGFnUGFyZW50Rm9ybUdyb3VwXCIgW2RlZmF1bHRTdGF0dXNdPVwiZmxhZ1R5cGUuZGVmYXVsdFN0YXR1c1wiXG4gICAgICAgIChjYXNlRmxhZ1N0YXRlRW1pdHRlcik9XCJvbkNhc2VGbGFnU3RhdGVFbWl0dGVkKCRldmVudClcIj48L2NjZC1jb25maXJtLWZsYWctc3RhdHVzPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cImlzRGlzcGxheUNvbnRleHRQYXJhbWV0ZXJVcGRhdGVcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ1N3aXRjaF09XCJmaWVsZFN0YXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTUFOQUdFX0NBU0VfRkxBR1NcIj5cbiAgICAgIDxjY2QtbWFuYWdlLWNhc2UtZmxhZ3MgW2Zvcm1Hcm91cF09XCJjYXNlRmxhZ1BhcmVudEZvcm1Hcm91cFwiIFtmbGFnc0RhdGFdPVwiZmxhZ3NEYXRhXCIgW2Nhc2VUaXRsZV09XCJjYXNlVGl0bGVcIlxuICAgICAgICBbZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJdPVwiZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJcIlxuICAgICAgICAoY2FzZUZsYWdTdGF0ZUVtaXR0ZXIpPVwib25DYXNlRmxhZ1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtbWFuYWdlLWNhc2UtZmxhZ3M+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFXCI+XG4gICAgICA8Y2NkLXVwZGF0ZS1mbGFnIFtmb3JtR3JvdXBdPVwiY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBcIlxuICAgICAgICBbZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJdPVwiZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJcIlxuICAgICAgICAoY2FzZUZsYWdTdGF0ZUVtaXR0ZXIpPVwib25DYXNlRmxhZ1N0YXRlRW1pdHRlZCgkZXZlbnQpXCI+PC9jY2QtdXBkYXRlLWZsYWc+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVVBEQVRFX1dFTFNIX1RSQU5TTEFUSU9OXCI+XG4gICAgICA8Y2NkLXVwZGF0ZS1mbGFnLWFkZC10cmFuc2xhdGlvbi1mb3JtXG4gICAgICAgIFtmb3JtR3JvdXBdPVwiY2FzZUZsYWdQYXJlbnRGb3JtR3JvdXBcIlxuICAgICAgICAoY2FzZUZsYWdTdGF0ZUVtaXR0ZXIpPVwib25DYXNlRmxhZ1N0YXRlRW1pdHRlZCgkZXZlbnQpXCJcbiAgICAgID48L2NjZC11cGRhdGUtZmxhZy1hZGQtdHJhbnNsYXRpb24tZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|