@hmcts/ccd-case-ui-toolkit 7.1.34-date-label-fix → 7.1.34-date-label-fix-v2

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.
@@ -60,6 +60,7 @@ function DateInputComponent_div_21_Template(rf, ctx) { if (rf & 1) {
60
60
  } }
61
61
  export class DateInputComponent {
62
62
  id;
63
+ labelPrefix;
63
64
  mandatory;
64
65
  isDateTime;
65
66
  formControl;
@@ -194,28 +195,28 @@ export class DateInputComponent {
194
195
  dayId() {
195
196
  const idString = `${this.id}`;
196
197
  if (idString.includes("Date")) {
197
- return `${this.id}-day`;
198
+ return `${this.labelPrefix + this.id}-day`;
198
199
  }
199
200
  else {
200
- return `${this.id}Date-day`;
201
+ return `${this.labelPrefix + this.id}Date-day`;
201
202
  }
202
203
  }
203
204
  monthId() {
204
205
  const idString = `${this.id}`;
205
206
  if (idString.includes("Date")) {
206
- return `${this.id}-month`;
207
+ return `${this.labelPrefix + this.id}-month`;
207
208
  }
208
209
  else {
209
- return `${this.id}Date-month`;
210
+ return `${this.labelPrefix + this.id}Date-month`;
210
211
  }
211
212
  }
212
213
  yearId() {
213
214
  const idString = `${this.id}`;
214
215
  if (idString.includes("Date")) {
215
- return `${this.id}-year`;
216
+ return `${this.labelPrefix + this.id}-year`;
216
217
  }
217
218
  else {
218
- return `${this.id}Date-year`;
219
+ return `${this.labelPrefix + this.id}Date-year`;
219
220
  }
220
221
  }
221
222
  hourId() {
@@ -267,7 +268,7 @@ export class DateInputComponent {
267
268
  return dateTime.replace(/\..*/, '');
268
269
  }
269
270
  static ɵfac = function DateInputComponent_Factory(t) { return new (t || DateInputComponent)(); };
270
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DateInputComponent, selectors: [["cut-date-input"]], inputs: { id: "id", mandatory: "mandatory", isDateTime: "isDateTime", formControl: "formControl", isInvalid: "isInvalid" }, features: [i0.ɵɵProvidersFeature([
271
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DateInputComponent, selectors: [["cut-date-input"]], inputs: { id: "id", labelPrefix: "labelPrefix", mandatory: "mandatory", isDateTime: "isDateTime", formControl: "formControl", isInvalid: "isInvalid" }, features: [i0.ɵɵProvidersFeature([
271
272
  {
272
273
  provide: NG_VALUE_ACCESSOR,
273
274
  useExisting: forwardRef(() => DateInputComponent),
@@ -346,6 +347,8 @@ export class DateInputComponent {
346
347
  ], template: "<div class=\"form-date\">\n <div class=\"form-group form-group-day\">\n <label class=\"form-label\" [for]=\"dayId()\">{{'Day' | rpxTranslate}}</label>\n <input #dayInput\n class=\"form-control\"\n [id]=\"dayId()\"\n [name]=\"dayId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [value]=\"displayDay\"\n (change)=\"dayChange(dayInput.value)\"\n (keyup)=\"dayChange(dayInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-month\">\n <label class=\"form-label\" [for]=\"monthId()\">{{'Month' | rpxTranslate}}</label>\n <input #monthInput\n class=\"form-control\"\n [id]=\"monthId()\"\n [name]=\"monthId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [value]=\"displayMonth\"\n (change)=\"monthChange(monthInput.value)\"\n (keyup)=\"monthChange(monthInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-year\">\n <label class=\"form-label\" [for]=\"yearId()\">{{'Year' | rpxTranslate}}</label>\n <input #yearInput\n class=\"form-control\"\n [id]=\"yearId()\"\n [name]=\"yearId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [value]=\"displayYear\"\n (change)=\"yearChange(yearInput.value)\"\n (keyup)=\"yearChange(yearInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-hour\" *ngIf=\"isDateTime\">\n <label class=\"form-label\" [for]=\"hourId()\">{{'Hour' | rpxTranslate}}</label>\n <input #hourInput\n class=\"form-control\"\n [id]=\"hourId()\"\n [name]=\"hourId()\"\n type=\"number\"\n [value]=\"displayHour\"\n (input)=\"hourChange(hourInput.value)\"\n (keyup)=\"hourChange(hourInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-minute\" *ngIf=\"isDateTime\">\n <label class=\"form-label\" [for]=\"minuteId()\">{{'Minute' | rpxTranslate}}</label>\n <input #minuteInput\n class=\"form-control\"\n [id]=\"minuteId()\"\n [name]=\"minuteId()\"\n type=\"number\"\n [value]=\"displayMinute\"\n (input)=\"minuteChange(minuteInput.value)\"\n (keyup)=\"minuteChange(minuteInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-second\" *ngIf=\"isDateTime\">\n <label class=\"form-label\" [for]=\"secondId()\">{{'Second' | rpxTranslate}}</label>\n <input #secondInput\n class=\"form-control\"\n [id]=\"secondId()\"\n [name]=\"secondId()\"\n type=\"number\"\n [value]=\"displaySecond\"\n (input)=\"secondChange(secondInput.value)\"\n (keyup)=\"secondChange(secondInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n</div>\n" }]
347
348
  }], null, { id: [{
348
349
  type: Input
350
+ }], labelPrefix: [{
351
+ type: Input
349
352
  }], mandatory: [{
350
353
  type: Input
351
354
  }], isDateTime: [{
@@ -356,4 +359,4 @@ export class DateInputComponent {
356
359
  type: Input
357
360
  }] }); })();
358
361
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DateInputComponent, { className: "DateInputComponent", filePath: "lib/components/form/date-input/date-input.component.ts", lineNumber: 20 }); })();
359
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUF5QyxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUErQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0lDaUQvSSxBQURGLCtCQUEyRCxlQUNkO0lBQUEsWUFBeUI7O0lBQUEsaUJBQVE7SUFDNUUsb0NBU3FEO0lBRDlDLEFBREEsQUFEQSxzTkFBUyxxQ0FBMkIsS0FBQyx5TUFDNUIscUNBQTJCLEtBQUMsaUtBQzVCLG1CQUFZLEtBQUM7SUFFL0IsQUFWRSxpQkFTcUQsRUFDakQ7OztJQVhzQixjQUFnQjtJQUFoQixxQ0FBZ0I7SUFBQyxjQUF5QjtJQUF6QixrREFBeUI7SUFHN0QsZUFBZTtJQU9mLEFBSkEsQUFGQSxBQURBLG9DQUFlLHlCQUNFLDZCQUVJLHlEQUl3Qjs7OztJQUlwRCxBQURGLCtCQUE2RCxlQUNkO0lBQUEsWUFBMkI7O0lBQUEsaUJBQVE7SUFDaEYsb0NBU3FEO0lBRDlDLEFBREEsQUFEQSx3TkFBUyx5Q0FBK0IsS0FBQywyTUFDaEMseUNBQStCLEtBQUMsaUtBQ2hDLG1CQUFZLEtBQUM7SUFFL0IsQUFWRSxpQkFTcUQsRUFDakQ7OztJQVhzQixjQUFrQjtJQUFsQix1Q0FBa0I7SUFBQyxjQUEy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QUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWE7UUFDOUIsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDN0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWxCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDN0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWxCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQWE7UUFDL0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWpDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0QyxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQWE7UUFDL0IsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcs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QUFXO2tCQURqQixLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLOztrRkFiSyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1dC1kYXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtaW5wdXQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYW5kYXRvcnk6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzRGF0ZVRpbWU6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNJbnZhbGlkOiBib29sZWFuO1xuXG4gIHB1YmxpYyBpc1RvdWNoZWQgPSBmYWxzZTtcbiAgcHVibGljIGRpc3BsYXlEYXk6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBkaXNwbGF5TW9udGg6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBkaXNwbGF5WWVhcjogc3RyaW5nID0gbnVsbDtcblxuICBwdWJsaWMgZGlzcGxheUhvdXI6IHN0cmluZyA9IG51bGw7XG4gIHB1YmxpYyBkaXNwbGF5TWludXRlOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgZGlzcGxheVNlY29uZDogc3RyaW5nID0gbnVsbDtcbiAgLy8gV29ya3Mgd2l0aFxuICAvLyAyMDE4LTA0LTA5VDA4OjAyOjI3LjU0MlxuICAvLyAyMDE4LTA0LTA5VDA4OjAyOjI3LjU0MlpcbiAgLy8gMjAxOC0wNC0wOVQwODowMjoyNy41NDIrMDE6MDBcbiAgcHJpdmF0ZSByZWFkb25seSBEQVRFX0ZPUk1BVCA9XG4gICAgL14oMTl8MjApXFxkezJ9LT8oXFxkXFxkKS0/KFxcZFxcZCkoPzpUKFxcZFxcZCkoPzo6PyhcXGRcXGQpKD86Oj8oXFxkXFxkKSg/OlxcLihcXGQrKSk/KT8pPyhafChbKy1dKShcXGRcXGQpOj8oXFxkXFxkKSk/fFopPyQvO1xuICAvLyAgICB5ZWFyIC0gbW9udGggLSAgZGF5ICAgICBUICAgSEggICAgIDogICBNTSAgICAgIDogIFNTICAgICAgIC4wMDAgICAgICAgIFogb3IgKyAgICAgMDEgOiAgIDAwXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlOiAoXzogYW55KSA9PiB7fTtcbiAgcHJpdmF0ZSByYXdWYWx1ZSA9ICcnO1xuICBwcml2YXRlIGRheTogc3RyaW5nO1xuICBwcml2YXRlIG1vbnRoOiBzdHJpbmc7XG4gIHByaXZhdGUgeWVhcjogc3RyaW5nO1xuICBwcml2YXRlIGhvdXI6IHN0cmluZztcbiAgcHJpdmF0ZSBtaW51dGU6IHN0cmluZztcbiAgcHJpdmF0ZSBzZWNvbmQ6IHN0cmluZztcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMubWFuZGF0b3J5ICYmIHRoaXMuaXNEYXRlVGltZSkge1xuICAgICAgdGhpcy5kaXNwbGF5SG91ciA9ICcwMCc7XG4gICAgICB0aGlzLmRpc3BsYXlNaW51dGUgPSAnMDAnO1xuICAgICAgdGhpcy5kaXNwbGF5U2Vjb25kID0gJzAwJztcbiAgICAgIHRoaXMuaG91ciA9ICcwMCc7XG4gICAgICB0aGlzLm1pbnV0ZSA9ICcwMCc7XG4gICAgICB0aGlzLnNlY29uZCA9ICcwMCc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUob2JqOiBzdHJpbmcpOiB2b2lkIHsgLy8gMjAxOC0wNC0wOVQwODowMjoyNy41NDJcbiAgICBpZiAob2JqKSB7XG4gICAgICB0aGlzLnJhd1ZhbHVlID0gdGhpcy5yZW1vdmVNaWxsaXNlY29uZHMob2JqKTtcbiAgICAgIC8vIG5lZWRzIHRvIGhhbmRsZSBhbHNvIHBhcnRpYWwgZGF0ZXMsIGUuZy4gLTA1LTIwMTYgKG1pc3NpbmcgZGF5KVxuICAgICAgY29uc3QgW2RhdGVQYXJ0LCB0aW1lUGFydF0gPSB0aGlzLnJhd1ZhbHVlLnNwbGl0KCdUJyk7XG4gICAgICBjb25zdCBkYXRlVmFsdWVzID0gZGF0ZVBhcnQuc3BsaXQoJy0nKTtcbiAgICAgIHRoaXMueWVhciA9IHRoaXMuZGlzcGxheVllYXIgPSBkYXRlVmFsdWVzWzBdIHx8ICcnO1xuICAgICAgdGhpcy5tb250aCA9IHRoaXMuZGlzcGxheU1vbnRoID0gZGF0ZVZhbHVlc1sxXSB8fCAnJztcbiAgICAgIHRoaXMuZGF5ID0gdGhpcy5kaXNwbGF5RGF5ID0gZGF0ZVZhbHVlc1syXSB8fCAnJztcbiAgICAgIGlmICh0aW1lUGFydCkge1xuICAgICAgICBjb25zdCB0aW1lUGFydHMgPSB0aW1lUGFydC5zcGxpdCgnOicpO1xuICAgICAgICB0aGlzLmhvdXIgPSB0aGlzLmRpc3BsYXlIb3VyID0gdGltZVBhcnRzWzBdIHx8ICcnO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IHRoaXMuZGlzcGxheU1pbnV0ZSA9IHRpbWVQYXJ0c1sxXSB8fCAnJztcbiAgICAgICAgdGhpcy5zZWNvbmQgPSB0aGlzLmRpc3BsYXlTZWNvbmQgPSB0aW1lUGFydHNbMl0gfHwgJyc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGlmICh0aGlzLm1hbmRhdG9yeSAmJiAhdGhpcy52aWV3VmFsdWUoKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVxdWlyZWQ6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ1xuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgIXRoaXMuaXNEYXRlRm9ybWF0KHRoaXMuZ2V0VmFsdWVGb3JWYWxpZGF0aW9uKGNvbnRyb2wpKSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF0dGVybjogJ0RhdGUgaXMgbm90IHZhbGlkJ1xuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBEbyBub3RoaW5nLlxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudmFsaWRhdGUgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PiB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZGF5Q2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMuZGF5ID0gdmFsdWU7XG5cbiAgICB0aGlzLnJhd1ZhbHVlID0gdGhpcy52aWV3VmFsdWUoKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgZm9ybVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucmF3VmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG1vbnRoQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMubW9udGggPSB2YWx1ZTtcblxuICAgIHRoaXMucmF3VmFsdWUgPSB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG5cbiAgfVxuXG4gIHB1YmxpYyB5ZWFyQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMueWVhciA9IHZhbHVlO1xuXG4gICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMudmlld1ZhbHVlKCk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIGZvcm1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnJhd1ZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBob3VyQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMuaG91ciA9IHZhbHVlO1xuXG4gICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMudmlld1ZhbHVlKCk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIGZvcm1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnJhd1ZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBtaW51dGVDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIC8vIGdldCB2YWx1ZSBmcm9tIGlucHV0XG4gICAgdGhpcy5taW51dGUgPSB2YWx1ZTtcblxuICAgIHRoaXMucmF3VmFsdWUgPSB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBzZWNvbmRDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIC8vIGdldCB2YWx1ZSBmcm9tIGlucHV0XG4gICAgdGhpcy5zZWNvbmQgPSB2YWx1ZTtcblxuICAgIHRoaXMucmF3VmFsdWUgPSB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRGb2N1cygpIHtcbiAgICB0aGlzLmlzVG91Y2hlZCA9IGZhbHNlO1xuICAgIHRoaXMudG91Y2goKTtcbiAgfVxuXG4gIHB1YmxpYyB0b3VjaCgpIHtcbiAgICBpZiAodGhpcy5pc1RvdWNoZWQpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRheUlkKCkge1xuICAgIGNvbnN0IGlkU3RyaW5nID0gYCR7dGhpcy5pZH1gO1xuICAgIGlmIChpZFN0cmluZy5pbmNsdWRlcyhcIkRhdGVcIikpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmlkfS1kYXlgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5pZH1EYXRlLWRheWA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1vbnRoSWQoKSB7XG4gICAgY29uc3QgaWRTdHJpbmcgPSBgJHt0aGlzLmlkfWA7XG4gICAgaWYgKGlkU3RyaW5nLmluY2x1ZGVzKFwiRGF0ZVwiKSkge1xuICAgICAgcmV0dXJuIGAke3RoaXMuaWR9LW1vbnRoYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGAke3RoaXMuaWR9RGF0ZS1tb250aGA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHllYXJJZCgpIHtcbiAgICBjb25zdCBpZFN0cmluZyA9IGAke3RoaXMuaWR9YDtcbiAgICBpZiAoaWRTdHJpbmcuaW5jbHVkZXMoXCJEYXRlXCIpKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5pZH0teWVhcmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmlkfURhdGUteWVhcmA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvdXJJZCgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5pZH0taG91cmA7XG4gIH1cblxuICBwdWJsaWMgbWludXRlSWQoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuaWR9LW1pbnV0ZWA7XG4gIH1cblxuICBwdWJsaWMgc2Vjb25kSWQoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuaWR9LXNlY29uZGA7XG4gIH1cblxuICBwcml2YXRlIHZpZXdWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRheSB8fCB0aGlzLm1vbnRoIHx8IHRoaXMueWVhciB8fCB0aGlzLmhvdXIgfHwgdGhpcy5taW51dGUgfHwgdGhpcy5zZWNvbmQpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBbXG4gICAgICAgIHRoaXMueWVhciA/IHRoaXMueWVhciA6ICcnLFxuICAgICAgICB0aGlzLm1vbnRoID8gdGhpcy5wYWQodGhpcy5tb250aCkgOiAnJyxcbiAgICAgICAgdGhpcy5kYXkgPyB0aGlzLnBhZCh0aGlzLmRheSkgOiAnJ1xuICAgICAgXS5qb2luKCctJyk7XG4gICAgICBpZiAodGhpcy5pc0RhdGVUaW1lKSB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBbXG4gICAgICAgICAgdGhpcy5ob3VyID8gdGhpcy5wYWQodGhpcy5ob3VyKSA6ICcnLFxuICAgICAgICAgIHRoaXMubWludXRlID8gdGhpcy5wYWQodGhpcy5taW51dGUpIDogJycsXG4gICAgICAgICAgdGhpcy5zZWNvbmQgPyB0aGlzLnBhZCh0aGlzLnNlY29uZCkgOiAnJ1xuICAgICAgICBdLmpvaW4oJzonKTtcbiAgICAgICAgcmV0dXJuIGAke2RhdGV9VCR7dGltZX0uMDAwYDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaXNEYXRlRm9ybWF0KHZhbDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuREFURV9GT1JNQVQudGVzdCh2YWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYWQobnVtOiBhbnksIHBhZE51bSA9IDIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbCA9IG51bSAhPT0gdW5kZWZpbmVkID8gbnVtLnRvU3RyaW5nKCkgOiAnJztcbiAgICByZXR1cm4gdmFsLmxlbmd0aCA+PSBwYWROdW0gPyB2YWwgOiBuZXcgQXJyYXkocGFkTnVtIC0gdmFsLmxlbmd0aCArIDEpLmpvaW4oJzAnKSArIHZhbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVGb3JWYWxpZGF0aW9uKGNvbnRyb2w6IGFueSkge1xuICAgIGlmICh0aGlzLmlzRGF0ZVRpbWUpIHtcbiAgICAgIHJldHVybiBjb250cm9sLnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZS5yZXBsYWNlKC9aLiovLCAnVDAwOjAwOjAwWicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTWlsbGlzZWNvbmRzKGRhdGVUaW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlVGltZS5yZXBsYWNlKC9cXC4uKi8sICcnKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZGF0ZVwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLWRheVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBbZm9yXT1cImRheUlkKClcIj57eydEYXknIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxpbnB1dCAjZGF5SW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICBbaWRdPVwiZGF5SWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cImRheUlkKClcIlxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlEYXlcIlxuICAgICAgICAgICAoY2hhbmdlKT1cImRheUNoYW5nZShkYXlJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoa2V5dXApPVwiZGF5Q2hhbmdlKGRheUlucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzKClcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGlzSW52YWxpZH1cIj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1tb250aFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBbZm9yXT1cIm1vbnRoSWQoKVwiPnt7J01vbnRoJyB8IHJweFRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICA8aW5wdXQgI21vbnRoSW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICBbaWRdPVwibW9udGhJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwibW9udGhJZCgpXCJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgIFt2YWx1ZV09XCJkaXNwbGF5TW9udGhcIlxuICAgICAgICAgICAoY2hhbmdlKT1cIm1vbnRoQ2hhbmdlKG1vbnRoSW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGtleXVwKT1cIm1vbnRoQ2hhbmdlKG1vbnRoSW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGZvY3VzKT1cImlucHV0Rm9jdXMoKVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogaXNJbnZhbGlkfVwiPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLXllYXJcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2Zvcl09XCJ5ZWFySWQoKVwiPnt7J1llYXInIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxpbnB1dCAjeWVhcklucHV0XG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgW2lkXT1cInllYXJJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwieWVhcklkKClcIlxuICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMC05XSpcIlxuICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlZZWFyXCJcbiAgICAgICAgICAgKGNoYW5nZSk9XCJ5ZWFyQ2hhbmdlKHllYXJJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoa2V5dXApPVwieWVhckNoYW5nZSh5ZWFySW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGZvY3VzKT1cImlucHV0Rm9jdXMoKVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogaXNJbnZhbGlkfVwiPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLWhvdXJcIiAqbmdJZj1cImlzRGF0ZVRpbWVcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2Zvcl09XCJob3VySWQoKVwiPnt7J0hvdXInIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxpbnB1dCAjaG91cklucHV0XG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgW2lkXT1cImhvdXJJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwiaG91cklkKClcIlxuICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlIb3VyXCJcbiAgICAgICAgICAgKGlucHV0KT1cImhvdXJDaGFuZ2UoaG91cklucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChrZXl1cCk9XCJob3VyQ2hhbmdlKGhvdXJJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoZm9jdXMpPVwiaW5wdXRGb2N1cygpXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBpc0ludmFsaWR9XCI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZvcm0tZ3JvdXAtbWludXRlXCIgKm5nSWY9XCJpc0RhdGVUaW1lXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtmb3JdPVwibWludXRlSWQoKVwiPnt7J01pbnV0ZScgfCBycHhUcmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgPGlucHV0ICNtaW51dGVJbnB1dFxuICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgIFtpZF09XCJtaW51dGVJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwibWludXRlSWQoKVwiXG4gICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheU1pbnV0ZVwiXG4gICAgICAgICAgIChpbnB1dCk9XCJtaW51dGVDaGFuZ2UobWludXRlSW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGtleXVwKT1cIm1pbnV0ZUNoYW5nZShtaW51dGVJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoZm9jdXMpPVwiaW5wdXRGb2N1cygpXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBpc0ludmFsaWR9XCI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZvcm0tZ3JvdXAtc2Vjb25kXCIgKm5nSWY9XCJpc0RhdGVUaW1lXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtmb3JdPVwic2Vjb25kSWQoKVwiPnt7J1NlY29uZCcgfCBycHhUcmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgPGlucHV0ICNzZWNvbmRJbnB1dFxuICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgIFtpZF09XCJzZWNvbmRJZCgpXCJcbiAgICAgICAgICAgW25hbWVdPVwic2Vjb25kSWQoKVwiXG4gICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheVNlY29uZFwiXG4gICAgICAgICAgIChpbnB1dCk9XCJzZWNvbmRDaGFuZ2Uoc2Vjb25kSW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGtleXVwKT1cInNlY29uZENoYW5nZShzZWNvbmRJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoZm9jdXMpPVwiaW5wdXRGb2N1cygpXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBpc0ludmFsaWR9XCI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUF5QyxXQUFXLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUErQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0lDaUQvSSxBQURGLCtCQUEyRCxlQUNkO0lBQUEsWUFBeUI7O0lBQUEsaUJBQVE7SUFDNUUsb0NBU3FEO0lBRDlDLEFBREEsQUFEQSxzTkFBUyxxQ0FBMkIsS0FBQyx5TUFDNUIscUNBQTJCLEtBQUMsaUtBQzVCLG1CQUFZLEtBQUM7SUFFL0IsQUFWRSxpQkFTcUQsRUFDakQ7OztJQVhzQixjQUFnQjtJQUFoQixxQ0FBZ0I7SUFBQyxjQUF5QjtJQUF6QixrREFBeUI7SUFHN0QsZUFBZTtJQU9mLEFBSkEsQUFGQSxBQURBLG9DQUFlLHlCQUNFLDZCQUVJLHlEQUl3Qjs7OztJQUlwRCxBQURGLCtCQUE2RCxlQUNkO0lBQUEsWUFBMkI7O0lBQUEsaUJBQVE7SUFDaEYsb0NBU3FEO0lBRDlDLEFBREEsQUFEQSx3TkFBUyx5Q0FBK0IsS0FBQywyTUFDaEMseUNBQStCLEtBQUMsaUtBQ2hDLG1CQUFZLEtBQUM7SUFFL0IsQUFWRSxpQkFTcUQsRUFDakQ7OztJQVhzQixjQUFrQjtJQUFsQix1Q0FBa0I7SUFBQyxjQUEyQjtJQUEzQixvREFBMkI7SUFHakUsZUFBaUI7SUFPakIsQUFKQSxBQUZBLEFBREEsc0NBQWlCLDJCQUNFLCtCQUVJLHlEQUlzQjs7OztJQUlwRCxBQURGLCtCQUE2RCxlQUNkO0lBQUEsWUFBMkI7O0lBQUEsaUJBQVE7SUFDaEYsb0NBU3FEO0lBRDlDLEFBREEsQUFEQSwwTkFBUywwQ0FBK0IsS0FBQyw2TUFDaEMsMENBQStCLEtBQUMsa0tBQ2hDLG1CQUFZLEtBQUM7SUFFL0IsQUFWRSxpQkFTcUQsRUFDakQ7OztJQVhzQixjQUFrQjtJQUFsQix1Q0FBa0I7SUFBQyxjQUEyQjtJQUEzQixvREFBMkI7SUFHakUsZUFBaUI7SUFPakIsQUFKQSxBQUZBLEFBREEsc0NBQWlCLDJCQUNFLCtCQUVJLHlEQUlzQjs7QURyRXhELE1BQU0sT0FBTyxrQkFBa0I7SUFFdEIsRUFBRSxDQUFTO0lBR1gsV0FBVyxDQUFTO0lBR3BCLFNBQVMsQ0FBVTtJQUduQixVQUFVLENBQVU7SUFHcEIsV0FBVyxDQUFjO0lBR3pCLFNBQVMsQ0FBVTtJQUVuQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLFVBQVUsR0FBVyxJQUFJLENBQUM7SUFDMUIsWUFBWSxHQUFXLElBQUksQ0FBQztJQUM1QixXQUFXLEdBQVcsSUFBSSxDQUFDO0lBRTNCLFdBQVcsR0FBVyxJQUFJLENBQUM7SUFDM0IsYUFBYSxHQUFXLElBQUksQ0FBQztJQUM3QixhQUFhLEdBQVcsSUFBSSxDQUFDO0lBQ3BDLGFBQWE7SUFDYiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLGdDQUFnQztJQUNmLFdBQVcsR0FDMUIsNkdBQTZHLENBQUM7SUFDaEgsaUdBQWlHO0lBQ3pGLGVBQWUsQ0FBaUI7SUFDaEMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNkLEdBQUcsQ0FBUztJQUNaLEtBQUssQ0FBUztJQUNkLElBQUksQ0FBUztJQUNiLElBQUksQ0FBUztJQUNiLE1BQU0sQ0FBUztJQUNmLE1BQU0sQ0FBUztJQUVoQixRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxrRUFBa0U7WUFDbEUsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0RCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pELElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsT0FBd0I7UUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDeEMsT0FBTztnQkFDTCxRQUFRLEVBQUUsd0JBQXdCO2FBQ25DLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdFLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLG1CQUFtQjthQUM3QixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFPO1FBQzlCLGNBQWM7SUFDaEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLE9BQXdCLEVBQW9CLEVBQUU7WUFDN0QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFhO1FBQzVCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQyxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFhO1FBQzlCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQyxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFhO1FBQzdCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQyxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFhO1FBQzdCLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQyxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFhO1FBQy9CLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQyxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFdEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFhO1FBQy9CLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVqQyxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSztRQUNWLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzlCLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLFVBQVUsQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLE9BQU87UUFDWixNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM5QixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM5QixPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDL0MsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxZQUFZLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNO1FBQ1gsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDOUIsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDOUIsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDO1FBQzlDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEVBQUUsV0FBVyxDQUFDO1FBQ2xELENBQUM7SUFDSCxDQUFDO0lBRU0sTUFBTTtRQUNYLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRU8sU0FBUztRQUNmLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuRixNQUFNLElBQUksR0FBRztnQkFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7YUFDbkMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDWixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDcEIsTUFBTSxJQUFJLEdBQUc7b0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtpQkFDekMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ1osT0FBTyxHQUFHLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQztZQUMvQixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFRO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLEdBQUcsQ0FBQyxHQUFRLEVBQUUsTUFBTSxHQUFHLENBQUM7UUFDOUIsTUFBTSxHQUFHLEdBQUcsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEQsT0FBTyxHQUFHLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3pGLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxPQUFZO1FBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsUUFBZ0I7UUFDekMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDOzRFQS9QVSxrQkFBa0I7NkRBQWxCLGtCQUFrQiw0TkFibEI7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDakQsS0FBSyxFQUFFLElBQUk7aUJBQ1o7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGFBQWE7b0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQ2pELEtBQUssRUFBRSxJQUFJO2lCQUNaO2FBQ0Y7O1lDZkMsQUFERixBQURGLDhCQUF1QixhQUNrQixlQUNLO1lBQUEsWUFBd0I7O1lBQUEsaUJBQVE7WUFDMUUsbUNBV3FEO1lBRDlDLEFBREEsQUFEQSw2S0FBVSxnQ0FBeUIsS0FBQyw4SkFDM0IsZ0NBQXlCLEtBQUMsdUhBQzFCLGdCQUFZLEtBQUM7WUFFL0IsQUFaRSxpQkFXcUQsRUFDakQ7WUFHSixBQURGLCtCQUF5QyxlQUNLO1lBQUEsWUFBMEI7O1lBQUEsaUJBQVE7WUFDOUUsb0NBV3FEO1lBRDlDLEFBREEsQUFEQSxpTEFBVSxvQ0FBNkIsS0FBQyxrS0FDL0Isb0NBQTZCLEtBQUMsd0hBQzlCLGdCQUFZLEtBQUM7WUFFL0IsQUFaRSxpQkFXcUQsRUFDakQ7WUFHSixBQURGLGdDQUF3QyxnQkFDSztZQUFBLGFBQXlCOztZQUFBLGlCQUFRO1lBQzVFLG9DQVdxRDtZQUQ5QyxBQURBLEFBREEsZ0xBQVUsa0NBQTJCLEtBQUMsaUtBQzdCLGtDQUEyQixLQUFDLHdIQUM1QixnQkFBWSxLQUFDO1lBRS9CLEFBWkUsaUJBV3FELEVBQ2pEO1lBOEJOLEFBZEEsQUFkQSx1RUFBMkQsMERBY0UsMERBY0E7WUFhL0QsaUJBQU07O1lBeEZ3QixlQUFlO1lBQWYsaUNBQWU7WUFBQyxjQUF3QjtZQUF4QixrREFBd0I7WUFHM0QsZUFBYztZQVNkLEFBSkEsQUFKQSxBQURBLGdDQUFjLHFCQUNFLHlCQUlJLHVEQUl5QjtZQUkxQixlQUFpQjtZQUFqQixtQ0FBaUI7WUFBQyxjQUEwQjtZQUExQixxREFBMEI7WUFHL0QsZUFBZ0I7WUFTaEIsQUFKQSxBQUpBLEFBREEsa0NBQWdCLHVCQUNFLDJCQUlJLHVEQUl1QjtZQUkxQixlQUFnQjtZQUFoQixrQ0FBZ0I7WUFBQyxjQUF5QjtZQUF6QixvREFBeUI7WUFHN0QsZUFBZTtZQVNmLEFBSkEsQUFKQSxBQURBLGlDQUFlLHNCQUNFLDBCQUlJLHVEQUl3QjtZQUdiLGVBQWdCO1lBQWhCLHFDQUFnQjtZQWNkLGNBQWdCO1lBQWhCLHFDQUFnQjtZQWNoQixjQUFnQjtZQUFoQixxQ0FBZ0I7OztpRkQxRGhELGtCQUFrQjtjQWhCOUIsU0FBUzsyQkFDRSxnQkFBZ0IsYUFFZjtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzt3QkFDakQsS0FBSyxFQUFFLElBQUk7cUJBQ1o7b0JBQ0Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3dCQUNqRCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjtnQkFJTSxFQUFFO2tCQURSLEtBQUs7WUFJQyxXQUFXO2tCQURqQixLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsVUFBVTtrQkFEaEIsS0FBSztZQUlDLFdBQVc7a0JBRGpCLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7O2tGQWhCSyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1dC1kYXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtaW5wdXQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIFxuICBwdWJsaWMgbGFiZWxQcmVmaXg6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWFuZGF0b3J5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc0RhdGVUaW1lOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlzSW52YWxpZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNUb3VjaGVkID0gZmFsc2U7XG4gIHB1YmxpYyBkaXNwbGF5RGF5OiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgZGlzcGxheU1vbnRoOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgZGlzcGxheVllYXI6IHN0cmluZyA9IG51bGw7XG5cbiAgcHVibGljIGRpc3BsYXlIb3VyOiBzdHJpbmcgPSBudWxsO1xuICBwdWJsaWMgZGlzcGxheU1pbnV0ZTogc3RyaW5nID0gbnVsbDtcbiAgcHVibGljIGRpc3BsYXlTZWNvbmQ6IHN0cmluZyA9IG51bGw7XG4gIC8vIFdvcmtzIHdpdGhcbiAgLy8gMjAxOC0wNC0wOVQwODowMjoyNy41NDJcbiAgLy8gMjAxOC0wNC0wOVQwODowMjoyNy41NDJaXG4gIC8vIDIwMTgtMDQtMDlUMDg6MDI6MjcuNTQyKzAxOjAwXG4gIHByaXZhdGUgcmVhZG9ubHkgREFURV9GT1JNQVQgPVxuICAgIC9eKDE5fDIwKVxcZHsyfS0/KFxcZFxcZCktPyhcXGRcXGQpKD86VChcXGRcXGQpKD86Oj8oXFxkXFxkKSg/Ojo/KFxcZFxcZCkoPzpcXC4oXFxkKykpPyk/KT8oWnwoWystXSkoXFxkXFxkKTo/KFxcZFxcZCkpP3xaKT8kLztcbiAgLy8gICAgeWVhciAtIG1vbnRoIC0gIGRheSAgICAgVCAgIEhIICAgICA6ICAgTU0gICAgICA6ICBTUyAgICAgICAuMDAwICAgICAgICBaIG9yICsgICAgIDAxIDogICAwMFxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZTogKF86IGFueSkgPT4ge307XG4gIHByaXZhdGUgcmF3VmFsdWUgPSAnJztcbiAgcHJpdmF0ZSBkYXk6IHN0cmluZztcbiAgcHJpdmF0ZSBtb250aDogc3RyaW5nO1xuICBwcml2YXRlIHllYXI6IHN0cmluZztcbiAgcHJpdmF0ZSBob3VyOiBzdHJpbmc7XG4gIHByaXZhdGUgbWludXRlOiBzdHJpbmc7XG4gIHByaXZhdGUgc2Vjb25kOiBzdHJpbmc7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLm1hbmRhdG9yeSAmJiB0aGlzLmlzRGF0ZVRpbWUpIHtcbiAgICAgIHRoaXMuZGlzcGxheUhvdXIgPSAnMDAnO1xuICAgICAgdGhpcy5kaXNwbGF5TWludXRlID0gJzAwJztcbiAgICAgIHRoaXMuZGlzcGxheVNlY29uZCA9ICcwMCc7XG4gICAgICB0aGlzLmhvdXIgPSAnMDAnO1xuICAgICAgdGhpcy5taW51dGUgPSAnMDAnO1xuICAgICAgdGhpcy5zZWNvbmQgPSAnMDAnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKG9iajogc3RyaW5nKTogdm9pZCB7IC8vIDIwMTgtMDQtMDlUMDg6MDI6MjcuNTQyXG4gICAgaWYgKG9iaikge1xuICAgICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMucmVtb3ZlTWlsbGlzZWNvbmRzKG9iaik7XG4gICAgICAvLyBuZWVkcyB0byBoYW5kbGUgYWxzbyBwYXJ0aWFsIGRhdGVzLCBlLmcuIC0wNS0yMDE2IChtaXNzaW5nIGRheSlcbiAgICAgIGNvbnN0IFtkYXRlUGFydCwgdGltZVBhcnRdID0gdGhpcy5yYXdWYWx1ZS5zcGxpdCgnVCcpO1xuICAgICAgY29uc3QgZGF0ZVZhbHVlcyA9IGRhdGVQYXJ0LnNwbGl0KCctJyk7XG4gICAgICB0aGlzLnllYXIgPSB0aGlzLmRpc3BsYXlZZWFyID0gZGF0ZVZhbHVlc1swXSB8fCAnJztcbiAgICAgIHRoaXMubW9udGggPSB0aGlzLmRpc3BsYXlNb250aCA9IGRhdGVWYWx1ZXNbMV0gfHwgJyc7XG4gICAgICB0aGlzLmRheSA9IHRoaXMuZGlzcGxheURheSA9IGRhdGVWYWx1ZXNbMl0gfHwgJyc7XG4gICAgICBpZiAodGltZVBhcnQpIHtcbiAgICAgICAgY29uc3QgdGltZVBhcnRzID0gdGltZVBhcnQuc3BsaXQoJzonKTtcbiAgICAgICAgdGhpcy5ob3VyID0gdGhpcy5kaXNwbGF5SG91ciA9IHRpbWVQYXJ0c1swXSB8fCAnJztcbiAgICAgICAgdGhpcy5taW51dGUgPSB0aGlzLmRpc3BsYXlNaW51dGUgPSB0aW1lUGFydHNbMV0gfHwgJyc7XG4gICAgICAgIHRoaXMuc2Vjb25kID0gdGhpcy5kaXNwbGF5U2Vjb25kID0gdGltZVBhcnRzWzJdIHx8ICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICBpZiAodGhpcy5tYW5kYXRvcnkgJiYgIXRoaXMudmlld1ZhbHVlKCkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCdcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChjb250cm9sLnZhbHVlICYmICF0aGlzLmlzRGF0ZUZvcm1hdCh0aGlzLmdldFZhbHVlRm9yVmFsaWRhdGlvbihjb250cm9sKSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdHRlcm46ICdEYXRlIGlzIG5vdCB2YWxpZCdcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgLy8gRG8gbm90aGluZy5cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnZhbGlkYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgPT4ge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGRheUNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gZ2V0IHZhbHVlIGZyb20gaW5wdXRcbiAgICB0aGlzLmRheSA9IHZhbHVlO1xuXG4gICAgdGhpcy5yYXdWYWx1ZSA9IHRoaXMudmlld1ZhbHVlKCk7XG5cbiAgICAvLyB1cGRhdGUgdGhlIGZvcm1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnJhd1ZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBtb250aENoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gZ2V0IHZhbHVlIGZyb20gaW5wdXRcbiAgICB0aGlzLm1vbnRoID0gdmFsdWU7XG5cbiAgICB0aGlzLnJhd1ZhbHVlID0gdGhpcy52aWV3VmFsdWUoKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgZm9ybVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucmF3VmFsdWUpO1xuXG4gIH1cblxuICBwdWJsaWMgeWVhckNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gZ2V0IHZhbHVlIGZyb20gaW5wdXRcbiAgICB0aGlzLnllYXIgPSB2YWx1ZTtcblxuICAgIHRoaXMucmF3VmFsdWUgPSB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgaG91ckNoYW5nZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gZ2V0IHZhbHVlIGZyb20gaW5wdXRcbiAgICB0aGlzLmhvdXIgPSB2YWx1ZTtcblxuICAgIHRoaXMucmF3VmFsdWUgPSB0aGlzLnZpZXdWYWx1ZSgpO1xuXG4gICAgLy8gdXBkYXRlIHRoZSBmb3JtXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5yYXdWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgbWludXRlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMubWludXRlID0gdmFsdWU7XG5cbiAgICB0aGlzLnJhd1ZhbHVlID0gdGhpcy52aWV3VmFsdWUoKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgZm9ybVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucmF3VmFsdWUpO1xuXG4gIH1cblxuICBwdWJsaWMgc2Vjb25kQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBnZXQgdmFsdWUgZnJvbSBpbnB1dFxuICAgIHRoaXMuc2Vjb25kID0gdmFsdWU7XG5cbiAgICB0aGlzLnJhd1ZhbHVlID0gdGhpcy52aWV3VmFsdWUoKTtcblxuICAgIC8vIHVwZGF0ZSB0aGUgZm9ybVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucmF3VmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGlucHV0Rm9jdXMoKSB7XG4gICAgdGhpcy5pc1RvdWNoZWQgPSBmYWxzZTtcbiAgICB0aGlzLnRvdWNoKCk7XG4gIH1cblxuICBwdWJsaWMgdG91Y2goKSB7XG4gICAgaWYgKHRoaXMuaXNUb3VjaGVkKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMucmF3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkYXlJZCgpIHtcbiAgICBjb25zdCBpZFN0cmluZyA9IGAke3RoaXMuaWR9YDtcbiAgICBpZiAoaWRTdHJpbmcuaW5jbHVkZXMoXCJEYXRlXCIpKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5sYWJlbFByZWZpeCArIHRoaXMuaWR9LWRheWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmxhYmVsUHJlZml4ICsgdGhpcy5pZH1EYXRlLWRheWA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG1vbnRoSWQoKSB7XG4gICAgY29uc3QgaWRTdHJpbmcgPSBgJHt0aGlzLmlkfWA7XG4gICAgaWYgKGlkU3RyaW5nLmluY2x1ZGVzKFwiRGF0ZVwiKSkge1xuICAgICAgcmV0dXJuIGAke3RoaXMubGFiZWxQcmVmaXggKyB0aGlzLmlkfS1tb250aGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmxhYmVsUHJlZml4ICsgdGhpcy5pZH1EYXRlLW1vbnRoYDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgeWVhcklkKCkge1xuICAgIGNvbnN0IGlkU3RyaW5nID0gYCR7dGhpcy5pZH1gO1xuICAgIGlmIChpZFN0cmluZy5pbmNsdWRlcyhcIkRhdGVcIikpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmxhYmVsUHJlZml4ICsgdGhpcy5pZH0teWVhcmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLmxhYmVsUHJlZml4ICsgdGhpcy5pZH1EYXRlLXllYXJgO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBob3VySWQoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuaWR9LWhvdXJgO1xuICB9XG5cbiAgcHVibGljIG1pbnV0ZUlkKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmlkfS1taW51dGVgO1xuICB9XG5cbiAgcHVibGljIHNlY29uZElkKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmlkfS1zZWNvbmRgO1xuICB9XG5cbiAgcHJpdmF0ZSB2aWV3VmFsdWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kYXkgfHwgdGhpcy5tb250aCB8fCB0aGlzLnllYXIgfHwgdGhpcy5ob3VyIHx8IHRoaXMubWludXRlIHx8IHRoaXMuc2Vjb25kKSB7XG4gICAgICBjb25zdCBkYXRlID0gW1xuICAgICAgICB0aGlzLnllYXIgPyB0aGlzLnllYXIgOiAnJyxcbiAgICAgICAgdGhpcy5tb250aCA/IHRoaXMucGFkKHRoaXMubW9udGgpIDogJycsXG4gICAgICAgIHRoaXMuZGF5ID8gdGhpcy5wYWQodGhpcy5kYXkpIDogJydcbiAgICAgIF0uam9pbignLScpO1xuICAgICAgaWYgKHRoaXMuaXNEYXRlVGltZSkge1xuICAgICAgICBjb25zdCB0aW1lID0gW1xuICAgICAgICAgIHRoaXMuaG91ciA/IHRoaXMucGFkKHRoaXMuaG91cikgOiAnJyxcbiAgICAgICAgICB0aGlzLm1pbnV0ZSA/IHRoaXMucGFkKHRoaXMubWludXRlKSA6ICcnLFxuICAgICAgICAgIHRoaXMuc2Vjb25kID8gdGhpcy5wYWQodGhpcy5zZWNvbmQpIDogJydcbiAgICAgICAgXS5qb2luKCc6Jyk7XG4gICAgICAgIHJldHVybiBgJHtkYXRlfVQke3RpbWV9LjAwMGA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGlzRGF0ZUZvcm1hdCh2YWw6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLkRBVEVfRk9STUFULnRlc3QodmFsKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFkKG51bTogYW55LCBwYWROdW0gPSAyKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWwgPSBudW0gIT09IHVuZGVmaW5lZCA/IG51bS50b1N0cmluZygpIDogJyc7XG4gICAgcmV0dXJuIHZhbC5sZW5ndGggPj0gcGFkTnVtID8gdmFsIDogbmV3IEFycmF5KHBhZE51bSAtIHZhbC5sZW5ndGggKyAxKS5qb2luKCcwJykgKyB2YWw7XG4gIH1cblxuICBwcml2YXRlIGdldFZhbHVlRm9yVmFsaWRhdGlvbihjb250cm9sOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0RhdGVUaW1lKSB7XG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbnRyb2wudmFsdWUucmVwbGFjZSgvWi4qLywgJ1QwMDowMDowMFonKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZU1pbGxpc2Vjb25kcyhkYXRlVGltZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZVRpbWUucmVwbGFjZSgvXFwuLiovLCAnJyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWRhdGVcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1kYXlcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2Zvcl09XCJkYXlJZCgpXCI+e3snRGF5JyB8IHJweFRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICA8aW5wdXQgI2RheUlucHV0XG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgW2lkXT1cImRheUlkKClcIlxuICAgICAgICAgICBbbmFtZV09XCJkYXlJZCgpXCJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgIFt2YWx1ZV09XCJkaXNwbGF5RGF5XCJcbiAgICAgICAgICAgKGNoYW5nZSk9XCJkYXlDaGFuZ2UoZGF5SW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGtleXVwKT1cImRheUNoYW5nZShkYXlJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoZm9jdXMpPVwiaW5wdXRGb2N1cygpXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydnb3Z1ay1pbnB1dC0tZXJyb3InOiBpc0ludmFsaWR9XCI+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZvcm0tZ3JvdXAtbW9udGhcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW2Zvcl09XCJtb250aElkKClcIj57eydNb250aCcgfCBycHhUcmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgPGlucHV0ICNtb250aElucHV0XG4gICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgW2lkXT1cIm1vbnRoSWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cIm1vbnRoSWQoKVwiXG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgcGF0dGVybj1cIlswLTldKlwiXG4gICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICBbdmFsdWVdPVwiZGlzcGxheU1vbnRoXCJcbiAgICAgICAgICAgKGNoYW5nZSk9XCJtb250aENoYW5nZShtb250aElucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChrZXl1cCk9XCJtb250aENoYW5nZShtb250aElucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzKClcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGlzSW52YWxpZH1cIj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC15ZWFyXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtmb3JdPVwieWVhcklkKClcIj57eydZZWFyJyB8IHJweFRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICA8aW5wdXQgI3llYXJJbnB1dFxuICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgIFtpZF09XCJ5ZWFySWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cInllYXJJZCgpXCJcbiAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBwYXR0ZXJuPVwiWzAtOV0qXCJcbiAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgIFt2YWx1ZV09XCJkaXNwbGF5WWVhclwiXG4gICAgICAgICAgIChjaGFuZ2UpPVwieWVhckNoYW5nZSh5ZWFySW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGtleXVwKT1cInllYXJDaGFuZ2UoeWVhcklucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzKClcIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWlucHV0LS1lcnJvcic6IGlzSW52YWxpZH1cIj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1ob3VyXCIgKm5nSWY9XCJpc0RhdGVUaW1lXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtmb3JdPVwiaG91cklkKClcIj57eydIb3VyJyB8IHJweFRyYW5zbGF0ZX19PC9sYWJlbD5cbiAgICA8aW5wdXQgI2hvdXJJbnB1dFxuICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgIFtpZF09XCJob3VySWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cImhvdXJJZCgpXCJcbiAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgIFt2YWx1ZV09XCJkaXNwbGF5SG91clwiXG4gICAgICAgICAgIChpbnB1dCk9XCJob3VyQ2hhbmdlKGhvdXJJbnB1dC52YWx1ZSlcIlxuICAgICAgICAgICAoa2V5dXApPVwiaG91ckNoYW5nZShob3VySW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGZvY3VzKT1cImlucHV0Rm9jdXMoKVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogaXNJbnZhbGlkfVwiPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLW1pbnV0ZVwiICpuZ0lmPVwiaXNEYXRlVGltZVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBbZm9yXT1cIm1pbnV0ZUlkKClcIj57eydNaW51dGUnIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxpbnB1dCAjbWludXRlSW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICBbaWRdPVwibWludXRlSWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cIm1pbnV0ZUlkKClcIlxuICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlNaW51dGVcIlxuICAgICAgICAgICAoaW5wdXQpPVwibWludXRlQ2hhbmdlKG1pbnV0ZUlucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChrZXl1cCk9XCJtaW51dGVDaGFuZ2UobWludXRlSW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGZvY3VzKT1cImlucHV0Rm9jdXMoKVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogaXNJbnZhbGlkfVwiPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLXNlY29uZFwiICpuZ0lmPVwiaXNEYXRlVGltZVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBbZm9yXT1cInNlY29uZElkKClcIj57eydTZWNvbmQnIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxpbnB1dCAjc2Vjb25kSW5wdXRcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICBbaWRdPVwic2Vjb25kSWQoKVwiXG4gICAgICAgICAgIFtuYW1lXT1cInNlY29uZElkKClcIlxuICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlTZWNvbmRcIlxuICAgICAgICAgICAoaW5wdXQpPVwic2Vjb25kQ2hhbmdlKHNlY29uZElucHV0LnZhbHVlKVwiXG4gICAgICAgICAgIChrZXl1cCk9XCJzZWNvbmRDaGFuZ2Uoc2Vjb25kSW5wdXQudmFsdWUpXCJcbiAgICAgICAgICAgKGZvY3VzKT1cImlucHV0Rm9jdXMoKVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZ292dWstaW5wdXQtLWVycm9yJzogaXNJbnZhbGlkfVwiPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -45,11 +45,14 @@ export class WriteDateFieldComponent extends AbstractFieldWriteComponent {
45
45
  ngOnInit() {
46
46
  this.dateControl = this.registerControl(new FormControl(this.caseField.value));
47
47
  }
48
+ getCaseFieldLabel() {
49
+ return this.caseField.label;
50
+ }
48
51
  isDateTime() {
49
52
  return this.caseField.field_type.id === 'DateTime';
50
53
  }
51
54
  static ɵfac = /*@__PURE__*/ (() => { let ɵWriteDateFieldComponent_BaseFactory; return function WriteDateFieldComponent_Factory(t) { return (ɵWriteDateFieldComponent_BaseFactory || (ɵWriteDateFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(WriteDateFieldComponent)))(t || WriteDateFieldComponent); }; })();
52
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDateFieldComponent, selectors: [["ccd-write-date-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 14, consts: [[1, "form-group", "bottom-30", 3, "id", "ngClass"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [3, "id", "isDateTime", "mandatory", "isInvalid", "formControl"], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function WriteDateFieldComponent_Template(rf, ctx) { if (rf & 1) {
55
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDateFieldComponent, selectors: [["ccd-write-date-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 15, consts: [[1, "form-group", "bottom-30", 3, "id", "ngClass"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [3, "id", "labelPrefix", "isDateTime", "mandatory", "isInvalid", "formControl"], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function WriteDateFieldComponent_Template(rf, ctx) { if (rf & 1) {
53
56
  i0.ɵɵelementStart(0, "div", 0)(1, "fieldset")(2, "legend");
54
57
  i0.ɵɵtemplate(3, WriteDateFieldComponent_span_3_Template, 3, 3, "span", 1);
55
58
  i0.ɵɵelementEnd();
@@ -58,7 +61,7 @@ export class WriteDateFieldComponent extends AbstractFieldWriteComponent {
58
61
  i0.ɵɵpipe(7, "ccdIsMandatory");
59
62
  i0.ɵɵelementEnd()();
60
63
  } if (rf & 2) {
61
- i0.ɵɵproperty("id", ctx.id())("ngClass", i0.ɵɵpureFunction1(12, _c0, ctx.dateControl && !ctx.dateControl.valid && (ctx.dateControl.dirty || ctx.dateControl.touched)));
64
+ i0.ɵɵproperty("id", ctx.id())("ngClass", i0.ɵɵpureFunction1(13, _c0, ctx.dateControl && !ctx.dateControl.valid && (ctx.dateControl.dirty || ctx.dateControl.touched)));
62
65
  i0.ɵɵadvance(3);
63
66
  i0.ɵɵproperty("ngIf", ctx.caseField.label);
64
67
  i0.ɵɵadvance();
@@ -66,12 +69,12 @@ export class WriteDateFieldComponent extends AbstractFieldWriteComponent {
66
69
  i0.ɵɵadvance();
67
70
  i0.ɵɵproperty("ngIf", ctx.dateControl && ctx.dateControl.errors && (ctx.dateControl.dirty || ctx.dateControl.touched));
68
71
  i0.ɵɵadvance();
69
- i0.ɵɵproperty("id", ctx.id())("isDateTime", ctx.isDateTime())("mandatory", i0.ɵɵpipeBind1(7, 10, ctx.caseField))("isInvalid", ctx.dateControl.errors && (ctx.dateControl.dirty || ctx.dateControl.touched))("formControl", ctx.dateControl);
72
+ i0.ɵɵproperty("id", ctx.id())("labelPrefix", ctx.getCaseFieldLabel())("isDateTime", ctx.isDateTime())("mandatory", i0.ɵɵpipeBind1(7, 11, ctx.caseField))("isInvalid", ctx.dateControl.errors && (ctx.dateControl.dirty || ctx.dateControl.touched))("formControl", ctx.dateControl);
70
73
  } }, dependencies: [i1.NgClass, i1.NgIf, i2.NgControlStatus, i2.FormControlDirective, i3.DateInputComponent, i4.FieldLabelPipe, i5.FirstErrorPipe, i6.IsMandatoryPipe, i7.RpxTranslatePipe], encapsulation: 2 });
71
74
  }
72
75
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteDateFieldComponent, [{
73
76
  type: Component,
74
- args: [{ selector: 'ccd-write-date-field', template: "<div class=\"form-group bottom-30\" [id]=\"id()\" [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && (dateControl.dirty || dateControl.touched)}\">\n\n <fieldset>\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n </legend>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"dateControl && dateControl.errors && (dateControl.dirty || dateControl.touched)\">\n {{(dateControl.errors | ccdFirstError:caseField.label)}}\n </span>\n <cut-date-input [id]=\"id()\"\n [isDateTime]=\"isDateTime()\"\n [mandatory]=\"caseField | ccdIsMandatory\"\n [isInvalid]=\"dateControl.errors && (dateControl.dirty || dateControl.touched)\"\n [formControl]=\"dateControl\"></cut-date-input>\n\n </fieldset>\n</div>\n" }]
77
+ args: [{ selector: 'ccd-write-date-field', template: "<div class=\"form-group bottom-30\" [id]=\"id()\" [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && (dateControl.dirty || dateControl.touched)}\">\n\n <fieldset>\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n </legend>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"dateControl && dateControl.errors && (dateControl.dirty || dateControl.touched)\">\n {{(dateControl.errors | ccdFirstError:caseField.label)}}\n </span>\n <cut-date-input [id]=\"id()\"\n [labelPrefix]=\"getCaseFieldLabel()\"\n [isDateTime]=\"isDateTime()\"\n [mandatory]=\"caseField | ccdIsMandatory\"\n [isInvalid]=\"dateControl.errors && (dateControl.dirty || dateControl.touched)\"\n [formControl]=\"dateControl\"></cut-date-input>\n\n </fieldset>\n</div>\n" }]
75
78
  }], null, null); })();
