@odx/angular 5.5.5 → 5.6.0

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 (80) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/components/calendar/lib/calendar.component.d.ts +9 -3
  3. package/components/calendar/lib/calendar.config.d.ts +11 -0
  4. package/components/calendar/lib/calendar.service.d.ts +10 -4
  5. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +1 -3
  6. package/components/calendar/lib/daterange.service.d.ts +14 -0
  7. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +19 -4
  8. package/components/calendar/lib/directives/calendar-view.directive.d.ts +5 -2
  9. package/components/calendar/lib/models/date-range.d.ts +18 -0
  10. package/components/calendar/lib/models/index.d.ts +3 -0
  11. package/components/calendar/lib/models/selected-date.d.ts +9 -0
  12. package/components/calendar/lib/models/selection-mode.d.ts +4 -0
  13. package/components/calendar/lib/pipes/date-label.pipe.d.ts +1 -0
  14. package/components/calendar/lib/utils/check-cell-in-range.d.ts +7 -0
  15. package/components/calendar/lib/utils/index.d.ts +1 -0
  16. package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
  17. package/components/daterangepicker/README.md +3 -0
  18. package/components/daterangepicker/index.d.ts +7 -0
  19. package/components/daterangepicker/lib/daterangepicker.component.d.ts +40 -0
  20. package/components/daterangepicker/lib/daterangepicker.config.d.ts +29 -0
  21. package/components/daterangepicker/lib/daterangepicker.module.d.ts +11 -0
  22. package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +25 -0
  23. package/components/daterangepicker/lib/directives/index.d.ts +1 -0
  24. package/components/daterangepicker/lib/models/daterangepicker-input-date-order.d.ts +1 -0
  25. package/components/daterangepicker/lib/models/daterangepicker-input-pattern.d.ts +1 -0
  26. package/components/daterangepicker/lib/models/index.d.ts +2 -0
  27. package/components/daterangepicker/lib/range.validator.d.ts +10 -0
  28. package/components/daterangepicker/lib/required.validator.d.ts +10 -0
  29. package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +3 -0
  30. package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +2 -0
  31. package/components/daterangepicker/lib/utils/index.d.ts +2 -0
  32. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +2 -2
  33. package/esm2022/components/calendar/lib/calendar.component.mjs +25 -11
  34. package/esm2022/components/calendar/lib/calendar.config.mjs +3 -1
  35. package/esm2022/components/calendar/lib/calendar.service.mjs +28 -13
  36. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +6 -10
  37. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +4 -4
  38. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +4 -4
  39. package/esm2022/components/calendar/lib/daterange.service.mjs +57 -0
  40. package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +85 -5
  41. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +8 -2
  42. package/esm2022/components/calendar/lib/models/date-range.mjs +7 -0
  43. package/esm2022/components/calendar/lib/models/index.mjs +4 -1
  44. package/esm2022/components/calendar/lib/models/selected-date.mjs +5 -0
  45. package/esm2022/components/calendar/lib/models/selection-mode.mjs +6 -0
  46. package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +1 -1
  47. package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +28 -0
  48. package/esm2022/components/calendar/lib/utils/index.mjs +2 -1
  49. package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +5 -0
  50. package/esm2022/components/datepicker/lib/datepicker.component.mjs +2 -2
  51. package/esm2022/components/daterangepicker/index.mjs +8 -0
  52. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +174 -0
  53. package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +7 -0
  54. package/esm2022/components/daterangepicker/lib/daterangepicker.module.mjs +21 -0
  55. package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +65 -0
  56. package/esm2022/components/daterangepicker/lib/directives/index.mjs +2 -0
  57. package/esm2022/components/daterangepicker/lib/models/daterangepicker-input-date-order.mjs +2 -0
  58. package/esm2022/components/daterangepicker/lib/models/daterangepicker-input-pattern.mjs +2 -0
  59. package/esm2022/components/daterangepicker/lib/models/index.mjs +3 -0
  60. package/esm2022/components/daterangepicker/lib/range.validator.mjs +37 -0
  61. package/esm2022/components/daterangepicker/lib/required.validator.mjs +34 -0
  62. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +16 -0
  63. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +30 -0
  64. package/esm2022/components/daterangepicker/lib/utils/index.mjs +3 -0
  65. package/esm2022/components/daterangepicker/odx-angular-components-daterangepicker.mjs +5 -0
  66. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +3 -3
  67. package/esm2022/utils/lib/helpers/event-manager.mjs +27 -8
  68. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  69. package/fesm2022/odx-angular-components-calendar.mjs +261 -56
  70. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  71. package/fesm2022/odx-angular-components-datepicker.mjs +1 -1
  72. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  73. package/fesm2022/odx-angular-components-daterangepicker.mjs +364 -0
  74. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -0
  75. package/fesm2022/odx-angular-components-list.mjs +2 -2
  76. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  77. package/fesm2022/odx-angular-utils.mjs +33 -16
  78. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  79. package/package.json +7 -1
  80. package/utils/lib/helpers/event-manager.d.ts +3 -1
@@ -1,41 +1,53 @@
1
- import { __decorate } from "tslib";
1
+ import { __decorate, __metadata } from "tslib";
2
2
  import { A11yModule } from '@angular/cdk/a11y';
3
3
  import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';
4
4
  import { CoreModule } from '@odx/angular';
5
5
  import { CSSComponent } from '@odx/angular/internal';
6
- import { hasChanged, injectElement } from '@odx/angular/utils';
6
+ import { EventManager, hasChanged, injectElement } from '@odx/angular/utils';
7
+ import { injectCalendarConfig } from './calendar.config';
7
8
  import { CalendarService } from './calendar.service';
8
9
  import { CalendarMonthComponent, CalendarYearComponent, CalendarYearsComponent } from './components';
9
- import { CalendarView } from './models';
10
+ import { DaterangeService } from './daterange.service';
11
+ import { CalendarSelectionMode, CalendarView } from './models';
10
12
  import * as i0 from "@angular/core";
11
13
  import * as i1 from "@angular/common";
12
14
  import * as i2 from "@ngrx/component";
13
15
  export let CalendarComponent = class CalendarComponent {
14
16
  constructor() {
15
- this.CalendarView = CalendarView;
17
+ this.config = injectCalendarConfig();
16
18
  this.calendar = inject(CalendarService);
19
+ this.daterange = inject(DaterangeService);
20
+ this.CalendarView = CalendarView;
17
21
  this.element = injectElement();
18
22
  this.selectedDate = null;
23
+ this.selectedDateRange = null;
19
24
  this.minDate = null;
20
25
  this.maxDate = null;
21
26
  this.filterFn = null;
22
- this.selectedDateChange = new EventEmitter();
27
+ this.selectedDateChange = this.calendar.outputDate$;
28
+ this.selectedDateRangeChange = this.daterange.outputDateRange$;
23
29
  }
24
30
  ngOnChanges(changes) {
25
31
  if (hasChanged(changes, 'selectedDate', false)) {
26
- this.calendar.selectDate(this.selectedDate);
32
+ this.calendar.selectDate(this.selectedDate, { skipDaterangeUpdate: true });
33
+ }
34
+ if (this.selectedDateRange && hasChanged(changes, 'selectedDateRange', false) && this.config.selectionMode === CalendarSelectionMode.DateRange) {
35
+ this.daterange.setDateRange(this.selectedDateRange);
27
36
  }
28
37
  }
29
38
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarComponent, isStandalone: true, selector: "odx-calendar", inputs: { selectedDate: "selectedDate", minDate: "minDate", maxDate: "maxDate", filterFn: "filterFn" }, outputs: { selectedDateChange: "selectedDateChange" }, providers: [CalendarService], usesOnChanges: true, ngImport: i0, template: "<ng-template [ngrxLet]=\"{ activeDate: calendar.activeDate$, calendarView: calendar.calendarView$, selectedDate: calendar.selectedDate$ }\" let-vm>\n <ng-container [ngSwitch]=\"vm.calendarView\">\n <odx-calendar-year\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Year\"\n ></odx-calendar-year>\n <odx-calendar-years\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Years\"\n ></odx-calendar-years>\n <odx-calendar-month\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n (selectedChange)=\"selectedDateChange.emit($event)\"\n *ngSwitchDefault\n ></odx-calendar-month>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "ngmodule", type: A11yModule }, { kind: "component", type: CalendarMonthComponent, selector: "odx-calendar-month", outputs: ["selectedChange"] }, { kind: "component", type: CalendarYearComponent, selector: "odx-calendar-year" }, { kind: "component", type: CalendarYearsComponent, selector: "odx-calendar-years" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarComponent, isStandalone: true, selector: "odx-calendar", inputs: { selectedDate: "selectedDate", selectedDateRange: "selectedDateRange", minDate: "minDate", maxDate: "maxDate", filterFn: "filterFn" }, outputs: { selectedDateChange: "selectedDateChange", selectedDateRangeChange: "selectedDateRangeChange" }, providers: [CalendarService, EventManager, DaterangeService], usesOnChanges: true, ngImport: i0, template: "<ng-template\n [ngrxLet]=\"{\n activeDate: calendar.activeDate$,\n calendarView: calendar.calendarView$,\n selectedDate: calendar.selectedDate$,\n selectedDateRange: daterange.dateRangeState$,\n previewDate: calendar.previewDate$\n }\"\n let-vm\n>\n <ng-container [ngSwitch]=\"vm.calendarView\">\n <odx-calendar-year\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [selectedDateRange]=\"vm.selectedDateRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Year\"\n ></odx-calendar-year>\n <odx-calendar-years\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [selectedDateRange]=\"vm.selectedDateRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Years\"\n ></odx-calendar-years>\n <odx-calendar-month\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [selectedDateRange]=\"vm.selectedDateRange\"\n [previewDate]=\"vm.previewDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchDefault\n ></odx-calendar-month>\n </ng-container>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "ngmodule", type: A11yModule }, { kind: "component", type: CalendarMonthComponent, selector: "odx-calendar-month" }, { kind: "component", type: CalendarYearComponent, selector: "odx-calendar-year" }, { kind: "component", type: CalendarYearsComponent, selector: "odx-calendar-years" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
31
40
  };
32
41
  CalendarComponent = __decorate([
33
- CSSComponent('calendar')
42
+ CSSComponent('calendar'),
43
+ __metadata("design:paramtypes", [])
34
44
  ], CalendarComponent);
