@hmcts/ccd-case-ui-toolkit 7.2.50-remove-flag-icp-enabled → 7.2.50-srt-rc2

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.
Files changed (95) hide show
  1. package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +4 -4
  2. package/esm2022/lib/components/form/date-input/date-input.component.mjs +56 -19
  3. package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +5 -5
  4. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +3 -3
  5. package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +24 -3
  6. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +8 -6
  7. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +5 -5
  8. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +9 -5
  9. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +9 -5
  10. package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +4 -4
  11. package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +4 -4
  12. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +4 -4
  13. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +9 -4
  14. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +16 -3
  15. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +28 -8
  16. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +13 -9
  17. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +4 -4
  18. package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +4 -4
  19. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +41 -6
  20. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +9 -5
  21. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +9 -5
  22. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +10 -6
  23. package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +3 -3
  24. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +9 -5
  25. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +3 -3
  26. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +6 -6
  27. package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +4 -4
  28. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +5 -5
  29. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +4 -4
  30. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +9 -9
  31. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +5 -4
  32. package/esm2022/lib/shared/components/palette/date/read-date-field.component.mjs +4 -4
  33. package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +41 -10
  34. package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +7 -7
  35. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +6 -6
  36. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +5 -5
  37. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +12 -12
  38. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +7 -7
  39. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +6 -6
  40. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +7 -7
  41. package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +5 -5
  42. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +6 -2
  43. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +71 -69
  44. package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +23 -19
  45. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +5 -5
  46. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +5 -5
  47. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +5 -5
  48. package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +5 -2
  49. package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +2 -1
  50. package/esm2022/lib/shared/services/form/form-value.service.mjs +58 -101
  51. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +693 -529
  52. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  53. package/lib/components/form/date-input/date-input.component.d.ts +4 -0
  54. package/lib/components/form/date-input/date-input.component.d.ts.map +1 -1
  55. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts +1 -0
  56. package/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.d.ts.map +1 -1
  57. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  58. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts +2 -0
  59. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  60. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts +2 -0
  61. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  62. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts +2 -0
  63. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts.map +1 -1
  64. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +1 -0
  65. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  66. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +1 -0
  67. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  68. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts +2 -0
  69. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts.map +1 -1
  70. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts +3 -2
  71. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts.map +1 -1
  72. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts +2 -0
  73. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts.map +1 -1
  74. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts +2 -0
  75. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts.map +1 -1
  76. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts +2 -0
  77. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts.map +1 -1
  78. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts +2 -0
  79. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts.map +1 -1
  80. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +2 -2
  81. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  82. package/lib/shared/components/event-start/services/event-start-state-machine.service.d.ts.map +1 -1
  83. package/lib/shared/components/palette/date/read-date-field.component.d.ts.map +1 -1
  84. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts +2 -0
  85. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts.map +1 -1
  86. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +2 -0
  87. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -1
  88. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts +2 -0
  89. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts.map +1 -1
  90. package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts.map +1 -1
  91. package/lib/shared/services/form/field-type-sanitiser.d.ts +1 -0
  92. package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -1
  93. package/lib/shared/services/form/form-value.service.d.ts +2 -100
  94. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  95. package/package.json +1 -1
