@hmcts/ccd-case-ui-toolkit 7.2.52-3504 → 7.2.53

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.
@@ -39,19 +39,17 @@ function WriteAddressFieldComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1)
39
39
  i0.ɵɵelementEnd()();
40
40
  } if (rf & 2) {
41
41
  const ctx_r1 = i0.ɵɵnextContext(2);
42
- i0.ɵɵproperty("id", ctx_r1.createElementId("postcodeLookup"))("ngClass", i0.ɵɵpureFunction1(14, _c1, ctx_r1.missingPostcode));
42
+ i0.ɵɵproperty("id", ctx_r1.createElementId("postcodeLookup"))("ngClass", i0.ɵɵpureFunction1(13, _c1, ctx_r1.missingPostcode));
43
43
  i0.ɵɵadvance();
44
44
  i0.ɵɵproperty("for", ctx_r1.createElementId("postcodeInput"));
45
45
  i0.ɵɵadvance(2);
46
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 10, "Enter a UK postcode"));
46
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 9, "Enter a UK postcode"));
47
47
  i0.ɵɵadvance(2);
48
48
  i0.ɵɵproperty("ngIf", ctx_r1.missingPostcode);
49
49
  i0.ɵɵadvance();
50
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c2, ctx_r1.missingPostcode))("id", ctx_r1.createElementId("postcodeInput"))("formControl", ctx_r1.postcode);
51
- i0.ɵɵadvance();
52
- i0.ɵɵproperty("disabled", ctx_r1.loadingAddresses);
53
- i0.ɵɵadvance();
54
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 12, ctx_r1.loadingAddresses ? "Finding addresses..." : "Find address"), " ");
50
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c2, ctx_r1.missingPostcode))("id", ctx_r1.createElementId("postcodeInput"))("formControl", ctx_r1.postcode);
51
+ i0.ɵɵadvance(2);
52
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 11, "Find address"));
55
53
  } }
