@skyux/datetime 8.0.0-alpha.0 → 8.0.0-alpha.10

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 (46) hide show
  1. package/documentation.json +1212 -1153
  2. package/esm2020/index.mjs +3 -2
  3. package/esm2020/lib/modules/date-pipe/date-pipe.module.mjs +4 -4
  4. package/esm2020/lib/modules/date-pipe/date.pipe.mjs +3 -3
  5. package/esm2020/lib/modules/date-pipe/fuzzy-date.pipe.mjs +3 -3
  6. package/esm2020/lib/modules/date-range-picker/date-range-picker-end-date-resource-key.pipe.mjs +3 -3
  7. package/esm2020/lib/modules/date-range-picker/date-range-picker-start-date-resource-key.pipe.mjs +3 -3
  8. package/esm2020/lib/modules/date-range-picker/date-range-picker.component.mjs +71 -71
  9. package/esm2020/lib/modules/date-range-picker/date-range-picker.module.mjs +4 -4
  10. package/esm2020/lib/modules/date-range-picker/date-range.service.mjs +3 -3
  11. package/esm2020/lib/modules/datepicker/datepicker-adapter.service.mjs +3 -3
  12. package/esm2020/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +4 -4
  13. package/esm2020/lib/modules/datepicker/datepicker-calendar.component.mjs +11 -11
  14. package/esm2020/lib/modules/datepicker/datepicker-config.service.mjs +3 -3
  15. package/esm2020/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +61 -61
  16. package/esm2020/lib/modules/datepicker/datepicker-input.directive.mjs +63 -63
  17. package/esm2020/lib/modules/datepicker/datepicker.component.mjs +62 -48
  18. package/esm2020/lib/modules/datepicker/datepicker.module.mjs +4 -4
  19. package/esm2020/lib/modules/datepicker/datepicker.service.mjs +3 -3
  20. package/esm2020/lib/modules/datepicker/daypicker-button.component.mjs +3 -3
  21. package/esm2020/lib/modules/datepicker/daypicker-cell.component.mjs +3 -3
  22. package/esm2020/lib/modules/datepicker/daypicker.component.mjs +10 -10
  23. package/esm2020/lib/modules/datepicker/fuzzy-date.service.mjs +3 -3
  24. package/esm2020/lib/modules/datepicker/monthpicker.component.mjs +3 -3
  25. package/esm2020/lib/modules/datepicker/yearpicker.component.mjs +3 -3
  26. package/esm2020/lib/modules/shared/sky-datetime-resources.module.mjs +4 -4
  27. package/esm2020/lib/modules/timepicker/timepicker-time-format-type.mjs +2 -0
  28. package/esm2020/lib/modules/timepicker/timepicker-time-output.mjs +2 -0
  29. package/esm2020/lib/modules/timepicker/timepicker.component.mjs +63 -49
  30. package/esm2020/lib/modules/timepicker/timepicker.directive.mjs +29 -29
  31. package/esm2020/lib/modules/timepicker/timepicker.module.mjs +4 -4
  32. package/fesm2015/skyux-datetime.mjs +422 -394
  33. package/fesm2015/skyux-datetime.mjs.map +1 -1
  34. package/fesm2020/skyux-datetime.mjs +423 -395
  35. package/fesm2020/skyux-datetime.mjs.map +1 -1
  36. package/index.d.ts +2 -1
  37. package/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.d.ts +1 -1
  38. package/lib/modules/date-range-picker/types/date-range-calculator-validate-function.d.ts +1 -1
  39. package/lib/modules/datepicker/datepicker-calendar-inner.component.d.ts +2 -2
  40. package/lib/modules/datepicker/datepicker.component.d.ts +3 -3
  41. package/lib/modules/timepicker/timepicker-time-format-type.d.ts +1 -0
  42. package/lib/modules/timepicker/timepicker.component.d.ts +7 -6
  43. package/lib/modules/timepicker/timepicker.directive.d.ts +3 -2
  44. package/package.json +13 -13
  45. package/esm2020/lib/modules/timepicker/timepicker.interface.mjs +0 -2
  46. /package/lib/modules/timepicker/{timepicker.interface.d.ts → timepicker-time-output.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
- var _SkyDatepickerComponent_instances, _SkyDatepickerComponent_affixer, _SkyDatepickerComponent_calendarUnsubscribe, _SkyDatepickerComponent_customDatesSubscription, _SkyDatepickerComponent_ngUnsubscribe, _SkyDatepickerComponent_overlay, _SkyDatepickerComponent_overlayKeydownListener, _SkyDatepickerComponent__calendarRef, _SkyDatepickerComponent__disabled, _SkyDatepickerComponent__selectedDate, _SkyDatepickerComponent_affixService, _SkyDatepickerComponent_changeDetector, _SkyDatepickerComponent_coreAdapter, _SkyDatepickerComponent_overlayService, _SkyDatepickerComponent_closePicker, _SkyDatepickerComponent_openPicker, _SkyDatepickerComponent_createAffixer, _SkyDatepickerComponent_destroyAffixer, _SkyDatepickerComponent_createOverlay, _SkyDatepickerComponent_destroyOverlay, _SkyDatepickerComponent_addKeydownListener, _SkyDatepickerComponent_removePickerEventListeners, _SkyDatepickerComponent_cancelCustomDatesSubscription;
1
+ var _SkyDatepickerComponent_instances, _SkyDatepickerComponent_affixer, _SkyDatepickerComponent_calendarUnsubscribe, _SkyDatepickerComponent_customDatesSubscription, _SkyDatepickerComponent_ngUnsubscribe, _SkyDatepickerComponent_overlay, _SkyDatepickerComponent_overlayKeydownListener, _SkyDatepickerComponent__calendarRef, _SkyDatepickerComponent__disabled, _SkyDatepickerComponent__selectedDate, _SkyDatepickerComponent_affixService, _SkyDatepickerComponent_changeDetector, _SkyDatepickerComponent_coreAdapter, _SkyDatepickerComponent_overlayService, _SkyDatepickerComponent_zIndex, _SkyDatepickerComponent_closePicker, _SkyDatepickerComponent_openPicker, _SkyDatepickerComponent_createAffixer, _SkyDatepickerComponent_destroyAffixer, _SkyDatepickerComponent_createOverlay, _SkyDatepickerComponent_destroyOverlay, _SkyDatepickerComponent_addKeydownListener, _SkyDatepickerComponent_removePickerEventListeners, _SkyDatepickerComponent_cancelCustomDatesSubscription;
2
2
  import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Optional, Output, TemplateRef, ViewChild, } from '@angular/core';
4
- import { SkyAffixAutoFitContext, } from '@skyux/core';
3
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Inject, Input, Optional, Output, TemplateRef, ViewChild, } from '@angular/core';
4
+ import { SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, } from '@skyux/core';
5
5
  import { Subject, fromEvent } from 'rxjs';
6
6
  import { debounceTime, takeUntil } from 'rxjs/operators';
7
7
  import { SkyDatepickerCalendarComponent } from './datepicker-calendar.component';
@@ -19,7 +19,46 @@ let nextId = 0;
19
19
  * You must wrap this component around an input with the `skyDatepickerInput` directive.
20
20
  */