@@ -89,6 +89,7 @@ export class DatetimePickerComponent extends AbstractFormFieldComponent {
89
89
  minError = false;
90
90
  maxError = false;
91
91
  dateTimeEntryFormat;
92
+ isUpdating = false;
92
93
  datetimePicker;
93
94
  inputElement;
94
95
  dateControl = new FormControl(new Date());
@@ -111,7 +112,7 @@ export class DatetimePickerComponent extends AbstractFormFieldComponent {
111
112
  // otherwise the last format given will be how the text shown will be displayed
112
113
  setTimeout(() => {
113
114
  this.setDateTimeFormat();
114
- this.formatValueAndSetErrors();
115
+ this.loadValue();
115
116
  }, 1000);
116
117
  // when the status changes check that the maximum/minimum date has not been exceeded
117
118
  this.dateControl.statusChanges.subscribe(() => {
@@ -213,24 +214,54 @@ export class DatetimePickerComponent extends AbstractFormFieldComponent {
213
214
  this.valueChanged();
214
215
  }
215
216
  }
217
+ loadValue() {
218
+ if (this.inputElement.nativeElement.value) {
219
+ const inputValue = this.inputElement.nativeElement.value;
220
+ const formValue = moment(inputValue, this.dateTimeEntryFormat).format(this.momentFormat);
221
+ if (formValue !== 'Invalid date') {
222
+ const localMoment = moment.utc(formValue).local();
223
+ this.dateControl.setValue(moment(formValue).format(this.momentFormat));
224
+ this.inputElement.nativeElement.value = localMoment.format(this.dateTimeEntryFormat);
225
+ if (this.datetimePicker) {
226
+ this.datetimePicker.select(localMoment);
227
+ }
228
+ }
229
+ else {
230
+ // If invalid, just show the raw value
231
+ this.inputElement.nativeElement.value = this.dateControl.value;
232
+ }
233
+ }
234
+ else {
235
+ this.inputElement.nativeElement.value = '';
236
+ }
237
+ }
216
238
  formatValueAndSetErrors() {
239
+ if (this.isUpdating)
240
+ return;
241
+ this.isUpdating = true;
217
242
  if (this.inputElement.nativeElement.value) {
218
- let formValue = this.inputElement.nativeElement.value;
219
- formValue = moment(formValue, this.dateTimeEntryFormat).format(this.momentFormat);
243
+ const inputValue = this.inputElement.nativeElement.value;
244
+ const formValue = moment(inputValue, this.dateTimeEntryFormat).format(this.momentFormat);
245
+ const localMoment = moment(inputValue, this.dateTimeEntryFormat, true);
220
246
  if (formValue !== 'Invalid date') {
221
- // if not invalid set the value as the formatted value
222
- this.dateControl.setValue(formValue);
247
+ const utcValue = localMoment.clone().utc().format(this.momentFormat);
248
+ this.dateControl.setValue(utcValue);
249
+ this.inputElement.nativeElement.value = localMoment.format(this.dateTimeEntryFormat);
250
+ // if (this.datetimePicker) {
251
+ // this.datetimePicker.select(localMoment); // guarded from recursion
252
+ // }
253
+ this.isUpdating = false;
223
254
  }
224
255
  else {
225
- // ensure that the datepicker picks up the invalid error
226
256
  const keepErrorText = this.inputElement.nativeElement.value;
227
257
  this.dateControl.setValue(keepErrorText);
228
258
  this.inputElement.nativeElement.value = keepErrorText;
259
+ this.isUpdating = false;
229
260
  }
230
261
  }
231
262
  else {
232
- // ensure required errors are picked up if relevant
233
263
  this.dateControl.setValue('');
264
+ this.isUpdating = false;
234
265
  }
235
266
  }
236
267
  static ɵfac = function DatetimePickerComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DatetimePickerComponent)(i0.ɵɵdirectiveInject(i1.FormatTranslatorService), i0.ɵɵdirectiveInject(NGX_MAT_DATE_FORMATS)); };
@@ -249,7 +280,7 @@ export class DatetimePickerComponent extends AbstractFormFieldComponent {
249
280
  deps: [MAT_LEGACY_DATE_LOCALE, NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS]
250
281
  },
251
282
  { provide: NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }
252
- ]), i0.ɵɵInheritDefinitionFeature], decls: 17, vars: 27, consts: [["input", ""], ["picker", ""], [1, "govuk-form-group", "bottom-30", 3, "id", "ngClass"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "datepicker-container"], ["ng-model-options", "{timezone:'utc'}", 1, "govuk-input", 3, "focusin", "focusout", "dateChange", "min", "max", "formControl", "ngxMatDatetimePicker"], ["matSuffix", "", "id", "pickerOpener", 3, "for"], [3, "yearSelected", "monthSelected", "opened", "color", "touchUi", "hideTime", "startView", "stepHour", "stepSecond", "stepMinute", "showSeconds", "showSpinners", "disableMinute", "enableMeridian"], ["mat-raised-button", "", "color", "primary", "ngxMatDatepickerApply", ""], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function DatetimePickerComponent_Template(rf, ctx) { if (rf & 1) {
283
+ ]), i0.ɵɵInheritDefinitionFeature], decls: 17, vars: 27, consts: [["input", ""], ["picker", ""], [1, "govuk-form-group", "bottom-30", 3, "id", "ngClass"], ["class", "form-label", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "datepicker-container"], [1, "govuk-input", 3, "focusin", "focusout", "dateChange", "min", "max", "formControl", "ngxMatDatetimePicker"], ["matSuffix", "", "id", "pickerOpener", 3, "for"], [3, "yearSelected", "monthSelected", "opened", "color", "touchUi", "hideTime", "startView", "stepHour", "stepSecond", "stepMinute", "showSeconds", "showSpinners", "disableMinute", "enableMeridian"], ["mat-raised-button", "", "color", "primary", "ngxMatDatepickerApply", ""], [1, "form-label"], [1, "form-hint"], [1, "error-message"]], template: function DatetimePickerComponent_Template(rf, ctx) { if (rf & 1) {
253
284
  const _r1 = i0.ɵɵgetCurrentView();
254
285
  i0.ɵɵelementStart(0, "div", 2)(1, "fieldset")(2, "legend");
255
286
  i0.ɵɵtemplate(3, DatetimePickerComponent_span_3_Template, 3, 3, "span", 3)(4, DatetimePickerComponent_span_4_Template, 3, 3, "span", 4)(5, DatetimePickerComponent_span_5_Template, 3, 4, "span", 5)(6, DatetimePickerComponent_span_6_Template, 3, 3, "span", 5)(7, DatetimePickerComponent_span_7_Template, 3, 3, "span", 5);
@@ -295,7 +326,7 @@ export class DatetimePickerComponent extends AbstractFormFieldComponent {
295
326
  deps: [MAT_LEGACY_DATE_LOCALE, NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS]
296
327
  },
297
328
  { provide: NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }
298
- ], template: "<div class=\"govuk-form-group bottom-30\" [id]=\"caseField.id\"\n [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && dateControl.dirty}\">\n <fieldset>\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\"\n *ngIf=\"dateControl && dateControl.errors && dateControl.dirty && !(minError || maxError)\">{{(dateControl.errors | ccdFirstError:caseField.label)}}</span>\n <span class=\"error-message\"\n *ngIf=\"dateControl && dateControl.dirty && minError\">{{'This date is older than the minimum date allowed' | rpxTranslate}}</span>\n <span class=\"error-message\"\n *ngIf=\"dateControl && dateControl.dirty && maxError\">{{'This date is later than the maximum date allowed' | rpxTranslate}}</span>\n </legend>\n <div class=\"datepicker-container\">\n <input class=\"govuk-input\"\n #input\n attr.aria-label=\"Please enter a date and time in the format | rpxTranslate {{dateTimeEntryFormat}}\"\n [min]=\"minDate(caseField)\"\n [max]=\"maxDate(caseField)\"\n [formControl]=\"dateControl\"\n [ngxMatDatetimePicker]=\"picker\"\n (focusin)=\"focusIn()\"\n (focusout)=\"focusOut()\"\n (dateChange)=\"valueChanged()\"\n ng-model-options=\"{timezone:'utc'}\"\n >\n <mat-datepicker-toggle matSuffix [for]=\"picker\" id=\"pickerOpener\"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #picker\n [color]=\"color\"\n [touchUi]=\"touchUi\"\n [hideTime]=\"hideTime\"\n [startView]=\"startView\"\n [stepHour]=\"stepHour\"\n [stepSecond]=\"stepSecond\"\n [stepMinute]=\"stepMinute\"\n [showSeconds]=\"showSeconds\"\n [showSpinners]=\"showSpinners\"\n [disableMinute]=\"disableMinute\"\n [enableMeridian]=\"enableMeridian\"\n (yearSelected)=\"yearSelected($event)\"\n (monthSelected)=\"monthSelected($event)\"\n (opened)=\"toggleClick()\"\n >\n <ngx-mat-datepicker-actions>\n <button mat-raised-button color=\"primary\" ngxMatDatepickerApply>Confirm</button>\n </ngx-mat-datepicker-actions>\n </ngx-mat-datetime-picker>\n </div>\n </fieldset>\n</div>\n", styles: ["@charset \"UTF-8\";.datepicker-container{display:inline-block;position:relative;min-width:298px}.datepicker-container .govuk-input{height:35px;min-width:298px;width:auto;padding-right:40px;border:1px solid #000}.datepicker-container .govuk-input:focus{outline:1px solid #ffdd00;border:1px solid black}.datepicker-container .govuk-input::-ms-clear{display:none}.datepicker-container .datepicker-wrapper-input{position:relative;display:inline-block;top:-20%;border:0}.datepicker-container .datepicker-wrapper-input:focus{border:0;outline:none}.datepicker-container .mat-icon-button{height:32px;width:32px}.datepicker-container .mat-icon-button:focus{outline:1px solid #ffdd00}.datepicker-container .mat-icon-button .mat-datepicker-toggle-default-icon{position:relative;top:-5px}.datepicker-container .mat-datepicker-toggle{position:absolute;right:0}.datepicker-container .mat-mdc-icon-button.mat-mdc-button-base{width:32px;height:32px;padding:5px 0 0}.datepicker-container .mat-mdc-icon-button.mat-mdc-button-base:focus{outline:1px solid #fd0}.cdk-overlay-container .mat-datepicker-content{border:1px solid black;border-radius:0;max-width:295px;background:#fff}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table{width:calc(100% - 1px);table-layout:fixed}.cdk-overlay-container .mat-datepicker-content .mat-calendar-header{height:34px;border-bottom:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button{left:14%;min-width:125px;border-right:1px ridge #bfc1c3;border-left:1px ridge #bfc1c3;border-radius:0;top:-20px;width:200%}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button .mat-button-wrapper{text-align:center;font-weight:700}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button:focus{border:2px solid black}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button{left:-73%;top:-20px;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:after{border-left-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button{top:-20px;left:1%;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:after{border-right-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-button-wrapper{text-transform:capitalize!important}.cdk-overlay-container .mat-datepicker-content .mat-calendar{border-bottom:1px solid black}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider{padding:0;border-bottom:none}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider:after{height:0px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-content{padding:0}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header{color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header th.ng-star-inserted{font-weight:700;font-size:15px;padding-top:2%;padding-bottom:2%;column-width:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th{visibility:hidden}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:after{visibility:visible;color:#000;position:relative;left:-15px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(1):after{content:\"MON\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(2):after{left:-12px;content:\"TUE\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(3):after{left:-18px;content:\"WED\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(4):after{left:-14px;content:\"THU\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(5):after{left:-10px;content:\"FRI\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(6):after{content:\"SAT\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(7):after{content:\"SUN\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-label{font-weight:700;font-size:large;color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-selected{border:none;background-color:transparent;color:#fff}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active .mat-calendar-body-today{border:none;box-shadow:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell{border:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-selected=true],.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-pressed=true]{background-color:#1d70b8;outline:3px solid #ffdd00;border:2px solid black;outline-offset:1px;z-index:1}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table{border-collapse:separate;border-spacing:10px}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:2px solid #ffdd00}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table{border-collapse:separate;border-spacing:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table tr:nth-of-type(1){visibility:collapse}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #ffdd00;border:2px solid black;outline-offset:1px}.cdk-overlay-container .mat-datepicker-content .time-container{height:80px;padding-top:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table{margin-left:0!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tbody{position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr mdc-icon-button mat-mdc-icon-button mat-unthemed mat-mdc-button-base .mat-icon-button .mat-button-wrapper{width:auto;height:auto}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr mdc-icon-button mat-mdc-icon-button mat-unthemed mat-mdc-button-base .mat-icon-button:focus{outline:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child{position:absolute;left:49px;top:15px;z-index:2}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:first-child [aria-label=\"expand_less icon\"]{position:absolute;left:-2px;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(3) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:82px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(5) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:169px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(1) [aria-label=\"expand_less icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(2) [aria-label=\"expand_less icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2){display:flex;padding:20px 0 20px 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field{width:50px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field:before{color:#000;content:\"Hours\";position:relative;top:-5px;left:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-child(3) .mat-form-field:before{color:#000;content:\"Minutes\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:last-child{text-align:left;left:-15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .mat-form-field-disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-of-type(5) .mat-form-field:before{color:#000;content:\"Seconds\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian{border-bottom:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button{height:30px;top:21px;border-radius:0;color:#000;border-color:#000;background-color:#dee0e2;display:flex;justify-content:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button .mat-button-wrapper{position:relative;top:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4){display:flex;padding:2rem 0 2rem 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td:last-child{text-align:left}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child{position:absolute;left:49px;top:40px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:first-child [aria-label=\"expand_more icon\"]{position:absolute;top:15px;left:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(3) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;left:82px!important;top:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(5) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;top:15px;left:169px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-last-child(1) [aria-label=\"expand_more icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-last-child(1).ng-star-inserted [aria-label=\"expand_more icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr td{padding:0;border-bottom:0;position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .spacer{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon{visibility:hidden;display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-button-wrapper{display:block;width:15px;height:8px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-wrapper{padding-bottom:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field{width:auto;max-width:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_less icon\"].mat-icon-button .mat-button-wrapper:after{content:\" \\25b2\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_more icon\"].mat-icon-button .mat-button-wrapper:after{content:\"\\25bc\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex .mat-form-field-infix{border:1px solid black;height:20px;width:37px;display:flex;justify-content:center;align-items:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-underline{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input{height:33px;width:37px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .actions{padding-bottom:20px;margin-top:20px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .actions .mat-button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:focus{outline:2px solid #ffdd00}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:hover{background-color:#006400}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-icon{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-button-wrapper:before{color:#fff;content:\"Confirm\";position:relative;font-size:15px;left:-3px}.cdk-overlay-container .mat-datepicker-content .mat-datepicker-actions{margin-top:120px;padding:8px 8px 28px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .mat-datepicker-actions button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}\n"] }]
329
+ ], template: "<div class=\"govuk-form-group bottom-30\" [id]=\"caseField.id\"\n [ngClass]=\"{'form-group-error': dateControl && !dateControl.valid && dateControl.dirty}\">\n <fieldset>\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{(caseField | ccdFieldLabel)}}</span>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\"\n *ngIf=\"dateControl && dateControl.errors && dateControl.dirty && !(minError || maxError)\">{{(dateControl.errors | ccdFirstError:caseField.label)}}</span>\n <span class=\"error-message\"\n *ngIf=\"dateControl && dateControl.dirty && minError\">{{'This date is older than the minimum date allowed' | rpxTranslate}}</span>\n <span class=\"error-message\"\n *ngIf=\"dateControl && dateControl.dirty && maxError\">{{'This date is later than the maximum date allowed' | rpxTranslate}}</span>\n </legend>\n <div class=\"datepicker-container\">\n <input class=\"govuk-input\"\n #input\n attr.aria-label=\"Please enter a date and time in the format | rpxTranslate {{dateTimeEntryFormat}}\"\n [min]=\"minDate(caseField)\"\n [max]=\"maxDate(caseField)\"\n [formControl]=\"dateControl\"\n [ngxMatDatetimePicker]=\"picker\"\n (focusin)=\"focusIn()\"\n (focusout)=\"focusOut()\"\n (dateChange)=\"valueChanged()\"\n >\n <mat-datepicker-toggle matSuffix [for]=\"picker\" id=\"pickerOpener\"></mat-datepicker-toggle>\n <ngx-mat-datetime-picker #picker\n [color]=\"color\"\n [touchUi]=\"touchUi\"\n [hideTime]=\"hideTime\"\n [startView]=\"startView\"\n [stepHour]=\"stepHour\"\n [stepSecond]=\"stepSecond\"\n [stepMinute]=\"stepMinute\"\n [showSeconds]=\"showSeconds\"\n [showSpinners]=\"showSpinners\"\n [disableMinute]=\"disableMinute\"\n [enableMeridian]=\"enableMeridian\"\n (yearSelected)=\"yearSelected($event)\"\n (monthSelected)=\"monthSelected($event)\"\n (opened)=\"toggleClick()\"\n >\n <ngx-mat-datepicker-actions>\n <button mat-raised-button color=\"primary\" ngxMatDatepickerApply>Confirm</button>\n </ngx-mat-datepicker-actions>\n </ngx-mat-datetime-picker>\n </div>\n </fieldset>\n</div>\n", styles: ["@charset \"UTF-8\";.datepicker-container{display:inline-block;position:relative;min-width:298px}.datepicker-container .govuk-input{height:35px;min-width:298px;width:auto;padding-right:40px;border:1px solid #000}.datepicker-container .govuk-input:focus{outline:1px solid #ffdd00;border:1px solid black}.datepicker-container .govuk-input::-ms-clear{display:none}.datepicker-container .datepicker-wrapper-input{position:relative;display:inline-block;top:-20%;border:0}.datepicker-container .datepicker-wrapper-input:focus{border:0;outline:none}.datepicker-container .mat-icon-button{height:32px;width:32px}.datepicker-container .mat-icon-button:focus{outline:1px solid #ffdd00}.datepicker-container .mat-icon-button .mat-datepicker-toggle-default-icon{position:relative;top:-5px}.datepicker-container .mat-datepicker-toggle{position:absolute;right:0}.datepicker-container .mat-mdc-icon-button.mat-mdc-button-base{width:32px;height:32px;padding:5px 0 0}.datepicker-container .mat-mdc-icon-button.mat-mdc-button-base:focus{outline:1px solid #fd0}.cdk-overlay-container .mat-datepicker-content{border:1px solid black;border-radius:0;max-width:295px;background:#fff}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table{width:calc(100% - 1px);table-layout:fixed}.cdk-overlay-container .mat-datepicker-content .mat-calendar-header{height:34px;border-bottom:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button{left:14%;min-width:125px;border-right:1px ridge #bfc1c3;border-left:1px ridge #bfc1c3;border-radius:0;top:-20px;width:200%}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button .mat-button-wrapper{text-align:center;font-weight:700}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button:focus{border:2px solid black}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button{left:-73%;top:-20px;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:after{border-left-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button{top:-20px;left:1%;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:after{border-right-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-button-wrapper{text-transform:capitalize!important}.cdk-overlay-container .mat-datepicker-content .mat-calendar{border-bottom:1px solid black}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider{padding:0;border-bottom:none}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider:after{height:0px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-content{padding:0}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header{color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header th.ng-star-inserted{font-weight:700;font-size:15px;padding-top:2%;padding-bottom:2%;column-width:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th{visibility:hidden}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:after{visibility:visible;color:#000;position:relative;left:-15px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(1):after{content:\"MON\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(2):after{left:-12px;content:\"TUE\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(3):after{left:-18px;content:\"WED\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(4):after{left:-14px;content:\"THU\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(5):after{left:-10px;content:\"FRI\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(6):after{content:\"SAT\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(7):after{content:\"SUN\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-label{font-weight:700;font-size:large;color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-selected{border:none;background-color:transparent;color:#fff}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active .mat-calendar-body-today{border:none;box-shadow:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell{border:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-selected=true],.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-pressed=true]{background-color:#1d70b8;outline:3px solid #ffdd00;border:2px solid black;outline-offset:1px;z-index:1}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table{border-collapse:separate;border-spacing:10px}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:2px solid #ffdd00}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table{border-collapse:separate;border-spacing:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table tr:nth-of-type(1){visibility:collapse}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #ffdd00;border:2px solid black;outline-offset:1px}.cdk-overlay-container .mat-datepicker-content .time-container{height:80px;padding-top:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table{margin-left:0!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tbody{position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr mdc-icon-button mat-mdc-icon-button mat-unthemed mat-mdc-button-base .mat-icon-button .mat-button-wrapper{width:auto;height:auto}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr mdc-icon-button mat-mdc-icon-button mat-unthemed mat-mdc-button-base .mat-icon-button:focus{outline:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child{position:absolute;left:49px;top:15px;z-index:2}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:first-child [aria-label=\"expand_less icon\"]{position:absolute;left:-2px;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(3) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:82px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(5) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:169px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(1) [aria-label=\"expand_less icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(2) [aria-label=\"expand_less icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2){display:flex;padding:20px 0 20px 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field{width:50px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field:before{color:#000;content:\"Hours\";position:relative;top:-5px;left:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-child(3) .mat-form-field:before{color:#000;content:\"Minutes\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:last-child{text-align:left;left:-15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .mat-form-field-disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-of-type(5) .mat-form-field:before{color:#000;content:\"Seconds\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian{border-bottom:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button{height:30px;top:21px;border-radius:0;color:#000;border-color:#000;background-color:#dee0e2;display:flex;justify-content:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button .mat-button-wrapper{position:relative;top:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4){display:flex;padding:2rem 0 2rem 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td:last-child{text-align:left}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child{position:absolute;left:49px;top:40px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:first-child [aria-label=\"expand_more icon\"]{position:absolute;top:15px;left:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(3) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;left:82px!important;top:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(5) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;top:15px;left:169px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-last-child(1) [aria-label=\"expand_more icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-last-child(1).ng-star-inserted [aria-label=\"expand_more icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr td{padding:0;border-bottom:0;position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .spacer{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon{visibility:hidden;display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-button-wrapper{display:block;width:15px;height:8px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-wrapper{padding-bottom:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field{width:auto;max-width:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_less icon\"].mat-icon-button .mat-button-wrapper:after{content:\" \\25b2\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_more icon\"].mat-icon-button .mat-button-wrapper:after{content:\"\\25bc\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex .mat-form-field-infix{border:1px solid black;height:20px;width:37px;display:flex;justify-content:center;align-items:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-underline{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input{height:33px;width:37px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .actions{padding-bottom:20px;margin-top:20px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .actions .mat-button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:focus{outline:2px solid #ffdd00}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:hover{background-color:#006400}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-icon{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-button-wrapper:before{color:#fff;content:\"Confirm\";position:relative;font-size:15px;left:-3px}.cdk-overlay-container .mat-datepicker-content .mat-datepicker-actions{margin-top:120px;padding:8px 8px 28px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .mat-datepicker-actions button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}\n"] }]
299
330
  }], () => [{ type: i1.FormatTranslatorService }, { type: undefined, decorators: [{
300
331
  type: Inject,
301
332
  args: [NGX_MAT_DATE_FORMATS]
@@ -309,4 +340,4 @@ export class DatetimePickerComponent extends AbstractFormFieldComponent {
309
340
  type: Input
310
341
  }] }); })();
