@leanix/components 0.4.68 → 0.4.69

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 (113) hide show
  1. package/esm2022/lib/core-ui/directives/autoclose.directive.mjs +2 -2
  2. package/esm2022/lib/core-ui/tooltip/tooltip.directive.mjs +1 -1
  3. package/esm2022/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.mjs +26 -10
  4. package/esm2022/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.mjs +5 -5
  5. package/esm2022/lib/forms-ui/components/breadcrumb/breadcrumb.component.mjs +7 -7
  6. package/esm2022/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.mjs +4 -5
  7. package/esm2022/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.mjs +4 -5
  8. package/esm2022/lib/forms-ui/components/copy-button/copy-button.component.mjs +4 -3
  9. package/esm2022/lib/forms-ui/components/currency/currency-input.component.mjs +9 -9
  10. package/esm2022/lib/forms-ui/components/currency/currency-symbol.component.mjs +4 -4
  11. package/esm2022/lib/forms-ui/components/date-input/date-input.component.mjs +10 -11
  12. package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker-inner.component.mjs +7 -5
  13. package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker-ui.module.mjs +5 -12
  14. package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker.component.mjs +9 -8
  15. package/esm2022/lib/forms-ui/components/date-picker-ui/daypicker.component.mjs +5 -5
  16. package/esm2022/lib/forms-ui/components/date-picker-ui/monthpicker.component.mjs +5 -5
  17. package/esm2022/lib/forms-ui/components/date-picker-ui/yearpicker.component.mjs +5 -5
  18. package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.mjs +5 -5
  19. package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.mjs +19 -10
  20. package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.mjs +22 -5
  21. package/esm2022/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.mjs +4 -3
  22. package/esm2022/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.mjs +4 -3
  23. package/esm2022/lib/forms-ui/components/error-message/error-message.component.mjs +6 -5
  24. package/esm2022/lib/forms-ui/components/expanded-dropdown/expanded-dropdown.component.mjs +7 -6
  25. package/esm2022/lib/forms-ui/components/form-error/form-error.component.mjs +6 -5
  26. package/esm2022/lib/forms-ui/components/icon/icon.component.mjs +3 -3
  27. package/esm2022/lib/forms-ui/components/input/input.component.mjs +3 -3
  28. package/esm2022/lib/forms-ui/components/multi-select/multi-select.component.mjs +8 -9
  29. package/esm2022/lib/forms-ui/components/option/option.component.mjs +6 -6
  30. package/esm2022/lib/forms-ui/components/option-group/option-group.component.mjs +4 -4
  31. package/esm2022/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.mjs +28 -11
  32. package/esm2022/lib/forms-ui/components/options-dropdown/options-dropdown.component.mjs +7 -6
  33. package/esm2022/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.mjs +5 -5
  34. package/esm2022/lib/forms-ui/components/picker/picker-trigger.directive.mjs +4 -3
  35. package/esm2022/lib/forms-ui/components/picker/picker.component.mjs +6 -6
  36. package/esm2022/lib/forms-ui/components/picker-option/picker-option.component.mjs +5 -5
  37. package/esm2022/lib/forms-ui/components/pill-item/pill-item.component.mjs +4 -4
  38. package/esm2022/lib/forms-ui/components/pill-list/pill-list.component.mjs +5 -6
  39. package/esm2022/lib/forms-ui/components/responsive-input/responsive-input.component.mjs +6 -6
  40. package/esm2022/lib/forms-ui/components/select-list/select-list.component.mjs +6 -5
  41. package/esm2022/lib/forms-ui/components/single-select/single-select.component.mjs +8 -8
  42. package/esm2022/lib/forms-ui/components/slider-toggle/slider-toggle.component.mjs +4 -4
  43. package/esm2022/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.mjs +20 -10
  44. package/esm2022/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.mjs +4 -4
  45. package/esm2022/lib/forms-ui/directives/contenteditable.directive.mjs +4 -3
  46. package/esm2022/lib/forms-ui/directives/form-error.directive.mjs +4 -3
  47. package/esm2022/lib/forms-ui/directives/form-submit.directive.mjs +4 -3
  48. package/esm2022/lib/forms-ui/directives/keyboard-action-source.directive.mjs +4 -3
  49. package/esm2022/lib/forms-ui/directives/mark-invalid.directive.mjs +4 -3
  50. package/esm2022/lib/forms-ui/directives/select-dropdown.directive.mjs +4 -3
  51. package/esm2022/lib/forms-ui/directives/selectable-item.directive.mjs +4 -3
  52. package/esm2022/lib/forms-ui/directives/selected-option.directive.mjs +4 -3
  53. package/esm2022/lib/forms-ui/forms-ui.module.mjs +35 -23
  54. package/esm2022/lib/forms-ui/pipes/filter-selection.pipe.mjs +6 -3
  55. package/esm2022/lib/forms-ui/pipes/filter-term.pipe.mjs +6 -3
  56. package/esm2022/lib/forms-ui/pipes/format-number.pipe.mjs +4 -3
  57. package/fesm2022/leanix-components.mjs +332 -237
  58. package/fesm2022/leanix-components.mjs.map +1 -1
  59. package/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.d.ts +1 -1
  60. package/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.d.ts +1 -1
  61. package/lib/forms-ui/components/breadcrumb/breadcrumb.component.d.ts +1 -1
  62. package/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.d.ts +1 -1
  63. package/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.d.ts +1 -1
  64. package/lib/forms-ui/components/copy-button/copy-button.component.d.ts +1 -1
  65. package/lib/forms-ui/components/currency/currency-input.component.d.ts +1 -1
  66. package/lib/forms-ui/components/currency/currency-symbol.component.d.ts +1 -1
  67. package/lib/forms-ui/components/date-input/date-input.component.d.ts +1 -1
  68. package/lib/forms-ui/components/date-picker-ui/datepicker-inner.component.d.ts +1 -1
  69. package/lib/forms-ui/components/date-picker-ui/datepicker-ui.module.d.ts +1 -7
  70. package/lib/forms-ui/components/date-picker-ui/datepicker.component.d.ts +1 -1
  71. package/lib/forms-ui/components/date-picker-ui/daypicker.component.d.ts +1 -1
  72. package/lib/forms-ui/components/date-picker-ui/monthpicker.component.d.ts +1 -1
  73. package/lib/forms-ui/components/date-picker-ui/yearpicker.component.d.ts +1 -1
  74. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.d.ts +1 -1
  75. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.d.ts +1 -1
  76. package/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.d.ts +9 -9
  77. package/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.d.ts +1 -1
  78. package/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.d.ts +1 -1
  79. package/lib/forms-ui/components/error-message/error-message.component.d.ts +1 -1
  80. package/lib/forms-ui/components/expanded-dropdown/expanded-dropdown.component.d.ts +1 -1
  81. package/lib/forms-ui/components/form-error/form-error.component.d.ts +1 -1
  82. package/lib/forms-ui/components/icon/icon.component.d.ts +1 -1
  83. package/lib/forms-ui/components/input/input.component.d.ts +1 -1
  84. package/lib/forms-ui/components/multi-select/multi-select.component.d.ts +1 -1
  85. package/lib/forms-ui/components/option/option.component.d.ts +1 -1
  86. package/lib/forms-ui/components/option-group/option-group.component.d.ts +1 -1
  87. package/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.d.ts +1 -1
  88. package/lib/forms-ui/components/options-dropdown/options-dropdown.component.d.ts +1 -1
  89. package/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.d.ts +1 -1
  90. package/lib/forms-ui/components/picker/picker-trigger.directive.d.ts +1 -1
  91. package/lib/forms-ui/components/picker/picker.component.d.ts +1 -1
  92. package/lib/forms-ui/components/picker-option/picker-option.component.d.ts +1 -1
  93. package/lib/forms-ui/components/pill-item/pill-item.component.d.ts +1 -1
  94. package/lib/forms-ui/components/pill-list/pill-list.component.d.ts +1 -1
  95. package/lib/forms-ui/components/responsive-input/responsive-input.component.d.ts +1 -1
  96. package/lib/forms-ui/components/select-list/select-list.component.d.ts +1 -1
  97. package/lib/forms-ui/components/single-select/single-select.component.d.ts +1 -1
  98. package/lib/forms-ui/components/slider-toggle/slider-toggle.component.d.ts +1 -1
  99. package/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.d.ts +1 -1
  100. package/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.d.ts +1 -1
  101. package/lib/forms-ui/directives/contenteditable.directive.d.ts +1 -1
  102. package/lib/forms-ui/directives/form-error.directive.d.ts +1 -1
  103. package/lib/forms-ui/directives/form-submit.directive.d.ts +1 -1
  104. package/lib/forms-ui/directives/keyboard-action-source.directive.d.ts +1 -1
  105. package/lib/forms-ui/directives/mark-invalid.directive.d.ts +1 -1
  106. package/lib/forms-ui/directives/select-dropdown.directive.d.ts +1 -1
  107. package/lib/forms-ui/directives/selectable-item.directive.d.ts +1 -1
  108. package/lib/forms-ui/directives/selected-option.directive.d.ts +1 -1
  109. package/lib/forms-ui/forms-ui.module.d.ts +52 -52
  110. package/lib/forms-ui/pipes/filter-selection.pipe.d.ts +1 -1
  111. package/lib/forms-ui/pipes/filter-term.pipe.d.ts +1 -1
  112. package/lib/forms-ui/pipes/format-number.pipe.d.ts +1 -1
  113. package/package.json +1 -1
@@ -1,21 +1,20 @@
1
1
  import { __decorate } from "tslib";
2
+ import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
3
+ import { NgIf } from '@angular/common';
2
4
  import { Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewChild } from '@angular/core';
3
- import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import { FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
6
  import { format, startOfDay } from 'date-fns';
5
7
  import { Subject } from 'rxjs';
6
8
  import { takeUntil } from 'rxjs/operators';
7
9
  import { DATE_FN_LOCALE, DATE_FORMATS } from '../../../core-ui/core-ui.constants';
10
+ import { AutofocusDirective } from '../../../core-ui/directives/autofocus.directive';
11
+ import { CustomDatePipe } from '../../../core-ui/pipes/custom-date.pipe';
8
12
  import { convertDateToLocaleDateString, createDateFromDateString, isValidDateString } from '../../../shared/date-helpers';
9
13
  import { Observe } from '../../../shared/observe';
10
14
  import { DateFormatter } from '../date-picker-ui/date-formatter';
11
15
  import { DatePickerComponent } from '../date-picker-ui/datepicker.component';
12
16
  import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/common";
14
- import * as i2 from "@angular/forms";
15
- import * as i3 from "../date-picker-ui/datepicker.component";
16
- import * as i4 from "@angular/cdk/overlay";
17
- import * as i5 from "../../../core-ui/directives/autofocus.directive";
18
- import * as i6 from "../../../core-ui/pipes/custom-date.pipe";
17
+ import * as i1 from "@angular/forms";
19
18
  const DEFAULT_MIN_DATE = new Date('0000-01-01');
20
19
  const DEFAULT_MAX_DATE = new Date('9999-12-31');
21
20
  export class DateInputComponent {
@@ -183,10 +182,10 @@ export class DateInputComponent {
183
182
  : null;
184
183
  }
185
184
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: DateInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DATE_FORMATS }, { token: DATE_FN_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: DateInputComponent, selector: "lx-date-input", inputs: { date: "date", dateString: "dateString", valueAccessor: "valueAccessor", inputId: "inputId", renderingStyle: "renderingStyle", placeholder: "placeholder", cdk: "cdk", datepickerMode: "datepickerMode", initDateString: "initDateString", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", startingDay: "startingDay", yearRange: "yearRange", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", disabled: "disabled", dateDisabled: "dateDisabled", autoFocus: "autoFocus" }, outputs: { dateChange: "dateChange", dateStringChange: "dateStringChange", closeDateInput: "closeDateInput" }, providers: [
185
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: DateInputComponent, isStandalone: true, selector: "lx-date-input", inputs: { date: "date", dateString: "dateString", valueAccessor: "valueAccessor", inputId: "inputId", renderingStyle: "renderingStyle", placeholder: "placeholder", cdk: "cdk", datepickerMode: "datepickerMode", initDateString: "initDateString", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", startingDay: "startingDay", yearRange: "yearRange", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", disabled: "disabled", dateDisabled: "dateDisabled", autoFocus: "autoFocus" }, outputs: { dateChange: "dateChange", dateStringChange: "dateStringChange", closeDateInput: "closeDateInput" }, providers: [
187
186
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
188
187
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true }
189
- ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <!-- TODO: The dateInput and datePicker code ist duplicated for cdk and withoutCdK use to solve a placing problem of the\n ngx-bootstrap datepicker component. Writing it in a ng-container led to an unexpected anchoring behavior of the datePicker NOT directly\n below the dateInput element -->\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\" [class.forLink]=\"renderingStyle === 'LINK'\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n </span>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;inset:0}.legacy .datepickerContainer{position:absolute}.legacy.forLink{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DatePickerComponent, selector: "datepicker", inputs: ["datepickerMode", "initDate", "minDate", "maxDate", "minMode", "maxMode", "showWeeks", "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "startingDay", "yearRange", "onlyCurrentMonth", "shortcutPropagation", "monthColLimit", "yearColLimit", "customClass", "dateDisabled", "dayDisabled", "activeDate"], outputs: ["selectionDone", "activeDateChange"] }, { kind: "directive", type: i4.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i4.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i5.AutofocusDirective, selector: "[lxAutofocus]", inputs: ["lxAutofocus", "lxAutofocusPreventScroll", "lxAutofocusTimeout"] }, { kind: "pipe", type: i6.CustomDatePipe, name: "lxDate" }] }); }
188
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <!-- TODO: The dateInput and datePicker code ist duplicated for cdk and withoutCdK use to solve a placing problem of the\n ngx-bootstrap datepicker component. Writing it in a ng-container led to an unexpected anchoring behavior of the datePicker NOT directly\n below the dateInput element -->\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\" [class.forLink]=\"renderingStyle === 'LINK'\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n </span>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;inset:0}.legacy .datepickerContainer{position:absolute}.legacy.forLink{display:inline-block}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AutofocusDirective, selector: "[lxAutofocus]", inputs: ["lxAutofocus", "lxAutofocusPreventScroll", "lxAutofocusTimeout"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: DatePickerComponent, selector: "datepicker", inputs: ["datepickerMode", "initDate", "minDate", "maxDate", "minMode", "maxMode", "showWeeks", "formatDay", "formatMonth", "formatYear", "formatDayHeader", "formatDayTitle", "formatMonthTitle", "startingDay", "yearRange", "onlyCurrentMonth", "shortcutPropagation", "monthColLimit", "yearColLimit", "customClass", "dateDisabled", "dayDisabled", "activeDate"], outputs: ["selectionDone", "activeDateChange"] }, { kind: "pipe", type: CustomDatePipe, name: "lxDate" }] }); }
190
189
  }
