@hmcts/ccd-case-ui-toolkit 5.0.28-angular11-upgrade → 5.0.30-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 +16712 -13580
- 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 +43 -32
- 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 +6 -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 +157 -0
- package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +465 -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/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/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 +10974 -8135
- 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 +29 -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 +63 -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/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/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,200 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { CaseFlagFieldState, CaseFlagWizardStepTitle, SelectFlagErrorMessage } 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 ManageCaseFlagsComponent_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.manageCaseFlagSelectedErrorMessage, " ");
|
|
18
|
+
} }
|
|
19
|
+
function ManageCaseFlagsComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
i0.ɵɵelementStart(0, "div", 11);
|
|
21
|
+
i0.ɵɵelement(1, "input", 12);
|
|
22
|
+
i0.ɵɵelementStart(2, "label", 13);
|
|
23
|
+
i0.ɵɵtext(3);
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
} if (rf & 2) {
|
|
27
|
+
const flagDisplay_r3 = ctx.$implicit;
|
|
28
|
+
const i_r4 = ctx.index;
|
|
29
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
30
|
+
i0.ɵɵadvance(1);
|
|
31
|
+
i0.ɵɵpropertyInterpolate1("id", "flag-selection-", i_r4, "");
|
|
32
|
+
i0.ɵɵproperty("name", ctx_r1.selectedControlName)("value", flagDisplay_r3)("formControlName", ctx_r1.selectedControlName);
|
|
33
|
+
i0.ɵɵadvance(1);
|
|
34
|
+
i0.ɵɵpropertyInterpolate1("for", "flag-selection-", i_r4, "");
|
|
35
|
+
i0.ɵɵadvance(1);
|
|
36
|
+
i0.ɵɵtextInterpolate(ctx_r1.processLabel(flagDisplay_r3));
|
|
37
|
+
} }
|
|
38
|
+
function ManageCaseFlagsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
40
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
41
|
+
i0.ɵɵelementStart(1, "button", 15);
|
|
42
|
+
i0.ɵɵlistener("click", function ManageCaseFlagsComponent_div_9_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(); return ctx_r5.onNext(); });
|
|
43
|
+
i0.ɵɵtext(2, "Next");
|
|
44
|
+
i0.ɵɵelementEnd();
|
|
45
|
+
i0.ɵɵelementEnd();
|
|
46
|
+
} }
|
|
47
|
+
const _c0 = function (a0) { return { "form-group-error": a0 }; };
|
|
48
|
+
export class ManageCaseFlagsComponent {
|
|
49
|
+
constructor() {
|
|
50
|
+
this.caseFlagStateEmitter = new EventEmitter();
|
|
51
|
+
this.errorMessages = [];
|
|
52
|
+
this.manageCaseFlagSelectedErrorMessage = null;
|
|
53
|
+
this.noFlagsError = false;
|
|
54
|
+
this.selectedControlName = 'selectedManageCaseLocation';
|
|
55
|
+
this.caseLevelCaseFlagsFieldId = 'caseFlags';
|
|
56
|
+
}
|
|
57
|
+
ngOnInit() {
|
|
58
|
+
this.manageCaseFlagTitle = CaseFlagWizardStepTitle.MANAGE_CASE_FLAGS;
|
|
59
|
+
// Map flags instances to objects for display
|
|
60
|
+
if (this.flagsData) {
|
|
61
|
+
this.flagsDisplayData = this.flagsData.reduce((displayData, flagsInstance) => {
|
|
62
|
+
if (flagsInstance.flags.details && flagsInstance.flags.details.length > 0) {
|
|
63
|
+
displayData = [
|
|
64
|
+
...displayData,
|
|
65
|
+
...flagsInstance.flags.details.map(detail => this.mapFlagDetailForDisplay(detail, flagsInstance.flags.partyName, flagsInstance.pathToFlagsFormGroup, flagsInstance.caseField))
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
return displayData;
|
|
69
|
+
}, []);
|
|
70
|
+
}
|
|
71
|
+
// Add a FormControl for the selected case flag if there is at least one flags instance remaining after mapping
|
|
72
|
+
if (this.flagsDisplayData && this.flagsDisplayData.length > 0) {
|
|
73
|
+
this.formGroup.addControl(this.selectedControlName, new FormControl(null));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// No flags display data means there are no flags to select from. The user cannot proceed with a flag update.
|
|
77
|
+
// (Will need to be extended to check for case-level flags in future)
|
|
78
|
+
this.onNoFlagsError();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
mapFlagDetailForDisplay(flagDetail, partyName, pathToFlagsFormGroup, caseField) {
|
|
82
|
+
return {
|
|
83
|
+
flagDetailDisplay: {
|
|
84
|
+
partyName,
|
|
85
|
+
flagDetail,
|
|
86
|
+
flagsCaseFieldId: caseField.id
|
|
87
|
+
},
|
|
88
|
+
pathToFlagsFormGroup,
|
|
89
|
+
caseField
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
processLabel(flagDisplay) {
|
|
93
|
+
const partyName = flagDisplay.pathToFlagsFormGroup && flagDisplay.pathToFlagsFormGroup === this.caseLevelCaseFlagsFieldId
|
|
94
|
+
? `${this.caseTitle} - `
|
|
95
|
+
: flagDisplay.flagDetailDisplay.partyName
|
|
96
|
+
? `${flagDisplay.flagDetailDisplay.partyName} - `
|
|
97
|
+
: '';
|
|
98
|
+
const flagDetail = flagDisplay.flagDetailDisplay.flagDetail;
|
|
99
|
+
const flagPathOrName = flagDetail && flagDetail.path && flagDetail.path.length > 1
|
|
100
|
+
? flagDetail.path[1].value
|
|
101
|
+
: flagDetail.subTypeKey && flagDetail.subTypeValue
|
|
102
|
+
? flagDetail.subTypeValue
|
|
103
|
+
: flagDetail.name;
|
|
104
|
+
const flagOtherDescriptionOrName = flagDetail && flagDetail.name
|
|
105
|
+
? flagDetail.name === 'Other'
|
|
106
|
+
? flagDetail.otherDescription
|
|
107
|
+
: flagDetail.subTypeKey && flagDetail.subTypeValue
|
|
108
|
+
? flagDetail.subTypeValue
|
|
109
|
+
: flagDetail.name
|
|
110
|
+
: '';
|
|
111
|
+
const comment = flagDetail.flagComment
|
|
112
|
+
? ` (${flagDetail.flagComment})`
|
|
113
|
+
: '';
|
|
114
|
+
return flagPathOrName === flagOtherDescriptionOrName
|
|
115
|
+
? `${partyName}${flagOtherDescriptionOrName}${comment}`
|
|
116
|
+
: `${partyName}${flagPathOrName}, ${flagOtherDescriptionOrName}${comment}`;
|
|
117
|
+
}
|
|
118
|
+
onNext() {
|
|
119
|
+
// Validate flag selection
|
|
120
|
+
this.validateSelection();
|
|
121
|
+
// Return case flag field state, error messages, and flag selection to the parent
|
|
122
|
+
this.caseFlagStateEmitter.emit({
|
|
123
|
+
currentCaseFlagFieldState: CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS,
|
|
124
|
+
errorMessages: this.errorMessages,
|
|
125
|
+
selectedFlag: this.formGroup.get(this.selectedControlName).value
|
|
126
|
+
? this.formGroup.get(this.selectedControlName).value
|
|
127
|
+
: null
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
validateSelection() {
|
|
131
|
+
this.manageCaseFlagSelectedErrorMessage = null;
|
|
132
|
+
this.errorMessages = [];
|
|
133
|
+
if (!this.formGroup.get(this.selectedControlName).value) {
|
|
134
|
+
this.manageCaseFlagSelectedErrorMessage = SelectFlagErrorMessage.FLAG_NOT_SELECTED;
|
|
135
|
+
this.errorMessages.push({
|
|
136
|
+
title: '',
|
|
137
|
+
description: SelectFlagErrorMessage.FLAG_NOT_SELECTED,
|
|
138
|
+
fieldId: 'conditional-radios-list'
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
onNoFlagsError() {
|
|
143
|
+
// Set error flag on component to remove the "Next" button (user cannot proceed with flag creation)
|
|
144
|
+
this.noFlagsError = true;
|
|
145
|
+
this.errorMessages = [];
|
|
146
|
+
this.errorMessages.push({ title: '', description: SelectFlagErrorMessage.NO_FLAGS, fieldId: 'conditional-radios-list' });
|
|
147
|
+
// Return case flag field state and error messages to the parent
|
|
148
|
+
this.caseFlagStateEmitter.emit({
|
|
149
|
+
currentCaseFlagFieldState: CaseFlagFieldState.FLAG_MANAGE_CASE_FLAGS,
|
|
150
|
+
errorMessages: this.errorMessages
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
ManageCaseFlagsComponent.ɵfac = function ManageCaseFlagsComponent_Factory(t) { return new (t || ManageCaseFlagsComponent)(); };
|
|
155
|
+
ManageCaseFlagsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 10, vars: 8, consts: [[1, "form-group", 3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "manage-case-flag-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--l"], ["id", "manage-case-flag-heading", 1, "govuk-fieldset__heading"], ["id", "manage-case-flag-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", "manage-case-flag-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"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"]], template: function ManageCaseFlagsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
156
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
157
|
+
i0.ɵɵelementStart(1, "div", 1);
|
|
158
|
+
i0.ɵɵelementStart(2, "fieldset", 2);
|
|
159
|
+
i0.ɵɵelementStart(3, "legend", 3);
|
|
160
|
+
i0.ɵɵelementStart(4, "h1", 4);
|
|
161
|
+
i0.ɵɵtext(5);
|
|
162
|
+
i0.ɵɵelementEnd();
|
|
163
|
+
i0.ɵɵelementEnd();
|
|
164
|
+
i0.ɵɵtemplate(6, ManageCaseFlagsComponent_div_6_Template, 4, 1, "div", 5);
|
|
165
|
+
i0.ɵɵelementStart(7, "div", 6);
|
|
166
|
+
i0.ɵɵtemplate(8, ManageCaseFlagsComponent_div_8_Template, 4, 6, "div", 7);
|
|
167
|
+
i0.ɵɵelementEnd();
|
|
168
|
+
i0.ɵɵelementEnd();
|
|
169
|
+
i0.ɵɵelementEnd();
|
|
170
|
+
i0.ɵɵtemplate(9, ManageCaseFlagsComponent_div_9_Template, 3, 0, "div", 8);
|
|
171
|
+
i0.ɵɵelementEnd();
|
|
172
|
+
} if (rf & 2) {
|
|
173
|
+
i0.ɵɵproperty("formGroup", ctx.formGroup);
|
|
174
|
+
i0.ɵɵadvance(1);
|
|
175
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0, ctx.errorMessages.length > 0));
|
|
176
|
+
i0.ɵɵadvance(4);
|
|
177
|
+
i0.ɵɵtextInterpolate1(" ", ctx.manageCaseFlagTitle, " ");
|
|
178
|
+
i0.ɵɵadvance(1);
|
|
179
|
+
i0.ɵɵproperty("ngIf", ctx.manageCaseFlagSelectedErrorMessage);
|
|
180
|
+
i0.ɵɵadvance(2);
|
|
181
|
+
i0.ɵɵproperty("ngForOf", ctx.flagsDisplayData);
|
|
182
|
+
i0.ɵɵadvance(1);
|
|
183
|
+
i0.ɵɵproperty("ngIf", !ctx.noFlagsError);
|
|
184
|
+
} }, directives: [i1.NgControlStatusGroup, i1.FormGroupDirective, i2.NgClass, i2.NgIf, i2.NgForOf, i1.RadioControlValueAccessor, i1.DefaultValueAccessor, i1.NgControlStatus, i1.FormControlName], encapsulation: 2 });
|
|
185
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ManageCaseFlagsComponent, [{
|
|
186
|
+
type: Component,
|
|
187
|
+
args: [{
|
|
188
|
+
selector: 'ccd-manage-case-flags',
|
|
189
|
+
templateUrl: './manage-case-flags.component.html'
|
|
190
|
+
}]
|
|
191
|
+
}], null, { formGroup: [{
|
|
192
|
+
type: Input
|
|
193
|
+
}], flagsData: [{
|
|
194
|
+
type: Input
|
|
195
|
+
}], caseTitle: [{
|
|
196
|
+
type: Input
|
|
197
|
+
}], caseFlagStateEmitter: [{
|
|
198
|
+
type: Output
|
|
199
|
+
}] }); })();
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7SUNJNUYsOEJBQzZDO0lBQzNDLGdDQUFvQztJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFBQyxZQUNwRDtJQUFBLGlCQUFNOzs7SUFEOEMsZUFDcEQ7SUFEb0QsMEVBQ3BEOzs7SUFFRSwrQkFBeUY7SUFDdkYsNEJBQzhFO0lBQzlFLGlDQUEwRTtJQUFBLFlBQTZCO0lBQUEsaUJBQVE7SUFDakgsaUJBQU07Ozs7O0lBSCtCLGVBQXlCO0lBQXpCLDREQUF5QjtJQUFDLGlEQUE0Qix5QkFBQSwrQ0FBQTtJQUUxQyxlQUEwQjtJQUExQiw2REFBMEI7SUFBQyxlQUE2QjtJQUE3Qix5REFB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eUY7UUFDdkYsbUNBQTZFO1FBQzNFLGlDQUFpRTtRQUMvRCw2QkFBa0U7UUFDaEUsWUFDRjtRQUFBLGlCQUFLO1FBQ1AsaUJBQVM7UUFDVCx5RUFHTTtRQUNOLDhCQUE0RztRQUMxRyx5RUFJTTtRQUNSLGlCQUFNO1FBQ1IsaUJBQVc7UUFDYixpQkFBTTtRQUNOLHlFQUVNO1FBQ1IsaUJBQU07O1FBeEJrQix5Q0FBdUI7UUFDZixlQUEwRDtRQUExRCxrRkFBMEQ7UUFJaEYsZUFDRjtRQURFLHdEQUNGO1FBR0MsZUFBd0M7UUFBeEMsNkRBQXdDO1FBSWUsZUFBcUI7UUFBckIsOENBQXFCO1FBUWxELGVBQW1CO1FBQW5CLHdDQUFtQjs7dUZEWHpDLHdCQUF3QjtjQUpwQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsV0FBVyxFQUFFLG9DQUFvQzthQUNsRDtnQkFHaUIsU0FBUztrQkFBeEIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1csb0JBQW9CO2tCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENhc2VGaWVsZCwgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUsIEZsYWdEZXRhaWwsIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGgsIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdGaWVsZFN0YXRlLCBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZSwgU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLW1hbmFnZS1jYXNlLWZsYWdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS1jYXNlLWZsYWdzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBNYW5hZ2VDYXNlRmxhZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBASW5wdXQoKSBwdWJsaWMgY2FzZVRpdGxlOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FzZUZsYWdTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4oKTtcblxuICBwdWJsaWMgbWFuYWdlQ2FzZUZsYWdUaXRsZTogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGU7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgbWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZTogU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBmbGFnc0Rpc3BsYXlEYXRhOiBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoW107XG4gIHB1YmxpYyBub0ZsYWdzRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkQ29udHJvbE5hbWUgPSAnc2VsZWN0ZWRNYW5hZ2VDYXNlTG9jYXRpb24nO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCA9ICdjYXNlRmxhZ3MnO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hbmFnZUNhc2VGbGFnVGl0bGUgPSBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5NQU5BR0VfQ0FTRV9GTEFHUztcblxuICAgIC8vIE1hcCBmbGFncyBpbnN0YW5jZXMgdG8gb2JqZWN0cyBmb3IgZGlzcGxheVxuICAgIGlmICh0aGlzLmZsYWdzRGF0YSkge1xuICAgICAgdGhpcy5mbGFnc0Rpc3BsYXlEYXRhID0gdGhpcy5mbGFnc0RhdGEucmVkdWNlKChkaXNwbGF5RGF0YSwgZmxhZ3NJbnN0YW5jZSkgPT4ge1xuICAgICAgICBpZiAoZmxhZ3NJbnN0YW5jZS5mbGFncy5kZXRhaWxzICYmIGZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZGlzcGxheURhdGEgPSBbXG4gICAgICAgICAgICAuLi5kaXNwbGF5RGF0YSxcbiAgICAgICAgICAgIC4uLmZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5tYXAoZGV0YWlsID0+XG4gICAgICAgICAgICAgIHRoaXMubWFwRmxhZ0RldGFpbEZvckRpc3BsYXkoZGV0YWlsLCBmbGFnc0luc3RhbmNlLmZsYWdzLnBhcnR5TmFtZSwgZmxhZ3NJbnN0YW5jZS5wYXRoVG9GbGFnc0Zvcm1Hcm91cCxcbiAgICAgICAgICAgICAgICBmbGFnc0luc3RhbmNlLmNhc2VGaWVsZClcbiAgICAgICAgICAgIClcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXNwbGF5RGF0YTtcbiAgICAgIH0sIFtdKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgYSBGb3JtQ29udHJvbCBmb3IgdGhlIHNlbGVjdGVkIGNhc2UgZmxhZyBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgZmxhZ3MgaW5zdGFuY2UgcmVtYWluaW5nIGFmdGVyIG1hcHBpbmdcbiAgICBpZiAodGhpcy5mbGFnc0Rpc3BsYXlEYXRhICYmIHRoaXMuZmxhZ3NEaXNwbGF5RGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKHRoaXMuc2VsZWN0ZWRDb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKG51bGwpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gZmxhZ3MgZGlzcGxheSBkYXRhIG1lYW5zIHRoZXJlIGFyZSBubyBmbGFncyB0byBzZWxlY3QgZnJvbS4gVGhlIHVzZXIgY2Fubm90IHByb2NlZWQgd2l0aCBhIGZsYWcgdXBkYXRlLlxuICAgICAgLy8gKFdpbGwgbmVlZCB0byBiZSBleHRlbmRlZCB0byBjaGVjayBmb3IgY2FzZS1sZXZlbCBmbGFncyBpbiBmdXR1cmUpXG4gICAgICB0aGlzLm9uTm9GbGFnc0Vycm9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1hcEZsYWdEZXRhaWxGb3JEaXNwbGF5KGZsYWdEZXRhaWw6IEZsYWdEZXRhaWwsIHBhcnR5TmFtZTogc3RyaW5nLFxuICAgIHBhdGhUb0ZsYWdzRm9ybUdyb3VwOiBzdHJpbmcsIGNhc2VGaWVsZDogQ2FzZUZpZWxkKTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmbGFnRGV0YWlsRGlzcGxheToge1xuICAgICAgICAgIHBhcnR5TmFtZSxcbiAgICAgICAgICBmbGFnRGV0YWlsLFxuICAgICAgICAgIGZsYWdzQ2FzZUZpZWxkSWQ6IGNhc2VGaWVsZC5pZFxuICAgICAgICB9LFxuICAgICAgICBwYXRoVG9GbGFnc0Zvcm1Hcm91cCxcbiAgICAgICAgY2FzZUZpZWxkXG4gICAgICB9O1xuICB9XG5cbiAgcHVibGljIHByb2Nlc3NMYWJlbChmbGFnRGlzcGxheTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHlOYW1lID0gZmxhZ0Rpc3BsYXkucGF0aFRvRmxhZ3NGb3JtR3JvdXAgJiYgZmxhZ0Rpc3BsYXkucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZFxuICAgICAgPyBgJHt0aGlzLmNhc2VUaXRsZX0gLSBgXG4gICAgICA6IGZsYWdEaXNwbGF5LmZsYWdEZXRhaWxEaXNwbGF5LnBhcnR5TmFtZVxuICAgICAgICA/IGAke2ZsYWdEaXNwbGF5LmZsYWdEZXRhaWxEaXNwbGF5LnBhcnR5TmFtZX0gLSBgXG4gICAgICAgIDogICcnO1xuXG4gICAgY29uc3QgZmxhZ0RldGFpbCA9IGZsYWdEaXNwbGF5LmZsYWdEZXRhaWxEaXNwbGF5LmZsYWdEZXRhaWw7XG5cbiAgICBjb25zdCBmbGFnUGF0aE9yTmFtZSA9IGZsYWdEZXRhaWwgJiYgZmxhZ0RldGFpbC5wYXRoICYmIGZsYWdEZXRhaWwucGF0aC5sZW5ndGggPiAxXG4gICAgICA/IGZsYWdEZXRhaWwucGF0aFsxXS52YWx1ZVxuICAgICAgOiBmbGFnRGV0YWlsLnN1YlR5cGVLZXkgJiYgZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWVcbiAgICAgICAgPyBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZVxuICAgICAgICA6IGZsYWdEZXRhaWwubmFtZTtcblxuICAgIGNvbnN0IGZsYWdPdGhlckRlc2NyaXB0aW9uT3JOYW1lID0gZmxhZ0RldGFpbCAmJiBmbGFnRGV0YWlsLm5hbWVcbiAgICAgID8gZmxhZ0RldGFpbC5uYW1lID09PSAnT3RoZXInXG4gICAgICAgID8gZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uXG4gICAgICAgIDogZmxhZ0RldGFpbC5zdWJUeXBlS2V5ICYmIGZsYWdEZXRhaWwuc3ViVHlwZVZhbHVlXG4gICAgICAgICAgPyBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZVxuICAgICAgICAgIDogZmxhZ0RldGFpbC5uYW1lXG4gICAgICA6ICcnO1xuXG4gICAgY29uc3QgY29tbWVudCA9IGZsYWdEZXRhaWwuZmxhZ0NvbW1lbnRcbiAgICAgID8gYCAoJHtmbGFnRGV0YWlsLmZsYWdDb21tZW50fSlgXG4gICAgICA6ICcnO1xuXG4gICAgcmV0dXJuIGZsYWdQYXRoT3JOYW1lID09PSBmbGFnT3RoZXJEZXNjcmlwdGlvbk9yTmFtZVxuICAgICAgPyBgJHtwYXJ0eU5hbWV9JHtmbGFnT3RoZXJEZXNjcmlwdGlvbk9yTmFtZX0ke2NvbW1lbnR9YFxuICAgICAgOiBgJHtwYXJ0eU5hbWV9JHtmbGFnUGF0aE9yTmFtZX0sICR7ZmxhZ090aGVyRGVzY3JpcHRpb25Pck5hbWV9JHtjb21tZW50fWA7XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIC8vIFZhbGlkYXRlIGZsYWcgc2VsZWN0aW9uXG4gICAgdGhpcy52YWxpZGF0ZVNlbGVjdGlvbigpO1xuICAgIC8vIFJldHVybiBjYXNlIGZsYWcgZmllbGQgc3RhdGUsIGVycm9yIG1lc3NhZ2VzLCBhbmQgZmxhZyBzZWxlY3Rpb24gdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19NQU5BR0VfQ0FTRV9GTEFHUyxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyxcbiAgICAgIHNlbGVjdGVkRmxhZzogdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRDb250cm9sTmFtZSkudmFsdWVcbiAgICAgICAgPyB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKS52YWx1ZSBhcyBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoXG4gICAgICAgIDogbnVsbFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLm1hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRDb250cm9sTmFtZSkudmFsdWUpIHtcbiAgICAgIHRoaXMubWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZSA9IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UuRkxBR19OT1RfU0VMRUNURUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UuRkxBR19OT1RfU0VMRUNURUQsXG4gICAgICAgIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCdcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Ob0ZsYWdzRXJyb3IoKTogdm9pZCB7XG4gICAgLy8gU2V0IGVycm9yIGZsYWcgb24gY29tcG9uZW50IHRvIHJlbW92ZSB0aGUgXCJOZXh0XCIgYnV0dG9uICh1c2VyIGNhbm5vdCBwcm9jZWVkIHdpdGggZmxhZyBjcmVhdGlvbilcbiAgICB0aGlzLm5vRmxhZ3NFcnJvciA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe3RpdGxlOiAnJywgZGVzY3JpcHRpb246IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UuTk9fRkxBR1MsIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCd9KTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiBlcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDB9XCI+XG4gICAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwibWFuYWdlLWNhc2UtZmxhZy1oZWFkaW5nXCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2xlZ2VuZCBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1sXCI+XG4gICAgICAgIDxoMSBpZD1cIm1hbmFnZS1jYXNlLWZsYWctaGVhZGluZ1wiIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2hlYWRpbmdcIj5cbiAgICAgICAgICB7e21hbmFnZUNhc2VGbGFnVGl0bGV9fVxuICAgICAgICA8L2gxPlxuICAgICAgPC9sZWdlbmQ+XG4gICAgICA8ZGl2IGlkPVwibWFuYWdlLWNhc2UtZmxhZy1ub3Qtc2VsZWN0ZWQtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICpuZ0lmPVwibWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3ttYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1yYWRpb3NcIiBpZD1cImNvbmRpdGlvbmFsLXJhZGlvcy1saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgZmxhZ0Rpc3BsYXkgb2YgZmxhZ3NEaXNwbGF5RGF0YTsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cImZsYWctc2VsZWN0aW9uLXt7aX19XCIgW25hbWVdPVwic2VsZWN0ZWRDb250cm9sTmFtZVwiXG4gICAgICAgICAgICB0eXBlPVwicmFkaW9cIiBbdmFsdWVdPVwiZmxhZ0Rpc3BsYXlcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInNlbGVjdGVkQ29udHJvbE5hbWVcIi8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIGZvcj1cImZsYWctc2VsZWN0aW9uLXt7aX19XCI+e3twcm9jZXNzTGFiZWwoZmxhZ0Rpc3BsYXkpfX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCIgKm5nSWY9XCIhbm9GbGFnc0Vycm9yXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25OZXh0KClcIj5OZXh0PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
3
|
+
import { map, tap } from 'rxjs/operators';
|
|
4
|
+
import { CaseFlagFieldState, CaseFlagWizardStepTitle, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep } from '../../enums';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@angular/material/input";
|
|
9
|
+
import * as i4 from "@angular/material/autocomplete";
|
|
10
|
+
import * as i5 from "@angular/material/core";
|
|
11
|
+
function SearchLanguageInterpreterComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
13
|
+
i0.ɵɵelementStart(1, "span", 21);
|
|
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.languageNotSelectedErrorMessage, " ");
|
|
22
|
+
} }
|
|
23
|
+
function SearchLanguageInterpreterComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
i0.ɵɵelementStart(0, "div", 22);
|
|
25
|
+
i0.ɵɵelementStart(1, "span", 21);
|
|
26
|
+
i0.ɵɵtext(2, "Error:");
|
|
27
|
+
i0.ɵɵelementEnd();
|
|
28
|
+
i0.ɵɵtext(3);
|
|
29
|
+
i0.ɵɵelementEnd();
|
|
30
|
+
} if (rf & 2) {
|
|
31
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
32
|
+
i0.ɵɵadvance(3);
|
|
33
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.languageEnteredInBothFieldsErrorMessage, " ");
|
|
34
|
+
} }
|
|
35
|
+
function SearchLanguageInterpreterComponent_mat_option_13_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
i0.ɵɵelementStart(0, "mat-option", 23);
|
|
37
|
+
i0.ɵɵtext(1);
|
|
38
|
+
i0.ɵɵelementEnd();
|
|
39
|
+
} if (rf & 2) {
|
|
40
|
+
const language_r6 = ctx.$implicit;
|
|
41
|
+
i0.ɵɵproperty("value", language_r6);
|
|
42
|
+
i0.ɵɵadvance(1);
|
|
43
|
+
i0.ɵɵtextInterpolate1(" ", language_r6.value, " ");
|
|
44
|
+
} }
|
|
45
|
+
function SearchLanguageInterpreterComponent_mat_option_15_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
i0.ɵɵelementStart(0, "mat-option", 24);
|
|
47
|
+
i0.ɵɵtext(1, "No results found");
|
|
48
|
+
i0.ɵɵelementEnd();
|
|
49
|
+
} }
|
|
50
|
+
function SearchLanguageInterpreterComponent_div_21_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
51
|
+
i0.ɵɵelementStart(0, "div", 30);
|
|
52
|
+
i0.ɵɵelementStart(1, "span", 21);
|
|
53
|
+
i0.ɵɵtext(2, "Error:");
|
|
54
|
+
i0.ɵɵelementEnd();
|
|
55
|
+
i0.ɵɵtext(3);
|
|
56
|
+
i0.ɵɵelementEnd();
|
|
57
|
+
} if (rf & 2) {
|
|
58
|
+
const ctx_r7 = i0.ɵɵnextContext(2);
|
|
59
|
+
i0.ɵɵadvance(3);
|
|
60
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r7.languageNotEnteredErrorMessage, " ");
|
|
61
|
+
} }
|
|
62
|
+
function SearchLanguageInterpreterComponent_div_21_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
i0.ɵɵelementStart(0, "div", 31);
|
|
64
|
+
i0.ɵɵelementStart(1, "span", 21);
|
|
65
|
+
i0.ɵɵtext(2, "Error:");
|
|
66
|
+
i0.ɵɵelementEnd();
|
|
67
|
+
i0.ɵɵtext(3);
|
|
68
|
+
i0.ɵɵelementEnd();
|
|
69
|
+
} if (rf & 2) {
|
|
70
|
+
const ctx_r8 = i0.ɵɵnextContext(2);
|
|
71
|
+
i0.ɵɵadvance(3);
|
|
72
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r8.languageCharLimitErrorMessage, " ");
|
|
73
|
+
} }
|
|
74
|
+
const _c0 = function (a0) { return { "form-group-error": a0 }; };
|
|
75
|
+
function SearchLanguageInterpreterComponent_div_21_Template(rf, ctx) { if (rf & 1) {
|
|
76
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
77
|
+
i0.ɵɵelementStart(1, "div", 1);
|
|
78
|
+
i0.ɵɵelementStart(2, "label", 26);
|
|
79
|
+
i0.ɵɵtext(3);
|
|
80
|
+
i0.ɵɵelementEnd();
|
|
81
|
+
i0.ɵɵtemplate(4, SearchLanguageInterpreterComponent_div_21_div_4_Template, 4, 1, "div", 27);
|
|
82
|
+
i0.ɵɵtemplate(5, SearchLanguageInterpreterComponent_div_21_div_5_Template, 4, 1, "div", 28);
|
|
83
|
+
i0.ɵɵelement(6, "input", 29);
|
|
84
|
+
i0.ɵɵelementEnd();
|
|
85
|
+
i0.ɵɵelementEnd();
|
|
86
|
+
} if (rf & 2) {
|
|
87
|
+
const ctx_r5 = i0.ɵɵnextContext();
|
|
88
|
+
i0.ɵɵadvance(1);
|
|
89
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c0, ctx_r5.languageNotEnteredErrorMessage || ctx_r5.languageCharLimitErrorMessage));
|
|
90
|
+
i0.ɵɵadvance(2);
|
|
91
|
+
i0.ɵɵtextInterpolate(ctx_r5.searchLanguageInterpreterStep.INPUT_LABEL);
|
|
92
|
+
i0.ɵɵadvance(1);
|
|
93
|
+
i0.ɵɵproperty("ngIf", ctx_r5.languageNotEnteredErrorMessage);
|
|
94
|
+
i0.ɵɵadvance(1);
|
|
95
|
+
i0.ɵɵproperty("ngIf", ctx_r5.languageCharLimitErrorMessage);
|
|
96
|
+
i0.ɵɵadvance(1);
|
|
97
|
+
i0.ɵɵproperty("name", ctx_r5.manualLanguageEntryControlName)("formControlName", ctx_r5.manualLanguageEntryControlName);
|
|
98
|
+
} }
|
|
99
|
+
export class SearchLanguageInterpreterComponent {
|
|
100
|
+
constructor() {
|
|
101
|
+
this.caseFlagStateEmitter = new EventEmitter();
|
|
102
|
+
this.minSearchCharacters = 3;
|
|
103
|
+
this.languageSearchTermControlName = 'languageSearchTerm';
|
|
104
|
+
this.manualLanguageEntryControlName = 'manualLanguageEntry';
|
|
105
|
+
this.searchTerm = '';
|
|
106
|
+
this.isCheckboxEnabled = false;
|
|
107
|
+
this.errorMessages = [];
|
|
108
|
+
this.languageNotSelectedErrorMessage = '';
|
|
109
|
+
this.languageNotEnteredErrorMessage = '';
|
|
110
|
+
this.languageCharLimitErrorMessage = '';
|
|
111
|
+
this.languageEnteredInBothFieldsErrorMessage = '';
|
|
112
|
+
this.noResults = false;
|
|
113
|
+
this.languageMaxCharLimit = 80;
|
|
114
|
+
this.signLanguageFlagCode = 'RA0042';
|
|
115
|
+
}
|
|
116
|
+
get searchLanguageInterpreterStep() {
|
|
117
|
+
return SearchLanguageInterpreterStep;
|
|
118
|
+
}
|
|
119
|
+
ngOnInit() {
|
|
120
|
+
this.searchLanguageInterpreterTitle = this.flagCode === this.signLanguageFlagCode
|
|
121
|
+
? CaseFlagWizardStepTitle.SEARCH_SIGN_LANGUAGE_INTERPRETER
|
|
122
|
+
: CaseFlagWizardStepTitle.SEARCH_LANGUAGE_INTERPRETER;
|
|
123
|
+
this.searchLanguageInterpreterHint = this.flagCode === this.signLanguageFlagCode
|
|
124
|
+
? SearchLanguageInterpreterStep.SIGN_HINT_TEXT
|
|
125
|
+
: SearchLanguageInterpreterStep.HINT_TEXT;
|
|
126
|
+
this.formGroup.addControl(this.languageSearchTermControlName, new FormControl());
|
|
127
|
+
this.formGroup.addControl(this.manualLanguageEntryControlName, new FormControl());
|
|
128
|
+
this.filteredLanguages$ = this.formGroup.get(this.languageSearchTermControlName).valueChanges.pipe(
|
|
129
|
+
// Need to check type of input because it changes to object (i.e. Language) when a value is selected from the
|
|
130
|
+
// autocomplete panel, instead of string when a value is being typed in
|
|
131
|
+
map(input => typeof input === 'string' ? input : input.value), map(searchTerm => {
|
|
132
|
+
// Update the current search term
|
|
133
|
+
this.searchTerm = searchTerm;
|
|
134
|
+
return this.filterLanguages(searchTerm);
|
|
135
|
+
}), tap(languages => this.noResults = languages.length === 0));
|
|
136
|
+
}
|
|
137
|
+
onNext() {
|
|
138
|
+
// Validate language interpreter entry
|
|
139
|
+
this.validateLanguageEntry();
|
|
140
|
+
// Return case flag field state and error messages to the parent
|
|
141
|
+
this.caseFlagStateEmitter.emit({
|
|
142
|
+
currentCaseFlagFieldState: CaseFlagFieldState.FLAG_LANGUAGE_INTERPRETER,
|
|
143
|
+
errorMessages: this.errorMessages
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
onEnterLanguageManually(event) {
|
|
147
|
+
this.isCheckboxEnabled = event.target.checked;
|
|
148
|
+
// If the checkbox is disabled, i.e. unchecked, then clear the manual language entry FormControl of any value to
|
|
149
|
+
// prevent it being retained even when the field itself is hidden
|
|
150
|
+
if (!this.isCheckboxEnabled) {
|
|
151
|
+
this.formGroup.get(this.manualLanguageEntryControlName).setValue(null);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
displayLanguage(language) {
|
|
155
|
+
return language ? language.value : undefined;
|
|
156
|
+
}
|
|
157
|
+
validateLanguageEntry() {
|
|
158
|
+
this.languageNotSelectedErrorMessage = null;
|
|
159
|
+
this.languageNotEnteredErrorMessage = null;
|
|
160
|
+
this.languageCharLimitErrorMessage = null;
|
|
161
|
+
this.languageEnteredInBothFieldsErrorMessage = null;
|
|
162
|
+
this.errorMessages = [];
|
|
163
|
+
// Checkbox not enabled means the user has opted to search for and select the language
|
|
164
|
+
if (!this.isCheckboxEnabled && !this.formGroup.get(this.languageSearchTermControlName).value) {
|
|
165
|
+
this.languageNotSelectedErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED;
|
|
166
|
+
this.errorMessages.push({
|
|
167
|
+
title: '',
|
|
168
|
+
description: SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED,
|
|
169
|
+
fieldId: this.languageSearchTermControlName
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
// Checkbox enabled means the user has opted to enter the language manually
|
|
173
|
+
if (this.isCheckboxEnabled) {
|
|
174
|
+
if (!this.formGroup.get(this.manualLanguageEntryControlName).value) {
|
|
175
|
+
this.languageNotEnteredErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED;
|
|
176
|
+
this.errorMessages.push({
|
|
177
|
+
title: '',
|
|
178
|
+
description: SearchLanguageInterpreterErrorMessage.LANGUAGE_NOT_ENTERED,
|
|
179
|
+
fieldId: this.manualLanguageEntryControlName
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
else if (this.formGroup.get(this.manualLanguageEntryControlName).value.length > this.languageMaxCharLimit) {
|
|
183
|
+
this.languageCharLimitErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_CHAR_LIMIT_EXCEEDED;
|
|
184
|
+
this.errorMessages.push({
|
|
185
|
+
title: '',
|
|
186
|
+
description: SearchLanguageInterpreterErrorMessage.LANGUAGE_CHAR_LIMIT_EXCEEDED,
|
|
187
|
+
fieldId: this.manualLanguageEntryControlName
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
else if (this.formGroup.get(this.languageSearchTermControlName).value) {
|
|
191
|
+
// Language entry is permitted in only one field at a time
|
|
192
|
+
this.languageEnteredInBothFieldsErrorMessage = SearchLanguageInterpreterErrorMessage.LANGUAGE_ENTERED_IN_BOTH_FIELDS;
|
|
193
|
+
this.errorMessages.push({
|
|
194
|
+
title: '',
|
|
195
|
+
description: SearchLanguageInterpreterErrorMessage.LANGUAGE_ENTERED_IN_BOTH_FIELDS,
|
|
196
|
+
fieldId: this.languageSearchTermControlName
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
filterLanguages(searchTerm) {
|
|
202
|
+
if (searchTerm.length < this.minSearchCharacters) {
|
|
203
|
+
return [];
|
|
204
|
+
}
|
|
205
|
+
return this.languages
|
|
206
|
+
? this.languages.filter(language => language.value.toLowerCase().includes(searchTerm.toLowerCase(), 0))
|
|
207
|
+
: [];
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
SearchLanguageInterpreterComponent.ɵfac = function SearchLanguageInterpreterComponent_Factory(t) { return new (t || SearchLanguageInterpreterComponent)(); };
|
|
211
|
+
SearchLanguageInterpreterComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SearchLanguageInterpreterComponent, selectors: [["ccd-search-language-interpreter"]], inputs: { formGroup: "formGroup", languages: "languages", flagCode: "flagCode" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 25, vars: 18, consts: [[1, "form-group", 3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], [1, "govuk-label-wrapper"], [1, "govuk-label", "govuk-label--l", 3, "for"], ["id", "language-search-box-hint", 1, "govuk-hint"], [1, "auto-complete-container"], ["id", "language-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "language-entered-in-both-fields-error-message", "class", "govuk-error-message", 4, "ngIf"], ["aria-label", "Language search box", "matInput", "", "type", "text", 1, "govuk-input", "search-language__input", 3, "formControlName", "matAutocomplete"], ["autoActiveFirstOption", "", 1, "mat-autocomplete-panel-extend", 3, "displayWith"], ["autoSearchLanguage", "matAutocomplete"], [3, "value", 4, "ngFor", "ngForOf"], ["disabled", "", 4, "ngIf"], ["data-module", "govuk-checkboxes", 1, "govuk-checkboxes", "govuk-checkboxes--small", "govuk-checkboxes--conditional"], [1, "govuk-radios__item"], ["id", "enter-language-manually", "name", "enter-language-manually", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change"], ["for", "enter-language-manually", 1, "govuk-label", "govuk-checkboxes__label"], ["class", "govuk-radios__conditional", 4, "ngIf"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"], ["id", "language-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "language-entered-in-both-fields-error-message", 1, "govuk-error-message"], [3, "value"], ["disabled", ""], [1, "govuk-radios__conditional"], ["for", "manual-language-entry", 1, "govuk-label"], ["id", "language-not-entered-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "language-char-limit-error-message", "class", "govuk-error-message", 4, "ngIf"], ["id", "manual-language-entry", "type", "text", 1, "govuk-input", "govuk-input--width-20", 3, "name", "formControlName"], ["id", "language-not-entered-error-message", 1, "govuk-error-message"], ["id", "language-char-limit-error-message", 1, "govuk-error-message"]], template: function SearchLanguageInterpreterComponent_Template(rf, ctx) { if (rf & 1) {
|
|
212
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
213
|
+
i0.ɵɵelementStart(1, "div", 1);
|
|
214
|
+
i0.ɵɵelementStart(2, "h1", 2);
|
|
215
|
+
i0.ɵɵelementStart(3, "label", 3);
|
|
216
|
+
i0.ɵɵtext(4);
|
|
217
|
+
i0.ɵɵelementEnd();
|
|
218
|
+
i0.ɵɵelementEnd();
|
|
219
|
+
i0.ɵɵelementStart(5, "div", 4);
|
|
220
|
+
i0.ɵɵtext(6);
|
|
221
|
+
i0.ɵɵelementEnd();
|
|
222
|
+
i0.ɵɵelementStart(7, "div", 5);
|
|
223
|
+
i0.ɵɵtemplate(8, SearchLanguageInterpreterComponent_div_8_Template, 4, 1, "div", 6);
|
|
224
|
+
i0.ɵɵtemplate(9, SearchLanguageInterpreterComponent_div_9_Template, 4, 1, "div", 7);
|
|
225
|
+
i0.ɵɵelement(10, "input", 8);
|
|
226
|
+
i0.ɵɵelementStart(11, "mat-autocomplete", 9, 10);
|
|
227
|
+
i0.ɵɵtemplate(13, SearchLanguageInterpreterComponent_mat_option_13_Template, 2, 2, "mat-option", 11);
|
|
228
|
+
i0.ɵɵpipe(14, "async");
|
|
229
|
+
i0.ɵɵtemplate(15, SearchLanguageInterpreterComponent_mat_option_15_Template, 2, 0, "mat-option", 12);
|
|
230
|
+
i0.ɵɵelementEnd();
|
|
231
|
+
i0.ɵɵelementEnd();
|
|
232
|
+
i0.ɵɵelementStart(16, "div", 13);
|
|
233
|
+
i0.ɵɵelementStart(17, "div", 14);
|
|
234
|
+
i0.ɵɵelementStart(18, "input", 15);
|
|
235
|
+
i0.ɵɵlistener("change", function SearchLanguageInterpreterComponent_Template_input_change_18_listener($event) { return ctx.onEnterLanguageManually($event); });
|
|
236
|
+
i0.ɵɵelementEnd();
|
|
237
|
+
i0.ɵɵelementStart(19, "label", 16);
|
|
238
|
+
i0.ɵɵtext(20);
|
|
239
|
+
i0.ɵɵelementEnd();
|
|
240
|
+
i0.ɵɵelementEnd();
|
|
241
|
+
i0.ɵɵtemplate(21, SearchLanguageInterpreterComponent_div_21_Template, 7, 8, "div", 17);
|
|
242
|
+
i0.ɵɵelementEnd();
|
|
243
|
+
i0.ɵɵelementEnd();
|
|
244
|
+
i0.ɵɵelementStart(22, "div", 18);
|
|
245
|
+
i0.ɵɵelementStart(23, "button", 19);
|
|
246
|
+
i0.ɵɵlistener("click", function SearchLanguageInterpreterComponent_Template_button_click_23_listener() { return ctx.onNext(); });
|
|
247
|
+
i0.ɵɵtext(24, "Next");
|
|
248
|
+
i0.ɵɵelementEnd();
|
|
249
|
+
i0.ɵɵelementEnd();
|
|
250
|
+
i0.ɵɵelementEnd();
|
|
251
|
+
} if (rf & 2) {
|
|
252
|
+
const _r2 = i0.ɵɵreference(12);
|
|
253
|
+
i0.ɵɵproperty("formGroup", ctx.formGroup);
|
|
254
|
+
i0.ɵɵadvance(1);
|
|
255
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c0, ctx.languageNotSelectedErrorMessage || ctx.languageEnteredInBothFieldsErrorMessage));
|
|
256
|
+
i0.ɵɵadvance(2);
|
|
257
|
+
i0.ɵɵproperty("for", ctx.languageSearchTermControlName);
|
|
258
|
+
i0.ɵɵadvance(1);
|
|
259
|
+
i0.ɵɵtextInterpolate1(" ", ctx.searchLanguageInterpreterTitle, " ");
|
|
260
|
+
i0.ɵɵadvance(2);
|
|
261
|
+
i0.ɵɵtextInterpolate1(" ", ctx.searchLanguageInterpreterHint, " ");
|
|
262
|
+
i0.ɵɵadvance(2);
|
|
263
|
+
i0.ɵɵproperty("ngIf", ctx.languageNotSelectedErrorMessage);
|
|
264
|
+
i0.ɵɵadvance(1);
|
|
265
|
+
i0.ɵɵproperty("ngIf", ctx.languageEnteredInBothFieldsErrorMessage);
|
|
266
|
+
i0.ɵɵadvance(1);
|
|
267
|
+
i0.ɵɵproperty("formControlName", ctx.languageSearchTermControlName)("matAutocomplete", _r2);
|
|
268
|
+
i0.ɵɵadvance(1);
|
|
269
|
+
i0.ɵɵproperty("displayWith", ctx.displayLanguage);
|
|
270
|
+
i0.ɵɵadvance(2);
|
|
271
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(14, 14, ctx.filteredLanguages$));
|
|
272
|
+
i0.ɵɵadvance(2);
|
|
273
|
+
i0.ɵɵproperty("ngIf", ctx.noResults && ctx.searchTerm && ctx.searchTerm.length >= ctx.minSearchCharacters);
|
|
274
|
+
i0.ɵɵadvance(5);
|
|
275
|
+
i0.ɵɵtextInterpolate1(" ", ctx.searchLanguageInterpreterStep.CHECKBOX_LABEL, " ");
|
|
276
|
+
i0.ɵɵadvance(1);
|
|
277
|
+
i0.ɵɵproperty("ngIf", ctx.isCheckboxEnabled);
|
|
278
|
+
} }, directives: [i1.NgControlStatusGroup, i1.FormGroupDirective, i2.NgClass, i2.NgIf, i3.MatInput, i1.DefaultValueAccessor, i4.MatAutocompleteTrigger, i1.NgControlStatus, i1.FormControlName, i4.MatAutocomplete, i2.NgForOf, i5.MatOption], pipes: [i2.AsyncPipe], styles: [".autocomplete__input--show-all-values[_ngcontent-%COMP%]{padding:5px 34px 5px 5px;cursor:pointer}.autocomplete__dropdown-arrow-down[_ngcontent-%COMP%]{z-index:-1;display:inline-block;position:absolute;right:8px;width:24px;height:24px;top:10px}.autocomplete__menu[_ngcontent-%COMP%]{background-color:#fff;border:2px solid #0b0c0c;border-top:0;color:#0b0c0c;margin:0;max-height:342px;overflow-x:hidden;padding:0;width:100%;width:calc(100% - 4px)}.autocomplete__menu--visible[_ngcontent-%COMP%]{display:block}.autocomplete__menu--hidden[_ngcontent-%COMP%]{display:none}.autocomplete__menu--overlay[_ngcontent-%COMP%]{box-shadow:0 2px 6px rgba(0,0,0,.256863);left:0;position:absolute;top:100%;z-index:100}.autocomplete__menu--inline[_ngcontent-%COMP%]{position:relative}.autocomplete__option[_ngcontent-%COMP%]{border-left-width:0;border-bottom:1px solid #b1b4b6;border-right-width:0;border-top-width:1px;cursor:pointer;display:block;position:relative}.autocomplete__option[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{pointer-events:none}.autocomplete__option[_ngcontent-%COMP%]:first-of-type{border-top-width:0}.autocomplete__option[_ngcontent-%COMP%]:last-of-type{border-bottom-width:0}.autocomplete__option--odd[_ngcontent-%COMP%]{background-color:#fafafa}.autocomplete__option--focused[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]:hover{background-color:#1d70b8;border-color:#1d70b8;color:#fff;outline:0}.autocomplete__option--no-results[_ngcontent-%COMP%]{background-color:#fafafa;color:#646b6f;cursor:not-allowed}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.25}.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{padding:5px}@media (min-width:641px){.autocomplete__hint[_ngcontent-%COMP%], .autocomplete__input[_ngcontent-%COMP%], .autocomplete__option[_ngcontent-%COMP%]{font-size:13px;line-height:1.31579}}.div-action[_ngcontent-%COMP%]{display:inline-block}.add-location[_ngcontent-%COMP%]{display:inline}.remove-location-button[_ngcontent-%COMP%]{margin:5px}.hide-autocomplete[_ngcontent-%COMP%]{display:none}.auto-complete-container[_ngcontent-%COMP%]{min-width:550px;display:inline-block;margin-right:4px}.autocomplete__input[_ngcontent-%COMP%]{line-height:24px;font-size:19px}.hidden[_ngcontent-%COMP%]{display:none}.search-language__input[_ngcontent-%COMP%]{position:relative;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='%23505a5f'%3E%3C/path%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center left -2px;background-size:40px 40px;padding-left:35px}"] });
|
|
279
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchLanguageInterpreterComponent, [{
|
|
280
|
+
type: Component,
|
|
281
|
+
args: [{
|
|
282
|
+
selector: 'ccd-search-language-interpreter',
|
|
283
|
+
templateUrl: './search-language-interpreter.component.html',
|
|
284
|
+
styleUrls: ['./search-language-interpreter.component.scss']
|
|
285
|
+
}]
|
|
286
|
+
}], null, { formGroup: [{
|
|
287
|
+
type: Input
|
|
288
|
+
}], languages: [{
|
|
289
|
+
type: Input
|
|
290
|
+
}], flagCode: [{
|
|
291
|
+
type: Input
|
|
292
|
+
}], caseFlagStateEmitter: [{
|
|
293
|
+
type: Output
|
|
294
|
+
}] }); })();
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9jb21wb25lbnRzL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvc2VhcmNoLWxhbmd1YWdlLWludGVycHJldGVyL3NlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN2QixxQ0FBcUMsRUFDckMsNkJBQTZCLEVBQzlCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7OztJQ0RmLCtCQUMwQztJQUN4QyxnQ0FBb0M7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBTTs7O0lBRDhDLGVBQ3BEO0lBRG9ELHVFQUNwRDs7O0lBQ0EsK0JBQ2tEO0lBQ2hELGdDQUFvQztJQUFBLHNCQUFNO0lBQUEsaUJBQU87SUFB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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUsIExhbmd1YWdlIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gIENhc2VGbGFnRmllbGRTdGF0ZSxcbiAgQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUsXG4gIFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UsXG4gIFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwXG59IGZyb20gJy4uLy4uL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlYXJjaC1sYW5ndWFnZS1pbnRlcnByZXRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtbGFuZ3VhZ2UtaW50ZXJwcmV0ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxhbmd1YWdlczogTGFuZ3VhZ2VbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxhZ0NvZGU6IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG1pblNlYXJjaENoYXJhY3RlcnMgPSAzO1xuICBwdWJsaWMgcmVhZG9ubHkgbGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWUgPSAnbGFuZ3VhZ2VTZWFyY2hUZXJtJztcbiAgcHVibGljIHJlYWRvbmx5IG1hbnVhbExhbmd1YWdlRW50cnlDb250cm9sTmFtZSA9ICdtYW51YWxMYW5ndWFnZUVudHJ5JztcbiAgcHVibGljIGZpbHRlcmVkTGFuZ3VhZ2VzJDogT2JzZXJ2YWJsZTxMYW5ndWFnZVtdPjtcbiAgcHVibGljIHNlYXJjaFRlcm0gPSAnJztcbiAgcHVibGljIGlzQ2hlY2tib3hFbmFibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBzZWFyY2hMYW5ndWFnZUludGVycHJldGVyVGl0bGU6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlO1xuICBwdWJsaWMgc2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckhpbnQ6IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIGxhbmd1YWdlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIGxhbmd1YWdlTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgbGFuZ3VhZ2VDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSAnJztcbiAgcHVibGljIGxhbmd1YWdlRW50ZXJlZEluQm90aEZpZWxkc0Vycm9yTWVzc2FnZSA9ICcnO1xuICBwdWJsaWMgbm9SZXN1bHRzID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VNYXhDaGFyTGltaXQgPSA4MDtcbiAgcHJpdmF0ZSByZWFkb25seSBzaWduTGFuZ3VhZ2VGbGFnQ29kZSA9ICdSQTAwNDInO1xuXG4gIHB1YmxpYyBnZXQgc2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlclN0ZXAoKTogdHlwZW9mIFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwIHtcbiAgICByZXR1cm4gU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlclN0ZXA7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hMYW5ndWFnZUludGVycHJldGVyVGl0bGUgPSB0aGlzLmZsYWdDb2RlID09PSB0aGlzLnNpZ25MYW5ndWFnZUZsYWdDb2RlXG4gICAgICA/IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLlNFQVJDSF9TSUdOX0xBTkdVQUdFX0lOVEVSUFJFVEVSXG4gICAgICA6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLlNFQVJDSF9MQU5HVUFHRV9JTlRFUlBSRVRFUjtcbiAgICB0aGlzLnNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJIaW50ID0gdGhpcy5mbGFnQ29kZSA9PT0gdGhpcy5zaWduTGFuZ3VhZ2VGbGFnQ29kZVxuICAgICAgPyBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcC5TSUdOX0hJTlRfVEVYVFxuICAgICAgOiBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcC5ISU5UX1RFWFQ7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLmxhbmd1YWdlU2VhcmNoVGVybUNvbnRyb2xOYW1lLCBuZXcgRm9ybUNvbnRyb2woKSk7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLm1hbnVhbExhbmd1YWdlRW50cnlDb250cm9sTmFtZSwgbmV3IEZvcm1Db250cm9sKCkpO1xuICAgIHRoaXMuZmlsdGVyZWRMYW5ndWFnZXMkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMubGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWUpLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgLy8gTmVlZCB0byBjaGVjayB0eXBlIG9mIGlucHV0IGJlY2F1c2UgaXQgY2hhbmdlcyB0byBvYmplY3QgKGkuZS4gTGFuZ3VhZ2UpIHdoZW4gYSB2YWx1ZSBpcyBzZWxlY3RlZCBmcm9tIHRoZVxuICAgICAgLy8gYXV0b2NvbXBsZXRlIHBhbmVsLCBpbnN0ZWFkIG9mIHN0cmluZyB3aGVuIGEgdmFsdWUgaXMgYmVpbmcgdHlwZWQgaW5cbiAgICAgIG1hcChpbnB1dCA9PiB0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnID8gaW5wdXQgOiBpbnB1dC52YWx1ZSksXG4gICAgICBtYXAoc2VhcmNoVGVybSA9PiB7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgY3VycmVudCBzZWFyY2ggdGVybVxuICAgICAgICB0aGlzLnNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtO1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJMYW5ndWFnZXMoc2VhcmNoVGVybSk7XG4gICAgICB9KSxcbiAgICAgIHRhcChsYW5ndWFnZXMgPT4gdGhpcy5ub1Jlc3VsdHMgPSBsYW5ndWFnZXMubGVuZ3RoID09PSAwKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIC8vIFZhbGlkYXRlIGxhbmd1YWdlIGludGVycHJldGVyIGVudHJ5XG4gICAgdGhpcy52YWxpZGF0ZUxhbmd1YWdlRW50cnkoKTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX0xBTkdVQUdFX0lOVEVSUFJFVEVSLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25FbnRlckxhbmd1YWdlTWFudWFsbHkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5pc0NoZWNrYm94RW5hYmxlZCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcblxuICAgIC8vIElmIHRoZSBjaGVja2JveCBpcyBkaXNhYmxlZCwgaS5lLiB1bmNoZWNrZWQsIHRoZW4gY2xlYXIgdGhlIG1hbnVhbCBsYW5ndWFnZSBlbnRyeSBGb3JtQ29udHJvbCBvZiBhbnkgdmFsdWUgdG9cbiAgICAvLyBwcmV2ZW50IGl0IGJlaW5nIHJldGFpbmVkIGV2ZW4gd2hlbiB0aGUgZmllbGQgaXRzZWxmIGlzIGhpZGRlblxuICAgIGlmICghdGhpcy5pc0NoZWNrYm94RW5hYmxlZCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMubWFudWFsTGFuZ3VhZ2VFbnRyeUNvbnRyb2xOYW1lKS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheUxhbmd1YWdlKGxhbmd1YWdlPzogTGFuZ3VhZ2UpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBsYW5ndWFnZSA/IGxhbmd1YWdlLnZhbHVlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUxhbmd1YWdlRW50cnkoKTogdm9pZCB7XG4gICAgdGhpcy5sYW5ndWFnZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmxhbmd1YWdlTm90RW50ZXJlZEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5sYW5ndWFnZUNoYXJMaW1pdEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5sYW5ndWFnZUVudGVyZWRJbkJvdGhGaWVsZHNFcnJvck1lc3NhZ2UgPSBudWxsO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIC8vIENoZWNrYm94IG5vdCBlbmFibGVkIG1lYW5zIHRoZSB1c2VyIGhhcyBvcHRlZCB0byBzZWFyY2ggZm9yIGFuZCBzZWxlY3QgdGhlIGxhbmd1YWdlXG4gICAgaWYgKCF0aGlzLmlzQ2hlY2tib3hFbmFibGVkICYmICF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5sYW5ndWFnZVNlYXJjaFRlcm1Db250cm9sTmFtZSkudmFsdWUpIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2VOb3RTZWxlY3RlZEVycm9yTWVzc2FnZSA9IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfTk9UX0VOVEVSRUQ7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfTk9UX0VOVEVSRUQsXG4gICAgICAgIGZpZWxkSWQ6IHRoaXMubGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWVcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBDaGVja2JveCBlbmFibGVkIG1lYW5zIHRoZSB1c2VyIGhhcyBvcHRlZCB0byBlbnRlciB0aGUgbGFuZ3VhZ2UgbWFudWFsbHlcbiAgICBpZiAodGhpcy5pc0NoZWNrYm94RW5hYmxlZCkge1xuICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5tYW51YWxMYW5ndWFnZUVudHJ5Q29udHJvbE5hbWUpLnZhbHVlKSB7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VOb3RFbnRlcmVkRXJyb3JNZXNzYWdlID0gU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckVycm9yTWVzc2FnZS5MQU5HVUFHRV9OT1RfRU5URVJFRDtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckVycm9yTWVzc2FnZS5MQU5HVUFHRV9OT1RfRU5URVJFRCxcbiAgICAgICAgICBmaWVsZElkOiB0aGlzLm1hbnVhbExhbmd1YWdlRW50cnlDb250cm9sTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMubWFudWFsTGFuZ3VhZ2VFbnRyeUNvbnRyb2xOYW1lKS52YWx1ZS5sZW5ndGggPiB0aGlzLmxhbmd1YWdlTWF4Q2hhckxpbWl0KSB7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VDaGFyTGltaXRFcnJvck1lc3NhZ2UgPSBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyRXJyb3JNZXNzYWdlLkxBTkdVQUdFX0NIQVJfTElNSVRfRVhDRUVERUQ7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfQ0hBUl9MSU1JVF9FWENFRURFRCxcbiAgICAgICAgICBmaWVsZElkOiB0aGlzLm1hbnVhbExhbmd1YWdlRW50cnlDb250cm9sTmFtZVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMubGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWUpLnZhbHVlKSB7XG4gICAgICAgIC8vIExhbmd1YWdlIGVudHJ5IGlzIHBlcm1pdHRlZCBpbiBvbmx5IG9uZSBmaWVsZCBhdCBhIHRpbWVcbiAgICAgICAgdGhpcy5sYW5ndWFnZUVudGVyZWRJbkJvdGhGaWVsZHNFcnJvck1lc3NhZ2UgPSBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyRXJyb3JNZXNzYWdlLkxBTkdVQUdFX0VOVEVSRURfSU5fQk9USF9GSUVMRFM7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJFcnJvck1lc3NhZ2UuTEFOR1VBR0VfRU5URVJFRF9JTl9CT1RIX0ZJRUxEUyxcbiAgICAgICAgICBmaWVsZElkOiB0aGlzLmxhbmd1YWdlU2VhcmNoVGVybUNvbnRyb2xOYW1lXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyTGFuZ3VhZ2VzKHNlYXJjaFRlcm06IHN0cmluZyk6IExhbmd1YWdlW10ge1xuICAgIGlmIChzZWFyY2hUZXJtLmxlbmd0aCA8IHRoaXMubWluU2VhcmNoQ2hhcmFjdGVycykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxhbmd1YWdlc1xuICAgICAgPyB0aGlzLmxhbmd1YWdlcy5maWx0ZXIobGFuZ3VhZ2UgPT4gbGFuZ3VhZ2UudmFsdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCksIDApKVxuICAgICAgOiBbXTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGxhbmd1YWdlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2UgfHwgbGFuZ3VhZ2VFbnRlcmVkSW5Cb3RoRmllbGRzRXJyb3JNZXNzYWdlfVwiPlxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWxhYmVsLXdyYXBwZXJcIj48bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1sYWJlbC0tbFwiIFtmb3JdPVwibGFuZ3VhZ2VTZWFyY2hUZXJtQ29udHJvbE5hbWVcIj5cbiAgICAgICAge3tzZWFyY2hMYW5ndWFnZUludGVycHJldGVyVGl0bGV9fVxuICAgICAgPC9sYWJlbD5cbiAgICA8L2gxPlxuICAgIDxkaXYgaWQ9XCJsYW5ndWFnZS1zZWFyY2gtYm94LWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgIHt7c2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckhpbnR9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhdXRvLWNvbXBsZXRlLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBpZD1cImxhbmd1YWdlLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJsYW5ndWFnZU5vdFNlbGVjdGVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e2xhbmd1YWdlTm90U2VsZWN0ZWRFcnJvck1lc3NhZ2V9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGlkPVwibGFuZ3VhZ2UtZW50ZXJlZC1pbi1ib3RoLWZpZWxkcy1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJsYW5ndWFnZUVudGVyZWRJbkJvdGhGaWVsZHNFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7bGFuZ3VhZ2VFbnRlcmVkSW5Cb3RoRmllbGRzRXJyb3JNZXNzYWdlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGlucHV0IGFyaWEtbGFiZWw9XCJMYW5ndWFnZSBzZWFyY2ggYm94XCIgbWF0SW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJsYW5ndWFnZVNlYXJjaFRlcm1Db250cm9sTmFtZVwiIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1NlYXJjaExhbmd1YWdlXCJcbiAgICAgICAgY2xhc3M9XCJnb3Z1ay1pbnB1dCBzZWFyY2gtbGFuZ3VhZ2VfX2lucHV0XCIgdHlwZT1cInRleHRcIj5cbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlIGNsYXNzPVwibWF0LWF1dG9jb21wbGV0ZS1wYW5lbC1leHRlbmRcIiBhdXRvQWN0aXZlRmlyc3RPcHRpb24gI2F1dG9TZWFyY2hMYW5ndWFnZT1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAgIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5TGFuZ3VhZ2VcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGxhbmd1YWdlIG9mIGZpbHRlcmVkTGFuZ3VhZ2VzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cImxhbmd1YWdlXCI+XG4gICAgICAgICAge3tsYW5ndWFnZS52YWx1ZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJub1Jlc3VsdHMgJiYgc2VhcmNoVGVybSAmJiBzZWFyY2hUZXJtLmxlbmd0aCA+PSBtaW5TZWFyY2hDaGFyYWN0ZXJzXCIgZGlzYWJsZWQ+Tm8gcmVzdWx0cyBmb3VuZDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlcyBnb3Z1ay1jaGVja2JveGVzLS1zbWFsbCBnb3Z1ay1jaGVja2JveGVzLS1jb25kaXRpb25hbFwiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hlY2tib3hlc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiPlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwiZW50ZXItbGFuZ3VhZ2UtbWFudWFsbHlcIiBuYW1lPVwiZW50ZXItbGFuZ3VhZ2UtbWFudWFsbHlcIiB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgIChjaGFuZ2UpPVwib25FbnRlckxhbmd1YWdlTWFudWFsbHkoJGV2ZW50KVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cImVudGVyLWxhbmd1YWdlLW1hbnVhbGx5XCI+XG4gICAgICAgICAge3tzZWFyY2hMYW5ndWFnZUludGVycHJldGVyU3RlcC5DSEVDS0JPWF9MQUJFTH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2NvbmRpdGlvbmFsXCIgKm5nSWY9XCJpc0NoZWNrYm94RW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGxhbmd1YWdlTm90RW50ZXJlZEVycm9yTWVzc2FnZSB8fCBsYW5ndWFnZUNoYXJMaW1pdEVycm9yTWVzc2FnZSB9XCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWxcIiBmb3I9XCJtYW51YWwtbGFuZ3VhZ2UtZW50cnlcIj57e3NlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJTdGVwLklOUFVUX0xBQkVMfX08L2xhYmVsPlxuICAgICAgICAgIDxkaXYgaWQ9XCJsYW5ndWFnZS1ub3QtZW50ZXJlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgICAgICpuZ0lmPVwibGFuZ3VhZ2VOb3RFbnRlcmVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tsYW5ndWFnZU5vdEVudGVyZWRFcnJvck1lc3NhZ2V9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgaWQ9XCJsYW5ndWFnZS1jaGFyLWxpbWl0LWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAgICAgKm5nSWY9XCJsYW5ndWFnZUNoYXJMaW1pdEVycm9yTWVzc2FnZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7bGFuZ3VhZ2VDaGFyTGltaXRFcnJvck1lc3NhZ2V9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWlucHV0IGdvdnVrLWlucHV0LS13aWR0aC0yMFwiIGlkPVwibWFudWFsLWxhbmd1YWdlLWVudHJ5XCIgW25hbWVdPVwibWFudWFsTGFuZ3VhZ2VFbnRyeUNvbnRyb2xOYW1lXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJtYW51YWxMYW5ndWFnZUVudHJ5Q29udHJvbE5hbWVcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tZ3JvdXBcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk5leHQoKVwiPk5leHQ8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|