311
342
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DatetimePickerComponent, { className: "DatetimePickerComponent", filePath: "lib/shared/components/palette/datetime-picker/datetime-picker.component.ts", lineNumber: 35 }); })();
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBRWpCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDckIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN2SCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBc0MsTUFBTSwrQkFBK0IsQ0FBQztBQUczRyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ1oxRCxnQ0FBaUQ7SUFBQSxZQUErQjs7SUFB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SyxFQUFFO1lBQ1EsWUFBWTtrQkFBekQsU0FBUzttQkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBRXJCLFdBQVc7a0JBQTFCLEtBQUs7O2tGQXhCSyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBOZ3hNYXREYXRlQWRhcHRlcixcbiAgTmd4TWF0RGF0ZUZvcm1hdHMsXG4gIE5neE1hdERhdGV0aW1lcGlja2VyLFxuICBOR1hfTUFUX0RBVEVfRk9STUFUU1xufSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBOZ3hNYXRNb21lbnRBZGFwdGVyLCBOR1hfTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUyB9IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWNvbXBvbmVudHMvbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX0xFR0FDWV9EQVRFX0xPQ0FMRSwgTGVnYWN5VGhlbWVQYWxldHRlIGFzIFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1jb3JlJztcbmltcG9ydCB7IE1vbWVudCB9IGZyb20gJ21vbWVudC9tb21lbnQnO1xuXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1hdFRyYW5zbGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2FzZS1maWVsZHMvZm9ybWF0LXRyYW5zbGF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZm9ybS1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ1VTVE9NX01PTUVOVF9GT1JNQVRTIH0gZnJvbSAnLi9kYXRldGltZS1waWNrZXItdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtZGF0ZXRpbWUtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE5HWF9NQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogQ1VTVE9NX01PTUVOVF9GT1JNQVRTIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTmd4TWF0RGF0ZUFkYXB0ZXIsXG4gICAgICB1c2VDbGFzczogTmd4TWF0TW9tZW50QWRhcHRlcixcbiAgICAgIGRlcHM6IFtNQVRfTEVHQUNZX0RBVEVfTE9DQUxFLCBOR1hfTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OU11cbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTkdYX01BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMsIHVzZVZhbHVlOiB7IHVzZVV0YzogdHJ1ZSB9IH1cbiAgXVxufSlcblxuZXhwb3J0IGNsYXNzIERhdGV0aW1lUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzaG93U3Bpbm5lcnMgPSB0cnVlO1xuICBwdWJsaWMgc2hvd1NlY29uZHMgPSBmYWxzZTtcbiAgcHVibGljIHRvdWNoVWkgPSBmYWxzZTtcbiAgcHVibGljIGVuYWJsZU1lcmlkaWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzdGVwSG91ciA9IDE7XG4gIHB1YmxpYyBzdGVwTWludXRlID0gMTtcbiAgcHVibGljIHN0ZXBTZWNvbmQgPSAxO1xuICBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcbiAgcHVibGljIGRpc2FibGVNaW51dGUgPSB0cnVlO1xuICBwdWJsaWMgaGlkZVRpbWUgPSB0cnVlO1xuICBwdWJsaWMgaGlkZU1pbnV0ZXMgPSB0cnVlO1xuICBwdWJsaWMgc3RhcnRWaWV3ID0gJ21vbnRoJztcbiAgcHVibGljIHllYXJTZWxlY3Rpb24gPSBmYWxzZTtcbiAgcHVibGljIGNoZWNrVGltZSA9IHRydWU7XG4gIHB1YmxpYyBzdHJpbmdFZGl0ZWQgPSBmYWxzZTtcbiAgcHVibGljIG1pbkVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBtYXhFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgZGF0ZVRpbWVFbnRyeUZvcm1hdDogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgZGF0ZXRpbWVQaWNrZXI6IE5neE1hdERhdGV0aW1lcGlja2VyPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQElucHV0KCkgcHVibGljIGRhdGVDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChuZXcgRGF0ZSgpKTtcblxuICBwcml2YXRlIG1pbmltdW1EYXRlID0gbmV3IERhdGUoJzAxLzAxLzE4MDAnKTtcbiAgcHJpdmF0ZSBtYXhpbXVtRGF0ZSA9IG51bGw7XG4gIHByaXZhdGUgbW9tZW50Rm9ybWF0ID0gJ1lZWVktTU0tRERUSEg6bW06c3MuU1NTJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZvcm1hdFRyYW5zbGF0aW9uU2VydmljZTogRm9ybWF0VHJhbnNsYXRvclNlcnZpY2UsXG4gICAgQEluamVjdChOR1hfTUFUX0RBVEVfRk9STUFUUykgcHJpdmF0ZSByZWFkb25seSBuZ3hNYXREYXRlRm9ybWF0czogTmd4TWF0RGF0ZUZvcm1hdHMpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZVRpbWVFbnRyeUZvcm1hdCA9IHRoaXMuZm9ybWF0VHJhbnNsYXRpb25TZXJ2aWNlLnNob3dPbmx5RGF0ZXModGhpcy5jYXNlRmllbGQuZGF0ZVRpbWVFbnRyeUZvcm1hdCk7XG4gICAgdGhpcy5jb25maWd1cmVEYXRlUGlja2VyKHRoaXMuZGF0ZVRpbWVFbnRyeUZvcm1hdCk7XG4gICAgLy8gc2V0IGRhdGUgY29udHJvbCBiYXNlZCBvbiBtYW5kYXRvcnkgZmllbGRcbiAgICB0aGlzLmRhdGVDb250cm9sID0gKHRoaXMuY2FzZUZpZWxkLmlzTWFuZGF0b3J5ID9cbiAgICAgIHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtQ29udHJvbCh0aGlzLmNhc2VGaWVsZC52YWx1ZSB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSlcbiAgICAgIDogdGhpcy5yZWdpc3RlckNvbnRyb2wobmV3IEZvcm1Db250cm9sKHRoaXMuY2FzZUZpZWxkLnZhbHVlKSkpIGFzIEZvcm1Db250cm9sO1xuICAgIC8vIGluIHJlc2V0dGluZyB0aGUgZm9ybWF0IGp1c3QgYWZ0ZXIgdGhlIHBhZ2UgaW5pdGlhbGlzZXMsIHRoZSBpbnB1dCBjYW4gYmUgcmVmb3JtYXR0ZWRcbiAgICAvLyBvdGhlcndpc2UgdGhlIGxhc3QgZm9ybWF0IGdpdmVuIHdpbGwgYmUgaG93IHRoZSB0ZXh0IHNob3duIHdpbGwgYmUgZGlzcGxheWVkXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XG4gICAgICB0aGlzLmZvcm1hdFZhbHVlQW5kU2V0RXJyb3JzKCk7XG4gICAgfSwgMTAwMCk7XG4gICAgLy8gd2hlbiB0aGUgc3RhdHVzIGNoYW5nZXMgY2hlY2sgdGhhdCB0aGUgbWF4aW11bS9taW5pbXVtIGRhdGUgaGFzIG5vdCBiZWVuIGV4Y2VlZGVkXG4gICAgdGhpcy5kYXRlQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm1pbkVycm9yID0gdGhpcy5kYXRlQ29udHJvbC5oYXNFcnJvcignbWF0RGF0ZXRpbWVQaWNrZXJNaW4nKTtcbiAgICAgIHRoaXMubWF4RXJyb3IgPSB0aGlzLmRhdGVDb250cm9sLmhhc0Vycm9yKCdtYXREYXRldGltZVBpY2tlck1heCcpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldERhdGVUaW1lRm9ybWF0KCk6IHZvaWQge1xuICAgIHRoaXMubmd4TWF0RGF0ZUZvcm1hdHMucGFyc2UuZGF0ZUlucHV0ID0gdGhpcy5kYXRlVGltZUVudHJ5Rm9ybWF0O1xuICAgIHRoaXMubmd4TWF0RGF0ZUZvcm1hdHMuZGlzcGxheS5kYXRlSW5wdXQgPSB0aGlzLmRhdGVUaW1lRW50cnlGb3JtYXQ7XG4gIH1cblxuICAvKlxuICBXaGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLCB1cGRhdGUgdGhlIGZvcm0gY29udHJvbFxuICAqL1xuICBwdWJsaWMgdmFsdWVDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybWF0VmFsdWVBbmRTZXRFcnJvcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0luKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RGF0ZVRpbWVGb3JtYXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c091dCgpOiB2b2lkIHtcbiAgICAvLyBmb2N1cyBvdXQgbmVlZGVkIHRvIG9idGFpbiBlcnJvcnMgKHJlbGV2YW50IHRvIGZvcm1hdHRpbmcpXG4gICAgdGhpcy5mb3JtYXRWYWx1ZUFuZFNldEVycm9ycygpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RGF0ZVRpbWVGb3JtYXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBtaW5EYXRlKGNhc2VGaWVsZDogQ2FzZUZpZWxkKTogRGF0ZSB7XG4gICAgLy8gc2V0IG1pbmltdW0gZGF0ZVxuICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS5taW4gaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB0aGlzLm1pbmltdW1EYXRlID0gY2FzZUZpZWxkLmZpZWxkX3R5cGUubWluID8gbmV3IERhdGUoY2FzZUZpZWxkLmZpZWxkX3R5cGUubWluKSA6IHRoaXMubWluaW11bURhdGU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1pbmltdW1EYXRlO1xuICB9XG5cbiAgcHVibGljIG1heERhdGUoY2FzZUZpZWxkOiBDYXNlRmllbGQpOiBEYXRlIHtcbiAgICAvLyBzZXQgbWF4aW11bSBkYXRlXG4gICAgaWYgKGNhc2VGaWVsZC5maWVsZF90eXBlLm1heCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHRoaXMubWF4aW11bURhdGUgPSBjYXNlRmllbGQuZmllbGRfdHlwZS5tYXggPyBuZXcgRGF0ZShjYXNlRmllbGQuZmllbGRfdHlwZS5tYXgpIDogdGhpcy5tYXhpbXVtRGF0ZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWF4aW11bURhdGU7XG4gIH1cblxuICBwdWJsaWMgY29uZmlndXJlRGF0ZVBpY2tlcihkYXRlVGltZVBpY2tlckZvcm1hdDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0RhdGUnKSB7XG4gICAgICB0aGlzLmhpZGVUaW1lID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2hlY2tUaW1lID0gZmFsc2U7XG4gICAgICB0aGlzLmRhdGVUaW1lRW50cnlGb3JtYXQgPSB0aGlzLmZvcm1hdFRyYW5zbGF0aW9uU2VydmljZS5yZW1vdmVUaW1lKHRoaXMuZGF0ZVRpbWVFbnRyeUZvcm1hdCk7XG4gICAgICB0aGlzLm1vbWVudEZvcm1hdCA9ICdZWVlZLU1NLUREJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jaGVja1RpbWUpIHtcblxuICAgICAgaWYgKHRoaXMuZm9ybWF0VHJhbnNsYXRpb25TZXJ2aWNlLmhhc1NlY29uZHMoZGF0ZVRpbWVQaWNrZXJGb3JtYXQpKSB7XG4gICAgICAgIHRoaXMuc2hvd1NlY29uZHMgPSB0cnVlO1xuICAgICAgICB0aGlzLmhpZGVNaW51dGVzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1pbnV0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhpZGVUaW1lID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5mb3JtYXRUcmFuc2xhdGlvblNlcnZpY2UuaXMyNEhvdXIoZGF0ZVRpbWVQaWNrZXJGb3JtYXQpKSB7XG4gICAgICAgICAgdGhpcy5lbmFibGVNZXJpZGlhbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmZvcm1hdFRyYW5zbGF0aW9uU2VydmljZS5oYXNIb3VycyhkYXRlVGltZVBpY2tlckZvcm1hdCkpIHtcbiAgICAgICAgdGhpcy5oaWRlVGltZSA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMuZm9ybWF0VHJhbnNsYXRpb25TZXJ2aWNlLmlzMjRIb3VyKGRhdGVUaW1lUGlja2VyRm9ybWF0KSkge1xuICAgICAgICAgIHRoaXMuZW5hYmxlTWVyaWRpYW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZm9ybWF0VHJhbnNsYXRpb25TZXJ2aWNlLmhhc01pbnV0ZXMoZGF0ZVRpbWVQaWNrZXJGb3JtYXQpKSB7XG4gICAgICAgIHRoaXMuaGlkZU1pbnV0ZXMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kaXNhYmxlTWludXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGlkZVRpbWUgPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1hdFRyYW5zbGF0aW9uU2VydmljZS5pczI0SG91cihkYXRlVGltZVBpY2tlckZvcm1hdCkpIHtcbiAgICAgICAgICB0aGlzLmVuYWJsZU1lcmlkaWFuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybWF0VHJhbnNsYXRpb25TZXJ2aWNlLmhhc0RhdGUoZGF0ZVRpbWVQaWNrZXJGb3JtYXQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybWF0VHJhbnNsYXRpb25TZXJ2aWNlLmhhc05vRGF5KGRhdGVUaW1lUGlja2VyRm9ybWF0KSkge1xuICAgICAgdGhpcy5zdGFydFZpZXcgPSAnbXVsdGkteWVhcic7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9ybWF0VHJhbnNsYXRpb25TZXJ2aWNlLmhhc05vRGF5QW5kTW9udGgoZGF0ZVRpbWVQaWNrZXJGb3JtYXQpKSB7XG4gICAgICB0aGlzLnN0YXJ0VmlldyA9ICdtdWx0aS15ZWFyJztcbiAgICAgIHRoaXMueWVhclNlbGVjdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHllYXJTZWxlY3RlZChldmVudDogTW9tZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhcnRWaWV3ID09PSAnbXVsdGkteWVhcicgJiYgdGhpcy55ZWFyU2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLmRhdGVDb250cm9sLnBhdGNoVmFsdWUoZXZlbnQudG9JU09TdHJpbmcoKSk7XG4gICAgICB0aGlzLmRhdGV0aW1lUGlja2VyLmNsb3NlKCk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBtb250aFNlbGVjdGVkKGV2ZW50OiBNb21lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGFydFZpZXcgPT09ICdtdWx0aS15ZWFyJykge1xuICAgICAgdGhpcy5kYXRlQ29udHJvbC5wYXRjaFZhbHVlKGV2ZW50LnRvSVNPU3RyaW5nKCkpO1xuICAgICAgdGhpcy5kYXRlQ29udHJvbC5wYXRjaFZhbHVlKGV2ZW50LnRvSVNPU3RyaW5nKCkpO1xuICAgICAgdGhpcy5kYXRldGltZVBpY2tlci5jbG9zZSgpO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFZhbHVlQW5kU2V0RXJyb3JzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlKSB7XG4gICAgICBsZXQgZm9ybVZhbHVlID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgIGZvcm1WYWx1ZSA9IG1vbWVudChmb3JtVmFsdWUsIHRoaXMuZGF0ZVRpbWVFbnRyeUZvcm1hdCkuZm9ybWF0KHRoaXMubW9tZW50Rm9ybWF0KTtcbiAgICAgIGlmIChmb3JtVmFsdWUgIT09ICdJbnZhbGlkIGRhdGUnKSB7XG4gICAgICAgIC8vIGlmIG5vdCBpbnZhbGlkIHNldCB0aGUgdmFsdWUgYXMgdGhlIGZvcm1hdHRlZCB2YWx1ZVxuICAgICAgICB0aGlzLmRhdGVDb250cm9sLnNldFZhbHVlKGZvcm1WYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlbnN1cmUgdGhhdCB0aGUgZGF0ZXBpY2tlciBwaWNrcyB1cCB0aGUgaW52YWxpZCBlcnJvclxuICAgICAgICBjb25zdCBrZWVwRXJyb3JUZXh0ID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICAgICAgdGhpcy5kYXRlQ29udHJvbC5zZXRWYWx1ZShrZWVwRXJyb3JUZXh0KTtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IGtlZXBFcnJvclRleHQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGVuc3VyZSByZXF1aXJlZCBlcnJvcnMgYXJlIHBpY2tlZCB1cCBpZiByZWxldmFudFxuICAgICAgdGhpcy5kYXRlQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cCAgYm90dG9tLTMwXCIgW2lkXT1cImNhc2VGaWVsZC5pZFwiXG4gICAgIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGRhdGVDb250cm9sICYmICFkYXRlQ29udHJvbC52YWxpZCAmJiBkYXRlQ29udHJvbC5kaXJ0eX1cIj5cbiAgPGZpZWxkc2V0PlxuICAgIDxsZWdlbmQ+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0tbGFiZWxcIiAqbmdJZj1cImNhc2VGaWVsZC5sYWJlbFwiPnt7KGNhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWwpfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImZvcm0taGludFwiICpuZ0lmPVwiY2FzZUZpZWxkLmhpbnRfdGV4dFwiPnt7Y2FzZUZpZWxkLmhpbnRfdGV4dCB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZGF0ZUNvbnRyb2wgJiYgZGF0ZUNvbnRyb2wuZXJyb3JzICYmIGRhdGVDb250cm9sLmRpcnR5ICYmICEobWluRXJyb3IgfHwgbWF4RXJyb3IpXCI+e3soZGF0ZUNvbnRyb2wuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjpjYXNlRmllbGQubGFiZWwpfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAgICAgKm5nSWY9XCJkYXRlQ29udHJvbCAmJiBkYXRlQ29udHJvbC5kaXJ0eSAmJiBtaW5FcnJvclwiPnt7J1RoaXMgZGF0ZSBpcyBvbGRlciB0aGFuIHRoZSBtaW5pbXVtIGRhdGUgYWxsb3dlZCcgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICAqbmdJZj1cImRhdGVDb250cm9sICYmIGRhdGVDb250cm9sLmRpcnR5ICYmIG1heEVycm9yXCI+e3snVGhpcyBkYXRlIGlzIGxhdGVyIHRoYW4gdGhlIG1heGltdW0gZGF0ZSBhbGxvd2VkJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDwvbGVnZW5kPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRhaW5lclwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstaW5wdXRcIlxuICAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cIlBsZWFzZSBlbnRlciBhIGRhdGUgYW5kIHRpbWUgaW4gdGhlIGZvcm1hdCB8IHJweFRyYW5zbGF0ZSB7e2RhdGVUaW1lRW50cnlGb3JtYXR9fVwiXG4gICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlKGNhc2VGaWVsZClcIlxuICAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZShjYXNlRmllbGQpXCJcbiAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZGF0ZUNvbnRyb2xcIlxuICAgICAgICAgICAgIFtuZ3hNYXREYXRldGltZVBpY2tlcl09XCJwaWNrZXJcIlxuICAgICAgICAgICAgIChmb2N1c2luKT1cImZvY3VzSW4oKVwiXG4gICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImZvY3VzT3V0KClcIlxuICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cInZhbHVlQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgICBuZy1tb2RlbC1vcHRpb25zPVwie3RpbWV6b25lOid1dGMnfVwiXG4gICAgICA+XG4gICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiIGlkPVwicGlja2VyT3BlbmVyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICA8bmd4LW1hdC1kYXRldGltZS1waWNrZXIgI3BpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RvdWNoVWldPVwidG91Y2hVaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVUaW1lXT1cImhpZGVUaW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhcnRWaWV3XT1cInN0YXJ0Vmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBIb3VyXT1cInN0ZXBIb3VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RlcFNlY29uZF09XCJzdGVwU2Vjb25kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RlcE1pbnV0ZV09XCJzdGVwTWludXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NlY29uZHNdPVwic2hvd1NlY29uZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93U3Bpbm5lcnNdPVwic2hvd1NwaW5uZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZU1pbnV0ZV09XCJkaXNhYmxlTWludXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxlTWVyaWRpYW5dPVwiZW5hYmxlTWVyaWRpYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh5ZWFyU2VsZWN0ZWQpPVwieWVhclNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb250aFNlbGVjdGVkKT1cIm1vbnRoU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9wZW5lZCk9XCJ0b2dnbGVDbGljaygpXCJcbiAgICAgID5cbiAgICAgICAgPG5neC1tYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgbmd4TWF0RGF0ZXBpY2tlckFwcGx5PkNvbmZpcm08L2J1dHRvbj5cbiAgICAgICAgPC9uZ3gtbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cbiAgICAgIDwvbmd4LW1hdC1kYXRldGltZS1waWNrZXI+XG4gICAgPC9kaXY+XG4gIDwvZmllbGRzZXQ+XG48L2Rpdj5cbiJdfQ==
343
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2RhdGV0aW1lLXBpY2tlci9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZGF0ZXRpbWUtcGlja2VyL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBRWpCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDckIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN2SCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBc0MsTUFBTSwrQkFBK0IsQ0FBQztBQUczRyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDbEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztJQ1oxRCxnQ0FBaUQ7SUFBQSxZQUErQjs7SUFB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QUNJLDhCQUNBLGdDQUNFLGtDQUNFLG9DQUNFLHNDQUNFOzs7aUZESG5ELHVCQUF1QjtjQWhCbkMsU0FBUzsyQkFDRSxxQkFBcUIsaUJBR2hCLGlCQUFpQixDQUFDLElBQUksYUFDMUI7b0JBQ1QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFO29CQUNsRTt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixRQUFRLEVBQUUsbUJBQW1CO3dCQUM3QixJQUFJLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxtQ0FBbUMsQ0FBQztxQkFDcEU7b0JBQ0QsRUFBRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUM3RTs7c0JBbUNFLE1BQU07dUJBQUMsb0JBQW9CO3FCQVZpQixjQUFjO2tCQUE1RCxTQUFTO21CQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDUSxZQUFZO2tCQUF6RCxTQUFTO21CQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFFckIsV0FBVztrQkFBMUIsS0FBSzs7a0ZBekJLLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5neE1hdERhdGVBZGFwdGVyLFxuICBOZ3hNYXREYXRlRm9ybWF0cyxcbiAgTmd4TWF0RGF0ZXRpbWVwaWNrZXIsXG4gIE5HWF9NQVRfREFURV9GT1JNQVRTXG59IGZyb20gJ0Bhbmd1bGFyLW1hdGVyaWFsLWNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyJztcbmltcG9ydCB7IE5neE1hdE1vbWVudEFkYXB0ZXIsIE5HWF9NQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TIH0gZnJvbSAnQGFuZ3VsYXItbWF0ZXJpYWwtY29tcG9uZW50cy9tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNQVRfTEVHQUNZX0RBVEVfTE9DQUxFLCBMZWdhY3lUaGVtZVBhbGV0dGUgYXMgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWNvcmUnO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50L21vbWVudCc7XG5cbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybWF0VHJhbnNsYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jYXNlLWZpZWxkcy9mb3JtYXQtdHJhbnNsYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0Rm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDVVNUT01fTU9NRU5UX0ZPUk1BVFMgfSBmcm9tICcuL2RhdGV0aW1lLXBpY2tlci11dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1kYXRldGltZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTkdYX01BVF9EQVRFX0ZPUk1BVFMsIHVzZVZhbHVlOiBDVVNUT01fTU9NRU5UX0ZPUk1BVFMgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOZ3hNYXREYXRlQWRhcHRlcixcbiAgICAgIHVzZUNsYXNzOiBOZ3hNYXRNb21lbnRBZGFwdGVyLFxuICAgICAgZGVwczogW01BVF9MRUdBQ1lfREFURV9MT0NBTEUsIE5HWF9NQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXVxuICAgIH0sXG4gICAgeyBwcm92aWRlOiBOR1hfTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgdXNlVmFsdWU6IHsgdXNlVXRjOiB0cnVlIH0gfVxuICBdXG59KVxuXG5leHBvcnQgY2xhc3MgRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHNob3dTcGlubmVycyA9IHRydWU7XG4gIHB1YmxpYyBzaG93U2Vjb25kcyA9IGZhbHNlO1xuICBwdWJsaWMgdG91Y2hVaSA9IGZhbHNlO1xuICBwdWJsaWMgZW5hYmxlTWVyaWRpYW4gPSBmYWxzZTtcbiAgcHVibGljIHN0ZXBIb3VyID0gMTtcbiAgcHVibGljIHN0ZXBNaW51dGUgPSAxO1xuICBwdWJsaWMgc3RlcFNlY29uZCA9IDE7XG4gIHB1YmxpYyBjb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xuICBwdWJsaWMgZGlzYWJsZU1pbnV0ZSA9IHRydWU7XG4gIHB1YmxpYyBoaWRlVGltZSA9IHRydWU7XG4gIHB1YmxpYyBoaWRlTWludXRlcyA9IHRydWU7XG4gIHB1YmxpYyBzdGFydFZpZXcgPSAnbW9udGgnO1xuICBwdWJsaWMgeWVhclNlbGVjdGlvbiA9IGZhbHNlO1xuICBwdWJsaWMgY2hlY2tUaW1lID0gdHJ1ZTtcbiAgcHVibGljIHN0cmluZ0VkaXRlZCA9IGZhbHNlO1xuICBwdWJsaWMgbWluRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIG1heEVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBkYXRlVGltZUVudHJ5Rm9ybWF0OiBzdHJpbmc7XG4gIHByaXZhdGUgaXNVcGRhdGluZyA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgZGF0ZXRpbWVQaWNrZXI6IE5neE1hdERhdGV0aW1lcGlja2VyPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgQElucHV0KCkgcHVibGljIGRhdGVDb250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChuZXcgRGF0ZSgpKTtcblxuICBwcml2YXRlIG1pbmltdW1EYXRlID0gbmV3IERhdGUoJzAxLzAxLzE4MDAnKTtcbiAgcHJpdmF0ZSBtYXhpbXVtRGF0ZSA9IG51bGw7XG4gIHByaXZhdGUgbW9tZW50Rm9ybWF0ID0gJ1lZWVktTU0tRERUSEg6bW06c3MuU1NTJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZvcm1hdFRyYW5zbGF0aW9uU2VydmljZTogRm9ybWF0VHJhbnNsYXRvclNlcnZpY2UsXG4gICAgQEluamVjdChOR1hfTUFUX0RBVEVfRk9STUFUUykgcHJpdmF0ZSByZWFkb25seSBuZ3hNYXREYXRlRm9ybWF0czogTmd4TWF0RGF0ZUZvcm1hdHMpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZVRpbWVFbnRyeUZvcm1hdCA9IHRoaXMuZm9ybWF0VHJhbnNsYXRpb25TZXJ2aWNlLnNob3dPbmx5RGF0ZXModGhpcy5jYXNlRmllbGQuZGF0ZVRpbWVFbnRyeUZvcm1hdCk7XG4gICAgdGhpcy5jb25maWd1cmVEYXRlUGlja2VyKHRoaXMuZGF0ZVRpbWVFbnRyeUZvcm1hdCk7XG4gICAgLy8gc2V0IGRhdGUgY29udHJvbCBiYXNlZCBvbiBtYW5kYXRvcnkgZmllbGRcbiAgICB0aGlzLmRhdGVDb250cm9sID0gKHRoaXMuY2FzZUZpZWxkLmlzTWFuZGF0b3J5ID9cbiAgICAgIHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtQ29udHJvbCh0aGlzLmNhc2VGaWVsZC52YWx1ZSB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSlcbiAgICAgIDogdGhpcy5yZWdpc3RlckNvbnRyb2wobmV3IEZvcm1Db250cm9sKHRoaXMuY2FzZUZpZWxkLnZhbHVlKSkpIGFzIEZvcm1Db250cm9sO1xuICAgIC8vIGluIHJlc2V0dGluZyB0aGUgZm9ybWF0IGp1c3QgYWZ0ZXIgdGhlIHBhZ2UgaW5pdGlhbGlzZXMsIHRoZSBpbnB1dCBjYW4gYmUgcmVmb3JtYXR0ZWRcbiAgICAvLyBvdGhlcndpc2UgdGhlIGxhc3QgZm9ybWF0IGdpdmVuIHdpbGwgYmUgaG93IHRoZSB0ZXh0IHNob3duIHdpbGwgYmUgZGlzcGxheWVkXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XG4gICAgICB0aGlzLmxvYWRWYWx1ZSgpO1xuICAgIH0sIDEwMDApO1xuICAgIC8vIHdoZW4gdGhlIHN0YXR1cyBjaGFuZ2VzIGNoZWNrIHRoYXQgdGhlIG1heGltdW0vbWluaW11bSBkYXRlIGhhcyBub3QgYmVlbiBleGNlZWRlZFxuICAgIHRoaXMuZGF0ZUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5taW5FcnJvciA9IHRoaXMuZGF0ZUNvbnRyb2wuaGFzRXJyb3IoJ21hdERhdGV0aW1lUGlja2VyTWluJyk7XG4gICAgICB0aGlzLm1heEVycm9yID0gdGhpcy5kYXRlQ29udHJvbC5oYXNFcnJvcignbWF0RGF0ZXRpbWVQaWNrZXJNYXgnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREYXRlVGltZUZvcm1hdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5neE1hdERhdGVGb3JtYXRzLnBhcnNlLmRhdGVJbnB1dCA9IHRoaXMuZGF0ZVRpbWVFbnRyeUZvcm1hdDtcbiAgICB0aGlzLm5neE1hdERhdGVGb3JtYXRzLmRpc3BsYXkuZGF0ZUlucHV0ID0gdGhpcy5kYXRlVGltZUVudHJ5Rm9ybWF0O1xuICB9XG5cbiAgLypcbiAgV2hlbiB0aGUgdmFsdWUgY2hhbmdlcywgdXBkYXRlIHRoZSBmb3JtIGNvbnRyb2xcbiAgKi9cbiAgcHVibGljIHZhbHVlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1hdFZhbHVlQW5kU2V0RXJyb3JzKCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXNJbigpOiB2b2lkIHtcbiAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXNPdXQoKTogdm9pZCB7XG4gICAgLy8gZm9jdXMgb3V0IG5lZWRlZCB0byBvYnRhaW4gZXJyb3JzIChyZWxldmFudCB0byBmb3JtYXR0aW5nKVxuICAgIHRoaXMuZm9ybWF0VmFsdWVBbmRTZXRFcnJvcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnNldERhdGVUaW1lRm9ybWF0KCk7XG4gIH1cblxuICBwdWJsaWMgbWluRGF0ZShjYXNlRmllbGQ6IENhc2VGaWVsZCk6IERhdGUge1xuICAgIC8vIHNldCBtaW5pbXVtIGRhdGVcbiAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUubWluIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgdGhpcy5taW5pbXVtRGF0ZSA9IGNhc2VGaWVsZC5maWVsZF90eXBlLm1pbiA/IG5ldyBEYXRlKGNhc2VGaWVsZC5maWVsZF90eXBlLm1pbikgOiB0aGlzLm1pbmltdW1EYXRlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5taW5pbXVtRGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBtYXhEYXRlKGNhc2VGaWVsZDogQ2FzZUZpZWxkKTogRGF0ZSB7XG4gICAgLy8gc2V0IG1heGltdW0gZGF0ZVxuICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS5tYXggaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICB0aGlzLm1heGltdW1EYXRlID0gY2FzZUZpZWxkLmZpZWxkX3R5cGUubWF4ID8gbmV3IERhdGUoY2FzZUZpZWxkLmZpZWxkX3R5cGUubWF4KSA6IHRoaXMubWF4aW11bURhdGU7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1heGltdW1EYXRlO1xuICB9XG5cbiAgcHVibGljIGNvbmZpZ3VyZURhdGVQaWNrZXIoZGF0ZVRpbWVQaWNrZXJGb3JtYXQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdEYXRlJykge1xuICAgICAgdGhpcy5oaWRlVGltZSA9IHRydWU7XG4gICAgICB0aGlzLmNoZWNrVGltZSA9IGZhbHNlO1xuICAgICAgdGhpcy5kYXRlVGltZUVudHJ5Rm9ybWF0ID0gdGhpcy5mb3JtYXRUcmFuc2xhdGlvblNlcnZpY2UucmVtb3ZlVGltZSh0aGlzLmRhdGVUaW1lRW50cnlGb3JtYXQpO1xuICAgICAgdGhpcy5tb21lbnRGb3JtYXQgPSAnWVlZWS1NTS1ERCc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2hlY2tUaW1lKSB7XG5cbiAgICAgIGlmICh0aGlzLmZvcm1hdFRyYW5zbGF0aW9uU2VydmljZS5oYXNTZWNvbmRzKGRhdGVUaW1lUGlja2VyRm9ybWF0KSkge1xuICAgICAgICB0aGlzLnNob3dTZWNvbmRzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5oaWRlTWludXRlcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmRpc2FibGVNaW51dGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oaWRlVGltZSA9IGZhbHNlO1xuICAgICAgICBpZiAoIXRoaXMuZm9ybWF0VHJhbnNsYXRpb25TZXJ2aWNlLmlzMjRIb3VyKGRhdGVUaW1lUGlja2VyRm9ybWF0KSkge1xuICAgICAgICAgIHRoaXMuZW5hYmxlTWVyaWRpYW4gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5mb3JtYXRUcmFuc2xhdGlvblNlcnZpY2UuaGFzSG91cnMoZGF0ZVRpbWVQaWNrZXJGb3JtYXQpKSB7XG4gICAgICAgIHRoaXMuaGlkZVRpbWUgPSBmYWxzZTtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1hdFRyYW5zbGF0aW9uU2VydmljZS5pczI0SG91cihkYXRlVGltZVBpY2tlckZvcm1hdCkpIHtcbiAgICAgICAgICB0aGlzLmVuYWJsZU1lcmlkaWFuID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmZvcm1hdFRyYW5zbGF0aW9uU2VydmljZS5oYXNNaW51dGVzKGRhdGVUaW1lUGlja2VyRm9ybWF0KSkge1xuICAgICAgICB0aGlzLmhpZGVNaW51dGVzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1pbnV0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhpZGVUaW1lID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5mb3JtYXRUcmFuc2xhdGlvblNlcnZpY2UuaXMyNEhvdXIoZGF0ZVRpbWVQaWNrZXJGb3JtYXQpKSB7XG4gICAgICAgICAgdGhpcy5lbmFibGVNZXJpZGlhbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1hdFRyYW5zbGF0aW9uU2VydmljZS5oYXNEYXRlKGRhdGVUaW1lUGlja2VyRm9ybWF0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1hdFRyYW5zbGF0aW9uU2VydmljZS5oYXNOb0RheShkYXRlVGltZVBpY2tlckZvcm1hdCkpIHtcbiAgICAgIHRoaXMuc3RhcnRWaWV3ID0gJ211bHRpLXllYXInO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm1hdFRyYW5zbGF0aW9uU2VydmljZS5oYXNOb0RheUFuZE1vbnRoKGRhdGVUaW1lUGlja2VyRm9ybWF0KSkge1xuICAgICAgdGhpcy5zdGFydFZpZXcgPSAnbXVsdGkteWVhcic7XG4gICAgICB0aGlzLnllYXJTZWxlY3Rpb24gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB5ZWFyU2VsZWN0ZWQoZXZlbnQ6IE1vbWVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXJ0VmlldyA9PT0gJ211bHRpLXllYXInICYmIHRoaXMueWVhclNlbGVjdGlvbikge1xuICAgICAgdGhpcy5kYXRlQ29udHJvbC5wYXRjaFZhbHVlKGV2ZW50LnRvSVNPU3RyaW5nKCkpO1xuICAgICAgdGhpcy5kYXRldGltZVBpY2tlci5jbG9zZSgpO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbW9udGhTZWxlY3RlZChldmVudDogTW9tZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3RhcnRWaWV3ID09PSAnbXVsdGkteWVhcicpIHtcbiAgICAgIHRoaXMuZGF0ZUNvbnRyb2wucGF0Y2hWYWx1ZShldmVudC50b0lTT1N0cmluZygpKTtcbiAgICAgIHRoaXMuZGF0ZUNvbnRyb2wucGF0Y2hWYWx1ZShldmVudC50b0lTT1N0cmluZygpKTtcbiAgICAgIHRoaXMuZGF0ZXRpbWVQaWNrZXIuY2xvc2UoKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkVmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUpIHtcbiAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgICAgY29uc3QgZm9ybVZhbHVlID0gbW9tZW50KGlucHV0VmFsdWUsIHRoaXMuZGF0ZVRpbWVFbnRyeUZvcm1hdCkuZm9ybWF0KHRoaXMubW9tZW50Rm9ybWF0KTtcbiAgICAgIGlmIChmb3JtVmFsdWUgIT09ICdJbnZhbGlkIGRhdGUnKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsTW9tZW50ID0gbW9tZW50LnV0Yyhmb3JtVmFsdWUpLmxvY2FsKCk7XG4gICAgICAgIHRoaXMuZGF0ZUNvbnRyb2wuc2V0VmFsdWUobW9tZW50KGZvcm1WYWx1ZSkuZm9ybWF0KHRoaXMubW9tZW50Rm9ybWF0KSk7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBsb2NhbE1vbWVudC5mb3JtYXQodGhpcy5kYXRlVGltZUVudHJ5Rm9ybWF0KTtcbiAgICAgICAgaWYgKHRoaXMuZGF0ZXRpbWVQaWNrZXIpIHtcbiAgICAgICAgICB0aGlzLmRhdGV0aW1lUGlja2VyLnNlbGVjdChsb2NhbE1vbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBpbnZhbGlkLCBqdXN0IHNob3cgdGhlIHJhdyB2YWx1ZVxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kYXRlQ29udHJvbC52YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0VmFsdWVBbmRTZXRFcnJvcnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNVcGRhdGluZykgcmV0dXJuO1xuICAgIHRoaXMuaXNVcGRhdGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSkge1xuICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICBjb25zdCBmb3JtVmFsdWUgPSBtb21lbnQoaW5wdXRWYWx1ZSwgdGhpcy5kYXRlVGltZUVudHJ5Rm9ybWF0KS5mb3JtYXQodGhpcy5tb21lbnRGb3JtYXQpO1xuICAgICAgY29uc3QgbG9jYWxNb21lbnQgPSBtb21lbnQoaW5wdXRWYWx1ZSwgdGhpcy5kYXRlVGltZUVudHJ5Rm9ybWF0LCB0cnVlKTtcbiAgICAgIGlmIChmb3JtVmFsdWUgIT09ICdJbnZhbGlkIGRhdGUnKSB7XG4gICAgICAgIGNvbnN0IHV0Y1ZhbHVlID0gbG9jYWxNb21lbnQuY2xvbmUoKS51dGMoKS5mb3JtYXQodGhpcy5tb21lbnRGb3JtYXQpO1xuICAgICAgICB0aGlzLmRhdGVDb250cm9sLnNldFZhbHVlKHV0Y1ZhbHVlKTtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IGxvY2FsTW9tZW50LmZvcm1hdCh0aGlzLmRhdGVUaW1lRW50cnlGb3JtYXQpO1xuICAgICAgICAvLyBpZiAodGhpcy5kYXRldGltZVBpY2tlcikge1xuICAgICAgICAvLyAgIHRoaXMuZGF0ZXRpbWVQaWNrZXIuc2VsZWN0KGxvY2FsTW9tZW50KTsgLy8gZ3VhcmRlZCBmcm9tIHJlY3Vyc2lvblxuICAgICAgICAvLyB9XG4gICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qga2VlcEVycm9yVGV4dCA9IHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gICAgICAgIHRoaXMuZGF0ZUNvbnRyb2wuc2V0VmFsdWUoa2VlcEVycm9yVGV4dCk7XG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBrZWVwRXJyb3JUZXh0O1xuICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRlQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwICBib3R0b20tMzBcIiBbaWRdPVwiY2FzZUZpZWxkLmlkXCJcbiAgICAgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZGF0ZUNvbnRyb2wgJiYgIWRhdGVDb250cm9sLnZhbGlkICYmIGRhdGVDb250cm9sLmRpcnR5fVwiPlxuICA8ZmllbGRzZXQ+XG4gICAgPGxlZ2VuZD5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiICpuZ0lmPVwiY2FzZUZpZWxkLmxhYmVsXCI+e3soY2FzZUZpZWxkIHwgY2NkRmllbGRMYWJlbCl9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1oaW50XCIgKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0XCI+e3tjYXNlRmllbGQuaGludF90ZXh0IHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAgICAgKm5nSWY9XCJkYXRlQ29udHJvbCAmJiBkYXRlQ29udHJvbC5lcnJvcnMgJiYgZGF0ZUNvbnRyb2wuZGlydHkgJiYgIShtaW5FcnJvciB8fCBtYXhFcnJvcilcIj57eyhkYXRlQ29udHJvbC5lcnJvcnMgfCBjY2RGaXJzdEVycm9yOmNhc2VGaWVsZC5sYWJlbCl9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICAgICAqbmdJZj1cImRhdGVDb250cm9sICYmIGRhdGVDb250cm9sLmRpcnR5ICYmIG1pbkVycm9yXCI+e3snVGhpcyBkYXRlIGlzIG9sZGVyIHRoYW4gdGhlIG1pbmltdW0gZGF0ZSBhbGxvd2VkJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcbiAgICAgICAgICAgICpuZ0lmPVwiZGF0ZUNvbnRyb2wgJiYgZGF0ZUNvbnRyb2wuZGlydHkgJiYgbWF4RXJyb3JcIj57eydUaGlzIGRhdGUgaXMgbGF0ZXIgdGhhbiB0aGUgbWF4aW11bSBkYXRlIGFsbG93ZWQnIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgPC9sZWdlbmQ+XG4gICAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItY29udGFpbmVyXCI+XG4gICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1pbnB1dFwiXG4gICAgICAgICAgICAgI2lucHV0XG4gICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiUGxlYXNlIGVudGVyIGEgZGF0ZSBhbmQgdGltZSBpbiB0aGUgZm9ybWF0IHwgcnB4VHJhbnNsYXRlIHt7ZGF0ZVRpbWVFbnRyeUZvcm1hdH19XCJcbiAgICAgICAgICAgICBbbWluXT1cIm1pbkRhdGUoY2FzZUZpZWxkKVwiXG4gICAgICAgICAgICAgW21heF09XCJtYXhEYXRlKGNhc2VGaWVsZClcIlxuICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkYXRlQ29udHJvbFwiXG4gICAgICAgICAgICAgW25neE1hdERhdGV0aW1lUGlja2VyXT1cInBpY2tlclwiXG4gICAgICAgICAgICAgKGZvY3VzaW4pPVwiZm9jdXNJbigpXCJcbiAgICAgICAgICAgICAoZm9jdXNvdXQpPVwiZm9jdXNPdXQoKVwiXG4gICAgICAgICAgICAgKGRhdGVDaGFuZ2UpPVwidmFsdWVDaGFuZ2VkKClcIlxuICAgICAgPlxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIiBpZD1cInBpY2tlck9wZW5lclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgPG5neC1tYXQtZGF0ZXRpbWUtcGlja2VyICNwaWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b3VjaFVpXT1cInRvdWNoVWlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlVGltZV09XCJoaWRlVGltZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXJ0Vmlld109XCJzdGFydFZpZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGVwSG91cl09XCJzdGVwSG91clwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBTZWNvbmRdPVwic3RlcFNlY29uZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBNaW51dGVdPVwic3RlcE1pbnV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dTZWNvbmRzXT1cInNob3dTZWNvbmRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NwaW5uZXJzXT1cInNob3dTcGlubmVyc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVNaW51dGVdPVwiZGlzYWJsZU1pbnV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZU1lcmlkaWFuXT1cImVuYWJsZU1lcmlkaWFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeWVhclNlbGVjdGVkKT1cInllYXJTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJtb250aFNlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcGVuZWQpPVwidG9nZ2xlQ2xpY2soKVwiXG4gICAgICA+XG4gICAgICAgIDxuZ3gtbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIG5neE1hdERhdGVwaWNrZXJBcHBseT5Db25maXJtPC9idXR0b24+XG4gICAgICAgIDwvbmd4LW1hdC1kYXRlcGlja2VyLWFjdGlvbnM+XG4gICAgICA8L25neC1tYXQtZGF0ZXRpbWUtcGlja2VyPlxuICAgIDwvZGl2PlxuICA8L2ZpZWxkc2V0PlxuPC9kaXY+XG4iXX0=
@@ -10,10 +10,10 @@ import * as i2 from "../../../services/document-management";
10
10
  import * as i3 from "@angular/router";