35
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarComponent, decorators: [{
36
46
  type: Component,
37
- args: [{ selector: 'odx-calendar', standalone: true, imports: [CoreModule, A11yModule, CalendarMonthComponent, CalendarYearComponent, CalendarYearsComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarService], template: "<ng-template [ngrxLet]=\"{ activeDate: calendar.activeDate$, calendarView: calendar.calendarView$, selectedDate: calendar.selectedDate$ }\" let-vm>\n <ng-container [ngSwitch]=\"vm.calendarView\">\n <odx-calendar-year\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Year\"\n ></odx-calendar-year>\n <odx-calendar-years\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Years\"\n ></odx-calendar-years>\n <odx-calendar-month\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n (selectedChange)=\"selectedDateChange.emit($event)\"\n *ngSwitchDefault\n ></odx-calendar-month>\n </ng-container>\n</ng-template>\n" }]
38
- }], propDecorators: { selectedDate: [{
47
+ args: [{ selector: 'odx-calendar', standalone: true, imports: [CoreModule, A11yModule, CalendarMonthComponent, CalendarYearComponent, CalendarYearsComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarService, EventManager, DaterangeService], template: "<ng-template\n [ngrxLet]=\"{\n activeDate: calendar.activeDate$,\n calendarView: calendar.calendarView$,\n selectedDate: calendar.selectedDate$,\n selectedDateRange: daterange.dateRangeState$,\n previewDate: calendar.previewDate$\n }\"\n let-vm\n>\n <ng-container [ngSwitch]=\"vm.calendarView\">\n <odx-calendar-year\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [selectedDateRange]=\"vm.selectedDateRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Year\"\n ></odx-calendar-year>\n <odx-calendar-years\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [selectedDateRange]=\"vm.selectedDateRange\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchCase=\"CalendarView.Years\"\n ></odx-calendar-years>\n <odx-calendar-month\n [activeDate]=\"vm.activeDate\"\n [selectedDate]=\"vm.selectedDate\"\n [selectedDateRange]=\"vm.selectedDateRange\"\n [previewDate]=\"vm.previewDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n [filterFn]=\"filterFn\"\n *ngSwitchDefault\n ></odx-calendar-month>\n </ng-container>\n</ng-template>\n" }]
48
+ }], ctorParameters: function () { return []; }, propDecorators: { selectedDate: [{
49
+ type: Input
50
+ }], selectedDateRange: [{
39
51
  type: Input
40
52
  }], minDate: [{
41
53
  type: Input
@@ -45,5 +57,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
45
57
  type: Input
46
58
  }], selectedDateChange: [{
47
59
  type: Output
60
+ }], selectedDateRangeChange: [{
61
+ type: Output
48
62
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQWEsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQXdCLE1BQU0sVUFBVSxDQUFDOzs7O0FBWXZELFdBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBQXZCO1FBQ2MsaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0QyxZQUFPLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFHbkMsaUJBQVksR0FBb0IsSUFBSSxDQUFDO1FBR3JDLFlBQU8sR0FBaUIsSUFBSSxDQUFDO1FBRzdCLFlBQU8sR0FBaUIsSUFBSSxDQUFDO1FBRzdCLGFBQVEsR0FBdUIsSUFBSSxDQUFDO1FBR3BDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7S0FPN0Q7SUFMUSxXQUFXLENBQUMsT0FBcUM7UUFDdEQsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDN0M7SUFDSCxDQUFDOytHQXpCVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiwwTkFGakIsQ0FBQyxlQUFlLENBQUMsK0NDakI5Qiw4aUNBNkJBLDJDRGhCWSxVQUFVLDBaQUFFLFVBQVUsK0JBQUUsc0JBQXNCLDRGQUFFLHFCQUFxQiw4REFBRSxzQkFBc0I7O0FBTTVGLGlCQUFpQjtJQVY3QixZQUFZLENBQUMsVUFBVSxDQUFDO0dBVVosaUJBQWlCLENBMEI3Qjs0RkExQlksaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixDQUFDLG1CQUV2Rix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsZUFBZSxDQUFDOzhCQVNyQixZQUFZO3NCQURsQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGtCQUFrQjtzQkFEeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgaGFzQ2hhbmdlZCwgaW5qZWN0RWxlbWVudCwgTmdDaGFuZ2VzIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoQ29tcG9uZW50LCBDYWxlbmRhclllYXJDb21wb25lbnQsIENhbGVuZGFyWWVhcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3LCBEYXRlRmlsdGVyLCBEYXRlVHlwZSB9IGZyb20gJy4vbW9kZWxzJztcblxuQENTU0NvbXBvbmVudCgnY2FsZW5kYXInKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LWNhbGVuZGFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIEExMXlNb2R1bGUsIENhbGVuZGFyTW9udGhDb21wb25lbnQsIENhbGVuZGFyWWVhckNvbXBvbmVudCwgQ2FsZW5kYXJZZWFyc0NvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByb3RlY3RlZCByZWFkb25seSBDYWxlbmRhclZpZXcgPSBDYWxlbmRhclZpZXc7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxlbmRhciA9IGluamVjdChDYWxlbmRhclNlcnZpY2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZERhdGU6IERhdGVUeXBlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1pbkRhdGU/OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1heERhdGU/OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpbHRlckZuPzogRGF0ZUZpbHRlciB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWREYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogTmdDaGFuZ2VzPENhbGVuZGFyQ29tcG9uZW50Pik6IHZvaWQge1xuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsICdzZWxlY3RlZERhdGUnLCBmYWxzZSkpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXIuc2VsZWN0RGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgW25ncnhMZXRdPVwieyBhY3RpdmVEYXRlOiBjYWxlbmRhci5hY3RpdmVEYXRlJCwgY2FsZW5kYXJWaWV3OiBjYWxlbmRhci5jYWxlbmRhclZpZXckLCBzZWxlY3RlZERhdGU6IGNhbGVuZGFyLnNlbGVjdGVkRGF0ZSQgfVwiIGxldC12bT5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidm0uY2FsZW5kYXJWaWV3XCI+XG4gICAgPG9keC1jYWxlbmRhci15ZWFyXG4gICAgICBbYWN0aXZlRGF0ZV09XCJ2bS5hY3RpdmVEYXRlXCJcbiAgICAgIFtzZWxlY3RlZERhdGVdPVwidm0uc2VsZWN0ZWREYXRlXCJcbiAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICBbZmlsdGVyRm5dPVwiZmlsdGVyRm5cIlxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkNhbGVuZGFyVmlldy5ZZWFyXCJcbiAgICA+PC9vZHgtY2FsZW5kYXIteWVhcj5cbiAgICA8b2R4LWNhbGVuZGFyLXllYXJzXG4gICAgICBbYWN0aXZlRGF0ZV09XCJ2bS5hY3RpdmVEYXRlXCJcbiAgICAgIFtzZWxlY3RlZERhdGVdPVwidm0uc2VsZWN0ZWREYXRlXCJcbiAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICBbZmlsdGVyRm5dPVwiZmlsdGVyRm5cIlxuICAgICAgKm5nU3dpdGNoQ2FzZT1cIkNhbGVuZGFyVmlldy5ZZWFyc1wiXG4gICAgPjwvb2R4LWNhbGVuZGFyLXllYXJzPlxuICAgIDxvZHgtY2FsZW5kYXItbW9udGhcbiAgICAgIFthY3RpdmVEYXRlXT1cInZtLmFjdGl2ZURhdGVcIlxuICAgICAgW3NlbGVjdGVkRGF0ZV09XCJ2bS5zZWxlY3RlZERhdGVcIlxuICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgIFtmaWx0ZXJGbl09XCJmaWx0ZXJGblwiXG4gICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwic2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAqbmdTd2l0Y2hEZWZhdWx0XG4gICAgPjwvb2R4LWNhbGVuZGFyLW1vbnRoPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFhLE1BQU0sb0JBQW9CLENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFrRCxNQUFNLFVBQVUsQ0FBQzs7OztBQVl4RyxXQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQTZCNUI7UUE1QmlCLFdBQU0sR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsWUFBWSxDQUFDO1FBRS9CLFlBQU8sR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUduQyxpQkFBWSxHQUFvQixJQUFJLENBQUM7UUFHckMsc0JBQWlCLEdBQTBCLElBQUksQ0FBQztRQUdoRCxZQUFPLEdBQWlCLElBQUksQ0FBQztRQUc3QixZQUFPLEdBQWlCLElBQUksQ0FBQztRQUc3QixhQUFRLEdBQXVCLElBQUksQ0FBQztRQVN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDcEQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7SUFDakUsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFxQztRQUN0RCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzVFO1FBRUQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsS0FBSyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUU7WUFDOUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDckQ7SUFDSCxDQUFDOytHQTFDVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixzVEFGakIsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDLCtDQ25COUQsNHlDQXlDQSwyQ0QxQlksVUFBVSwwWkFBRSxVQUFVLCtCQUFFLHNCQUFzQiwrREFBRSxxQkFBcUIsOERBQUUsc0JBQXNCOztBQU01RixpQkFBaUI7SUFWN0IsWUFBWSxDQUFDLFVBQVUsQ0FBQzs7R0FVWixpQkFBaUIsQ0EyQzdCOzRGQTNDWSxpQkFBaUI7a0JBVDdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLENBQUMsbUJBRXZGLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDOzBFQVdyRCxZQUFZO3NCQURsQixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBSUEsdUJBQXVCO3NCQUQ3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBFdmVudE1hbmFnZXIsIGhhc0NoYW5nZWQsIGluamVjdEVsZW1lbnQsIE5nQ2hhbmdlcyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBpbmplY3RDYWxlbmRhckNvbmZpZyB9IGZyb20gJy4vY2FsZW5kYXIuY29uZmlnJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4vY2FsZW5kYXIuc2VydmljZSc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoQ29tcG9uZW50LCBDYWxlbmRhclllYXJDb21wb25lbnQsIENhbGVuZGFyWWVhcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRGF0ZXJhbmdlU2VydmljZSB9IGZyb20gJy4vZGF0ZXJhbmdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZWxlY3Rpb25Nb2RlLCBDYWxlbmRhclZpZXcsIERhdGVGaWx0ZXIsIERhdGVSYW5nZSwgRGF0ZVR5cGUsIERhdGVUeXBlUmFuZ2UgfSBmcm9tICcuL21vZGVscyc7XG5cbkBDU1NDb21wb25lbnQoJ2NhbGVuZGFyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYWxlbmRhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBBMTF5TW9kdWxlLCBDYWxlbmRhck1vbnRoQ29tcG9uZW50LCBDYWxlbmRhclllYXJDb21wb25lbnQsIENhbGVuZGFyWWVhcnNDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJTZXJ2aWNlLCBFdmVudE1hbmFnZXIsIERhdGVyYW5nZVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0Q2FsZW5kYXJDb25maWcoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyID0gaW5qZWN0KENhbGVuZGFyU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBkYXRlcmFuZ2UgPSBpbmplY3QoRGF0ZXJhbmdlU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBDYWxlbmRhclZpZXcgPSBDYWxlbmRhclZpZXc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkRGF0ZTogRGF0ZVR5cGUgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWREYXRlUmFuZ2U/OiBEYXRlVHlwZVJhbmdlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1pbkRhdGU/OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1heERhdGU/OiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpbHRlckZuPzogRGF0ZUZpbHRlciB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+O1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWREYXRlUmFuZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlUmFuZ2UgfCBudWxsPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZUNoYW5nZSA9IHRoaXMuY2FsZW5kYXIub3V0cHV0RGF0ZSQ7XG4gICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZUNoYW5nZSA9IHRoaXMuZGF0ZXJhbmdlLm91dHB1dERhdGVSYW5nZSQ7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogTmdDaGFuZ2VzPENhbGVuZGFyQ29tcG9uZW50Pik6IHZvaWQge1xuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsICdzZWxlY3RlZERhdGUnLCBmYWxzZSkpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXIuc2VsZWN0RGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSwgeyBza2lwRGF0ZXJhbmdlVXBkYXRlOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlICYmIGhhc0NoYW5nZWQoY2hhbmdlcywgJ3NlbGVjdGVkRGF0ZVJhbmdlJywgZmFsc2UpICYmIHRoaXMuY29uZmlnLnNlbGVjdGlvbk1vZGUgPT09IENhbGVuZGFyU2VsZWN0aW9uTW9kZS5EYXRlUmFuZ2UpIHtcbiAgICAgIHRoaXMuZGF0ZXJhbmdlLnNldERhdGVSYW5nZSh0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZVxuICBbbmdyeExldF09XCJ7XG4gICAgYWN0aXZlRGF0ZTogY2FsZW5kYXIuYWN0aXZlRGF0ZSQsXG4gICAgY2FsZW5kYXJWaWV3OiBjYWxlbmRhci5jYWxlbmRhclZpZXckLFxuICAgIHNlbGVjdGVkRGF0ZTogY2FsZW5kYXIuc2VsZWN0ZWREYXRlJCxcbiAgICBzZWxlY3RlZERhdGVSYW5nZTogZGF0ZXJhbmdlLmRhdGVSYW5nZVN0YXRlJCxcbiAgICBwcmV2aWV3RGF0ZTogY2FsZW5kYXIucHJldmlld0RhdGUkXG4gIH1cIlxuICBsZXQtdm1cbj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidm0uY2FsZW5kYXJWaWV3XCI+XG4gICAgPG9keC1jYWxlbmRhci15ZWFyXG4gICAgICBbYWN0aXZlRGF0ZV09XCJ2bS5hY3RpdmVEYXRlXCJcbiAgICAgIFtzZWxlY3RlZERhdGVdPVwidm0uc2VsZWN0ZWREYXRlXCJcbiAgICAgIFtzZWxlY3RlZERhdGVSYW5nZV09XCJ2bS5zZWxlY3RlZERhdGVSYW5nZVwiXG4gICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgW2ZpbHRlckZuXT1cImZpbHRlckZuXCJcbiAgICAgICpuZ1N3aXRjaENhc2U9XCJDYWxlbmRhclZpZXcuWWVhclwiXG4gICAgPjwvb2R4LWNhbGVuZGFyLXllYXI+XG4gICAgPG9keC1jYWxlbmRhci15ZWFyc1xuICAgICAgW2FjdGl2ZURhdGVdPVwidm0uYWN0aXZlRGF0ZVwiXG4gICAgICBbc2VsZWN0ZWREYXRlXT1cInZtLnNlbGVjdGVkRGF0ZVwiXG4gICAgICBbc2VsZWN0ZWREYXRlUmFuZ2VdPVwidm0uc2VsZWN0ZWREYXRlUmFuZ2VcIlxuICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgIFtmaWx0ZXJGbl09XCJmaWx0ZXJGblwiXG4gICAgICAqbmdTd2l0Y2hDYXNlPVwiQ2FsZW5kYXJWaWV3LlllYXJzXCJcbiAgICA+PC9vZHgtY2FsZW5kYXIteWVhcnM+XG4gICAgPG9keC1jYWxlbmRhci1tb250aFxuICAgICAgW2FjdGl2ZURhdGVdPVwidm0uYWN0aXZlRGF0ZVwiXG4gICAgICBbc2VsZWN0ZWREYXRlXT1cInZtLnNlbGVjdGVkRGF0ZVwiXG4gICAgICBbc2VsZWN0ZWREYXRlUmFuZ2VdPVwidm0uc2VsZWN0ZWREYXRlUmFuZ2VcIlxuICAgICAgW3ByZXZpZXdEYXRlXT1cInZtLnByZXZpZXdEYXRlXCJcbiAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICBbZmlsdGVyRm5dPVwiZmlsdGVyRm5cIlxuICAgICAgKm5nU3dpdGNoRGVmYXVsdFxuICAgID48L29keC1jYWxlbmRhci1tb250aD5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,6 +1,7 @@
1
1
  import { createConfigTokens } from '@odx/angular/utils';
2
2
  import { enGB } from 'date-fns/locale';
3
3
  import { BehaviorSubject } from 'rxjs';
4
+ import { CalendarSelectionMode } from './models/selection-mode';
4
5
  export const { CalendarConfig, CalendarDefaultConfig, injectCalendarConfig, provideCalendarConfig } = createConfigTokens('Calendar', '@odx/angular/components/calendar', {
5
6
  monthYearLabel: 'LLLL yyyy',
6
7
  monthLabel: 'LLL',
@@ -12,6 +13,7 @@ export const { CalendarConfig, CalendarDefaultConfig, injectCalendarConfig, prov
12
13
  yearA11yLabel: 'yyyy',
13
14
  displayAdjacentDays: true,
14
15
  locale: new BehaviorSubject(enGB),
16
+ selectionMode: CalendarSelectionMode.Date,
15
17
  yearView: {
16
18
  itemsPerRow: 3,
17
19
  },
@@ -20,4 +22,4 @@ export const { CalendarConfig, CalendarDefaultConfig, injectCalendarConfig, prov
20
22
  padding: 100,
21
23
  },
22
24
  });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jYWxlbmRhci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUF5RHZDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLEdBQUcsa0JBQWtCLENBQ3RILFVBQVUsRUFDVixrQ0FBa0MsRUFDbEM7SUFDRSxjQUFjLEVBQUUsV0FBVztJQUMzQixVQUFVLEVBQUUsS0FBSztJQUNqQixTQUFTLEVBQUUsT0FBTztJQUNsQixRQUFRLEVBQUUsR0FBRztJQUNiLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFlBQVksRUFBRSxlQUFlO0lBQzdCLGNBQWMsRUFBRSxZQUFZO0lBQzVCLGFBQWEsRUFBRSxNQUFNO0lBQ3JCLG1CQUFtQixFQUFFLElBQUk7SUFDekIsTUFBTSxFQUFFLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQztJQUN6QyxRQUFRLEVBQUU7UUFDUixXQUFXLEVBQUUsQ0FBQztLQUNmO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsV0FBVyxFQUFFLENBQUM7UUFDZCxPQUFPLEVBQUUsR0FBRztLQUNiO0NBQ0YsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29uZmlnVG9rZW5zIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IExvY2FsZSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IGVuR0IgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJDb25maWcge1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBtb250aC15ZWFyIGxhYmVsIGlzIHRyYW5zZm9ybWVkXG4gICAqIEBkZWZhdWx0ICdMTExMIHl5eXknXG4gICAqL1xuICBtb250aFllYXJMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBtb250aCBsYWJlbCBpcyB0cmFuc2Zvcm1lZFxuICAgKiBAZGVmYXVsdCAnTExMJ1xuICAgKi9cbiAgbW9udGhMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCB3ZWVrIGxhYmVsIGlzIHRyYW5zZm9ybWVkXG4gICAqIEBkZWZhdWx0ICdFRUVFRSdcbiAgICovXG4gIHdlZWtMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBkYXkgbGFiZWwgaXMgdHJhbnNmb3JtZWRcbiAgICogQGRlZmF1bHQgJ2QnXG4gICAqL1xuICBkYXlMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBZZWFyIGxhYmVsIGlzIHRyYW5zZm9ybWVkXG4gICAqIEBkZWZhdWx0ICd5eXl5J1xuICAgKi9cbiAgeWVhckxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXR0ZXJuIGJ5IHdoaWNoIEExMXkgZGF5IGxhYmVsIGlzIHRyYW5zZm9ybWVkXG4gICAqIEBkZWZhdWx0ICdNTU1NIGRkLCB5eXl5J1xuICAgKi9cbiAgZGF5QTExeUxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXR0ZXJuIGJ5IHdoaWNoIEExMXkgbW9udGggbGFiZWwgaXMgdHJhbnNmb3JtZWRcbiAgICogQGRlZmF1bHQgJ01NTU0sIHl5eXknXG4gICAqL1xuICBtb250aEExMXlMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBBMTF5IHllYXIgbGFiZWwgaXMgdHJhbnNmb3JtZWRcbiAgICogQGRlZmF1bHQgJ3l5eXknXG4gICAqL1xuICB5ZWFyQTExeUxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aGUgYWRqYWNlbnQgZGF5cyBpbiBtb250aCBjYWxlbmRhciB2aWV3XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc3BsYXlBZGphY2VudERheXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMb2NhbGUgYnkgd2hpY2ggY2FsZW5kYXIgbGFiZWxzIGFyZSB0cmFuc2Zvcm1lZFxuICAgKiBAZGVmYXVsdCBlbkdCXG4gICAqL1xuICBsb2NhbGU6IEJlaGF2aW9yU3ViamVjdDxMb2NhbGU+O1xuICB5ZWFyVmlldzogeyBpdGVtc1BlclJvdzogbnVtYmVyIH07XG4gIHllYXJzVmlldzogeyBpdGVtc1BlclJvdzogbnVtYmVyOyBwYWRkaW5nOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHsgQ2FsZW5kYXJDb25maWcsIENhbGVuZGFyRGVmYXVsdENvbmZpZywgaW5qZWN0Q2FsZW5kYXJDb25maWcsIHByb3ZpZGVDYWxlbmRhckNvbmZpZyB9ID0gY3JlYXRlQ29uZmlnVG9rZW5zKFxuICAnQ2FsZW5kYXInLFxuICAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXInLFxuICB7XG4gICAgbW9udGhZZWFyTGFiZWw6ICdMTExMIHl5eXknLFxuICAgIG1vbnRoTGFiZWw6ICdMTEwnLFxuICAgIHdlZWtMYWJlbDogJ0VFRUVFJyxcbiAgICBkYXlMYWJlbDogJ2QnLFxuICAgIHllYXJMYWJlbDogJ3l5eXknLFxuICAgIGRheUExMXlMYWJlbDogJ01NTU0gZGQsIHl5eXknLFxuICAgIG1vbnRoQTExeUxhYmVsOiAnTU1NTSwgeXl5eScsXG4gICAgeWVhckExMXlMYWJlbDogJ3l5eXknLFxuICAgIGRpc3BsYXlBZGphY2VudERheXM6IHRydWUsXG4gICAgbG9jYWxlOiBuZXcgQmVoYXZpb3JTdWJqZWN0PExvY2FsZT4oZW5HQiksXG4gICAgeWVhclZpZXc6IHtcbiAgICAgIGl0ZW1zUGVyUm93OiAzLFxuICAgIH0sXG4gICAgeWVhcnNWaWV3OiB7XG4gICAgICBpdGVtc1BlclJvdzogMyxcbiAgICAgIHBhZGRpbmc6IDEwMCxcbiAgICB9LFxuICB9LFxuKTtcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jYWxlbmRhci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUE4RGhFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLEdBQUcsa0JBQWtCLENBQ3RILFVBQVUsRUFDVixrQ0FBa0MsRUFDbEM7SUFDRSxjQUFjLEVBQUUsV0FBVztJQUMzQixVQUFVLEVBQUUsS0FBSztJQUNqQixTQUFTLEVBQUUsT0FBTztJQUNsQixRQUFRLEVBQUUsR0FBRztJQUNiLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFlBQVksRUFBRSxlQUFlO0lBQzdCLGNBQWMsRUFBRSxZQUFZO0lBQzVCLGFBQWEsRUFBRSxNQUFNO0lBQ3JCLG1CQUFtQixFQUFFLElBQUk7SUFDekIsTUFBTSxFQUFFLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQztJQUN6QyxhQUFhLEVBQUUscUJBQXFCLENBQUMsSUFBSTtJQUN6QyxRQUFRLEVBQUU7UUFDUixXQUFXLEVBQUUsQ0FBQztLQUNmO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsV0FBVyxFQUFFLENBQUM7UUFDZCxPQUFPLEVBQUUsR0FBRztLQUNiO0NBQ0YsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ29uZmlnVG9rZW5zIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IExvY2FsZSB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IGVuR0IgfSBmcm9tICdkYXRlLWZucy9sb2NhbGUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYWxlbmRhclNlbGVjdGlvbk1vZGUgfSBmcm9tICcuL21vZGVscy9zZWxlY3Rpb24tbW9kZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJDb25maWcge1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBtb250aC15ZWFyIGxhYmVsIGlzIHRyYW5zZm9ybWVkXG4gICAqIEBkZWZhdWx0ICdMTExMIHl5eXknXG4gICAqL1xuICBtb250aFllYXJMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBtb250aCBsYWJlbCBpcyB0cmFuc2Zvcm1lZFxuICAgKiBAZGVmYXVsdCAnTExMJ1xuICAgKi9cbiAgbW9udGhMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCB3ZWVrIGxhYmVsIGlzIHRyYW5zZm9ybWVkXG4gICAqIEBkZWZhdWx0ICdFRUVFRSdcbiAgICovXG4gIHdlZWtMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBkYXkgbGFiZWwgaXMgdHJhbnNmb3JtZWRcbiAgICogQGRlZmF1bHQgJ2QnXG4gICAqL1xuICBkYXlMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBZZWFyIGxhYmVsIGlzIHRyYW5zZm9ybWVkXG4gICAqIEBkZWZhdWx0ICd5eXl5J1xuICAgKi9cbiAgeWVhckxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXR0ZXJuIGJ5IHdoaWNoIEExMXkgZGF5IGxhYmVsIGlzIHRyYW5zZm9ybWVkXG4gICAqIEBkZWZhdWx0ICdNTU1NIGRkLCB5eXl5J1xuICAgKi9cbiAgZGF5QTExeUxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXR0ZXJuIGJ5IHdoaWNoIEExMXkgbW9udGggbGFiZWwgaXMgdHJhbnNmb3JtZWRcbiAgICogQGRlZmF1bHQgJ01NTU0sIHl5eXknXG4gICAqL1xuICBtb250aEExMXlMYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogUGF0dGVybiBieSB3aGljaCBBMTF5IHllYXIgbGFiZWwgaXMgdHJhbnNmb3JtZWRcbiAgICogQGRlZmF1bHQgJ3l5eXknXG4gICAqL1xuICB5ZWFyQTExeUxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEaXNwbGF5cyB0aGUgYWRqYWNlbnQgZGF5cyBpbiBtb250aCBjYWxlbmRhciB2aWV3XG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGRpc3BsYXlBZGphY2VudERheXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBMb2NhbGUgYnkgd2hpY2ggY2FsZW5kYXIgbGFiZWxzIGFyZSB0cmFuc2Zvcm1lZFxuICAgKiBAZGVmYXVsdCBlbkdCXG4gICAqL1xuICBsb2NhbGU6IEJlaGF2aW9yU3ViamVjdDxMb2NhbGU+O1xuICAvKipcbiAgICogU2V0dGluZyBieSB3aGljaCBjYWxlbmRhciBzd2l0Y2hlcyB0byBzZWxlY3RpbmcgYSBkYXRlIHJhbmdlXG4gICAqIEBkZWZhdWx0IENhbGVuZGFyU2VsZWN0aW9uTW9kZS5EYXRlXG4gICAqL1xuICBzZWxlY3Rpb25Nb2RlOiBDYWxlbmRhclNlbGVjdGlvbk1vZGU7XG4gIHllYXJWaWV3OiB7IGl0ZW1zUGVyUm93OiBudW1iZXIgfTtcbiAgeWVhcnNWaWV3OiB7IGl0ZW1zUGVyUm93OiBudW1iZXI7IHBhZGRpbmc6IG51bWJlciB9O1xufVxuXG5leHBvcnQgY29uc3QgeyBDYWxlbmRhckNvbmZpZywgQ2FsZW5kYXJEZWZhdWx0Q29uZmlnLCBpbmplY3RDYWxlbmRhckNvbmZpZywgcHJvdmlkZUNhbGVuZGFyQ29uZmlnIH0gPSBjcmVhdGVDb25maWdUb2tlbnMoXG4gICdDYWxlbmRhcicsXG4gICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhcicsXG4gIHtcbiAgICBtb250aFllYXJMYWJlbDogJ0xMTEwgeXl5eScsXG4gICAgbW9udGhMYWJlbDogJ0xMTCcsXG4gICAgd2Vla0xhYmVsOiAnRUVFRUUnLFxuICAgIGRheUxhYmVsOiAnZCcsXG4gICAgeWVhckxhYmVsOiAneXl5eScsXG4gICAgZGF5QTExeUxhYmVsOiAnTU1NTSBkZCwgeXl5eScsXG4gICAgbW9udGhBMTF5TGFiZWw6ICdNTU1NLCB5eXl5JyxcbiAgICB5ZWFyQTExeUxhYmVsOiAneXl5eScsXG4gICAgZGlzcGxheUFkamFjZW50RGF5czogdHJ1ZSxcbiAgICBsb2NhbGU6IG5ldyBCZWhhdmlvclN1YmplY3Q8TG9jYWxlPihlbkdCKSxcbiAgICBzZWxlY3Rpb25Nb2RlOiBDYWxlbmRhclNlbGVjdGlvbk1vZGUuRGF0ZSxcbiAgICB5ZWFyVmlldzoge1xuICAgICAgaXRlbXNQZXJSb3c6IDMsXG4gICAgfSxcbiAgICB5ZWFyc1ZpZXc6IHtcbiAgICAgIGl0ZW1zUGVyUm93OiAzLFxuICAgICAgcGFkZGluZzogMTAwLFxuICAgIH0sXG4gIH0sXG4pO1xuIl19
@@ -1,27 +1,42 @@
1
- import { Injectable } from '@angular/core';
2
- import { isPresent } from '@odx/angular/utils';
1
+ import { EventEmitter, Injectable } from '@angular/core';
2
+ import { isPresent as isNonNullable } from '@odx/angular/utils';
3
3
  import { isEqual, startOfDay } from 'date-fns';
4
- import { BehaviorSubject, Subject, distinctUntilChanged, filter, merge, shareReplay } from 'rxjs';
5
- import { CalendarView } from './models';
4
+ import { BehaviorSubject, distinctUntilChanged, filter, map, merge, shareReplay } from 'rxjs';
5
+ import { CalendarView, dateSelectOptionsDefaults } from './models';
6
6
  import { parseDate } from './utils';
7
7
  import * as i0 from "@angular/core";
8
8
  export class CalendarService {
9
9
  constructor() {
10
+ this.activeDate$$ = new BehaviorSubject(null); // the date that is being focused by click or arrow keys
11
+ this.hoveredDate$$ = new BehaviorSubject(null); // the date that is being hovered by a pointing device
10
12
  this.calendarView$$ = new BehaviorSubject(CalendarView.Month);
11
- this.activeDate$$ = new Subject();
12
- this.selectedDate$$ = new BehaviorSubject(null);
13
+ this.dateSelectEvents$$ = new BehaviorSubject({
14
+ date: null,
15
+ options: dateSelectOptionsDefaults,
16
+ });
17
+ this.outputDate$ = new EventEmitter();
13
18
  this.calendarView$ = this.calendarView$$.pipe(shareReplay({ bufferSize: 1, refCount: true }));
14
- this.selectedDate$ = this.selectedDate$$.pipe(shareReplay({ bufferSize: 1, refCount: true }));
15
- this.activeDate$ = merge(this.activeDate$$, this.selectedDate$).pipe(filter(Boolean), distinctUntilChanged((prev, curr) => isEqual(prev, curr)), shareReplay({ bufferSize: 1, refCount: true }));
19
+ this.dateSelectEvents$ = this.dateSelectEvents$$.asObservable();
20
+ this.selectedDate$ = this.dateSelectEvents$$.pipe(map((x) => x.date), shareReplay({ bufferSize: 1, refCount: true }));
21
+ this.activeDate$ = this.activeDate$$.pipe(filter(Boolean), distinctUntilChanged((prev, curr) => isEqual(prev, curr)), shareReplay({ bufferSize: 1, refCount: true }));
22
+ this.previewDate$ = merge(this.activeDate$$, this.hoveredDate$$).pipe(filter(Boolean), distinctUntilChanged((prev, curr) => isEqual(prev, curr)), shareReplay({ bufferSize: 1, refCount: true }));
16
23
  }
17
24
  setActiveDate(value) {
18
- if (!isPresent(value))
25
+ if (!isNonNullable(value))
19
26
  return;
20
27
  this.activeDate$$.next(parseDate(value));
21
28
  }
22
- selectDate(value) {
23
- const date = isPresent(value) ? startOfDay(parseDate(value)) : null;
24
- this.selectedDate$$.next(date);
29
+ setHoveredDate(value) {
30
+ if (!isNonNullable(value))
31
+ return;
32
+ this.hoveredDate$$.next(parseDate(value));
33
+ }
34
+ selectDate(value, options) {
35
+ const date = isNonNullable(value) ? startOfDay(parseDate(value)) : null;
36
+ this.dateSelectEvents$$.next({ date, options: { ...dateSelectOptionsDefaults, ...options } });
37
+ if (options?.emitOutside) {
38
+ this.outputDate$.next(date);
39
+ }
25
40
  this.setActiveDate(date);
26
41
  }
27
42
  changeView(view) {
@@ -33,4 +48,4 @@ export class CalendarService {
33
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarService, decorators: [{
34
49
  type: Injectable
35
50
  }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRyxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sVUFBVSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBR3BDLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRW1CLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQWUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNuQyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFjLElBQUksQ0FBQyxDQUFDO1FBRXpELGtCQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLGtCQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLGdCQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDN0UsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUN6RCxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO0tBZ0JIO0lBZFEsYUFBYSxDQUFDLEtBQXNCO1FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTztRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQXNCO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sVUFBVSxDQUFDLElBQWtCO1FBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBMUJVLGVBQWU7bUhBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUHJlc2VudCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBpc0VxdWFsLCBzdGFydE9mRGF5IH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtZXJnZSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhbGVuZGFyVmlldywgRGF0ZVR5cGUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBwYXJzZURhdGUgfSBmcm9tICcuL3V0aWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FsZW5kYXJWaWV3JCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhbGVuZGFyVmlldz4oQ2FsZW5kYXJWaWV3Lk1vbnRoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmVEYXRlJCQgPSBuZXcgU3ViamVjdDxEYXRlPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRlIHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNhbGVuZGFyVmlldyQgPSB0aGlzLmNhbGVuZGFyVmlldyQkLnBpcGUoc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERhdGUkID0gdGhpcy5zZWxlY3RlZERhdGUkJC5waXBlKHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlRGF0ZSQgPSBtZXJnZSh0aGlzLmFjdGl2ZURhdGUkJCwgdGhpcy5zZWxlY3RlZERhdGUkKS5waXBlKFxuICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldiwgY3VycikgPT4gaXNFcXVhbChwcmV2LCBjdXJyKSksXG4gICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgKTtcblxuICBwdWJsaWMgc2V0QWN0aXZlRGF0ZSh2YWx1ZTogRGF0ZVR5cGUgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCFpc1ByZXNlbnQodmFsdWUpKSByZXR1cm47XG4gICAgdGhpcy5hY3RpdmVEYXRlJCQubmV4dChwYXJzZURhdGUodmFsdWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REYXRlKHZhbHVlOiBEYXRlVHlwZSB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlID0gaXNQcmVzZW50KHZhbHVlKSA/IHN0YXJ0T2ZEYXkocGFyc2VEYXRlKHZhbHVlKSkgOiBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlJCQubmV4dChkYXRlKTtcbiAgICB0aGlzLnNldEFjdGl2ZURhdGUoZGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlVmlldyh2aWV3OiBDYWxlbmRhclZpZXcpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyVmlldyQkLm5leHQodmlldyk7XG4gIH1cbn1cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxJQUFJLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQWdELHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBR3BDLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRW1CLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyx3REFBd0Q7UUFDL0csa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLHNEQUFzRDtRQUM5RyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFlLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBa0I7WUFDekUsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUseUJBQXlCO1NBQ25DLENBQUMsQ0FBQztRQUVhLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUM5QyxrQkFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RixzQkFBaUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0Qsa0JBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUMxRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDbEIsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDL0MsQ0FBQztRQUNjLGdCQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ2xELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDZixvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDekQsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDL0MsQ0FBQztRQUNjLGlCQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FDOUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUNmLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUN6RCxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO0tBd0JIO0lBdEJRLGFBQWEsQ0FBQyxLQUFzQjtRQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFzQjtRQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFzQixFQUFFLE9BQTJCO1FBQ25FLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxHQUFHLHlCQUF5QixFQUFFLEdBQUcsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlGLElBQUksT0FBTyxFQUFFLFdBQVcsRUFBRTtZQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFrQjtRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDOytHQWhEVSxlQUFlO21IQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUHJlc2VudCBhcyBpc05vbk51bGxhYmxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGlzRXF1YWwsIHN0YXJ0T2ZEYXkgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgbWVyZ2UsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYWxlbmRhclZpZXcsIERhdGVTZWxlY3RFdmVudCwgRGF0ZVNlbGVjdE9wdGlvbnMsIERhdGVUeXBlLCBkYXRlU2VsZWN0T3B0aW9uc0RlZmF1bHRzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgcGFyc2VEYXRlIH0gZnJvbSAnLi91dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2ZURhdGUkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0ZSB8IG51bGw+KG51bGwpOyAvLyB0aGUgZGF0ZSB0aGF0IGlzIGJlaW5nIGZvY3VzZWQgYnkgY2xpY2sgb3IgYXJyb3cga2V5c1xuICBwcml2YXRlIHJlYWRvbmx5IGhvdmVyZWREYXRlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGUgfCBudWxsPihudWxsKTsgLy8gdGhlIGRhdGUgdGhhdCBpcyBiZWluZyBob3ZlcmVkIGJ5IGEgcG9pbnRpbmcgZGV2aWNlXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FsZW5kYXJWaWV3JCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhbGVuZGFyVmlldz4oQ2FsZW5kYXJWaWV3Lk1vbnRoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkYXRlU2VsZWN0RXZlbnRzJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGVTZWxlY3RFdmVudD4oe1xuICAgIGRhdGU6IG51bGwsXG4gICAgb3B0aW9uczogZGF0ZVNlbGVjdE9wdGlvbnNEZWZhdWx0cyxcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG91dHB1dERhdGUkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGNhbGVuZGFyVmlldyQgPSB0aGlzLmNhbGVuZGFyVmlldyQkLnBpcGUoc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSk7XG4gIHB1YmxpYyByZWFkb25seSBkYXRlU2VsZWN0RXZlbnRzJCA9IHRoaXMuZGF0ZVNlbGVjdEV2ZW50cyQkLmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWREYXRlJCA9IHRoaXMuZGF0ZVNlbGVjdEV2ZW50cyQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmRhdGUpLFxuICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICk7XG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVEYXRlJCA9IHRoaXMuYWN0aXZlRGF0ZSQkLnBpcGUoXG4gICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiBpc0VxdWFsKHByZXYsIGN1cnIpKSxcbiAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICApO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJldmlld0RhdGUkID0gbWVyZ2UodGhpcy5hY3RpdmVEYXRlJCQsIHRoaXMuaG92ZXJlZERhdGUkJCkucGlwZShcbiAgICBmaWx0ZXIoQm9vbGVhbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnIpID0+IGlzRXF1YWwocHJldiwgY3VycikpLFxuICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICk7XG5cbiAgcHVibGljIHNldEFjdGl2ZURhdGUodmFsdWU6IERhdGVUeXBlIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghaXNOb25OdWxsYWJsZSh2YWx1ZSkpIHJldHVybjtcbiAgICB0aGlzLmFjdGl2ZURhdGUkJC5uZXh0KHBhcnNlRGF0ZSh2YWx1ZSkpO1xuICB9XG5cbiAgcHVibGljIHNldEhvdmVyZWREYXRlKHZhbHVlOiBEYXRlVHlwZSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIWlzTm9uTnVsbGFibGUodmFsdWUpKSByZXR1cm47XG4gICAgdGhpcy5ob3ZlcmVkRGF0ZSQkLm5leHQocGFyc2VEYXRlKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGF0ZSh2YWx1ZTogRGF0ZVR5cGUgfCBudWxsLCBvcHRpb25zPzogRGF0ZVNlbGVjdE9wdGlvbnMpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlID0gaXNOb25OdWxsYWJsZSh2YWx1ZSkgPyBzdGFydE9mRGF5KHBhcnNlRGF0ZSh2YWx1ZSkpIDogbnVsbDtcbiAgICB0aGlzLmRhdGVTZWxlY3RFdmVudHMkJC5uZXh0KHsgZGF0ZSwgb3B0aW9uczogeyAuLi5kYXRlU2VsZWN0T3B0aW9uc0RlZmF1bHRzLCAuLi5vcHRpb25zIH0gfSk7XG4gICAgaWYgKG9wdGlvbnM/LmVtaXRPdXRzaWRlKSB7XG4gICAgICB0aGlzLm91dHB1dERhdGUkLm5leHQoZGF0ZSk7XG4gICAgfVxuICAgIHRoaXMuc2V0QWN0aXZlRGF0ZShkYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VWaWV3KHZpZXc6IENhbGVuZGFyVmlldyk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXJWaWV3JCQubmV4dCh2aWV3KTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { ChangeDetectionStrategy, Component, EventEmitter, inject, Output, ViewEncapsulation } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
3
3
  import { CoreModule } from '@odx/angular';
4
4
  import { CSSComponent } from '@odx/angular/internal';
5
5
  import { addDays, addMonths, addWeeks, subDays, subMonths, subWeeks } from 'date-fns';
@@ -17,7 +17,6 @@ export let CalendarMonthComponent = class CalendarMonthComponent extends Calenda
17
17
  this.calendarMonth = inject(CalendarMonthService);
18
18
  this.nextView = CalendarView.Years;
19
19
  this.currentView = CalendarView.Month;
20
- this.selectedChange = new EventEmitter();
21
20
  }
22
21
  previousDay(event) {
23
22
  this.updateActiveDate(event, subDays(this.activeDate, 1));
@@ -40,19 +39,16 @@ export let CalendarMonthComponent = class CalendarMonthComponent extends Calenda
40
39
  selectDate(value) {
41
40
  if (this.isDateDisabled(value))
42
41
  return;
43
- this.calendar.selectDate(value);
44
- this.selectedChange.emit(value);
42
+ this.calendar.selectDate(value, { emitOutside: true });
45
43
  }
46
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarMonthComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarMonthComponent, isStandalone: true, selector: "odx-calendar-month", outputs: { selectedChange: "selectedChange" }, providers: [CalendarMonthService], usesInheritance: true, ngImport: i0, template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"7\">\n <odx-calendar-header\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (previous)=\"previousMonth($event)\"\n (next)=\"nextMonth($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.monthYearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n\n <tr class=\"odx-calendar__weekdays\">\n <td *ngFor=\"let day of calendarMonth.weekDays$ | async\">\n {{ day | odxDateLabel: config.weekLabel }}\n </td>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousDay($event)\"\n (keydown.ArrowRight)=\"nextDay($event)\"\n (keydown.ArrowUp)=\"previousWeek($event)\"\n (keydown.ArrowDown)=\"nextWeek($event)\"\n (keydown.PageUp)=\"previousMonth($event)\"\n (keydown.PageDown)=\"nextMonth($event)\"\n >\n <tr *ngFor=\"let week of calendarMonth.weeks$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let day of week; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(day)\"\n [odxCalendarCell]=\"day\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n (click)=\"selectDate(day)\"\n >\n {{ day | odxDateLabel: config.dayLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: CalendarCellDirective, selector: "[odxCalendarCell]", inputs: ["odxCalendarCell", "odxCalendarCellCalendarView", "odxCalendarCellActiveDate", "odxCalendarCellSelectedDate"] }, { kind: "component", type: CalendarHeaderComponent, selector: "odx-calendar-header", inputs: ["activeDate", "calendarView", "minDate", "maxDate"], outputs: ["previous", "next", "changeView"] }, { kind: "pipe", type: DateLabelPipe, name: "odxDateLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarMonthComponent, isStandalone: true, selector: "odx-calendar-month", providers: [CalendarMonthService], usesInheritance: true, ngImport: i0, template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"7\">\n <odx-calendar-header\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (previous)=\"previousMonth($event)\"\n (next)=\"nextMonth($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.monthYearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n\n <tr class=\"odx-calendar__weekdays\">\n <td *ngFor=\"let day of calendarMonth.weekDays$ | async\">\n {{ day | odxDateLabel: config.weekLabel }}\n </td>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousDay($event)\"\n (keydown.ArrowRight)=\"nextDay($event)\"\n (keydown.ArrowUp)=\"previousWeek($event)\"\n (keydown.ArrowDown)=\"nextWeek($event)\"\n (keydown.PageUp)=\"previousMonth($event)\"\n (keydown.PageDown)=\"nextMonth($event)\"\n >\n <tr *ngFor=\"let week of calendarMonth.weeks$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let day of week; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(day)\"\n [odxCalendarCell]=\"day\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n [odxCalendarCellSelectedDateRange]=\"selectedDateRange\"\n [odxCalendarCellPreviewDate]=\"previewDate\"\n (click)=\"selectDate(day)\"\n >\n {{ day | odxDateLabel: config.dayLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: CalendarCellDirective, selector: "[odxCalendarCell]", inputs: ["odxCalendarCell", "odxCalendarCellCalendarView", "odxCalendarCellActiveDate", "odxCalendarCellSelectedDate", "odxCalendarCellSelectedDateRange", "odxCalendarCellPreviewDate"] }, { kind: "component", type: CalendarHeaderComponent, selector: "odx-calendar-header", inputs: ["activeDate", "calendarView", "minDate", "maxDate"], outputs: ["previous", "next", "changeView"] }, { kind: "pipe", type: DateLabelPipe, name: "odxDateLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
46
  };
49
47
  CalendarMonthComponent = __decorate([
50
48
  CSSComponent('calendar-month')
51
49
  ], CalendarMonthComponent);
52
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarMonthComponent, decorators: [{
53
51
  type: Component,
54
- args: [{ selector: 'odx-calendar-month', standalone: true, imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarMonthService], template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"7\">\n <odx-calendar-header\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (previous)=\"previousMonth($event)\"\n (next)=\"nextMonth($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.monthYearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n\n <tr class=\"odx-calendar__weekdays\">\n <td *ngFor=\"let day of calendarMonth.weekDays$ | async\">\n {{ day | odxDateLabel: config.weekLabel }}\n </td>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousDay($event)\"\n (keydown.ArrowRight)=\"nextDay($event)\"\n (keydown.ArrowUp)=\"previousWeek($event)\"\n (keydown.ArrowDown)=\"nextWeek($event)\"\n (keydown.PageUp)=\"previousMonth($event)\"\n (keydown.PageDown)=\"nextMonth($event)\"\n >\n <tr *ngFor=\"let week of calendarMonth.weeks$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let day of week; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(day)\"\n [odxCalendarCell]=\"day\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n (click)=\"selectDate(day)\"\n >\n {{ day | odxDateLabel: config.dayLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
55
- }], propDecorators: { selectedChange: [{
56
- type: Output
57
- }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyLW1vbnRoL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci1tb250aC9jYWxlbmRhci1tb250aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBWXRELFdBQU0sc0JBQXNCLEdBQTVCLE1BQU0sc0JBQXVCLFNBQVEscUJBQXFCO0lBQTFEOztRQUNjLGtCQUFhLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0MsYUFBUSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBRzdDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztLQWdDekQ7SUE5QlcsV0FBVyxDQUFDLEtBQVk7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFUyxPQUFPLENBQUMsS0FBWTtRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVTLFlBQVksQ0FBQyxLQUFZO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRVMsUUFBUSxDQUFDLEtBQVk7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFUyxhQUFhLENBQUMsS0FBWTtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQVc7UUFDOUIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0FyQ1Usc0JBQXNCO21HQUF0QixzQkFBc0IsZ0hBRnRCLENBQUMsb0JBQW9CLENBQUMsaURDbEJuQyw4cURBa0RBLDJDRHBDWSxVQUFVLG1UQUFFLHFCQUFxQixzTEFBRSx1QkFBdUIsc0tBQUUsYUFBYTs7QUFNeEUsc0JBQXNCO0lBVmxDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztHQVVsQixzQkFBc0IsQ0FzQ2xDOzRGQXRDWSxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLENBQUMsbUJBRW5FLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxvQkFBb0IsQ0FBQzs4QkFRMUIsY0FBYztzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGREYXlzLCBhZGRNb250aHMsIGFkZFdlZWtzLCBzdWJEYXlzLCBzdWJNb250aHMsIHN1YldlZWtzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDZWxsRGlyZWN0aXZlLCBDYWxlbmRhclZpZXdEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENhbGVuZGFyVmlldyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEYXRlTGFiZWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyLWhlYWRlcic7XG5cbkBDU1NDb21wb25lbnQoJ2NhbGVuZGFyLW1vbnRoJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYWxlbmRhci1tb250aCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBDYWxlbmRhckNlbGxEaXJlY3RpdmUsIENhbGVuZGFySGVhZGVyQ29tcG9uZW50LCBEYXRlTGFiZWxQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW0NhbGVuZGFyTW9udGhTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJNb250aENvbXBvbmVudCBleHRlbmRzIENhbGVuZGFyVmlld0RpcmVjdGl2ZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxlbmRhck1vbnRoID0gaW5qZWN0KENhbGVuZGFyTW9udGhTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5leHRWaWV3ID0gQ2FsZW5kYXJWaWV3LlllYXJzO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFZpZXcgPSBDYWxlbmRhclZpZXcuTW9udGg7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG5cbiAgcHJvdGVjdGVkIHByZXZpb3VzRGF5KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgc3ViRGF5cyh0aGlzLmFjdGl2ZURhdGUsIDEpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0RGF5KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgYWRkRGF5cyh0aGlzLmFjdGl2ZURhdGUsIDEpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmV2aW91c1dlZWsoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBzdWJXZWVrcyh0aGlzLmFjdGl2ZURhdGUsIDEpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0V2VlayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIGFkZFdlZWtzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXZpb3VzTW9udGgoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBzdWJNb250aHModGhpcy5hY3RpdmVEYXRlLCAxKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dE1vbnRoKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgYWRkTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdERhdGUodmFsdWU6IERhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0RhdGVEaXNhYmxlZCh2YWx1ZSkpIHJldHVybjtcblxuICAgIHRoaXMuY2FsZW5kYXIuc2VsZWN0RGF0ZSh2YWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxufVxuIiwiPHRhYmxlIGNsYXNzPVwib2R4LWNhbGVuZGFyX190YWJsZVwiIHJvbGU9XCJncmlkXCIgYXJpYS1kZXNjcmliZWRieT1cIm9keC1jYWxlbmRhclwiPlxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgPHRoIGNvbHNwYW49XCI3XCI+XG4gICAgICAgIDxvZHgtY2FsZW5kYXItaGVhZGVyXG4gICAgICAgICAgW2NhbGVuZGFyVmlld109XCJjdXJyZW50Vmlld1wiXG4gICAgICAgICAgW2FjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiXG4gICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiXG4gICAgICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICAgICAgKHByZXZpb3VzKT1cInByZXZpb3VzTW9udGgoJGV2ZW50KVwiXG4gICAgICAgICAgKG5leHQpPVwibmV4dE1vbnRoKCRldmVudClcIlxuICAgICAgICAgIChjaGFuZ2VWaWV3KT1cImNoYW5nZVZpZXcoKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBhY3RpdmVEYXRlIHwgb2R4RGF0ZUxhYmVsOiBjb25maWcubW9udGhZZWFyTGFiZWwgfX1cbiAgICAgICAgPC9vZHgtY2FsZW5kYXItaGVhZGVyPlxuICAgICAgPC90aD5cbiAgICA8L3RyPlxuXG4gICAgPHRyIGNsYXNzPVwib2R4LWNhbGVuZGFyX193ZWVrZGF5c1wiPlxuICAgICAgPHRkICpuZ0Zvcj1cImxldCBkYXkgb2YgY2FsZW5kYXJNb250aC53ZWVrRGF5cyQgfCBhc3luY1wiPlxuICAgICAgICB7eyBkYXkgfCBvZHhEYXRlTGFiZWw6IGNvbmZpZy53ZWVrTGFiZWwgfX1cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cblxuICA8dGJvZHlcbiAgICBjbGFzcz1cIm9keC1jYWxlbmRhcl9fYm9keVwiXG4gICAgKGtleWRvd24uQXJyb3dMZWZ0KT1cInByZXZpb3VzRGF5KCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93UmlnaHQpPVwibmV4dERheSgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5BcnJvd1VwKT1cInByZXZpb3VzV2VlaygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5BcnJvd0Rvd24pPVwibmV4dFdlZWsoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uUGFnZVVwKT1cInByZXZpb3VzTW9udGgoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uUGFnZURvd24pPVwibmV4dE1vbnRoKCRldmVudClcIlxuICA+XG4gICAgPHRyICpuZ0Zvcj1cImxldCB3ZWVrIG9mIGNhbGVuZGFyTW9udGgud2Vla3MkIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiPlxuICAgICAgPHRkIHJvbGU9XCJncmlkY2VsbFwiICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2VlazsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEYXRlRGlzYWJsZWQoZGF5KVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbF09XCJkYXlcIlxuICAgICAgICAgIFtvZHhDYWxlbmRhckNlbGxBY3RpdmVEYXRlXT1cImFjdGl2ZURhdGVcIlxuICAgICAgICAgIFtvZHhDYWxlbmRhckNlbGxDYWxlbmRhclZpZXddPVwiY3VycmVudFZpZXdcIlxuICAgICAgICAgIFtvZHhDYWxlbmRhckNlbGxTZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShkYXkpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGRheSB8IG9keERhdGVMYWJlbDogY29uZmlnLmRheUxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
52
+ args: [{ selector: 'odx-calendar-month', standalone: true, imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarMonthService], template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"7\">\n <odx-calendar-header\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (previous)=\"previousMonth($event)\"\n (next)=\"nextMonth($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.monthYearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n\n <tr class=\"odx-calendar__weekdays\">\n <td *ngFor=\"let day of calendarMonth.weekDays$ | async\">\n {{ day | odxDateLabel: config.weekLabel }}\n </td>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousDay($event)\"\n (keydown.ArrowRight)=\"nextDay($event)\"\n (keydown.ArrowUp)=\"previousWeek($event)\"\n (keydown.ArrowDown)=\"nextWeek($event)\"\n (keydown.PageUp)=\"previousMonth($event)\"\n (keydown.PageDown)=\"nextMonth($event)\"\n >\n <tr *ngFor=\"let week of calendarMonth.weeks$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let day of week; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(day)\"\n [odxCalendarCell]=\"day\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n [odxCalendarCellSelectedDateRange]=\"selectedDateRange\"\n [odxCalendarCellPreviewDate]=\"previewDate\"\n (click)=\"selectDate(day)\"\n >\n {{ day | odxDateLabel: config.dayLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
53
+ }] });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyLW1vbnRoL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci1tb250aC9jYWxlbmRhci1tb250aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7OztBQVl0RCxXQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUF1QixTQUFRLHFCQUFxQjtJQUExRDs7UUFDYyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzdDLGFBQVEsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztLQStCckQ7SUE3QlcsV0FBVyxDQUFDLEtBQVk7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFUyxPQUFPLENBQUMsS0FBWTtRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVTLFlBQVksQ0FBQyxLQUFZO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRVMsUUFBUSxDQUFDLEtBQVk7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFUyxhQUFhLENBQUMsS0FBWTtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQVc7UUFDOUIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQzsrR0FqQ1Usc0JBQXNCO21HQUF0QixzQkFBc0IsaUVBRnRCLENBQUMsb0JBQW9CLENBQUMsaURDbEJuQywweURBb0RBLDJDRHRDWSxVQUFVLG1UQUFFLHFCQUFxQix3UEFBRSx1QkFBdUIsc0tBQUUsYUFBYTs7QUFNeEUsc0JBQXNCO0lBVmxDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztHQVVsQixzQkFBc0IsQ0FrQ2xDOzRGQWxDWSxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLENBQUMsbUJBRW5FLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGFkZERheXMsIGFkZE1vbnRocywgYWRkV2Vla3MsIHN1YkRheXMsIHN1Yk1vbnRocywgc3ViV2Vla3MgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDYWxlbmRhckNlbGxEaXJlY3RpdmUsIENhbGVuZGFyVmlld0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERhdGVMYWJlbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItaGVhZGVyJztcblxuQENTU0NvbXBvbmVudCgnY2FsZW5kYXItbW9udGgnKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LWNhbGVuZGFyLW1vbnRoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIENhbGVuZGFyQ2VsbERpcmVjdGl2ZSwgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQsIERhdGVMYWJlbFBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItbW9udGguY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJNb250aFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhck1vbnRoQ29tcG9uZW50IGV4dGVuZHMgQ2FsZW5kYXJWaWV3RGlyZWN0aXZlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyTW9udGggPSBpbmplY3QoQ2FsZW5kYXJNb250aFNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmV4dFZpZXcgPSBDYWxlbmRhclZpZXcuWWVhcnM7XG4gIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW50VmlldyA9IENhbGVuZGFyVmlldy5Nb250aDtcblxuICBwcm90ZWN0ZWQgcHJldmlvdXNEYXkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBzdWJEYXlzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5leHREYXkoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBhZGREYXlzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXZpb3VzV2VlayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIHN1YldlZWtzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5leHRXZWVrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgYWRkV2Vla3ModGhpcy5hY3RpdmVEYXRlLCAxKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmlvdXNNb250aChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIHN1Yk1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0TW9udGgoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBhZGRNb250aHModGhpcy5hY3RpdmVEYXRlLCAxKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0RGF0ZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGF0ZURpc2FibGVkKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5jYWxlbmRhci5zZWxlY3REYXRlKHZhbHVlLCB7IGVtaXRPdXRzaWRlOiB0cnVlIH0pO1xuICB9XG59XG4iLCI8dGFibGUgY2xhc3M9XCJvZHgtY2FsZW5kYXJfX3RhYmxlXCIgcm9sZT1cImdyaWRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwib2R4LWNhbGVuZGFyXCI+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8dGggY29sc3Bhbj1cIjdcIj5cbiAgICAgICAgPG9keC1jYWxlbmRhci1oZWFkZXJcbiAgICAgICAgICBbY2FsZW5kYXJWaWV3XT1cImN1cnJlbnRWaWV3XCJcbiAgICAgICAgICBbYWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICAocHJldmlvdXMpPVwicHJldmlvdXNNb250aCgkZXZlbnQpXCJcbiAgICAgICAgICAobmV4dCk9XCJuZXh0TW9udGgoJGV2ZW50KVwiXG4gICAgICAgICAgKGNoYW5nZVZpZXcpPVwiY2hhbmdlVmlldygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGFjdGl2ZURhdGUgfCBvZHhEYXRlTGFiZWw6IGNvbmZpZy5tb250aFllYXJMYWJlbCB9fVxuICAgICAgICA8L29keC1jYWxlbmRhci1oZWFkZXI+XG4gICAgICA8L3RoPlxuICAgIDwvdHI+XG5cbiAgICA8dHIgY2xhc3M9XCJvZHgtY2FsZW5kYXJfX3dlZWtkYXlzXCI+XG4gICAgICA8dGQgKm5nRm9yPVwibGV0IGRheSBvZiBjYWxlbmRhck1vbnRoLndlZWtEYXlzJCB8IGFzeW5jXCI+XG4gICAgICAgIHt7IGRheSB8IG9keERhdGVMYWJlbDogY29uZmlnLndlZWtMYWJlbCB9fVxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuXG4gIDx0Ym9keVxuICAgIGNsYXNzPVwib2R4LWNhbGVuZGFyX19ib2R5XCJcbiAgICAoa2V5ZG93bi5BcnJvd0xlZnQpPVwicHJldmlvdXNEYXkoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uQXJyb3dSaWdodCk9XCJuZXh0RGF5KCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93VXApPVwicHJldmlvdXNXZWVrKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93RG93bik9XCJuZXh0V2VlaygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5QYWdlVXApPVwicHJldmlvdXNNb250aCgkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5QYWdlRG93bik9XCJuZXh0TW9udGgoJGV2ZW50KVwiXG4gID5cbiAgICA8dHIgKm5nRm9yPVwibGV0IHdlZWsgb2YgY2FsZW5kYXJNb250aC53ZWVrcyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XG4gICAgICA8dGQgcm9sZT1cImdyaWRjZWxsXCIgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrOyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0RhdGVEaXNhYmxlZChkYXkpXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsXT1cImRheVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbEFjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbENhbGVuZGFyVmlld109XCJjdXJyZW50Vmlld1wiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbFNlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICAgIFtvZHhDYWxlbmRhckNlbGxTZWxlY3RlZERhdGVSYW5nZV09XCJzZWxlY3RlZERhdGVSYW5nZVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbFByZXZpZXdEYXRlXT1cInByZXZpZXdEYXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShkYXkpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGRheSB8IG9keERhdGVMYWJlbDogY29uZmlnLmRheUxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
@@ -40,17 +40,17 @@ export let CalendarYearComponent = class CalendarYearComponent extends CalendarV
40
40
  if (this.isDateDisabled(value))
41
41
  return;
42
42
  const date = setMonth(this.activeDate, getMonth(value));
43
- this.calendar.selectDate(date);
43
+ this.calendar.selectDate(date, { skipDaterangeUpdate: true });
44
44
  this.changeView();
45
45
  }
46
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarYearComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarYearComponent, isStandalone: true, selector: "odx-calendar-year", providers: [CalendarYearService], usesInheritance: true, ngImport: i0, template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"3\">\n <odx-calendar-header\n (previous)=\"previousYear($event)\"\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (next)=\"nextYear($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.yearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousMonth($event)\"\n (keydown.ArrowRight)=\"nextMonth($event)\"\n (keydown.ArrowUp)=\"previousSeason($event)\"\n (keydown.ArrowDown)=\"nextSeason($event)\"\n (keydown.PageDown)=\"nextYear($event)\"\n (keydown.PageUp)=\"previousYear($event)\"\n >\n <tr class=\"odx-calendar__season\" *ngFor=\"let season of calendarYear.seasons$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let month of season; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(month)\"\n [odxCalendarCell]=\"month\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n (click)=\"selectDate(month)\"\n >\n {{ month | odxDateLabel: config.monthLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: CalendarCellDirective, selector: "[odxCalendarCell]", inputs: ["odxCalendarCell", "odxCalendarCellCalendarView", "odxCalendarCellActiveDate", "odxCalendarCellSelectedDate"] }, { kind: "component", type: CalendarHeaderComponent, selector: "odx-calendar-header", inputs: ["activeDate", "calendarView", "minDate", "maxDate"], outputs: ["previous", "next", "changeView"] }, { kind: "pipe", type: DateLabelPipe, name: "odxDateLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarYearComponent, isStandalone: true, selector: "odx-calendar-year", providers: [CalendarYearService], usesInheritance: true, ngImport: i0, template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"3\">\n <odx-calendar-header\n (previous)=\"previousYear($event)\"\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (next)=\"nextYear($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.yearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousMonth($event)\"\n (keydown.ArrowRight)=\"nextMonth($event)\"\n (keydown.ArrowUp)=\"previousSeason($event)\"\n (keydown.ArrowDown)=\"nextSeason($event)\"\n (keydown.PageDown)=\"nextYear($event)\"\n (keydown.PageUp)=\"previousYear($event)\"\n >\n <tr class=\"odx-calendar__season\" *ngFor=\"let season of calendarYear.seasons$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let month of season; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(month)\"\n [odxCalendarCell]=\"month\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n [odxCalendarCellSelectedDateRange]=\"selectedDateRange\"\n (click)=\"selectDate(month)\"\n >\n {{ month | odxDateLabel: config.monthLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: CalendarCellDirective, selector: "[odxCalendarCell]", inputs: ["odxCalendarCell", "odxCalendarCellCalendarView", "odxCalendarCellActiveDate", "odxCalendarCellSelectedDate", "odxCalendarCellSelectedDateRange", "odxCalendarCellPreviewDate"] }, { kind: "component", type: CalendarHeaderComponent, selector: "odx-calendar-header", inputs: ["activeDate", "calendarView", "minDate", "maxDate"], outputs: ["previous", "next", "changeView"] }, { kind: "pipe", type: DateLabelPipe, name: "odxDateLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
48
  };
49
49
  CalendarYearComponent = __decorate([
50
50
  CSSComponent('calendar-year')
51
51
  ], CalendarYearComponent);
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarYearComponent, decorators: [{
53
53
  type: Component,
54
- args: [{ selector: 'odx-calendar-year', standalone: true, imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarYearService], template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"3\">\n <odx-calendar-header\n (previous)=\"previousYear($event)\"\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (next)=\"nextYear($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.yearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousMonth($event)\"\n (keydown.ArrowRight)=\"nextMonth($event)\"\n (keydown.ArrowUp)=\"previousSeason($event)\"\n (keydown.ArrowDown)=\"nextSeason($event)\"\n (keydown.PageDown)=\"nextYear($event)\"\n (keydown.PageUp)=\"previousYear($event)\"\n >\n <tr class=\"odx-calendar__season\" *ngFor=\"let season of calendarYear.seasons$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let month of season; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(month)\"\n [odxCalendarCell]=\"month\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n (click)=\"selectDate(month)\"\n >\n {{ month | odxDateLabel: config.monthLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
54
+ args: [{ selector: 'odx-calendar-year', standalone: true, imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarYearService], template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\">\n <thead>\n <tr>\n <th colspan=\"3\">\n <odx-calendar-header\n (previous)=\"previousYear($event)\"\n [calendarView]=\"currentView\"\n [activeDate]=\"activeDate\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n (next)=\"nextYear($event)\"\n (changeView)=\"changeView()\"\n >\n {{ activeDate | odxDateLabel: config.yearLabel }}\n </odx-calendar-header>\n </th>\n </tr>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousMonth($event)\"\n (keydown.ArrowRight)=\"nextMonth($event)\"\n (keydown.ArrowUp)=\"previousSeason($event)\"\n (keydown.ArrowDown)=\"nextSeason($event)\"\n (keydown.PageDown)=\"nextYear($event)\"\n (keydown.PageUp)=\"previousYear($event)\"\n >\n <tr class=\"odx-calendar__season\" *ngFor=\"let season of calendarYear.seasons$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let month of season; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(month)\"\n [odxCalendarCell]=\"month\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n [odxCalendarCellSelectedDateRange]=\"selectedDateRange\"\n (click)=\"selectDate(month)\"\n >\n {{ month | odxDateLabel: config.monthLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
55
55
  }] });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIteWVhci9jYWxlbmRhci15ZWFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci15ZWFyL2NhbGVuZGFyLXllYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBWXRELFdBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXNCLFNBQVEscUJBQXFCO0lBQXpEOztRQUNjLGlCQUFZLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsYUFBUSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO0tBa0NwRDtJQWhDVyxhQUFhLENBQUMsS0FBWTtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFUyxVQUFVLENBQUMsS0FBWTtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVTLFlBQVksQ0FBQyxLQUFZO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRVMsUUFBUSxDQUFDLEtBQVk7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFUyxVQUFVLENBQUMsS0FBVztRQUM5QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTztRQUV2QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzsrR0FwQ1UscUJBQXFCO21HQUFyQixxQkFBcUIsZ0VBRnJCLENBQUMsbUJBQW1CLENBQUMsaURDbEJsQyxraURBNENBLDJDRDlCWSxVQUFVLG1UQUFFLHFCQUFxQixzTEFBRSx1QkFBdUIsc0tBQUUsYUFBYTs7QUFNeEUscUJBQXFCO0lBVmpDLFlBQVksQ0FBQyxlQUFlLENBQUM7R0FVakIscUJBQXFCLENBcUNqQzs0RkFyQ1kscUJBQXFCO2tCQVRqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxDQUFDLG1CQUVuRSx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBhZGRNb250aHMsIGdldE1vbnRoLCBzZXRNb250aCwgc3ViTW9udGhzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDZWxsRGlyZWN0aXZlLCBDYWxlbmRhclZpZXdEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENhbGVuZGFyVmlldyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEYXRlTGFiZWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItaGVhZGVyJztcblxuQENTU0NvbXBvbmVudCgnY2FsZW5kYXIteWVhcicpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtY2FsZW5kYXIteWVhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBDYWxlbmRhckNlbGxEaXJlY3RpdmUsIENhbGVuZGFySGVhZGVyQ29tcG9uZW50LCBEYXRlTGFiZWxQaXBlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLXllYXIuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJZZWFyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyWWVhckNvbXBvbmVudCBleHRlbmRzIENhbGVuZGFyVmlld0RpcmVjdGl2ZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxlbmRhclllYXIgPSBpbmplY3QoQ2FsZW5kYXJZZWFyU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBuZXh0VmlldyA9IENhbGVuZGFyVmlldy5Nb250aDtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRWaWV3ID0gQ2FsZW5kYXJWaWV3LlllYXI7XG5cbiAgcHJvdGVjdGVkIHByZXZpb3VzTW9udGgoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBzdWJNb250aHModGhpcy5hY3RpdmVEYXRlLCAxKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dE1vbnRoKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgYWRkTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXZpb3VzU2Vhc29uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgc3ViTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5leHRTZWFzb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBhZGRNb250aHModGhpcy5hY3RpdmVEYXRlLCAzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmlvdXNZZWFyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgc3ViTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMTIpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0WWVhcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIGFkZE1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEyKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0RGF0ZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGF0ZURpc2FibGVkKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0ZSA9IHNldE1vbnRoKHRoaXMuYWN0aXZlRGF0ZSwgZ2V0TW9udGgodmFsdWUpKTtcbiAgICB0aGlzLmNhbGVuZGFyLnNlbGVjdERhdGUoZGF0ZSk7XG5cbiAgICB0aGlzLmNoYW5nZVZpZXcoKTtcbiAgfVxufVxuIiwiPHRhYmxlIGNsYXNzPVwib2R4LWNhbGVuZGFyX190YWJsZVwiIHJvbGU9XCJncmlkXCIgYXJpYS1kZXNjcmliZWRieT1cIm9keC1jYWxlbmRhclwiPlxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgPHRoIGNvbHNwYW49XCIzXCI+XG4gICAgICAgIDxvZHgtY2FsZW5kYXItaGVhZGVyXG4gICAgICAgICAgKHByZXZpb3VzKT1cInByZXZpb3VzWWVhcigkZXZlbnQpXCJcbiAgICAgICAgICBbY2FsZW5kYXJWaWV3XT1cImN1cnJlbnRWaWV3XCJcbiAgICAgICAgICBbYWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICAobmV4dCk9XCJuZXh0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgICAoY2hhbmdlVmlldyk9XCJjaGFuZ2VWaWV3KClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgYWN0aXZlRGF0ZSB8IG9keERhdGVMYWJlbDogY29uZmlnLnllYXJMYWJlbCB9fVxuICAgICAgICA8L29keC1jYWxlbmRhci1oZWFkZXI+XG4gICAgICA8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5XG4gICAgY2xhc3M9XCJvZHgtY2FsZW5kYXJfX2JvZHlcIlxuICAgIChrZXlkb3duLkFycm93TGVmdCk9XCJwcmV2aW91c01vbnRoKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93UmlnaHQpPVwibmV4dE1vbnRoKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93VXApPVwicHJldmlvdXNTZWFzb24oJGV2ZW50KVwiXG4gICAgKGtleWRvd24uQXJyb3dEb3duKT1cIm5leHRTZWFzb24oJGV2ZW50KVwiXG4gICAgKGtleWRvd24uUGFnZURvd24pPVwibmV4dFllYXIoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uUGFnZVVwKT1cInByZXZpb3VzWWVhcigkZXZlbnQpXCJcbiAgPlxuICAgIDx0ciBjbGFzcz1cIm9keC1jYWxlbmRhcl9fc2Vhc29uXCIgKm5nRm9yPVwibGV0IHNlYXNvbiBvZiBjYWxlbmRhclllYXIuc2Vhc29ucyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XG4gICAgICA8dGQgcm9sZT1cImdyaWRjZWxsXCIgKm5nRm9yPVwibGV0IG1vbnRoIG9mIHNlYXNvbjsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEYXRlRGlzYWJsZWQobW9udGgpXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsXT1cIm1vbnRoXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsQWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsQ2FsZW5kYXJWaWV3XT1cImN1cnJlbnRWaWV3XCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsU2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUobW9udGgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IG1vbnRoIHwgb2R4RGF0ZUxhYmVsOiBjb25maWcubW9udGhMYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvY2FsZW5kYXIteWVhci9jYWxlbmRhci15ZWFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci15ZWFyL2NhbGVuZGFyLXllYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBWXRELFdBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXNCLFNBQVEscUJBQXFCO0lBQXpEOztRQUNjLGlCQUFZLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0MsYUFBUSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDOUIsZ0JBQVcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO0tBa0NwRDtJQWhDVyxhQUFhLENBQUMsS0FBWTtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQVk7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFUyxVQUFVLENBQUMsS0FBWTtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVTLFlBQVksQ0FBQyxLQUFZO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRVMsUUFBUSxDQUFDLEtBQVk7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFUyxVQUFVLENBQUMsS0FBVztRQUM5QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTztRQUV2QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDOytHQXBDVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixnRUFGckIsQ0FBQyxtQkFBbUIsQ0FBQyxpRENsQmxDLHNtREE2Q0EsMkNEL0JZLFVBQVUsbVRBQUUscUJBQXFCLHdQQUFFLHVCQUF1QixzS0FBRSxhQUFhOztBQU14RSxxQkFBcUI7SUFWakMsWUFBWSxDQUFDLGVBQWUsQ0FBQztHQVVqQixxQkFBcUIsQ0FxQ2pDOzRGQXJDWSxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLENBQUMsbUJBRW5FLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGFkZE1vbnRocywgZ2V0TW9udGgsIHNldE1vbnRoLCBzdWJNb250aHMgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDYWxlbmRhckNlbGxEaXJlY3RpdmUsIENhbGVuZGFyVmlld0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERhdGVMYWJlbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYWxlbmRhci1oZWFkZXInO1xuXG5AQ1NTQ29tcG9uZW50KCdjYWxlbmRhci15ZWFyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1jYWxlbmRhci15ZWFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIENhbGVuZGFyQ2VsbERpcmVjdGl2ZSwgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQsIERhdGVMYWJlbFBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIteWVhci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhclllYXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJZZWFyQ29tcG9uZW50IGV4dGVuZHMgQ2FsZW5kYXJWaWV3RGlyZWN0aXZlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyWWVhciA9IGluamVjdChDYWxlbmRhclllYXJTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5leHRWaWV3ID0gQ2FsZW5kYXJWaWV3Lk1vbnRoO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFZpZXcgPSBDYWxlbmRhclZpZXcuWWVhcjtcblxuICBwcm90ZWN0ZWQgcHJldmlvdXNNb250aChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIHN1Yk1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0TW9udGgoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBhZGRNb250aHModGhpcy5hY3RpdmVEYXRlLCAxKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmlvdXNTZWFzb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBzdWJNb250aHModGhpcy5hY3RpdmVEYXRlLCAzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dFNlYXNvbihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIGFkZE1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDMpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwcmV2aW91c1llYXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBzdWJNb250aHModGhpcy5hY3RpdmVEYXRlLCAxMikpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG5leHRZZWFyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgYWRkTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMTIpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3REYXRlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNEYXRlRGlzYWJsZWQodmFsdWUpKSByZXR1cm47XG5cbiAgICBjb25zdCBkYXRlID0gc2V0TW9udGgodGhpcy5hY3RpdmVEYXRlLCBnZXRNb250aCh2YWx1ZSkpO1xuICAgIHRoaXMuY2FsZW5kYXIuc2VsZWN0RGF0ZShkYXRlLCB7IHNraXBEYXRlcmFuZ2VVcGRhdGU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmNoYW5nZVZpZXcoKTtcbiAgfVxufVxuIiwiPHRhYmxlIGNsYXNzPVwib2R4LWNhbGVuZGFyX190YWJsZVwiIHJvbGU9XCJncmlkXCIgYXJpYS1kZXNjcmliZWRieT1cIm9keC1jYWxlbmRhclwiPlxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgPHRoIGNvbHNwYW49XCIzXCI+XG4gICAgICAgIDxvZHgtY2FsZW5kYXItaGVhZGVyXG4gICAgICAgICAgKHByZXZpb3VzKT1cInByZXZpb3VzWWVhcigkZXZlbnQpXCJcbiAgICAgICAgICBbY2FsZW5kYXJWaWV3XT1cImN1cnJlbnRWaWV3XCJcbiAgICAgICAgICBbYWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgICAgICAobmV4dCk9XCJuZXh0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgICAoY2hhbmdlVmlldyk9XCJjaGFuZ2VWaWV3KClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgYWN0aXZlRGF0ZSB8IG9keERhdGVMYWJlbDogY29uZmlnLnllYXJMYWJlbCB9fVxuICAgICAgICA8L29keC1jYWxlbmRhci1oZWFkZXI+XG4gICAgICA8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5XG4gICAgY2xhc3M9XCJvZHgtY2FsZW5kYXJfX2JvZHlcIlxuICAgIChrZXlkb3duLkFycm93TGVmdCk9XCJwcmV2aW91c01vbnRoKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93UmlnaHQpPVwibmV4dE1vbnRoKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93VXApPVwicHJldmlvdXNTZWFzb24oJGV2ZW50KVwiXG4gICAgKGtleWRvd24uQXJyb3dEb3duKT1cIm5leHRTZWFzb24oJGV2ZW50KVwiXG4gICAgKGtleWRvd24uUGFnZURvd24pPVwibmV4dFllYXIoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uUGFnZVVwKT1cInByZXZpb3VzWWVhcigkZXZlbnQpXCJcbiAgPlxuICAgIDx0ciBjbGFzcz1cIm9keC1jYWxlbmRhcl9fc2Vhc29uXCIgKm5nRm9yPVwibGV0IHNlYXNvbiBvZiBjYWxlbmRhclllYXIuc2Vhc29ucyQgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XG4gICAgICA8dGQgcm9sZT1cImdyaWRjZWxsXCIgKm5nRm9yPVwibGV0IG1vbnRoIG9mIHNlYXNvbjsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEYXRlRGlzYWJsZWQobW9udGgpXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsXT1cIm1vbnRoXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsQWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsQ2FsZW5kYXJWaWV3XT1cImN1cnJlbnRWaWV3XCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsU2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbFNlbGVjdGVkRGF0ZVJhbmdlXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZShtb250aClcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgbW9udGggfCBvZHhEYXRlTGFiZWw6IGNvbmZpZy5tb250aExhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
@@ -41,7 +41,7 @@ export let CalendarYearsComponent = class CalendarYearsComponent extends Calenda
41
41
  if (this.isDateDisabled(value))
42
42
  return;
43
43
  const date = setYear(this.activeDate, getYear(value));
44
- this.calendar.selectDate(date);
44
+ this.calendar.selectDate(date, { skipDaterangeUpdate: true });
45
45
  this.changeView();
46
46
  }
47
47
  scrollCurrentYearIntoView() {
@@ -53,13 +53,13 @@ export let CalendarYearsComponent = class CalendarYearsComponent extends Calenda
53
53
  }
54
54
  }
55
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarYearsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarYearsComponent, isStandalone: true, selector: "odx-calendar-years", providers: [CalendarYearsService], usesInheritance: true, ngImport: i0, template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\" *ngrxLet=\"calendar.activeDate$ as activeDate\">\n <thead aria-hidden=\"true\">\n <th></th>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousYear($event)\"\n (keydown.ArrowRight)=\"nextYear($event)\"\n (keydown.ArrowUp)=\"previousRow($event)\"\n (keydown.ArrowDown)=\"nextRow($event)\"\n >\n <tr class=\"odx-calendar__year-row\" *ngFor=\"let yearRow of calendarYears.years$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let year of yearRow; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(year)\"\n [odxCalendarCell]=\"year\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n (click)=\"selectDate(year)\"\n >\n {{ year | odxDateLabel: config.yearLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: i3.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "directive", type: CalendarCellDirective, selector: "[odxCalendarCell]", inputs: ["odxCalendarCell", "odxCalendarCellCalendarView", "odxCalendarCellActiveDate", "odxCalendarCellSelectedDate"] }, { kind: "pipe", type: DateLabelPipe, name: "odxDateLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CalendarYearsComponent, isStandalone: true, selector: "odx-calendar-years", providers: [CalendarYearsService], usesInheritance: true, ngImport: i0, template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\" *ngrxLet=\"calendar.activeDate$ as activeDate\">\n <thead aria-hidden=\"true\">\n <th></th>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousYear($event)\"\n (keydown.ArrowRight)=\"nextYear($event)\"\n (keydown.ArrowUp)=\"previousRow($event)\"\n (keydown.ArrowDown)=\"nextRow($event)\"\n >\n <tr class=\"odx-calendar__year-row\" *ngFor=\"let yearRow of calendarYears.years$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let year of yearRow; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(year)\"\n [odxCalendarCell]=\"year\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n [odxCalendarCellSelectedDateRange]=\"selectedDateRange\"\n (click)=\"selectDate(year)\"\n >\n {{ year | odxDateLabel: config.yearLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: i3.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "directive", type: CalendarCellDirective, selector: "[odxCalendarCell]", inputs: ["odxCalendarCell", "odxCalendarCellCalendarView", "odxCalendarCellActiveDate", "odxCalendarCellSelectedDate", "odxCalendarCellSelectedDateRange", "odxCalendarCellPreviewDate"] }, { kind: "pipe", type: DateLabelPipe, name: "odxDateLabel" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
57
57
  };
58
58
  CalendarYearsComponent = __decorate([
59
59
  CSSComponent('calendar-years')
60
60
  ], CalendarYearsComponent);
61
61
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CalendarYearsComponent, decorators: [{
62
62
  type: Component,
63
- args: [{ selector: 'odx-calendar-years', standalone: true, imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarYearsService], template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\" *ngrxLet=\"calendar.activeDate$ as activeDate\">\n <thead aria-hidden=\"true\">\n <th></th>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousYear($event)\"\n (keydown.ArrowRight)=\"nextYear($event)\"\n (keydown.ArrowUp)=\"previousRow($event)\"\n (keydown.ArrowDown)=\"nextRow($event)\"\n >\n <tr class=\"odx-calendar__year-row\" *ngFor=\"let yearRow of calendarYears.years$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let year of yearRow; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(year)\"\n [odxCalendarCell]=\"year\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"calendar.selectedDate$ | async\"\n (click)=\"selectDate(year)\"\n >\n {{ year | odxDateLabel: config.yearLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
63
+ args: [{ selector: 'odx-calendar-years', standalone: true, imports: [CoreModule, CalendarCellDirective, CalendarHeaderComponent, DateLabelPipe], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [CalendarYearsService], template: "<table class=\"odx-calendar__table\" role=\"grid\" aria-describedby=\"odx-calendar\" *ngrxLet=\"calendar.activeDate$ as activeDate\">\n <thead aria-hidden=\"true\">\n <th></th>\n </thead>\n\n <tbody\n class=\"odx-calendar__body\"\n (keydown.ArrowLeft)=\"previousYear($event)\"\n (keydown.ArrowRight)=\"nextYear($event)\"\n (keydown.ArrowUp)=\"previousRow($event)\"\n (keydown.ArrowDown)=\"nextRow($event)\"\n >\n <tr class=\"odx-calendar__year-row\" *ngFor=\"let yearRow of calendarYears.years$ | async; trackBy: trackByIndex\">\n <td role=\"gridcell\" *ngFor=\"let year of yearRow; trackBy: trackByIndex\">\n <button\n [disabled]=\"isDateDisabled(year)\"\n [odxCalendarCell]=\"year\"\n [odxCalendarCellActiveDate]=\"activeDate\"\n [odxCalendarCellCalendarView]=\"currentView\"\n [odxCalendarCellSelectedDate]=\"selectedDate\"\n [odxCalendarCellSelectedDateRange]=\"selectedDateRange\"\n (click)=\"selectDate(year)\"\n >\n {{ year | odxDateLabel: config.yearLabel }}\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n" }]
64
64
  }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyLXllYXJzL2NhbGVuZGFyLXllYXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci15ZWFycy9jYWxlbmRhci15ZWFycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQVl0RCxXQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUF1QixTQUFRLHFCQUFxQjtJQUExRDs7UUFDWSxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0MsYUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDN0IsZ0JBQVcsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO0tBeUNyRDtJQXZDUSxlQUFlO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFUyxZQUFZLENBQUMsS0FBWTtRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVTLFFBQVEsQ0FBQyxLQUFZO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRVMsV0FBVyxDQUFDLEtBQVk7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRVMsT0FBTyxDQUFDLEtBQVk7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQVc7UUFDOUIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFdkMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNuRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRWxGLE1BQU0sT0FBTyxHQUFHLFlBQVksSUFBSSxXQUFXLENBQUM7UUFFNUMsSUFBSSxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNqRCxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7K0dBN0NVLHNCQUFzQjttR0FBdEIsc0JBQXNCLGlFQUZ0QixDQUFDLG9CQUFvQixDQUFDLGlEQ3BCbkMsNmtDQTRCQSwyQ0RaWSxVQUFVLG1hQUFFLHFCQUFxQixpTEFBMkIsYUFBYTs7QUFNeEUsc0JBQXNCO0lBVmxDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQztHQVVsQixzQkFBc0IsQ0E4Q2xDOzRGQTlDWSxzQkFBc0I7a0JBVGxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLENBQUMsbUJBRW5FLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGRlZmVyRm4sIGlzRnVuY3Rpb24gfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgYWRkTW9udGhzLCBnZXRZZWFyLCBzZXRZZWFyLCBzdWJNb250aHMgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDYWxlbmRhckNlbGxEaXJlY3RpdmUsIENhbGVuZGFyVmlld0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJWaWV3IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IERhdGVMYWJlbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItaGVhZGVyJztcblxuQENTU0NvbXBvbmVudCgnY2FsZW5kYXIteWVhcnMnKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2R4LWNhbGVuZGFyLXllYXJzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIENhbGVuZGFyQ2VsbERpcmVjdGl2ZSwgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQsIERhdGVMYWJlbFBpcGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIteWVhcnMuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJZZWFyc1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclllYXJzQ29tcG9uZW50IGV4dGVuZHMgQ2FsZW5kYXJWaWV3RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxlbmRhclllYXJzID0gaW5qZWN0KENhbGVuZGFyWWVhcnNTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG5leHRWaWV3ID0gQ2FsZW5kYXJWaWV3LlllYXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW50VmlldyA9IENhbGVuZGFyVmlldy5ZZWFycztcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5zY3JvbGxDdXJyZW50WWVhckludG9WaWV3KCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXZpb3VzWWVhcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIHN1Yk1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEyKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dFllYXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBhZGRNb250aHModGhpcy5hY3RpdmVEYXRlLCAxMikpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXZpb3VzUm93KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgc3ViTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMTIgKiAzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbmV4dFJvdyhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIGFkZE1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEyICogMykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdERhdGUodmFsdWU6IERhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0RhdGVEaXNhYmxlZCh2YWx1ZSkpIHJldHVybjtcblxuICAgIGNvbnN0IGRhdGUgPSBzZXRZZWFyKHRoaXMuYWN0aXZlRGF0ZSwgZ2V0WWVhcih2YWx1ZSkpO1xuICAgIHRoaXMuY2FsZW5kYXIuc2VsZWN0RGF0ZShkYXRlKTtcblxuICAgIHRoaXMuY2hhbmdlVmlldygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxDdXJyZW50WWVhckludG9WaWV3KCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkWWVhciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm9keC1jYWxlbmRhci1jZWxsLmlzLXNlbGVjdGVkJyk7XG4gICAgY29uc3QgY3VycmVudFllYXIgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vZHgtY2FsZW5kYXItY2VsbC0taXMtY3VycmVudCcpO1xuXG4gICAgY29uc3QgZWxlbWVudCA9IHNlbGVjdGVkWWVhciB8fCBjdXJyZW50WWVhcjtcblxuICAgIGlmIChlbGVtZW50ICYmIGlzRnVuY3Rpb24oZWxlbWVudC5zY3JvbGxJbnRvVmlldykpIHtcbiAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ2NlbnRlcicsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjx0YWJsZSBjbGFzcz1cIm9keC1jYWxlbmRhcl9fdGFibGVcIiByb2xlPVwiZ3JpZFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJvZHgtY2FsZW5kYXJcIiAqbmdyeExldD1cImNhbGVuZGFyLmFjdGl2ZURhdGUkIGFzIGFjdGl2ZURhdGVcIj5cbiAgPHRoZWFkIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIDx0aD48L3RoPlxuICA8L3RoZWFkPlxuXG4gIDx0Ym9keVxuICAgIGNsYXNzPVwib2R4LWNhbGVuZGFyX19ib2R5XCJcbiAgICAoa2V5ZG93bi5BcnJvd0xlZnQpPVwicHJldmlvdXNZZWFyKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93UmlnaHQpPVwibmV4dFllYXIoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uQXJyb3dVcCk9XCJwcmV2aW91c1JvdygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5BcnJvd0Rvd24pPVwibmV4dFJvdygkZXZlbnQpXCJcbiAgPlxuICAgIDx0ciBjbGFzcz1cIm9keC1jYWxlbmRhcl9feWVhci1yb3dcIiAqbmdGb3I9XCJsZXQgeWVhclJvdyBvZiBjYWxlbmRhclllYXJzLnllYXJzJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgIDx0ZCByb2xlPVwiZ3JpZGNlbGxcIiAqbmdGb3I9XCJsZXQgeWVhciBvZiB5ZWFyUm93OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0RhdGVEaXNhYmxlZCh5ZWFyKVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbF09XCJ5ZWFyXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsQWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsQ2FsZW5kYXJWaWV3XT1cImN1cnJlbnRWaWV3XCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsU2VsZWN0ZWREYXRlXT1cImNhbGVuZGFyLnNlbGVjdGVkRGF0ZSQgfCBhc3luY1wiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERhdGUoeWVhcilcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgeWVhciB8IG9keERhdGVMYWJlbDogY29uZmlnLnllYXJMYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIteWVhcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyLXllYXJzL2NhbGVuZGFyLXllYXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci15ZWFycy9jYWxlbmRhci15ZWFycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7OztBQVl0RCxXQUFNLHNCQUFzQixHQUE1QixNQUFNLHNCQUF1QixTQUFRLHFCQUFxQjtJQUExRDs7UUFDWSxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDN0MsYUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDN0IsZ0JBQVcsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO0tBeUNyRDtJQXZDUSxlQUFlO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFUyxZQUFZLENBQUMsS0FBWTtRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVTLFFBQVEsQ0FBQyxLQUFZO1FBQzdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRVMsV0FBVyxDQUFDLEtBQVk7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRVMsT0FBTyxDQUFDLEtBQVk7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQVc7UUFDOUIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU87UUFFdkMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUU5RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFFbEYsTUFBTSxPQUFPLEdBQUcsWUFBWSxJQUFJLFdBQVcsQ0FBQztRQUU1QyxJQUFJLE9BQU8sSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2pELE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQzsrR0E3Q1Usc0JBQXNCO21HQUF0QixzQkFBc0IsaUVBRnRCLENBQUMsb0JBQW9CLENBQUMsaURDcEJuQywrbkNBNkJBLDJDRGJZLFVBQVUsbWFBQUUscUJBQXFCLG1QQUEyQixhQUFhOztBQU14RSxzQkFBc0I7SUFWbEMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0dBVWxCLHNCQUFzQixDQThDbEM7NEZBOUNZLHNCQUFzQjtrQkFUbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQLENBQUMsVUFBVSxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLGFBQWEsQ0FBQyxtQkFFbkUsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZGVmZXJGbiwgaXNGdW5jdGlvbiB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBhZGRNb250aHMsIGdldFllYXIsIHNldFllYXIsIHN1Yk1vbnRocyB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IENhbGVuZGFyQ2VsbERpcmVjdGl2ZSwgQ2FsZW5kYXJWaWV3RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDYWxlbmRhclZpZXcgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRGF0ZUxhYmVsUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IENhbGVuZGFyWWVhcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYWxlbmRhci1oZWFkZXInO1xuXG5AQ1NTQ29tcG9uZW50KCdjYWxlbmRhci15ZWFycycpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtY2FsZW5kYXIteWVhcnMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgQ2FsZW5kYXJDZWxsRGlyZWN0aXZlLCBDYWxlbmRhckhlYWRlckNvbXBvbmVudCwgRGF0ZUxhYmVsUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci15ZWFycy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtDYWxlbmRhclllYXJzU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyWWVhcnNDb21wb25lbnQgZXh0ZW5kcyBDYWxlbmRhclZpZXdEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGVuZGFyWWVhcnMgPSBpbmplY3QoQ2FsZW5kYXJZZWFyc1NlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbmV4dFZpZXcgPSBDYWxlbmRhclZpZXcuWWVhcjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRWaWV3ID0gQ2FsZW5kYXJWaWV3LlllYXJzO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgZGVmZXJGbigoKSA9PiB0aGlzLnNjcm9sbEN1cnJlbnRZZWFySW50b1ZpZXcoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmlvdXNZZWFyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgc3ViTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMTIpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0WWVhcihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZURhdGUoZXZlbnQsIGFkZE1vbnRocyh0aGlzLmFjdGl2ZURhdGUsIDEyKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJldmlvdXNSb3coZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBY3RpdmVEYXRlKGV2ZW50LCBzdWJNb250aHModGhpcy5hY3RpdmVEYXRlLCAxMiAqIDMpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBuZXh0Um93KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQWN0aXZlRGF0ZShldmVudCwgYWRkTW9udGhzKHRoaXMuYWN0aXZlRGF0ZSwgMTIgKiAzKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0RGF0ZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGF0ZURpc2FibGVkKHZhbHVlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgZGF0ZSA9IHNldFllYXIodGhpcy5hY3RpdmVEYXRlLCBnZXRZZWFyKHZhbHVlKSk7XG4gICAgdGhpcy5jYWxlbmRhci5zZWxlY3REYXRlKGRhdGUsIHsgc2tpcERhdGVyYW5nZVVwZGF0ZTogdHJ1ZSB9KTtcblxuICAgIHRoaXMuY2hhbmdlVmlldygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxDdXJyZW50WWVhckludG9WaWV3KCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkWWVhciA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm9keC1jYWxlbmRhci1jZWxsLmlzLXNlbGVjdGVkJyk7XG4gICAgY29uc3QgY3VycmVudFllYXIgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5vZHgtY2FsZW5kYXItY2VsbC0taXMtY3VycmVudCcpO1xuXG4gICAgY29uc3QgZWxlbWVudCA9IHNlbGVjdGVkWWVhciB8fCBjdXJyZW50WWVhcjtcblxuICAgIGlmIChlbGVtZW50ICYmIGlzRnVuY3Rpb24oZWxlbWVudC5zY3JvbGxJbnRvVmlldykpIHtcbiAgICAgIGVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ2NlbnRlcicsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjx0YWJsZSBjbGFzcz1cIm9keC1jYWxlbmRhcl9fdGFibGVcIiByb2xlPVwiZ3JpZFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJvZHgtY2FsZW5kYXJcIiAqbmdyeExldD1cImNhbGVuZGFyLmFjdGl2ZURhdGUkIGFzIGFjdGl2ZURhdGVcIj5cbiAgPHRoZWFkIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIDx0aD48L3RoPlxuICA8L3RoZWFkPlxuXG4gIDx0Ym9keVxuICAgIGNsYXNzPVwib2R4LWNhbGVuZGFyX19ib2R5XCJcbiAgICAoa2V5ZG93bi5BcnJvd0xlZnQpPVwicHJldmlvdXNZZWFyKCRldmVudClcIlxuICAgIChrZXlkb3duLkFycm93UmlnaHQpPVwibmV4dFllYXIoJGV2ZW50KVwiXG4gICAgKGtleWRvd24uQXJyb3dVcCk9XCJwcmV2aW91c1JvdygkZXZlbnQpXCJcbiAgICAoa2V5ZG93bi5BcnJvd0Rvd24pPVwibmV4dFJvdygkZXZlbnQpXCJcbiAgPlxuICAgIDx0ciBjbGFzcz1cIm9keC1jYWxlbmRhcl9feWVhci1yb3dcIiAqbmdGb3I9XCJsZXQgeWVhclJvdyBvZiBjYWxlbmRhclllYXJzLnllYXJzJCB8IGFzeW5jOyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgIDx0ZCByb2xlPVwiZ3JpZGNlbGxcIiAqbmdGb3I9XCJsZXQgeWVhciBvZiB5ZWFyUm93OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0RhdGVEaXNhYmxlZCh5ZWFyKVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbF09XCJ5ZWFyXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsQWN0aXZlRGF0ZV09XCJhY3RpdmVEYXRlXCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsQ2FsZW5kYXJWaWV3XT1cImN1cnJlbnRWaWV3XCJcbiAgICAgICAgICBbb2R4Q2FsZW5kYXJDZWxsU2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXG4gICAgICAgICAgW29keENhbGVuZGFyQ2VsbFNlbGVjdGVkRGF0ZVJhbmdlXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RGF0ZSh5ZWFyKVwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyB5ZWFyIHwgb2R4RGF0ZUxhYmVsOiBjb25maWcueWVhckxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
@@ -0,0 +1,57 @@
1
+ import { EventEmitter, Injectable, inject } from '@angular/core';
2
+ import { deferFn } from '@odx/angular/utils';
3
+ import { BehaviorSubject, distinctUntilChanged, filter, map, shareReplay, withLatestFrom } from 'rxjs';
4
+ import { CalendarService } from './calendar.service';
5
+ import { DateRangeSelectionState } from './models';
6
+ import { validateDaterange } from './utils';
7
+ import * as i0 from "@angular/core";
8
+ export class DaterangeService {
9
+ constructor() {
10
+ this.calendar = inject(CalendarService);
11
+ this.dateRangeState$$ = new BehaviorSubject({
12
+ selectionState: DateRangeSelectionState.NothingSelected,
13
+ dateRange: { start: null, end: null },
14
+ });
15
+ this.outputDateRange$ = new EventEmitter();
16
+ this.dateRangeState$ = this.calendar.dateSelectEvents$.pipe(filter((newSelectedDate) => Boolean(newSelectedDate.date)), withLatestFrom(this.dateRangeState$$), map(([newSelectedDate, currentDateRangeState]) => {
17
+ const newDate = newSelectedDate.date;
18
+ const currentStart = currentDateRangeState.dateRange.start;
19
+ const newDateRangeState = {
20
+ selectionState: DateRangeSelectionState.NothingSelected,
21
+ dateRange: { start: null, end: null },
22
+ };
23
+ if (newSelectedDate.options.skipDaterangeUpdate) {
24
+ return currentDateRangeState;
25
+ }
26
+ if (currentStart &&
27
+ newDate &&
28
+ currentDateRangeState.selectionState === DateRangeSelectionState.StartSelected &&
29
+ validateDaterange(currentStart, newDate)) {
30
+ newDateRangeState.dateRange = { start: currentStart, end: newDate };
31
+ newDateRangeState.selectionState = DateRangeSelectionState.EndSelected;
32
+ }
33
+ else {
34
+ newDateRangeState.dateRange = { start: newDate, end: null };
35
+ newDateRangeState.selectionState = DateRangeSelectionState.StartSelected;
36
+ }
37
+ this.dateRangeState$$.next(newDateRangeState);
38
+ if (newSelectedDate.options?.emitOutside) {
39
+ this.outputDateRange$.next(newDateRangeState.dateRange);
40
+ }
41
+ return newDateRangeState;
42
+ }), distinctUntilChanged((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), shareReplay({ refCount: true }));
43
+ }
44
+ setDateRange(value) {
45
+ deferFn(() => {
46
+ this.calendar.selectDate(value.start);
47
+ this.calendar.selectDate(value.end);
48
+ this.calendar.setActiveDate(value.start);
49
+ });
50
+ }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
52
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangeService }); }
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DaterangeService, decorators: [{
55
+ type: Injectable
56
+ }] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXJhbmdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhci9zcmMvbGliL2RhdGVyYW5nZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBYSx1QkFBdUIsRUFBa0MsTUFBTSxVQUFVLENBQUM7QUFFOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUU1QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRW1CLGFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbkMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQWlCO1lBQ3RFLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxlQUFlO1lBQ3ZELFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtTQUN0QyxDQUFDLENBQUM7UUFFYSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUV4RCxvQkFBZSxHQUErQixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDaEcsTUFBTSxDQUFDLENBQUMsZUFBZ0MsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUMzRSxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLHFCQUFxQixDQUFDLEVBQUUsRUFBRTtZQUMvQyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ3JDLE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDM0QsTUFBTSxpQkFBaUIsR0FBbUI7Z0JBQ3hDLGNBQWMsRUFBRSx1QkFBdUIsQ0FBQyxlQUFlO2dCQUN2RCxTQUFTLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7YUFDdEMsQ0FBQztZQUVGLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtnQkFDL0MsT0FBTyxxQkFBcUIsQ0FBQzthQUM5QjtZQUVELElBQ0UsWUFBWTtnQkFDWixPQUFPO2dCQUNQLHFCQUFxQixDQUFDLGNBQWMsS0FBSyx1QkFBdUIsQ0FBQyxhQUFhO2dCQUM5RSxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLEVBQ3hDO2dCQUNBLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNwRSxpQkFBaUIsQ0FBQyxjQUFjLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxDQUFDO2FBQ3hFO2lCQUFNO2dCQUNMLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUM1RCxpQkFBaUIsQ0FBQyxjQUFjLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDO2FBQzFFO1lBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzlDLElBQUksZUFBZSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDekQ7WUFDRCxPQUFPLGlCQUFpQixDQUFDO1FBQzNCLENBQUMsQ0FBQyxFQUNGLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ25GLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUNoQyxDQUFDO0tBU0g7SUFQUSxZQUFZLENBQUMsS0FBb0I7UUFDdEMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0RFUsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVmZXJGbiB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UgfSBmcm9tICcuL2NhbGVuZGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlLCBEYXRlUmFuZ2VTZWxlY3Rpb25TdGF0ZSwgRGF0ZVNlbGVjdEV2ZW50LCBEYXRlVHlwZVJhbmdlIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlU3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRlLXJhbmdlJztcbmltcG9ydCB7IHZhbGlkYXRlRGF0ZXJhbmdlIH0gZnJvbSAnLi91dGlscyc7XG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGF0ZXJhbmdlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FsZW5kYXIgPSBpbmplY3QoQ2FsZW5kYXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGVSYW5nZVN0YXRlJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGVSYW5nZVN0YXRlPih7XG4gICAgc2VsZWN0aW9uU3RhdGU6IERhdGVSYW5nZVNlbGVjdGlvblN0YXRlLk5vdGhpbmdTZWxlY3RlZCxcbiAgICBkYXRlUmFuZ2U6IHsgc3RhcnQ6IG51bGwsIGVuZDogbnVsbCB9LFxuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0RGF0ZVJhbmdlJCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVJhbmdlIHwgbnVsbD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGF0ZVJhbmdlU3RhdGUkOiBPYnNlcnZhYmxlPERhdGVSYW5nZVN0YXRlPiA9IHRoaXMuY2FsZW5kYXIuZGF0ZVNlbGVjdEV2ZW50cyQucGlwZShcbiAgICBmaWx0ZXIoKG5ld1NlbGVjdGVkRGF0ZTogRGF0ZVNlbGVjdEV2ZW50KSA9PiBCb29sZWFuKG5ld1NlbGVjdGVkRGF0ZS5kYXRlKSksXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5kYXRlUmFuZ2VTdGF0ZSQkKSxcbiAgICBtYXAoKFtuZXdTZWxlY3RlZERhdGUsIGN1cnJlbnREYXRlUmFuZ2VTdGF0ZV0pID0+IHtcbiAgICAgIGNvbnN0IG5ld0RhdGUgPSBuZXdTZWxlY3RlZERhdGUuZGF0ZTtcbiAgICAgIGNvbnN0IGN1cnJlbnRTdGFydCA9IGN1cnJlbnREYXRlUmFuZ2VTdGF0ZS5kYXRlUmFuZ2Uuc3RhcnQ7XG4gICAgICBjb25zdCBuZXdEYXRlUmFuZ2VTdGF0ZTogRGF0ZVJhbmdlU3RhdGUgPSB7XG4gICAgICAgIHNlbGVjdGlvblN0YXRlOiBEYXRlUmFuZ2VTZWxlY3Rpb25TdGF0ZS5Ob3RoaW5nU2VsZWN0ZWQsXG4gICAgICAgIGRhdGVSYW5nZTogeyBzdGFydDogbnVsbCwgZW5kOiBudWxsIH0sXG4gICAgICB9O1xuXG4gICAgICBpZiAobmV3U2VsZWN0ZWREYXRlLm9wdGlvbnMuc2tpcERhdGVyYW5nZVVwZGF0ZSkge1xuICAgICAgICByZXR1cm4gY3VycmVudERhdGVSYW5nZVN0YXRlO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGN1cnJlbnRTdGFydCAmJlxuICAgICAgICBuZXdEYXRlICYmXG4gICAgICAgIGN1cnJlbnREYXRlUmFuZ2VTdGF0ZS5zZWxlY3Rpb25TdGF0ZSA9PT0gRGF0ZVJhbmdlU2VsZWN0aW9uU3RhdGUuU3RhcnRTZWxlY3RlZCAmJlxuICAgICAgICB2YWxpZGF0ZURhdGVyYW5nZShjdXJyZW50U3RhcnQsIG5ld0RhdGUpXG4gICAgICApIHtcbiAgICAgICAgbmV3RGF0ZVJhbmdlU3RhdGUuZGF0ZVJhbmdlID0geyBzdGFydDogY3VycmVudFN0YXJ0LCBlbmQ6IG5ld0RhdGUgfTtcbiAgICAgICAgbmV3RGF0ZVJhbmdlU3RhdGUuc2VsZWN0aW9uU3RhdGUgPSBEYXRlUmFuZ2VTZWxlY3Rpb25TdGF0ZS5FbmRTZWxlY3RlZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0RhdGVSYW5nZVN0YXRlLmRhdGVSYW5nZSA9IHsgc3RhcnQ6IG5ld0RhdGUsIGVuZDogbnVsbCB9O1xuICAgICAgICBuZXdEYXRlUmFuZ2VTdGF0ZS5zZWxlY3Rpb25TdGF0ZSA9IERhdGVSYW5nZVNlbGVjdGlvblN0YXRlLlN0YXJ0U2VsZWN0ZWQ7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0ZVJhbmdlU3RhdGUkJC5uZXh0KG5ld0RhdGVSYW5nZVN0YXRlKTtcbiAgICAgIGlmIChuZXdTZWxlY3RlZERhdGUub3B0aW9ucz8uZW1pdE91dHNpZGUpIHtcbiAgICAgICAgdGhpcy5vdXRwdXREYXRlUmFuZ2UkLm5leHQobmV3RGF0ZVJhbmdlU3RhdGUuZGF0ZVJhbmdlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdEYXRlUmFuZ2VTdGF0ZTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldiwgY3VycikgPT4gSlNPTi5zdHJpbmdpZnkocHJldikgPT09IEpTT04uc3RyaW5naWZ5KGN1cnIpKSxcbiAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlIH0pLFxuICApO1xuXG4gIHB1YmxpYyBzZXREYXRlUmFuZ2UodmFsdWU6IERhdGVUeXBlUmFuZ2UpIHtcbiAgICBkZWZlckZuKCgpID0+IHtcbiAgICAgIHRoaXMuY2FsZW5kYXIuc2VsZWN0RGF0ZSh2YWx1ZS5zdGFydCk7XG4gICAgICB0aGlzLmNhbGVuZGFyLnNlbGVjdERhdGUodmFsdWUuZW5kKTtcbiAgICAgIHRoaXMuY2FsZW5kYXIuc2V0QWN0aXZlRGF0ZSh2YWx1ZS5zdGFydCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==