21
21
  export class SkyDatepickerComponent {
22
- constructor(affixService, changeDetector, coreAdapter, overlayService, inputBoxHostService, themeSvc) {
22
+ get disabled() {
23
+ return __classPrivateFieldGet(this, _SkyDatepickerComponent__disabled, "f");
24
+ }
25
+ set disabled(value) {
26
+ __classPrivateFieldSet(this, _SkyDatepickerComponent__disabled, value, "f");
27
+ __classPrivateFieldGet(this, _SkyDatepickerComponent_changeDetector, "f").markForCheck();
28
+ }
29
+ set selectedDate(value) {
30
+ __classPrivateFieldSet(this, _SkyDatepickerComponent__selectedDate, value, "f");
31
+ if (this.calendar) {
32
+ this.calendar.writeValue(value);
33
+ }
34
+ }
35
+ get selectedDate() {
36
+ return __classPrivateFieldGet(this, _SkyDatepickerComponent__selectedDate, "f");
37
+ }
38
+ set calendarRef(value) {
39
+ if (value) {
40
+ __classPrivateFieldSet(this, _SkyDatepickerComponent__calendarRef, value, "f");
41
+ // Wait for the calendar component to render before gauging dimensions.
42
+ setTimeout(() => {
43
+ if (this.calendarRef) {
44
+ this.calendar?.writeValue(this.selectedDate);
45
+ __classPrivateFieldGet(this, _SkyDatepickerComponent_instances, "m", _SkyDatepickerComponent_destroyAffixer).call(this);
46
+ __classPrivateFieldGet(this, _SkyDatepickerComponent_instances, "m", _SkyDatepickerComponent_createAffixer).call(this);
47
+ setTimeout(() => {
48
+ if (this.calendarRef) {
49
+ __classPrivateFieldGet(this, _SkyDatepickerComponent_coreAdapter, "f").getFocusableChildrenAndApplyFocus(this.calendarRef, '.sky-datepicker-calendar-inner', false);
50
+ this.isVisible = true;
51
+ __classPrivateFieldGet(this, _SkyDatepickerComponent_changeDetector, "f").markForCheck();
52
+ }
53
+ });
54
+ }
55
+ });
56
+ }
57
+ }
58
+ get calendarRef() {
59
+ return __classPrivateFieldGet(this, _SkyDatepickerComponent__calendarRef, "f");
60
+ }
61
+ constructor(affixService, changeDetector, coreAdapter, overlayService, inputBoxHostService, themeSvc, stackingContext) {
23
62
  this.inputBoxHostService = inputBoxHostService;
24
63
  _SkyDatepickerComponent_instances.add(this);
25
64
  /**
@@ -50,6 +89,7 @@ export class SkyDatepickerComponent {
50
89
  _SkyDatepickerComponent_changeDetector.set(this, void 0);
51
90
  _SkyDatepickerComponent_coreAdapter.set(this, void 0);
52
91
  _SkyDatepickerComponent_overlayService.set(this, void 0);
92
+ _SkyDatepickerComponent_zIndex.set(this, void 0);
53
93
  __classPrivateFieldSet(this, _SkyDatepickerComponent_affixService, affixService, "f");
54
94
  __classPrivateFieldSet(this, _SkyDatepickerComponent_changeDetector, changeDetector, "f");
55
95
  __classPrivateFieldSet(this, _SkyDatepickerComponent_coreAdapter, coreAdapter, "f");
@@ -57,6 +97,7 @@ export class SkyDatepickerComponent {
57
97
  const uniqueId = nextId++;
58
98
  this.calendarId = `sky-datepicker-calendar-${uniqueId}`;
59
99
  this.triggerButtonId = `sky-datepicker-button-${uniqueId}`;
100
+ __classPrivateFieldSet(this, _SkyDatepickerComponent_zIndex, stackingContext?.zIndex, "f");
60
101
  // Update icons when theme changes.
61
102
  themeSvc?.settingsChange
62
103
  .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDatepickerComponent_ngUnsubscribe, "f")))
@@ -64,45 +105,6 @@ export class SkyDatepickerComponent {
64
105
  __classPrivateFieldGet(this, _SkyDatepickerComponent_changeDetector, "f").markForCheck();
65
106
  });
66
107
  }
67
- get disabled() {
68
- return __classPrivateFieldGet(this, _SkyDatepickerComponent__disabled, "f");
69
- }
70
- set disabled(value) {
71
- __classPrivateFieldSet(this, _SkyDatepickerComponent__disabled, value, "f");
72
- __classPrivateFieldGet(this, _SkyDatepickerComponent_changeDetector, "f").markForCheck();
73
- }
74
- set selectedDate(value) {
75
- __classPrivateFieldSet(this, _SkyDatepickerComponent__selectedDate, value, "f");
76
- if (this.calendar) {
77
- this.calendar.writeValue(value);
78
- }
79
- }
80
- get selectedDate() {
81
- return __classPrivateFieldGet(this, _SkyDatepickerComponent__selectedDate, "f");
82
- }
83
- set calendarRef(value) {
84
- if (value) {
85
- __classPrivateFieldSet(this, _SkyDatepickerComponent__calendarRef, value, "f");
86
- // Wait for the calendar component to render before gauging dimensions.
87
- setTimeout(() => {
88
- if (this.calendarRef) {
89
- this.calendar?.writeValue(this.selectedDate);
90
- __classPrivateFieldGet(this, _SkyDatepickerComponent_instances, "m", _SkyDatepickerComponent_destroyAffixer).call(this);
91
- __classPrivateFieldGet(this, _SkyDatepickerComponent_instances, "m", _SkyDatepickerComponent_createAffixer).call(this);
92
- setTimeout(() => {
93
- if (this.calendarRef) {
94
- __classPrivateFieldGet(this, _SkyDatepickerComponent_coreAdapter, "f").getFocusableChildrenAndApplyFocus(this.calendarRef, '.sky-datepicker-calendar-inner', false);
95
- this.isVisible = true;
96
- __classPrivateFieldGet(this, _SkyDatepickerComponent_changeDetector, "f").markForCheck();
97
- }
98
- });
99
- }
100
- });
101
- }
102
- }
103
- get calendarRef() {
104
- return __classPrivateFieldGet(this, _SkyDatepickerComponent__calendarRef, "f");
105
- }
106
108
  ngOnInit() {
107
109
  if (this.inputBoxHostService && this.inputTemplateRef) {
108
110
  this.inputBoxHostService.populate({
@@ -174,7 +176,7 @@ export class SkyDatepickerComponent {
174
176
  }
175
177
  }
176
178
  }
177
- _SkyDatepickerComponent_affixer = new WeakMap(), _SkyDatepickerComponent_calendarUnsubscribe = new WeakMap(), _SkyDatepickerComponent_customDatesSubscription = new WeakMap(), _SkyDatepickerComponent_ngUnsubscribe = new WeakMap(), _SkyDatepickerComponent_overlay = new WeakMap(), _SkyDatepickerComponent_overlayKeydownListener = new WeakMap(), _SkyDatepickerComponent__calendarRef = new WeakMap(), _SkyDatepickerComponent__disabled = new WeakMap(), _SkyDatepickerComponent__selectedDate = new WeakMap(), _SkyDatepickerComponent_affixService = new WeakMap(), _SkyDatepickerComponent_changeDetector = new WeakMap(), _SkyDatepickerComponent_coreAdapter = new WeakMap(), _SkyDatepickerComponent_overlayService = new WeakMap(), _SkyDatepickerComponent_instances = new WeakSet(), _SkyDatepickerComponent_closePicker = function _SkyDatepickerComponent_closePicker() {
179
+ _SkyDatepickerComponent_affixer = new WeakMap(), _SkyDatepickerComponent_calendarUnsubscribe = new WeakMap(), _SkyDatepickerComponent_customDatesSubscription = new WeakMap(), _SkyDatepickerComponent_ngUnsubscribe = new WeakMap(), _SkyDatepickerComponent_overlay = new WeakMap(), _SkyDatepickerComponent_overlayKeydownListener = new WeakMap(), _SkyDatepickerComponent__calendarRef = new WeakMap(), _SkyDatepickerComponent__disabled = new WeakMap(), _SkyDatepickerComponent__selectedDate = new WeakMap(), _SkyDatepickerComponent_affixService = new WeakMap(), _SkyDatepickerComponent_changeDetector = new WeakMap(), _SkyDatepickerComponent_coreAdapter = new WeakMap(), _SkyDatepickerComponent_overlayService = new WeakMap(), _SkyDatepickerComponent_zIndex = new WeakMap(), _SkyDatepickerComponent_instances = new WeakSet(), _SkyDatepickerComponent_closePicker = function _SkyDatepickerComponent_closePicker() {
178
180
  __classPrivateFieldGet(this, _SkyDatepickerComponent_instances, "m", _SkyDatepickerComponent_destroyAffixer).call(this);
179
181
  __classPrivateFieldGet(this, _SkyDatepickerComponent_instances, "m", _SkyDatepickerComponent_destroyOverlay).call(this);
180
182
  __classPrivateFieldGet(this, _SkyDatepickerComponent_instances, "m", _SkyDatepickerComponent_removePickerEventListeners).call(this);
@@ -220,6 +222,13 @@ _SkyDatepickerComponent_affixer = new WeakMap(), _SkyDatepickerComponent_calenda
220
222
  enableClose: false,
221
223
  enablePointerEvents: false,
222
224
  });
225
+ if (__classPrivateFieldGet(this, _SkyDatepickerComponent_zIndex, "f")) {
226
+ __classPrivateFieldGet(this, _SkyDatepickerComponent_zIndex, "f")
227
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDatepickerComponent_calendarUnsubscribe, "f")))
228
+ .subscribe((zIndex) => {
229
+ overlay.componentRef.instance.zIndex = zIndex.toString(10);
230
+ });
231
+ }
223
232
  overlay.backdropClick
224
233
  .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDatepickerComponent_calendarUnsubscribe, "f")))
225
234
  .subscribe(() => {
@@ -258,15 +267,20 @@ _SkyDatepickerComponent_affixer = new WeakMap(), _SkyDatepickerComponent_calenda
258
267
  __classPrivateFieldSet(this, _SkyDatepickerComponent_customDatesSubscription, undefined, "f");
259
268
  }
260
269
  };
261
- SkyDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDatepickerComponent, deps: [{ token: i1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i1.SkyOverlayService }, { token: i2.SkyInputBoxHostService, optional: true }, { token: i3.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
262
- SkyDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: { pickerClass: "pickerClass" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: SkyDatepickerCalendarComponent, descendants: true }, { propertyName: "calendarRef", first: true, predicate: ["calendarRef"], descendants: true, read: ElementRef }, { propertyName: "calendarTemplateRef", first: true, predicate: ["calendarTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-datepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n 'skyux_datepicker_trigger_button_label' | skyLibResources\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"'skyux_datepicker_trigger_button_label' | skyLibResources\"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"calendar\" size=\"lg\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"calendar\"\n size=\"lg\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n #calendarRef\n >\n <sky-datepicker-calendar\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n </sky-datepicker-calendar>\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container{position:fixed;border-radius:5px}.sky-datepicker-hidden{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i3.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "component", type: i6.SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: ["customDates", "isDaypickerWaiting", "minDate", "maxDate", "selectedDate", "startingDay"], outputs: ["calendarDateRangeChange", "calendarModeChange", "selectedDateChange"] }, { kind: "pipe", type: i7.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDatepickerComponent, decorators: [{
270
+ SkyDatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatepickerComponent, deps: [{ token: i1.SkyAffixService }, { token: i0.ChangeDetectorRef }, { token: i1.SkyCoreAdapterService }, { token: i1.SkyOverlayService }, { token: i2.SkyInputBoxHostService, optional: true }, { token: i3.SkyThemeService, optional: true }, { token: SKY_STACKING_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
271
+ SkyDatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyDatepickerComponent, selector: "sky-datepicker", inputs: { pickerClass: "pickerClass" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange" }, viewQueries: [{ propertyName: "calendar", first: true, predicate: SkyDatepickerCalendarComponent, descendants: true }, { propertyName: "calendarRef", first: true, predicate: ["calendarRef"], descendants: true, read: ElementRef }, { propertyName: "calendarTemplateRef", first: true, predicate: ["calendarTemplateRef"], descendants: true, read: TemplateRef }, { propertyName: "triggerButtonRef", first: true, predicate: ["triggerButtonRef"], descendants: true, read: ElementRef }, { propertyName: "inputTemplateRef", first: true, predicate: ["inputTemplateRef"], descendants: true, read: TemplateRef, static: true }, { propertyName: "triggerButtonTemplateRef", first: true, predicate: ["triggerButtonTemplateRef"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"sky-datepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n 'skyux_datepicker_trigger_button_label' | skyLibResources\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"'skyux_datepicker_trigger_button_label' | skyLibResources\"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"calendar\" size=\"lg\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"calendar\"\n size=\"lg\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n #calendarRef\n >\n <sky-datepicker-calendar\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n </sky-datepicker-calendar>\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container{position:fixed;border-radius:5px}.sky-datepicker-hidden{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i3.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "component", type: i6.SkyDatepickerCalendarComponent, selector: "sky-datepicker-calendar", inputs: ["customDates", "isDaypickerWaiting", "minDate", "maxDate", "selectedDate", "startingDay"], outputs: ["calendarDateRangeChange", "calendarModeChange", "selectedDateChange"] }, { kind: "pipe", type: i7.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatepickerComponent, decorators: [{
264
273
  type: Component,
265
274
  args: [{ selector: 'sky-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"sky-datepicker\">\n <ng-container *ngIf=\"!inputBoxHostService\">\n <div class=\"sky-input-group\">\n <ng-container *ngTemplateOutlet=\"inputTemplateRef\"></ng-container>\n <ng-container *ngTemplateOutlet=\"triggerButtonTemplateRef\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #inputTemplateRef>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #triggerButtonTemplateRef>\n <div class=\"sky-input-group-btn\">\n <button\n aria-haspopup=\"dialog\"\n class=\"sky-btn sky-btn-default sky-input-group-datepicker-btn\"\n type=\"button\"\n [attr.aria-controls]=\"isOpen ? calendarId : null\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-label]=\"\n 'skyux_datepicker_trigger_button_label' | skyLibResources\n \"\n [attr.id]=\"triggerButtonId\"\n [attr.title]=\"'skyux_datepicker_trigger_button_label' | skyLibResources\"\n [disabled]=\"disabled\"\n (click)=\"onTriggerButtonClick()\"\n #triggerButtonRef\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"calendar\" size=\"lg\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"calendar\"\n size=\"lg\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n</ng-template>\n\n<ng-template #calendarTemplateRef>\n <div\n class=\"sky-datepicker-calendar-container sky-shadow sky-elevation-4\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"triggerButtonId\"\n [attr.id]=\"calendarId\"\n [class.sky-datepicker-hidden]=\"!isVisible\"\n #calendarRef\n >\n <sky-datepicker-calendar\n [customDates]=\"customDates\"\n [isDaypickerWaiting]=\"isDaypickerWaiting\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [startingDay]=\"startingDay\"\n (calendarDateRangeChange)=\"onCalendarDateRangeChange($event)\"\n (calendarModeChange)=\"onCalendarModeChange()\"\n (selectedDateChange)=\"onSelectedDateChange($event)\"\n >\n </sky-datepicker-calendar>\n </div>\n</ng-template>\n", styles: [".sky-datepicker-calendar-container{position:fixed;border-radius:5px}.sky-datepicker-hidden{visibility:hidden}\n"] }]
266
275
  }], ctorParameters: function () { return [{ type: i1.SkyAffixService }, { type: i0.ChangeDetectorRef }, { type: i1.SkyCoreAdapterService }, { type: i1.SkyOverlayService }, { type: i2.SkyInputBoxHostService, decorators: [{
267
276
  type: Optional
268
277
  }] }, { type: i3.SkyThemeService, decorators: [{
269
278
  type: Optional
279
+ }] }, { type: undefined, decorators: [{
280
+ type: Optional
281
+ }, {
282
+ type: Inject,
283
+ args: [SKY_STACKING_CONTEXT]
270
284
  }] }]; }, propDecorators: { pickerClass: [{
271
285
  type: Input
272
286
  }], calendarDateRangeChange: [{
@@ -302,4 +316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
302
316
  static: true,
303
317
  }]
304
318
  }] } });
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsc0JBQXNCLEdBTXZCLE1BQU0sYUFBYSxDQUFDO0FBSXJCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7QUFHakYsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHNCQUFzQjtJQTZJakMsWUFDRSxZQUE2QixFQUM3QixjQUFpQyxFQUNqQyxXQUFrQyxFQUNsQyxjQUFpQyxFQUNkLG1CQUE0QyxFQUNuRCxRQUEwQjtRQURuQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXlCOztRQWpKakU7OztXQUdHO1FBRUksZ0JBQVcsR0FBdUIsRUFBRSxDQUFDO1FBc0I1Qzs7OztXQUlHO1FBRUksNEJBQXVCLEdBQzVCLElBQUksWUFBWSxFQUErQixDQUFD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Q0FBQztRQUM1Qyx1QkFBQSxJQUFJLG1EQUE0QixTQUFTLE1BQUEsQ0FBQztLQUMzQztBQUNILENBQUM7bUhBaldVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlNQXlEdEIsOEJBQThCLHdIQUlqQyxVQUFVLHFIQW9DVixXQUFXLCtHQUtYLFVBQVUsK0dBS1YsV0FBVyw2SUFNWCxXQUFXLDJDQzdKckIsZ2lFQStEQTsyRkRuQmEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFvSjVDLFFBQVE7OzBCQUNSLFFBQVE7NENBN0lKLFdBQVc7c0JBRGpCLEtBQUs7Z0JBNkJDLHVCQUF1QjtzQkFEN0IsTUFBTTtnQkF5QkEsUUFBUTtzQkFEZCxTQUFTO3VCQUFDLDhCQUE4QjtnQkFNOUIsV0FBVztzQkFIckIsU0FBUzt1QkFBQyxhQUFhLEVBQUU7d0JBQ3hCLElBQUksRUFBRSxVQUFVO3FCQUNqQjtnQkFxQ00sbUJBQW1CO3NCQUh6QixTQUFTO3VCQUFDLHFCQUFxQixFQUFFO3dCQUNoQyxJQUFJLEVBQUUsV0FBVztxQkFDbEI7Z0JBTU0sZ0JBQWdCO3NCQUh0QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFO3dCQUM3QixJQUFJLEVBQUUsVUFBVTtxQkFDakI7Z0JBT00sZ0JBQWdCO3NCQUp0QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFO3dCQUM3QixJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBT00sd0JBQXdCO3NCQUo5QixTQUFTO3VCQUFDLDBCQUEwQixFQUFFO3dCQUNyQyxJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5QWZmaXhBdXRvRml0Q29udGV4dCxcbiAgU2t5QWZmaXhTZXJ2aWNlLFxuICBTa3lBZmZpeGVyLFxuICBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gIFNreU92ZXJsYXlJbnN0YW5jZSxcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreUlucHV0Qm94SG9zdFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJDaGFuZ2UgfSBmcm9tICcuL2RhdGVwaWNrZXItY2FsZW5kYXItY2hhbmdlJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckN1c3RvbURhdGUgfSBmcm9tICcuL2RhdGVwaWNrZXItY3VzdG9tLWRhdGUnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBkYXRlcGlja2VyIGJ1dHRvbiBhbmQgY2FsZW5kYXIuXG4gKiBZb3UgbXVzdCB3cmFwIHRoaXMgY29tcG9uZW50IGFyb3VuZCBhbiBpbnB1dCB3aXRoIHRoZSBgc2t5RGF0ZXBpY2tlcklucHV0YCBkaXJlY3RpdmUuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAvKipcbiAgICogQWRkcyBhIGNsYXNzIHRvIHRoZSBkYXRlcGlja2VyLlxuICAgKiBAZGVmYXVsdCBcIlwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGlja2VyQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWREYXRlKHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX3NlbGVjdGVkRGF0ZSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmNhbGVuZGFyKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWREYXRlKCk6IERhdGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfc2VsZWN0ZWREYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHJhbmdlIG9mIGRpc3BsYXllZCBkYXRlcyBpbiB0aGUgY2FsZW5kYXIgY2hhbmdlcy4gUHJvdmlkZXMgdGhlXG4gICAqIGN1cnJlbnQgcmFuZ2Ugb2YgZGlzcGxheWVkIGRhdGVzIGFuZCBhIG11dGFibGUgYGN1c3RvbURhdGVgIHByb3BlcnR5IGNvbnN1bWVycyBjYW4gdXNlXG4gICAqIHRvIG1vZGlmeSBpbmRpdmlkdWFsIGRhdGVzIG9uIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UgPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8U2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlPigpO1xuXG4gIHB1YmxpYyBjYWxlbmRhcklkOiBzdHJpbmc7XG5cbiAgcHVibGljIGN1c3RvbURhdGVzOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZVtdIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBkYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIHB1YmxpYyBpc0RheXBpY2tlcldhaXRpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNPcGVuID0gZmFsc2U7XG5cbiAgcHVibGljIGlzVmlzaWJsZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBtYXhEYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBtaW5EYXRlOiBEYXRlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBzdGFydGluZ0RheTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB0cmlnZ2VyQnV0dG9uSWQ6IHN0cmluZztcblxuICBAVmlld0NoaWxkKFNreURhdGVwaWNrZXJDYWxlbmRhckNvbXBvbmVudClcbiAgcHVibGljIGNhbGVuZGFyOiBTa3lEYXRlcGlja2VyQ2FsZW5kYXJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXJSZWYnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgfSlcbiAgcHVibGljIHNldCBjYWxlbmRhclJlZih2YWx1ZTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jX2NhbGVuZGFyUmVmID0gdmFsdWU7XG5cbiAgICAgIC8vIFdhaXQgZm9yIHRoZSBjYWxlbmRhciBjb21wb25lbnQgdG8gcmVuZGVyIGJlZm9yZSBnYXVnaW5nIGRpbWVuc2lvbnMuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY2FsZW5kYXJSZWYpIHtcbiAgICAgICAgICB0aGlzLmNhbGVuZGFyPy53cml0ZVZhbHVlKHRoaXMuc2VsZWN0ZWREYXRlKTtcblxuICAgICAgICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG4gICAgICAgICAgdGhpcy4jY3JlYXRlQWZmaXhlcigpO1xuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5jYWxlbmRhclJlZikge1xuICAgICAgICAgICAgICB0aGlzLiNjb3JlQWRhcHRlci5nZXRGb2N1c2FibGVDaGlsZHJlbkFuZEFwcGx5Rm9jdXMoXG4gICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhclJlZixcbiAgICAgICAgICAgICAgICAnLnNreS1kYXRlcGlja2VyLWNhbGVuZGFyLWlubmVyJyxcbiAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FsZW5kYXJSZWYoKTogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19jYWxlbmRhclJlZjtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2NhbGVuZGFyVGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gIH0pXG4gIHB1YmxpYyBjYWxlbmRhclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyQnV0dG9uUmVmJywge1xuICAgIHJlYWQ6IEVsZW1lbnRSZWYsXG4gIH0pXG4gIHB1YmxpYyB0cmlnZ2VyQnV0dG9uUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0VGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgaW5wdXRUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndHJpZ2dlckJ1dHRvblRlbXBsYXRlUmVmJywge1xuICAgIHJlYWQ6IFRlbXBsYXRlUmVmLFxuICAgIHN0YXRpYzogdHJ1ZSxcbiAgfSlcbiAgcHVibGljIHRyaWdnZXJCdXR0b25UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgI2FmZml4ZXI6IFNreUFmZml4ZXIgfCB1bmRlZmluZWQ7XG5cbiAgI2NhbGVuZGFyVW5zdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNjdXN0b21EYXRlc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjb3ZlcmxheTogU2t5T3ZlcmxheUluc3RhbmNlIHwgdW5kZWZpbmVkO1xuXG4gICNvdmVybGF5S2V5ZG93bkxpc3RlbmVyOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgI19jYWxlbmRhclJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICAjX2Rpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgI19zZWxlY3RlZERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG5cbiAgI2FmZml4U2VydmljZTogU2t5QWZmaXhTZXJ2aWNlO1xuICAjY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmO1xuICAjY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI292ZXJsYXlTZXJ2aWNlOiBTa3lPdmVybGF5U2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhZmZpeFNlcnZpY2U6IFNreUFmZml4U2VydmljZSxcbiAgICBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBvdmVybGF5U2VydmljZTogU2t5T3ZlcmxheVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGlucHV0Qm94SG9zdFNlcnZpY2U/OiBTa3lJbnB1dEJveEhvc3RTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2FmZml4U2VydmljZSA9IGFmZml4U2VydmljZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyID0gY29yZUFkYXB0ZXI7XG4gICAgdGhpcy4jb3ZlcmxheVNlcnZpY2UgPSBvdmVybGF5U2VydmljZTtcbiAgICBjb25zdCB1bmlxdWVJZCA9IG5leHRJZCsrO1xuICAgIHRoaXMuY2FsZW5kYXJJZCA9IGBza3ktZGF0ZXBpY2tlci1jYWxlbmRhci0ke3VuaXF1ZUlkfWA7XG4gICAgdGhpcy50cmlnZ2VyQnV0dG9uSWQgPSBgc2t5LWRhdGVwaWNrZXItYnV0dG9uLSR7dW5pcXVlSWR9YDtcblxuICAgIC8vIFVwZGF0ZSBpY29ucyB3aGVuIHRoZW1lIGNoYW5nZXMuXG4gICAgdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dEJveEhvc3RTZXJ2aWNlICYmIHRoaXMuaW5wdXRUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5pbnB1dEJveEhvc3RTZXJ2aWNlLnBvcHVsYXRlKHtcbiAgICAgICAgaW5wdXRUZW1wbGF0ZTogdGhpcy5pbnB1dFRlbXBsYXRlUmVmLFxuICAgICAgICBidXR0b25zVGVtcGxhdGU6IHRoaXMudHJpZ2dlckJ1dHRvblRlbXBsYXRlUmVmLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZUNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNyZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG4gICAgdGhpcy4jZGVzdHJveU92ZXJsYXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbGVuZGFyTW9kZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAvLyBMZXQgdGhlIGNhbGVuZGFyIHBvcHVsYXRlIGluIHRoZSBET00gYmVmb3JlIHJlY2FsY3VsYXRpbmcgcGxhY2VtZW50LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy4jYWZmaXhlcj8ucmVhZmZpeCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWREYXRlQ2hhbmdlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIHRoaXMuI2Nsb3NlUGlja2VyKCk7XG4gIH1cblxuICBwdWJsaWMgb25UcmlnZ2VyQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLiNjbG9zZVBpY2tlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNvcGVuUGlja2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UoZXZlbnQ/OiBTa3lEYXRlcGlja2VyQ2FsZW5kYXJDaGFuZ2UpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy4jY2FuY2VsQ3VzdG9tRGF0ZXNTdWJzY3JpcHRpb24oKTtcblxuICAgICAgY29uc3QgYXJnczogU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlID0ge1xuICAgICAgICBzdGFydERhdGU6IGV2ZW50LnN0YXJ0RGF0ZSxcbiAgICAgICAgZW5kRGF0ZTogZXZlbnQuZW5kRGF0ZSxcbiAgICAgICAgY3VzdG9tRGF0ZXM6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZVJhbmdlQ2hhbmdlLmVtaXQoYXJncyk7XG4gICAgICAvLyBJZiBjb25zdW1lciBoYXMgYWRkZWQgYW4gb2JzZXJ2YWJsZSB0byB0aGUgYXJncywgd2F0Y2ggZm9yIGluY29taW5nIGN1c3RvbSBkYXRlcy5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoYXJncy5jdXN0b21EYXRlcykge1xuICAgICAgICB0aGlzLmlzRGF5cGlja2VyV2FpdGluZyA9IHRydWU7XG4gICAgICAgIC8vIEF2b2lkIGFuIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLiNjdXN0b21EYXRlc1N1YnNjcmlwdGlvbiA9IGFyZ3MuY3VzdG9tRGF0ZXNcbiAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjUwKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tRGF0ZXMgPSByZXN1bHQ7XG4gICAgICAgICAgICB0aGlzLmlzRGF5cGlja2VyV2FpdGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gaW4gY2hpbGQgY29tcG9uZW50cyB0byBzaG93IGNoYW5nZXMgaW4gdGhlIGNhbGVuZGFyLlxuICAgICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiBjb25zdW1lciByZXR1cm5zIGFuIHVuZGVmaW5lZCB2YWx1ZSBhZnRlciBjdXN0b20gZGF0ZXMgaGF2ZVxuICAgICAgICAvLyBhbHJlYWR5IGJlbiBlc3RhYmxpc2hlZCwgcmVtb3ZlIGN1c3RvbSBkYXRlcy5cbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tRGF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmN1c3RvbURhdGVzID0gdW5kZWZpbmVkO1xuICAgICAgICAgIC8vIEF2b2lkIGFuIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2Nsb3NlUGlja2VyKCkge1xuICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG4gICAgdGhpcy4jZGVzdHJveU92ZXJsYXkoKTtcbiAgICB0aGlzLiNyZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMudHJpZ2dlckJ1dHRvblJlZj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gIH1cblxuICAjb3BlblBpY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdGhpcy4jcmVtb3ZlUGlja2VyRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLiNkZXN0cm95T3ZlcmxheSgpO1xuICAgIHRoaXMuI2NyZWF0ZU92ZXJsYXkoKTtcblxuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNjcmVhdGVBZmZpeGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyUmVmICYmIHRoaXMudHJpZ2dlckJ1dHRvblJlZikge1xuICAgICAgY29uc3QgYWZmaXhlciA9IHRoaXMuI2FmZml4U2VydmljZS5jcmVhdGVBZmZpeGVyKHRoaXMuY2FsZW5kYXJSZWYpO1xuXG4gICAgICAvLyBIaWRlIGNhbGVuZGFyIHdoZW4gdHJpZ2dlciBidXR0b24gaXMgc2Nyb2xsZWQgb2ZmIHNjcmVlbi5cbiAgICAgIGFmZml4ZXIucGxhY2VtZW50Q2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNjYWxlbmRhclVuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBjaGFuZ2UucGxhY2VtZW50ICE9PSBudWxsO1xuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcblxuICAgICAgYWZmaXhlci5hZmZpeFRvKHRoaXMudHJpZ2dlckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIGF1dG9GaXRDb250ZXh0OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0LlZpZXdwb3J0LFxuICAgICAgICBlbmFibGVBdXRvRml0OiB0cnVlLFxuICAgICAgICBob3Jpem9udGFsQWxpZ25tZW50OiAncmlnaHQnLFxuICAgICAgICBpc1N0aWNreTogdHJ1ZSxcbiAgICAgICAgcGxhY2VtZW50OiAnYmVsb3cnLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuI2FmZml4ZXIgPSBhZmZpeGVyO1xuICAgIH1cbiAgfVxuXG4gICNkZXN0cm95QWZmaXhlcigpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy4jYWZmaXhlcikge1xuICAgICAgdGhpcy4jYWZmaXhlci5kZXN0cm95KCk7XG4gICAgICB0aGlzLiNhZmZpeGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gICNjcmVhdGVPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyVGVtcGxhdGVSZWYpIHtcbiAgICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLiNvdmVybGF5U2VydmljZS5jcmVhdGUoe1xuICAgICAgICB3cmFwcGVyQ2xhc3M6IHRoaXMucGlja2VyQ2xhc3MsXG4gICAgICAgIGVuYWJsZUNsb3NlOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlUG9pbnRlckV2ZW50czogZmFsc2UsXG4gICAgICB9KTtcblxuICAgICAgb3ZlcmxheS5iYWNrZHJvcENsaWNrXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNjYWxlbmRhclVuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuI2Nsb3NlUGlja2VyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgdGhpcy4jYWRkS2V5ZG93bkxpc3RlbmVyKCk7XG5cbiAgICAgIG92ZXJsYXkuYXR0YWNoVGVtcGxhdGUodGhpcy5jYWxlbmRhclRlbXBsYXRlUmVmKTtcblxuICAgICAgdGhpcy4jb3ZlcmxheSA9IG92ZXJsYXk7XG4gICAgfVxuICB9XG5cbiAgI2Rlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNvdmVybGF5KSB7XG4gICAgICB0aGlzLiNvdmVybGF5U2VydmljZS5jbG9zZSh0aGlzLiNvdmVybGF5KTtcbiAgICAgIHRoaXMuI292ZXJsYXkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2FkZEtleWRvd25MaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLiNvdmVybGF5S2V5ZG93bkxpc3RlbmVyID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KFxuICAgICAgd2luZG93LmRvY3VtZW50LFxuICAgICAgJ2tleWRvd24nXG4gICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gZXZlbnQua2V5Py50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoa2V5ID09PSAnZXNjYXBlJyAmJiB0aGlzLmlzT3Blbikge1xuICAgICAgICAgIHRoaXMuI2Nsb3NlUGlja2VyKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgI3JlbW92ZVBpY2tlckV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuI2NhbGVuZGFyVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI2NhbGVuZGFyVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNjYWxlbmRhclVuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLiNvdmVybGF5S2V5ZG93bkxpc3RlbmVyPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgI2NhbmNlbEN1c3RvbURhdGVzU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLiNjdXN0b21EYXRlc1N1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy4jY3VzdG9tRGF0ZXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuI2N1c3RvbURhdGVzU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNreS1kYXRlcGlja2VyXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5wdXRCb3hIb3N0U2VydmljZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbnB1dFRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHJpZ2dlckJ1dHRvblRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRUZW1wbGF0ZVJlZj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0cmlnZ2VyQnV0dG9uVGVtcGxhdGVSZWY+XG4gIDxkaXYgY2xhc3M9XCJza3ktaW5wdXQtZ3JvdXAtYnRuXCI+XG4gICAgPGJ1dHRvblxuICAgICAgYXJpYS1oYXNwb3B1cD1cImRpYWxvZ1wiXG4gICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1pbnB1dC1ncm91cC1kYXRlcGlja2VyLWJ0blwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiaXNPcGVuID8gY2FsZW5kYXJJZCA6IG51bGxcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpc09wZW5cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgJ3NreXV4X2RhdGVwaWNrZXJfdHJpZ2dlcl9idXR0b25fbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzXG4gICAgICBcIlxuICAgICAgW2F0dHIuaWRdPVwidHJpZ2dlckJ1dHRvbklkXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cIidza3l1eF9kYXRlcGlja2VyX3RyaWdnZXJfYnV0dG9uX2xhYmVsJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgKGNsaWNrKT1cIm9uVHJpZ2dlckJ1dHRvbkNsaWNrKClcIlxuICAgICAgI3RyaWdnZXJCdXR0b25SZWZcbiAgICA+XG4gICAgICA8c2t5LWljb24gKnNreVRoZW1lSWY9XCInZGVmYXVsdCdcIiBpY29uPVwiY2FsZW5kYXJcIiBzaXplPVwibGdcIj48L3NreS1pY29uPlxuICAgICAgPHNreS1pY29uXG4gICAgICAgICpza3lUaGVtZUlmPVwiJ21vZGVybidcIlxuICAgICAgICBpY29uPVwiY2FsZW5kYXJcIlxuICAgICAgICBzaXplPVwibGdcIlxuICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgID48L3NreS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2FsZW5kYXJUZW1wbGF0ZVJlZj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2FsZW5kYXItY29udGFpbmVyIHNreS1zaGFkb3cgc2t5LWVsZXZhdGlvbi00XCJcbiAgICByb2xlPVwiZGlhbG9nXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwidHJpZ2dlckJ1dHRvbklkXCJcbiAgICBbYXR0ci5pZF09XCJjYWxlbmRhcklkXCJcbiAgICBbY2xhc3Muc2t5LWRhdGVwaWNrZXItaGlkZGVuXT1cIiFpc1Zpc2libGVcIlxuICAgICNjYWxlbmRhclJlZlxuICA+XG4gICAgPHNreS1kYXRlcGlja2VyLWNhbGVuZGFyXG4gICAgICBbY3VzdG9tRGF0ZXNdPVwiY3VzdG9tRGF0ZXNcIlxuICAgICAgW2lzRGF5cGlja2VyV2FpdGluZ109XCJpc0RheXBpY2tlcldhaXRpbmdcIlxuICAgICAgW21heERhdGVdPVwibWF4RGF0ZVwiXG4gICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgIFtzdGFydGluZ0RheV09XCJzdGFydGluZ0RheVwiXG4gICAgICAoY2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UpPVwib25DYWxlbmRhckRhdGVSYW5nZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChjYWxlbmRhck1vZGVDaGFuZ2UpPVwib25DYWxlbmRhck1vZGVDaGFuZ2UoKVwiXG4gICAgICAoc2VsZWN0ZWREYXRlQ2hhbmdlKT1cIm9uU2VsZWN0ZWREYXRlQ2hhbmdlKCRldmVudClcIlxuICAgID5cbiAgICA8L3NreS1kYXRlcGlja2VyLWNhbGVuZGFyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0ZXRpbWUvc3JjL2xpYi9tb2R1bGVzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixzQkFBc0IsR0FPdkIsTUFBTSxhQUFhLENBQUM7QUFJckIsT0FBTyxFQUFjLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7OztBQUdqRixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFFZjs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLElBQVcsUUFBUTtRQUNqQixPQUFPLHVCQUFBLElBQUkseUNBQVcsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBMEI7UUFDNUMsdUJBQUEsSUFBSSxxQ0FBYyxLQUFLLE1BQUEsQ0FBQztRQUN4Qix1QkFBQSxJQUFJLDhDQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFF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Z0JBQWdCO3NCQUh0QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFO3dCQUM3QixJQUFJLEVBQUUsVUFBVTtxQkFDakI7Z0JBT00sZ0JBQWdCO3NCQUp0QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFO3dCQUM3QixJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2I7Z0JBT00sd0JBQXdCO3NCQUo5QixTQUFTO3VCQUFDLDBCQUEwQixFQUFFO3dCQUNyQyxJQUFJLEVBQUUsV0FBVzt3QkFDakIsTUFBTSxFQUFFLElBQUk7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfU1RBQ0tJTkdfQ09OVEVYVCxcbiAgU2t5QWZmaXhBdXRvRml0Q29udGV4dCxcbiAgU2t5QWZmaXhTZXJ2aWNlLFxuICBTa3lBZmZpeGVyLFxuICBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gIFNreU92ZXJsYXlJbnN0YW5jZSxcbiAgU2t5T3ZlcmxheVNlcnZpY2UsXG4gIFNreVN0YWNraW5nQ29udGV4dCxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SW5wdXRCb3hIb3N0U2VydmljZSB9IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lUaGVtZVNlcnZpY2UgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhckNoYW5nZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1jdXN0b20tZGF0ZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGRhdGVwaWNrZXIgYnV0dG9uIGFuZCBjYWxlbmRhci5cbiAqIFlvdSBtdXN0IHdyYXAgdGhpcyBjb21wb25lbnQgYXJvdW5kIGFuIGlucHV0IHdpdGggdGhlIGBza3lEYXRlcGlja2VySW5wdXRgIGRpcmVjdGl2ZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIC8qKlxuICAgKiBBZGRzIGEgY2xhc3MgdG8gdGhlIGRhdGVwaWNrZXIuXG4gICAqIEBkZWZhdWx0IFwiXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwaWNrZXJDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2Rpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19kaXNhYmxlZCA9IHZhbHVlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNldCBzZWxlY3RlZERhdGUodmFsdWU6IERhdGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfc2VsZWN0ZWREYXRlID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuY2FsZW5kYXIpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXIud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZERhdGUoKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19zZWxlY3RlZERhdGU7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgcmFuZ2Ugb2YgZGlzcGxheWVkIGRhdGVzIGluIHRoZSBjYWxlbmRhciBjaGFuZ2VzLiBQcm92aWRlcyB0aGVcbiAgICogY3VycmVudCByYW5nZSBvZiBkaXNwbGF5ZWQgZGF0ZXMgYW5kIGEgbXV0YWJsZSBgY3VzdG9tRGF0ZWAgcHJvcGVydHkgY29uc3VtZXJzIGNhbiB1c2VcbiAgICogdG8gbW9kaWZ5IGluZGl2aWR1YWwgZGF0ZXMgb24gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjYWxlbmRhckRhdGVSYW5nZUNoYW5nZSA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxTa3lEYXRlcGlja2VyQ2FsZW5kYXJDaGFuZ2U+KCk7XG5cbiAgcHVibGljIGNhbGVuZGFySWQ6IHN0cmluZztcblxuICBwdWJsaWMgY3VzdG9tRGF0ZXM6IFNreURhdGVwaWNrZXJDdXN0b21EYXRlW10gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGRhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgcHVibGljIGlzRGF5cGlja2VyV2FpdGluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc09wZW4gPSBmYWxzZTtcblxuICBwdWJsaWMgaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgcHVibGljIG1heERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIG1pbkRhdGU6IERhdGUgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHN0YXJ0aW5nRGF5OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIHRyaWdnZXJCdXR0b25JZDogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ29tcG9uZW50KVxuICBwdWJsaWMgY2FsZW5kYXI6IFNreURhdGVwaWNrZXJDYWxlbmRhckNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdjYWxlbmRhclJlZicsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KVxuICBwdWJsaWMgc2V0IGNhbGVuZGFyUmVmKHZhbHVlOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLiNfY2FsZW5kYXJSZWYgPSB2YWx1ZTtcblxuICAgICAgLy8gV2FpdCBmb3IgdGhlIGNhbGVuZGFyIGNvbXBvbmVudCB0byByZW5kZXIgYmVmb3JlIGdhdWdpbmcgZGltZW5zaW9ucy5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhclJlZikge1xuICAgICAgICAgIHRoaXMuY2FsZW5kYXI/LndyaXRlVmFsdWUodGhpcy5zZWxlY3RlZERhdGUpO1xuXG4gICAgICAgICAgdGhpcy4jZGVzdHJveUFmZml4ZXIoKTtcbiAgICAgICAgICB0aGlzLiNjcmVhdGVBZmZpeGVyKCk7XG5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNhbGVuZGFyUmVmKSB7XG4gICAgICAgICAgICAgIHRoaXMuI2NvcmVBZGFwdGVyLmdldEZvY3VzYWJsZUNoaWxkcmVuQW5kQXBwbHlGb2N1cyhcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyUmVmLFxuICAgICAgICAgICAgICAgICcuc2t5LWRhdGVwaWNrZXItY2FsZW5kYXItaW5uZXInLFxuICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjYWxlbmRhclJlZigpOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2NhbGVuZGFyUmVmO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnY2FsZW5kYXJUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgfSlcbiAgcHVibGljIGNhbGVuZGFyVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXJCdXR0b25SZWYnLCB7XG4gICAgcmVhZDogRWxlbWVudFJlZixcbiAgfSlcbiAgcHVibGljIHRyaWdnZXJCdXR0b25SZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRUZW1wbGF0ZVJlZicsIHtcbiAgICByZWFkOiBUZW1wbGF0ZVJlZixcbiAgICBzdGF0aWM6IHRydWUsXG4gIH0pXG4gIHB1YmxpYyBpbnB1dFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyQnV0dG9uVGVtcGxhdGVSZWYnLCB7XG4gICAgcmVhZDogVGVtcGxhdGVSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9KVxuICBwdWJsaWMgdHJpZ2dlckJ1dHRvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAjYWZmaXhlcjogU2t5QWZmaXhlciB8IHVuZGVmaW5lZDtcblxuICAjY2FsZW5kYXJVbnN1YnNjcmliZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI2N1c3RvbURhdGVzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICNvdmVybGF5OiBTa3lPdmVybGF5SW5zdGFuY2UgfCB1bmRlZmluZWQ7XG5cbiAgI292ZXJsYXlLZXlkb3duTGlzdGVuZXI6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcblxuICAjX2NhbGVuZGFyUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNfZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICAjX3NlbGVjdGVkRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICAjYWZmaXhTZXJ2aWNlOiBTa3lBZmZpeFNlcnZpY2U7XG4gICNjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICNjb3JlQWRhcHRlcjogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlO1xuICAjb3ZlcmxheVNlcnZpY2U6IFNreU92ZXJsYXlTZXJ2aWNlO1xuICAjekluZGV4OiBPYnNlcnZhYmxlPG51bWJlcj4gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWZmaXhTZXJ2aWNlOiBTa3lBZmZpeFNlcnZpY2UsXG4gICAgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGNvcmVBZGFwdGVyOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgb3ZlcmxheVNlcnZpY2U6IFNreU92ZXJsYXlTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBpbnB1dEJveEhvc3RTZXJ2aWNlPzogU2t5SW5wdXRCb3hIb3N0U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoU0tZX1NUQUNLSU5HX0NPTlRFWFQpXG4gICAgc3RhY2tpbmdDb250ZXh0PzogU2t5U3RhY2tpbmdDb250ZXh0XG4gICkge1xuICAgIHRoaXMuI2FmZml4U2VydmljZSA9IGFmZml4U2VydmljZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3RvciA9IGNoYW5nZURldGVjdG9yO1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyID0gY29yZUFkYXB0ZXI7XG4gICAgdGhpcy4jb3ZlcmxheVNlcnZpY2UgPSBvdmVybGF5U2VydmljZTtcbiAgICBjb25zdCB1bmlxdWVJZCA9IG5leHRJZCsrO1xuICAgIHRoaXMuY2FsZW5kYXJJZCA9IGBza3ktZGF0ZXBpY2tlci1jYWxlbmRhci0ke3VuaXF1ZUlkfWA7XG4gICAgdGhpcy50cmlnZ2VyQnV0dG9uSWQgPSBgc2t5LWRhdGVwaWNrZXItYnV0dG9uLSR7dW5pcXVlSWR9YDtcbiAgICB0aGlzLiN6SW5kZXggPSBzdGFja2luZ0NvbnRleHQ/LnpJbmRleDtcblxuICAgIC8vIFVwZGF0ZSBpY29ucyB3aGVuIHRoZW1lIGNoYW5nZXMuXG4gICAgdGhlbWVTdmM/LnNldHRpbmdzQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dEJveEhvc3RTZXJ2aWNlICYmIHRoaXMuaW5wdXRUZW1wbGF0ZVJlZikge1xuICAgICAgdGhpcy5pbnB1dEJveEhvc3RTZXJ2aWNlLnBvcHVsYXRlKHtcbiAgICAgICAgaW5wdXRUZW1wbGF0ZTogdGhpcy5pbnB1dFRlbXBsYXRlUmVmLFxuICAgICAgICBidXR0b25zVGVtcGxhdGU6IHRoaXMudHJpZ2dlckJ1dHRvblRlbXBsYXRlUmVmLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZUNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB0aGlzLiNyZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG4gICAgdGhpcy4jZGVzdHJveU92ZXJsYXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNhbGVuZGFyTW9kZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAvLyBMZXQgdGhlIGNhbGVuZGFyIHBvcHVsYXRlIGluIHRoZSBET00gYmVmb3JlIHJlY2FsY3VsYXRpbmcgcGxhY2VtZW50LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy4jYWZmaXhlcj8ucmVhZmZpeCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWREYXRlQ2hhbmdlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIHRoaXMuI2Nsb3NlUGlja2VyKCk7XG4gIH1cblxuICBwdWJsaWMgb25UcmlnZ2VyQnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLiNjbG9zZVBpY2tlcigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNvcGVuUGlja2VyKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UoZXZlbnQ/OiBTa3lEYXRlcGlja2VyQ2FsZW5kYXJDaGFuZ2UpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChldmVudCkge1xuICAgICAgdGhpcy4jY2FuY2VsQ3VzdG9tRGF0ZXNTdWJzY3JpcHRpb24oKTtcblxuICAgICAgY29uc3QgYXJnczogU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlID0ge1xuICAgICAgICBzdGFydERhdGU6IGV2ZW50LnN0YXJ0RGF0ZSxcbiAgICAgICAgZW5kRGF0ZTogZXZlbnQuZW5kRGF0ZSxcbiAgICAgICAgY3VzdG9tRGF0ZXM6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZVJhbmdlQ2hhbmdlLmVtaXQoYXJncyk7XG4gICAgICAvLyBJZiBjb25zdW1lciBoYXMgYWRkZWQgYW4gb2JzZXJ2YWJsZSB0byB0aGUgYXJncywgd2F0Y2ggZm9yIGluY29taW5nIGN1c3RvbSBkYXRlcy5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAoYXJncy5jdXN0b21EYXRlcykge1xuICAgICAgICB0aGlzLmlzRGF5cGlja2VyV2FpdGluZyA9IHRydWU7XG4gICAgICAgIC8vIEF2b2lkIGFuIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLiNjdXN0b21EYXRlc1N1YnNjcmlwdGlvbiA9IGFyZ3MuY3VzdG9tRGF0ZXNcbiAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjUwKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tRGF0ZXMgPSByZXN1bHQ7XG4gICAgICAgICAgICB0aGlzLmlzRGF5cGlja2VyV2FpdGluZyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBUcmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24gaW4gY2hpbGQgY29tcG9uZW50cyB0byBzaG93IGNoYW5nZXMgaW4gdGhlIGNhbGVuZGFyLlxuICAgICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiBjb25zdW1lciByZXR1cm5zIGFuIHVuZGVmaW5lZCB2YWx1ZSBhZnRlciBjdXN0b20gZGF0ZXMgaGF2ZVxuICAgICAgICAvLyBhbHJlYWR5IGJlbiBlc3RhYmxpc2hlZCwgcmVtb3ZlIGN1c3RvbSBkYXRlcy5cbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tRGF0ZXMpIHtcbiAgICAgICAgICB0aGlzLmN1c3RvbURhdGVzID0gdW5kZWZpbmVkO1xuICAgICAgICAgIC8vIEF2b2lkIGFuIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgICAgICAgdGhpcy4jY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2Nsb3NlUGlja2VyKCkge1xuICAgIHRoaXMuI2Rlc3Ryb3lBZmZpeGVyKCk7XG4gICAgdGhpcy4jZGVzdHJveU92ZXJsYXkoKTtcbiAgICB0aGlzLiNyZW1vdmVQaWNrZXJFdmVudExpc3RlbmVycygpO1xuICAgIHRoaXMudHJpZ2dlckJ1dHRvblJlZj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gIH1cblxuICAjb3BlblBpY2tlcigpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdGhpcy4jcmVtb3ZlUGlja2VyRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLiNkZXN0cm95T3ZlcmxheSgpO1xuICAgIHRoaXMuI2NyZWF0ZU92ZXJsYXkoKTtcblxuICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNjcmVhdGVBZmZpeGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyUmVmICYmIHRoaXMudHJpZ2dlckJ1dHRvblJlZikge1xuICAgICAgY29uc3QgYWZmaXhlciA9IHRoaXMuI2FmZml4U2VydmljZS5jcmVhdGVBZmZpeGVyKHRoaXMuY2FsZW5kYXJSZWYpO1xuXG4gICAgICAvLyBIaWRlIGNhbGVuZGFyIHdoZW4gdHJpZ2dlciBidXR0b24gaXMgc2Nyb2xsZWQgb2ZmIHNjcmVlbi5cbiAgICAgIGFmZml4ZXIucGxhY2VtZW50Q2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNjYWxlbmRhclVuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBjaGFuZ2UucGxhY2VtZW50ICE9PSBudWxsO1xuICAgICAgICAgIHRoaXMuI2NoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcblxuICAgICAgYWZmaXhlci5hZmZpeFRvKHRoaXMudHJpZ2dlckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIGF1dG9GaXRDb250ZXh0OiBTa3lBZmZpeEF1dG9GaXRDb250ZXh0LlZpZXdwb3J0LFxuICAgICAgICBlbmFibGVBdXRvRml0OiB0cnVlLFxuICAgICAgICBob3Jpem9udGFsQWxpZ25tZW50OiAncmlnaHQnLFxuICAgICAgICBpc1N0aWNreTogdHJ1ZSxcbiAgICAgICAgcGxhY2VtZW50OiAnYmVsb3cnLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuI2FmZml4ZXIgPSBhZmZpeGVyO1xuICAgIH1cbiAgfVxuXG4gICNkZXN0cm95QWZmaXhlcigpOiB2b2lkIHtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy4jYWZmaXhlcikge1xuICAgICAgdGhpcy4jYWZmaXhlci5kZXN0cm95KCk7XG4gICAgICB0aGlzLiNhZmZpeGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gICNjcmVhdGVPdmVybGF5KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyVGVtcGxhdGVSZWYpIHtcbiAgICAgIGNvbnN0IG92ZXJsYXkgPSB0aGlzLiNvdmVybGF5U2VydmljZS5jcmVhdGUoe1xuICAgICAgICB3cmFwcGVyQ2xhc3M6IHRoaXMucGlja2VyQ2xhc3MsXG4gICAgICAgIGVuYWJsZUNsb3NlOiBmYWxzZSxcbiAgICAgICAgZW5hYmxlUG9pbnRlckV2ZW50czogZmFsc2UsXG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuI3pJbmRleCkge1xuICAgICAgICB0aGlzLiN6SW5kZXhcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jY2FsZW5kYXJVbnN1YnNjcmliZSkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoekluZGV4KSA9PiB7XG4gICAgICAgICAgICBvdmVybGF5LmNvbXBvbmVudFJlZi5pbnN0YW5jZS56SW5kZXggPSB6SW5kZXgudG9TdHJpbmcoMTApO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBvdmVybGF5LmJhY2tkcm9wQ2xpY2tcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI2NhbGVuZGFyVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy4jY2xvc2VQaWNrZXIoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLiNhZGRLZXlkb3duTGlzdGVuZXIoKTtcblxuICAgICAgb3ZlcmxheS5hdHRhY2hUZW1wbGF0ZSh0aGlzLmNhbGVuZGFyVGVtcGxhdGVSZWYpO1xuXG4gICAgICB0aGlzLiNvdmVybGF5ID0gb3ZlcmxheTtcbiAgICB9XG4gIH1cblxuICAjZGVzdHJveU92ZXJsYXkoKTogdm9pZCB7XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI292ZXJsYXkpIHtcbiAgICAgIHRoaXMuI292ZXJsYXlTZXJ2aWNlLmNsb3NlKHRoaXMuI292ZXJsYXkpO1xuICAgICAgdGhpcy4jb3ZlcmxheSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjYWRkS2V5ZG93bkxpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMuI292ZXJsYXlLZXlkb3duTGlzdGVuZXIgPSBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oXG4gICAgICB3aW5kb3cuZG9jdW1lbnQsXG4gICAgICAna2V5ZG93bidcbiAgICApXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSBldmVudC5rZXk/LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChrZXkgPT09ICdlc2NhcGUnICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgdGhpcy4jY2xvc2VQaWNrZXIoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAjcmVtb3ZlUGlja2VyRXZlbnRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy4jY2FsZW5kYXJVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jY2FsZW5kYXJVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2NhbGVuZGFyVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHRoaXMuI292ZXJsYXlLZXlkb3duTGlzdGVuZXI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAjY2FuY2VsQ3VzdG9tRGF0ZXNTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2N1c3RvbURhdGVzU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLiNjdXN0b21EYXRlc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy4jY3VzdG9tRGF0ZXNTdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWRhdGVwaWNrZXJcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbnB1dEJveEhvc3RTZXJ2aWNlXCI+XG4gICAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ncm91cFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlucHV0VGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cmlnZ2VyQnV0dG9uVGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpbnB1dFRlbXBsYXRlUmVmPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RyaWdnZXJCdXR0b25UZW1wbGF0ZVJlZj5cbiAgPGRpdiBjbGFzcz1cInNreS1pbnB1dC1ncm91cC1idG5cIj5cbiAgICA8YnV0dG9uXG4gICAgICBhcmlhLWhhc3BvcHVwPVwiZGlhbG9nXCJcbiAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWlucHV0LWdyb3VwLWRhdGVwaWNrZXItYnRuXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpc09wZW4gPyBjYWxlbmRhcklkIDogbnVsbFwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzT3BlblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgICAnc2t5dXhfZGF0ZXBpY2tlcl90cmlnZ2VyX2J1dHRvbl9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXNcbiAgICAgIFwiXG4gICAgICBbYXR0ci5pZF09XCJ0cmlnZ2VyQnV0dG9uSWRcIlxuICAgICAgW2F0dHIudGl0bGVdPVwiJ3NreXV4X2RhdGVwaWNrZXJfdHJpZ2dlcl9idXR0b25fbGFiZWwnIHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwib25UcmlnZ2VyQnV0dG9uQ2xpY2soKVwiXG4gICAgICAjdHJpZ2dlckJ1dHRvblJlZlxuICAgID5cbiAgICAgIDxza3ktaWNvbiAqc2t5VGhlbWVJZj1cIidkZWZhdWx0J1wiIGljb249XCJjYWxlbmRhclwiIHNpemU9XCJsZ1wiPjwvc2t5LWljb24+XG4gICAgICA8c2t5LWljb25cbiAgICAgICAgKnNreVRoZW1lSWY9XCInbW9kZXJuJ1wiXG4gICAgICAgIGljb249XCJjYWxlbmRhclwiXG4gICAgICAgIHNpemU9XCJsZ1wiXG4gICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgPjwvc2t5LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjYWxlbmRhclRlbXBsYXRlUmVmPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jYWxlbmRhci1jb250YWluZXIgc2t5LXNoYWRvdyBza3ktZWxldmF0aW9uLTRcIlxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJ0cmlnZ2VyQnV0dG9uSWRcIlxuICAgIFthdHRyLmlkXT1cImNhbGVuZGFySWRcIlxuICAgIFtjbGFzcy5za3ktZGF0ZXBpY2tlci1oaWRkZW5dPVwiIWlzVmlzaWJsZVwiXG4gICAgI2NhbGVuZGFyUmVmXG4gID5cbiAgICA8c2t5LWRhdGVwaWNrZXItY2FsZW5kYXJcbiAgICAgIFtjdXN0b21EYXRlc109XCJjdXN0b21EYXRlc1wiXG4gICAgICBbaXNEYXlwaWNrZXJXYWl0aW5nXT1cImlzRGF5cGlja2VyV2FpdGluZ1wiXG4gICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcbiAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxuICAgICAgW3N0YXJ0aW5nRGF5XT1cInN0YXJ0aW5nRGF5XCJcbiAgICAgIChjYWxlbmRhckRhdGVSYW5nZUNoYW5nZSk9XCJvbkNhbGVuZGFyRGF0ZVJhbmdlQ2hhbmdlKCRldmVudClcIlxuICAgICAgKGNhbGVuZGFyTW9kZUNoYW5nZSk9XCJvbkNhbGVuZGFyTW9kZUNoYW5nZSgpXCJcbiAgICAgIChzZWxlY3RlZERhdGVDaGFuZ2UpPVwib25TZWxlY3RlZERhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvc2t5LWRhdGVwaWNrZXItY2FsZW5kYXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -21,8 +21,8 @@ import { SkyYearPickerComponent } from './yearpicker.component';
21
21
  import * as i0 from "@angular/core";
22
22
  export class SkyDatepickerModule {
23
23
  }
24
- SkyDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
- SkyDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.4", ngImport: i0, type: SkyDatepickerModule, declarations: [SkyDatepickerCalendarComponent,
24
+ SkyDatepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
+ SkyDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyDatepickerModule, declarations: [SkyDatepickerCalendarComponent,
26
26
  SkyDatepickerCalendarInnerComponent,
27
27
  SkyDayPickerComponent,
28
28
  SkyMonthPickerComponent,
@@ -44,7 +44,7 @@ SkyDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
44
44
  SkyDatepickerComponent,
45
45
  SkyDatepickerInputDirective,
46
46
  SkyFuzzyDatepickerInputDirective] });
47
- SkyDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDatepickerModule, providers: [SkyDatepickerService], imports: [CommonModule,
47
+ SkyDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatepickerModule, providers: [SkyDatepickerService], imports: [CommonModule,
48
48
  SkyI18nModule,
49
49
  FormsModule,
50
50
  SkyIconModule,
@@ -54,7 +54,7 @@ SkyDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
54
54
  SkyThemeModule,
55
55
  SkyPopoverModule,
56
56
  SkyWaitModule] });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDatepickerModule, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatepickerModule, decorators: [{
58
58
  type: NgModule,
59
59
  args: [{
60
60
  declarations: [
@@ -13,9 +13,9 @@ export class SkyDatepickerService {
13
13
  this.keyDatePopoverStream = new Subject();
14
14
  }
15
15
  }
16
- SkyDatepickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDatepickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- SkyDatepickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDatepickerService });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDatepickerService, decorators: [{
16
+ SkyDatepickerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatepickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
+ SkyDatepickerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatepickerService });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatepickerService, decorators: [{
19
19
  type: Injectable
20
20
  }] });
21
21
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSS9COztHQUVHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVFOzs7V0FHRztRQUNJLHlCQUFvQixHQUN6QixJQUFJLE9BQU8sRUFBaUMsQ0FBQztLQUNoRDs7aUhBUFksb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyRGF0ZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1kYXRlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreURhdGVwaWNrZXJTZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBrZXkgZGF0ZSBwb3BvdmVyIGlzIGN1cnJlbnRseSBkaXNwbGF5ZWQuXG4gICAqIFVzZWZ1bCBmb3IgY29tbXVuaWNhdGluZyBhY3Jvc3MgYWxsIGRheXBpY2tlciBzaWJsaW5ncyB3aGVuIGEgcG9wb3ZlciBpcyBkaXNwbGF5ZWQuXG4gICAqL1xuICBwdWJsaWMga2V5RGF0ZVBvcG92ZXJTdHJlYW06IFN1YmplY3Q8U2t5RGF0ZXBpY2tlckRhdGUgfCB1bmRlZmluZWQ+ID1cbiAgICBuZXcgU3ViamVjdDxTa3lEYXRlcGlja2VyRGF0ZSB8IHVuZGVmaW5lZD4oKTtcbn1cbiJdfQ==
@@ -10,9 +10,9 @@ export class SkyDayPickerButtonComponent {
10
10
  this.datepicker = datepicker;
11
11
  }
12
12
  }
13
- SkyDayPickerButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDayPickerButtonComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
14
- SkyDayPickerButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: { date: "date" }, ngImport: i0, template: "<button\n *ngIf=\"date\"\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n>\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n</button>\n", styles: [".sky-datepicker-btn-disabled{font-style:italic}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:5px;width:5px;background-color:#d93a3d;border-radius:50%;left:15px;top:22px}:host-context(.sky-theme-modern) .sky-datepicker-btn-key-date:before{left:12px}.sky-theme-modern .sky-datepicker-btn-key-date:before{left:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDayPickerButtonComponent, decorators: [{
13
+ SkyDayPickerButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDayPickerButtonComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
14
+ SkyDayPickerButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: { date: "date" }, ngImport: i0, template: "<button\n *ngIf=\"date\"\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n>\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n</button>\n", styles: [".sky-datepicker-btn-disabled{font-style:italic}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:5px;width:5px;background-color:#d93a3d;border-radius:50%;left:15px;top:22px}:host-context(.sky-theme-modern) .sky-datepicker-btn-key-date:before{left:12px}.sky-theme-modern .sky-datepicker-btn-key-date:before{left:12px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDayPickerButtonComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: 'sky-daypicker-button', template: "<button\n *ngIf=\"date\"\n class=\"sky-btn sky-btn-sm sky-btn-default sky-datepicker-btn-date\"\n tabindex=\"-1\"\n type=\"button\"\n [disabled]=\"date.disabled\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date),\n 'sky-datepicker-btn-disabled': date.disabled,\n 'sky-datepicker-btn-key-date': date.keyDate\n }\"\n (click)=\"datepicker.selectCalendar($event, date.date, true)\"\n>\n <span [ngClass]=\"{ 'sky-datepicker-secondary': date.secondary }\">\n {{ date.label }}\n </span>\n</button>\n", styles: [".sky-datepicker-btn-disabled{font-style:italic}.sky-datepicker-btn-key-date{position:relative}.sky-datepicker-btn-key-date:before{position:absolute;content:\"\";height:5px;width:5px;background-color:#d93a3d;border-radius:50%;left:15px;top:22px}:host-context(.sky-theme-modern) .sky-datepicker-btn-key-date:before{left:12px}.sky-theme-modern .sky-datepicker-btn-key-date:before{left:12px}\n"] }]
18
18
  }], ctorParameters: function () { return [{ type: i1.SkyDatepickerCalendarInnerComponent }]; }, propDecorators: { date: [{
@@ -113,9 +113,9 @@ _SkyDayPickerCellComponent_activeUid = new WeakMap(), _SkyDayPickerCellComponent
113
113
  }, 500);
114
114
  }
115
115
  };
116
- SkyDayPickerCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDayPickerCellComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }, { token: i2.SkyDatepickerService }], target: i0.ɵɵFactoryTarget.Component });
117
- SkyDayPickerCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.4", type: SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: { activeDateHasChanged: "activeDateHasChanged", date: "date" }, ngImport: i0, template: "<div\n *ngIf=\"hasTooltip\"\n class=\"sky-daypicker-cell\"\n [attr.aria-label]=\"getKeyDateLabel()\"\n [skyPopover]=\"dayInfoPopover\"\n skyPopoverPlacement=\"left\"\n [skyPopoverMessageStream]=\"popoverController\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n <sky-popover\n (popoverClosed)=\"onPopoverClosed()\"\n (popoverOpened)=\"onPopoverOpened()\"\n #dayInfoPopover\n >\n <div *ngFor=\"let text of date?.keyDateText\">\n {{ text }}\n </div>\n </sky-popover>\n</div>\n<div\n *ngIf=\"!hasTooltip\"\n class=\"sky-daypicker-cell\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n</div>\n\n<ng-template #daypickerButtonTemplateRef>\n <sky-daypicker-button [date]=\"date\"> </sky-daypicker-button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.λ6, selector: "sky-popover", inputs: ["alignment", "dismissOnBlur", "placement", "popoverTitle", "popoverType"], outputs: ["popoverClosed", "popoverOpened"] }, { kind: "directive", type: i4.λ7, selector: "[skyPopover]", inputs: ["skyPopover", "skyPopoverAlignment", "skyPopoverMessageStream", "skyPopoverPlacement", "skyPopoverTrigger"] }, { kind: "component", type: i5.SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: ["date"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: SkyDayPickerCellComponent, decorators: [{
116
+ SkyDayPickerCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDayPickerCellComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }, { token: i2.SkyDatepickerService }], target: i0.ɵɵFactoryTarget.Component });
117
+ SkyDayPickerCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: { activeDateHasChanged: "activeDateHasChanged", date: "date" }, ngImport: i0, template: "<div\n *ngIf=\"hasTooltip\"\n class=\"sky-daypicker-cell\"\n [attr.aria-label]=\"getKeyDateLabel()\"\n [skyPopover]=\"dayInfoPopover\"\n skyPopoverPlacement=\"left\"\n [skyPopoverMessageStream]=\"popoverController\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n <sky-popover\n (popoverClosed)=\"onPopoverClosed()\"\n (popoverOpened)=\"onPopoverOpened()\"\n #dayInfoPopover\n >\n <div *ngFor=\"let text of date?.keyDateText\">\n {{ text }}\n </div>\n </sky-popover>\n</div>\n<div\n *ngIf=\"!hasTooltip\"\n class=\"sky-daypicker-cell\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n</div>\n\n<ng-template #daypickerButtonTemplateRef>\n <sky-daypicker-button [date]=\"date\"> </sky-daypicker-button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.λ6, selector: "sky-popover", inputs: ["alignment", "dismissOnBlur", "placement", "popoverTitle", "popoverType"], outputs: ["popoverClosed", "popoverOpened"] }, { kind: "directive", type: i4.λ7, selector: "[skyPopover]", inputs: ["skyPopover", "skyPopoverAlignment", "skyPopoverMessageStream", "skyPopoverPlacement", "skyPopoverTrigger"] }, { kind: "component", type: i5.SkyDayPickerButtonComponent, selector: "sky-daypicker-button", inputs: ["date"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDayPickerCellComponent, decorators: [{
119
119
  type: Component,
120
120
  args: [{ selector: 'sky-daypicker-cell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"hasTooltip\"\n class=\"sky-daypicker-cell\"\n [attr.aria-label]=\"getKeyDateLabel()\"\n [skyPopover]=\"dayInfoPopover\"\n skyPopoverPlacement=\"left\"\n [skyPopoverMessageStream]=\"popoverController\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n <sky-popover\n (popoverClosed)=\"onPopoverClosed()\"\n (popoverOpened)=\"onPopoverOpened()\"\n #dayInfoPopover\n >\n <div *ngFor=\"let text of date?.keyDateText\">\n {{ text }}\n </div>\n </sky-popover>\n</div>\n<div\n *ngIf=\"!hasTooltip\"\n class=\"sky-daypicker-cell\"\n (mouseenter)=\"onDayMouseenter()\"\n (mouseleave)=\"onDayMouseleave()\"\n>\n <ng-container *ngTemplateOutlet=\"daypickerButtonTemplateRef\"></ng-container>\n</div>\n\n<ng-template #daypickerButtonTemplateRef>\n <sky-daypicker-button [date]=\"date\"> </sky-daypicker-button>\n</ng-template>\n" }]
121
121
  }], ctorParameters: function () { return [{ type: i1.SkyDatepickerCalendarInnerComponent }, { type: i2.SkyDatepickerService }]; }, propDecorators: { activeDateHasChanged: [{