11
11
  import * as i4 from "../../case-editor/services/cases.service";
12
12
  import * as i5 from "@angular/common";
13
- function ReadDocumentFieldComponent_a_0_Template(rf, ctx) { if (rf & 1) {
13
+ function ReadDocumentFieldComponent_button_0_Template(rf, ctx) { if (rf & 1) {
14
14
  const _r1 = i0.ɵɵgetCurrentView();
15
- i0.ɵɵelementStart(0, "a", 1);
16
- i0.ɵɵlistener("click", function ReadDocumentFieldComponent_a_0_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showMediaViewer()); });
15
+ i0.ɵɵelementStart(0, "button", 1);
16
+ i0.ɵɵlistener("click", function ReadDocumentFieldComponent_button_0_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.showMediaViewer()); });
17
17
  i0.ɵɵtext(1);
18
18
  i0.ɵɵelementEnd();
19
19
  } if (rf & 2) {
@@ -74,15 +74,15 @@ export class ReadDocumentFieldComponent extends AbstractFieldReadComponent {
74
74
  }
75
75
  }
76
76
  static ɵfac = function ReadDocumentFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadDocumentFieldComponent)(i0.ɵɵdirectiveInject(i1.WindowService), i0.ɵɵdirectiveInject(i2.DocumentManagementService), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject(i3.ActivatedRoute), i0.ɵɵdirectiveInject(i4.CasesService)); };