191
190
  __decorate([
192
191
  Observe('initDateString')
@@ -196,7 +195,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
196
195
  args: [{ selector: 'lx-date-input', providers: [
197
196
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DateInputComponent), multi: true },
198
197
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => DateInputComponent), multi: true }
199
- ], template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <!-- TODO: The dateInput and datePicker code ist duplicated for cdk and withoutCdK use to solve a placing problem of the\n ngx-bootstrap datepicker component. Writing it in a ng-container led to an unexpected anchoring behavior of the datePicker NOT directly\n below the dateInput element -->\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\" [class.forLink]=\"renderingStyle === 'LINK'\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n </span>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;inset:0}.legacy .datepickerContainer{position:absolute}.legacy.forLink{display:inline-block}\n"] }]
198
+ ], standalone: true, imports: [NgIf, CdkOverlayOrigin, FormsModule, AutofocusDirective, CdkConnectedOverlay, DatePickerComponent, CustomDatePipe], template: "<ng-container *ngIf=\"cdk; else withoutCdkOverlay\">\n <span\n class=\"wrapper\"\n [class.forLink]=\"renderingStyle === 'LINK'\"\n [class.has-error]=\"hasError\"\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n >\n <!-- TODO: The dateInput and datePicker code ist duplicated for cdk and withoutCdK use to solve a placing problem of the\n ngx-bootstrap datepicker component. Writing it in a ng-container led to an unexpected anchoring behavior of the datePicker NOT directly\n below the dateInput element -->\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n\n <ng-template\n #cdkDatepicker\n cdkConnectedOverlay\n [cdkConnectedOverlayOpen]=\"showDatepicker\"\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayBackdropClass]=\"'backdrop'\"\n (backdropClick)=\"hidePopup()\"\n >\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n </ng-template>\n </span>\n</ng-container>\n\n<ng-template #withoutCdkOverlay>\n <div class=\"legacy\" [class.forLink]=\"renderingStyle === 'LINK'\">\n <div class=\"backdrop\" *ngIf=\"showDatepicker\" (click)=\"hidePopup()\"></div>\n <span class=\"wrapper\" [class.forLink]=\"renderingStyle === 'LINK'\" [class.has-error]=\"hasError\">\n <input\n #input\n class=\"form-control dateControl\"\n placeholder=\"{{ placeholder }}\"\n [id]=\"inputId\"\n [lxAutofocus]=\"autoFocus\"\n [(ngModel)]=\"dateString\"\n [disabled]=\"disabled\"\n (ngModelChange)=\"onDateStringChange($event)\"\n (focus)=\"showPopup()\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"hidePopup()\"\n (keydown.escape)=\"hidePopup()\"\n (keydown.tab)=\"hidePopup()\"\n (keydown.shift.tab)=\"hidePopup()\"\n [class.text-danger]=\"hasError\"\n *ngIf=\"renderingStyle === 'INPUT'\"\n />\n <a class=\"dateControl\" (click)=\"togglePopup()\" *ngIf=\"renderingStyle === 'LINK'\">{{ date | lxDate: dateFormat }}</a>\n <div class=\"datepickerContainer\">\n <div class=\"calendar\">\n <datepicker\n class=\"popup\"\n *ngIf=\"showDatepicker\"\n (selectionDone)=\"onSelectionDone($event)\"\n [ngModel]=\"date\"\n [datepickerMode]=\"datepickerMode\"\n [initDate]=\"initDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [minMode]=\"minMode\"\n [maxMode]=\"maxMode\"\n [showWeeks]=\"showWeeks\"\n [formatDay]=\"formatDay\"\n [formatMonth]=\"formatMonth\"\n [formatYear]=\"formatYear\"\n [formatDayHeader]=\"formatDayHeader\"\n [formatDayTitle]=\"formatDayTitle\"\n [formatMonthTitle]=\"formatMonthTitle\"\n [startingDay]=\"startingDay\"\n [yearRange]=\"yearRange\"\n [onlyCurrentMonth]=\"onlyCurrentMonth\"\n [shortcutPropagation]=\"shortcutPropagation\"\n [customClass]=\"customClass\"\n [dateDisabled]=\"dateDisabled\"\n >\n </datepicker>\n </div>\n </div>\n </span>\n </div>\n</ng-template>\n", styles: [".backdrop{background-color:transparent}.datepickerContainer{z-index:700}.wrapper .forLink .popup{top:15px}.dateControl,.calendar{position:relative}.popup{position:relative;left:0;z-index:700;border-radius:3px}.popup ::ng-deep .text-info{color:#2a303d}.popup ::ng-deep .text-muted{color:#99a5bb}.popup ::ng-deep .btn.active,.popup ::ng-deep .btn.active .text-info{color:#fff;background-color:#2a303d}.popup ::ng-deep .well{margin:0;border:1px solid #2a303d}:host-context(.input-group) .datepickerContainer{top:100%}.legacy .backdrop{position:fixed;z-index:2;inset:0}.legacy .datepickerContainer{position:absolute}.legacy.forLink{display:inline-block}\n"] }]
200
199
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
201
200
  type: Inject,
202
201
  args: [DATE_FORMATS]
@@ -271,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
271
270
  type: ViewChild,
272
271
  args: ['input']