56
54
  function WriteAddressFieldComponent_div_1_div_5_span_5_Template(rf, ctx) { if (rf & 1) {
57
55
  i0.ɵɵelementStart(0, "span", 14);
@@ -139,7 +137,7 @@ function WriteAddressFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
139
137
  i0.ɵɵtext(2);
140
138
  i0.ɵɵpipe(3, "ccdFieldLabel");
141
139
  i0.ɵɵelementEnd();
142
- i0.ɵɵtemplate(4, WriteAddressFieldComponent_div_1_div_4_Template, 10, 18, "div", 5)(5, WriteAddressFieldComponent_div_1_div_5_Template, 10, 13, "div", 6)(6, WriteAddressFieldComponent_div_1_a_6_Template, 3, 3, "a", 7);
140
+ i0.ɵɵtemplate(4, WriteAddressFieldComponent_div_1_div_4_Template, 10, 17, "div", 5)(5, WriteAddressFieldComponent_div_1_div_5_Template, 10, 13, "div", 6)(6, WriteAddressFieldComponent_div_1_a_6_Template, 3, 3, "a", 7);
143
141
  i0.ɵɵelementEnd();
144
142
  } if (rf & 2) {
145
143
  const ctx_r1 = i0.ɵɵnextContext();
@@ -166,7 +164,6 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
166
164
  errorMessage = WriteAddressFieldComponent.REQUIRED_ERROR_MESSAGE;
167
165
  missingPostcode = false;
168
166
  noAddressSelected = false;
169
- loadingAddresses = false;
170
167
  constructor(addressesService, isCompoundPipe) {
171
168
  super();
172
169
  this.isCompoundPipe = isCompoundPipe;
@@ -195,17 +192,14 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
195
192
  }
196
193
  else {
197
194
  this.missingPostcode = false;
198
- this.loadingAddresses = true;
199
195
  const postcode = this.postcode.value;
200
196
  this.caseField.value = null;
201
197
  this.addressOptions = [];
202
- this.addressesService.getAddressesForPostcode(postcode.replace(' ', '').toUpperCase()).subscribe((result) => {
203
- this.loadingAddresses = false;
204
- result.forEach((address) => {
198
+ this.addressesService.getAddressesForPostcode(postcode.replace(' ', '').toUpperCase()).subscribe(result => {
199
+ result.forEach(address => {
205
200
  this.addressOptions.push(new AddressOption(address, null));
206
201
  });
207
202
  }, (error) => {
208
- this.loadingAddresses = false;
209
203
  console.log(`An error occurred retrieving addresses for postcode ${postcode}. ${error}`);
210
204
  });
211
205
  this.addressList.setValue(undefined);
@@ -283,7 +277,7 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
283
277
  let _t;
284
278
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.writeComplexFieldComponent = _t.first);
285
279
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.focusElementDirectives = _t);
286
- } }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [["writeComplexFieldComponent", ""], [1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], [1, "heading-h2"], ["class", "form-group bottom-30 postcodeLookup", 3, "id", "ngClass", 4, "ngIf"], ["class", "form-group", "id", "selectAddress", 3, "ngClass", 4, "ngIf"], ["class", "manual-link bottom-30", "href", "#", 3, "click", 4, "ngIf"], [1, "form-group", "bottom-30", "postcodeLookup", 3, "id", "ngClass"], [3, "for"], [1, "form-label"], ["class", "error-message", 4, "ngIf"], ["type", "text", "name", "postcode", 1, "form-control", "postcodeinput", "inline-block", 3, "ngClass", "id", "formControl"], ["type", "button", 1, "button", "button-30", 3, "click", "disabled"], [1, "error-message"], ["id", "selectAddress", 1, "form-group", 3, "ngClass"], ["name", "address", "focusElement", "", 1, "form-control", "ccd-dropdown", "addressList", 3, "change", "id", "formControl"], [3, "ngValue", 4, "ngIf"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "#", 1, "manual-link", "bottom-30", 3, "click"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
280
+ } }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [["writeComplexFieldComponent", ""], [1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], [1, "heading-h2"], ["class", "form-group bottom-30 postcodeLookup", 3, "id", "ngClass", 4, "ngIf"], ["class", "form-group", "id", "selectAddress", 3, "ngClass", 4, "ngIf"], ["class", "manual-link bottom-30", "href", "#", 3, "click", 4, "ngIf"], [1, "form-group", "bottom-30", "postcodeLookup", 3, "id", "ngClass"], [3, "for"], [1, "form-label"], ["class", "error-message", 4, "ngIf"], ["type", "text", "name", "postcode", 1, "form-control", "postcodeinput", "inline-block", 3, "ngClass", "id", "formControl"], ["type", "button", 1, "button", "button-30", 3, "click"], [1, "error-message"], ["id", "selectAddress", 1, "form-group", 3, "ngClass"], ["name", "address", "focusElement", "", 1, "form-control", "ccd-dropdown", "addressList", 3, "change", "id", "formControl"], [3, "ngValue", 4, "ngIf"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "#", 1, "manual-link", "bottom-30", 3, "click"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
287
281
  i0.ɵɵelementStart(0, "div", 1);
288
282
  i0.ɵɵtemplate(1, WriteAddressFieldComponent_div_1_Template, 7, 6, "div", 2);
289
283
  i0.ɵɵelement(2, "ccd-write-complex-type-field", 3, 0);
@@ -298,7 +292,7 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
298
292
  }
299
293
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteAddressFieldComponent, [{
300
294
  type: Component,
301
- args: [{ selector: 'ccd-write-address-field', template: "<div class=\"form-group\" [id]=\"id()\">\n <div *ngIf=\"!isComplexWithHiddenFields()\">\n <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n\n <div class=\"form-group bottom-30 postcodeLookup\" [id]=\"createElementId('postcodeLookup')\" [ngClass]=\"{'form-group-error': missingPostcode}\" *ngIf=\"!isExpanded\">\n <label [for]=\"createElementId('postcodeInput')\">\n <span class=\"form-label\">{{'Enter a UK postcode' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"missingPostcode\">{{errorMessage | rpxTranslate}}</span>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\"\n [id]=\"createElementId('postcodeInput')\" name=\"postcode\" class=\"form-control postcodeinput inline-block\" [formControl]=\"postcode\">\n <button type=\"button\" class=\"button button-30\" (click)=\"findAddress()\" [disabled]=\"loadingAddresses\">\n {{(loadingAddresses ? 'Finding addresses...' : 'Find address') | rpxTranslate}}\n </button>\n </div>\n\n <div class=\"form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\" [ngClass]=\"{'form-group-error': noAddressSelected}\">\n <label [for]=\"createElementId('addressList')\">\n <span class=\"form-label\">{{'Select an address' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"noAddressSelected\">{{errorMessage | rpxTranslate}}</span>\n <select class=\"form-control ccd-dropdown addressList\" [id]=\"createElementId('addressList')\" name=\"address\" [formControl]=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngIf=\"addressOptions.length === 0\" [ngValue]=\"undefined\">\n {{'No address found' | rpxTranslate}}\n </option>\n <option *ngIf=\"addressOptions.length > 0\" [ngValue]=\"undefined\">\n {{addressOptions.length}} {{(addressOptions.length === 1 ? 'address found' : 'addresses found') | rpxTranslate}}\n </option>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n\n <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">\n {{\"I can't enter a UK postcode\" | rpxTranslate}}\n </a>\n </div>\n\n <ccd-write-complex-type-field\n [hidden]=\"!shouldShowDetailFields()\"\n [caseField]=\"caseField\"\n [renderLabel]=\"false\"\n [parent]=\"parent\"\n [formGroup]=\"formGroup\"\n [ignoreMandatory]=\"true\"\n [idPrefix]=\"buildIdPrefix('detail')\"\n #writeComplexFieldComponent>\n </ccd-write-complex-type-field>\n</div>\n", styles: [".manual-link{cursor:pointer;display:block;text-decoration:underline}\n"] }]
295
+ args: [{ selector: 'ccd-write-address-field', template: "<div class=\"form-group\" [id]=\"id()\">\n <div *ngIf=\"!isComplexWithHiddenFields()\">\n <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n\n <div class=\"form-group bottom-30 postcodeLookup\" [id]=\"createElementId('postcodeLookup')\" [ngClass]=\"{'form-group-error': missingPostcode}\" *ngIf=\"!isExpanded\">\n <label [for]=\"createElementId('postcodeInput')\">\n <span class=\"form-label\">{{'Enter a UK postcode' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"missingPostcode\">{{errorMessage | rpxTranslate}}</span>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\"\n [id]=\"createElementId('postcodeInput')\" name=\"postcode\" class=\"form-control postcodeinput inline-block\" [formControl]=\"postcode\">\n <button type=\"button\" class=\"button button-30\" (click)=\"findAddress()\">{{'Find address' | rpxTranslate}}</button>\n </div>\n\n <div class=\"form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\" [ngClass]=\"{'form-group-error': noAddressSelected}\">\n <label [for]=\"createElementId('addressList')\">\n <span class=\"form-label\">{{'Select an address' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"noAddressSelected\">{{errorMessage | rpxTranslate}}</span>\n <select class=\"form-control ccd-dropdown addressList\" [id]=\"createElementId('addressList')\" name=\"address\" [formControl]=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngIf=\"addressOptions.length === 0\" [ngValue]=\"undefined\">\n {{'No address found' | rpxTranslate}}\n </option>\n <option *ngIf=\"addressOptions.length > 0\" [ngValue]=\"undefined\">\n {{addressOptions.length}} {{(addressOptions.length === 1 ? 'address found' : 'addresses found') | rpxTranslate}}\n </option>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n\n <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">\n {{\"I can't enter a UK postcode\" | rpxTranslate}}\n </a>\n </div>\n\n <ccd-write-complex-type-field\n [hidden]=\"!shouldShowDetailFields()\"\n [caseField]=\"caseField\"\n [renderLabel]=\"false\"\n [parent]=\"parent\"\n [formGroup]=\"formGroup\"\n [ignoreMandatory]=\"true\"\n [idPrefix]=\"buildIdPrefix('detail')\"\n #writeComplexFieldComponent>\n </ccd-write-complex-type-field>\n</div>\n", styles: [".manual-link{cursor:pointer;display:block;text-decoration:underline}\n"] }]
302
296
  }], () => [{ type: i1.AddressesService }, { type: i2.IsCompoundPipe }], { writeComplexFieldComponent: [{
303
297
  type: ViewChild,
304
298
  args: ['writeComplexFieldComponent', { static: false }]
@@ -307,4 +301,4 @@ export class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
307
301
  args: [FocusElementDirective]
308
302
  }] }); })();
309
303
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteAddressFieldComponent, { className: "WriteAddressFieldComponent", filePath: "lib/shared/components/palette/address/write-address-field.component.ts", lineNumber: 17 }); })();
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtYWRkcmVzcy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9hZGRyZXNzL3dyaXRlLWFkZHJlc3MtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYWRkcmVzcy93cml0ZS1hZGRyZXNzLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztJQ0RqRCxnQ0FBb0Q7SUFBQSxZQUErQjs7SUFBQSxpQkFBTzs7O0lBQXRDLGNB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LENBQUMsZUFBZSxHQUFHLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUN2RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDMUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3ZGLENBQUM7b0hBakpVLDBCQUEwQjs2REFBMUIsMEJBQTBCOzsyQkFJdkIscUJBQXFCOzs7Ozs7WUNwQnJDLDhCQUFvQztZQUNsQywyRUFBMEM7WUFzQzFDLHFEQVMrQjtZQUNqQyxpQkFBTTs7WUFqRGtCLDZCQUFXO1lBQzNCLGNBQWtDO1lBQWxDLHVEQUFrQztZQXVDdEMsY0FBb0M7WUFNcEMsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsc0RBQW9DLDRCQUNiLHNCQUNGLHNCQUNKLDRCQUNNLHlCQUNDLHlDQUNZOzs7aUZEOUIzQiwwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSx5QkFBeUI7OEVBTTVCLDBCQUEwQjtrQkFEaEMsU0FBUzttQkFBQyw0QkFBNEIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFJbkQsc0JBQXNCO2tCQUQ1QixZQUFZO21CQUFDLHFCQUFxQjs7a0ZBSnhCLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBPbkluaXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBZGRyZXNzVmFsaWRhdGlvbkNvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvYWRkcmVzcy12YWxpZGF0aW9uLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBGb2N1c0VsZW1lbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2ZvY3VzLWVsZW1lbnQnO1xuaW1wb3J0IHsgQWRkcmVzc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2FkZHJlc3Nlcy9hZGRyZXNzLm1vZGVsJztcbmltcG9ydCB7IEFkZHJlc3Nlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hZGRyZXNzZXMvYWRkcmVzc2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgV3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQgfSBmcm9tICcuLi9jb21wbGV4L3dyaXRlLWNvbXBsZXgtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IElzQ29tcG91bmRQaXBlIH0gZnJvbSAnLi4vdXRpbHMvaXMtY29tcG91bmQucGlwZSc7XG5pbXBvcnQgeyBBZGRyZXNzT3B0aW9uIH0gZnJvbSAnLi9hZGRyZXNzLW9wdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1hZGRyZXNzLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICd3cml0ZS1hZGRyZXNzLWZpZWxkLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnd3JpdGUtYWRkcmVzcy1maWVsZC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVBZGRyZXNzRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBWaWV3Q2hpbGQoJ3dyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyB3cml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudDogV3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZHJlbihGb2N1c0VsZW1lbnREaXJlY3RpdmUpXG4gIHB1YmxpYyBmb2N1c0VsZW1lbnREaXJlY3RpdmVzOiBRdWVyeUxpc3Q8Rm9jdXNFbGVtZW50RGlyZWN0aXZlPjtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFJFUVVJUkVEX0VSUk9SX01FU1NBR0UgPSAnRW50ZXIgYSBQb3N0Y29kZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSU5WQUxJRF9FUlJPUl9NRVNTQUdFID0gJ0VudGVyIGEgdmFsaWQgUG9zdGNvZGUnO1xuXG4gIHB1YmxpYyBhZGRyZXNzZXNTZXJ2aWNlOiBBZGRyZXNzZXNTZXJ2aWNlO1xuXG4gIHB1YmxpYyBhZGRyZXNzRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIHB1YmxpYyBwb3N0Y29kZTogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBhZGRyZXNzTGlzdDogRm9ybUNvbnRyb2w7XG5cbiAgcHVibGljIGFkZHJlc3NPcHRpb25zOiBBZGRyZXNzT3B0aW9uW107XG5cbiAgcHVibGljIGVycm9yTWVzc2FnZTogc3RyaW5nID0gV3JpdGVBZGRyZXNzRmllbGRDb21wb25lbnQuUkVRVUlSRURfRVJST1JfTUVTU0FHRTtcblxuICBwdWJsaWMgbWlzc2luZ1Bvc3Rjb2RlID0gZmFsc2U7XG4gIHB1YmxpYyBub0FkZHJlc3NTZWxlY3RlZCA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZGluZ0FkZHJlc3NlcyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGFkZHJlc3Nlc1NlcnZpY2U6IEFkZHJlc3Nlc1NlcnZpY2UsIHByaXZhdGUgcmVhZG9ubHkgaXNDb21wb3VuZFBpcGU6IElzQ29tcG91bmRQaXBlKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZHJlc3Nlc1NlcnZpY2UgPSBhZGRyZXNzZXNTZXJ2aWNlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0NvbXBsZXhXaXRoSGlkZGVuRmllbGRzKCkpIHtcbiAgICAgIHRoaXMucG9zdGNvZGUgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0aGlzLmFkZHJlc3NGb3JtR3JvdXAuYWRkQ29udHJvbCgncG9zdGNvZGUnLCB0aGlzLnBvc3Rjb2RlKTtcbiAgICAgIHRoaXMuYWRkcmVzc0xpc3QgPSBuZXcgRm9ybUNvbnRyb2woJycpO1xuICAgICAgdGhpcy5hZGRyZXNzRm9ybUdyb3VwLmFkZENvbnRyb2woJ2FkZHJlc3MnLCB0aGlzLmFkZHJlc3NMaXN0KTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZHJlc3Nlc1NlcnZpY2UuZ2V0TWFuZGF0b3J5RXJyb3IoKS5zdWJzY3JpYmUoKHZhbHVlOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUVycm9yc09uQ29udGludWUodmFsdWUpO1xuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgZmluZEFkZHJlc3MoKSB7XG4gICAgdGhpcy5ub0FkZHJlc3NTZWxlY3RlZCA9IGZhbHNlO1xuICAgIGlmICghdGhpcy5wb3N0Y29kZS52YWx1ZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBXcml0ZUFkZHJlc3NGaWVsZENvbXBvbmVudC5SRVFVSVJFRF9FUlJPUl9NRVNTQUdFO1xuICAgICAgdGhpcy5taXNzaW5nUG9zdGNvZGUgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMucG9zdGNvZGUudmFsdWUudHJpbSgpLm1hdGNoKEFkZHJlc3NWYWxpZGF0aW9uQ29uc3RhbnRzLlJFR0VYX1BPU1RDT0RFKSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBXcml0ZUFkZHJlc3NGaWVsZENvbXBvbmVudC5JTlZBTElEX0VSUk9SX01FU1NBR0U7XG4gICAgICB0aGlzLm1pc3NpbmdQb3N0Y29kZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gZmFsc2U7XG4gICAgICB0aGlzLmxvYWRpbmdBZGRyZXNzZXMgPSB0cnVlO1xuICAgICAgY29uc3QgcG9zdGNvZGUgPSB0aGlzLnBvc3Rjb2RlLnZhbHVlO1xuICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5hZGRyZXNzT3B0aW9ucyA9IFtdO1xuICAgICAgdGhpcy5hZGRyZXNzZXNTZXJ2aWNlLmdldEFkZHJlc3Nlc0ZvclBvc3Rjb2RlKHBvc3Rjb2RlLnJlcGxhY2UoJyAnLCAnJykudG9VcHBlckNhc2UoKSkuc3Vic2NyaWJlKFxuICAgICAgICAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nQWRkcmVzc2VzID0gZmFsc2U7XG4gICAgICAgICAgcmVzdWx0LmZvckVhY2goXG4gICAgICAgICAgICAoYWRkcmVzcykgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmFkZHJlc3NPcHRpb25zLnB1c2gobmV3IEFkZHJlc3NPcHRpb24oYWRkcmVzcywgbnVsbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZ0FkZHJlc3NlcyA9IGZhbHNlO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBBbiBlcnJvciBvY2N1cnJlZCByZXRyaWV2aW5nIGFkZHJlc3NlcyBmb3IgcG9zdGNvZGUgJHtwb3N0Y29kZX0uICR7ZXJyb3J9YCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRyZXNzTGlzdC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5yZWZvY3VzRWxlbWVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZvY3VzRWxlbWVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c0VsZW1lbnREaXJlY3RpdmVzICYmIHRoaXMuZm9jdXNFbGVtZW50RGlyZWN0aXZlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZvY3VzRWxlbWVudERpcmVjdGl2ZXMuZmlyc3QuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmxhbmtBZGRyZXNzKCkge1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gbmV3IEFkZHJlc3NNb2RlbCgpO1xuICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCk7XG4gICAgdGhpcy5taXNzaW5nUG9zdGNvZGUgPSBmYWxzZTtcbiAgICB0aGlzLm5vQWRkcmVzc1NlbGVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaXNDb21wbGV4V2l0aEhpZGRlbkZpZWxkcygpIHtcbiAgICBpZiAodGhpcy5jYXNlRmllbGQuaXNDb21wbGV4KCkgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkc1xuICAgICAgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5zb21lKGNmID0+IGNmLmhpZGRlbiA9PT0gdHJ1ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG91bGRTaG93RGV0YWlsRmllbGRzKCkge1xuICAgIGlmICh0aGlzLmlzQ29tcGxleFdpdGhIaWRkZW5GaWVsZHMoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQgfHwgIXRoaXMud3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQuY29tcGxleEdyb3VwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLndyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50LmNvbXBsZXhHcm91cC52YWx1ZTtcbiAgICBsZXQgaGFzQWRkcmVzcyA9IGZhbHNlO1xuICAgIGlmIChhZGRyZXNzKSB7XG4gICAgICBPYmplY3Qua2V5cyhhZGRyZXNzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKGFkZHJlc3Nba2V5XSAhPT0gbnVsbCkge1xuICAgICAgICAgIGhhc0FkZHJlc3MgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0FkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgYWRkcmVzc1NlbGVjdGVkKCkge1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gdGhpcy5hZGRyZXNzTGlzdC52YWx1ZTtcbiAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgIHRoaXMubm9BZGRyZXNzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1snY2FzZUZpZWxkJ107XG4gICAgaWYgKGNoYW5nZSkge1xuICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJZFByZWZpeChlbGVtZW50SWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaWRQcmVmaXh9XyR7ZWxlbWVudElkfWA7XG4gIH1cblxuICBwcml2YXRlIHNldEZvcm1WYWx1ZSgpIHtcbiAgICBpZiAodGhpcy53cml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudC5jb21wbGV4R3JvdXApIHtcbiAgICAgIHRoaXMud3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQuY29tcGxleEdyb3VwLnNldFZhbHVlKFxuICAgICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVycm9yc09uQ29udGludWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm1pc3NpbmdQb3N0Y29kZSA9IHZhbHVlICYmICF0aGlzLnNob3VsZFNob3dEZXRhaWxGaWVsZHMoKSAmJiAhdGhpcy5hZGRyZXNzT3B0aW9ucztcbiAgICB0aGlzLm5vQWRkcmVzc1NlbGVjdGVkID0gdmFsdWUgJiYgIXRoaXMuc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpICYmICEhdGhpcy5hZGRyZXNzT3B0aW9ucztcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMubm9BZGRyZXNzU2VsZWN0ZWQgPyAnU2VsZWN0IGFuIGFkZHJlc3MnIDogdGhpcy5lcnJvck1lc3NhZ2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2lkXT1cImlkKClcIj5cbiAgPGRpdiAqbmdJZj1cIiFpc0NvbXBsZXhXaXRoSGlkZGVuRmllbGRzKClcIj5cbiAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCI+e3tjYXNlRmllbGQgfCBjY2RGaWVsZExhYmVsfX08L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgYm90dG9tLTMwIHBvc3Rjb2RlTG9va3VwXCIgW2lkXT1cImNyZWF0ZUVsZW1lbnRJZCgncG9zdGNvZGVMb29rdXAnKVwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IG1pc3NpbmdQb3N0Y29kZX1cIiAqbmdJZj1cIiFpc0V4cGFuZGVkXCI+XG4gICAgICA8bGFiZWwgW2Zvcl09XCJjcmVhdGVFbGVtZW50SWQoJ3Bvc3Rjb2RlSW5wdXQnKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydFbnRlciBhIFVLIHBvc3Rjb2RlJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwibWlzc2luZ1Bvc3Rjb2RlXCI+e3tlcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogbWlzc2luZ1Bvc3Rjb2RlfVwiXG4gICAgICBbaWRdPVwiY3JlYXRlRWxlbWVudElkKCdwb3N0Y29kZUlucHV0JylcIiBuYW1lPVwicG9zdGNvZGVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBwb3N0Y29kZWlucHV0IGlubGluZS1ibG9ja1wiIFtmb3JtQ29udHJvbF09XCJwb3N0Y29kZVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLTMwXCIgKGNsaWNrKT1cImZpbmRBZGRyZXNzKClcIiBbZGlzYWJsZWRdPVwibG9hZGluZ0FkZHJlc3Nlc1wiPlxuICAgICAgICB7eyhsb2FkaW5nQWRkcmVzc2VzID8gJ0ZpbmRpbmcgYWRkcmVzc2VzLi4uJyA6ICdGaW5kIGFkZHJlc3MnKSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nSWY9XCJhZGRyZXNzT3B0aW9uc1wiIGlkPVwic2VsZWN0QWRkcmVzc1wiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IG5vQWRkcmVzc1NlbGVjdGVkfVwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiY3JlYXRlRWxlbWVudElkKCdhZGRyZXNzTGlzdCcpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J1NlbGVjdCBhbiBhZGRyZXNzJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwibm9BZGRyZXNzU2VsZWN0ZWRcIj57e2Vycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBjY2QtZHJvcGRvd24gYWRkcmVzc0xpc3RcIiBbaWRdPVwiY3JlYXRlRWxlbWVudElkKCdhZGRyZXNzTGlzdCcpXCIgbmFtZT1cImFkZHJlc3NcIiBbZm9ybUNvbnRyb2xdPVwiYWRkcmVzc0xpc3RcIiAoY2hhbmdlKT1cImFkZHJlc3NTZWxlY3RlZCgpXCIgZm9jdXNFbGVtZW50PlxuICAgICAgICA8b3B0aW9uICpuZ0lmPVwiYWRkcmVzc09wdGlvbnMubGVuZ3RoID09PSAwXCIgW25nVmFsdWVdPVwidW5kZWZpbmVkXCI+XG4gICAgICAgICAge3snTm8gYWRkcmVzcyBmb3VuZCcgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiAqbmdJZj1cImFkZHJlc3NPcHRpb25zLmxlbmd0aCA+IDBcIiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj5cbiAgICAgICAgICB7e2FkZHJlc3NPcHRpb25zLmxlbmd0aH19IHt7KGFkZHJlc3NPcHRpb25zLmxlbmd0aCA9PT0gMSA/ICdhZGRyZXNzIGZvdW5kJyA6ICdhZGRyZXNzZXMgZm91bmQnKSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBhZGRyZXNzT3B0aW9uIG9mIGFkZHJlc3NPcHRpb25zXCIgW25nVmFsdWVdPVwiYWRkcmVzc09wdGlvbi52YWx1ZVwiPlxuICAgICAgICAgIHt7YWRkcmVzc09wdGlvbi5kZXNjcmlwdGlvbn19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8YSBjbGFzcz1cIm1hbnVhbC1saW5rIGJvdHRvbS0zMFwiICpuZ0lmPVwiIXNob3VsZFNob3dEZXRhaWxGaWVsZHMoKVwiIChjbGljayk9XCJibGFua0FkZHJlc3MoKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBocmVmPVwiI1wiPlxuICAgICAge3tcIkkgY2FuJ3QgZW50ZXIgYSBVSyBwb3N0Y29kZVwiIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2E+XG4gIDwvZGl2PlxuXG4gIDxjY2Qtd3JpdGUtY29tcGxleC10eXBlLWZpZWxkXG4gICAgW2hpZGRlbl09XCIhc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW3JlbmRlckxhYmVsXT1cImZhbHNlXCJcbiAgICBbcGFyZW50XT1cInBhcmVudFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFtpZ25vcmVNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgW2lkUHJlZml4XT1cImJ1aWxkSWRQcmVmaXgoJ2RldGFpbCcpXCJcbiAgICAjd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQ+XG4gIDwvY2NkLXdyaXRlLWNvbXBsZXgtdHlwZS1maWVsZD5cbjwvZGl2PlxuIl19
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtYWRkcmVzcy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9hZGRyZXNzL3dyaXRlLWFkZHJlc3MtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvYWRkcmVzcy93cml0ZS1hZGRyZXNzLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMzRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztJQ0RqRCxnQ0FBb0Q7SUFBQSxZQUErQjs7SUFBQSxpQkFBTzs7O0lBQXRDLGNB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LGNBQWMsQ0FBQztRQUMxRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDdkYsQ0FBQztvSEE3SVUsMEJBQTBCOzZEQUExQiwwQkFBMEI7OzJCQUl2QixxQkFBcUI7Ozs7OztZQ3BCckMsOEJBQW9DO1lBQ2xDLDJFQUEwQztZQW9DMUMscURBUytCO1lBQ2pDLGlCQUFNOztZQS9Da0IsNkJBQVc7WUFDM0IsY0FBa0M7WUFBbEMsdURBQWtDO1lBcUN0QyxjQUFvQztZQU1wQyxBQURBLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxzREFBb0MsNEJBQ2Isc0JBQ0Ysc0JBQ0osNEJBQ00seUJBQ0MseUNBQ1k7OztpRkQ1QjNCLDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHlCQUF5Qjs4RUFNNUIsMEJBQTBCO2tCQURoQyxTQUFTO21CQUFDLDRCQUE0QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUluRCxzQkFBc0I7a0JBRDVCLFlBQVk7bUJBQUMscUJBQXFCOztrRkFKeEIsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkNoYW5nZXMsIE9uSW5pdCwgUXVlcnlMaXN0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFkZHJlc3NWYWxpZGF0aW9uQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9hZGRyZXNzLXZhbGlkYXRpb24tY29uc3RhbnRzJztcbmltcG9ydCB7IEZvY3VzRWxlbWVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvZm9jdXMtZWxlbWVudCc7XG5pbXBvcnQgeyBBZGRyZXNzTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vYWRkcmVzc2VzL2FkZHJlc3MubW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FkZHJlc3Nlcy9hZGRyZXNzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXcml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBsZXgvd3JpdGUtY29tcGxleC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSXNDb21wb3VuZFBpcGUgfSBmcm9tICcuLi91dGlscy9pcy1jb21wb3VuZC5waXBlJztcbmltcG9ydCB7IEFkZHJlc3NPcHRpb24gfSBmcm9tICcuL2FkZHJlc3Mtb3B0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXdyaXRlLWFkZHJlc3MtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJ3dyaXRlLWFkZHJlc3MtZmllbGQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd3cml0ZS1hZGRyZXNzLWZpZWxkLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBXcml0ZUFkZHJlc3NGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQFZpZXdDaGlsZCgnd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50OiBXcml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkcmVuKEZvY3VzRWxlbWVudERpcmVjdGl2ZSlcbiAgcHVibGljIGZvY3VzRWxlbWVudERpcmVjdGl2ZXM6IFF1ZXJ5TGlzdDxGb2N1c0VsZW1lbnREaXJlY3RpdmU+O1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUkVRVUlSRURfRVJST1JfTUVTU0FHRSA9ICdFbnRlciBhIFBvc3Rjb2RlJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJTlZBTElEX0VSUk9SX01FU1NBR0UgPSAnRW50ZXIgYSB2YWxpZCBQb3N0Y29kZSc7XG5cbiAgcHVibGljIGFkZHJlc3Nlc1NlcnZpY2U6IEFkZHJlc3Nlc1NlcnZpY2U7XG5cbiAgcHVibGljIGFkZHJlc3NGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgcHVibGljIHBvc3Rjb2RlOiBGb3JtQ29udHJvbDtcbiAgcHVibGljIGFkZHJlc3NMaXN0OiBGb3JtQ29udHJvbDtcblxuICBwdWJsaWMgYWRkcmVzc09wdGlvbnM6IEFkZHJlc3NPcHRpb25bXTtcblxuICBwdWJsaWMgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBXcml0ZUFkZHJlc3NGaWVsZENvbXBvbmVudC5SRVFVSVJFRF9FUlJPUl9NRVNTQUdFO1xuXG4gIHB1YmxpYyBtaXNzaW5nUG9zdGNvZGUgPSBmYWxzZTtcbiAgcHVibGljIG5vQWRkcmVzc1NlbGVjdGVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoYWRkcmVzc2VzU2VydmljZTogQWRkcmVzc2VzU2VydmljZSwgcHJpdmF0ZSByZWFkb25seSBpc0NvbXBvdW5kUGlwZTogSXNDb21wb3VuZFBpcGUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkcmVzc2VzU2VydmljZSA9IGFkZHJlc3Nlc1NlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQ29tcGxleFdpdGhIaWRkZW5GaWVsZHMoKSkge1xuICAgICAgdGhpcy5wb3N0Y29kZSA9IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgIHRoaXMuYWRkcmVzc0Zvcm1Hcm91cC5hZGRDb250cm9sKCdwb3N0Y29kZScsIHRoaXMucG9zdGNvZGUpO1xuICAgICAgdGhpcy5hZGRyZXNzTGlzdCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gICAgICB0aGlzLmFkZHJlc3NGb3JtR3JvdXAuYWRkQ29udHJvbCgnYWRkcmVzcycsIHRoaXMuYWRkcmVzc0xpc3QpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkcmVzc2VzU2VydmljZS5nZXRNYW5kYXRvcnlFcnJvcigpLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMudXBkYXRlRXJyb3JzT25Db250aW51ZSh2YWx1ZSk7XG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWRkcmVzcygpIHtcbiAgICB0aGlzLm5vQWRkcmVzc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgaWYgKCF0aGlzLnBvc3Rjb2RlLnZhbHVlKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IFdyaXRlQWRkcmVzc0ZpZWxkQ29tcG9uZW50LlJFUVVJUkVEX0VSUk9SX01FU1NBR0U7XG4gICAgICB0aGlzLm1pc3NpbmdQb3N0Y29kZSA9IHRydWU7XG4gICAgfSBlbHNlIGlmICghdGhpcy5wb3N0Y29kZS52YWx1ZS50cmltKCkubWF0Y2goQWRkcmVzc1ZhbGlkYXRpb25Db25zdGFudHMuUkVHRVhfUE9TVENPREUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IFdyaXRlQWRkcmVzc0ZpZWxkQ29tcG9uZW50LklOVkFMSURfRVJST1JfTUVTU0FHRTtcbiAgICAgIHRoaXMubWlzc2luZ1Bvc3Rjb2RlID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5taXNzaW5nUG9zdGNvZGUgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHBvc3Rjb2RlID0gdGhpcy5wb3N0Y29kZS52YWx1ZTtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMuYWRkcmVzc09wdGlvbnMgPSBbXTtcbiAgICAgIHRoaXMuYWRkcmVzc2VzU2VydmljZS5nZXRBZGRyZXNzZXNGb3JQb3N0Y29kZShwb3N0Y29kZS5yZXBsYWNlKCcgJywgJycpLnRvVXBwZXJDYXNlKCkpLnN1YnNjcmliZShcbiAgICAgICAgcmVzdWx0ID0+IHtcbiAgICAgICAgICByZXN1bHQuZm9yRWFjaChcbiAgICAgICAgICAgIGFkZHJlc3MgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmFkZHJlc3NPcHRpb25zLnB1c2gobmV3IEFkZHJlc3NPcHRpb24oYWRkcmVzcywgbnVsbCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBBbiBlcnJvciBvY2N1cnJlZCByZXRyaWV2aW5nIGFkZHJlc3NlcyBmb3IgcG9zdGNvZGUgJHtwb3N0Y29kZX0uICR7ZXJyb3J9YCk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5hZGRyZXNzTGlzdC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5yZWZvY3VzRWxlbWVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWZvY3VzRWxlbWVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c0VsZW1lbnREaXJlY3RpdmVzICYmIHRoaXMuZm9jdXNFbGVtZW50RGlyZWN0aXZlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmZvY3VzRWxlbWVudERpcmVjdGl2ZXMuZmlyc3QuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmxhbmtBZGRyZXNzKCkge1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gbmV3IEFkZHJlc3NNb2RlbCgpO1xuICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCk7XG4gICAgdGhpcy5taXNzaW5nUG9zdGNvZGUgPSBmYWxzZTtcbiAgICB0aGlzLm5vQWRkcmVzc1NlbGVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaXNDb21wbGV4V2l0aEhpZGRlbkZpZWxkcygpIHtcbiAgICBpZiAodGhpcy5jYXNlRmllbGQuaXNDb21wbGV4KCkgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkc1xuICAgICAgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5zb21lKGNmID0+IGNmLmhpZGRlbiA9PT0gdHJ1ZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG91bGRTaG93RGV0YWlsRmllbGRzKCkge1xuICAgIGlmICh0aGlzLmlzQ29tcGxleFdpdGhIaWRkZW5GaWVsZHMoKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMud3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQgfHwgIXRoaXMud3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQuY29tcGxleEdyb3VwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGFkZHJlc3MgPSB0aGlzLndyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50LmNvbXBsZXhHcm91cC52YWx1ZTtcbiAgICBsZXQgaGFzQWRkcmVzcyA9IGZhbHNlO1xuICAgIGlmIChhZGRyZXNzKSB7XG4gICAgICBPYmplY3Qua2V5cyhhZGRyZXNzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgaWYgKGFkZHJlc3Nba2V5XSAhPT0gbnVsbCkge1xuICAgICAgICAgIGhhc0FkZHJlc3MgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGhhc0FkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgYWRkcmVzc1NlbGVjdGVkKCkge1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gdGhpcy5hZGRyZXNzTGlzdC52YWx1ZTtcbiAgICB0aGlzLnNldEZvcm1WYWx1ZSgpO1xuICAgIHRoaXMubm9BZGRyZXNzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XG4gICAgY29uc3QgY2hhbmdlID0gY2hhbmdlc1snY2FzZUZpZWxkJ107XG4gICAgaWYgKGNoYW5nZSkge1xuICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJZFByZWZpeChlbGVtZW50SWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuaWRQcmVmaXh9XyR7ZWxlbWVudElkfWA7XG4gIH1cblxuICBwcml2YXRlIHNldEZvcm1WYWx1ZSgpIHtcbiAgICBpZiAodGhpcy53cml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudC5jb21wbGV4R3JvdXApIHtcbiAgICAgIHRoaXMud3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQuY29tcGxleEdyb3VwLnNldFZhbHVlKFxuICAgICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVycm9yc09uQ29udGludWUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm1pc3NpbmdQb3N0Y29kZSA9IHZhbHVlICYmICF0aGlzLnNob3VsZFNob3dEZXRhaWxGaWVsZHMoKSAmJiAhdGhpcy5hZGRyZXNzT3B0aW9ucztcbiAgICB0aGlzLm5vQWRkcmVzc1NlbGVjdGVkID0gdmFsdWUgJiYgIXRoaXMuc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpICYmICEhdGhpcy5hZGRyZXNzT3B0aW9ucztcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMubm9BZGRyZXNzU2VsZWN0ZWQgPyAnU2VsZWN0IGFuIGFkZHJlc3MnIDogdGhpcy5lcnJvck1lc3NhZ2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2lkXT1cImlkKClcIj5cbiAgPGRpdiAqbmdJZj1cIiFpc0NvbXBsZXhXaXRoSGlkZGVuRmllbGRzKClcIj5cbiAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCI+e3tjYXNlRmllbGQgfCBjY2RGaWVsZExhYmVsfX08L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgYm90dG9tLTMwIHBvc3Rjb2RlTG9va3VwXCIgW2lkXT1cImNyZWF0ZUVsZW1lbnRJZCgncG9zdGNvZGVMb29rdXAnKVwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IG1pc3NpbmdQb3N0Y29kZX1cIiAqbmdJZj1cIiFpc0V4cGFuZGVkXCI+XG4gICAgICA8bGFiZWwgW2Zvcl09XCJjcmVhdGVFbGVtZW50SWQoJ3Bvc3Rjb2RlSW5wdXQnKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydFbnRlciBhIFVLIHBvc3Rjb2RlJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwibWlzc2luZ1Bvc3Rjb2RlXCI+e3tlcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogbWlzc2luZ1Bvc3Rjb2RlfVwiXG4gICAgICBbaWRdPVwiY3JlYXRlRWxlbWVudElkKCdwb3N0Y29kZUlucHV0JylcIiBuYW1lPVwicG9zdGNvZGVcIiBjbGFzcz1cImZvcm0tY29udHJvbCBwb3N0Y29kZWlucHV0IGlubGluZS1ibG9ja1wiIFtmb3JtQ29udHJvbF09XCJwb3N0Y29kZVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLTMwXCIgKGNsaWNrKT1cImZpbmRBZGRyZXNzKClcIj57eydGaW5kIGFkZHJlc3MnIHwgcnB4VHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgKm5nSWY9XCJhZGRyZXNzT3B0aW9uc1wiIGlkPVwic2VsZWN0QWRkcmVzc1wiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IG5vQWRkcmVzc1NlbGVjdGVkfVwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiY3JlYXRlRWxlbWVudElkKCdhZGRyZXNzTGlzdCcpXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J1NlbGVjdCBhbiBhZGRyZXNzJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwibm9BZGRyZXNzU2VsZWN0ZWRcIj57e2Vycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbCBjY2QtZHJvcGRvd24gYWRkcmVzc0xpc3RcIiBbaWRdPVwiY3JlYXRlRWxlbWVudElkKCdhZGRyZXNzTGlzdCcpXCIgbmFtZT1cImFkZHJlc3NcIiBbZm9ybUNvbnRyb2xdPVwiYWRkcmVzc0xpc3RcIiAoY2hhbmdlKT1cImFkZHJlc3NTZWxlY3RlZCgpXCIgZm9jdXNFbGVtZW50PlxuICAgICAgICA8b3B0aW9uICpuZ0lmPVwiYWRkcmVzc09wdGlvbnMubGVuZ3RoID09PSAwXCIgW25nVmFsdWVdPVwidW5kZWZpbmVkXCI+XG4gICAgICAgICAge3snTm8gYWRkcmVzcyBmb3VuZCcgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgPG9wdGlvbiAqbmdJZj1cImFkZHJlc3NPcHRpb25zLmxlbmd0aCA+IDBcIiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj5cbiAgICAgICAgICB7e2FkZHJlc3NPcHRpb25zLmxlbmd0aH19IHt7KGFkZHJlc3NPcHRpb25zLmxlbmd0aCA9PT0gMSA/ICdhZGRyZXNzIGZvdW5kJyA6ICdhZGRyZXNzZXMgZm91bmQnKSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBhZGRyZXNzT3B0aW9uIG9mIGFkZHJlc3NPcHRpb25zXCIgW25nVmFsdWVdPVwiYWRkcmVzc09wdGlvbi52YWx1ZVwiPlxuICAgICAgICAgIHt7YWRkcmVzc09wdGlvbi5kZXNjcmlwdGlvbn19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8YSBjbGFzcz1cIm1hbnVhbC1saW5rIGJvdHRvbS0zMFwiICpuZ0lmPVwiIXNob3VsZFNob3dEZXRhaWxGaWVsZHMoKVwiIChjbGljayk9XCJibGFua0FkZHJlc3MoKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBocmVmPVwiI1wiPlxuICAgICAge3tcIkkgY2FuJ3QgZW50ZXIgYSBVSyBwb3N0Y29kZVwiIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2E+XG4gIDwvZGl2PlxuXG4gIDxjY2Qtd3JpdGUtY29tcGxleC10eXBlLWZpZWxkXG4gICAgW2hpZGRlbl09XCIhc2hvdWxkU2hvd0RldGFpbEZpZWxkcygpXCJcbiAgICBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiXG4gICAgW3JlbmRlckxhYmVsXT1cImZhbHNlXCJcbiAgICBbcGFyZW50XT1cInBhcmVudFwiXG4gICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgIFtpZ25vcmVNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgW2lkUHJlZml4XT1cImJ1aWxkSWRQcmVmaXgoJ2RldGFpbCcpXCJcbiAgICAjd3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQ+XG4gIDwvY2NkLXdyaXRlLWNvbXBsZXgtdHlwZS1maWVsZD5cbjwvZGl2PlxuIl19
@@ -12444,19 +12444,17 @@ function WriteAddressFieldComponent_div_1_div_4_Template(rf, ctx) { if (rf & 1)
12444
12444
  i0.ɵɵelementEnd()();
12445
12445
  } if (rf & 2) {
12446
12446
  const ctx_r1 = i0.ɵɵnextContext(2);
12447
- i0.ɵɵproperty("id", ctx_r1.createElementId("postcodeLookup"))("ngClass", i0.ɵɵpureFunction1(14, _c1$o, ctx_r1.missingPostcode));
12447
+ i0.ɵɵproperty("id", ctx_r1.createElementId("postcodeLookup"))("ngClass", i0.ɵɵpureFunction1(13, _c1$o, ctx_r1.missingPostcode));
12448
12448
  i0.ɵɵadvance();
12449
12449
  i0.ɵɵproperty("for", ctx_r1.createElementId("postcodeInput"));
12450
12450
  i0.ɵɵadvance(2);
12451
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 10, "Enter a UK postcode"));
12451
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 9, "Enter a UK postcode"));
12452
12452
  i0.ɵɵadvance(2);