76
79
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteDateFieldComponent, { className: "WriteDateFieldComponent", filePath: "lib/shared/components/palette/date/write-date-field.component.ts", lineNumber: 9 }); })();
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZGF0ZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9kYXRlL3dyaXRlLWRhdGUtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZGF0ZS93cml0ZS1kYXRlLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7Ozs7O0lDRXJGLCtCQUFpRDtJQUFBLFlBQStCOztJQUFBLGlCQUFPOzs7SUFBdEMsY0FBK0I7SUFBL0IsNERBQStCOzs7SUFFbEYsK0JBQW9EO0lBQUEsWUFBc0M7O0lBQUEsaUJBQU87OztJQUE3QyxjQUFzQztJQUF0QyxzRUFBc0M7OztJQUMxRiwrQkFBb0g7SUFDbEgsWUFDRjs7SUFBQSxpQkFBTzs7O0lBREwsY0FDRjtJQURFLHdHQUNGOztBRERKLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwyQkFBMkI7SUFDL0QsV0FBVyxDQUFjO0lBRXpCLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztJQUNoRyxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQztJQUNyRCxDQUFDO3lQQVRVLHVCQUF1QixTQUF2Qix1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ0xoQyxBQURGLEFBRkYsOEJBQWdLLGVBRXBKLGFBQ0E7WUFDTiwwRUFBaUQ7WUFDbkQsaUJBQVM7WUFFVCxBQURBLDBFQUFvRCw2REFDZ0U7WUFHcEgsb0NBSTZEOztZQUdqRSxBQURFLGlCQUFXLEVBQ1A7O1lBakJ3QyxBQUFaLDZCQUFXLHlJQUFrSDtZQUkvSCxlQUFxQjtZQUFyQiwwQ0FBcUI7WUFFeEIsY0FBeUI7WUFBekIsOENBQXlCO1lBQ3JCLGNBQXFGO1lBQXJGLHNIQUFxRjtZQUdsRyxjQUFXO1lBSVgsQUFEQSxBQURBLEFBREEsQUFEQSw2QkFBVyxnQ0FDZ0IsbURBQ2EsMkZBQ3NDLGdDQUNuRDs7O2lGRE5sQyx1QkFBdUI7Y0FKbkMsU0FBUzsyQkFDRSxzQkFBc0I7O2tGQUdyQix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1kYXRlLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWRhdGUtZmllbGQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVEYXRlRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZGF0ZUNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRhdGVDb250cm9sID0gdGhpcy5yZWdpc3RlckNvbnRyb2wobmV3IEZvcm1Db250cm9sKHRoaXMuY2FzZUZpZWxkLnZhbHVlKSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBwdWJsaWMgaXNEYXRlVGltZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5pZCA9PT0gJ0RhdGVUaW1lJztcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBib3R0b20tMzBcIiBbaWRdPVwiaWQoKVwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGRhdGVDb250cm9sICYmICFkYXRlQ29udHJvbC52YWxpZCAmJiAoZGF0ZUNvbnRyb2wuZGlydHkgfHwgZGF0ZUNvbnRyb2wudG91Y2hlZCl9XCI+XG5cbiAgPGZpZWxkc2V0PlxuICAgIDxsZWdlbmQ+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIiAqbmdJZj1cImNhc2VGaWVsZC5sYWJlbFwiPnt7KGNhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWwpfX08L3NwYW4+XG4gICAgPC9sZWdlbmQ+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHQgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImRhdGVDb250cm9sICYmIGRhdGVDb250cm9sLmVycm9ycyAmJiAoZGF0ZUNvbnRyb2wuZGlydHkgfHwgZGF0ZUNvbnRyb2wudG91Y2hlZClcIj5cbiAgICAgIHt7KGRhdGVDb250cm9sLmVycm9ycyB8IGNjZEZpcnN0RXJyb3I6Y2FzZUZpZWxkLmxhYmVsKX19XG4gICAgPC9zcGFuPlxuICAgIDxjdXQtZGF0ZS1pbnB1dCBbaWRdPVwiaWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0RhdGVUaW1lXT1cImlzRGF0ZVRpbWUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFttYW5kYXRvcnldPVwiY2FzZUZpZWxkIHwgY2NkSXNNYW5kYXRvcnlcIlxuICAgICAgICAgICAgICAgICAgICBbaXNJbnZhbGlkXT1cImRhdGVDb250cm9sLmVycm9ycyAmJiAoZGF0ZUNvbnRyb2wuZGlydHkgfHwgZGF0ZUNvbnRyb2wudG91Y2hlZClcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZGF0ZUNvbnRyb2xcIj48L2N1dC1kYXRlLWlucHV0PlxuXG4gIDwvZmllbGRzZXQ+XG48L2Rpdj5cbiJdfQ==
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZGF0ZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9kYXRlL3dyaXRlLWRhdGUtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZGF0ZS93cml0ZS1kYXRlLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7Ozs7O0lDRXJGLCtCQUFpRDtJQUFBLFlBQStCOztJQUFBLGlCQUFPOzs7SUFBdEMsY0FBK0I7SUFBL0IsNERBQStCOzs7SUFFbEYsK0JBQW9EO0lBQUEsWUFBc0M7O0lBQUEsaUJBQU87OztJQUE3QyxjQUFzQztJQUF0QyxzRUFBc0M7OztJQUMxRiwrQkFBb0g7SUFDbEgsWUFDRjs7SUFBQSxpQkFBTzs7O0lBREwsY0FDRjtJQURFLHdHQUNGOztBRERKLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSwyQkFBMkI7SUFDL0QsV0FBVyxDQUFjO0lBRXpCLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztJQUNoRyxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxVQUFVLENBQUM7SUFDckQsQ0FBQzt5UEFiVSx1QkFBdUIsU0FBdkIsdUJBQXVCOzZEQUF2Qix1QkFBdUI7WUNMaEMsQUFERixBQUZGLDhCQUFnSyxlQUVwSixhQUNBO1lBQ04sMEVBQWlEO1lBQ25ELGlCQUFTO1lBRVQsQUFEQSwwRUFBb0QsNkRBQ2dFO1lBR3BILG9DQUs2RDs7WUFHakUsQUFERSxpQkFBVyxFQUNQOztZQWxCd0MsQUFBWiw2QkFBVyx5SUFBa0g7WUFJL0gsZUFBcUI7WUFBckIsMENBQXFCO1lBRXhCLGNBQXlCO1lBQXpCLDhDQUF5QjtZQUNyQixjQUFxRjtZQUFyRixzSEFBcUY7WUFHbEcsY0FBVztZQUtYLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSw2QkFBVyx3Q0FDd0IsZ0NBQ1IsbURBQ2EsMkZBQ3NDLGdDQUNuRDs7O2lGRFBsQyx1QkFBdUI7Y0FKbkMsU0FBUzsyQkFDRSxzQkFBc0I7O2tGQUdyQix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1kYXRlLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWRhdGUtZmllbGQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgV3JpdGVEYXRlRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgZGF0ZUNvbnRyb2w6IEZvcm1Db250cm9sO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRhdGVDb250cm9sID0gdGhpcy5yZWdpc3RlckNvbnRyb2wobmV3IEZvcm1Db250cm9sKHRoaXMuY2FzZUZpZWxkLnZhbHVlKSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUZpZWxkTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgaXNEYXRlVGltZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5pZCA9PT0gJ0RhdGVUaW1lJztcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBib3R0b20tMzBcIiBbaWRdPVwiaWQoKVwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGRhdGVDb250cm9sICYmICFkYXRlQ29udHJvbC52YWxpZCAmJiAoZGF0ZUNvbnRyb2wuZGlydHkgfHwgZGF0ZUNvbnRyb2wudG91Y2hlZCl9XCI+XG5cbiAgPGZpZWxkc2V0PlxuICAgIDxsZWdlbmQ+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIiAqbmdJZj1cImNhc2VGaWVsZC5sYWJlbFwiPnt7KGNhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWwpfX08L3NwYW4+XG4gICAgPC9sZWdlbmQ+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHQgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImRhdGVDb250cm9sICYmIGRhdGVDb250cm9sLmVycm9ycyAmJiAoZGF0ZUNvbnRyb2wuZGlydHkgfHwgZGF0ZUNvbnRyb2wudG91Y2hlZClcIj5cbiAgICAgIHt7KGRhdGVDb250cm9sLmVycm9ycyB8IGNjZEZpcnN0RXJyb3I6Y2FzZUZpZWxkLmxhYmVsKX19XG4gICAgPC9zcGFuPlxuICAgIDxjdXQtZGF0ZS1pbnB1dCBbaWRdPVwiaWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbFByZWZpeF09XCJnZXRDYXNlRmllbGRMYWJlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzRGF0ZVRpbWVdPVwiaXNEYXRlVGltZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW21hbmRhdG9yeV09XCJjYXNlRmllbGQgfCBjY2RJc01hbmRhdG9yeVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0ludmFsaWRdPVwiZGF0ZUNvbnRyb2wuZXJyb3JzICYmIChkYXRlQ29udHJvbC5kaXJ0eSB8fCBkYXRlQ29udHJvbC50b3VjaGVkKVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkYXRlQ29udHJvbFwiPjwvY3V0LWRhdGUtaW5wdXQ+XG5cbiAgPC9maWVsZHNldD5cbjwvZGl2PlxuIl19
@@ -458,6 +458,7 @@ function DateInputComponent_div_21_Template(rf, ctx) { if (rf & 1) {
458
458
  } }