273
272
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixhQUFhLEVBQUUsaUJBQWlCLEVBQWlDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQXVCLE1BQU0sb0NBQW9DLENBQUM7QUFDdkcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFLN0UsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJ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QUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxtQkFBbUI7c0JBQWxDLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUVhLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZvcm1hdCwgc3RhcnRPZkRheSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERBVEVfRk5fTE9DQUxFLCBEQVRFX0ZPUk1BVFMsIERhdGVGb3JtYXRzUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9jb3JlLXVpL2NvcmUtdWkuY29uc3RhbnRzJztcbmltcG9ydCB7IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nLCBjcmVhdGVEYXRlRnJvbURhdGVTdHJpbmcsIGlzVmFsaWREYXRlU3RyaW5nIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RhdGUtaGVscGVycyc7XG5pbXBvcnQgeyBPYnNlcnZlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmUnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlciB9IGZyb20gJy4uL2RhdGUtcGlja2VyLXVpL2RhdGUtZm9ybWF0dGVyJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXBpY2tlci11aS9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5cbi8vIElucHV0ICsgbmcyLWJvb3RzdHJhcCBkYXRlcGlja2VyXG5leHBvcnQgdHlwZSBEYXRlSW5wdXRSZW5kZXJpbmdTdHlsZSA9ICdJTlBVVCcgfCAnTElOSyc7XG5cbmNvbnN0IERFRkFVTFRfTUlOX0RBVEUgPSBuZXcgRGF0ZSgnMDAwMC0wMS0wMScpO1xuY29uc3QgREVGQVVMVF9NQVhfREFURSA9IG5ldyBEYXRlKCc5OTk5LTEyLTMxJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LWRhdGUtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJ2RhdGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZGF0ZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlSW5wdXRDb21wb25lbnQpLCBtdWx0aTogdHJ1ZSB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSwgbXVsdGk6IHRydWUgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICBASW5wdXQoKSBwdWJsaWMgZGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsOyAvLyBtYWluIGRhdGUgaW5wdXQ7IHRoaXMgaXMgYWxzbyB0aGUgb25lIHVzZWQgZm9yIG5nTW9kZWwgJiBmb3JtQ29udHJvbCFcbiAgQE91dHB1dCgpIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpOyAvLyB0cmlnZ2VyZWQgd2hlbmV2ZXIgdGhlIGRhdGUgY2hhbmdlc1xuICBASW5wdXQoKSBwdWJsaWMgZGF0ZVN0cmluZzogc3RyaW5nIHwgbnVsbCA9IG51bGw7IC8vIHNlY29uZGFyeSwgYWx0ZXJuYXRpdmUgaW5wdXQgd2l0aCBkYXRlIHN0cmluZ1xuICBAT3V0cHV0KCkgZGF0ZVN0cmluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKTsgLy8gdHJpZ2dlcmVkIHdoZW5ldmVyIHRoZSBkYXRlIGNoYW5nZXNcbiAgLy8gRGV0ZXJtaW5lIHdoZXRoZXIgZm9ybUdyb3VwJ3MgdmFsdWUgYWNjZXNzb3IgaXMgYWNjZXNzaW5nIHRoZSBzZWxlY3RlZCBJRHMgb3IgdGhlIHNlbGVjdGVkIG9iamVjdHNcbiAgQElucHV0KCkgcHVibGljIHZhbHVlQWNjZXNzb3I6ICdkYXRlJyB8ICdkYXRlU3RyaW5nJyA9ICdkYXRlJztcblxuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRJZDogc3RyaW5nID0gJyc7IC8vIGlkIHRvIGJlIHNldCBvbiBpbnB1dCB0byBjb3JyZXNwb25kIHRvIG91dHNpZGUgbGFiZWxcbiAgQElucHV0KCkgcHVibGljIHJlbmRlcmluZ1N0eWxlOiBEYXRlSW5wdXRSZW5kZXJpbmdTdHlsZSA9ICdJTlBVVCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ3l5eXktbW0tZGQnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjZGsgPSB0cnVlOyAvLyBEZWFjdGl2YXRlIHRvIHVzZSBvbGQgZGF0ZSBwaWNrZXJcblxuICAvLy0tLSBJbnB1dHMgcmVwbGljYXRlZCBmcm9tIGRhdGVwaWNrZXI7IChzZWxlY3Rpb25Eb25lKSBpcyBub3QgbmVlZGVkLCBhcyAoZGF0ZUNoYW5nZSkgaXMgZXF1aXZhbGVuXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlcGlja2VyTW9kZTogc3RyaW5nID0gJ2RheSc7IC8vIHNldHMgZGF0ZXBpY2tlciBtb2RlLCBzdXBwb3J0czogZGF5LCBtb250aCwgeWVhclxuICBASW5wdXQoKSBpbml0RGF0ZVN0cmluZyE6IHN0cmluZzsgLy8gZGVmYXVsdCBkYXRlIHRvIHNob3cgaWYgbmctbW9kZWwgdmFsdWUgaXMgbm90IHNwZWNpZmllZFxuICBAT2JzZXJ2ZSgnaW5pdERhdGVTdHJpbmcnKSBpbml0RGF0ZVN0cmluZyQhOiBPYnNlcnZhYmxlPHN0cmluZz47IC8vIGRlZmF1bHQgZGF0ZSB0byBzaG93IGlmIG5nLW1vZGVsIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWRcbiAgQElucHV0KCkgcHVibGljIG1pbkRhdGUgPSBERUZBVUxUX01JTl9EQVRFOyAvLyBvbGRlc3Qgc2VsZWN0YWJsZSBkYXRlXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlID0gREVGQVVMVF9NQVhfREFURTsgLy8gbGF0ZXN0IHNlbGVjdGFibGUgZGF0ZVxuICBASW5wdXQoKSBwdWJsaWMgbWluTW9kZTogc3RyaW5nID0gJ2RheSc7IC8vIHNldCBsb3dlciBkYXRlcGlja2VyIG1vZGUsIHN1cHBvcnRzOiBkYXksIG1vbnRoLCB5ZWFyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhNb2RlOiBzdHJpbmcgPSAneWVhcic7IC8vIHNldHMgdXBwZXIgZGF0ZXBpY2tlciBtb2RlLCBzdXBwb3J0czogZGF5LCBtb250aCwgeWVhclxuICBASW5wdXQoKSBwdWJsaWMgc2hvd1dlZWtzOiBib29sZWFuID0gdHJ1ZTsgLy8gaWYgZmFsc2Ugd2VlayBudW1iZXJzIHdpbGwgYmUgaGlkZGVuXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXREYXk6IHN0cmluZyA9ICdERCc7IC8vIGZvcm1hdCBvZiBkYXkgaW4gbW9udGhcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdE1vbnRoOiBzdHJpbmcgPSAnTU1NTSc7IC8vIGZvcm1hdCBvZiBtb250aCBpbiB5ZWFyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXRZZWFyOiBzdHJpbmcgPSAnWVlZWSc7IC8vIGZvcm1hdCBvZiB5ZWFyIGluIHllYXIgcmFuZ2VcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdERheUhlYWRlcjogc3RyaW5nID0gJ2RkJzsgLy8gZm9ybWF0IG9mIGRheSBpbiB3ZWVrIGhlYWRlclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0RGF5VGl0bGU6IHN0cmluZyA9ICdNTU1NIFlZWVknOyAvLyBmb3JtYXQgb2YgdGl0bGUgd2hlbiBzZWxlY3RpbmcgZGF5XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXRNb250aFRpdGxlOiBzdHJpbmcgPSAnWVlZWSc7IC8vIGZvcm1hdCBvZiB0aXRsZSB3aGVuIHNlbGVjdGluZyBtb250aFxuICBASW5wdXQoKSBzdGFydGluZ0RheTogbnVtYmVyID0gMDsgLy8gc3RhcnRpbmcgZGF5IG9mIHRoZSB3ZWVrIGZyb20gMC02ICgwPVN1bmRheSwgLi4uLCA2PVNhdHVyZGF5KSBwdWJsaWNcbiAgQElucHV0KCkgcHVibGljIHllYXJSYW5nZTogbnVtYmVyID0gMjA7IC8vIG51bWJlciBvZiB5ZWFycyBkaXNwbGF5ZWQgaW4geWVhciBzZWxlY3Rpb25cbiAgQElucHV0KCkgcHVibGljIG9ubHlDdXJyZW50TW9udGg6IGJvb2xlYW4gPSBmYWxzZTsgLy8gaWYgdHJ1ZSBvbmx5IGRhdGVzIGZyb20gdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgbW9udGggd2lsbCBiZSBzaG93blxuICBASW5wdXQoKSBwdWJsaWMgc2hvcnRjdXRQcm9wYWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlOyAvLyAgaWYgdHJ1ZSBzaG9ydGN1dGBzIGV2ZW50IHByb3BhZ2F0aW9uIHdpbGwgYmUgZGlzYWJsZWRcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzOiB7IGRhdGU6IERhdGU7IG1vZGU6IHN0cmluZzsgY2xheno6IHN0cmluZyB9W10gPSBbXTsgLy8gYXJyYXkgb2YgY3VzdG9tIGNzcyBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgdG9cbiAgLy8gdGFyZ2V0ZWQgZGF0ZXNcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkITogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIGRhdGVEaXNhYmxlZDogeyBkYXRlOiBEYXRlOyBtb2RlOiBzdHJpbmcgfVtdID0gW107IC8vIGFycmF5IG9mIGRpc2FibGVkIGRhdGVzIGlmIG1vZGUgaXMgZGF5LCBvciB5ZWFycywgZXRjLlxuICBASW5wdXQoKSBhdXRvRm9jdXMgPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgY2xvc2VEYXRlSW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgc2hvd0RhdGVwaWNrZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGF0ZUZvcm1hdDogc3RyaW5nO1xuICBpbml0RGF0ZSE6IERhdGU7XG5cbiAgcmVhZG9ubHkgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLy8tLSBJbXBsZW1lbnQgQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgcHJpdmF0ZSBmb3JtQ29udHJvbCE6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgaGFzRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcbiAgb25Ub3VjaGVkITogKCkgPT4gdm9pZDtcblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoX2RhdGU6IERhdGUgfCBudWxsKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KERBVEVfRk9STUFUUykgcHJpdmF0ZSBkYXRlRm9ybWF0c1Byb3ZpZGVyOiBEYXRlRm9ybWF0c1Byb3ZpZGVyLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9GTl9MT0NBTEUpIHByaXZhdGUgZ2V0RGF0ZUZuTG9jYWxlPzogRnVuY3Rpb25cbiAgKSB7XG4gICAgdGhpcy5kYXRlRm9ybWF0ID0gdGhpcy5kYXRlRm9ybWF0c1Byb3ZpZGVyLmdldERhdGVGb3JtYXQoKTtcbiAgICAvLyBQYXRjaCBEYXRlUGlja2VyIHVudGlsIGh0dHBzOi8vZ2l0aHViLmNvbS92YWxvci1zb2Z0d2FyZS9uZzItYm9vdHN0cmFwL2lzc3Vlcy8xMzg1IGlzIHJlc29sdmVkXG4gICAgY29uc3Qgd3JpdGVWYWx1ZSA9IERhdGVQaWNrZXJDb21wb25lbnQucHJvdG90eXBlLndyaXRlVmFsdWU7XG4gICAgRGF0ZVBpY2tlckNvbXBvbmVudC5wcm90b3R5cGUud3JpdGVWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB3cml0ZVZhbHVlLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyBhcyBhbnkpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICAvLyBTb21laG93IGRhdGVwaWNrZXIgZG9lcyB1c2UgYSBzZXBhcmF0ZSBtb21lbnQgaW5zdGFuY2UgdGhhbiB3ZSBkby4gVGhhdCBvbmUgcnVucyBvbiBsb2NhbGUgZW4gYnkgZGVmYXVsdC5cbiAgICAvLyBTbyB3ZSBwYXRjaCB0aGUgZm9ybWF0IGZ1bmN0aW9uIGhlcmUgdG8gdXNlIG91ciBtb21lbnQgaW5zdGFuY2UuXG4gICAgLy8gTWF5YmUgaXQgd2lsbCBiZSBmaXhlZCB3aXRoOiBodHRwczovL2dpdGh1Yi5jb20vdmFsb3Itc29mdHdhcmUvbmd4LWJvb3RzdHJhcC9pc3N1ZXMvNDU1XG4gICAgY29uc3QgbG9jYWxlID0gdGhpcy5nZXREYXRlRm5Mb2NhbGUgPyB0aGlzLmdldERhdGVGbkxvY2FsZSgpIDogbnVsbDtcbiAgICBEYXRlRm9ybWF0dGVyLnByb3RvdHlwZS5mb3JtYXQgPSBmdW5jdGlvbiAoZGF0ZTogRGF0ZSwgZjogc3RyaW5nKSB7XG4gICAgICByZXR1cm4gZm9ybWF0KGRhdGUsIGYsIHsgbG9jYWxlIH0pO1xuICAgIH07XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXREYXRlU3RyaW5nJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKGRhdGUpID0+IHtcbiAgICAgIHRoaXMuaW5pdERhdGUgPSBjcmVhdGVEYXRlRnJvbURhdGVTdHJpbmcoZGF0ZSkgPz8gc3RhcnRPZkRheShuZXcgRGF0ZSgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGUnXSkge1xuICAgICAgdGhpcy5kYXRlU3RyaW5nID0gdGhpcy5kYXRlID8gY29udmVydERhdGVUb0xvY2FsZURhdGVTdHJpbmcodGhpcy5kYXRlKSA6IG51bGw7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzWydkYXRlU3RyaW5nJ10pIHtcbiAgICAgIHRoaXMub25EYXRlU3RyaW5nQ2hhbmdlKHRoaXMuZGF0ZVN0cmluZywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKCkge1xuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgcHVibGljIHNob3dQb3B1cCgpIHtcbiAgICB0aGlzLnNob3dEYXRlcGlja2VyID0gdHJ1ZTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVQb3B1cCgpIHtcbiAgICB0aGlzLnNob3dEYXRlcGlja2VyID0gIXRoaXMuc2hvd0RhdGVwaWNrZXI7XG4gIH1cblxuICBwdWJsaWMgaGlkZVBvcHVwKCkge1xuICAgIGlmICh0aGlzLnNob3dEYXRlcGlja2VyKSB7XG4gICAgICB0aGlzLnNob3dEYXRlcGlja2VyID0gZmFsc2U7XG4gICAgICB0aGlzLmNsb3NlRGF0ZUlucHV0LmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkRhdGVTdHJpbmdDaGFuZ2UobmV3RGF0ZVN0cmluZzogc3RyaW5nIHwgbnVsbCwgZW1pdDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBpZiAoaXNWYWxpZERhdGVTdHJpbmcobmV3RGF0ZVN0cmluZykpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBjcmVhdGVEYXRlRnJvbURhdGVTdHJpbmcobmV3RGF0ZVN0cmluZyk7XG4gICAgICB0aGlzLnVwZGF0ZURhdGUoZGF0ZSwgZW1pdCk7XG4gICAgfSBlbHNlIGlmIChuZXdEYXRlU3RyaW5nID09PSBudWxsIHx8IG5ld0RhdGVTdHJpbmcgPT09ICcnKSB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGUobnVsbCwgZW1pdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TZWxlY3Rpb25Eb25lKG5ld0RhdGU6IERhdGUpIHtcbiAgICB0aGlzLnVwZGF0ZURhdGUobmV3RGF0ZSk7XG4gICAgdGhpcy5oaWRlUG9wdXAoKTtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICBpZiAodGhpcy5vblRvdWNoZWQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEYXRlKGRhdGU6IERhdGUgfCBudWxsLCBlbWl0OiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHRoaXMuZGF0ZSA9IGRhdGU7XG4gICAgdGhpcy5kYXRlU3RyaW5nID0gdGhpcy5kYXRlID8gY29udmVydERhdGVUb0xvY2FsZURhdGVTdHJpbmcodGhpcy5kYXRlKSA6ICcnO1xuICAgIGlmIChlbWl0KSB7XG4gICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZ0NoYW5nZS5lbWl0KHRoaXMuZGF0ZVN0cmluZyk7XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKGRhdGUpO1xuICAgIHRoaXMucmVjaGVja0Vycm9ycygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWNoZWNrRXJyb3JzKCkge1xuICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgLy8tLS0gSW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIC8qKiBXcml0ZSBhIG5ldyB2YWx1ZSB0byB0aGUgZWxlbWVudC4gKi9cbiAgd3JpdGVWYWx1ZShuZXdEYXRlOiBEYXRlIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWVBY2Nlc3NvciA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLmRhdGUgPSBuZXdEYXRlIGFzIERhdGU7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmRhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRhdGVTdHJpbmcgPSBuZXdEYXRlIGFzIHN0cmluZztcbiAgICAgIHRoaXMub25EYXRlU3RyaW5nQ2hhbmdlKHRoaXMuZGF0ZVN0cmluZywgZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgY2hhbmdlIGV2ZW50LiAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICBpZiAodGhpcy52YWx1ZUFjY2Vzc29yID09PSAnZGF0ZScpIHtcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoZm4pO1xuICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZUFjY2Vzc29yID09PSAnZGF0ZVN0cmluZycpIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZ0NoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoZm4pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHJlY2VpdmVzIGEgdG91Y2ggZXZlbnQuICovXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjO1xuICAgIHJldHVybiB0aGlzLmhhc0Vycm9yXG4gICAgICA/IHtcbiAgICAgICAgICBkYXRlRm9ybWF0RXJyb3I6IHtcbiAgICAgICAgICAgIGdpdmVuOiB0aGlzLmRhdGVTdHJpbmcsXG4gICAgICAgICAgICBmb3JtYXQ6ICd5eXl5LW1tLWRkJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY2RrOyBlbHNlIHdpdGhvdXRDZGtPdmVybGF5XCI+XG4gIDxzcGFuXG4gICAgY2xhc3M9XCJ3cmFwcGVyXCJcbiAgICBbY2xhc3MuZm9yTGlua109XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCJcbiAgICBbY2xhc3MuaGFzLWVycm9yXT1cImhhc0Vycm9yXCJcbiAgICBjZGtPdmVybGF5T3JpZ2luXG4gICAgI29yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIlxuICA+XG4gICAgPCEtLSBUT0RPOiBUaGUgZGF0ZUlucHV0IGFuZCBkYXRlUGlja2VyIGNvZGUgaXN0IGR1cGxpY2F0ZWQgZm9yIGNkayBhbmQgd2l0aG91dENkSyB1c2UgdG8gc29sdmUgYSBwbGFjaW5nIHByb2JsZW0gb2YgdGhlXG4gICAgICAgbmd4LWJvb3RzdHJhcCBkYXRlcGlja2VyIGNvbXBvbmVudC4gV3JpdGluZyBpdCBpbiBhIG5nLWNvbnRhaW5lciBsZWQgdG8gYW4gdW5leHBlY3RlZCBhbmNob3JpbmcgYmVoYXZpb3Igb2YgdGhlIGRhdGVQaWNrZXIgTk9UIGRpcmVjdGx5XG4gICAgICBiZWxvdyB0aGUgZGF0ZUlucHV0IGVsZW1lbnQgLS0+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGRhdGVDb250cm9sXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxuICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgW2x4QXV0b2ZvY3VzXT1cImF1dG9Gb2N1c1wiXG4gICAgICBbKG5nTW9kZWwpXT1cImRhdGVTdHJpbmdcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRGF0ZVN0cmluZ0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJzaG93UG9wdXAoKVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAoa2V5ZG93bi5lbnRlcik9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAoa2V5ZG93bi5lc2NhcGUpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgKGtleWRvd24udGFiKT1cImhpZGVQb3B1cCgpXCJcbiAgICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCJoaWRlUG9wdXAoKVwiXG4gICAgICBbY2xhc3MudGV4dC1kYW5nZXJdPVwiaGFzRXJyb3JcIlxuICAgICAgKm5nSWY9XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0lOUFVUJ1wiXG4gICAgLz5cbiAgICA8YSBjbGFzcz1cImRhdGVDb250cm9sXCIgKGNsaWNrKT1cInRvZ2dsZVBvcHVwKClcIiAqbmdJZj1cInJlbmRlcmluZ1N0eWxlID09PSAnTElOSydcIj57eyBkYXRlIHwgbHhEYXRlOiBkYXRlRm9ybWF0IH19PC9hPlxuXG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAjY2RrRGF0ZXBpY2tlclxuICAgICAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cInNob3dEYXRlcGlja2VyXCJcbiAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cIm9yaWdpblwiXG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cInRydWVcIlxuICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzXT1cIidiYWNrZHJvcCdcIlxuICAgICAgKGJhY2tkcm9wQ2xpY2spPVwiaGlkZVBvcHVwKClcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyQ29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhclwiPlxuICAgICAgICAgIDxkYXRlcGlja2VyXG4gICAgICAgICAgICBjbGFzcz1cInBvcHVwXCJcbiAgICAgICAgICAgIChzZWxlY3Rpb25Eb25lKT1cIm9uU2VsZWN0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImRhdGVcIlxuICAgICAgICAgICAgW2RhdGVwaWNrZXJNb2RlXT1cImRhdGVwaWNrZXJNb2RlXCJcbiAgICAgICAgICAgIFtpbml0RGF0ZV09XCJpbml0RGF0ZVwiXG4gICAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICAgICAgW21pbk1vZGVdPVwibWluTW9kZVwiXG4gICAgICAgICAgICBbbWF4TW9kZV09XCJtYXhNb2RlXCJcbiAgICAgICAgICAgIFtzaG93V2Vla3NdPVwic2hvd1dlZWtzXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXldPVwiZm9ybWF0RGF5XCJcbiAgICAgICAgICAgIFtmb3JtYXRNb250aF09XCJmb3JtYXRNb250aFwiXG4gICAgICAgICAgICBbZm9ybWF0WWVhcl09XCJmb3JtYXRZZWFyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlIZWFkZXJdPVwiZm9ybWF0RGF5SGVhZGVyXCJcbiAgICAgICAgICAgIFtmb3JtYXREYXlUaXRsZV09XCJmb3JtYXREYXlUaXRsZVwiXG4gICAgICAgICAgICBbZm9ybWF0TW9udGhUaXRsZV09XCJmb3JtYXRNb250aFRpdGxlXCJcbiAgICAgICAgICAgIFtzdGFydGluZ0RheV09XCJzdGFydGluZ0RheVwiXG4gICAgICAgICAgICBbeWVhclJhbmdlXT1cInllYXJSYW5nZVwiXG4gICAgICAgICAgICBbb25seUN1cnJlbnRNb250aF09XCJvbmx5Q3VycmVudE1vbnRoXCJcbiAgICAgICAgICAgIFtzaG9ydGN1dFByb3BhZ2F0aW9uXT1cInNob3J0Y3V0UHJvcGFnYXRpb25cIlxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cImN1c3RvbUNsYXNzXCJcbiAgICAgICAgICAgIFtkYXRlRGlzYWJsZWRdPVwiZGF0ZURpc2FibGVkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9kYXRlcGlja2VyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3dpdGhvdXRDZGtPdmVybGF5PlxuICA8ZGl2IGNsYXNzPVwibGVnYWN5XCIgW2NsYXNzLmZvckxpbmtdPVwicmVuZGVyaW5nU3R5bGUgPT09ICdMSU5LJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJiYWNrZHJvcFwiICpuZ0lmPVwic2hvd0RhdGVwaWNrZXJcIiAoY2xpY2spPVwiaGlkZVBvcHVwKClcIj48L2Rpdj5cbiAgICA8c3BhbiBjbGFzcz1cIndyYXBwZXJcIiBbY2xhc3MuZm9yTGlua109XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCIgW2NsYXNzLmhhcy1lcnJvcl09XCJoYXNFcnJvclwiPlxuICAgICAgPGlucHV0XG4gICAgICAgICNpbnB1dFxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBkYXRlQ29udHJvbFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgICAgIFtseEF1dG9mb2N1c109XCJhdXRvRm9jdXNcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVTdHJpbmdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRhdGVTdHJpbmdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChmb2N1cyk9XCJzaG93UG9wdXAoKVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgICAoa2V5ZG93bi5zaGlmdC50YWIpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgICBbY2xhc3MudGV4dC1kYW5nZXJdPVwiaGFzRXJyb3JcIlxuICAgICAgICAqbmdJZj1cInJlbmRlcmluZ1N0eWxlID09PSAnSU5QVVQnXCJcbiAgICAgIC8+XG4gICAgICA8YSBjbGFzcz1cImRhdGVDb250cm9sXCIgKGNsaWNrKT1cInRvZ2dsZVBvcHVwKClcIiAqbmdJZj1cInJlbmRlcmluZ1N0eWxlID09PSAnTElOSydcIj57eyBkYXRlIHwgbHhEYXRlOiBkYXRlRm9ybWF0IH19PC9hPlxuICAgICAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXJDb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyXCI+XG4gICAgICAgICAgPGRhdGVwaWNrZXJcbiAgICAgICAgICAgIGNsYXNzPVwicG9wdXBcIlxuICAgICAgICAgICAgKm5nSWY9XCJzaG93RGF0ZXBpY2tlclwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uRG9uZSk9XCJvblNlbGVjdGlvbkRvbmUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJkYXRlXCJcbiAgICAgICAgICAgIFtkYXRlcGlja2VyTW9kZV09XCJkYXRlcGlja2VyTW9kZVwiXG4gICAgICAgICAgICBbaW5pdERhdGVdPVwiaW5pdERhdGVcIlxuICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICAgIFttaW5Nb2RlXT1cIm1pbk1vZGVcIlxuICAgICAgICAgICAgW21heE1vZGVdPVwibWF4TW9kZVwiXG4gICAgICAgICAgICBbc2hvd1dlZWtzXT1cInNob3dXZWVrc1wiXG4gICAgICAgICAgICBbZm9ybWF0RGF5XT1cImZvcm1hdERheVwiXG4gICAgICAgICAgICBbZm9ybWF0TW9udGhdPVwiZm9ybWF0TW9udGhcIlxuICAgICAgICAgICAgW2Zvcm1hdFllYXJdPVwiZm9ybWF0WWVhclwiXG4gICAgICAgICAgICBbZm9ybWF0RGF5SGVhZGVyXT1cImZvcm1hdERheUhlYWRlclwiXG4gICAgICAgICAgICBbZm9ybWF0RGF5VGl0bGVdPVwiZm9ybWF0RGF5VGl0bGVcIlxuICAgICAgICAgICAgW2Zvcm1hdE1vbnRoVGl0bGVdPVwiZm9ybWF0TW9udGhUaXRsZVwiXG4gICAgICAgICAgICBbc3RhcnRpbmdEYXldPVwic3RhcnRpbmdEYXlcIlxuICAgICAgICAgICAgW3llYXJSYW5nZV09XCJ5ZWFyUmFuZ2VcIlxuICAgICAgICAgICAgW29ubHlDdXJyZW50TW9udGhdPVwib25seUN1cnJlbnRNb250aFwiXG4gICAgICAgICAgICBbc2hvcnRjdXRQcm9wYWdhdGlvbl09XCJzaG9ydGN1dFByb3BhZ2F0aW9uXCJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc109XCJjdXN0b21DbGFzc1wiXG4gICAgICAgICAgICBbZGF0ZURpc2FibGVkXT1cImRhdGVEaXNhYmxlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZGF0ZXBpY2tlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBaUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwSSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5QyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBdUIsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHdCQUF3QixF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SztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBRVUsR0FBRztzQkFBbEIsS0FBSztnQkFHVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ3FCLGVBQWUsTUFDMUIsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxtQkFBbUI7c0JBQWxDLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUVhLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmb3JtYXQsIHN0YXJ0T2ZEYXkgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEQVRFX0ZOX0xPQ0FMRSwgREFURV9GT1JNQVRTLCBEYXRlRm9ybWF0c1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9jb3JlLXVpLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBBdXRvZm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9jb3JlLXVpL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDdXN0b21EYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvcGlwZXMvY3VzdG9tLWRhdGUucGlwZSc7XG5pbXBvcnQgeyBjb252ZXJ0RGF0ZVRvTG9jYWxlRGF0ZVN0cmluZywgY3JlYXRlRGF0ZUZyb21EYXRlU3RyaW5nLCBpc1ZhbGlkRGF0ZVN0cmluZyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kYXRlLWhlbHBlcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcbmltcG9ydCB7IERhdGVGb3JtYXR0ZXIgfSBmcm9tICcuLi9kYXRlLXBpY2tlci11aS9kYXRlLWZvcm1hdHRlcic7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS1waWNrZXItdWkvZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuXG4vLyBJbnB1dCArIG5nMi1ib290c3RyYXAgZGF0ZXBpY2tlclxuZXhwb3J0IHR5cGUgRGF0ZUlucHV0UmVuZGVyaW5nU3R5bGUgPSAnSU5QVVQnIHwgJ0xJTksnO1xuXG5jb25zdCBERUZBVUxUX01JTl9EQVRFID0gbmV3IERhdGUoJzAwMDAtMDEtMDEnKTtcbmNvbnN0IERFRkFVTFRfTUFYX0RBVEUgPSBuZXcgRGF0ZSgnOTk5OS0xMi0zMScpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1kYXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICdkYXRlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2RhdGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZUlucHV0Q29tcG9uZW50KSwgbXVsdGk6IHRydWUgfSxcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVJbnB1dENvbXBvbmVudCksIG11bHRpOiB0cnVlIH1cbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIENka092ZXJsYXlPcmlnaW4sIEZvcm1zTW9kdWxlLCBBdXRvZm9jdXNEaXJlY3RpdmUsIENka0Nvbm5lY3RlZE92ZXJsYXksIERhdGVQaWNrZXJDb21wb25lbnQsIEN1c3RvbURhdGVQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQElucHV0KCkgcHVibGljIGRhdGU6IERhdGUgfCBudWxsID0gbnVsbDsgLy8gbWFpbiBkYXRlIGlucHV0OyB0aGlzIGlzIGFsc28gdGhlIG9uZSB1c2VkIGZvciBuZ01vZGVsICYgZm9ybUNvbnRyb2whXG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTsgLy8gdHJpZ2dlcmVkIHdoZW5ldmVyIHRoZSBkYXRlIGNoYW5nZXNcbiAgQElucHV0KCkgcHVibGljIGRhdGVTdHJpbmc6IHN0cmluZyB8IG51bGwgPSBudWxsOyAvLyBzZWNvbmRhcnksIGFsdGVybmF0aXZlIGlucHV0IHdpdGggZGF0ZSBzdHJpbmdcbiAgQE91dHB1dCgpIGRhdGVTdHJpbmdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+KCk7IC8vIHRyaWdnZXJlZCB3aGVuZXZlciB0aGUgZGF0ZSBjaGFuZ2VzXG4gIC8vIERldGVybWluZSB3aGV0aGVyIGZvcm1Hcm91cCdzIHZhbHVlIGFjY2Vzc29yIGlzIGFjY2Vzc2luZyB0aGUgc2VsZWN0ZWQgSURzIG9yIHRoZSBzZWxlY3RlZCBvYmplY3RzXG4gIEBJbnB1dCgpIHB1YmxpYyB2YWx1ZUFjY2Vzc29yOiAnZGF0ZScgfCAnZGF0ZVN0cmluZycgPSAnZGF0ZSc7XG5cbiAgQElucHV0KCkgcHVibGljIGlucHV0SWQ6IHN0cmluZyA9ICcnOyAvLyBpZCB0byBiZSBzZXQgb24gaW5wdXQgdG8gY29ycmVzcG9uZCB0byBvdXRzaWRlIGxhYmVsXG4gIEBJbnB1dCgpIHB1YmxpYyByZW5kZXJpbmdTdHlsZTogRGF0ZUlucHV0UmVuZGVyaW5nU3R5bGUgPSAnSU5QVVQnO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICd5eXl5LW1tLWRkJztcblxuICBASW5wdXQoKSBwdWJsaWMgY2RrID0gdHJ1ZTsgLy8gRGVhY3RpdmF0ZSB0byB1c2Ugb2xkIGRhdGUgcGlja2VyXG5cbiAgLy8tLS0gSW5wdXRzIHJlcGxpY2F0ZWQgZnJvbSBkYXRlcGlja2VyOyAoc2VsZWN0aW9uRG9uZSkgaXMgbm90IG5lZWRlZCwgYXMgKGRhdGVDaGFuZ2UpIGlzIGVxdWl2YWxlblxuICBASW5wdXQoKSBwdWJsaWMgZGF0ZXBpY2tlck1vZGU6IHN0cmluZyA9ICdkYXknOyAvLyBzZXRzIGRhdGVwaWNrZXIgbW9kZSwgc3VwcG9ydHM6IGRheSwgbW9udGgsIHllYXJcbiAgQElucHV0KCkgaW5pdERhdGVTdHJpbmchOiBzdHJpbmc7IC8vIGRlZmF1bHQgZGF0ZSB0byBzaG93IGlmIG5nLW1vZGVsIHZhbHVlIGlzIG5vdCBzcGVjaWZpZWRcbiAgQE9ic2VydmUoJ2luaXREYXRlU3RyaW5nJykgaW5pdERhdGVTdHJpbmckITogT2JzZXJ2YWJsZTxzdHJpbmc+OyAvLyBkZWZhdWx0IGRhdGUgdG8gc2hvdyBpZiBuZy1tb2RlbCB2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkXG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5EYXRlID0gREVGQVVMVF9NSU5fREFURTsgLy8gb2xkZXN0IHNlbGVjdGFibGUgZGF0ZVxuICBASW5wdXQoKSBwdWJsaWMgbWF4RGF0ZSA9IERFRkFVTFRfTUFYX0RBVEU7IC8vIGxhdGVzdCBzZWxlY3RhYmxlIGRhdGVcbiAgQElucHV0KCkgcHVibGljIG1pbk1vZGU6IHN0cmluZyA9ICdkYXknOyAvLyBzZXQgbG93ZXIgZGF0ZXBpY2tlciBtb2RlLCBzdXBwb3J0czogZGF5LCBtb250aCwgeWVhclxuICBASW5wdXQoKSBwdWJsaWMgbWF4TW9kZTogc3RyaW5nID0gJ3llYXInOyAvLyBzZXRzIHVwcGVyIGRhdGVwaWNrZXIgbW9kZSwgc3VwcG9ydHM6IGRheSwgbW9udGgsIHllYXJcbiAgQElucHV0KCkgcHVibGljIHNob3dXZWVrczogYm9vbGVhbiA9IHRydWU7IC8vIGlmIGZhbHNlIHdlZWsgbnVtYmVycyB3aWxsIGJlIGhpZGRlblxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0RGF5OiBzdHJpbmcgPSAnREQnOyAvLyBmb3JtYXQgb2YgZGF5IGluIG1vbnRoXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXRNb250aDogc3RyaW5nID0gJ01NTU0nOyAvLyBmb3JtYXQgb2YgbW9udGggaW4geWVhclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0WWVhcjogc3RyaW5nID0gJ1lZWVknOyAvLyBmb3JtYXQgb2YgeWVhciBpbiB5ZWFyIHJhbmdlXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXREYXlIZWFkZXI6IHN0cmluZyA9ICdkZCc7IC8vIGZvcm1hdCBvZiBkYXkgaW4gd2VlayBoZWFkZXJcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdERheVRpdGxlOiBzdHJpbmcgPSAnTU1NTSBZWVlZJzsgLy8gZm9ybWF0IG9mIHRpdGxlIHdoZW4gc2VsZWN0aW5nIGRheVxuICBASW5wdXQoKSBwdWJsaWMgZm9ybWF0TW9udGhUaXRsZTogc3RyaW5nID0gJ1lZWVknOyAvLyBmb3JtYXQgb2YgdGl0bGUgd2hlbiBzZWxlY3RpbmcgbW9udGhcbiAgQElucHV0KCkgc3RhcnRpbmdEYXk6IG51bWJlciA9IDA7IC8vIHN0YXJ0aW5nIGRheSBvZiB0aGUgd2VlayBmcm9tIDAtNiAoMD1TdW5kYXksIC4uLiwgNj1TYXR1cmRheSkgcHVibGljXG4gIEBJbnB1dCgpIHB1YmxpYyB5ZWFyUmFuZ2U6IG51bWJlciA9IDIwOyAvLyBudW1iZXIgb2YgeWVhcnMgZGlzcGxheWVkIGluIHllYXIgc2VsZWN0aW9uXG4gIEBJbnB1dCgpIHB1YmxpYyBvbmx5Q3VycmVudE1vbnRoOiBib29sZWFuID0gZmFsc2U7IC8vIGlmIHRydWUgb25seSBkYXRlcyBmcm9tIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoIHdpbGwgYmUgc2hvd25cbiAgQElucHV0KCkgcHVibGljIHNob3J0Y3V0UHJvcGFnYXRpb246IGJvb2xlYW4gPSBmYWxzZTsgLy8gIGlmIHRydWUgc2hvcnRjdXRgcyBldmVudCBwcm9wYWdhdGlvbiB3aWxsIGJlIGRpc2FibGVkXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzczogeyBkYXRlOiBEYXRlOyBtb2RlOiBzdHJpbmc7IGNsYXp6OiBzdHJpbmcgfVtdID0gW107IC8vIGFycmF5IG9mIGN1c3RvbSBjc3MgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvXG4gIC8vIHRhcmdldGVkIGRhdGVzXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCE6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlRGlzYWJsZWQ6IHsgZGF0ZTogRGF0ZTsgbW9kZTogc3RyaW5nIH1bXSA9IFtdOyAvLyBhcnJheSBvZiBkaXNhYmxlZCBkYXRlcyBpZiBtb2RlIGlzIGRheSwgb3IgeWVhcnMsIGV0Yy5cbiAgQElucHV0KCkgYXV0b0ZvY3VzID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNsb3NlRGF0ZUlucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHNob3dEYXRlcGlja2VyOiBib29sZWFuID0gZmFsc2U7XG4gIGRhdGVGb3JtYXQ6IHN0cmluZztcbiAgaW5pdERhdGUhOiBEYXRlO1xuXG4gIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8vLS0gSW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIHByaXZhdGUgZm9ybUNvbnRyb2whOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIGhhc0Vycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIG9uVG91Y2hlZCE6ICgpID0+IHZvaWQ7XG5cbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF9kYXRlOiBEYXRlIHwgbnVsbCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChEQVRFX0ZPUk1BVFMpIHByaXZhdGUgZGF0ZUZvcm1hdHNQcm92aWRlcjogRGF0ZUZvcm1hdHNQcm92aWRlcixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEVfRk5fTE9DQUxFKSBwcml2YXRlIGdldERhdGVGbkxvY2FsZT86IEZ1bmN0aW9uXG4gICkge1xuICAgIHRoaXMuZGF0ZUZvcm1hdCA9IHRoaXMuZGF0ZUZvcm1hdHNQcm92aWRlci5nZXREYXRlRm9ybWF0KCk7XG4gICAgLy8gUGF0Y2ggRGF0ZVBpY2tlciB1bnRpbCBodHRwczovL2dpdGh1Yi5jb20vdmFsb3Itc29mdHdhcmUvbmcyLWJvb3RzdHJhcC9pc3N1ZXMvMTM4NSBpcyByZXNvbHZlZFxuICAgIGNvbnN0IHdyaXRlVmFsdWUgPSBEYXRlUGlja2VyQ29tcG9uZW50LnByb3RvdHlwZS53cml0ZVZhbHVlO1xuICAgIERhdGVQaWNrZXJDb21wb25lbnQucHJvdG90eXBlLndyaXRlVmFsdWUgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gd3JpdGVWYWx1ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMgYXMgYW55KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgLy8gU29tZWhvdyBkYXRlcGlja2VyIGRvZXMgdXNlIGEgc2VwYXJhdGUgbW9tZW50IGluc3RhbmNlIHRoYW4gd2UgZG8uIFRoYXQgb25lIHJ1bnMgb24gbG9jYWxlIGVuIGJ5IGRlZmF1bHQuXG4gICAgLy8gU28gd2UgcGF0Y2ggdGhlIGZvcm1hdCBmdW5jdGlvbiBoZXJlIHRvIHVzZSBvdXIgbW9tZW50IGluc3RhbmNlLlxuICAgIC8vIE1heWJlIGl0IHdpbGwgYmUgZml4ZWQgd2l0aDogaHR0cHM6Ly9naXRodWIuY29tL3ZhbG9yLXNvZnR3YXJlL25neC1ib290c3RyYXAvaXNzdWVzLzQ1NVxuICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuZ2V0RGF0ZUZuTG9jYWxlID8gdGhpcy5nZXREYXRlRm5Mb2NhbGUoKSA6IG51bGw7XG4gICAgRGF0ZUZvcm1hdHRlci5wcm90b3R5cGUuZm9ybWF0ID0gZnVuY3Rpb24gKGRhdGU6IERhdGUsIGY6IHN0cmluZykge1xuICAgICAgcmV0dXJuIGZvcm1hdChkYXRlLCBmLCB7IGxvY2FsZSB9KTtcbiAgICB9O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0RGF0ZVN0cmluZyQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKChkYXRlKSA9PiB7XG4gICAgICB0aGlzLmluaXREYXRlID0gY3JlYXRlRGF0ZUZyb21EYXRlU3RyaW5nKGRhdGUpID8/IHN0YXJ0T2ZEYXkobmV3IERhdGUoKSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydkYXRlJ10pIHtcbiAgICAgIHRoaXMuZGF0ZVN0cmluZyA9IHRoaXMuZGF0ZSA/IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuZGF0ZSkgOiBudWxsO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snZGF0ZVN0cmluZyddKSB7XG4gICAgICB0aGlzLm9uRGF0ZVN0cmluZ0NoYW5nZSh0aGlzLmRhdGVTdHJpbmcsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93UG9wdXAoKSB7XG4gICAgdGhpcy5zaG93RGF0ZXBpY2tlciA9IHRydWU7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUG9wdXAoKSB7XG4gICAgdGhpcy5zaG93RGF0ZXBpY2tlciA9ICF0aGlzLnNob3dEYXRlcGlja2VyO1xuICB9XG5cbiAgcHVibGljIGhpZGVQb3B1cCgpIHtcbiAgICBpZiAodGhpcy5zaG93RGF0ZXBpY2tlcikge1xuICAgICAgdGhpcy5zaG93RGF0ZXBpY2tlciA9IGZhbHNlO1xuICAgICAgdGhpcy5jbG9zZURhdGVJbnB1dC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25EYXRlU3RyaW5nQ2hhbmdlKG5ld0RhdGVTdHJpbmc6IHN0cmluZyB8IG51bGwsIGVtaXQ6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKGlzVmFsaWREYXRlU3RyaW5nKG5ld0RhdGVTdHJpbmcpKSB7XG4gICAgICBjb25zdCBkYXRlID0gY3JlYXRlRGF0ZUZyb21EYXRlU3RyaW5nKG5ld0RhdGVTdHJpbmcpO1xuICAgICAgdGhpcy51cGRhdGVEYXRlKGRhdGUsIGVtaXQpO1xuICAgIH0gZWxzZSBpZiAobmV3RGF0ZVN0cmluZyA9PT0gbnVsbCB8fCBuZXdEYXRlU3RyaW5nID09PSAnJykge1xuICAgICAgdGhpcy51cGRhdGVEYXRlKG51bGwsIGVtaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcbiAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU2VsZWN0aW9uRG9uZShuZXdEYXRlOiBEYXRlKSB7XG4gICAgdGhpcy51cGRhdGVEYXRlKG5ld0RhdGUpO1xuICAgIHRoaXMuaGlkZVBvcHVwKCk7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRGF0ZShkYXRlOiBEYXRlIHwgbnVsbCwgZW1pdDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICB0aGlzLmRhdGUgPSBkYXRlO1xuICAgIHRoaXMuZGF0ZVN0cmluZyA9IHRoaXMuZGF0ZSA/IGNvbnZlcnREYXRlVG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMuZGF0ZSkgOiAnJztcbiAgICBpZiAoZW1pdCkge1xuICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQoZGF0ZSk7XG4gICAgICB0aGlzLmRhdGVTdHJpbmdDaGFuZ2UuZW1pdCh0aGlzLmRhdGVTdHJpbmcpO1xuICAgIH1cbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShkYXRlKTtcbiAgICB0aGlzLnJlY2hlY2tFcnJvcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVjaGVja0Vycm9ycygpIHtcbiAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vLS0tIEltcGxlbWVudCBDb250cm9sVmFsdWVBY2Nlc3NvclxuICAvKiogV3JpdGUgYSBuZXcgdmFsdWUgdG8gdGhlIGVsZW1lbnQuICovXG4gIHdyaXRlVmFsdWUobmV3RGF0ZTogRGF0ZSB8IHN0cmluZykge1xuICAgIGlmICh0aGlzLnZhbHVlQWNjZXNzb3IgPT09ICdkYXRlJykge1xuICAgICAgdGhpcy5kYXRlID0gbmV3RGF0ZSBhcyBEYXRlO1xuICAgICAgdGhpcy5kYXRlU3RyaW5nID0gY29udmVydERhdGVUb0xvY2FsZURhdGVTdHJpbmcodGhpcy5kYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kYXRlU3RyaW5nID0gbmV3RGF0ZSBhcyBzdHJpbmc7XG4gICAgICB0aGlzLm9uRGF0ZVN0cmluZ0NoYW5nZSh0aGlzLmRhdGVTdHJpbmcsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKiogU2V0IHRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCByZWNlaXZlcyBhIGNoYW5nZSBldmVudC4gKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgaWYgKHRoaXMudmFsdWVBY2Nlc3NvciA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLmRhdGVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKGZuKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWVBY2Nlc3NvciA9PT0gJ2RhdGVTdHJpbmcnKSB7XG4gICAgICB0aGlzLmRhdGVTdHJpbmdDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKGZuKTtcbiAgICB9XG4gIH1cblxuICAvKiogU2V0IHRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgY29udHJvbCByZWNlaXZlcyBhIHRvdWNoIGV2ZW50LiAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICB2YWxpZGF0ZShjOiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICB0aGlzLmZvcm1Db250cm9sID0gYztcbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvclxuICAgICAgPyB7XG4gICAgICAgICAgZGF0ZUZvcm1hdEVycm9yOiB7XG4gICAgICAgICAgICBnaXZlbjogdGhpcy5kYXRlU3RyaW5nLFxuICAgICAgICAgICAgZm9ybWF0OiAneXl5eS1tbS1kZCdcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDogbnVsbDtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNkazsgZWxzZSB3aXRob3V0Q2RrT3ZlcmxheVwiPlxuICA8c3BhblxuICAgIGNsYXNzPVwid3JhcHBlclwiXG4gICAgW2NsYXNzLmZvckxpbmtdPVwicmVuZGVyaW5nU3R5bGUgPT09ICdMSU5LJ1wiXG4gICAgW2NsYXNzLmhhcy1lcnJvcl09XCJoYXNFcnJvclwiXG4gICAgY2RrT3ZlcmxheU9yaWdpblxuICAgICNvcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCJcbiAgPlxuICAgIDwhLS0gVE9ETzogVGhlIGRhdGVJbnB1dCBhbmQgZGF0ZVBpY2tlciBjb2RlIGlzdCBkdXBsaWNhdGVkIGZvciBjZGsgYW5kIHdpdGhvdXRDZEsgdXNlIHRvIHNvbHZlIGEgcGxhY2luZyBwcm9ibGVtIG9mIHRoZVxuICAgICAgIG5neC1ib290c3RyYXAgZGF0ZXBpY2tlciBjb21wb25lbnQuIFdyaXRpbmcgaXQgaW4gYSBuZy1jb250YWluZXIgbGVkIHRvIGFuIHVuZXhwZWN0ZWQgYW5jaG9yaW5nIGJlaGF2aW9yIG9mIHRoZSBkYXRlUGlja2VyIE5PVCBkaXJlY3RseVxuICAgICAgYmVsb3cgdGhlIGRhdGVJbnB1dCBlbGVtZW50IC0tPlxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0XG4gICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBkYXRlQ29udHJvbFwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgIFtseEF1dG9mb2N1c109XCJhdXRvRm9jdXNcIlxuICAgICAgWyhuZ01vZGVsKV09XCJkYXRlU3RyaW5nXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkRhdGVTdHJpbmdDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwic2hvd1BvcHVwKClcIlxuICAgICAgKGJsdXIpPVwib25CbHVyKClcIlxuICAgICAgKGtleWRvd24uZW50ZXIpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgKGtleWRvd24uZXNjYXBlKT1cImhpZGVQb3B1cCgpXCJcbiAgICAgIChrZXlkb3duLnRhYik9XCJoaWRlUG9wdXAoKVwiXG4gICAgICAoa2V5ZG93bi5zaGlmdC50YWIpPVwiaGlkZVBvcHVwKClcIlxuICAgICAgW2NsYXNzLnRleHQtZGFuZ2VyXT1cImhhc0Vycm9yXCJcbiAgICAgICpuZ0lmPVwicmVuZGVyaW5nU3R5bGUgPT09ICdJTlBVVCdcIlxuICAgIC8+XG4gICAgPGEgY2xhc3M9XCJkYXRlQ29udHJvbFwiIChjbGljayk9XCJ0b2dnbGVQb3B1cCgpXCIgKm5nSWY9XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCI+e3sgZGF0ZSB8IGx4RGF0ZTogZGF0ZUZvcm1hdCB9fTwvYT5cblxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgI2Nka0RhdGVwaWNrZXJcbiAgICAgIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJzaG93RGF0ZXBpY2tlclwiXG4gICAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJvcmlnaW5cIlxuICAgICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJ0cnVlXCJcbiAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5QmFja2Ryb3BDbGFzc109XCInYmFja2Ryb3AnXCJcbiAgICAgIChiYWNrZHJvcENsaWNrKT1cImhpZGVQb3B1cCgpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlckNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXJcIj5cbiAgICAgICAgICA8ZGF0ZXBpY2tlclxuICAgICAgICAgICAgY2xhc3M9XCJwb3B1cFwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uRG9uZSk9XCJvblNlbGVjdGlvbkRvbmUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJkYXRlXCJcbiAgICAgICAgICAgIFtkYXRlcGlja2VyTW9kZV09XCJkYXRlcGlja2VyTW9kZVwiXG4gICAgICAgICAgICBbaW5pdERhdGVdPVwiaW5pdERhdGVcIlxuICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICAgIFttaW5Nb2RlXT1cIm1pbk1vZGVcIlxuICAgICAgICAgICAgW21heE1vZGVdPVwibWF4TW9kZVwiXG4gICAgICAgICAgICBbc2hvd1dlZWtzXT1cInNob3dXZWVrc1wiXG4gICAgICAgICAgICBbZm9ybWF0RGF5XT1cImZvcm1hdERheVwiXG4gICAgICAgICAgICBbZm9ybWF0TW9udGhdPVwiZm9ybWF0TW9udGhcIlxuICAgICAgICAgICAgW2Zvcm1hdFllYXJdPVwiZm9ybWF0WWVhclwiXG4gICAgICAgICAgICBbZm9ybWF0RGF5SGVhZGVyXT1cImZvcm1hdERheUhlYWRlclwiXG4gICAgICAgICAgICBbZm9ybWF0RGF5VGl0bGVdPVwiZm9ybWF0RGF5VGl0bGVcIlxuICAgICAgICAgICAgW2Zvcm1hdE1vbnRoVGl0bGVdPVwiZm9ybWF0TW9udGhUaXRsZVwiXG4gICAgICAgICAgICBbc3RhcnRpbmdEYXldPVwic3RhcnRpbmdEYXlcIlxuICAgICAgICAgICAgW3llYXJSYW5nZV09XCJ5ZWFyUmFuZ2VcIlxuICAgICAgICAgICAgW29ubHlDdXJyZW50TW9udGhdPVwib25seUN1cnJlbnRNb250aFwiXG4gICAgICAgICAgICBbc2hvcnRjdXRQcm9wYWdhdGlvbl09XCJzaG9ydGN1dFByb3BhZ2F0aW9uXCJcbiAgICAgICAgICAgIFtjdXN0b21DbGFzc109XCJjdXN0b21DbGFzc1wiXG4gICAgICAgICAgICBbZGF0ZURpc2FibGVkXT1cImRhdGVEaXNhYmxlZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvZGF0ZXBpY2tlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3NwYW4+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN3aXRob3V0Q2RrT3ZlcmxheT5cbiAgPGRpdiBjbGFzcz1cImxlZ2FjeVwiIFtjbGFzcy5mb3JMaW5rXT1cInJlbmRlcmluZ1N0eWxlID09PSAnTElOSydcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFja2Ryb3BcIiAqbmdJZj1cInNob3dEYXRlcGlja2VyXCIgKGNsaWNrKT1cImhpZGVQb3B1cCgpXCI+PC9kaXY+XG4gICAgPHNwYW4gY2xhc3M9XCJ3cmFwcGVyXCIgW2NsYXNzLmZvckxpbmtdPVwicmVuZGVyaW5nU3R5bGUgPT09ICdMSU5LJ1wiIFtjbGFzcy5oYXMtZXJyb3JdPVwiaGFzRXJyb3JcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZGF0ZUNvbnRyb2xcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHBsYWNlaG9sZGVyIH19XCJcbiAgICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgICBbbHhBdXRvZm9jdXNdPVwiYXV0b0ZvY3VzXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlU3RyaW5nXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25EYXRlU3RyaW5nQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoZm9jdXMpPVwic2hvd1BvcHVwKClcIlxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cImhpZGVQb3B1cCgpXCJcbiAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cImhpZGVQb3B1cCgpXCJcbiAgICAgICAgKGtleWRvd24udGFiKT1cImhpZGVQb3B1cCgpXCJcbiAgICAgICAgKGtleWRvd24uc2hpZnQudGFiKT1cImhpZGVQb3B1cCgpXCJcbiAgICAgICAgW2NsYXNzLnRleHQtZGFuZ2VyXT1cImhhc0Vycm9yXCJcbiAgICAgICAgKm5nSWY9XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0lOUFVUJ1wiXG4gICAgICAvPlxuICAgICAgPGEgY2xhc3M9XCJkYXRlQ29udHJvbFwiIChjbGljayk9XCJ0b2dnbGVQb3B1cCgpXCIgKm5nSWY9XCJyZW5kZXJpbmdTdHlsZSA9PT0gJ0xJTksnXCI+e3sgZGF0ZSB8IGx4RGF0ZTogZGF0ZUZvcm1hdCB9fTwvYT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyQ29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhclwiPlxuICAgICAgICAgIDxkYXRlcGlja2VyXG4gICAgICAgICAgICBjbGFzcz1cInBvcHVwXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0RhdGVwaWNrZXJcIlxuICAgICAgICAgICAgKHNlbGVjdGlvbkRvbmUpPVwib25TZWxlY3Rpb25Eb25lKCRldmVudClcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiZGF0ZVwiXG4gICAgICAgICAgICBbZGF0ZXBpY2tlck1vZGVdPVwiZGF0ZXBpY2tlck1vZGVcIlxuICAgICAgICAgICAgW2luaXREYXRlXT1cImluaXREYXRlXCJcbiAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgICBbbWluTW9kZV09XCJtaW5Nb2RlXCJcbiAgICAgICAgICAgIFttYXhNb2RlXT1cIm1heE1vZGVcIlxuICAgICAgICAgICAgW3Nob3dXZWVrc109XCJzaG93V2Vla3NcIlxuICAgICAgICAgICAgW2Zvcm1hdERheV09XCJmb3JtYXREYXlcIlxuICAgICAgICAgICAgW2Zvcm1hdE1vbnRoXT1cImZvcm1hdE1vbnRoXCJcbiAgICAgICAgICAgIFtmb3JtYXRZZWFyXT1cImZvcm1hdFllYXJcIlxuICAgICAgICAgICAgW2Zvcm1hdERheUhlYWRlcl09XCJmb3JtYXREYXlIZWFkZXJcIlxuICAgICAgICAgICAgW2Zvcm1hdERheVRpdGxlXT1cImZvcm1hdERheVRpdGxlXCJcbiAgICAgICAgICAgIFtmb3JtYXRNb250aFRpdGxlXT1cImZvcm1hdE1vbnRoVGl0bGVcIlxuICAgICAgICAgICAgW3N0YXJ0aW5nRGF5XT1cInN0YXJ0aW5nRGF5XCJcbiAgICAgICAgICAgIFt5ZWFyUmFuZ2VdPVwieWVhclJhbmdlXCJcbiAgICAgICAgICAgIFtvbmx5Q3VycmVudE1vbnRoXT1cIm9ubHlDdXJyZW50TW9udGhcIlxuICAgICAgICAgICAgW3Nob3J0Y3V0UHJvcGFnYXRpb25dPVwic2hvcnRjdXRQcm9wYWdhdGlvblwiXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiY3VzdG9tQ2xhc3NcIlxuICAgICAgICAgICAgW2RhdGVEaXNhYmxlZF09XCJkYXRlRGlzYWJsZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2RhdGVwaWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,8 +1,8 @@
1
1
  /* tslint:disable: max-file-line-count */