77
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadDocumentFieldComponent, selectors: [["ccd-read-document-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["href", "javascript:void(0)", 3, "click", 4, "ngIf"], ["href", "javascript:void(0)", 3, "click"]], template: function ReadDocumentFieldComponent_Template(rf, ctx) { if (rf & 1) {
78
- i0.ɵɵtemplate(0, ReadDocumentFieldComponent_a_0_Template, 2, 1, "a", 0);
77
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadDocumentFieldComponent, selectors: [["ccd-read-document-field"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["type", "button", "class", "govuk-js-link", 3, "click", 4, "ngIf"], ["type", "button", 1, "govuk-js-link", 3, "click"]], template: function ReadDocumentFieldComponent_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵtemplate(0, ReadDocumentFieldComponent_button_0_Template, 2, 1, "button", 0);
79
79
  } if (rf & 2) {
80
80
  i0.ɵɵproperty("ngIf", ctx.caseField.value);
81
81
  } }, dependencies: [i5.NgIf], encapsulation: 2 });
82
82
  }
83
83
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadDocumentFieldComponent, [{
84
84
  type: Component,
85
- args: [{ selector: 'ccd-read-document-field', template: "<a *ngIf=\"caseField.value\" href=\"javascript:void(0)\"\n (click)=\"showMediaViewer()\">\n {{ caseField.value.document_filename }}\n</a>\n" }]
85
+ args: [{ selector: 'ccd-read-document-field', template: "<button type=\"button\" *ngIf=\"caseField.value\" class=\"govuk-js-link\"\n (click)=\"showMediaViewer()\">\n {{ caseField.value.document_filename }}\n</button>\n" }]
86
86
  }], () => [{ type: i1.WindowService }, { type: i2.DocumentManagementService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.CasesService }], null); })();