459
459
  class DateInputComponent {
460
460
  id;
461
+ labelPrefix;
461
462
  mandatory;
462
463
  isDateTime;
463
464
  formControl;
@@ -592,28 +593,28 @@ class DateInputComponent {
592
593
  dayId() {
593
594
  const idString = `${this.id}`;
594
595
  if (idString.includes("Date")) {
595
- return `${this.id}-day`;
596
+ return `${this.labelPrefix + this.id}-day`;
596
597
  }
597
598
  else {
598
- return `${this.id}Date-day`;
599
+ return `${this.labelPrefix + this.id}Date-day`;
599
600
  }
600
601
  }
601
602
  monthId() {
602
603
  const idString = `${this.id}`;
603
604
  if (idString.includes("Date")) {
604
- return `${this.id}-month`;
605
+ return `${this.labelPrefix + this.id}-month`;
605
606
  }
606
607
  else {
607
- return `${this.id}Date-month`;
608
+ return `${this.labelPrefix + this.id}Date-month`;
608
609
  }
609
610
  }
610
611
  yearId() {
611
612
  const idString = `${this.id}`;
612
613
  if (idString.includes("Date")) {
613
- return `${this.id}-year`;
614
+ return `${this.labelPrefix + this.id}-year`;
614
615
  }
615
616
  else {
616
- return `${this.id}Date-year`;
617
+ return `${this.labelPrefix + this.id}Date-year`;
617
618
  }
618
619
  }
619
620
  hourId() {
@@ -665,7 +666,7 @@ class DateInputComponent {
665
666
  return dateTime.replace(/\..*/, '');
666
667
  }
667
668
  static ɵfac = function DateInputComponent_Factory(t) { return new (t || DateInputComponent)(); };
668
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DateInputComponent, selectors: [["cut-date-input"]], inputs: { id: "id", mandatory: "mandatory", isDateTime: "isDateTime", formControl: "formControl", isInvalid: "isInvalid" }, features: [i0.ɵɵProvidersFeature([
669
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DateInputComponent, selectors: [["cut-date-input"]], inputs: { id: "id", labelPrefix: "labelPrefix", mandatory: "mandatory", isDateTime: "isDateTime", formControl: "formControl", isInvalid: "isInvalid" }, features: [i0.ɵɵProvidersFeature([
669
670
  {
670
671
  provide: NG_VALUE_ACCESSOR,
671
672
  useExisting: forwardRef(() => DateInputComponent),
@@ -744,6 +745,8 @@ class DateInputComponent {
744
745
  ], template: "<div class=\"form-date\">\n <div class=\"form-group form-group-day\">\n <label class=\"form-label\" [for]=\"dayId()\">{{'Day' | rpxTranslate}}</label>\n <input #dayInput\n class=\"form-control\"\n [id]=\"dayId()\"\n [name]=\"dayId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [value]=\"displayDay\"\n (change)=\"dayChange(dayInput.value)\"\n (keyup)=\"dayChange(dayInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-month\">\n <label class=\"form-label\" [for]=\"monthId()\">{{'Month' | rpxTranslate}}</label>\n <input #monthInput\n class=\"form-control\"\n [id]=\"monthId()\"\n [name]=\"monthId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [value]=\"displayMonth\"\n (change)=\"monthChange(monthInput.value)\"\n (keyup)=\"monthChange(monthInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-year\">\n <label class=\"form-label\" [for]=\"yearId()\">{{'Year' | rpxTranslate}}</label>\n <input #yearInput\n class=\"form-control\"\n [id]=\"yearId()\"\n [name]=\"yearId()\"\n type=\"text\"\n pattern=\"[0-9]*\"\n inputmode=\"numeric\"\n [value]=\"displayYear\"\n (change)=\"yearChange(yearInput.value)\"\n (keyup)=\"yearChange(yearInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-hour\" *ngIf=\"isDateTime\">\n <label class=\"form-label\" [for]=\"hourId()\">{{'Hour' | rpxTranslate}}</label>\n <input #hourInput\n class=\"form-control\"\n [id]=\"hourId()\"\n [name]=\"hourId()\"\n type=\"number\"\n [value]=\"displayHour\"\n (input)=\"hourChange(hourInput.value)\"\n (keyup)=\"hourChange(hourInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-minute\" *ngIf=\"isDateTime\">\n <label class=\"form-label\" [for]=\"minuteId()\">{{'Minute' | rpxTranslate}}</label>\n <input #minuteInput\n class=\"form-control\"\n [id]=\"minuteId()\"\n [name]=\"minuteId()\"\n type=\"number\"\n [value]=\"displayMinute\"\n (input)=\"minuteChange(minuteInput.value)\"\n (keyup)=\"minuteChange(minuteInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n\n <div class=\"form-group form-group-second\" *ngIf=\"isDateTime\">\n <label class=\"form-label\" [for]=\"secondId()\">{{'Second' | rpxTranslate}}</label>\n <input #secondInput\n class=\"form-control\"\n [id]=\"secondId()\"\n [name]=\"secondId()\"\n type=\"number\"\n [value]=\"displaySecond\"\n (input)=\"secondChange(secondInput.value)\"\n (keyup)=\"secondChange(secondInput.value)\"\n (focus)=\"inputFocus()\"\n [ngClass]=\"{'govuk-input--error': isInvalid}\">\n </div>\n</div>\n" }]
745
746
  }], null, { id: [{
746
747
  type: Input
748
+ }], labelPrefix: [{
749
+ type: Input
747
750
  }], mandatory: [{
748
751
  type: Input
749
752
  }], isDateTime: [{
@@ -27020,11 +27023,14 @@ class WriteDateFieldComponent extends AbstractFieldWriteComponent {
27020
27023
  ngOnInit() {
27021
27024
  this.dateControl = this.registerControl(new FormControl(this.caseField.value));
27022
27025
  }
27026
+ getCaseFieldLabel() {
27027
+ return this.caseField.label;
27028
+ }
27023
27029
  isDateTime() {
27024
27030
  return this.caseField.field_type.id === 'DateTime';
27025
27031
  }
27026
27032
  static ɵfac = /*@__PURE__*/ (() => { let ɵWriteDateFieldComponent_BaseFactory; return function WriteDateFieldComponent_Factory(t) { return (ɵWriteDateFieldComponent_BaseFactory || (ɵWriteDateFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(WriteDateFieldComponent)))(t || WriteDateFieldComponent); }; })();
27027
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDateFieldComponent, selectors: [["ccd-write-date-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 14, consts: [[1, "form-group", "bottom-30", 3, "id", "ngClass"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [3, "id", "isDateTime", "mandatory", "isInvalid", "formControl"], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function WriteDateFieldComponent_Template(rf, ctx) { if (rf & 1) {
27033
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WriteDateFieldComponent, selectors: [["ccd-write-date-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 8, vars: 15, consts: [[1, "form-group", "bottom-30", 3, "id", "ngClass"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [3, "id", "labelPrefix", "isDateTime", "mandatory", "isInvalid", "formControl"], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function WriteDateFieldComponent_Template(rf, ctx) { if (rf & 1) {
27028
27034
  i0.ɵɵelementStart(0, "div", 0)(1, "fieldset")(2, "legend");
27029
27035
  i0.ɵɵtemplate(3, WriteDateFieldComponent_span_3_Template, 3, 3, "span", 1);
27030
27036
  i0.ɵɵelementEnd();
@@ -27033,7 +27039,7 @@ class WriteDateFieldComponent extends AbstractFieldWriteComponent {
27033
27039
  i0.ɵɵpipe(7, "ccdIsMandatory");
27034
27040
  i0.ɵɵelementEnd()();
27035
27041
  } if (rf & 2) {
27036
- i0.ɵɵproperty("id", ctx.id())("ngClass", i0.ɵɵpureFunction1(12, _c0$i, ctx.dateControl && !ctx.dateControl.valid && (ctx.dateControl.dirty || ctx.dateControl.touched)));
27042
+ i0.ɵɵproperty("id", ctx.id())("ngClass", i0.ɵɵpureFunction1(13, _c0$i, ctx.dateControl && !ctx.dateControl.valid && (ctx.dateControl.dirty || ctx.dateControl.touched)));
27037
27043
  i0.ɵɵadvance(3);
27038
27044
  i0.ɵɵproperty("ngIf", ctx.caseField.label);
27039
27045
  i0.ɵɵadvance();
@@ -27041,12 +27047,12 @@ class WriteDateFieldComponent extends AbstractFieldWriteComponent {
27041
27047
  i0.ɵɵadvance();
27042
27048
  i0.ɵɵproperty("ngIf", ctx.dateControl && ctx.dateControl.errors && (ctx.dateControl.dirty || ctx.dateControl.touched));
27043
27049
  i0.ɵɵadvance();
27044
- i0.ɵɵproperty("id", ctx.id())("isDateTime", ctx.isDateTime())("mandatory", i0.ɵɵpipeBind1(7, 10, ctx.caseField))("isInvalid", ctx.dateControl.errors && (ctx.dateControl.dirty || ctx.dateControl.touched))("formControl", ctx.dateControl);
27050
+ i0.ɵɵproperty("id", ctx.id())("labelPrefix", ctx.getCaseFieldLabel())("isDateTime", ctx.isDateTime())("mandatory", i0.ɵɵpipeBind1(7, 11, ctx.caseField))("isInvalid", ctx.dateControl.errors && (ctx.dateControl.dirty || ctx.dateControl.touched))("formControl", ctx.dateControl);
27045
27051
  } }, dependencies: [i5.NgClass, i5.NgIf, i4.NgControlStatus, i4.FormControlDirective, DateInputComponent, FieldLabelPipe, FirstErrorPipe, IsMandatoryPipe, i1.RpxTranslatePipe], encapsulation: 2 });
27046
27052
  }
27047
27053
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteDateFieldComponent, [{
27048
27054
  type: Component,
27049
- args: [{ selector: 'ccd-write-date-field', template: "<div class=\"form-group bottom-30\" [id]=\"id()\" [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && (dateControl.dirty || dateControl.touched)}\">\n\n <fieldset>\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n </legend>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"dateControl && dateControl.errors && (dateControl.dirty || dateControl.touched)\">\n {{(dateControl.errors | ccdFirstError:caseField.label)}}\n </span>\n <cut-date-input [id]=\"id()\"\n [isDateTime]=\"isDateTime()\"\n [mandatory]=\"caseField | ccdIsMandatory\"\n [isInvalid]=\"dateControl.errors && (dateControl.dirty || dateControl.touched)\"\n [formControl]=\"dateControl\"></cut-date-input>\n\n </fieldset>\n</div>\n" }]
27055
+ args: [{ selector: 'ccd-write-date-field', template: "<div class=\"form-group bottom-30\" [id]=\"id()\" [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && (dateControl.dirty || dateControl.touched)}\">\n\n <fieldset>\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n </legend>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"dateControl && dateControl.errors && (dateControl.dirty || dateControl.touched)\">\n {{(dateControl.errors | ccdFirstError:caseField.label)}}\n </span>\n <cut-date-input [id]=\"id()\"\n [labelPrefix]=\"getCaseFieldLabel()\"\n [isDateTime]=\"isDateTime()\"\n [mandatory]=\"caseField | ccdIsMandatory\"\n [isInvalid]=\"dateControl.errors && (dateControl.dirty || dateControl.touched)\"\n [formControl]=\"dateControl\"></cut-date-input>\n\n </fieldset>\n</div>\n" }]
27050
27056
  }], null, null); })();
27051
27057
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteDateFieldComponent, { className: "WriteDateFieldComponent", filePath: "lib/shared/components/palette/date/write-date-field.component.ts", lineNumber: 9 }); })();
27052
27058