12453
12453
  i0.ɵɵproperty("ngIf", ctx_r1.missingPostcode);
12454
12454
  i0.ɵɵadvance();
12455
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(16, _c2$3, ctx_r1.missingPostcode))("id", ctx_r1.createElementId("postcodeInput"))("formControl", ctx_r1.postcode);
12456
- i0.ɵɵadvance();
12457
- i0.ɵɵproperty("disabled", ctx_r1.loadingAddresses);
12458
- i0.ɵɵadvance();
12459
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 12, ctx_r1.loadingAddresses ? "Finding addresses..." : "Find address"), " ");
12455
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(15, _c2$3, ctx_r1.missingPostcode))("id", ctx_r1.createElementId("postcodeInput"))("formControl", ctx_r1.postcode);
12456
+ i0.ɵɵadvance(2);
12457
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 11, "Find address"));
12460
12458
  } }
12461
12459
  function WriteAddressFieldComponent_div_1_div_5_span_5_Template(rf, ctx) { if (rf & 1) {
12462
12460
  i0.ɵɵelementStart(0, "span", 14);
@@ -12544,7 +12542,7 @@ function WriteAddressFieldComponent_div_1_Template(rf, ctx) { if (rf & 1) {
12544
12542
  i0.ɵɵtext(2);
12545
12543
  i0.ɵɵpipe(3, "ccdFieldLabel");
12546
12544
  i0.ɵɵelementEnd();
12547
- i0.ɵɵtemplate(4, WriteAddressFieldComponent_div_1_div_4_Template, 10, 18, "div", 5)(5, WriteAddressFieldComponent_div_1_div_5_Template, 10, 13, "div", 6)(6, WriteAddressFieldComponent_div_1_a_6_Template, 3, 3, "a", 7);
12545
+ i0.ɵɵtemplate(4, WriteAddressFieldComponent_div_1_div_4_Template, 10, 17, "div", 5)(5, WriteAddressFieldComponent_div_1_div_5_Template, 10, 13, "div", 6)(6, WriteAddressFieldComponent_div_1_a_6_Template, 3, 3, "a", 7);
12548
12546
  i0.ɵɵelementEnd();
12549
12547
  } if (rf & 2) {
12550
12548
  const ctx_r1 = i0.ɵɵnextContext();
@@ -12571,7 +12569,6 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
12571
12569
  errorMessage = WriteAddressFieldComponent.REQUIRED_ERROR_MESSAGE;
12572
12570
  missingPostcode = false;
12573
12571
  noAddressSelected = false;
12574
- loadingAddresses = false;
12575
12572
  constructor(addressesService, isCompoundPipe) {
12576
12573
  super();
12577
12574
  this.isCompoundPipe = isCompoundPipe;
@@ -12600,17 +12597,14 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
12600
12597
  }
12601
12598
  else {
12602
12599
  this.missingPostcode = false;
12603
- this.loadingAddresses = true;
12604
12600
  const postcode = this.postcode.value;
12605
12601
  this.caseField.value = null;
12606
12602
  this.addressOptions = [];
12607
- this.addressesService.getAddressesForPostcode(postcode.replace(' ', '').toUpperCase()).subscribe((result) => {
12608
- this.loadingAddresses = false;
12609
- result.forEach((address) => {
12603
+ this.addressesService.getAddressesForPostcode(postcode.replace(' ', '').toUpperCase()).subscribe(result => {
12604
+ result.forEach(address => {
12610
12605
  this.addressOptions.push(new AddressOption(address, null));
12611
12606
  });
12612
12607
  }, (error) => {
12613
- this.loadingAddresses = false;
12614
12608
  console.log(`An error occurred retrieving addresses for postcode ${postcode}. ${error}`);
12615
12609
  });
12616
12610
  this.addressList.setValue(undefined);
@@ -12688,7 +12682,7 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
12688
12682
  let _t;
12689
12683
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.writeComplexFieldComponent = _t.first);
12690
12684
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.focusElementDirectives = _t);
12691
- } }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [["writeComplexFieldComponent", ""], [1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], [1, "heading-h2"], ["class", "form-group bottom-30 postcodeLookup", 3, "id", "ngClass", 4, "ngIf"], ["class", "form-group", "id", "selectAddress", 3, "ngClass", 4, "ngIf"], ["class", "manual-link bottom-30", "href", "#", 3, "click", 4, "ngIf"], [1, "form-group", "bottom-30", "postcodeLookup", 3, "id", "ngClass"], [3, "for"], [1, "form-label"], ["class", "error-message", 4, "ngIf"], ["type", "text", "name", "postcode", 1, "form-control", "postcodeinput", "inline-block", 3, "ngClass", "id", "formControl"], ["type", "button", 1, "button", "button-30", 3, "click", "disabled"], [1, "error-message"], ["id", "selectAddress", 1, "form-group", 3, "ngClass"], ["name", "address", "focusElement", "", 1, "form-control", "ccd-dropdown", "addressList", 3, "change", "id", "formControl"], [3, "ngValue", 4, "ngIf"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "#", 1, "manual-link", "bottom-30", 3, "click"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
12685
+ } }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 9, consts: [["writeComplexFieldComponent", ""], [1, "form-group", 3, "id"], [4, "ngIf"], [3, "hidden", "caseField", "renderLabel", "parent", "formGroup", "ignoreMandatory", "idPrefix"], [1, "heading-h2"], ["class", "form-group bottom-30 postcodeLookup", 3, "id", "ngClass", 4, "ngIf"], ["class", "form-group", "id", "selectAddress", 3, "ngClass", 4, "ngIf"], ["class", "manual-link bottom-30", "href", "#", 3, "click", 4, "ngIf"], [1, "form-group", "bottom-30", "postcodeLookup", 3, "id", "ngClass"], [3, "for"], [1, "form-label"], ["class", "error-message", 4, "ngIf"], ["type", "text", "name", "postcode", 1, "form-control", "postcodeinput", "inline-block", 3, "ngClass", "id", "formControl"], ["type", "button", 1, "button", "button-30", 3, "click"], [1, "error-message"], ["id", "selectAddress", 1, "form-group", 3, "ngClass"], ["name", "address", "focusElement", "", 1, "form-control", "ccd-dropdown", "addressList", 3, "change", "id", "formControl"], [3, "ngValue", 4, "ngIf"], [3, "ngValue", 4, "ngFor", "ngForOf"], [3, "ngValue"], ["href", "#", 1, "manual-link", "bottom-30", 3, "click"]], template: function WriteAddressFieldComponent_Template(rf, ctx) { if (rf & 1) {
12692
12686
  i0.ɵɵelementStart(0, "div", 1);
12693
12687
  i0.ɵɵtemplate(1, WriteAddressFieldComponent_div_1_Template, 7, 6, "div", 2);
12694
12688
  i0.ɵɵelement(2, "ccd-write-complex-type-field", 3, 0);
@@ -12703,7 +12697,7 @@ class WriteAddressFieldComponent extends AbstractFieldWriteComponent {
12703
12697
  }
12704
12698
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteAddressFieldComponent, [{
12705
12699
  type: Component,
12706
- args: [{ selector: 'ccd-write-address-field', template: "<div class=\"form-group\" [id]=\"id()\">\n <div *ngIf=\"!isComplexWithHiddenFields()\">\n <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n\n <div class=\"form-group bottom-30 postcodeLookup\" [id]=\"createElementId('postcodeLookup')\" [ngClass]=\"{'form-group-error': missingPostcode}\" *ngIf=\"!isExpanded\">\n <label [for]=\"createElementId('postcodeInput')\">\n <span class=\"form-label\">{{'Enter a UK postcode' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"missingPostcode\">{{errorMessage | rpxTranslate}}</span>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\"\n [id]=\"createElementId('postcodeInput')\" name=\"postcode\" class=\"form-control postcodeinput inline-block\" [formControl]=\"postcode\">\n <button type=\"button\" class=\"button button-30\" (click)=\"findAddress()\" [disabled]=\"loadingAddresses\">\n {{(loadingAddresses ? 'Finding addresses...' : 'Find address') | rpxTranslate}}\n </button>\n </div>\n\n <div class=\"form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\" [ngClass]=\"{'form-group-error': noAddressSelected}\">\n <label [for]=\"createElementId('addressList')\">\n <span class=\"form-label\">{{'Select an address' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"noAddressSelected\">{{errorMessage | rpxTranslate}}</span>\n <select class=\"form-control ccd-dropdown addressList\" [id]=\"createElementId('addressList')\" name=\"address\" [formControl]=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngIf=\"addressOptions.length === 0\" [ngValue]=\"undefined\">\n {{'No address found' | rpxTranslate}}\n </option>\n <option *ngIf=\"addressOptions.length > 0\" [ngValue]=\"undefined\">\n {{addressOptions.length}} {{(addressOptions.length === 1 ? 'address found' : 'addresses found') | rpxTranslate}}\n </option>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n\n <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">\n {{\"I can't enter a UK postcode\" | rpxTranslate}}\n </a>\n </div>\n\n <ccd-write-complex-type-field\n [hidden]=\"!shouldShowDetailFields()\"\n [caseField]=\"caseField\"\n [renderLabel]=\"false\"\n [parent]=\"parent\"\n [formGroup]=\"formGroup\"\n [ignoreMandatory]=\"true\"\n [idPrefix]=\"buildIdPrefix('detail')\"\n #writeComplexFieldComponent>\n </ccd-write-complex-type-field>\n</div>\n", styles: [".manual-link{cursor:pointer;display:block;text-decoration:underline}\n"] }]
12700
+ args: [{ selector: 'ccd-write-address-field', template: "<div class=\"form-group\" [id]=\"id()\">\n <div *ngIf=\"!isComplexWithHiddenFields()\">\n <h2 class=\"heading-h2\">{{caseField | ccdFieldLabel}}</h2>\n\n <div class=\"form-group bottom-30 postcodeLookup\" [id]=\"createElementId('postcodeLookup')\" [ngClass]=\"{'form-group-error': missingPostcode}\" *ngIf=\"!isExpanded\">\n <label [for]=\"createElementId('postcodeInput')\">\n <span class=\"form-label\">{{'Enter a UK postcode' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"missingPostcode\">{{errorMessage | rpxTranslate}}</span>\n <input type=\"text\" [ngClass]=\"{'govuk-input--error': missingPostcode}\"\n [id]=\"createElementId('postcodeInput')\" name=\"postcode\" class=\"form-control postcodeinput inline-block\" [formControl]=\"postcode\">\n <button type=\"button\" class=\"button button-30\" (click)=\"findAddress()\">{{'Find address' | rpxTranslate}}</button>\n </div>\n\n <div class=\"form-group\" *ngIf=\"addressOptions\" id=\"selectAddress\" [ngClass]=\"{'form-group-error': noAddressSelected}\">\n <label [for]=\"createElementId('addressList')\">\n <span class=\"form-label\">{{'Select an address' | rpxTranslate}}</span>\n </label>\n <span class=\"error-message\" *ngIf=\"noAddressSelected\">{{errorMessage | rpxTranslate}}</span>\n <select class=\"form-control ccd-dropdown addressList\" [id]=\"createElementId('addressList')\" name=\"address\" [formControl]=\"addressList\" (change)=\"addressSelected()\" focusElement>\n <option *ngIf=\"addressOptions.length === 0\" [ngValue]=\"undefined\">\n {{'No address found' | rpxTranslate}}\n </option>\n <option *ngIf=\"addressOptions.length > 0\" [ngValue]=\"undefined\">\n {{addressOptions.length}} {{(addressOptions.length === 1 ? 'address found' : 'addresses found') | rpxTranslate}}\n </option>\n <option *ngFor=\"let addressOption of addressOptions\" [ngValue]=\"addressOption.value\">\n {{addressOption.description}}\n </option>\n </select>\n </div>\n\n <a class=\"manual-link bottom-30\" *ngIf=\"!shouldShowDetailFields()\" (click)=\"blankAddress(); $event.preventDefault()\" href=\"#\">\n {{\"I can't enter a UK postcode\" | rpxTranslate}}\n </a>\n </div>\n\n <ccd-write-complex-type-field\n [hidden]=\"!shouldShowDetailFields()\"\n [caseField]=\"caseField\"\n [renderLabel]=\"false\"\n [parent]=\"parent\"\n [formGroup]=\"formGroup\"\n [ignoreMandatory]=\"true\"\n [idPrefix]=\"buildIdPrefix('detail')\"\n #writeComplexFieldComponent>\n </ccd-write-complex-type-field>\n</div>\n", styles: [".manual-link{cursor:pointer;display:block;text-decoration:underline}\n"] }]
12707
12701
  }], () => [{ type: AddressesService }, { type: IsCompoundPipe }], { writeComplexFieldComponent: [{
12708
12702
  type: ViewChild,
12709
12703
  args: ['writeComplexFieldComponent', { static: false }]