87
87
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadDocumentFieldComponent, { className: "ReadDocumentFieldComponent", filePath: "lib/shared/components/palette/document/read-document-field.component.ts", lineNumber: 15 }); })();
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1kb2N1bWVudC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9kb2N1bWVudC9yZWFkLWRvY3VtZW50LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2RvY3VtZW50L3JlYWQtZG9jdW1lbnQtZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7O0lDTnpGLDRCQUMrQjtJQUE1QiwrS0FBUyx3QkFBaUIsS0FBQztJQUM1QixZQUNGO0lBQUEsaUJBQUk7OztJQURGLGNBQ0Y7SUFERSwwRUFDRjs7QURLQSxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDO0FBTTlDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSwwQkFBMEI7SUFLckQ7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVBaLG9CQUFvQixDQUFlO0lBRTFDLFlBQ21CLGFBQTRCLEVBQzVCLGtCQUE2QyxFQUM3QyxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsWUFBMEI7UUFFM0MsS0FBSyxFQUFFLENBQUM7UUFOUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTJCO1FBQzdDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUc3QyxDQUFDO0lBRU0sZUFBZTtRQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN2RixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDM0MsTUFBTSxVQUFVLEdBQUc7d0JBQ2pCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO3dCQUN2QixFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU87d0JBQ3BCLFlBQVksRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO3FCQUNqRCxDQUFDO29CQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25DLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxlQUFlLENBQUMsa0JBQWtCO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDdEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixPQUFPLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztvSEFuRFUsMEJBQTBCOzZEQUExQiwwQkFBMEI7WUNkdkMsdUVBQytCOztZQUQzQiwwQ0FBcUI7OztpRkRjWiwwQkFBMEI7Y0FKdEMsU0FBUzsyQkFDRSx5QkFBeUI7O2tGQUd4QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy93aW5kb3cnO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtcmVhZC5jb21wb25lbnQnO1xuXG5jb25zdCBNRURJQV9WSUVXRVJfSU5GTyA9ICdtZWRpYS12aWV3ZXItaW5mbyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLWRvY3VtZW50LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWQtZG9jdW1lbnQtZmllbGQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVhZERvY3VtZW50RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGNhc2VWaWV3U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRNYW5hZ2VtZW50OiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHNob3dNZWRpYVZpZXdlcigpOiB2b2lkIHtcbiAgICBjb25zdCBjYXNlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snY2lkJ107XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnJlbW92ZUxvY2FsU3RvcmFnZShNRURJQV9WSUVXRVJfSU5GTyk7XG4gICAgaWYgKGNhc2VJZCkge1xuICAgICAgdGhpcy5jYXNlVmlld1N1YnNjcmlwdGlvbiA9IHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIoY2FzZUlkKS5zdWJzY3JpYmUoY2FzZVZpZXcgPT4ge1xuICAgICAgICBpZiAodGhpcy5jYXNlRmllbGQgJiYgdGhpcy5jYXNlRmllbGQudmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBtZXJnZWRJbmZvID0ge1xuICAgICAgICAgICAgLi4udGhpcy5jYXNlRmllbGQudmFsdWUsXG4gICAgICAgICAgICBpZDogY2FzZVZpZXcuY2FzZV9pZCxcbiAgICAgICAgICAgIGp1cmlzZGljdGlvbjogY2FzZVZpZXcuY2FzZV90eXBlLmp1cmlzZGljdGlvbi5pZFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5vcGVuTWVkaWFWaWV3ZXIobWVyZ2VkSW5mbyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jYXNlRmllbGQgJiYgdGhpcy5jYXNlRmllbGQudmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcGVuTWVkaWFWaWV3ZXIodGhpcy5jYXNlRmllbGQudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuTWVkaWFWaWV3ZXIoZG9jdW1lbnRGaWVsZFZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShNRURJQV9WSUVXRVJfSU5GTywgdGhpcy5kb2N1bWVudE1hbmFnZW1lbnQuZ2V0TWVkaWFWaWV3ZXJJbmZvKGRvY3VtZW50RmllbGRWYWx1ZSkpO1xuICAgIHRoaXMud2luZG93U2VydmljZS5vcGVuT25OZXdUYWIodGhpcy5nZXRNZWRpYVZpZXdlclVybCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZWRpYVZpZXdlclVybCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvdXRlck1lZGlhVmlld2VyID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy9tZWRpYS12aWV3ZXInXSk7XG4gICAgaWYgKHJvdXRlck1lZGlhVmlld2VyKSB7XG4gICAgICByZXR1cm4gcm91dGVyTWVkaWFWaWV3ZXIudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FzZVZpZXdTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY2FzZVZpZXdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxhICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAoY2xpY2spPVwic2hvd01lZGlhVmlld2VyKClcIj5cbiAge3sgY2FzZUZpZWxkLnZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lIH19XG48L2E+XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1kb2N1bWVudC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9kb2N1bWVudC9yZWFkLWRvY3VtZW50LWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2RvY3VtZW50L3JlYWQtZG9jdW1lbnQtZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7Ozs7O0lDTnpGLGlDQUMrQjtJQUE1Qix5TEFBUyx3QkFBaUIsS0FBQztJQUM1QixZQUNGO0lBQUEsaUJBQVM7OztJQURQLGNBQ0Y7SUFERSwwRUFDRjs7QURLQSxNQUFNLGlCQUFpQixHQUFHLG1CQUFtQixDQUFDO0FBTTlDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSwwQkFBMEI7SUFLckQ7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVBaLG9CQUFvQixDQUFlO0lBRTFDLFlBQ21CLGFBQTRCLEVBQzVCLGtCQUE2QyxFQUM3QyxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsWUFBMEI7UUFFM0MsS0FBSyxFQUFFLENBQUM7UUFOUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTJCO1FBQzdDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBYztJQUc3QyxDQUFDO0lBRU0sZUFBZTtRQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN2RixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDM0MsTUFBTSxVQUFVLEdBQUc7d0JBQ2pCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO3dCQUN2QixFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU87d0JBQ3BCLFlBQVksRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO3FCQUNqRCxDQUFDO29CQUNGLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25DLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxlQUFlLENBQUMsa0JBQWtCO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDdEgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixPQUFPLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztvSEFuRFUsMEJBQTBCOzZEQUExQiwwQkFBMEI7WUNkdkMsaUZBQytCOztZQURSLDBDQUFxQjs7O2lGRGMvQiwwQkFBMEI7Y0FKdEMsU0FBUzsyQkFDRSx5QkFBeUI7O2tGQUd4QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERvY3VtZW50TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kb2N1bWVudC1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFdpbmRvd1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy93aW5kb3cnO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtZmllbGQvYWJzdHJhY3QtZmllbGQtcmVhZC5jb21wb25lbnQnO1xuXG5jb25zdCBNRURJQV9WSUVXRVJfSU5GTyA9ICdtZWRpYS12aWV3ZXItaW5mbyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLWRvY3VtZW50LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlYWQtZG9jdW1lbnQtZmllbGQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVhZERvY3VtZW50RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIGNhc2VWaWV3U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRNYW5hZ2VtZW50OiBEb2N1bWVudE1hbmFnZW1lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIHNob3dNZWRpYVZpZXdlcigpOiB2b2lkIHtcbiAgICBjb25zdCBjYXNlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snY2lkJ107XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnJlbW92ZUxvY2FsU3RvcmFnZShNRURJQV9WSUVXRVJfSU5GTyk7XG4gICAgaWYgKGNhc2VJZCkge1xuICAgICAgdGhpcy5jYXNlVmlld1N1YnNjcmlwdGlvbiA9IHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIoY2FzZUlkKS5zdWJzY3JpYmUoY2FzZVZpZXcgPT4ge1xuICAgICAgICBpZiAodGhpcy5jYXNlRmllbGQgJiYgdGhpcy5jYXNlRmllbGQudmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBtZXJnZWRJbmZvID0ge1xuICAgICAgICAgICAgLi4udGhpcy5jYXNlRmllbGQudmFsdWUsXG4gICAgICAgICAgICBpZDogY2FzZVZpZXcuY2FzZV9pZCxcbiAgICAgICAgICAgIGp1cmlzZGljdGlvbjogY2FzZVZpZXcuY2FzZV90eXBlLmp1cmlzZGljdGlvbi5pZFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5vcGVuTWVkaWFWaWV3ZXIobWVyZ2VkSW5mbyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jYXNlRmllbGQgJiYgdGhpcy5jYXNlRmllbGQudmFsdWUpIHtcbiAgICAgICAgdGhpcy5vcGVuTWVkaWFWaWV3ZXIodGhpcy5jYXNlRmllbGQudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuTWVkaWFWaWV3ZXIoZG9jdW1lbnRGaWVsZFZhbHVlKTogdm9pZCB7XG4gICAgdGhpcy53aW5kb3dTZXJ2aWNlLnNldExvY2FsU3RvcmFnZShNRURJQV9WSUVXRVJfSU5GTywgdGhpcy5kb2N1bWVudE1hbmFnZW1lbnQuZ2V0TWVkaWFWaWV3ZXJJbmZvKGRvY3VtZW50RmllbGRWYWx1ZSkpO1xuICAgIHRoaXMud2luZG93U2VydmljZS5vcGVuT25OZXdUYWIodGhpcy5nZXRNZWRpYVZpZXdlclVybCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNZWRpYVZpZXdlclVybCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJvdXRlck1lZGlhVmlld2VyID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy9tZWRpYS12aWV3ZXInXSk7XG4gICAgaWYgKHJvdXRlck1lZGlhVmlld2VyKSB7XG4gICAgICByZXR1cm4gcm91dGVyTWVkaWFWaWV3ZXIudG9TdHJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FzZVZpZXdTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY2FzZVZpZXdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlXCIgY2xhc3M9XCJnb3Z1ay1qcy1saW5rXCJcbiAgIChjbGljayk9XCJzaG93TWVkaWFWaWV3ZXIoKVwiPlxuICB7eyBjYXNlRmllbGQudmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUgfX1cbjwvYnV0dG9uPlxuIl19
@@ -26,8 +26,8 @@ function BeforeYouStartComponent_div_1_Template(rf, ctx) { if (rf & 1) {
26
26
  i0.ɵɵtext(2, "There is a problem");
27
27
  i0.ɵɵelementEnd();
28
28
  i0.ɵɵtemplate(3, BeforeYouStartComponent_div_1_p_3_Template, 4, 1, "p", 2);
29
- i0.ɵɵelementStart(4, "p", 3)(5, "a", 4);
30
- i0.ɵɵlistener("click", function BeforeYouStartComponent_div_1_Template_a_click_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onBack()); });
29
+ i0.ɵɵelementStart(4, "p", 3)(5, "button", 4);
30
+ i0.ɵɵlistener("click", function BeforeYouStartComponent_div_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onBack()); });
31
31
  i0.ɵɵtext(6, "Go back to the Linked cases tab");
