@hmcts/ccd-case-ui-toolkit 5.0.29-angular11-upgrade → 5.0.31-angular11-upgrade
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +12829 -9709
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
- package/esm2015/lib/app.config.js +1 -1
- package/esm2015/lib/components/banners/banners.module.js +13 -6
- package/esm2015/lib/components/banners/index.js +2 -1
- package/esm2015/lib/components/banners/notification-banner/domain/index.js +2 -0
- package/esm2015/lib/components/banners/notification-banner/domain/notification-banner-config.model.js +2 -0
- package/esm2015/lib/components/banners/notification-banner/enums/index.js +3 -0
- package/esm2015/lib/components/banners/notification-banner/enums/notification-banner-style.enum.js +8 -0
- package/esm2015/lib/components/banners/notification-banner/enums/notification-banner-type.enum.js +8 -0
- package/esm2015/lib/components/banners/notification-banner/index.js +4 -0
- package/esm2015/lib/components/banners/notification-banner/notification-banner.component.js +130 -0
- package/esm2015/lib/components/banners/notification-banner/notification-banner.module.js +19 -0
- package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +2 -7
- package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +42 -31
- package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +157 -153
- package/esm2015/lib/shared/components/case-editor/case-editor.module.js +19 -16
- package/esm2015/lib/shared/components/case-list-filters/case-list-filters.component.js +2 -4
- package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +4 -1
- package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +2 -5
- package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +32 -17
- package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +197 -104
- package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +2 -4
- package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +2 -5
- package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +18 -10
- package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +2 -5
- package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +2 -6
- package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +2 -4
- package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +5 -1
- package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +145 -0
- package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +97 -0
- package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +148 -0
- package/esm2015/lib/shared/components/palette/case-flag/components/index.js +9 -0
- package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +200 -0
- package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +295 -0
- package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +188 -0
- package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +251 -0
- package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +192 -0
- package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +2 -0
- package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +2 -0
- package/esm2015/lib/shared/components/palette/case-flag/domain/index.js +4 -0
- package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +2 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.js +6 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.js +6 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +7 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.js +6 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +12 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +14 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.js +7 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.js +8 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +6 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.js +6 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +7 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +6 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +6 -0
- package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +14 -0
- package/esm2015/lib/shared/components/palette/case-flag/index.js +6 -0
- package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +152 -0
- package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +455 -0
- package/esm2015/lib/shared/components/palette/complex/read-complex-field.component.js +2 -6
- package/esm2015/lib/shared/components/palette/date/write-date-container-field.component.js +2 -6
- package/esm2015/lib/shared/components/palette/history/case-history-viewer-field.component.js +2 -3
- package/esm2015/lib/shared/components/palette/history/event-log/event-log.component.js +2 -5
- package/esm2015/lib/shared/components/palette/index.js +2 -1
- package/esm2015/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.js +4 -4
- package/esm2015/lib/shared/components/palette/label/label-field.component.js +2 -4
- package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +2 -5
- package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +2 -3
- package/esm2015/lib/shared/components/palette/order-summary/write-order-summary-field.component.js +2 -3
- package/esm2015/lib/shared/components/palette/organisation/read-organisation-field.component.js +2 -5
- package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +2 -6
- package/esm2015/lib/shared/components/palette/palette.module.js +69 -17
- package/esm2015/lib/shared/components/palette/palette.service.js +5 -1
- package/esm2015/lib/shared/components/search-result/search-result.component.js +45 -50
- package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +13 -0
- package/esm2015/lib/shared/domain/case-flag/hmcts-service-detail.model.js +9 -0
- package/esm2015/lib/shared/domain/case-flag/index.js +3 -0
- package/esm2015/lib/shared/domain/case-view/case-view.model.js +1 -1
- package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
- package/esm2015/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.js +2 -2
- package/esm2015/lib/shared/services/addresses/address-parser.js +6 -6
- package/esm2015/lib/shared/services/addresses/address-type.enum.js +7 -0
- package/esm2015/lib/shared/services/addresses/addresses.service.js +3 -5
- package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +75 -0
- package/esm2015/lib/shared/services/case-flag/index.js +3 -0
- package/esm2015/lib/shared/services/case-flag/refdata-case-flag-type.enum.js +6 -0
- package/esm2015/lib/shared/services/fields/fields.utils.js +220 -5
- package/esm2015/lib/shared/services/form/form-value.service.js +100 -73
- package/esm2015/lib/shared/services/index.js +2 -1
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js +13996 -11169
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
- package/lib/app.config.d.ts +2 -0
- package/lib/app.config.d.ts.map +1 -1
- package/lib/components/banners/banners.module.d.ts +2 -1
- package/lib/components/banners/banners.module.d.ts.map +1 -1
- package/lib/components/banners/index.d.ts +1 -0
- package/lib/components/banners/index.d.ts.map +1 -1
- package/lib/components/banners/notification-banner/domain/index.d.ts +2 -0
- package/lib/components/banners/notification-banner/domain/index.d.ts.map +1 -0
- package/lib/components/banners/notification-banner/domain/notification-banner-config.model.d.ts +13 -0
- package/lib/components/banners/notification-banner/domain/notification-banner-config.model.d.ts.map +1 -0
- package/lib/components/banners/notification-banner/enums/index.d.ts +3 -0
- package/lib/components/banners/notification-banner/enums/index.d.ts.map +1 -0
- package/lib/components/banners/notification-banner/enums/notification-banner-style.enum.d.ts +7 -0
- package/lib/components/banners/notification-banner/enums/notification-banner-style.enum.d.ts.map +1 -0
- package/lib/components/banners/notification-banner/enums/notification-banner-type.enum.d.ts +7 -0
- package/lib/components/banners/notification-banner/enums/notification-banner-type.enum.d.ts.map +1 -0
- package/lib/components/banners/notification-banner/index.d.ts +4 -0
- package/lib/components/banners/notification-banner/index.d.ts.map +1 -0
- package/lib/components/banners/notification-banner/notification-banner.component.d.ts +13 -0
- package/lib/components/banners/notification-banner/notification-banner.component.d.ts.map +1 -0
- package/lib/components/banners/notification-banner/notification-banner.module.d.ts +9 -0
- package/lib/components/banners/notification-banner/notification-banner.module.d.ts.map +1 -0
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +11 -5
- 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-edit-submit/case-edit-submit.component.d.ts +14 -25
- package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +6 -10
- package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +18 -4
- package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
- package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
- package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
- package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +25 -0
- package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +20 -0
- package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +12 -0
- package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/components/index.d.ts +9 -0
- package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +28 -0
- package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +39 -0
- package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +26 -0
- package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +40 -0
- package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +26 -0
- package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +18 -0
- package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +47 -0
- package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/domain/index.d.ts +4 -0
- package/lib/shared/components/palette/case-flag/domain/index.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +5 -0
- package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts +5 -0
- package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts +5 -0
- package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +6 -0
- package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.d.ts +5 -0
- package/lib/shared/components/palette/case-flag/enums/case-flag-summary-list-display-mode.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +11 -0
- package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/index.d.ts +14 -0
- package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.d.ts +6 -0
- package/lib/shared/components/palette/case-flag/enums/search-language-interpreter-error-message.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.d.ts +7 -0
- package/lib/shared/components/palette/case-flag/enums/search-language-interpreter-step.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +5 -0
- package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.d.ts +5 -0
- package/lib/shared/components/palette/case-flag/enums/select-flag-location-error-message.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +6 -0
- package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +5 -0
- package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +5 -0
- package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +12 -0
- package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/index.d.ts +6 -0
- package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +27 -0
- package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +61 -0
- package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -0
- package/lib/shared/components/palette/index.d.ts +1 -0
- package/lib/shared/components/palette/index.d.ts.map +1 -1
- package/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.d.ts +3 -3
- package/lib/shared/components/palette/judicial-user/read-judicial-user-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/palette.module.d.ts +94 -84
- package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
- package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
- package/lib/shared/domain/case-flag/flag-type.model.d.ts +21 -0
- package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -0
- package/lib/shared/domain/case-flag/hmcts-service-detail.model.d.ts +17 -0
- package/lib/shared/domain/case-flag/hmcts-service-detail.model.d.ts.map +1 -0
- package/lib/shared/domain/case-flag/index.d.ts +3 -0
- package/lib/shared/domain/case-flag/index.d.ts.map +1 -0
- package/lib/shared/domain/case-view/case-view.model.d.ts +2 -0
- package/lib/shared/domain/case-view/case-view.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/pipes/complex/ccd-read-fields-filter.pipe.d.ts.map +1 -1
- package/lib/shared/services/addresses/address-type.enum.d.ts +6 -0
- package/lib/shared/services/addresses/address-type.enum.d.ts.map +1 -0
- package/lib/shared/services/addresses/addresses.service.d.ts +0 -3
- package/lib/shared/services/addresses/addresses.service.d.ts.map +1 -1
- package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +31 -0
- package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -0
- package/lib/shared/services/case-flag/index.d.ts +3 -0
- package/lib/shared/services/case-flag/index.d.ts.map +1 -0
- package/lib/shared/services/case-flag/refdata-case-flag-type.enum.d.ts +5 -0
- package/lib/shared/services/case-flag/refdata-case-flag-type.enum.d.ts.map +1 -0
- package/lib/shared/services/fields/fields.utils.d.ts +41 -8
- package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
- package/lib/shared/services/form/form-value.service.d.ts +20 -19
- package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
- package/lib/shared/services/index.d.ts +1 -0
- package/lib/shared/services/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page-text.enum.js +0 -11
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page-text.enum.d.ts +0 -10
- package/lib/shared/components/case-editor/case-edit-page/case-edit-page-text.enum.d.ts.map +0 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { CaseFlagFieldState, CaseFlagWizardStepTitle, SelectFlagLocationErrorMessage } from '../../enums';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/forms";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
function SelectFlagLocationComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
8
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
9
|
+
i0.ɵɵelementStart(1, "span", 10);
|
|
10
|
+
i0.ɵɵtext(2, "Error:");
|
|
11
|
+
i0.ɵɵelementEnd();
|
|
12
|
+
i0.ɵɵtext(3);
|
|
13
|
+
i0.ɵɵelementEnd();
|
|
14
|
+
} if (rf & 2) {
|
|
15
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
16
|
+
i0.ɵɵadvance(3);
|
|
17
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.flagLocationNotSelectedErrorMessage, " ");
|
|
18
|
+
} }
|
|
19
|
+
function SelectFlagLocationComponent_div_8_ng_container_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
i0.ɵɵelementContainerStart(0);
|
|
21
|
+
i0.ɵɵtext(1);
|
|
22
|
+
i0.ɵɵelementContainerEnd();
|
|
23
|
+
} if (rf & 2) {
|
|
24
|
+
const flagsInstance_r3 = i0.ɵɵnextContext(2).$implicit;
|
|
25
|
+
i0.ɵɵadvance(1);
|
|
26
|
+
i0.ɵɵtextInterpolate1(" (", flagsInstance_r3.flags.roleOnCase, ") ");
|
|
27
|
+
} }
|
|
28
|
+
function SelectFlagLocationComponent_div_8_ng_container_3_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
i0.ɵɵelementContainerStart(0);
|
|
30
|
+
i0.ɵɵtext(1);
|
|
31
|
+
i0.ɵɵtemplate(2, SelectFlagLocationComponent_div_8_ng_container_3_ng_container_2_Template, 2, 1, "ng-container", 14);
|
|
32
|
+
i0.ɵɵelementContainerEnd();
|
|
33
|
+
} if (rf & 2) {
|
|
34
|
+
const flagsInstance_r3 = i0.ɵɵnextContext().$implicit;
|
|
35
|
+
i0.ɵɵadvance(1);
|
|
36
|
+
i0.ɵɵtextInterpolate1(" ", flagsInstance_r3.flags.partyName, " ");
|
|
37
|
+
i0.ɵɵadvance(1);
|
|
38
|
+
i0.ɵɵproperty("ngIf", flagsInstance_r3.flags.roleOnCase);
|
|
39
|
+
} }
|
|
40
|
+
function SelectFlagLocationComponent_div_8_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
41
|
+
i0.ɵɵelementContainerStart(0);
|
|
42
|
+
i0.ɵɵtext(1);
|
|
43
|
+
i0.ɵɵelementContainerEnd();
|
|
44
|
+
} if (rf & 2) {
|
|
45
|
+
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
46
|
+
i0.ɵɵadvance(1);
|
|
47
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r6.caseLevelFlagLabel, " ");
|
|
48
|
+
} }
|
|
49
|
+
function SelectFlagLocationComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
50
|
+
i0.ɵɵelementStart(0, "div", 11);
|
|
51
|
+
i0.ɵɵelement(1, "input", 12);
|
|
52
|
+
i0.ɵɵelementStart(2, "label", 13);
|
|
53
|
+
i0.ɵɵtemplate(3, SelectFlagLocationComponent_div_8_ng_container_3_Template, 3, 2, "ng-container", 14);
|
|
54
|
+
i0.ɵɵtemplate(4, SelectFlagLocationComponent_div_8_ng_container_4_Template, 2, 1, "ng-container", 14);
|
|
55
|
+
i0.ɵɵelementEnd();
|
|
56
|
+
i0.ɵɵelementEnd();
|
|
57
|
+
} if (rf & 2) {
|
|
58
|
+
const flagsInstance_r3 = ctx.$implicit;
|
|
59
|
+
const i_r4 = ctx.index;
|
|
60
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
61
|
+
i0.ɵɵadvance(1);
|
|
62
|
+
i0.ɵɵpropertyInterpolate1("id", "flag-location-", i_r4, "");
|
|
63
|
+
i0.ɵɵproperty("name", ctx_r1.selectedLocationControlName)("value", flagsInstance_r3)("formControlName", ctx_r1.selectedLocationControlName);
|
|
64
|
+
i0.ɵɵadvance(1);
|
|
65
|
+
i0.ɵɵpropertyInterpolate1("for", "flag-location-", i_r4, "");
|
|
66
|
+
i0.ɵɵadvance(1);
|
|
67
|
+
i0.ɵɵproperty("ngIf", flagsInstance_r3.flags.partyName);
|
|
68
|
+
i0.ɵɵadvance(1);
|
|
69
|
+
i0.ɵɵproperty("ngIf", !flagsInstance_r3.flags.partyName);
|
|
70
|
+
} }
|
|
71
|
+
function SelectFlagLocationComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
73
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
74
|
+
i0.ɵɵelementStart(1, "button", 16);
|
|
75
|
+
i0.ɵɵlistener("click", function SelectFlagLocationComponent_div_9_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return ctx_r10.onNext(); });
|
|
76
|
+
i0.ɵɵtext(2, "Next");
|
|
77
|
+
i0.ɵɵelementEnd();
|
|
78
|
+
i0.ɵɵelementEnd();
|
|
79
|
+
} }
|
|
80
|
+
const _c0 = function (a0) { return { "form-group-error": a0 }; };
|
|
81
|
+
export class SelectFlagLocationComponent {
|
|
82
|
+
constructor() {
|
|
83
|
+
this.caseFlagStateEmitter = new EventEmitter();
|
|
84
|
+
this.errorMessages = [];
|
|
85
|
+
this.flagLocationNotSelectedErrorMessage = null;
|
|
86
|
+
this.caseFlagsConfigError = false;
|
|
87
|
+
this.selectedLocationControlName = 'selectedLocation';
|
|
88
|
+
this.caseLevelFlagLabel = 'Case level';
|
|
89
|
+
this.caseLevelCaseFlagsFieldId = 'caseFlags';
|
|
90
|
+
}
|
|
91
|
+
ngOnInit() {
|
|
92
|
+
this.flagLocationTitle = CaseFlagWizardStepTitle.SELECT_FLAG_LOCATION;
|
|
93
|
+
// Filter out any flags instances that don't have a party name, unless the instance is for case-level flags (this
|
|
94
|
+
// is expected not to have a party name)
|
|
95
|
+
if (this.flagsData) {
|
|
96
|
+
this.filteredFlagsData =
|
|
97
|
+
this.flagsData.filter(f => f.flags.partyName != null || f.pathToFlagsFormGroup === this.caseLevelCaseFlagsFieldId);
|
|
98
|
+
}
|
|
99
|
+
// Add a FormControl for the selected flag location if there is at least one flags instance remaining after filtering
|
|
100
|
+
if (this.filteredFlagsData && this.filteredFlagsData.length > 0) {
|
|
101
|
+
this.formGroup.addControl(this.selectedLocationControlName, new FormControl(null));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
// No filtered flags instances mean there are no parties to select from. The case has not been configured properly
|
|
105
|
+
// for case flags and the user cannot proceed with flag creation. (Will need to be extended to check for case-level
|
|
106
|
+
// flags in future)
|
|
107
|
+
this.onCaseFlagsConfigError();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
onNext() {
|
|
111
|
+
// Validate flag location selection
|
|
112
|
+
this.validateSelection();
|
|
113
|
+
// Return case flag field state, error messages, and selected FlagsWithFormGroupPath instance (i.e. flag location) to
|
|
114
|
+
// the parent
|
|
115
|
+
this.caseFlagStateEmitter.emit({
|
|
116
|
+
currentCaseFlagFieldState: CaseFlagFieldState.FLAG_LOCATION,
|
|
117
|
+
errorMessages: this.errorMessages,
|
|
118
|
+
selectedFlagsLocation: this.formGroup.get(this.selectedLocationControlName).value
|
|
119
|
+
? this.formGroup.get(this.selectedLocationControlName).value
|
|
120
|
+
: null
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
validateSelection() {
|
|
124
|
+
this.flagLocationNotSelectedErrorMessage = null;
|
|
125
|
+
this.errorMessages = [];
|
|
126
|
+
if (!this.formGroup.get(this.selectedLocationControlName).value) {
|
|
127
|
+
this.flagLocationNotSelectedErrorMessage = SelectFlagLocationErrorMessage.FLAG_LOCATION_NOT_SELECTED;
|
|
128
|
+
this.errorMessages.push({
|
|
129
|
+
title: '',
|
|
130
|
+
description: SelectFlagLocationErrorMessage.FLAG_LOCATION_NOT_SELECTED,
|
|
131
|
+
fieldId: 'conditional-radios-list'
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
onCaseFlagsConfigError() {
|
|
136
|
+
// Set error flag on component to remove the "Next" button (user cannot proceed with flag creation)
|
|
137
|
+
this.caseFlagsConfigError = true;
|
|
138
|
+
this.errorMessages = [];
|
|
139
|
+
this.errorMessages.push({ title: '', description: SelectFlagLocationErrorMessage.FLAGS_NOT_CONFIGURED, fieldId: 'conditional-radios-list' });
|
|
140
|
+
// Return case flag field state and error messages to the parent
|
|
141
|
+
this.caseFlagStateEmitter.emit({ currentCaseFlagFieldState: CaseFlagFieldState.FLAG_TYPE, errorMessages: this.errorMessages });
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
SelectFlagLocationComponent.ɵfac = function SelectFlagLocationComponent_Factory(t) { return new (t || SelectFlagLocationComponent)(); };
|
|
145
|
+
SelectFlagLocationComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SelectFlagLocationComponent, selectors: [["ccd-select-flag-location"]], inputs: { formGroup: "formGroup", flagsData: "flagsData" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 10, vars: 8, consts: [[1, "form-group", 3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "flag-location-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--l"], ["id", "flag-location-heading", 1, "govuk-fieldset__heading"], ["id", "flag-location-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["class", "govuk-button-group", 4, "ngIf"], ["id", "flag-location-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "value", "formControlName"], [1, "govuk-label", "govuk-radios__label", 3, "for"], [4, "ngIf"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"]], template: function SelectFlagLocationComponent_Template(rf, ctx) { if (rf & 1) {
|
|
146
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
147
|
+
i0.ɵɵelementStart(1, "div", 1);
|
|
148
|
+
i0.ɵɵelementStart(2, "fieldset", 2);
|
|
149
|
+
i0.ɵɵelementStart(3, "legend", 3);
|
|
150
|
+
i0.ɵɵelementStart(4, "h1", 4);
|
|
151
|
+
i0.ɵɵtext(5);
|
|
152
|
+
i0.ɵɵelementEnd();
|
|
153
|
+
i0.ɵɵelementEnd();
|
|
154
|
+
i0.ɵɵtemplate(6, SelectFlagLocationComponent_div_6_Template, 4, 1, "div", 5);
|
|
155
|
+
i0.ɵɵelementStart(7, "div", 6);
|
|
156
|
+
i0.ɵɵtemplate(8, SelectFlagLocationComponent_div_8_Template, 5, 7, "div", 7);
|
|
157
|
+
i0.ɵɵelementEnd();
|
|
158
|
+
i0.ɵɵelementEnd();
|
|
159
|
+
i0.ɵɵelementEnd();
|
|
160
|
+
i0.ɵɵtemplate(9, SelectFlagLocationComponent_div_9_Template, 3, 0, "div", 8);
|
|
161
|
+
i0.ɵɵelementEnd();
|
|
162
|
+
} if (rf & 2) {
|
|
163
|
+
i0.ɵɵproperty("formGroup", ctx.formGroup);
|
|
164
|
+
i0.ɵɵadvance(1);
|
|
165
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0, ctx.errorMessages.length > 0));
|
|
166
|
+
i0.ɵɵadvance(4);
|
|
167
|
+
i0.ɵɵtextInterpolate1(" ", ctx.flagLocationTitle, " ");
|
|
168
|
+
i0.ɵɵadvance(1);
|
|
169
|
+
i0.ɵɵproperty("ngIf", ctx.flagLocationNotSelectedErrorMessage);
|
|
170
|
+
i0.ɵɵadvance(2);
|
|
171
|
+
i0.ɵɵproperty("ngForOf", ctx.filteredFlagsData);
|
|
172
|
+
i0.ɵɵadvance(1);
|
|
173
|
+
i0.ɵɵproperty("ngIf", !ctx.caseFlagsConfigError);
|
|
174
|
+
} }, directives: [i1.NgControlStatusGroup, i1.FormGroupDirective, i2.NgClass, i2.NgIf, i2.NgForOf, i1.RadioControlValueAccessor, i1.DefaultValueAccessor, i1.NgControlStatus, i1.FormControlName], encapsulation: 2 });
|
|
175
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectFlagLocationComponent, [{
|
|
176
|
+
type: Component,
|
|
177
|
+
args: [{
|
|
178
|
+
selector: 'ccd-select-flag-location',
|
|
179
|
+
templateUrl: './select-flag-location.component.html'
|
|
180
|
+
}]
|
|
181
|
+
}], null, { formGroup: [{
|
|
182
|
+
type: Input
|
|
183
|
+
}], flagsData: [{
|
|
184
|
+
type: Input
|
|
185
|
+
}], caseFlagStateEmitter: [{
|
|
186
|
+
type: Output
|
|
187
|
+
}] }); })();
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VsZWN0LWZsYWctbG9jYXRpb24vc2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VsZWN0LWZsYWctbG9jYXRpb24vc2VsZWN0LWZsYWctbG9jYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7SUNJcEcsOEJBQzhDO0lBQzVDLGdDQUFvQztJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQyxZQUNwRDtJQUFBLGlCQUFNOzs7SUFEOEMsZUFDcEQ7SUFEb0QsMkVBQ3BEOzs7SUFRUSw2QkFBcUQ7SUFDbkQsWUFDRjtJQUFBLDBCQUFlOzs7SUFEYixlQUNGO0lBREUsb0VBQ0Y7OztJQUpGLDZCQUFvRDtJQUNsRCxZQUNBO0lBQUEsb0hBRWU7SUFDakIsMEJBQWU7OztJQUpiLGVBQ0E7SUFEQSxpRUFDQTtJQUFlLGVBQW9DO0lBQXBDLHdEQUFvQzs7O0lB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O2dCQUNwQyxXQUFXLEVBQUUsdUNBQXVDO2FBQ3JEO2dCQUdpQixTQUFTO2tCQUF4QixLQUFLO1lBQ1UsU0FBUztrQkFBeEIsS0FBSztZQUVXLG9CQUFvQjtrQkFBcEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlRmxhZ0ZpZWxkU3RhdGUsIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLCBTZWxlY3RGbGFnTG9jYXRpb25FcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1zZWxlY3QtZmxhZy1sb2NhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtZmxhZy1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0RmxhZ0xvY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBmbGFnc0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcblxuICBAT3V0cHV0KCkgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgcHVibGljIGZsYWdMb2NhdGlvblRpdGxlOiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdID0gW107XG4gIHB1YmxpYyBmbGFnTG9jYXRpb25Ob3RTZWxlY3RlZEVycm9yTWVzc2FnZTogU2VsZWN0RmxhZ0xvY2F0aW9uRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgcHVibGljIGZpbHRlcmVkRmxhZ3NEYXRhOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoW107XG4gIHB1YmxpYyBjYXNlRmxhZ3NDb25maWdFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRMb2NhdGlvbkNvbnRyb2xOYW1lID0gJ3NlbGVjdGVkTG9jYXRpb24nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FzZUxldmVsRmxhZ0xhYmVsID0gJ0Nhc2UgbGV2ZWwnO1xuICBwcml2YXRlIHJlYWRvbmx5IGNhc2VMZXZlbENhc2VGbGFnc0ZpZWxkSWQgPSAnY2FzZUZsYWdzJztcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mbGFnTG9jYXRpb25UaXRsZSA9IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLlNFTEVDVF9GTEFHX0xPQ0FUSU9OO1xuXG4gICAgLy8gRmlsdGVyIG91dCBhbnkgZmxhZ3MgaW5zdGFuY2VzIHRoYXQgZG9uJ3QgaGF2ZSBhIHBhcnR5IG5hbWUsIHVubGVzcyB0aGUgaW5zdGFuY2UgaXMgZm9yIGNhc2UtbGV2ZWwgZmxhZ3MgKHRoaXNcbiAgICAvLyBpcyBleHBlY3RlZCBub3QgdG8gaGF2ZSBhIHBhcnR5IG5hbWUpXG4gICAgaWYgKHRoaXMuZmxhZ3NEYXRhKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkRmxhZ3NEYXRhID1cbiAgICAgICAgdGhpcy5mbGFnc0RhdGEuZmlsdGVyKGYgPT4gZi5mbGFncy5wYXJ0eU5hbWUgIT0gbnVsbCB8fCBmLnBhdGhUb0ZsYWdzRm9ybUdyb3VwID09PSB0aGlzLmNhc2VMZXZlbENhc2VGbGFnc0ZpZWxkSWQpO1xuICAgIH1cblxuICAgIC8vIEFkZCBhIEZvcm1Db250cm9sIGZvciB0aGUgc2VsZWN0ZWQgZmxhZyBsb2NhdGlvbiBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgZmxhZ3MgaW5zdGFuY2UgcmVtYWluaW5nIGFmdGVyIGZpbHRlcmluZ1xuICAgIGlmICh0aGlzLmZpbHRlcmVkRmxhZ3NEYXRhICYmIHRoaXMuZmlsdGVyZWRGbGFnc0RhdGEubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLnNlbGVjdGVkTG9jYXRpb25Db250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKG51bGwpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gZmlsdGVyZWQgZmxhZ3MgaW5zdGFuY2VzIG1lYW4gdGhlcmUgYXJlIG5vIHBhcnRpZXMgdG8gc2VsZWN0IGZyb20uIFRoZSBjYXNlIGhhcyBub3QgYmVlbiBjb25maWd1cmVkIHByb3Blcmx5XG4gICAgICAvLyBmb3IgY2FzZSBmbGFncyBhbmQgdGhlIHVzZXIgY2Fubm90IHByb2NlZWQgd2l0aCBmbGFnIGNyZWF0aW9uLiAoV2lsbCBuZWVkIHRvIGJlIGV4dGVuZGVkIHRvIGNoZWNrIGZvciBjYXNlLWxldmVsXG4gICAgICAvLyBmbGFncyBpbiBmdXR1cmUpXG4gICAgICB0aGlzLm9uQ2FzZUZsYWdzQ29uZmlnRXJyb3IoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIC8vIFZhbGlkYXRlIGZsYWcgbG9jYXRpb24gc2VsZWN0aW9uXG4gICAgdGhpcy52YWxpZGF0ZVNlbGVjdGlvbigpO1xuICAgIC8vIFJldHVybiBjYXNlIGZsYWcgZmllbGQgc3RhdGUsIGVycm9yIG1lc3NhZ2VzLCBhbmQgc2VsZWN0ZWQgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCBpbnN0YW5jZSAoaS5lLiBmbGFnIGxvY2F0aW9uKSB0b1xuICAgIC8vIHRoZSBwYXJlbnRcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTE9DQVRJT04sXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICBzZWxlY3RlZEZsYWdzTG9jYXRpb246IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkTG9jYXRpb25Db250cm9sTmFtZSkudmFsdWVcbiAgICAgICAgPyB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZExvY2F0aW9uQ29udHJvbE5hbWUpLnZhbHVlIGFzIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhcbiAgICAgICAgOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZmxhZ0xvY2F0aW9uTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRMb2NhdGlvbkNvbnRyb2xOYW1lKS52YWx1ZSkge1xuICAgICAgdGhpcy5mbGFnTG9jYXRpb25Ob3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9IFNlbGVjdEZsYWdMb2NhdGlvbkVycm9yTWVzc2FnZS5GTEFHX0xPQ0FUSU9OX05PVF9TRUxFQ1RFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogU2VsZWN0RmxhZ0xvY2F0aW9uRXJyb3JNZXNzYWdlLkZMQUdfTE9DQVRJT05fTk9UX1NFTEVDVEVELFxuICAgICAgICBmaWVsZElkOiAnY29uZGl0aW9uYWwtcmFkaW9zLWxpc3QnXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uQ2FzZUZsYWdzQ29uZmlnRXJyb3IoKTogdm9pZCB7XG4gICAgLy8gU2V0IGVycm9yIGZsYWcgb24gY29tcG9uZW50IHRvIHJlbW92ZSB0aGUgXCJOZXh0XCIgYnV0dG9uICh1c2VyIGNhbm5vdCBwcm9jZWVkIHdpdGggZmxhZyBjcmVhdGlvbilcbiAgICB0aGlzLmNhc2VGbGFnc0NvbmZpZ0Vycm9yID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaChcbiAgICAgIHt0aXRsZTogJycsIGRlc2NyaXB0aW9uOiBTZWxlY3RGbGFnTG9jYXRpb25FcnJvck1lc3NhZ2UuRkxBR1NfTk9UX0NPTkZJR1VSRUQsIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCd9KTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHsgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfVFlQRSwgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZXJyb3JNZXNzYWdlcy5sZW5ndGggPiAwfVwiPlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCIgYXJpYS1kZXNjcmliZWRieT1cImZsYWctbG9jYXRpb24taGVhZGluZ1wiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmQgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tbFwiPlxuICAgICAgICA8aDEgaWQ9XCJmbGFnLWxvY2F0aW9uLWhlYWRpbmdcIiBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19oZWFkaW5nXCI+XG4gICAgICAgICAge3tmbGFnTG9jYXRpb25UaXRsZX19XG4gICAgICAgIDwvaDE+XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXYgaWQ9XCJmbGFnLWxvY2F0aW9uLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJmbGFnTG9jYXRpb25Ob3RTZWxlY3RlZEVycm9yTWVzc2FnZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tmbGFnTG9jYXRpb25Ob3RTZWxlY3RlZEVycm9yTWVzc2FnZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3MgZ292dWstcmFkaW9zLS1jb25kaXRpb25hbFwiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgaWQ9XCJjb25kaXRpb25hbC1yYWRpb3MtbGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19pdGVtXCIgKm5nRm9yPVwibGV0IGZsYWdzSW5zdGFuY2Ugb2YgZmlsdGVyZWRGbGFnc0RhdGE7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJmbGFnLWxvY2F0aW9uLXt7aX19XCIgW25hbWVdPVwic2VsZWN0ZWRMb2NhdGlvbkNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFt2YWx1ZV09XCJmbGFnc0luc3RhbmNlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJzZWxlY3RlZExvY2F0aW9uQ29udHJvbE5hbWVcIi8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIGZvcj1cImZsYWctbG9jYXRpb24te3tpfX1cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmbGFnc0luc3RhbmNlLmZsYWdzLnBhcnR5TmFtZVwiPlxuICAgICAgICAgICAgICB7e2ZsYWdzSW5zdGFuY2UuZmxhZ3MucGFydHlOYW1lfX1cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZsYWdzSW5zdGFuY2UuZmxhZ3Mucm9sZU9uQ2FzZVwiPlxuICAgICAgICAgICAgICAgICh7e2ZsYWdzSW5zdGFuY2UuZmxhZ3Mucm9sZU9uQ2FzZX19KVxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmbGFnc0luc3RhbmNlLmZsYWdzLnBhcnR5TmFtZVwiPlxuICAgICAgICAgICAgICB7e2Nhc2VMZXZlbEZsYWdMYWJlbH19XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCIgKm5nSWY9XCIhY2FzZUZsYWdzQ29uZmlnRXJyb3JcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk5leHQoKVwiPk5leHQ8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { switchMap } from 'rxjs/operators';
|
|
4
|
+
import { CaseFlagRefdataService } from '../../../../../services';
|
|
5
|
+
import { RefdataCaseFlagType } from '../../../../../services/case-flag/refdata-case-flag-type.enum';
|
|
6
|
+
import { CaseFlagFieldState, CaseFlagWizardStepTitle, SelectFlagTypeErrorMessage } from '../../enums';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../../../../services";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
import * as i3 from "@angular/common";
|
|
11
|
+
function SelectFlagTypeComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵelementStart(0, "div", 10);
|
|
13
|
+
i0.ɵɵelementStart(1, "span", 11);
|
|
14
|
+
i0.ɵɵtext(2, "Error:");
|
|
15
|
+
i0.ɵɵelementEnd();
|
|
16
|
+
i0.ɵɵtext(3);
|
|
17
|
+
i0.ɵɵelementEnd();
|
|
18
|
+
} if (rf & 2) {
|
|
19
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
20
|
+
i0.ɵɵadvance(3);
|
|
21
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.flagTypeNotSelectedErrorMessage, " ");
|
|
22
|
+
} }
|
|
23
|
+
function SelectFlagTypeComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
25
|
+
i0.ɵɵelementStart(0, "div", 12);
|
|
26
|
+
i0.ɵɵelementStart(1, "input", 13);
|
|
27
|
+
i0.ɵɵlistener("change", function SelectFlagTypeComponent_div_8_Template_input_change_1_listener() { i0.ɵɵrestoreView(_r7); const flagType_r4 = ctx.$implicit; const ctx_r6 = i0.ɵɵnextContext(); return ctx_r6.onFlagTypeChanged(flagType_r4); });
|
|
28
|
+
i0.ɵɵelementEnd();
|
|
29
|
+
i0.ɵɵelementStart(2, "label", 14);
|
|
30
|
+
i0.ɵɵtext(3);
|
|
31
|
+
i0.ɵɵelementEnd();
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
} if (rf & 2) {
|
|
34
|
+
const flagType_r4 = ctx.$implicit;
|
|
35
|
+
const i_r5 = ctx.index;
|
|
36
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
37
|
+
i0.ɵɵadvance(1);
|
|
38
|
+
i0.ɵɵpropertyInterpolate1("id", "flag-type-", i_r5, "");
|
|
39
|
+
i0.ɵɵproperty("name", ctx_r1.flagTypeControlName)("value", flagType_r4.flagCode === "CATGRY" ? flagType_r4.flagCode + i_r5 : flagType_r4.flagCode)("formControlName", ctx_r1.flagTypeControlName);
|
|
40
|
+
i0.ɵɵadvance(1);
|
|
41
|
+
i0.ɵɵpropertyInterpolate1("for", "flag-type-", i_r5, "");
|
|
42
|
+
i0.ɵɵadvance(1);
|
|
43
|
+
i0.ɵɵtextInterpolate(flagType_r4.name);
|
|
44
|
+
} }
|
|
45
|
+
function SelectFlagTypeComponent_div_9_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
i0.ɵɵelementStart(0, "div", 19);
|
|
47
|
+
i0.ɵɵelementStart(1, "span", 11);
|
|
48
|
+
i0.ɵɵtext(2, "Error:");
|
|
49
|
+
i0.ɵɵelementEnd();
|
|
50
|
+
i0.ɵɵtext(3);
|
|
51
|
+
i0.ɵɵelementEnd();
|
|
52
|
+
} if (rf & 2) {
|
|
53
|
+
const ctx_r8 = i0.ɵɵnextContext(2);
|
|
54
|
+
i0.ɵɵadvance(3);
|
|
55
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r8.flagTypeErrorMessage, " ");
|
|
56
|
+
} }
|
|
57
|
+
const _c0 = function (a0) { return { "form-group-error": a0 }; };
|
|
58
|
+
const _c1 = function (a0) { return { "govuk-input--error": a0 }; };
|
|
59
|
+
function SelectFlagTypeComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
+
i0.ɵɵelementStart(0, "div", 15);
|
|
61
|
+
i0.ɵɵelementStart(1, "div", 1);
|
|
62
|
+
i0.ɵɵelementStart(2, "label", 16);
|
|
63
|
+
i0.ɵɵtext(3, "Enter a flag type");
|
|
64
|
+
i0.ɵɵelementEnd();
|
|
65
|
+
i0.ɵɵtemplate(4, SelectFlagTypeComponent_div_9_div_4_Template, 4, 1, "div", 17);
|
|
66
|
+
i0.ɵɵelement(5, "input", 18);
|
|
67
|
+
i0.ɵɵelementEnd();
|
|
68
|
+
i0.ɵɵelementEnd();
|
|
69
|
+
} if (rf & 2) {
|
|
70
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
71
|
+
i0.ɵɵadvance(1);
|
|
72
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(5, _c0, ctx_r2.flagTypeErrorMessage.length > 0));
|
|
73
|
+
i0.ɵɵadvance(3);
|
|
74
|
+
i0.ɵɵproperty("ngIf", ctx_r2.flagTypeErrorMessage.length > 0);
|
|
75
|
+
i0.ɵɵadvance(1);
|
|
76
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c1, ctx_r2.flagTypeErrorMessage.length > 0))("name", ctx_r2.descriptionControlName)("formControlName", ctx_r2.descriptionControlName);
|
|
77
|
+
} }
|
|
78
|
+
function SelectFlagTypeComponent_div_10_Template(rf, ctx) { if (rf & 1) {
|
|
79
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
80
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
81
|
+
i0.ɵɵelementStart(1, "button", 21);
|
|
82
|
+
i0.ɵɵlistener("click", function SelectFlagTypeComponent_div_10_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return ctx_r9.onNext(); });
|
|
83
|
+
i0.ɵɵtext(2, "Next");
|
|
84
|
+
i0.ɵɵelementEnd();
|
|
85
|
+
i0.ɵɵelementEnd();
|
|
86
|
+
} }
|
|
87
|
+
export class SelectFlagTypeComponent {
|
|
88
|
+
constructor(caseFlagRefdataService) {
|
|
89
|
+
this.caseFlagRefdataService = caseFlagRefdataService;
|
|
90
|
+
this.caseFlagStateEmitter = new EventEmitter();
|
|
91
|
+
this.flagCommentsOptionalEmitter = new EventEmitter();
|
|
92
|
+
this.flagTypeNotSelectedErrorMessage = '';
|
|
93
|
+
this.flagTypeErrorMessage = '';
|
|
94
|
+
this.otherFlagTypeSelected = false;
|
|
95
|
+
this.refdataError = false;
|
|
96
|
+
this.flagTypeControlName = 'flagType';
|
|
97
|
+
this.descriptionControlName = 'otherFlagTypeDescription';
|
|
98
|
+
this.maxCharactersForOtherFlagType = 80;
|
|
99
|
+
// Code for "Other" flag type as defined in Reference Data
|
|
100
|
+
this.otherFlagTypeCode = 'OT0001';
|
|
101
|
+
this.caseLevelCaseFlagsFieldId = 'caseFlags';
|
|
102
|
+
}
|
|
103
|
+
get caseFlagWizardStepTitle() {
|
|
104
|
+
return CaseFlagWizardStepTitle;
|
|
105
|
+
}
|
|
106
|
+
ngOnInit() {
|
|
107
|
+
this.flagTypes = [];
|
|
108
|
+
this.formGroup.addControl(this.flagTypeControlName, new FormControl(''));
|
|
109
|
+
this.formGroup.addControl(this.descriptionControlName, new FormControl(''));
|
|
110
|
+
const flagType = this.formGroup['caseField']
|
|
111
|
+
&& this.formGroup['caseField'].id
|
|
112
|
+
&& this.formGroup['caseField'].id === this.caseLevelCaseFlagsFieldId
|
|
113
|
+
? RefdataCaseFlagType.CASE
|
|
114
|
+
: RefdataCaseFlagType.PARTY;
|
|
115
|
+
// HMCTS service code for a given jurisdiction is required to retrieve the relevant list of flag types
|
|
116
|
+
this.flagRefdata$ = this.caseFlagRefdataService.getHmctsServiceDetails(this.jurisdiction)
|
|
117
|
+
.pipe(
|
|
118
|
+
// Use switchMap to return an inner Observable of the flag types data, having received the service details
|
|
119
|
+
// including service_code. This avoids having nested `subscribe`s, which is an anti-pattern!
|
|
120
|
+
switchMap(serviceDetails => {
|
|
121
|
+
return this.caseFlagRefdataService.getCaseFlagsRefdata(serviceDetails[0].service_code, flagType);
|
|
122
|
+
}))
|
|
123
|
+
.subscribe({
|
|
124
|
+
next: flagTypes => {
|
|
125
|
+
// First (and only) object in the returned array should be the top-level "Party" flag type
|
|
126
|
+
this.flagTypes = flagTypes[0].childFlags;
|
|
127
|
+
},
|
|
128
|
+
error: error => {
|
|
129
|
+
this.onRefdataError(error);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
ngOnDestroy() {
|
|
134
|
+
if (this.flagRefdata$) {
|
|
135
|
+
this.flagRefdata$.unsubscribe();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
onFlagTypeChanged(flagType) {
|
|
139
|
+
this.selectedFlagType = flagType;
|
|
140
|
+
// Display description textbox if 'Other' flag type is selected
|
|
141
|
+
this.otherFlagTypeSelected = this.selectedFlagType.flagCode === this.otherFlagTypeCode;
|
|
142
|
+
}
|
|
143
|
+
onNext() {
|
|
144
|
+
// Validate form
|
|
145
|
+
this.validateForm();
|
|
146
|
+
// Return case flag field state, whether the selected flag type (if any) is a parent or not, error messages,
|
|
147
|
+
// flag name, path, hearing relevant indicator, code, and "list of values" (if any) to the parent
|
|
148
|
+
this.caseFlagStateEmitter.emit({
|
|
149
|
+
currentCaseFlagFieldState: CaseFlagFieldState.FLAG_TYPE,
|
|
150
|
+
isParentFlagType: this.selectedFlagType ? this.selectedFlagType.isParent : null,
|
|
151
|
+
errorMessages: this.errorMessages,
|
|
152
|
+
flagName: this.selectedFlagType ? this.selectedFlagType.name : null,
|
|
153
|
+
flagPath: this.selectedFlagType ? this.selectedFlagType.Path.map(pathValue => Object.assign({ id: null, value: pathValue })) : null,
|
|
154
|
+
hearingRelevantFlag: this.selectedFlagType ? this.selectedFlagType.hearingRelevant : null,
|
|
155
|
+
flagCode: this.selectedFlagType ? this.selectedFlagType.flagCode : null,
|
|
156
|
+
// Include the "list of values" (if any); currently applicable to language flag types
|
|
157
|
+
listOfValues: this.selectedFlagType && this.selectedFlagType.listOfValues && this.selectedFlagType.listOfValues.length > 0
|
|
158
|
+
? this.selectedFlagType.listOfValues
|
|
159
|
+
: null
|
|
160
|
+
});
|
|
161
|
+
// Emit "flag comments optional" event if the user selects a flag type where comments are not mandatory
|
|
162
|
+
if (this.selectedFlagType && !this.selectedFlagType.flagComment) {
|
|
163
|
+
this.flagCommentsOptionalEmitter.emit(null);
|
|
164
|
+
}
|
|
165
|
+
// If the selected flag type is a parent, load the list of child flag types and reset the current selection
|
|
166
|
+
if (this.selectedFlagType && this.selectedFlagType.isParent) {
|
|
167
|
+
this.flagTypes = this.selectedFlagType.childFlags;
|
|
168
|
+
this.formGroup.get(this.flagTypeControlName).setValue('');
|
|
169
|
+
this.selectedFlagType = null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
validateForm() {
|
|
173
|
+
this.flagTypeNotSelectedErrorMessage = '';
|
|
174
|
+
this.flagTypeErrorMessage = '';
|
|
175
|
+
this.errorMessages = [];
|
|
176
|
+
if (!this.selectedFlagType) {
|
|
177
|
+
this.flagTypeNotSelectedErrorMessage = SelectFlagTypeErrorMessage.FLAG_TYPE_NOT_SELECTED;
|
|
178
|
+
this.errorMessages.push({ title: '', description: `${SelectFlagTypeErrorMessage.FLAG_TYPE_NOT_SELECTED}`, fieldId: 'conditional-radios-list' });
|
|
179
|
+
}
|
|
180
|
+
if (this.otherFlagTypeSelected) {
|
|
181
|
+
const otherFlagTypeDescription = this.formGroup.get(this.descriptionControlName).value;
|
|
182
|
+
if (!otherFlagTypeDescription) {
|
|
183
|
+
this.flagTypeErrorMessage = SelectFlagTypeErrorMessage.FLAG_TYPE_NOT_ENTERED;
|
|
184
|
+
this.errorMessages.push({ title: '', description: `${SelectFlagTypeErrorMessage.FLAG_TYPE_NOT_ENTERED}`, fieldId: 'other-flag-type-description' });
|
|
185
|
+
}
|
|
186
|
+
if (otherFlagTypeDescription.length > this.maxCharactersForOtherFlagType) {
|
|
187
|
+
this.flagTypeErrorMessage = SelectFlagTypeErrorMessage.FLAG_TYPE_LIMIT_EXCEEDED;
|
|
188
|
+
this.errorMessages.push({ title: '', description: `${SelectFlagTypeErrorMessage.FLAG_TYPE_LIMIT_EXCEEDED}`, fieldId: 'other-flag-type-description' });
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
onRefdataError(error) {
|
|
193
|
+
// Set error flag on component to remove the "Next" button (user cannot proceed with flag creation)
|
|
194
|
+
this.refdataError = true;
|
|
195
|
+
this.errorMessages = [];
|
|
196
|
+
this.errorMessages.push({ title: '', description: error.message, fieldId: 'conditional-radios-list' });
|
|
197
|
+
// Return case flag field state and error messages to the parent
|
|
198
|
+
this.caseFlagStateEmitter.emit({ currentCaseFlagFieldState: CaseFlagFieldState.FLAG_TYPE, errorMessages: this.errorMessages });
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
SelectFlagTypeComponent.ɵfac = function SelectFlagTypeComponent_Factory(t) { return new (t || SelectFlagTypeComponent)(i0.ɵɵdirectiveInject(i1.CaseFlagRefdataService)); };
|
|
202
|
+
SelectFlagTypeComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SelectFlagTypeComponent, selectors: [["ccd-select-flag-type"]], inputs: { formGroup: "formGroup", jurisdiction: "jurisdiction" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter", flagCommentsOptionalEmitter: "flagCommentsOptionalEmitter" }, decls: 11, vars: 9, consts: [[1, "form-group", 3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "flag-type-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--l"], ["id", "flag-type-heading", 1, "govuk-fieldset__heading"], ["id", "flag-type-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["class", "govuk-radios__conditional", "id", "conditional-flagType", 4, "ngIf"], ["class", "govuk-button-group", 4, "ngIf"], ["id", "flag-type-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "value", "formControlName", "change"], [1, "govuk-label", "govuk-radios__label", 3, "for"], ["id", "conditional-flagType", 1, "govuk-radios__conditional"], ["for", "other-flag-type-description", 1, "govuk-label"], ["id", "flag-type-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "other-flag-type-description", "type", "text", 1, "govuk-input", "govuk-!-width-one-half", 3, "ngClass", "name", "formControlName"], ["id", "flag-type-error-message", 1, "govuk-error-message"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"]], template: function SelectFlagTypeComponent_Template(rf, ctx) { if (rf & 1) {
|
|
203
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
204
|
+
i0.ɵɵelementStart(1, "div", 1);
|
|
205
|
+
i0.ɵɵelementStart(2, "fieldset", 2);
|
|
206
|
+
i0.ɵɵelementStart(3, "legend", 3);
|
|
207
|
+
i0.ɵɵelementStart(4, "h1", 4);
|
|
208
|
+
i0.ɵɵtext(5);
|
|
209
|
+
i0.ɵɵelementEnd();
|
|
210
|
+
i0.ɵɵelementEnd();
|
|
211
|
+
i0.ɵɵtemplate(6, SelectFlagTypeComponent_div_6_Template, 4, 1, "div", 5);
|
|
212
|
+
i0.ɵɵelementStart(7, "div", 6);
|
|
213
|
+
i0.ɵɵtemplate(8, SelectFlagTypeComponent_div_8_Template, 4, 6, "div", 7);
|
|
214
|
+
i0.ɵɵtemplate(9, SelectFlagTypeComponent_div_9_Template, 6, 9, "div", 8);
|
|
215
|
+
i0.ɵɵelementEnd();
|
|
216
|
+
i0.ɵɵelementEnd();
|
|
217
|
+
i0.ɵɵelementEnd();
|
|
218
|
+
i0.ɵɵtemplate(10, SelectFlagTypeComponent_div_10_Template, 3, 0, "div", 9);
|
|
219
|
+
i0.ɵɵelementEnd();
|
|
220
|
+
} if (rf & 2) {
|
|
221
|
+
i0.ɵɵproperty("formGroup", ctx.formGroup);
|
|
222
|
+
i0.ɵɵadvance(1);
|
|
223
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(7, _c0, ctx.flagTypeNotSelectedErrorMessage.length > 0));
|
|
224
|
+
i0.ɵɵadvance(4);
|
|
225
|
+
i0.ɵɵtextInterpolate1(" ", ctx.caseFlagWizardStepTitle.SELECT_CASE_FLAG, " ");
|
|
226
|
+
i0.ɵɵadvance(1);
|
|
227
|
+
i0.ɵɵproperty("ngIf", ctx.flagTypeNotSelectedErrorMessage.length > 0);
|
|
228
|
+
i0.ɵɵadvance(2);
|
|
229
|
+
i0.ɵɵproperty("ngForOf", ctx.flagTypes);
|
|
230
|
+
i0.ɵɵadvance(1);
|
|
231
|
+
i0.ɵɵproperty("ngIf", ctx.otherFlagTypeSelected);
|
|
232
|
+
i0.ɵɵadvance(1);
|
|
233
|
+
i0.ɵɵproperty("ngIf", !ctx.refdataError);
|
|
234
|
+
} }, directives: [i2.NgControlStatusGroup, i2.FormGroupDirective, i3.NgClass, i3.NgIf, i3.NgForOf, i2.RadioControlValueAccessor, i2.DefaultValueAccessor, i2.NgControlStatus, i2.FormControlName], styles: [".hidden[_ngcontent-%COMP%]{display:none}.validation-error[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:#d4351c}"] });
|
|
235
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectFlagTypeComponent, [{
|
|
236
|
+
type: Component,
|
|
237
|
+
args: [{
|
|
238
|
+
selector: 'ccd-select-flag-type',
|
|
239
|
+
templateUrl: './select-flag-type.component.html',
|
|
240
|
+
styleUrls: ['./select-flag-type.component.scss']
|
|
241
|
+
}]
|
|
242
|
+
}], function () { return [{ type: i1.CaseFlagRefdataService }]; }, { formGroup: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], jurisdiction: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], caseFlagStateEmitter: [{
|
|
247
|
+
type: Output
|
|
248
|
+
}], flagCommentsOptionalEmitter: [{
|
|
249
|
+
type: Output
|
|
250
|
+
}] }); })();
|
|
251
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZsYWctdHlwZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jYXNlLWZsYWcvY29tcG9uZW50cy9zZWxlY3QtZmxhZy10eXBlL3NlbGVjdC1mbGFnLXR5cGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VsZWN0LWZsYWctdHlwZS9zZWxlY3QtZmxhZy10eXBlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRXBHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0lDRGhHLCtCQUNxRDtJQUNuRCxnQ0FBb0M7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBTTs7O0lBRDhDLGVBQ3BEO0lBRG9ELHVFQUNwRDs7OztJQUVFLCtCQUErRTtJQUk3RSxpQ0FFa0Y7SUFBeEMsaVBBQXNDO0lBRmhGLGlCQUVrRjtJQUNsRixpQ0FBcUU7SUFBQSxZQUFpQjtJQUFBLGlCQUFRO0lBQ2hHLGlCQUFNOzs7OztJQUorQixlQUFvQjtJQUFwQix1REFBb0I7SUFBQyxpREFBNEIsaUdBQUEsK0NBQUE7SUFHckMsZUFBcUI7SUFBckIsd0RBQXFCO0lBQUMsZUFBaUI7SUFBakIsc0NBQWlCOzs7SUFLcEYsK0JBQXNHO0lBQ3BHLGdDQUFvQztJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQyxZQUNwRDtJQUFBLGlCQUFNOzs7SUFEOEMsZUFDcEQ7SUFEb0QsNERBQ3BEOzs7OztJQUxKLCtCQUErRjtJQUM3Riw4QkFBZ0c7SUFDOUYsaUNBQTZEO0lBQUEsaUNBQWlCO0lBQUEsaUJBQVE7SUFDdEYsK0VBRU07SUFDTiw0QkFHOEM7SUFDaEQsaUJBQU07SUFDUixpQkFBTTs7O0lBVjBCLGVBQWlFO0lBQWpFLDRGQUFpRTtJQUU5QixlQUFxQztJQUFyQyw2REFBcUM7SUFJbEcsZUFBbUU7SUFBbkUsNEZBQW1FLHVDQUFBLGtEQUFBOzs7O0lBUS9FLCtCQUFzRDtJQUNwRCxrQ0FBdUU7SUFBbkIseUxBQWtCO0lBQUMsb0JBQUk7SUFBQSxpQkFBUztJQUN0RixpQkFBTTs7QUR2QlIsTUFBTSxPQUFPLHVCQUF1QjtJQWtDbEMsWUFBNkIsc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUF6QnBFLHlCQUFvQixHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUd0RixnQ0FBMkIsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUtwRSxvQ0FBK0IsR0FBRyxFQUFFLENBQUM7UUFDckMseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBRTFCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVaLHdCQUFtQixHQUFHLFVBQVUsQ0FBQztRQUNqQywyQkFBc0IsR0FBRywwQkFBMEIsQ0FBQztRQUNuRCxrQ0FBNkIsR0FBRyxFQUFFLENBQUM7UUFDcEQsMERBQTBEO1FBQ3pDLHNCQUFpQixHQUFHLFFBQVEsQ0FBQztRQUM5Qiw4QkFBeUIsR0FBRyxXQUFXLENBQUM7SUFNdUIsQ0FBQztJQUpoRixJQUFXLHVCQUF1QjtRQUNoQyxPQUFPLHVCQUF1QixDQUFBO0lBQ2hDLENBQUM7SUFJTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFNUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7ZUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFO2VBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyx5QkFBeUI7WUFDcEUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUk7WUFDMUIsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQztRQUU5QixzR0FBc0c7UUFDdEcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN0RixJQUFJO1FBQ0gsMEdBQTBHO1FBQzFHLDRGQUE0RjtRQUM1RixTQUFTLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuRyxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDaEIsMEZBQTBGO2dCQUMxRixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDM0MsQ0FBQztZQUNELEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDYixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxRQUFrQjtRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO1FBQ2pDLCtEQUErRDtRQUMvRCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDekYsQ0FBQztJQUVNLE1BQU07UUFDWCxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLDRHQUE0RztRQUM1RyxpR0FBaUc7UUFDakcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQztZQUM3Qix5QkFBeUIsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTO1lBQ3ZELGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUMvRSxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNuRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbkksbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3pGLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDdkUscUZBQXFGO1lBQ3JGLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUN4SCxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVk7Z0JBQ3BDLENBQUMsQ0FBQyxJQUFJO1NBQ1QsQ0FBQyxDQUFDO1FBQ0gsdUdBQXVHO1FBQ3ZHLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtZQUMvRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsMkdBQTJHO1FBQzNHLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7WUFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1lBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLCtCQUErQixHQUFHLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsSUFBSSxDQUFDLCtCQUErQixHQUFHLDBCQUEwQixDQUFDLHNCQUFzQixDQUFDO1lBQ3pGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsR0FBRywwQkFBMEIsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBQyxDQUFDLENBQUM7U0FDL0k7UUFDRCxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QixNQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN2RixJQUFJLENBQUMsd0JBQXdCLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxvQkFBb0IsR0FBRywwQkFBMEIsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLDBCQUEwQixDQUFDLHFCQUFxQixFQUFFLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFDLENBQUMsQ0FBQzthQUNsSjtZQUNELElBQUksd0JBQXdCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsRUFBRTtnQkFDeEUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLDBCQUEwQixDQUFDLHdCQUF3QixDQUFDO2dCQUNoRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUcsMEJBQTBCLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUMsQ0FBQyxDQUFDO2FBQ3JKO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQVU7UUFDL0IsbUdBQW1HO1FBQ25HLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUMsQ0FBQyxDQUFDO1FBQ3JHLGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNqSSxDQUFDOzs4RkExSVUsdUJBQXVCOzREQUF2Qix1QkFBdUI7UUNoQnBDLDhCQUFnRDtRQUM5Qyw4QkFBMkc7UUFDekcsbUNBQXNFO1FBQ3BFLGlDQUFpRTtRQUMvRCw2QkFBMkQ7UUFDekQsWUFDRjtRQUFBLGlCQUFLO1FBQ1AsaUJBQVM7UUFDVCx3RUFHTTtRQUNOLDhCQUE0RztRQUMxRyx3RUFRTTtRQUNOLHdFQVdNO1FBQ1IsaUJBQU07UUFDUixpQkFBVztRQUNiLGlCQUFNO1FBQ04sMEVBRU07UUFDUixpQkFBTTs7UUF4Q2tCLHlDQUF1QjtRQUNmLGVBQTRFO1FBQTVFLG9HQUE0RTtRQUlsRyxlQUNGO1FBREUsNkVBQ0Y7UUFHQyxlQUFnRDtRQUFoRCxxRUFBZ0Q7UUFJSSxlQUFjO1FBQWQsdUNBQWM7UUFTM0IsZUFBMkI7UUFBM0IsZ0RBQTJCO1FBZXhDLGVBQW1CO1FBQW5CLHdDQUFtQjs7dUZEckJ6Qyx1QkFBdUI7Y0FMbkMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFdBQVcsRUFBRSxtQ0FBbUM7Z0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO2FBQ2pEO3lFQUlRLFNBQVM7a0JBRGYsS0FBSztZQUlDLFlBQVk7a0JBRGxCLEtBQUs7WUFJQyxvQkFBb0I7a0JBRDFCLE1BQU07WUFJQSwyQkFBMkI7a0JBRGpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGbGFnVHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbi9jYXNlLWZsYWcnO1xuaW1wb3J0IHsgQ2FzZUZsYWdSZWZkYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFJlZmRhdGFDYXNlRmxhZ1R5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9jYXNlLWZsYWcvcmVmZGF0YS1jYXNlLWZsYWctdHlwZS5lbnVtJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdGaWVsZFN0YXRlLCBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZSwgU2VsZWN0RmxhZ1R5cGVFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1zZWxlY3QtZmxhZy10eXBlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1mbGFnLXR5cGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtZmxhZy10eXBlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0RmxhZ1R5cGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBqdXJpc2RpY3Rpb246IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmbGFnQ29tbWVudHNPcHRpb25hbEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBmbGFnVHlwZXM6IEZsYWdUeXBlW107XG4gIHB1YmxpYyBzZWxlY3RlZEZsYWdUeXBlOiBGbGFnVHlwZTtcbiAgcHVibGljIGVycm9yTWVzc2FnZXM6IEVycm9yTWVzc2FnZVtdO1xuICBwdWJsaWMgZmxhZ1R5cGVOb3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgZmxhZ1R5cGVFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIGZsYWdSZWZkYXRhJDogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgb3RoZXJGbGFnVHlwZVNlbGVjdGVkID0gZmFsc2U7XG4gIHB1YmxpYyByZWZkYXRhRXJyb3IgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZmxhZ1R5cGVDb250cm9sTmFtZSA9ICdmbGFnVHlwZSc7XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbkNvbnRyb2xOYW1lID0gJ290aGVyRmxhZ1R5cGVEZXNjcmlwdGlvbic7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4Q2hhcmFjdGVyc0Zvck90aGVyRmxhZ1R5cGUgPSA4MDtcbiAgLy8gQ29kZSBmb3IgXCJPdGhlclwiIGZsYWcgdHlwZSBhcyBkZWZpbmVkIGluIFJlZmVyZW5jZSBEYXRhXG4gIHByaXZhdGUgcmVhZG9ubHkgb3RoZXJGbGFnVHlwZUNvZGUgPSAnT1QwMDAxJztcbiAgcHVibGljIHJlYWRvbmx5IGNhc2VMZXZlbENhc2VGbGFnc0ZpZWxkSWQgPSAnY2FzZUZsYWdzJztcblxuICBwdWJsaWMgZ2V0IGNhc2VGbGFnV2l6YXJkU3RlcFRpdGxlKCk6IHR5cGVvZiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZSB7XG4gICAgcmV0dXJuIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlXG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNhc2VGbGFnUmVmZGF0YVNlcnZpY2U6IENhc2VGbGFnUmVmZGF0YVNlcnZpY2UpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZsYWdUeXBlcyA9IFtdO1xuICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2wodGhpcy5mbGFnVHlwZUNvbnRyb2xOYW1lLCBuZXcgRm9ybUNvbnRyb2woJycpKTtcbiAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKHRoaXMuZGVzY3JpcHRpb25Db250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKCcnKSk7XG5cbiAgICBjb25zdCBmbGFnVHlwZSA9IHRoaXMuZm9ybUdyb3VwWydjYXNlRmllbGQnXVxuICAgICAgJiYgdGhpcy5mb3JtR3JvdXBbJ2Nhc2VGaWVsZCddLmlkXG4gICAgICAmJiB0aGlzLmZvcm1Hcm91cFsnY2FzZUZpZWxkJ10uaWQgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZFxuICAgICAgPyBSZWZkYXRhQ2FzZUZsYWdUeXBlLkNBU0VcbiAgICAgIDogUmVmZGF0YUNhc2VGbGFnVHlwZS5QQVJUWTtcblxuICAgIC8vIEhNQ1RTIHNlcnZpY2UgY29kZSBmb3IgYSBnaXZlbiBqdXJpc2RpY3Rpb24gaXMgcmVxdWlyZWQgdG8gcmV0cmlldmUgdGhlIHJlbGV2YW50IGxpc3Qgb2YgZmxhZyB0eXBlc1xuICAgIHRoaXMuZmxhZ1JlZmRhdGEkID0gdGhpcy5jYXNlRmxhZ1JlZmRhdGFTZXJ2aWNlLmdldEhtY3RzU2VydmljZURldGFpbHModGhpcy5qdXJpc2RpY3Rpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gVXNlIHN3aXRjaE1hcCB0byByZXR1cm4gYW4gaW5uZXIgT2JzZXJ2YWJsZSBvZiB0aGUgZmxhZyB0eXBlcyBkYXRhLCBoYXZpbmcgcmVjZWl2ZWQgdGhlIHNlcnZpY2UgZGV0YWlsc1xuICAgICAgICAvLyBpbmNsdWRpbmcgc2VydmljZV9jb2RlLiBUaGlzIGF2b2lkcyBoYXZpbmcgbmVzdGVkIGBzdWJzY3JpYmVgcywgd2hpY2ggaXMgYW4gYW50aS1wYXR0ZXJuIVxuICAgICAgICBzd2l0Y2hNYXAoc2VydmljZURldGFpbHMgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNhc2VGbGFnUmVmZGF0YVNlcnZpY2UuZ2V0Q2FzZUZsYWdzUmVmZGF0YShzZXJ2aWNlRGV0YWlsc1swXS5zZXJ2aWNlX2NvZGUsIGZsYWdUeXBlKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBmbGFnVHlwZXMgPT4ge1xuICAgICAgICAgIC8vIEZpcnN0IChhbmQgb25seSkgb2JqZWN0IGluIHRoZSByZXR1cm5lZCBhcnJheSBzaG91bGQgYmUgdGhlIHRvcC1sZXZlbCBcIlBhcnR5XCIgZmxhZyB0eXBlXG4gICAgICAgICAgdGhpcy5mbGFnVHlwZXMgPSBmbGFnVHlwZXNbMF0uY2hpbGRGbGFncztcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLm9uUmVmZGF0YUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmxhZ1JlZmRhdGEkKSB7XG4gICAgICB0aGlzLmZsYWdSZWZkYXRhJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkZsYWdUeXBlQ2hhbmdlZChmbGFnVHlwZTogRmxhZ1R5cGUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRmxhZ1R5cGUgPSBmbGFnVHlwZTtcbiAgICAvLyBEaXNwbGF5IGRlc2NyaXB0aW9uIHRleHRib3ggaWYgJ090aGVyJyBmbGFnIHR5cGUgaXMgc2VsZWN0ZWRcbiAgICB0aGlzLm90aGVyRmxhZ1R5cGVTZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRGbGFnVHlwZS5mbGFnQ29kZSA9PT0gdGhpcy5vdGhlckZsYWdUeXBlQ29kZTtcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgZm9ybVxuICAgIHRoaXMudmFsaWRhdGVGb3JtKCk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSwgd2hldGhlciB0aGUgc2VsZWN0ZWQgZmxhZyB0eXBlIChpZiBhbnkpIGlzIGEgcGFyZW50IG9yIG5vdCwgZXJyb3IgbWVzc2FnZXMsXG4gICAgLy8gZmxhZyBuYW1lLCBwYXRoLCBoZWFyaW5nIHJlbGV2YW50IGluZGljYXRvciwgY29kZSwgYW5kIFwibGlzdCBvZiB2YWx1ZXNcIiAoaWYgYW55KSB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1RZUEUsXG4gICAgICBpc1BhcmVudEZsYWdUeXBlOiB0aGlzLnNlbGVjdGVkRmxhZ1R5cGUgPyB0aGlzLnNlbGVjdGVkRmxhZ1R5cGUuaXNQYXJlbnQgOiBudWxsLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgZmxhZ05hbWU6IHRoaXMuc2VsZWN0ZWRGbGFnVHlwZSA/IHRoaXMuc2VsZWN0ZWRGbGFnVHlwZS5uYW1lIDogbnVsbCxcbiAgICAgIGZsYWdQYXRoOiB0aGlzLnNlbGVjdGVkRmxhZ1R5cGUgPyB0aGlzLnNlbGVjdGVkRmxhZ1R5cGUuUGF0aC5tYXAocGF0aFZhbHVlID0+IE9iamVjdC5hc3NpZ24oeyBpZDogbnVsbCwgdmFsdWU6IHBhdGhWYWx1ZSB9KSkgOiBudWxsLFxuICAgICAgaGVhcmluZ1JlbGV2YW50RmxhZzogdGhpcy5zZWxlY3RlZEZsYWdUeXBlID8gdGhpcy5zZWxlY3RlZEZsYWdUeXBlLmhlYXJpbmdSZWxldmFudCA6IG51bGwsXG4gICAgICBmbGFnQ29kZTogdGhpcy5zZWxlY3RlZEZsYWdUeXBlID8gdGhpcy5zZWxlY3RlZEZsYWdUeXBlLmZsYWdDb2RlIDogbnVsbCxcbiAgICAgIC8vIEluY2x1ZGUgdGhlIFwibGlzdCBvZiB2YWx1ZXNcIiAoaWYgYW55KTsgY3VycmVudGx5IGFwcGxpY2FibGUgdG8gbGFuZ3VhZ2UgZmxhZyB0eXBlc1xuICAgICAgbGlzdE9mVmFsdWVzOiB0aGlzLnNlbGVjdGVkRmxhZ1R5cGUgJiYgdGhpcy5zZWxlY3RlZEZsYWdUeXBlLmxpc3RPZlZhbHVlcyAmJiB0aGlzLnNlbGVjdGVkRmxhZ1R5cGUubGlzdE9mVmFsdWVzLmxlbmd0aCA+IDBcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkRmxhZ1R5cGUubGlzdE9mVmFsdWVzXG4gICAgICAgIDogbnVsbFxuICAgIH0pO1xuICAgIC8vIEVtaXQgXCJmbGFnIGNvbW1lbnRzIG9wdGlvbmFsXCIgZXZlbnQgaWYgdGhlIHVzZXIgc2VsZWN0cyBhIGZsYWcgdHlwZSB3aGVyZSBjb21tZW50cyBhcmUgbm90IG1hbmRhdG9yeVxuICAgIGlmICh0aGlzLnNlbGVjdGVkRmxhZ1R5cGUgJiYgIXRoaXMuc2VsZWN0ZWRGbGFnVHlwZS5mbGFnQ29tbWVudCkge1xuICAgICAgdGhpcy5mbGFnQ29tbWVudHNPcHRpb25hbEVtaXR0ZXIuZW1pdChudWxsKTtcbiAgICB9XG4gICAgLy8gSWYgdGhlIHNlbGVjdGVkIGZsYWcgdHlwZSBpcyBhIHBhcmVudCwgbG9hZCB0aGUgbGlzdCBvZiBjaGlsZCBmbGFnIHR5cGVzIGFuZCByZXNldCB0aGUgY3VycmVudCBzZWxlY3Rpb25cbiAgICBpZiAodGhpcy5zZWxlY3RlZEZsYWdUeXBlICYmIHRoaXMuc2VsZWN0ZWRGbGFnVHlwZS5pc1BhcmVudCkge1xuICAgICAgdGhpcy5mbGFnVHlwZXMgPSB0aGlzLnNlbGVjdGVkRmxhZ1R5cGUuY2hpbGRGbGFncztcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmZsYWdUeXBlQ29udHJvbE5hbWUpLnNldFZhbHVlKCcnKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGbGFnVHlwZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5mbGFnVHlwZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlID0gJyc7XG4gICAgdGhpcy5mbGFnVHlwZUVycm9yTWVzc2FnZSA9ICcnO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkRmxhZ1R5cGUpIHtcbiAgICAgIHRoaXMuZmxhZ1R5cGVOb3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9IFNlbGVjdEZsYWdUeXBlRXJyb3JNZXNzYWdlLkZMQUdfVFlQRV9OT1RfU0VMRUNURUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7dGl0bGU6ICcnLCBkZXNjcmlwdGlvbjogYCR7U2VsZWN0RmxhZ1R5cGVFcnJvck1lc3NhZ2UuRkxBR19UWVBFX05PVF9TRUxFQ1RFRH1gLCBmaWVsZElkOiAnY29uZGl0aW9uYWwtcmFkaW9zLWxpc3QnfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm90aGVyRmxhZ1R5cGVTZWxlY3RlZCkge1xuICAgICAgY29uc3Qgb3RoZXJGbGFnVHlwZURlc2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuZGVzY3JpcHRpb25Db250cm9sTmFtZSkudmFsdWU7XG4gICAgICBpZiAoIW90aGVyRmxhZ1R5cGVEZXNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLmZsYWdUeXBlRXJyb3JNZXNzYWdlID0gU2VsZWN0RmxhZ1R5cGVFcnJvck1lc3NhZ2UuRkxBR19UWVBFX05PVF9FTlRFUkVEO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7dGl0bGU6ICcnLCBkZXNjcmlwdGlvbjogYCR7U2VsZWN0RmxhZ1R5cGVFcnJvck1lc3NhZ2UuRkxBR19UWVBFX05PVF9FTlRFUkVEfWAsIGZpZWxkSWQ6ICdvdGhlci1mbGFnLXR5cGUtZGVzY3JpcHRpb24nfSk7XG4gICAgICB9XG4gICAgICBpZiAob3RoZXJGbGFnVHlwZURlc2NyaXB0aW9uLmxlbmd0aCA+IHRoaXMubWF4Q2hhcmFjdGVyc0Zvck90aGVyRmxhZ1R5cGUpIHtcbiAgICAgICAgdGhpcy5mbGFnVHlwZUVycm9yTWVzc2FnZSA9IFNlbGVjdEZsYWdUeXBlRXJyb3JNZXNzYWdlLkZMQUdfVFlQRV9MSU1JVF9FWENFRURFRDtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe3RpdGxlOiAnJywgZGVzY3JpcHRpb246IGAke1NlbGVjdEZsYWdUeXBlRXJyb3JNZXNzYWdlLkZMQUdfVFlQRV9MSU1JVF9FWENFRURFRH1gLCBmaWVsZElkOiAnb3RoZXItZmxhZy10eXBlLWRlc2NyaXB0aW9uJ30pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25SZWZkYXRhRXJyb3IoZXJyb3I6IGFueSk6IHZvaWQge1xuICAgIC8vIFNldCBlcnJvciBmbGFnIG9uIGNvbXBvbmVudCB0byByZW1vdmUgdGhlIFwiTmV4dFwiIGJ1dHRvbiAodXNlciBjYW5ub3QgcHJvY2VlZCB3aXRoIGZsYWcgY3JlYXRpb24pXG4gICAgdGhpcy5yZWZkYXRhRXJyb3IgPSB0cnVlO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHt0aXRsZTogJycsIGRlc2NyaXB0aW9uOiBlcnJvci5tZXNzYWdlLCBmaWVsZElkOiAnY29uZGl0aW9uYWwtcmFkaW9zLWxpc3QnfSk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7IGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX1RZUEUsIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGZsYWdUeXBlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UubGVuZ3RoID4gMH1cIj5cbiAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJmbGFnLXR5cGUtaGVhZGluZ1wiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmQgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tbFwiPlxuICAgICAgICA8aDEgaWQ9XCJmbGFnLXR5cGUtaGVhZGluZ1wiIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2hlYWRpbmdcIj5cbiAgICAgICAgICB7e2Nhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLlNFTEVDVF9DQVNFX0ZMQUd9fVxuICAgICAgICA8L2gxPlxuICAgICAgPC9sZWdlbmQ+XG4gICAgICA8ZGl2IGlkPVwiZmxhZy10eXBlLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJmbGFnVHlwZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7ZmxhZ1R5cGVOb3RTZWxlY3RlZEVycm9yTWVzc2FnZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3MgZ292dWstcmFkaW9zLS1jb25kaXRpb25hbFwiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgaWQ9XCJjb25kaXRpb25hbC1yYWRpb3MtbGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19pdGVtXCIgKm5nRm9yPVwibGV0IGZsYWdUeXBlIG9mIGZsYWdUeXBlczsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgIDwhLS0gQWxsIHBhcmVudCBmbGFnIHR5cGVzIGhhdmUgdGhlIHNhbWUgZmxhZ0NvZGUgb2YgXCJDQVRHUllcIiwgc28gZWFjaCByYWRpbyBidXR0b24gdmFsdWUgbmVlZHMgdG8gYmUgbWFkZVxuICAgICAgICAgICAgdW5pcXVlIGJ5IGFwcGVuZGluZyB0aGUgaW5kZXggLSByYWRpbyBidXR0b25zIHNob3VsZG4ndCBzaGFyZSB0aGUgc2FtZSB2YWx1ZS5cbiAgICAgICAgICAgIEl0IGlzIE9LIHRvIGFtZW5kIGZsYWdDb2RlIHRoaXMgd2F5IGJlY2F1c2UgcGFyZW50IGZsYWcgdHlwZXMgY2Fubm90IGJlIHNlbGVjdGVkIGFzIGEgZmluYWwgdmFsdWUgLS0+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwiZmxhZy10eXBlLXt7aX19XCIgW25hbWVdPVwiZmxhZ1R5cGVDb250cm9sTmFtZVwiXG4gICAgICAgICAgICB0eXBlPVwicmFkaW9cIiBbdmFsdWVdPVwiZmxhZ1R5cGUuZmxhZ0NvZGUgPT09ICdDQVRHUlknID8gZmxhZ1R5cGUuZmxhZ0NvZGUgKyBpIDogZmxhZ1R5cGUuZmxhZ0NvZGVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmbGFnVHlwZUNvbnRyb2xOYW1lXCIgKGNoYW5nZSk9XCJvbkZsYWdUeXBlQ2hhbmdlZChmbGFnVHlwZSlcIi8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIGZvcj1cImZsYWctdHlwZS17e2l9fVwiPnt7ZmxhZ1R5cGUubmFtZX19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2NvbmRpdGlvbmFsXCIgKm5nSWY9XCJvdGhlckZsYWdUeXBlU2VsZWN0ZWRcIiBpZD1cImNvbmRpdGlvbmFsLWZsYWdUeXBlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiBmbGFnVHlwZUVycm9yTWVzc2FnZS5sZW5ndGggPiAwfVwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWxcIiBmb3I9XCJvdGhlci1mbGFnLXR5cGUtZGVzY3JpcHRpb25cIj5FbnRlciBhIGZsYWcgdHlwZTwvbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGlkPVwiZmxhZy10eXBlLWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZsYWdUeXBlRXJyb3JNZXNzYWdlLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7ZmxhZ1R5cGVFcnJvck1lc3NhZ2V9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLW9uZS1oYWxmXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBmbGFnVHlwZUVycm9yTWVzc2FnZS5sZW5ndGggPiAwfVwiXG4gICAgICAgICAgICAgIGlkPVwib3RoZXItZmxhZy10eXBlLWRlc2NyaXB0aW9uXCIgW25hbWVdPVwiZGVzY3JpcHRpb25Db250cm9sTmFtZVwiIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJkZXNjcmlwdGlvbkNvbnRyb2xOYW1lXCIvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCIgKm5nSWY9XCIhcmVmZGF0YUVycm9yXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25OZXh0KClcIj5OZXh0PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|