2
+ import { NgIf } from '@angular/common';
2
3
  import { Component, EventEmitter, Input, Output } from '@angular/core';
3
4
  import { DateFormatter } from './date-formatter';
4
5
  import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
6
  export class DatePickerInnerComponent {
7
7
  constructor() {
8
8
  this.selectionDone = new EventEmitter(undefined);
@@ -233,12 +233,12 @@ export class DatePickerInnerComponent {
233
233
  return (isDateDisabled || (this.minDate && this.compare(date, this.minDate) < 0) || (this.maxDate && this.compare(date, this.maxDate) > 0));
234
234
  }
235
235
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: DatePickerInnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
236
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: DatePickerInnerComponent, selector: "datepicker-inner", inputs: { locale: "locale", datepickerMode: "datepickerMode", startingDay: "startingDay", yearRange: "yearRange", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", monthColLimit: "monthColLimit", yearColLimit: "yearColLimit", dateDisabled: "dateDisabled", dayDisabled: "dayDisabled", initDate: "initDate", activeDate: "activeDate" }, outputs: { selectionDone: "selectionDone", update: "update", activeDateChange: "activeDateChange" }, usesOnChanges: true, ngImport: i0, template: `
236
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: DatePickerInnerComponent, isStandalone: true, selector: "datepicker-inner", inputs: { locale: "locale", datepickerMode: "datepickerMode", startingDay: "startingDay", yearRange: "yearRange", minDate: "minDate", maxDate: "maxDate", minMode: "minMode", maxMode: "maxMode", showWeeks: "showWeeks", formatDay: "formatDay", formatMonth: "formatMonth", formatYear: "formatYear", formatDayHeader: "formatDayHeader", formatDayTitle: "formatDayTitle", formatMonthTitle: "formatMonthTitle", onlyCurrentMonth: "onlyCurrentMonth", shortcutPropagation: "shortcutPropagation", customClass: "customClass", monthColLimit: "monthColLimit", yearColLimit: "yearColLimit", dateDisabled: "dateDisabled", dayDisabled: "dayDisabled", initDate: "initDate", activeDate: "activeDate" }, outputs: { selectionDone: "selectionDone", update: "update", activeDateChange: "activeDateChange" }, usesOnChanges: true, ngImport: i0, template: `
237
237
  <!--&lt;!&ndash;ng-keydown="keydown($event)"&ndash;&gt;-->
238
238
  <div *ngIf="datepickerMode" class="well well-sm bg-faded p-a card" role="application">
239
239
  <ng-content></ng-content>
240
240
  </div>
241
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
241
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
242
242
  }
243
243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: DatePickerInnerComponent, decorators: [{
244
244
  type: Component,
@@ -250,7 +250,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
250
250
  <div *ngIf="datepickerMode" class="well well-sm bg-faded p-a card" role="application">
251
251
  <ng-content></ng-content>
252
252
  </div>
253
- `
253
+ `,
254
+ standalone: true,
255
+ imports: [NgIf]
254
256
  }]
255
257
  }], propDecorators: { locale: [{
256
258
  type: Input
@@ -307,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
307
309
  }], activeDate: [{
308
310
  type: Input
309
311
  }] } });
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtcGlja2VyLXVpL2RhdGVwaWNrZXItaW5uZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFZakQsTUFBTSxPQUFPLHdCQUF3QjtJQVZyQztRQTJEWSxrQkFBYSxHQUF1QixJQUFJLFlBQVksQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUN0RSxXQUFNLEdBQXVCLElBQUksWUFBWSxDQUFPLEtBQUssQ0FBQyxDQUFDO1FBQzNELHFCQUFnQixHQUF1QixJQUFJLFlBQVksQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUVuRixxQ0FBcUM7UUFDckMsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixxQ0FBcUM7UUFDckMsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixxQ0FBcUM7UUFDckMsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUlULFVBQUssR0FBYSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0Msa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztLQTJSOUQ7SUEvUUMsSUFDSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFXO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsUUFBUTtRQUNOLGtDQUFr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YixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixZQUFZO3NCQURYLEtBQUs7Z0JBR04sV0FBVztzQkFEVixLQUFLO2dCQUdOLFFBQVE7c0JBRFAsS0FBSztnQkFHSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBeUJILFVBQVU7c0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOiBtYXgtZmlsZS1saW5lLWNvdW50ICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVGb3JtYXR0ZXIgfSBmcm9tICcuL2RhdGUtZm9ybWF0dGVyJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZGF0ZXBpY2tlci1pbm5lcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPCEtLSZsdDshJm5kYXNoO25nLWtleWRvd249XCJrZXlkb3duKCRldmVudClcIiZuZGFzaDsmZ3Q7LS0+XG4gICAgPGRpdiAqbmdJZj1cImRhdGVwaWNrZXJNb2RlXCIgY2xhc3M9XCJ3ZWxsIHdlbGwtc20gYmctZmFkZWQgcC1hIGNhcmRcIiByb2xlPVwiYXBwbGljYXRpb25cIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VySW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIGxvY2FsZSE6IHN0cmluZztcbiAgQElucHV0KClcbiAgZGF0ZXBpY2tlck1vZGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHN0YXJ0aW5nRGF5ITogbnVtYmVyO1xuICBASW5wdXQoKVxuICB5ZWFyUmFuZ2UhOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgbWluRGF0ZSE6IERhdGU7XG4gIEBJbnB1dCgpXG4gIG1heERhdGUhOiBEYXRlO1xuICBASW5wdXQoKVxuICBtaW5Nb2RlITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBtYXhNb2RlITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBzaG93V2Vla3MhOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBmb3JtYXREYXkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGZvcm1hdE1vbnRoITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBmb3JtYXRZZWFyITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBmb3JtYXREYXlIZWFkZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGZvcm1hdERheVRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBmb3JtYXRNb250aFRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBvbmx5Q3VycmVudE1vbnRoITogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgc2hvcnRjdXRQcm9wYWdhdGlvbiE6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGN1c3RvbUNsYXNzITogeyBkYXRlOiBEYXRlOyBtb2RlOiBzdHJpbmc7IGNsYXp6OiBzdHJpbmcgfVtdO1xuICBASW5wdXQoKVxuICBtb250aENvbExpbWl0ITogbnVtYmVyO1xuICBASW5wdXQoKVxuICB5ZWFyQ29sTGltaXQhOiBudW1iZXI7XG4gIEBJbnB1dCgpXG4gIGRhdGVEaXNhYmxlZCE6IHsgZGF0ZTogRGF0ZTsgbW9kZTogc3RyaW5nIH1bXTtcbiAgQElucHV0KClcbiAgZGF5RGlzYWJsZWQhOiBudW1iZXJbXTtcbiAgQElucHV0KClcbiAgaW5pdERhdGUhOiBEYXRlO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25Eb25lOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KHVuZGVmaW5lZCk7XG4gIEBPdXRwdXQoKSB1cGRhdGU6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oZmFsc2UpO1xuICBAT3V0cHV0KCkgYWN0aXZlRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPih1bmRlZmluZWQpO1xuXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgc3RlcERheTogYW55ID0ge307XG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgc3RlcE1vbnRoOiBhbnkgPSB7fTtcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICBzdGVwWWVhcjogYW55ID0ge307XG5cbiAgdW5pcXVlSWQhOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIG1vZGVzOiBzdHJpbmdbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcbiAgcHJvdGVjdGVkIGRhdGVGb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXIgPSBuZXcgRGF0ZUZvcm1hdHRlcigpO1xuICBwcm90ZWN0ZWQgX2FjdGl2ZURhdGUhOiBEYXRlO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWREYXRlITogRGF0ZTtcbiAgcHJvdGVjdGVkIGFjdGl2ZURhdGVJZCE6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgcmVmcmVzaFZpZXdIYW5kbGVyRGF5ITogRnVuY3Rpb247XG4gIHByb3RlY3RlZCBjb21wYXJlSGFuZGxlckRheSE6IEZ1bmN0aW9uO1xuICBwcm90ZWN0ZWQgcmVmcmVzaFZpZXdIYW5kbGVyTW9udGghOiBGdW5jdGlvbjtcbiAgcHJvdGVjdGVkIGNvbXBhcmVIYW5kbGVyTW9udGghOiBGdW5jdGlvbjtcbiAgcHJvdGVjdGVkIHJlZnJlc2hWaWV3SGFuZGxlclllYXIhOiBGdW5jdGlvbjtcbiAgcHJvdGVjdGVkIGNvbXBhcmVIYW5kbGVyWWVhciE6IEZ1bmN0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBhY3RpdmVEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVEYXRlO1xuICB9XG5cbiAgc2V0IGFjdGl2ZURhdGUodmFsdWU6IERhdGUpIHtcbiAgICB0aGlzLl9hY3RpdmVEYXRlID0gdmFsdWU7XG4gIH1cblxuICAvLyB0b2RvOiBhZGQgZm9ybWF0dGVyIHZhbHVlIHRvIERhdGUgb2JqZWN0XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRvZG86IHVzZSBkYXRlIGZvciB1bmlxdWUgdmFsdWVcbiAgICB0aGlzLnVuaXF1ZUlkID0gYGRhdGVwaWNrZXItLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApfWA7XG5cbiAgICBpZiAodGhpcy5pbml0RGF0ZSkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5pbml0RGF0ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVEYXRlLnZhbHVlT2YoKSk7XG4gICAgICB0aGlzLnVwZGF0ZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvLyB0aGlzLnJlZnJlc2hWaWV3IHNob3VsZCBiZSBjYWxsZWQgaGVyZSB0byByZWZsZWN0IHRoZSBjaGFuZ2VzIG9uIHRoZSBmbHlcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVudXNlZC12YXJpYWJsZVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgIHRoaXMuY2hlY2tJZkFjdGl2ZURhdGVHb3RVcGRhdGVkKGNoYW5nZXNbJ2FjdGl2ZURhdGUnXSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBhY3RpdmVEYXRlIGhhcyBiZWVuIHVwZGF0ZSBhbmQgdGhlbiBlbWl0IHRoZSBhY3RpdmVEYXRlQ2hhbmdlIHdpdGggdGhlIG5ldyBkYXRlXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55ICovXG4gIGNoZWNrSWZBY3RpdmVEYXRlR290VXBkYXRlZChhY3RpdmVEYXRlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoYWN0aXZlRGF0ZSAmJiAhYWN0aXZlRGF0ZS5maXJzdENoYW5nZSkge1xuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGFjdGl2ZURhdGUucHJldmlvdXNWYWx1ZTtcbiAgICAgIGlmIChwcmV2aW91c1ZhbHVlICYmIHByZXZpb3VzVmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIHByZXZpb3VzVmFsdWUuZ2V0VGltZSgpICE9PSBhY3RpdmVEYXRlLmN1cnJlbnRWYWx1ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRDb21wYXJlSGFuZGxlcihoYW5kbGVyOiBGdW5jdGlvbiwgdHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLmNvbXBhcmVIYW5kbGVyRGF5ID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICB0aGlzLmNvbXBhcmVIYW5kbGVyWWVhciA9IGhhbmRsZXI7XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZShkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGlmIChkYXRlMSA9PT0gdW5kZWZpbmVkIHx8IGRhdGUyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknICYmIHRoaXMuY29tcGFyZUhhbmRsZXJEYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVIYW5kbGVyRGF5KGRhdGUxLCBkYXRlMik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdtb250aCcgJiYgdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoKGRhdGUxLCBkYXRlMik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICd5ZWFyJyAmJiB0aGlzLmNvbXBhcmVIYW5kbGVyWWVhcikge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZUhhbmRsZXJZZWFyKGRhdGUxLCBkYXRlMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHNldFJlZnJlc2hWaWV3SGFuZGxlcihoYW5kbGVyOiBGdW5jdGlvbiwgdHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlckRheSA9IGhhbmRsZXI7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdtb250aCcpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyTW9udGggPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAneWVhcicpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyWWVhciA9IGhhbmRsZXI7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaFZpZXcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknICYmIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyRGF5KSB7XG4gICAgICB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlckRheSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAnbW9udGgnICYmIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyTW9udGgpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyTW9udGgoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ3llYXInICYmIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyWWVhcikge1xuICAgICAgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJZZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgZGF0ZUZpbHRlcihkYXRlOiBEYXRlLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZUZvcm1hdHRlci5mb3JtYXQoZGF0ZSwgZm9ybWF0LCB0aGlzLmxvY2FsZSk7XG4gIH1cblxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIGlzQWN0aXZlKGRhdGVPYmplY3Q6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNvbXBhcmUoZGF0ZU9iamVjdC5kYXRlLCB0aGlzLmFjdGl2ZURhdGUpID09PSAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGVJZCA9IGRhdGVPYmplY3QudWlkO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIGNyZWF0ZURhdGVPYmplY3QoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpOiBhbnkge1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICBjb25zdCBkYXRlT2JqZWN0OiBhbnkgPSB7fTtcbiAgICBkYXRlT2JqZWN0LmRhdGUgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpO1xuICAgIGRhdGVPYmplY3QuZGF0ZSA9IHRoaXMuZml4VGltZVpvbmUoZGF0ZU9iamVjdC5kYXRlKTtcbiAgICBkYXRlT2JqZWN0LmxhYmVsID0gdGhpcy5kYXRlRmlsdGVyKGRhdGUsIGZvcm1hdCk7XG4gICAgZGF0ZU9iamVjdC5zZWxlY3RlZCA9IHRoaXMuY29tcGFyZShkYXRlLCB0aGlzLnNlbGVjdGVkRGF0ZSkgPT09IDA7XG4gICAgZGF0ZU9iamVjdC5kaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZChkYXRlKTtcbiAgICBkYXRlT2JqZWN0LmN1cnJlbnQgPSB0aGlzLmNvbXBhcmUoZGF0ZSwgbmV3IERhdGUoKSkgPT09IDA7XG4gICAgZGF0ZU9iamVjdC5jdXN0b21DbGFzcyA9IHRoaXMuZ2V0Q3VzdG9tQ2xhc3NGb3JEYXRlKGRhdGVPYmplY3QuZGF0ZSk7XG5cbiAgICByZXR1cm4gZGF0ZU9iamVjdDtcbiAgfVxuXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgc3BsaXQoYXJyOiBhbnlbXSwgc2l6ZTogbnVtYmVyKTogYW55W10ge1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICBjb25zdCBhcnJheXM6IGFueVtdID0gW107XG4gICAgd2hpbGUgKGFyci5sZW5ndGggPiAwKSB7XG4gICAgICBhcnJheXMucHVzaChhcnIuc3BsaWNlKDAsIHNpemUpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyYXlzO1xuICB9XG5cbiAgLy8gRml4IGEgaGFyZC1yZXByb2R1Y2libGUgYnVnIHdpdGggdGltZXpvbmVzXG4gIC8vIFRoZSBidWcgZGVwZW5kcyBvbiBPUywgYnJvd3NlciwgY3VycmVudCB0aW1lem9uZSBhbmQgY3VycmVudCBkYXRlXG4gIC8vIGkuZS5cbiAgLy8gdmFyIGRhdGUgPSBuZXcgRGF0ZSgyMDE0LCAwLCAxKTtcbiAgLy8gY29uc29sZS5sb2coZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLFxuICAvLyBkYXRlLmdldEhvdXJzKCkpOyBjYW4gcmVzdWx0IGluIFwiMjAxMyAxMSAzMSAyM1wiIGJlY2F1c2Ugb2YgdGhlIGJ1Zy5cbiAgZml4VGltZVpvbmUoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRIb3VycygpO1xuXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgaG91cnMgPT09IDIzID8gaG91cnMgKyAyIDogMCk7XG4gIH1cblxuICBzZWxlY3QoZGF0ZTogRGF0ZSwgaXNNYW51YWwgPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09IHRoaXMubWluTW9kZSkge1xuICAgICAgaWYgKCF0aGlzLmFjdGl2ZURhdGUpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoMCwgMCwgMCwgMCwgMCwgMCwgMCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmZpeFRpbWVab25lKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICBpZiAoaXNNYW51YWwpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Eb25lLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKTtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuZml4VGltZVpvbmUodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgIGlmIChpc01hbnVhbCkge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJNb2RlID0gdGhpcy5tb2Rlc1t0aGlzLm1vZGVzLmluZGV4T2YodGhpcy5kYXRlcGlja2VyTW9kZSkgLSAxXSE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aGlzLmFjdGl2ZURhdGUudmFsdWVPZigpKTtcbiAgICB0aGlzLnVwZGF0ZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICB9XG5cbiAgbW92ZShkaXJlY3Rpb246IG51bWJlcik6IHZvaWQge1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICBsZXQgZXhwZWN0ZWRTdGVwOiBhbnk7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknKSB7XG4gICAgICBleHBlY3RlZFN0ZXAgPSB0aGlzLnN0ZXBEYXk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdtb250aCcpIHtcbiAgICAgIGV4cGVjdGVkU3RlcCA9IHRoaXMuc3RlcE1vbnRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAneWVhcicpIHtcbiAgICAgIGV4cGVjdGVkU3RlcCA9IHRoaXMuc3RlcFllYXI7XG4gICAgfVxuXG4gICAgaWYgKGV4cGVjdGVkU3RlcCkge1xuICAgICAgY29uc3QgeWVhciA9IHRoaXMuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpICsgZGlyZWN0aW9uICogKGV4cGVjdGVkU3RlcC55ZWFycyB8fCAwKTtcbiAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5hY3RpdmVEYXRlLmdldE1vbnRoKCkgKyBkaXJlY3Rpb24gKiAoZXhwZWN0ZWRTdGVwLm1vbnRocyB8fCAwKTtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcblxuICAgICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVNb2RlKF9kaXJlY3Rpb246IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IF9kaXJlY3Rpb24gfHwgMTtcblxuICAgIGlmICgodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gdGhpcy5tYXhNb2RlICYmIGRpcmVjdGlvbiA9PT0gMSkgfHwgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09IHRoaXMubWluTW9kZSAmJiBkaXJlY3Rpb24gPT09IC0xKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZXBpY2tlck1vZGUgPSB0aGlzLm1vZGVzW3RoaXMubW9kZXMuaW5kZXhPZih0aGlzLmRhdGVwaWNrZXJNb2RlKSArIGRpcmVjdGlvbl0hO1xuICAgIHRoaXMucmVmcmVzaFZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDdXN0b21DbGFzc0ZvckRhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmN1c3RvbUNsYXNzKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIC8vIHRvZG86IGJ1aWxkIGEgaGFzaCBvZiBjdXN0b20gY2xhc3NlcywgaXQgd2lsbCB3b3JrIGZhc3RlclxuICAgIGNvbnN0IGN1c3RvbUNsYXNzT2JqZWN0OiB7XG4gICAgICBkYXRlOiBEYXRlO1xuICAgICAgbW9kZTogc3RyaW5nO1xuICAgICAgY2xheno6IHN0cmluZztcbiAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55ICovXG4gICAgfSA9IHRoaXMuY3VzdG9tQ2xhc3MuZmluZCgoY3VzdG9tQ2xhc3M6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIGN1c3RvbUNsYXNzLmRhdGUudmFsdWVPZigpID09PSBkYXRlLnZhbHVlT2YoKSAmJiBjdXN0b21DbGFzcy5tb2RlID09PSB0aGlzLmRhdGVwaWNrZXJNb2RlO1xuICAgIH0sIHRoaXMpITtcblxuICAgIHJldHVybiBjdXN0b21DbGFzc09iamVjdCA9PT0gdW5kZWZpbmVkID8gJycgOiBjdXN0b21DbGFzc09iamVjdC5jbGF6ejtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wYXJlRGF0ZURpc2FibGVkKGRhdGUxRGlzYWJsZWQ6IHsgZGF0ZTogRGF0ZTsgbW9kZTogc3RyaW5nIH0sIGRhdGUyOiBEYXRlKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZGF0ZTFEaXNhYmxlZCA9PT0gdW5kZWZpbmVkIHx8IGRhdGUyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxRGlzYWJsZWQubW9kZSA9PT0gJ2RheScgJiYgdGhpcy5jb21wYXJlSGFuZGxlckRheSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZUhhbmRsZXJEYXkoZGF0ZTFEaXNhYmxlZC5kYXRlLCBkYXRlMik7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxRGlzYWJsZWQubW9kZSA9PT0gJ21vbnRoJyAmJiB0aGlzLmNvbXBhcmVIYW5kbGVyTW9udGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVIYW5kbGVyTW9udGgoZGF0ZTFEaXNhYmxlZC5kYXRlLCBkYXRlMik7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxRGlzYWJsZWQubW9kZSA9PT0gJ3llYXInICYmIHRoaXMuY29tcGFyZUhhbmRsZXJZZWFyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlSGFuZGxlclllYXIoZGF0ZTFEaXNhYmxlZC5kYXRlLCBkYXRlMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkKGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBsZXQgaXNEYXRlRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5kYXRlRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZGF0ZURpc2FibGVkLmZvckVhY2goKGRpc2FibGVkRGF0ZTogeyBkYXRlOiBEYXRlOyBtb2RlOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb21wYXJlRGF0ZURpc2FibGVkKGRpc2FibGVkRGF0ZSwgZGF0ZSkgPT09IDApIHtcbiAgICAgICAgICBpc0RhdGVEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRheURpc2FibGVkKSB7XG4gICAgICBpc0RhdGVEaXNhYmxlZCA9IGlzRGF0ZURpc2FibGVkIHx8IHRoaXMuZGF5RGlzYWJsZWQuaW5kZXhPZihkYXRlLmdldERheSgpKSA+IC0xO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICBpc0RhdGVEaXNhYmxlZCB8fCAodGhpcy5taW5EYXRlICYmIHRoaXMuY29tcGFyZShkYXRlLCB0aGlzLm1pbkRhdGUpISA8IDApIHx8ICh0aGlzLm1heERhdGUgJiYgdGhpcy5jb21wYXJlKGRhdGUsIHRoaXMubWF4RGF0ZSkhID4gMClcbiAgICApO1xuICB9XG59XG4iXX0=
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1pbm5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtcGlja2VyLXVpL2RhdGVwaWNrZXItaW5uZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFjakQsTUFBTSxPQUFPLHdCQUF3QjtJQVpyQztRQTZEWSxrQkFBYSxHQUF1QixJQUFJLFlBQVksQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUN0RSxXQUFNLEdBQXVCLElBQUksWUFBWSxDQUFPLEtBQUssQ0FBQyxDQUFDO1FBQzNELHFCQUFnQixHQUF1QixJQUFJLFlBQVksQ0FBTyxTQUFTLENBQUMsQ0FBQztRQUVuRixxQ0FBcUM7UUFDckMsWUFBTyxHQUFRLEVBQUUsQ0FBQztRQUNsQixxQ0FBcUM7UUFDckMsY0FBUyxHQUFRLEVBQUUsQ0FBQztRQUNwQixxQ0FBcUM7UUFDckMsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUlULFVBQUssR0FBYSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0Msa0JBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztLQTJSOUQ7SUEvUUMsSUFDSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFXO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lB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QUFLO2dCQUdOLFNBQVM7c0JBRFIsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLGVBQWU7c0JBRGQsS0FBSztnQkFHTixjQUFjO3NCQURiLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBR04sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBR04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUdOLFdBQVc7c0JBRFYsS0FBSztnQkFHTixhQUFhO3NCQURaLEtBQUs7Z0JBR04sWUFBWTtzQkFEWCxLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixXQUFXO3NCQURWLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkF5QkgsVUFBVTtzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6IG1heC1maWxlLWxpbmUtY291bnQgKi9cbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlRm9ybWF0dGVyIH0gZnJvbSAnLi9kYXRlLWZvcm1hdHRlcic7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2RhdGVwaWNrZXItaW5uZXInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0mbHQ7ISZuZGFzaDtuZy1rZXlkb3duPVwia2V5ZG93bigkZXZlbnQpXCImbmRhc2g7Jmd0Oy0tPlxuICAgIDxkaXYgKm5nSWY9XCJkYXRlcGlja2VyTW9kZVwiIGNsYXNzPVwid2VsbCB3ZWxsLXNtIGJnLWZhZGVkIHAtYSBjYXJkXCIgcm9sZT1cImFwcGxpY2F0aW9uXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VySW5uZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIGxvY2FsZSE6IHN0cmluZztcbiAgQElucHV0KClcbiAgZGF0ZXBpY2tlck1vZGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIHN0YXJ0aW5nRGF5ITogbnVtYmVyO1xuICBASW5wdXQoKVxuICB5ZWFyUmFuZ2UhOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgbWluRGF0ZSE6IERhdGU7XG4gIEBJbnB1dCgpXG4gIG1heERhdGUhOiBEYXRlO1xuICBASW5wdXQoKVxuICBtaW5Nb2RlITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBtYXhNb2RlITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBzaG93V2Vla3MhOiBib29sZWFuO1xuICBASW5wdXQoKVxuICBmb3JtYXREYXkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGZvcm1hdE1vbnRoITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBmb3JtYXRZZWFyITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBmb3JtYXREYXlIZWFkZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIGZvcm1hdERheVRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBmb3JtYXRNb250aFRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKVxuICBvbmx5Q3VycmVudE1vbnRoITogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgc2hvcnRjdXRQcm9wYWdhdGlvbiE6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGN1c3RvbUNsYXNzITogeyBkYXRlOiBEYXRlOyBtb2RlOiBzdHJpbmc7IGNsYXp6OiBzdHJpbmcgfVtdO1xuICBASW5wdXQoKVxuICBtb250aENvbExpbWl0ITogbnVtYmVyO1xuICBASW5wdXQoKVxuICB5ZWFyQ29sTGltaXQhOiBudW1iZXI7XG4gIEBJbnB1dCgpXG4gIGRhdGVEaXNhYmxlZCE6IHsgZGF0ZTogRGF0ZTsgbW9kZTogc3RyaW5nIH1bXTtcbiAgQElucHV0KClcbiAgZGF5RGlzYWJsZWQhOiBudW1iZXJbXTtcbiAgQElucHV0KClcbiAgaW5pdERhdGUhOiBEYXRlO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25Eb25lOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KHVuZGVmaW5lZCk7XG4gIEBPdXRwdXQoKSB1cGRhdGU6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oZmFsc2UpO1xuICBAT3V0cHV0KCkgYWN0aXZlRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPih1bmRlZmluZWQpO1xuXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgc3RlcERheTogYW55ID0ge307XG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgc3RlcE1vbnRoOiBhbnkgPSB7fTtcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnkqL1xuICBzdGVwWWVhcjogYW55ID0ge307XG5cbiAgdW5pcXVlSWQhOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIG1vZGVzOiBzdHJpbmdbXSA9IFsnZGF5JywgJ21vbnRoJywgJ3llYXInXTtcbiAgcHJvdGVjdGVkIGRhdGVGb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXIgPSBuZXcgRGF0ZUZvcm1hdHRlcigpO1xuICBwcm90ZWN0ZWQgX2FjdGl2ZURhdGUhOiBEYXRlO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWREYXRlITogRGF0ZTtcbiAgcHJvdGVjdGVkIGFjdGl2ZURhdGVJZCE6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgcmVmcmVzaFZpZXdIYW5kbGVyRGF5ITogRnVuY3Rpb247XG4gIHByb3RlY3RlZCBjb21wYXJlSGFuZGxlckRheSE6IEZ1bmN0aW9uO1xuICBwcm90ZWN0ZWQgcmVmcmVzaFZpZXdIYW5kbGVyTW9udGghOiBGdW5jdGlvbjtcbiAgcHJvdGVjdGVkIGNvbXBhcmVIYW5kbGVyTW9udGghOiBGdW5jdGlvbjtcbiAgcHJvdGVjdGVkIHJlZnJlc2hWaWV3SGFuZGxlclllYXIhOiBGdW5jdGlvbjtcbiAgcHJvdGVjdGVkIGNvbXBhcmVIYW5kbGVyWWVhciE6IEZ1bmN0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBhY3RpdmVEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVEYXRlO1xuICB9XG5cbiAgc2V0IGFjdGl2ZURhdGUodmFsdWU6IERhdGUpIHtcbiAgICB0aGlzLl9hY3RpdmVEYXRlID0gdmFsdWU7XG4gIH1cblxuICAvLyB0b2RvOiBhZGQgZm9ybWF0dGVyIHZhbHVlIHRvIERhdGUgb2JqZWN0XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRvZG86IHVzZSBkYXRlIGZvciB1bmlxdWUgdmFsdWVcbiAgICB0aGlzLnVuaXF1ZUlkID0gYGRhdGVwaWNrZXItLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApfWA7XG5cbiAgICBpZiAodGhpcy5pbml0RGF0ZSkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5pbml0RGF0ZTtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVEYXRlLnZhbHVlT2YoKSk7XG4gICAgICB0aGlzLnVwZGF0ZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvLyB0aGlzLnJlZnJlc2hWaWV3IHNob3VsZCBiZSBjYWxsZWQgaGVyZSB0byByZWZsZWN0IHRoZSBjaGFuZ2VzIG9uIHRoZSBmbHlcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVudXNlZC12YXJpYWJsZVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgIHRoaXMuY2hlY2tJZkFjdGl2ZURhdGVHb3RVcGRhdGVkKGNoYW5nZXNbJ2FjdGl2ZURhdGUnXSk7XG4gIH1cblxuICAvLyBDaGVjayBpZiBhY3RpdmVEYXRlIGhhcyBiZWVuIHVwZGF0ZSBhbmQgdGhlbiBlbWl0IHRoZSBhY3RpdmVEYXRlQ2hhbmdlIHdpdGggdGhlIG5ldyBkYXRlXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55ICovXG4gIGNoZWNrSWZBY3RpdmVEYXRlR290VXBkYXRlZChhY3RpdmVEYXRlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoYWN0aXZlRGF0ZSAmJiAhYWN0aXZlRGF0ZS5maXJzdENoYW5nZSkge1xuICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGFjdGl2ZURhdGUucHJldmlvdXNWYWx1ZTtcbiAgICAgIGlmIChwcmV2aW91c1ZhbHVlICYmIHByZXZpb3VzVmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmIHByZXZpb3VzVmFsdWUuZ2V0VGltZSgpICE9PSBhY3RpdmVEYXRlLmN1cnJlbnRWYWx1ZS5nZXRUaW1lKCkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRDb21wYXJlSGFuZGxlcihoYW5kbGVyOiBGdW5jdGlvbiwgdHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLmNvbXBhcmVIYW5kbGVyRGF5ID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoID0gaGFuZGxlcjtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICB0aGlzLmNvbXBhcmVIYW5kbGVyWWVhciA9IGhhbmRsZXI7XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZShkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGlmIChkYXRlMSA9PT0gdW5kZWZpbmVkIHx8IGRhdGUyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknICYmIHRoaXMuY29tcGFyZUhhbmRsZXJEYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVIYW5kbGVyRGF5KGRhdGUxLCBkYXRlMik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdtb250aCcgJiYgdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlSGFuZGxlck1vbnRoKGRhdGUxLCBkYXRlMik7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICd5ZWFyJyAmJiB0aGlzLmNvbXBhcmVIYW5kbGVyWWVhcikge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZUhhbmRsZXJZZWFyKGRhdGUxLCBkYXRlMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHNldFJlZnJlc2hWaWV3SGFuZGxlcihoYW5kbGVyOiBGdW5jdGlvbiwgdHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHR5cGUgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlckRheSA9IGhhbmRsZXI7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICdtb250aCcpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyTW9udGggPSBoYW5kbGVyO1xuICAgIH1cblxuICAgIGlmICh0eXBlID09PSAneWVhcicpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyWWVhciA9IGhhbmRsZXI7XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaFZpZXcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknICYmIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyRGF5KSB7XG4gICAgICB0aGlzLnJlZnJlc2hWaWV3SGFuZGxlckRheSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAnbW9udGgnICYmIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyTW9udGgpIHtcbiAgICAgIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyTW9udGgoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gJ3llYXInICYmIHRoaXMucmVmcmVzaFZpZXdIYW5kbGVyWWVhcikge1xuICAgICAgdGhpcy5yZWZyZXNoVmlld0hhbmRsZXJZZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgZGF0ZUZpbHRlcihkYXRlOiBEYXRlLCBmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZUZvcm1hdHRlci5mb3JtYXQoZGF0ZSwgZm9ybWF0LCB0aGlzLmxvY2FsZSk7XG4gIH1cblxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIGlzQWN0aXZlKGRhdGVPYmplY3Q6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmNvbXBhcmUoZGF0ZU9iamVjdC5kYXRlLCB0aGlzLmFjdGl2ZURhdGUpID09PSAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGVJZCA9IGRhdGVPYmplY3QudWlkO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueSovXG4gIGNyZWF0ZURhdGVPYmplY3QoZGF0ZTogRGF0ZSwgZm9ybWF0OiBzdHJpbmcpOiBhbnkge1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICBjb25zdCBkYXRlT2JqZWN0OiBhbnkgPSB7fTtcbiAgICBkYXRlT2JqZWN0LmRhdGUgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpO1xuICAgIGRhdGVPYmplY3QuZGF0ZSA9IHRoaXMuZml4VGltZVpvbmUoZGF0ZU9iamVjdC5kYXRlKTtcbiAgICBkYXRlT2JqZWN0LmxhYmVsID0gdGhpcy5kYXRlRmlsdGVyKGRhdGUsIGZvcm1hdCk7XG4gICAgZGF0ZU9iamVjdC5zZWxlY3RlZCA9IHRoaXMuY29tcGFyZShkYXRlLCB0aGlzLnNlbGVjdGVkRGF0ZSkgPT09IDA7XG4gICAgZGF0ZU9iamVjdC5kaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZChkYXRlKTtcbiAgICBkYXRlT2JqZWN0LmN1cnJlbnQgPSB0aGlzLmNvbXBhcmUoZGF0ZSwgbmV3IERhdGUoKSkgPT09IDA7XG4gICAgZGF0ZU9iamVjdC5jdXN0b21DbGFzcyA9IHRoaXMuZ2V0Q3VzdG9tQ2xhc3NGb3JEYXRlKGRhdGVPYmplY3QuZGF0ZSk7XG5cbiAgICByZXR1cm4gZGF0ZU9iamVjdDtcbiAgfVxuXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgc3BsaXQoYXJyOiBhbnlbXSwgc2l6ZTogbnVtYmVyKTogYW55W10ge1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICBjb25zdCBhcnJheXM6IGFueVtdID0gW107XG4gICAgd2hpbGUgKGFyci5sZW5ndGggPiAwKSB7XG4gICAgICBhcnJheXMucHVzaChhcnIuc3BsaWNlKDAsIHNpemUpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXJyYXlzO1xuICB9XG5cbiAgLy8gRml4IGEgaGFyZC1yZXByb2R1Y2libGUgYnVnIHdpdGggdGltZXpvbmVzXG4gIC8vIFRoZSBidWcgZGVwZW5kcyBvbiBPUywgYnJvd3NlciwgY3VycmVudCB0aW1lem9uZSBhbmQgY3VycmVudCBkYXRlXG4gIC8vIGkuZS5cbiAgLy8gdmFyIGRhdGUgPSBuZXcgRGF0ZSgyMDE0LCAwLCAxKTtcbiAgLy8gY29uc29sZS5sb2coZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLFxuICAvLyBkYXRlLmdldEhvdXJzKCkpOyBjYW4gcmVzdWx0IGluIFwiMjAxMyAxMSAzMSAyM1wiIGJlY2F1c2Ugb2YgdGhlIGJ1Zy5cbiAgZml4VGltZVpvbmUoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IGhvdXJzID0gZGF0ZS5nZXRIb3VycygpO1xuXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgaG91cnMgPT09IDIzID8gaG91cnMgKyAyIDogMCk7XG4gIH1cblxuICBzZWxlY3QoZGF0ZTogRGF0ZSwgaXNNYW51YWwgPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09IHRoaXMubWluTW9kZSkge1xuICAgICAgaWYgKCF0aGlzLmFjdGl2ZURhdGUpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoMCwgMCwgMCwgMCwgMCwgMCwgMCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSk7XG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmZpeFRpbWVab25lKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICBpZiAoaXNNYW51YWwpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Eb25lLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKTtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuZml4VGltZVpvbmUodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgIGlmIChpc01hbnVhbCkge1xuICAgICAgICB0aGlzLmRhdGVwaWNrZXJNb2RlID0gdGhpcy5tb2Rlc1t0aGlzLm1vZGVzLmluZGV4T2YodGhpcy5kYXRlcGlja2VyTW9kZSkgLSAxXSE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aGlzLmFjdGl2ZURhdGUudmFsdWVPZigpKTtcbiAgICB0aGlzLnVwZGF0ZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICB9XG5cbiAgbW92ZShkaXJlY3Rpb246IG51bWJlcik6IHZvaWQge1xuICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55Ki9cbiAgICBsZXQgZXhwZWN0ZWRTdGVwOiBhbnk7XG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknKSB7XG4gICAgICBleHBlY3RlZFN0ZXAgPSB0aGlzLnN0ZXBEYXk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09ICdtb250aCcpIHtcbiAgICAgIGV4cGVjdGVkU3RlcCA9IHRoaXMuc3RlcE1vbnRoO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXJNb2RlID09PSAneWVhcicpIHtcbiAgICAgIGV4cGVjdGVkU3RlcCA9IHRoaXMuc3RlcFllYXI7XG4gICAgfVxuXG4gICAgaWYgKGV4cGVjdGVkU3RlcCkge1xuICAgICAgY29uc3QgeWVhciA9IHRoaXMuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpICsgZGlyZWN0aW9uICogKGV4cGVjdGVkU3RlcC55ZWFycyB8fCAwKTtcbiAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5hY3RpdmVEYXRlLmdldE1vbnRoKCkgKyBkaXJlY3Rpb24gKiAoZXhwZWN0ZWRTdGVwLm1vbnRocyB8fCAwKTtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcblxuICAgICAgdGhpcy5yZWZyZXNoVmlldygpO1xuICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVNb2RlKF9kaXJlY3Rpb246IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IF9kaXJlY3Rpb24gfHwgMTtcblxuICAgIGlmICgodGhpcy5kYXRlcGlja2VyTW9kZSA9PT0gdGhpcy5tYXhNb2RlICYmIGRpcmVjdGlvbiA9PT0gMSkgfHwgKHRoaXMuZGF0ZXBpY2tlck1vZGUgPT09IHRoaXMubWluTW9kZSAmJiBkaXJlY3Rpb24gPT09IC0xKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGF0ZXBpY2tlck1vZGUgPSB0aGlzLm1vZGVzW3RoaXMubW9kZXMuaW5kZXhPZih0aGlzLmRhdGVwaWNrZXJNb2RlKSArIGRpcmVjdGlvbl0hO1xuICAgIHRoaXMucmVmcmVzaFZpZXcoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDdXN0b21DbGFzc0ZvckRhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmN1c3RvbUNsYXNzKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIC8vIHRvZG86IGJ1aWxkIGEgaGFzaCBvZiBjdXN0b20gY2xhc3NlcywgaXQgd2lsbCB3b3JrIGZhc3RlclxuICAgIGNvbnN0IGN1c3RvbUNsYXNzT2JqZWN0OiB7XG4gICAgICBkYXRlOiBEYXRlO1xuICAgICAgbW9kZTogc3RyaW5nO1xuICAgICAgY2xheno6IHN0cmluZztcbiAgICAgIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55ICovXG4gICAgfSA9IHRoaXMuY3VzdG9tQ2xhc3MuZmluZCgoY3VzdG9tQ2xhc3M6IGFueSkgPT4ge1xuICAgICAgcmV0dXJuIGN1c3RvbUNsYXNzLmRhdGUudmFsdWVPZigpID09PSBkYXRlLnZhbHVlT2YoKSAmJiBjdXN0b21DbGFzcy5tb2RlID09PSB0aGlzLmRhdGVwaWNrZXJNb2RlO1xuICAgIH0sIHRoaXMpITtcblxuICAgIHJldHVybiBjdXN0b21DbGFzc09iamVjdCA9PT0gdW5kZWZpbmVkID8gJycgOiBjdXN0b21DbGFzc09iamVjdC5jbGF6ejtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb21wYXJlRGF0ZURpc2FibGVkKGRhdGUxRGlzYWJsZWQ6IHsgZGF0ZTogRGF0ZTsgbW9kZTogc3RyaW5nIH0sIGRhdGUyOiBEYXRlKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZGF0ZTFEaXNhYmxlZCA9PT0gdW5kZWZpbmVkIHx8IGRhdGUyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxRGlzYWJsZWQubW9kZSA9PT0gJ2RheScgJiYgdGhpcy5jb21wYXJlSGFuZGxlckRheSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZUhhbmRsZXJEYXkoZGF0ZTFEaXNhYmxlZC5kYXRlLCBkYXRlMik7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxRGlzYWJsZWQubW9kZSA9PT0gJ21vbnRoJyAmJiB0aGlzLmNvbXBhcmVIYW5kbGVyTW9udGgpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVIYW5kbGVyTW9udGgoZGF0ZTFEaXNhYmxlZC5kYXRlLCBkYXRlMik7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxRGlzYWJsZWQubW9kZSA9PT0gJ3llYXInICYmIHRoaXMuY29tcGFyZUhhbmRsZXJZZWFyKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb21wYXJlSGFuZGxlclllYXIoZGF0ZTFEaXNhYmxlZC5kYXRlLCBkYXRlMik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkKGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBsZXQgaXNEYXRlRGlzYWJsZWQgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5kYXRlRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZGF0ZURpc2FibGVkLmZvckVhY2goKGRpc2FibGVkRGF0ZTogeyBkYXRlOiBEYXRlOyBtb2RlOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb21wYXJlRGF0ZURpc2FibGVkKGRpc2FibGVkRGF0ZSwgZGF0ZSkgPT09IDApIHtcbiAgICAgICAgICBpc0RhdGVEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRheURpc2FibGVkKSB7XG4gICAgICBpc0RhdGVEaXNhYmxlZCA9IGlzRGF0ZURpc2FibGVkIHx8IHRoaXMuZGF5RGlzYWJsZWQuaW5kZXhPZihkYXRlLmdldERheSgpKSA+IC0xO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICBpc0RhdGVEaXNhYmxlZCB8fCAodGhpcy5taW5EYXRlICYmIHRoaXMuY29tcGFyZShkYXRlLCB0aGlzLm1pbkRhdGUpISA8IDApIHx8ICh0aGlzLm1heERhdGUgJiYgdGhpcy5jb21wYXJlKGRhdGUsIHRoaXMubWF4RGF0ZSkhID4gMClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,27 +1,20 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import { NgModule } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { DatePickerInnerComponent } from './datepicker-inner.component';
5
2
  import { DatePickerComponent } from './datepicker.component';
6
3
  import { DatepickerConfig } from './datepicker.config';
7
- import { DayPickerComponent } from './daypicker.component';
8
- import { MonthPickerComponent } from './monthpicker.component';
9
- import { YearPickerComponent } from './yearpicker.component';
10
4
  import * as i0 from "@angular/core";
11
5
  export class DatepickerUiModule {
12
6
  static forRoot() {
13
7
  return { ngModule: DatepickerUiModule, providers: [DatepickerConfig] };
14
8
  }
15
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: DatepickerUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: DatepickerUiModule, declarations: [DatePickerComponent, DatePickerInnerComponent, DayPickerComponent, MonthPickerComponent, YearPickerComponent], imports: [CommonModule, FormsModule], exports: [DatePickerComponent, DatePickerInnerComponent, DayPickerComponent, MonthPickerComponent, YearPickerComponent] }); }
17
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: DatepickerUiModule, imports: [CommonModule, FormsModule] }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: DatepickerUiModule, imports: [DatePickerComponent], exports: [DatePickerComponent] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: DatepickerUiModule }); }
18
12
  }
19
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: DatepickerUiModule, decorators: [{
20
14
  type: NgModule,
21
15
  args: [{
22
- imports: [CommonModule, FormsModule],
23
- declarations: [DatePickerComponent, DatePickerInnerComponent, DayPickerComponent, MonthPickerComponent, YearPickerComponent],
24
- exports: [DatePickerComponent, DatePickerInnerComponent, DayPickerComponent, MonthPickerComponent, YearPickerComponent]
16
+ imports: [DatePickerComponent],
17
+ exports: [DatePickerComponent]
25
18
  }]
26
19
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtcGlja2VyLXVpL2RhdGVwaWNrZXItdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBTzdELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztJQUN6RSxDQUFDOzhHQUhVLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQUhkLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixhQURqSCxZQUFZLEVBQUUsV0FBVyxhQUV6QixtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUI7K0dBRTNHLGtCQUFrQixZQUpuQixZQUFZLEVBQUUsV0FBVzs7MkZBSXhCLGtCQUFrQjtrQkFMOUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNwQyxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQztvQkFDNUgsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLENBQUM7aUJBQ3hIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVQaWNrZXJJbm5lckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci1pbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbmZpZyB9IGZyb20gJy4vZGF0ZXBpY2tlci5jb25maWcnO1xuaW1wb3J0IHsgRGF5UGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXlwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vbnRoUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9tb250aHBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgWWVhclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4veWVhcnBpY2tlci5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0RhdGVQaWNrZXJDb21wb25lbnQsIERhdGVQaWNrZXJJbm5lckNvbXBvbmVudCwgRGF5UGlja2VyQ29tcG9uZW50LCBNb250aFBpY2tlckNvbXBvbmVudCwgWWVhclBpY2tlckNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtEYXRlUGlja2VyQ29tcG9uZW50LCBEYXRlUGlja2VySW5uZXJDb21wb25lbnQsIERheVBpY2tlckNvbXBvbmVudCwgTW9udGhQaWNrZXJDb21wb25lbnQsIFllYXJQaWNrZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJVaU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGF0ZXBpY2tlclVpTW9kdWxlPiB7XG4gICAgcmV0dXJuIHsgbmdNb2R1bGU6IERhdGVwaWNrZXJVaU1vZHVsZSwgcHJvdmlkZXJzOiBbRGF0ZXBpY2tlckNvbmZpZ10gfTtcbiAgfVxufVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci11aS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RhdGUtcGlja2VyLXVpL2RhdGVwaWNrZXItdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU12RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7SUFDekUsQ0FBQzs4R0FIVSxrQkFBa0I7K0dBQWxCLGtCQUFrQixZQUhuQixtQkFBbUIsYUFDbkIsbUJBQW1COytHQUVsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlcGlja2VyQ29uZmlnIH0gZnJvbSAnLi9kYXRlcGlja2VyLmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtEYXRlUGlja2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0RhdGVQaWNrZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJVaU1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RGF0ZXBpY2tlclVpTW9kdWxlPiB7XG4gICAgcmV0dXJuIHsgbmdNb2R1bGU6IERhdGVwaWNrZXJVaU1vZHVsZSwgcHJvdmlkZXJzOiBbRGF0ZXBpY2tlckNvbmZpZ10gfTtcbiAgfVxufVxuIl19