32
32
  i0.ɵɵelementEnd()()();
33
33
  } if (rf & 2) {
@@ -108,10 +108,10 @@ export class BeforeYouStartComponent extends AbstractJourneyComponent {
108
108
  }
109
109
  }
110
110
  onBack() {
111
- this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseId], { fragment: 'Linked cases' });
111
+ this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseJurisdictionID, this.linkedCasesService.caseDetails.case_type, this.linkedCasesService.caseId], { fragment: 'Linked cases' });
112
112
  }
113
113
  static ɵfac = function BeforeYouStartComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || BeforeYouStartComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.LinkedCasesService), i0.ɵɵdirectiveInject(i3.MultipageComponentStateService)); };
114
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BeforeYouStartComponent, selectors: [["ccd-linked-cases-before-you-start"]], outputs: { linkedCasesStateEmitter: "linkedCasesStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [[4, "ngIf"], [1, "govuk-heading-xl"], ["id", "unlink-cases-error", "class", "govuk-error-message", 4, "ngIf"], [1, "govuk-body"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], ["id", "unlink-cases-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "link-cases-journey", 4, "ngIf"], ["id", "manage-link-cases-journey", 4, "ngIf"], ["id", "link-cases-journey"], ["id", "manage-link-cases-journey"]], template: function BeforeYouStartComponent_Template(rf, ctx) { if (rf & 1) {
114
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BeforeYouStartComponent, selectors: [["ccd-linked-cases-before-you-start"]], outputs: { linkedCasesStateEmitter: "linkedCasesStateEmitter" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 2, consts: [[4, "ngIf"], [1, "govuk-heading-xl"], ["id", "unlink-cases-error", "class", "govuk-error-message", 4, "ngIf"], [1, "govuk-body"], ["type", "button", 1, "govuk-js-link", 3, "click"], ["id", "unlink-cases-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], ["id", "link-cases-journey", 4, "ngIf"], ["id", "manage-link-cases-journey", 4, "ngIf"], ["id", "link-cases-journey"], ["id", "manage-link-cases-journey"]], template: function BeforeYouStartComponent_Template(rf, ctx) { if (rf & 1) {
115
115
  i0.ɵɵelementStart(0, "div");
116
116
  i0.ɵɵtemplate(1, BeforeYouStartComponent_div_1_Template, 7, 1, "div", 0)(2, BeforeYouStartComponent_div_2_Template, 5, 2, "div", 0);
117
117
  i0.ɵɵelementEnd();
@@ -124,9 +124,9 @@ export class BeforeYouStartComponent extends AbstractJourneyComponent {
124
124
  }
125
125
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BeforeYouStartComponent, [{
126
126
  type: Component,
127
- args: [{ selector: 'ccd-linked-cases-before-you-start', template: "<div>\n <div *ngIf=\"serverLinkedApiError\">\n <h1 class=\"govuk-heading-xl\">There is a problem</h1>\n <p id=\"unlink-cases-error\" class=\"govuk-error-message\" *ngIf=\"serverLinkedApiError\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{serverLinkedApiError.message}}\n </p>\n <p class=\"govuk-body\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\" (click)=\"onBack()\">Go back to the Linked cases tab</a>\n </p>\n </div>\n <div *ngIf=\"!serverLinkedApiError\">\n <h1 class=\"govuk-heading-xl\">Before you start</h1>\n <div id=\"link-cases-journey\" *ngIf=\"isLinkCasesJourney\">\n <p class=\"govuk-body\">If a group of linked cases has a lead case, you must start from the lead case.</p>\n <p class=\"govuk-body\">If the cases to be linked has no lead, you can start the linking journey from any of those\n cases.</p>\n </div>\n <div id=\"manage-link-cases-journey\" *ngIf=\"!isLinkCasesJourney\">\n <p class=\"govuk-body\">If there are linked hearings for the case you need to un-link then you must unlink the\n hearing first.</p>\n </div>\n </div>\n</div>\n" }]
127
+ args: [{ selector: 'ccd-linked-cases-before-you-start', template: "<div>\n <div *ngIf=\"serverLinkedApiError\">\n <h1 class=\"govuk-heading-xl\">There is a problem</h1>\n <p id=\"unlink-cases-error\" class=\"govuk-error-message\" *ngIf=\"serverLinkedApiError\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{serverLinkedApiError.message}}\n </p>\n <p class=\"govuk-body\">\n <button type=\"button\" class=\"govuk-js-link\" (click)=\"onBack()\">Go back to the Linked cases tab</button>\n </p>\n </div>\n <div *ngIf=\"!serverLinkedApiError\">\n <h1 class=\"govuk-heading-xl\">Before you start</h1>\n <div id=\"link-cases-journey\" *ngIf=\"isLinkCasesJourney\">\n <p class=\"govuk-body\">If a group of linked cases has a lead case, you must start from the lead case.</p>\n <p class=\"govuk-body\">If the cases to be linked has no lead, you can start the linking journey from any of those\n cases.</p>\n </div>\n <div id=\"manage-link-cases-journey\" *ngIf=\"!isLinkCasesJourney\">\n <p class=\"govuk-body\">If there are linked hearings for the case you need to un-link then you must unlink the\n hearing first.</p>\n </div>\n </div>\n</div>\n" }]
128
128
  }], () => [{ type: i1.Router }, { type: i2.LinkedCasesService }, { type: i3.MultipageComponentStateService }], { linkedCasesStateEmitter: [{
129
129
  type: Output
130
130
  }] }); })();
131
131
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BeforeYouStartComponent, { className: "BeforeYouStartComponent", filePath: "lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.ts", lineNumber: 14 }); })();
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLXlvdS1zdGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9saW5rZWQtY2FzZXMvY29tcG9uZW50cy9iZWZvcmUteW91LXN0YXJ0L2JlZm9yZS15b3Utc3RhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvYmVmb3JlLXlvdS1zdGFydC9iZWZvcmUteW91LXN0YXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0lDSG5FLEFBREYsNEJBQW9GLGNBQzlDO0lBQUEsc0JBQU07SUFBQSxpQkFBTztJQUFDLFlBQ3BEO0lBQUEsaUJBQUk7OztJQURnRCxlQUNwRDtJQURvRCxvRUFDcEQ7Ozs7SUFIQSxBQURGLDJCQUFrQyxZQUNIO0lBQUEsa0NBQWtCO0lBQUEsaUJBQUs7SUFDcEQsMEVBQW9GO0lBSWxGLEFBREYsNEJBQXNCLFdB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MEI7WUFTMUIsY0FBMkI7WUFBM0IsZ0RBQTJCOzs7aUZER3RCLHVCQUF1QjtjQUpuQyxTQUFTOzJCQUNFLG1DQUFtQztxSEFNdEMsdUJBQXVCO2tCQUQ3QixNQUFNOztrRkFGSSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlLCBKb3VybmV5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IExpbmtlZENhc2VzU3RhdGUgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNQYWdlcyB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmtlZC1jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQnO1xuaW1wb3J0IHsgTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtbGlua2VkLWNhc2VzLWJlZm9yZS15b3Utc3RhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmVmb3JlLXlvdS1zdGFydC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQmVmb3JlWW91U3RhcnRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgaW1wbGVtZW50cyBKb3VybmV5IHtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGxpbmtlZENhc2VzU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8TGlua2VkQ2FzZXNTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPExpbmtlZENhc2VzU3RhdGU+KCk7XG5cbiAgcHVibGljIGlzTGlua0Nhc2VzSm91cm5leSA9IGZhbHNlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW107XG4gIHB1YmxpYyBzZXJ2ZXJMaW5rZWRBcGlFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICAgbXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlOiBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcihtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpO1xuICAgIHRoaXMuaXNMaW5rQ2FzZXNKb3VybmV5ID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNMaW5rZWRDYXNlc0V2ZW50VHJpZ2dlcjtcbiAgICB0aGlzLnNlcnZlckxpbmtlZEFwaUVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2Uuc2VydmVyTGlua2VkQXBpRXJyb3I7XG4gICAgY29uc3QgbGlua2VkQ2FzZVJlZmVyZW5jZUlkcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlLmZpbHRlcigoaXRlbSkgPT4gaXRlbSkubWFwKChpdGVtKSA9PiBpdGVtLmlkKTtcbiAgICBpZiAodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcy5sZW5ndGggIT09ICh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5sZW5ndGggKyB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlc1RvVW5saW5rLmxlbmd0aCkpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMuZmlsdGVyKChpdGVtKSA9PiBsaW5rZWRDYXNlUmVmZXJlbmNlSWRzLmluZGV4T2YoaXRlbS5jYXNlUmVmZXJlbmNlKSAhPT0gLTEpO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMubGVuZ3RoID09PSAwICYmIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlLmxlbmd0aCAhPT0gMCAmJiAhdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaGFzQ29udGludWVkRnJvbVN0YXJ0KSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmluaXRpYWxDYXNlTGlua1JlZnMucHVzaChpdGVtLmlkKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvL3ByZXZlbnQgdW5zdWJtaXR0ZWQgbGlua2VkIGNhc2VzIGZyb20gYmVpbmcgYXBwbGllZCBhcyBpZiB0aGV5IGFyZSB0aGUgaW5pdGlhbCBsaW5rZWQgY2FzZXNcbiAgICAgIGlmICghdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaGFzQ29udGludWVkRnJvbVN0YXJ0KXtcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmluaXRpYWxDYXNlTGlua1JlZnMucHVzaChpdGVtLmNhc2VSZWZlcmVuY2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcyA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmhhc0NvbnRpbnVlZEZyb21TdGFydCA9IHRydWU7XG4gICAgdGhpcy5saW5rZWRDYXNlc1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRMaW5rZWRDYXNlc1BhZ2U6IExpbmtlZENhc2VzUGFnZXMuQkVGT1JFX1lPVV9TVEFSVCxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyxcbiAgICAgIG5hdmlnYXRlVG9OZXh0UGFnZTogdHJ1ZVxuICAgIH0pO1xuXG4gICAgY29uc3QgaXNBbkFycmF5OiBib29sZWFuID0gQXJyYXkuaXNBcnJheSh0aGlzLmVycm9yTWVzc2FnZXMpO1xuICAgIGNvbnN0IGlzTm90QW5BcnJheTogYm9vbGVhbiA9ICFpc0FuQXJyYXk7XG4gICAgY29uc3QgaXNWYWxpZDogYm9vbGVhbiA9IChpc0FuQXJyYXkgJiYgdGhpcy5lcnJvck1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkgfHwgaXNOb3RBbkFycmF5O1xuXG4gICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgIHN1cGVyLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25CYWNrKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnY2FzZXMnLCAnY2FzZS1kZXRhaWxzJywgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkXSwgeyBmcmFnbWVudDogJ0xpbmtlZCBjYXNlcycgfSk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXYgKm5nSWY9XCJzZXJ2ZXJMaW5rZWRBcGlFcnJvclwiPlxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmcteGxcIj5UaGVyZSBpcyBhIHByb2JsZW08L2gxPlxuICAgIDxwIGlkPVwidW5saW5rLWNhc2VzLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJzZXJ2ZXJMaW5rZWRBcGlFcnJvclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7c2VydmVyTGlua2VkQXBpRXJyb3IubWVzc2FnZX19XG4gICAgPC9wPlxuICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlxuICAgICAgPGEgY2xhc3M9XCJnb3Z1ay1saW5rXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJvbkJhY2soKVwiPkdvIGJhY2sgdG8gdGhlIExpbmtlZCBjYXNlcyB0YWI8L2E+XG4gICAgPC9wPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cIiFzZXJ2ZXJMaW5rZWRBcGlFcnJvclwiPlxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmcteGxcIj5CZWZvcmUgeW91IHN0YXJ0PC9oMT5cbiAgICA8ZGl2IGlkPVwibGluay1jYXNlcy1qb3VybmV5XCIgKm5nSWY9XCJpc0xpbmtDYXNlc0pvdXJuZXlcIj5cbiAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPklmIGEgZ3JvdXAgb2YgbGlua2VkIGNhc2VzIGhhcyBhIGxlYWQgY2FzZSwgeW91IG11c3Qgc3RhcnQgZnJvbSB0aGUgbGVhZCBjYXNlLjwvcD5cbiAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPklmIHRoZSBjYXNlcyB0byBiZSBsaW5rZWQgaGFzIG5vIGxlYWQsIHlvdSBjYW4gc3RhcnQgdGhlIGxpbmtpbmcgam91cm5leSBmcm9tIGFueSBvZiB0aG9zZVxuICAgICAgICBjYXNlcy48L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBpZD1cIm1hbmFnZS1saW5rLWNhc2VzLWpvdXJuZXlcIiAqbmdJZj1cIiFpc0xpbmtDYXNlc0pvdXJuZXlcIj5cbiAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPklmIHRoZXJlIGFyZSBsaW5rZWQgaGVhcmluZ3MgZm9yIHRoZSBjYXNlIHlvdSBuZWVkIHRvIHVuLWxpbmsgdGhlbiB5b3UgbXVzdCB1bmxpbmsgdGhlXG4gICAgICAgIGhlYXJpbmcgZmlyc3QuPC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLXlvdS1zdGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9saW5rZWQtY2FzZXMvY29tcG9uZW50cy9iZWZvcmUteW91LXN0YXJ0L2JlZm9yZS15b3Utc3RhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvYmVmb3JlLXlvdS1zdGFydC9iZWZvcmUteW91LXN0YXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0lDSG5FLEFBREYsNEJBQW9GLGNBQzlDO0lBQUEsc0JBQU07SUFBQSxpQkFBTztJQUFDLFlBQ3BEO0lBQUEsaUJBQUk7OztJQURnRCxlQUNwRDtJQURvRCxvRUFDcEQ7Ozs7SUFIQSxBQURGLDJCQUFrQyxZQUNIO0lBQUEsa0NBQWtCO0lBQUEsaUJBQUs7SUFDcEQsMEVBQW9GO0lBSWxGLEFBREYsNEJBQXNCLGdC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dUJBQXVCO1lDYnBDLDJCQUFLO1lBVUgsQUFUQSx3RUFBa0MsMkRBU0M7WUFZckMsaUJBQU07O1lBckJFLGNBQTBCO1lBQTFCLCtDQUEwQjtZQVMxQixjQUEyQjtZQUEzQixnREFBMkI7OztpRkRHdEIsdUJBQXVCO2NBSm5DLFNBQVM7MkJBQ0UsbUNBQW1DO3FIQU10Qyx1QkFBdUI7a0JBRDdCLE1BQU07O2tGQUZJLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIEpvdXJuZXkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTdGF0ZSB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1BhZ2VzIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGlua2VkLWNhc2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RKb3VybmV5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYmFzZS1maWVsZCc7XG5pbXBvcnQgeyBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1saW5rZWQtY2FzZXMtYmVmb3JlLXlvdS1zdGFydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9iZWZvcmUteW91LXN0YXJ0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBCZWZvcmVZb3VTdGFydENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCBpbXBsZW1lbnRzIEpvdXJuZXkge1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbGlua2VkQ2FzZXNTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxMaW5rZWRDYXNlc1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8TGlua2VkQ2FzZXNTdGF0ZT4oKTtcblxuICBwdWJsaWMgaXNMaW5rQ2FzZXNKb3VybmV5ID0gZmFsc2U7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXTtcbiAgcHVibGljIHNlcnZlckxpbmtlZEFwaUVycm9yOiB7IGlkOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSxcbiAgICBtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2U6IE11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSkge1xuICAgIHN1cGVyKG11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSk7XG4gICAgdGhpcy5pc0xpbmtDYXNlc0pvdXJuZXkgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pc0xpbmtlZENhc2VzRXZlbnRUcmlnZ2VyO1xuICAgIHRoaXMuc2VydmVyTGlua2VkQXBpRXJyb3IgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5zZXJ2ZXJMaW5rZWRBcGlFcnJvcjtcbiAgICBjb25zdCBsaW5rZWRDYXNlUmVmZXJlbmNlSWRzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUuZmlsdGVyKChpdGVtKSA9PiBpdGVtKS5tYXAoKGl0ZW0pID0+IGl0ZW0uaWQpO1xuICAgIGlmICh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pbml0aWFsQ2FzZUxpbmtzLmxlbmd0aCAhPT0gKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlLmxlbmd0aCArIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VzVG9VbmxpbmsubGVuZ3RoKSkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcy5maWx0ZXIoKGl0ZW0pID0+IGxpbmtlZENhc2VSZWZlcmVuY2VJZHMuaW5kZXhPZihpdGVtLmNhc2VSZWZlcmVuY2UpICE9PSAtMSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcy5sZW5ndGggPT09IDAgJiYgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUubGVuZ3RoICE9PSAwICYmICF0aGlzLmxpbmtlZENhc2VzU2VydmljZS5oYXNDb250aW51ZWRGcm9tU3RhcnQpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rUmVmcy5wdXNoKGl0ZW0uaWQpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vcHJldmVudCB1bnN1Ym1pdHRlZCBsaW5rZWQgY2FzZXMgZnJvbSBiZWluZyBhcHBsaWVkIGFzIGlmIHRoZXkgYXJlIHRoZSBpbml0aWFsIGxpbmtlZCBjYXNlc1xuICAgICAgaWYgKCF0aGlzLmxpbmtlZENhc2VzU2VydmljZS5oYXNDb250aW51ZWRGcm9tU3RhcnQpe1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rUmVmcy5wdXNoKGl0ZW0uY2FzZVJlZmVyZW5jZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5pbml0aWFsQ2FzZUxpbmtzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5leHQoKTogdm9pZCB7XG4gICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaGFzQ29udGludWVkRnJvbVN0YXJ0ID0gdHJ1ZTtcbiAgICB0aGlzLmxpbmtlZENhc2VzU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudExpbmtlZENhc2VzUGFnZTogTGlua2VkQ2FzZXNQYWdlcy5CRUZPUkVfWU9VX1NUQVJULFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgbmF2aWdhdGVUb05leHRQYWdlOiB0cnVlXG4gICAgfSk7XG5cbiAgICBjb25zdCBpc0FuQXJyYXk6IGJvb2xlYW4gPSBBcnJheS5pc0FycmF5KHRoaXMuZXJyb3JNZXNzYWdlcyk7XG4gICAgY29uc3QgaXNOb3RBbkFycmF5OiBib29sZWFuID0gIWlzQW5BcnJheTtcbiAgICBjb25zdCBpc1ZhbGlkOiBib29sZWFuID0gKGlzQW5BcnJheSAmJiB0aGlzLmVycm9yTWVzc2FnZXMubGVuZ3RoID09PSAwKSB8fCBpc05vdEFuQXJyYXk7XG5cbiAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgc3VwZXIubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSnVyaXNkaWN0aW9uSUQsIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VEZXRhaWxzLmNhc2VfdHlwZSwgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkXSwgeyBmcmFnbWVudDogJ0xpbmtlZCBjYXNlcycgfSk7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXYgKm5nSWY9XCJzZXJ2ZXJMaW5rZWRBcGlFcnJvclwiPlxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmcteGxcIj5UaGVyZSBpcyBhIHByb2JsZW08L2gxPlxuICAgIDxwIGlkPVwidW5saW5rLWNhc2VzLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJzZXJ2ZXJMaW5rZWRBcGlFcnJvclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7c2VydmVyTGlua2VkQXBpRXJyb3IubWVzc2FnZX19XG4gICAgPC9wPlxuICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJnb3Z1ay1qcy1saW5rXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+R28gYmFjayB0byB0aGUgTGlua2VkIGNhc2VzIHRhYjwvYnV0dG9uPlxuICAgIDwvcD5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhc2VydmVyTGlua2VkQXBpRXJyb3JcIj5cbiAgICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXhsXCI+QmVmb3JlIHlvdSBzdGFydDwvaDE+XG4gICAgPGRpdiBpZD1cImxpbmstY2FzZXMtam91cm5leVwiICpuZ0lmPVwiaXNMaW5rQ2FzZXNKb3VybmV5XCI+XG4gICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHlcIj5JZiBhIGdyb3VwIG9mIGxpbmtlZCBjYXNlcyBoYXMgYSBsZWFkIGNhc2UsIHlvdSBtdXN0IHN0YXJ0IGZyb20gdGhlIGxlYWQgY2FzZS48L3A+XG4gICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHlcIj5JZiB0aGUgY2FzZXMgdG8gYmUgbGlua2VkIGhhcyBubyBsZWFkLCB5b3UgY2FuIHN0YXJ0IHRoZSBsaW5raW5nIGpvdXJuZXkgZnJvbSBhbnkgb2YgdGhvc2VcbiAgICAgICAgY2FzZXMuPC9wPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJtYW5hZ2UtbGluay1jYXNlcy1qb3VybmV5XCIgKm5nSWY9XCIhaXNMaW5rQ2FzZXNKb3VybmV5XCI+XG4gICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHlcIj5JZiB0aGVyZSBhcmUgbGlua2VkIGhlYXJpbmdzIGZvciB0aGUgY2FzZSB5b3UgbmVlZCB0byB1bi1saW5rIHRoZW4geW91IG11c3QgdW5saW5rIHRoZVxuICAgICAgICBoZWFyaW5nIGZpcnN0LjwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==