@skyux/datetime 5.1.2 → 5.5.0-alpha.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.
- package/README.md +6 -4
- package/bundles/skyux-datetime.umd.js +143 -141
- package/documentation.json +875 -228
- package/esm2015/index.js +28 -0
- package/esm2015/index.js.map +1 -0
- package/esm2015/lib/modules/date-pipe/date-format-utility.js +48 -0
- package/esm2015/lib/modules/date-pipe/date-format-utility.js.map +1 -0
- package/esm2015/lib/modules/date-pipe/date-pipe.module.js +21 -0
- package/esm2015/lib/modules/date-pipe/date-pipe.module.js.map +1 -0
- package/esm2015/lib/modules/date-pipe/date.pipe.js +65 -0
- package/esm2015/lib/modules/date-pipe/date.pipe.js.map +1 -0
- package/esm2015/lib/modules/date-pipe/fuzzy-date.pipe.js +47 -0
- package/esm2015/lib/modules/date-pipe/fuzzy-date.pipe.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js +464 -0
- package/esm2015/lib/modules/date-range-picker/date-range-picker.component.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/date-range-picker.module.js +47 -0
- package/esm2015/lib/modules/date-range-picker/date-range-picker.module.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/date-range.service.js +97 -0
- package/esm2015/lib/modules/date-range-picker/date-range.service.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculation.js +2 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculation.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-config.js +2 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-config.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.js +2 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-id.js +118 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-id.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-type.js +23 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-type.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-validate-function.js +2 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator-validate-function.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator.js +56 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-calculator.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-config.js +2 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-config.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-configs.js +147 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-default-calculator-configs.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-relative-value.js +252 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range-relative-value.js.map +1 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range.js +2 -0
- package/esm2015/lib/modules/date-range-picker/types/date-range.js.map +1 -0
- package/esm2015/lib/modules/datepicker/date-formatter.js +38 -0
- package/esm2015/lib/modules/datepicker/date-formatter.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker-adapter.service.js +33 -0
- package/esm2015/lib/modules/datepicker/datepicker-adapter.service.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker-calendar-change.js +2 -0
- package/esm2015/lib/modules/datepicker/datepicker-calendar-change.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js +315 -0
- package/esm2015/lib/modules/datepicker/datepicker-calendar-inner.component.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js +109 -0
- package/esm2015/lib/modules/datepicker/datepicker-calendar.component.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker-config.service.js +21 -0
- package/esm2015/lib/modules/datepicker/datepicker-config.service.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker-custom-date.js +2 -0
- package/esm2015/lib/modules/datepicker/datepicker-custom-date.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker-date.js +2 -0
- package/esm2015/lib/modules/datepicker/datepicker-date.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js +457 -0
- package/esm2015/lib/modules/datepicker/datepicker-input-fuzzy.directive.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker-input.directive.js +435 -0
- package/esm2015/lib/modules/datepicker/datepicker-input.directive.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker.component.js +333 -0
- package/esm2015/lib/modules/datepicker/datepicker.component.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker.module.js +95 -0
- package/esm2015/lib/modules/datepicker/datepicker.module.js.map +1 -0
- package/esm2015/lib/modules/datepicker/datepicker.service.js +21 -0
- package/esm2015/lib/modules/datepicker/datepicker.service.js.map +1 -0
- package/esm2015/lib/modules/datepicker/daypicker-button.component.js +26 -0
- package/esm2015/lib/modules/datepicker/daypicker-button.component.js.map +1 -0
- package/esm2015/lib/modules/datepicker/daypicker-cell.component.js +130 -0
- package/esm2015/lib/modules/datepicker/daypicker-cell.component.js.map +1 -0
- package/esm2015/lib/modules/datepicker/daypicker.component.js +215 -0
- package/esm2015/lib/modules/datepicker/daypicker.component.js.map +1 -0
- package/esm2015/lib/modules/datepicker/fuzzy-date.js +2 -0
- package/esm2015/lib/modules/datepicker/fuzzy-date.js.map +1 -0
- package/esm2015/lib/modules/datepicker/fuzzy-date.service.js +403 -0
- package/esm2015/lib/modules/datepicker/fuzzy-date.service.js.map +1 -0
- package/esm2015/lib/modules/datepicker/monthpicker.component.js +84 -0
- package/esm2015/lib/modules/datepicker/monthpicker.component.js.map +1 -0
- package/esm2015/lib/modules/datepicker/yearpicker.component.js +90 -0
- package/esm2015/lib/modules/datepicker/yearpicker.component.js.map +1 -0
- package/esm2015/lib/modules/shared/sky-datetime-resources.module.js +131 -0
- package/esm2015/lib/modules/shared/sky-datetime-resources.module.js.map +1 -0
- package/esm2015/lib/modules/timepicker/timepicker.component.js +367 -0
- package/esm2015/lib/modules/timepicker/timepicker.component.js.map +1 -0
- package/esm2015/lib/modules/timepicker/timepicker.directive.js +229 -0
- package/esm2015/lib/modules/timepicker/timepicker.directive.js.map +1 -0
- package/esm2015/lib/modules/timepicker/timepicker.interface.js +2 -0
- package/esm2015/lib/modules/timepicker/timepicker.interface.js.map +1 -0
- package/esm2015/lib/modules/timepicker/timepicker.module.js +46 -0
- package/esm2015/lib/modules/timepicker/timepicker.module.js.map +1 -0
- package/esm2015/skyux-datetime.js +2 -2
- package/esm2015/skyux-datetime.js.map +1 -0
- package/esm2015/testing/datepicker-fixture.js +1 -1
- package/esm2015/testing/datepicker-fixture.js.map +1 -0
- package/esm2015/testing/public-api.js +1 -1
- package/esm2015/testing/public-api.js.map +1 -0
- package/esm2015/testing/skyux-datetime-testing.js +1 -1
- package/esm2015/testing/skyux-datetime-testing.js.map +1 -0
- package/esm2015/testing/timepicker-fixture.js +1 -1
- package/esm2015/testing/timepicker-fixture.js.map +1 -0
- package/fesm2015/skyux-datetime-testing.js.map +1 -1
- package/fesm2015/skyux-datetime.js +415 -414
- package/fesm2015/skyux-datetime.js.map +1 -1
- package/index.d.ts +25 -0
- package/{modules → lib/modules}/date-pipe/date-format-utility.d.ts +0 -0
- package/{modules → lib/modules}/date-pipe/date-pipe.module.d.ts +0 -0
- package/{modules → lib/modules}/date-pipe/date.pipe.d.ts +0 -0
- package/{modules → lib/modules}/date-pipe/fuzzy-date.pipe.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/date-range-picker.component.d.ts +1 -1
- package/{modules → lib/modules}/date-range-picker/date-range-picker.module.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/date-range.service.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-calculation.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-config.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-date-range-function.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-id.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-type.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-calculator-validate-function.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-calculator.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-default-calculator-config.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-default-calculator-configs.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range-relative-value.d.ts +0 -0
- package/{modules → lib/modules}/date-range-picker/types/date-range.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/date-formatter.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/datepicker-adapter.service.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/datepicker-calendar-change.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/datepicker-calendar-inner.component.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/datepicker-calendar.component.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/datepicker-config.service.d.ts +1 -1
- package/{modules → lib/modules}/datepicker/datepicker-custom-date.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/datepicker-date.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/datepicker-input-fuzzy.directive.d.ts +1 -1
- package/{modules → lib/modules}/datepicker/datepicker-input.directive.d.ts +1 -1
- package/{modules → lib/modules}/datepicker/datepicker.component.d.ts +1 -0
- package/{modules → lib/modules}/datepicker/datepicker.module.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/datepicker.service.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/daypicker-button.component.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/daypicker-cell.component.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/daypicker.component.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/fuzzy-date.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/fuzzy-date.service.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/monthpicker.component.d.ts +0 -0
- package/{modules → lib/modules}/datepicker/yearpicker.component.d.ts +0 -0
- package/{modules → lib/modules}/shared/sky-datetime-resources.module.d.ts +0 -0
- package/{modules → lib/modules}/timepicker/timepicker.component.d.ts +0 -0
- package/{modules → lib/modules}/timepicker/timepicker.directive.d.ts +1 -1
- package/{modules → lib/modules}/timepicker/timepicker.interface.d.ts +0 -0
- package/{modules → lib/modules}/timepicker/timepicker.module.d.ts +0 -0
- package/package.json +10 -9
- package/skyux-datetime.d.ts +1 -1
- package/LICENSE +0 -21
- package/bundles/skyux-datetime-testing.umd.js.map +0 -1
- package/bundles/skyux-datetime.umd.js.map +0 -1
- package/esm2015/modules/date-pipe/date-format-utility.js +0 -48
- package/esm2015/modules/date-pipe/date-pipe.module.js +0 -21
- package/esm2015/modules/date-pipe/date.pipe.js +0 -64
- package/esm2015/modules/date-pipe/fuzzy-date.pipe.js +0 -46
- package/esm2015/modules/date-range-picker/date-range-picker.component.js +0 -460
- package/esm2015/modules/date-range-picker/date-range-picker.module.js +0 -47
- package/esm2015/modules/date-range-picker/date-range.service.js +0 -96
- package/esm2015/modules/date-range-picker/types/date-range-calculation.js +0 -2
- package/esm2015/modules/date-range-picker/types/date-range-calculator-config.js +0 -2
- package/esm2015/modules/date-range-picker/types/date-range-calculator-date-range-function.js +0 -2
- package/esm2015/modules/date-range-picker/types/date-range-calculator-id.js +0 -118
- package/esm2015/modules/date-range-picker/types/date-range-calculator-type.js +0 -23
- package/esm2015/modules/date-range-picker/types/date-range-calculator-validate-function.js +0 -2
- package/esm2015/modules/date-range-picker/types/date-range-calculator.js +0 -56
- package/esm2015/modules/date-range-picker/types/date-range-default-calculator-config.js +0 -2
- package/esm2015/modules/date-range-picker/types/date-range-default-calculator-configs.js +0 -147
- package/esm2015/modules/date-range-picker/types/date-range-relative-value.js +0 -252
- package/esm2015/modules/date-range-picker/types/date-range.js +0 -2
- package/esm2015/modules/datepicker/date-formatter.js +0 -38
- package/esm2015/modules/datepicker/datepicker-adapter.service.js +0 -33
- package/esm2015/modules/datepicker/datepicker-calendar-change.js +0 -2
- package/esm2015/modules/datepicker/datepicker-calendar-inner.component.js +0 -315
- package/esm2015/modules/datepicker/datepicker-calendar.component.js +0 -108
- package/esm2015/modules/datepicker/datepicker-config.service.js +0 -21
- package/esm2015/modules/datepicker/datepicker-custom-date.js +0 -2
- package/esm2015/modules/datepicker/datepicker-date.js +0 -2
- package/esm2015/modules/datepicker/datepicker-input-fuzzy.directive.js +0 -453
- package/esm2015/modules/datepicker/datepicker-input.directive.js +0 -432
- package/esm2015/modules/datepicker/datepicker.component.js +0 -330
- package/esm2015/modules/datepicker/datepicker.module.js +0 -95
- package/esm2015/modules/datepicker/datepicker.service.js +0 -21
- package/esm2015/modules/datepicker/daypicker-button.component.js +0 -25
- package/esm2015/modules/datepicker/daypicker-cell.component.js +0 -128
- package/esm2015/modules/datepicker/daypicker.component.js +0 -214
- package/esm2015/modules/datepicker/fuzzy-date.js +0 -2
- package/esm2015/modules/datepicker/fuzzy-date.service.js +0 -402
- package/esm2015/modules/datepicker/monthpicker.component.js +0 -83
- package/esm2015/modules/datepicker/yearpicker.component.js +0 -89
- package/esm2015/modules/shared/sky-datetime-resources.module.js +0 -131
- package/esm2015/modules/timepicker/timepicker.component.js +0 -365
- package/esm2015/modules/timepicker/timepicker.directive.js +0 -227
- package/esm2015/modules/timepicker/timepicker.interface.js +0 -2
- package/esm2015/modules/timepicker/timepicker.module.js +0 -46
- package/esm2015/public-api.js +0 -27
- package/public-api.d.ts +0 -24
|
@@ -1,460 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, forwardRef, Input, Optional, } from '@angular/core';
|
|
2
|
-
import { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
|
|
3
|
-
import { combineLatest, Subject } from 'rxjs';
|
|
4
|
-
import { distinctUntilChanged, first, takeUntil } from 'rxjs/operators';
|
|
5
|
-
import { SkyDateFormatter } from '../datepicker/date-formatter';
|
|
6
|
-
import { SkyDateRangeCalculatorId } from './types/date-range-calculator-id';
|
|
7
|
-
import { SkyDateRangeCalculatorType } from './types/date-range-calculator-type';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "./date-range.service";
|
|
10
|
-
import * as i2 from "@angular/forms";
|
|
11
|
-
import * as i3 from "@skyux/i18n";
|
|
12
|
-
import * as i4 from "@skyux/core";
|
|
13
|
-
import * as i5 from "@skyux/theme";
|
|
14
|
-
import * as i6 from "@skyux/forms";
|
|
15
|
-
import * as i7 from "../datepicker/datepicker.component";
|
|
16
|
-
import * as i8 from "@angular/common";
|
|
17
|
-
import * as i9 from "../datepicker/datepicker-input.directive";
|
|
18
|
-
/* tslint:disable:no-forward-ref no-use-before-declare */
|
|
19
|
-
const SKY_DATE_RANGE_PICKER_VALUE_ACCESSOR = {
|
|
20
|
-
provide: NG_VALUE_ACCESSOR,
|
|
21
|
-
useExisting: forwardRef(() => SkyDateRangePickerComponent),
|
|
22
|
-
multi: true,
|
|
23
|
-
};
|
|
24
|
-
const SKY_DATE_RANGE_PICKER_VALIDATOR = {
|
|
25
|
-
provide: NG_VALIDATORS,
|
|
26
|
-
useExisting: forwardRef(() => SkyDateRangePickerComponent),
|
|
27
|
-
multi: true,
|
|
28
|
-
};
|
|
29
|
-
/* tslint:enable */
|
|
30
|
-
let uniqueId = 0;
|
|
31
|
-
/**
|
|
32
|
-
* Acts as a form control with a form model of type `SkyDateRangeCalculation`.
|
|
33
|
-
* @example
|
|
34
|
-
* ```
|
|
35
|
-
* <sky-date-range-picker
|
|
36
|
-
* formControlName="myPicker"
|
|
37
|
-
* >
|
|
38
|
-
* </sky-date-range-picker>
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export class SkyDateRangePickerComponent {
|
|
42
|
-
constructor(changeDetector, dateRangeService, formBuilder, localeProvider, windowRef, themeSvc) {
|
|
43
|
-
this.changeDetector = changeDetector;
|
|
44
|
-
this.dateRangeService = dateRangeService;
|
|
45
|
-
this.formBuilder = formBuilder;
|
|
46
|
-
this.localeProvider = localeProvider;
|
|
47
|
-
this.windowRef = windowRef;
|
|
48
|
-
/**
|
|
49
|
-
* Indicates whether to require users to specify a start date.
|
|
50
|
-
* @default false
|
|
51
|
-
*/
|
|
52
|
-
this.startDateRequired = false;
|
|
53
|
-
/**
|
|
54
|
-
* Indicates whether to require users to specify a end date.
|
|
55
|
-
* @default false
|
|
56
|
-
*/
|
|
57
|
-
this.endDateRequired = false;
|
|
58
|
-
this.dateRangePickerId = `sky-date-range-picker-${uniqueId++}`;
|
|
59
|
-
this.isReady = false;
|
|
60
|
-
this.showEndDatePicker = false;
|
|
61
|
-
this.showStartDatePicker = false;
|
|
62
|
-
this.ngUnsubscribe = new Subject();
|
|
63
|
-
this._disabled = false;
|
|
64
|
-
/* istanbul ignore next */
|
|
65
|
-
this.onChange = (_) => { };
|
|
66
|
-
/* istanbul ignore next */
|
|
67
|
-
this.onTouched = () => { };
|
|
68
|
-
/* istanbul ignore next */
|
|
69
|
-
this.onValidatorChange = () => { };
|
|
70
|
-
this.localeProvider
|
|
71
|
-
.getLocaleInfo()
|
|
72
|
-
.pipe(takeUntil(this.ngUnsubscribe))
|
|
73
|
-
.subscribe((localeInfo) => {
|
|
74
|
-
SkyDateFormatter.setLocale(localeInfo.locale);
|
|
75
|
-
this.preferredShortDateFormat =
|
|
76
|
-
SkyDateFormatter.getPreferredShortDateFormat();
|
|
77
|
-
});
|
|
78
|
-
// Update icons when theme changes.
|
|
79
|
-
/* istanbul ignore next */
|
|
80
|
-
themeSvc === null || themeSvc === void 0 ? void 0 : themeSvc.settingsChange.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
|
|
81
|
-
this.changeDetector.markForCheck();
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Specifies IDs for the date range options to include in the picker's dropdown.
|
|
86
|
-
* The options specify calculator objects that return two `Date` objects to represent date ranges.
|
|
87
|
-
* By default, this property includes all `SkyDateRangeCalculatorId` values.
|
|
88
|
-
*/
|
|
89
|
-
set calculatorIds(value) {
|
|
90
|
-
this._calculatorIds = value;
|
|
91
|
-
}
|
|
92
|
-
get calculatorIds() {
|
|
93
|
-
return (this._calculatorIds || [
|
|
94
|
-
SkyDateRangeCalculatorId.AnyTime,
|
|
95
|
-
SkyDateRangeCalculatorId.Before,
|
|
96
|
-
SkyDateRangeCalculatorId.After,
|
|
97
|
-
SkyDateRangeCalculatorId.SpecificRange,
|
|
98
|
-
SkyDateRangeCalculatorId.Yesterday,
|
|
99
|
-
SkyDateRangeCalculatorId.Today,
|
|
100
|
-
SkyDateRangeCalculatorId.Tomorrow,
|
|
101
|
-
SkyDateRangeCalculatorId.LastWeek,
|
|
102
|
-
SkyDateRangeCalculatorId.ThisWeek,
|
|
103
|
-
SkyDateRangeCalculatorId.NextWeek,
|
|
104
|
-
SkyDateRangeCalculatorId.LastMonth,
|
|
105
|
-
SkyDateRangeCalculatorId.ThisMonth,
|
|
106
|
-
SkyDateRangeCalculatorId.NextMonth,
|
|
107
|
-
SkyDateRangeCalculatorId.LastQuarter,
|
|
108
|
-
SkyDateRangeCalculatorId.ThisQuarter,
|
|
109
|
-
SkyDateRangeCalculatorId.NextQuarter,
|
|
110
|
-
SkyDateRangeCalculatorId.LastCalendarYear,
|
|
111
|
-
SkyDateRangeCalculatorId.ThisCalendarYear,
|
|
112
|
-
SkyDateRangeCalculatorId.NextCalendarYear,
|
|
113
|
-
SkyDateRangeCalculatorId.LastFiscalYear,
|
|
114
|
-
SkyDateRangeCalculatorId.ThisFiscalYear,
|
|
115
|
-
SkyDateRangeCalculatorId.NextFiscalYear,
|
|
116
|
-
]);
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Specifies a date format for
|
|
120
|
-
* [the `sky-datepicker` components](https://developer.blackbaud.com/skyux/components/datepicker)
|
|
121
|
-
* that make up the date range picker. The text input is a composite component of
|
|
122
|
-
* up to two `sky-datepicker` components.
|
|
123
|
-
* @default MM/DD/YYYY
|
|
124
|
-
*/
|
|
125
|
-
set dateFormat(value) {
|
|
126
|
-
this._dateFormat = value;
|
|
127
|
-
}
|
|
128
|
-
get dateFormat() {
|
|
129
|
-
return this._dateFormat || this.preferredShortDateFormat;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Indicates whether to disable the date range picker.
|
|
133
|
-
* @default false
|
|
134
|
-
*/
|
|
135
|
-
set disabled(value) {
|
|
136
|
-
this._disabled = value;
|
|
137
|
-
if (this.formGroup) {
|
|
138
|
-
if (this._disabled) {
|
|
139
|
-
this.formGroup.disable();
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
this.formGroup.enable();
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
this.changeDetector.markForCheck();
|
|
146
|
-
}
|
|
147
|
-
get disabled() {
|
|
148
|
-
return this._disabled;
|
|
149
|
-
}
|
|
150
|
-
get startDateLabelResourceKey() {
|
|
151
|
-
if (this.selectedCalculator.type === SkyDateRangeCalculatorType.Range) {
|
|
152
|
-
return 'skyux_date_range_picker_start_date_label';
|
|
153
|
-
}
|
|
154
|
-
return 'skyux_date_range_picker_after_date_label';
|
|
155
|
-
}
|
|
156
|
-
get endDateLabelResourceKey() {
|
|
157
|
-
if (this.selectedCalculator.type === SkyDateRangeCalculatorType.Range) {
|
|
158
|
-
return 'skyux_date_range_picker_end_date_label';
|
|
159
|
-
}
|
|
160
|
-
return 'skyux_date_range_picker_before_date_label';
|
|
161
|
-
}
|
|
162
|
-
get selectedCalculator() {
|
|
163
|
-
return this.getCalculatorById(this.value.calculatorId);
|
|
164
|
-
}
|
|
165
|
-
get calculatorIdControl() {
|
|
166
|
-
return this.formGroup.get('calculatorId');
|
|
167
|
-
}
|
|
168
|
-
get defaultCalculator() {
|
|
169
|
-
return this.calculators[0];
|
|
170
|
-
}
|
|
171
|
-
get defaultValue() {
|
|
172
|
-
return this.defaultCalculator.getValue();
|
|
173
|
-
}
|
|
174
|
-
get endDateControl() {
|
|
175
|
-
return this.formGroup.get('endDate');
|
|
176
|
-
}
|
|
177
|
-
get startDateControl() {
|
|
178
|
-
return this.formGroup.get('startDate');
|
|
179
|
-
}
|
|
180
|
-
get value() {
|
|
181
|
-
if (this._value && this._value.calculatorId !== undefined) {
|
|
182
|
-
return this._value;
|
|
183
|
-
}
|
|
184
|
-
return this.defaultValue;
|
|
185
|
-
}
|
|
186
|
-
ngOnInit() {
|
|
187
|
-
this.createForm();
|
|
188
|
-
this.updateCalculators().then(() => {
|
|
189
|
-
this.addEventListeners();
|
|
190
|
-
this.isReady = true;
|
|
191
|
-
this.resetFormGroupValue();
|
|
192
|
-
this.showRelevantFormFields();
|
|
193
|
-
// Fill in any unprovided values after the calculators have been initialized.
|
|
194
|
-
// For example, if the control is initialized with only the `calculatorId`,
|
|
195
|
-
// allow the calculator to fill in the missing start and end dates.
|
|
196
|
-
const { startDate, endDate } = this.value;
|
|
197
|
-
const defaultValue = this.selectedCalculator.getValue(startDate, endDate);
|
|
198
|
-
const newValue = Object.assign({}, defaultValue, this.value);
|
|
199
|
-
this.setValue(newValue, false);
|
|
200
|
-
// This is needed to address a bug in Angular 4.
|
|
201
|
-
// When a control value is set intially, its value is not represented on the view.
|
|
202
|
-
// See: https://github.com/angular/angular/issues/13792
|
|
203
|
-
/* istanbul ignore else */
|
|
204
|
-
if (this.control) {
|
|
205
|
-
this.control.setValue(this.value, {
|
|
206
|
-
emitEvent: false,
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
ngOnChanges(changes) {
|
|
212
|
-
if (changes.calculatorIds && changes.calculatorIds.firstChange === false) {
|
|
213
|
-
this.updateCalculators().then(() => {
|
|
214
|
-
const id = this.calculatorIdControl.value;
|
|
215
|
-
// Maintain the currently selected values if the calculators change after
|
|
216
|
-
// a value has been chosen.
|
|
217
|
-
const found = this.calculators.find((calculator) => {
|
|
218
|
-
return calculator.calculatorId === id;
|
|
219
|
-
});
|
|
220
|
-
/* istanbul ignore else */
|
|
221
|
-
if (!found) {
|
|
222
|
-
const newValue = this.defaultCalculator.getValue();
|
|
223
|
-
this.setValue(newValue);
|
|
224
|
-
this.resetFormGroupValue(newValue);
|
|
225
|
-
this.showRelevantFormFields();
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
ngOnDestroy() {
|
|
231
|
-
this.ngUnsubscribe.next();
|
|
232
|
-
this.ngUnsubscribe.complete();
|
|
233
|
-
}
|
|
234
|
-
onFieldBlur() {
|
|
235
|
-
this.onTouched();
|
|
236
|
-
}
|
|
237
|
-
writeValue(value) {
|
|
238
|
-
// Only update the underlying controls when the calculators are ready.
|
|
239
|
-
const notifyChange = false;
|
|
240
|
-
// (We still need to save the initial value set by the consumer's form, however.)
|
|
241
|
-
this.setValue(value, notifyChange);
|
|
242
|
-
if (this.isReady) {
|
|
243
|
-
// When the control's value is set to `null`,
|
|
244
|
-
// set it to the default value.
|
|
245
|
-
if (!value) {
|
|
246
|
-
this.onChange(this.defaultValue);
|
|
247
|
-
}
|
|
248
|
-
this.resetFormGroupValue();
|
|
249
|
-
this.showRelevantFormFields();
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
validate(control) {
|
|
253
|
-
if (!this.control) {
|
|
254
|
-
this.control = control;
|
|
255
|
-
}
|
|
256
|
-
if (!this.isReady) {
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
|
-
const value = control.value;
|
|
260
|
-
const idControl = this.calculatorIdControl;
|
|
261
|
-
const result = this.selectedCalculator.validate(value);
|
|
262
|
-
let errors;
|
|
263
|
-
if (result) {
|
|
264
|
-
errors = {
|
|
265
|
-
skyDateRange: {
|
|
266
|
-
calculatorId: idControl.value,
|
|
267
|
-
errors: result,
|
|
268
|
-
},
|
|
269
|
-
};
|
|
270
|
-
}
|
|
271
|
-
else {
|
|
272
|
-
errors = this.startDateControl.errors || this.endDateControl.errors;
|
|
273
|
-
}
|
|
274
|
-
if (!errors) {
|
|
275
|
-
// Clear any errors on the calculator select.
|
|
276
|
-
// tslint:disable-next-line:no-null-keyword
|
|
277
|
-
idControl.setErrors(null);
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
idControl.setErrors(errors);
|
|
281
|
-
idControl.markAsTouched();
|
|
282
|
-
idControl.markAsDirty();
|
|
283
|
-
// Need to mark the control as touched for the error messages to appear.
|
|
284
|
-
this.control.markAsTouched();
|
|
285
|
-
// Notify the view to display any errors.
|
|
286
|
-
this.changeDetector.markForCheck();
|
|
287
|
-
return errors;
|
|
288
|
-
}
|
|
289
|
-
registerOnChange(fn) {
|
|
290
|
-
this.onChange = fn;
|
|
291
|
-
}
|
|
292
|
-
registerOnTouched(fn) {
|
|
293
|
-
this.onTouched = fn;
|
|
294
|
-
}
|
|
295
|
-
registerOnValidatorChange(fn) {
|
|
296
|
-
this.onValidatorChange = fn;
|
|
297
|
-
}
|
|
298
|
-
setDisabledState(disabled) {
|
|
299
|
-
this.disabled = disabled;
|
|
300
|
-
}
|
|
301
|
-
setValue(value, notifyChange = true) {
|
|
302
|
-
const isNewValue = !this.dateRangesEqual(this._value, value);
|
|
303
|
-
if (isNewValue) {
|
|
304
|
-
this._value = value;
|
|
305
|
-
if (notifyChange) {
|
|
306
|
-
this.onChange(this.value);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
patchValue(value) {
|
|
311
|
-
const newValue = Object.assign({}, this.value, value);
|
|
312
|
-
this.setValue(newValue);
|
|
313
|
-
}
|
|
314
|
-
createForm() {
|
|
315
|
-
this.formGroup = this.formBuilder.group({
|
|
316
|
-
calculatorId: new FormControl(),
|
|
317
|
-
startDate: new FormControl(),
|
|
318
|
-
endDate: new FormControl(),
|
|
319
|
-
});
|
|
320
|
-
if (this.disabled) {
|
|
321
|
-
this.formGroup.disable();
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
showRelevantFormFields() {
|
|
325
|
-
const calculator = this.selectedCalculator;
|
|
326
|
-
let showEndDatePicker = false;
|
|
327
|
-
let showStartDatePicker = false;
|
|
328
|
-
switch (calculator.type) {
|
|
329
|
-
case SkyDateRangeCalculatorType.Before:
|
|
330
|
-
showEndDatePicker = true;
|
|
331
|
-
break;
|
|
332
|
-
case SkyDateRangeCalculatorType.After:
|
|
333
|
-
showStartDatePicker = true;
|
|
334
|
-
break;
|
|
335
|
-
case SkyDateRangeCalculatorType.Range:
|
|
336
|
-
showEndDatePicker = true;
|
|
337
|
-
showStartDatePicker = true;
|
|
338
|
-
break;
|
|
339
|
-
default:
|
|
340
|
-
break;
|
|
341
|
-
}
|
|
342
|
-
this.showEndDatePicker = showEndDatePicker;
|
|
343
|
-
this.showStartDatePicker = showStartDatePicker;
|
|
344
|
-
this.changeDetector.markForCheck();
|
|
345
|
-
}
|
|
346
|
-
resetFormGroupValue(value) {
|
|
347
|
-
// Do not emit a value change event on the underlying form group
|
|
348
|
-
// because we're already watching for changes that are triggered by the end user.
|
|
349
|
-
// For example, if we change the value of the form group internally, we don't want the event
|
|
350
|
-
// listeners to be triggered, as those are reserved for user interactions.
|
|
351
|
-
// (See the event listeners listed below.)
|
|
352
|
-
this.formGroup.reset(value || this.value, {
|
|
353
|
-
emitEvent: false,
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
addEventListeners() {
|
|
357
|
-
// Detect errors from the date pickers
|
|
358
|
-
// when control is initialized with a value.
|
|
359
|
-
combineLatest([
|
|
360
|
-
this.startDateControl.statusChanges,
|
|
361
|
-
this.endDateControl.statusChanges,
|
|
362
|
-
])
|
|
363
|
-
.pipe(first())
|
|
364
|
-
.subscribe((status) => {
|
|
365
|
-
if (status.indexOf('INVALID') > -1) {
|
|
366
|
-
// Wait for initial validation to complete.
|
|
367
|
-
this.windowRef.nativeWindow.setTimeout(() => {
|
|
368
|
-
this.onValidatorChange();
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
|
-
});
|
|
372
|
-
// Watch for selected calculator change.
|
|
373
|
-
this.calculatorIdControl.valueChanges
|
|
374
|
-
.pipe(takeUntil(this.ngUnsubscribe))
|
|
375
|
-
.subscribe((value) => {
|
|
376
|
-
const id = parseInt(value, 10);
|
|
377
|
-
// if the component is disabled during form creation, null is passed
|
|
378
|
-
// as the value of the calculator id control
|
|
379
|
-
// only handle the value changes if the calculator id is a number
|
|
380
|
-
/* istanbul ignore else */
|
|
381
|
-
if (!isNaN(id)) {
|
|
382
|
-
const calculator = this.getCalculatorById(id);
|
|
383
|
-
const newValue = calculator.getValue();
|
|
384
|
-
this.setValue(newValue);
|
|
385
|
-
this.resetFormGroupValue(newValue);
|
|
386
|
-
this.showRelevantFormFields();
|
|
387
|
-
}
|
|
388
|
-
});
|
|
389
|
-
// Watch for start date value changes.
|
|
390
|
-
this.startDateControl.valueChanges
|
|
391
|
-
.pipe(distinctUntilChanged(), takeUntil(this.ngUnsubscribe))
|
|
392
|
-
.subscribe((startDate) => {
|
|
393
|
-
this.patchValue({ startDate });
|
|
394
|
-
});
|
|
395
|
-
// Watch for end date value changes.
|
|
396
|
-
this.endDateControl.valueChanges
|
|
397
|
-
.pipe(distinctUntilChanged(), takeUntil(this.ngUnsubscribe))
|
|
398
|
-
.subscribe((endDate) => {
|
|
399
|
-
this.patchValue({ endDate });
|
|
400
|
-
});
|
|
401
|
-
// Detect errors from the date inputs and update ng- classes on picker.
|
|
402
|
-
combineLatest([
|
|
403
|
-
this.startDateControl.statusChanges,
|
|
404
|
-
this.endDateControl.statusChanges,
|
|
405
|
-
])
|
|
406
|
-
.pipe(takeUntil(this.ngUnsubscribe))
|
|
407
|
-
.subscribe(() => {
|
|
408
|
-
this.changeDetector.markForCheck();
|
|
409
|
-
});
|
|
410
|
-
}
|
|
411
|
-
updateCalculators() {
|
|
412
|
-
return this.dateRangeService
|
|
413
|
-
.getCalculators(this.calculatorIds)
|
|
414
|
-
.then((calculators) => {
|
|
415
|
-
this.calculators = calculators;
|
|
416
|
-
this.changeDetector.markForCheck();
|
|
417
|
-
});
|
|
418
|
-
}
|
|
419
|
-
getCalculatorById(id) {
|
|
420
|
-
return this.calculators.find((calculator) => {
|
|
421
|
-
return calculator.calculatorId === id;
|
|
422
|
-
});
|
|
423
|
-
}
|
|
424
|
-
dateRangesEqual(rangeA, rangeB) {
|
|
425
|
-
return JSON.stringify(rangeA) === JSON.stringify(rangeB);
|
|
426
|
-
}
|
|
427
|
-
}
|
|
428
|
-
SkyDateRangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDateRangeService }, { token: i2.FormBuilder }, { token: i3.SkyAppLocaleProvider }, { token: i4.SkyAppWindowRef }, { token: i5.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
429
|
-
SkyDateRangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.14", type: SkyDateRangePickerComponent, selector: "sky-date-range-picker", inputs: { calculatorIds: "calculatorIds", dateFormat: "dateFormat", disabled: "disabled", label: "label", startDateRequired: "startDateRequired", endDateRequired: "endDateRequired" }, providers: [
|
|
430
|
-
SKY_DATE_RANGE_PICKER_VALUE_ACCESSOR,
|
|
431
|
-
SKY_DATE_RANGE_PICKER_VALIDATOR,
|
|
432
|
-
], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isReady\" class=\"sky-date-range-picker\" [formGroup]=\"formGroup\">\n <div class=\"sky-date-range-picker-form-group\">\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.for]=\"dateRangePickerId + '-select-calculator'\"\n >\n {{ label || 'skyux_date_range_picker_default_label' | skyLibResources }}\n </label>\n <select\n class=\"sky-form-control\"\n formControlName=\"calculatorId\"\n [attr.id]=\"dateRangePickerId + '-select-calculator'\"\n (blur)=\"onFieldBlur()\"\n >\n <option\n *ngFor=\"let calculator of calculators\"\n [value]=\"calculator.calculatorId\"\n >\n {{ calculator.shortDescription }}\n </option>\n </select>\n </sky-input-box>\n </div>\n\n <div class=\"sky-date-range-picker-form-group\" [hidden]=\"!showStartDatePicker\">\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.for]=\"dateRangePickerId + '-start-date'\"\n [ngClass]=\"{ 'sky-control-label-required': startDateRequired }\"\n >\n {{ startDateLabelResourceKey | skyLibResources }}\n </label>\n\n <sky-datepicker>\n <input\n formControlName=\"startDate\"\n [attr.aria-label]=\"startDateLabelResourceKey | skyLibResources\"\n [attr.id]=\"dateRangePickerId + '-start-date'\"\n [attr.placeholder]=\"dateFormat\"\n [required]=\"startDateRequired\"\n [dateFormat]=\"dateFormat\"\n (blur)=\"onFieldBlur()\"\n skyDatepickerInput\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n\n <div class=\"sky-date-range-picker-form-group\" [hidden]=\"!showEndDatePicker\">\n <sky-input-box>\n <label\n class=\"sky-control-label\"\n [attr.for]=\"dateRangePickerId + '-end-date'\"\n [ngClass]=\"{ 'sky-control-label-required': endDateRequired }\"\n >\n {{ endDateLabelResourceKey | skyLibResources }}\n </label>\n\n <sky-datepicker>\n <input\n formControlName=\"endDate\"\n skyDatepickerInput\n [attr.aria-label]=\"endDateLabelResourceKey | skyLibResources\"\n [attr.id]=\"dateRangePickerId + '-end-date'\"\n [attr.placeholder]=\"dateFormat\"\n [dateFormat]=\"dateFormat\"\n [required]=\"endDateRequired\"\n (blur)=\"onFieldBlur()\"\n />\n </sky-datepicker>\n </sky-input-box>\n </div>\n</div>\n", styles: [".sky-date-range-picker{display:flex;margin-left:-5px;margin-right:-5px}.sky-date-range-picker-form-group{padding-left:5px;padding-right:5px}.sky-date-range-picker-form-group:last-child{margin-bottom:0}:host .sky-date-range-picker{flex-direction:column}:host .sky-date-range-picker-form-group{flex-basis:100%}:host-context(.sky-responsive-container-xs) .sky-date-range-picker,:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:column}:host-context(.sky-responsive-container-xs) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:100%}@media (min-width: 768px){:host .sky-date-range-picker{flex-direction:initial}:host .sky-date-range-picker-form-group{flex-basis:calc(100% / 3);margin-bottom:0}}:host-context(.sky-responsive-container-sm) .sky-date-range-picker,:host-context(.sky-responsive-container-md) .sky-date-range-picker,:host-context(.sky-responsive-container-lg) .sky-date-range-picker{flex-direction:initial}:host-context(.sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-responsive-container-lg) .sky-date-range-picker-form-group{flex-basis:calc(100% / 3);margin-bottom:0}:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{padding:0;margin:0 0 20px}@media (min-width: 768px){:host-context(.sky-theme-modern) .sky-date-range-picker-form-group{margin:0 20px 0 0}}.sky-theme-modern .sky-date-range-picker-form-group{padding:0;margin:0 0 20px}@media (min-width: 768px){.sky-theme-modern .sky-date-range-picker-form-group{margin:0 20px 0 0}}:host-context(.sky-theme-modern .sky-responsive-container-xs) .sky-date-range-picker-form-group{margin:0 0 20px}:host-context(.sky-theme-modern .sky-responsive-container-sm) .sky-date-range-picker-form-group,:host-context(.sky-theme-modern .sky-responsive-container-md) .sky-date-range-picker-form-group,:host-context(.sky-theme-modern .sky-responsive-container-lg) .sky-date-range-picker-form-group{margin:0 20px 0 0}\n"], components: [{ type: i6.λ10, selector: "sky-input-box", inputs: ["hasErrors", "disabled"] }, { type: i7.SkyDatepickerComponent, selector: "sky-datepicker", inputs: ["pickerClass"], outputs: ["calendarDateRangeChange"] }], directives: [{ type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.SkyDatepickerInputDirective, selector: "[skyDatepickerInput]", inputs: ["dateFormat", "disabled", "maxDate", "minDate", "skyDatepickerInput", "skyDatepickerNoValidate", "startingDay", "strict"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }], pipes: { "skyLibResources": i3.SkyLibResourcesPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
433
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerComponent, decorators: [{
|
|
434
|
-
type: Component,
|
|
435
|
-
args: [{
|
|
436
|
-
selector: 'sky-date-range-picker',
|
|
437
|
-
templateUrl: './date-range-picker.component.html',
|
|
438
|
-
styleUrls: ['./date-range-picker.component.scss'],
|
|
439
|
-
providers: [
|
|
440
|
-
SKY_DATE_RANGE_PICKER_VALUE_ACCESSOR,
|
|
441
|
-
SKY_DATE_RANGE_PICKER_VALIDATOR,
|
|
442
|
-
],
|
|
443
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
444
|
-
}]
|
|
445
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDateRangeService }, { type: i2.FormBuilder }, { type: i3.SkyAppLocaleProvider }, { type: i4.SkyAppWindowRef }, { type: i5.SkyThemeService, decorators: [{
|
|
446
|
-
type: Optional
|
|
447
|
-
}] }]; }, propDecorators: { calculatorIds: [{
|
|
448
|
-
type: Input
|
|
449
|
-
}], dateFormat: [{
|
|
450
|
-
type: Input
|
|
451
|
-
}], disabled: [{
|
|
452
|
-
type: Input
|
|
453
|
-
}], label: [{
|
|
454
|
-
type: Input
|
|
455
|
-
}], startDateRequired: [{
|
|
456
|
-
type: Input
|
|
457
|
-
}], endDateRequired: [{
|
|
458
|
-
type: Input
|
|
459
|
-
}] } });
|
|
460
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0ZXRpbWUvc3JjL21vZHVsZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0ZXRpbWUvc3JjL21vZHVsZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFJTCxRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUlMLFdBQVcsRUFFWCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFReEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUloRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFNaEYseURBQXlEO0FBQ3pELE1BQU0sb0NBQW9DLEdBQUc7SUFDM0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO0lBQzFELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sK0JBQStCLEdBQUc7SUFDdEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIs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Q0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZSxDQUNyQixNQUErQixFQUMvQixNQUErQjtRQUUvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRCxDQUFDOzt5SEE1ZVUsMkJBQTJCOzZHQUEzQiwyQkFBMkIsd09BTjNCO1FBQ1Qsb0NBQW9DO1FBQ3BDLCtCQUErQjtLQUNoQywrQ0NoRkgsbStFQTJFQTs0RkRRYSwyQkFBMkI7a0JBVnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7b0JBQ2pELFNBQVMsRUFBRTt3QkFDVCxvQ0FBb0M7d0JBQ3BDLCtCQUErQjtxQkFDaEM7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkE4S0ksUUFBUTs0Q0FwS0EsYUFBYTtzQkFEdkIsS0FBSztnQkEwQ0ssVUFBVTtzQkFEcEIsS0FBSztnQkFjSyxRQUFRO3NCQURsQixLQUFLO2dCQXdCQyxLQUFLO3NCQURYLEtBQUs7Z0JBUUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQVFDLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2t5QXBwV2luZG93UmVmIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lBcHBMb2NhbGVQcm92aWRlciB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlyc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5RGF0ZUZvcm1hdHRlciB9IGZyb20gJy4uL2RhdGVwaWNrZXIvZGF0ZS1mb3JtYXR0ZXInO1xuXG5pbXBvcnQgeyBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbiB9IGZyb20gJy4vdHlwZXMvZGF0ZS1yYW5nZS1jYWxjdWxhdGlvbic7XG5cbmltcG9ydCB7IFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZCB9IGZyb20gJy4vdHlwZXMvZGF0ZS1yYW5nZS1jYWxjdWxhdG9yLWlkJztcblxuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUgfSBmcm9tICcuL3R5cGVzL2RhdGUtcmFuZ2UtY2FsY3VsYXRvci10eXBlJztcblxuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvciB9IGZyb20gJy4vdHlwZXMvZGF0ZS1yYW5nZS1jYWxjdWxhdG9yJztcblxuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlU2VydmljZSB9IGZyb20gJy4vZGF0ZS1yYW5nZS5zZXJ2aWNlJztcblxuLyogdHNsaW50OmRpc2FibGU6bm8tZm9yd2FyZC1yZWYgbm8tdXNlLWJlZm9yZS1kZWNsYXJlICovXG5jb25zdCBTS1lfREFURV9SQU5HRV9QSUNLRVJfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbmNvbnN0IFNLWV9EQVRFX1JBTkdFX1BJQ0tFUl9WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreURhdGVSYW5nZVBpY2tlckNvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcbi8qIHRzbGludDplbmFibGUgKi9cblxubGV0IHVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBBY3RzIGFzIGEgZm9ybSBjb250cm9sIHdpdGggYSBmb3JtIG1vZGVsIG9mIHR5cGUgYFNreURhdGVSYW5nZUNhbGN1bGF0aW9uYC5cbiAqIEBleGFtcGxlXG4gKiBgYGBcbiAqIDxza3ktZGF0ZS1yYW5nZS1waWNrZXJcbiAqICAgZm9ybUNvbnRyb2xOYW1lPVwibXlQaWNrZXJcIlxuICogPlxuICogPC9za3ktZGF0ZS1yYW5nZS1waWNrZXI+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRhdGUtcmFuZ2UtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgU0tZX0RBVEVfUkFOR0VfUElDS0VSX1ZBTFVFX0FDQ0VTU09SLFxuICAgIFNLWV9EQVRFX1JBTkdFX1BJQ0tFUl9WQUxJREFUT1IsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgSURzIGZvciB0aGUgZGF0ZSByYW5nZSBvcHRpb25zIHRvIGluY2x1ZGUgaW4gdGhlIHBpY2tlcidzIGRyb3Bkb3duLlxuICAgKiBUaGUgb3B0aW9ucyBzcGVjaWZ5IGNhbGN1bGF0b3Igb2JqZWN0cyB0aGF0IHJldHVybiB0d28gYERhdGVgIG9iamVjdHMgdG8gcmVwcmVzZW50IGRhdGUgcmFuZ2VzLlxuICAgKiBCeSBkZWZhdWx0LCB0aGlzIHByb3BlcnR5IGluY2x1ZGVzIGFsbCBgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcklkYCB2YWx1ZXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNhbGN1bGF0b3JJZHModmFsdWU6IFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZFtdKSB7XG4gICAgdGhpcy5fY2FsY3VsYXRvcklkcyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBjYWxjdWxhdG9ySWRzKCk6IFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZFtdIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fY2FsY3VsYXRvcklkcyB8fCBbXG4gICAgICAgIFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZC5BbnlUaW1lLFxuICAgICAgICBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQuQmVmb3JlLFxuICAgICAgICBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQuQWZ0ZXIsXG4gICAgICAgIFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZC5TcGVjaWZpY1JhbmdlLFxuICAgICAgICBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQuWWVzdGVyZGF5LFxuICAgICAgICBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQuVG9kYXksXG4gICAgICAgIFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZC5Ub21vcnJvdyxcbiAgICAgICAgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcklkLkxhc3RXZWVrLFxuICAgICAgICBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQuVGhpc1dlZWssXG4gICAgICAgIFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZC5OZXh0V2VlayxcbiAgICAgICAgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcklkLkxhc3RNb250aCxcbiAgICAgICAgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcklkLlRoaXNNb250aCxcbiAgICAgICAgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcklkLk5leHRNb250aCxcbiAgICAgICAgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcklkLkxhc3RRdWFydGVyLFxuICAgICAgICBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQuVGhpc1F1YXJ0ZXIsXG4gICAgICAgIFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZC5OZXh0UXVhcnRlcixcbiAgICAgICAgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcklkLkxhc3RDYWxlbmRhclllYXIsXG4gICAgICAgIFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZC5UaGlzQ2FsZW5kYXJZZWFyLFxuICAgICAgICBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQuTmV4dENhbGVuZGFyWWVhcixcbiAgICAgICAgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvcklkLkxhc3RGaXNjYWxZZWFyLFxuICAgICAgICBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9ySWQuVGhpc0Zpc2NhbFllYXIsXG4gICAgICAgIFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZC5OZXh0RmlzY2FsWWVhcixcbiAgICAgIF1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIGRhdGUgZm9ybWF0IGZvclxuICAgKiBbdGhlIGBza3ktZGF0ZXBpY2tlcmAgY29tcG9uZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL2RhdGVwaWNrZXIpXG4gICAqIHRoYXQgbWFrZSB1cCB0aGUgZGF0ZSByYW5nZSBwaWNrZXIuIFRoZSB0ZXh0IGlucHV0IGlzIGEgY29tcG9zaXRlIGNvbXBvbmVudCBvZlxuICAgKiB1cCB0byB0d28gYHNreS1kYXRlcGlja2VyYCBjb21wb25lbnRzLlxuICAgKiBAZGVmYXVsdCBNTS9ERC9ZWVlZXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGVGb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2RhdGVGb3JtYXQgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0ZUZvcm1hdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kYXRlRm9ybWF0IHx8IHRoaXMucHJlZmVycmVkU2hvcnREYXRlRm9ybWF0O1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIGRhdGUgcmFuZ2UgcGlja2VyLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcbiAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgbGFiZWwgZm9yIHRoZSBkYXRlIHJhbmdlIHBpY2tlci5cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gcmVxdWlyZSB1c2VycyB0byBzcGVjaWZ5IGEgc3RhcnQgZGF0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydERhdGVSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byByZXF1aXJlIHVzZXJzIHRvIHNwZWNpZnkgYSBlbmQgZGF0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbmREYXRlUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IHN0YXJ0RGF0ZUxhYmVsUmVzb3VyY2VLZXkoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENhbGN1bGF0b3IudHlwZSA9PT0gU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUuUmFuZ2UpIHtcbiAgICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfc3RhcnRfZGF0ZV9sYWJlbCc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdza3l1eF9kYXRlX3JhbmdlX3BpY2tlcl9hZnRlcl9kYXRlX2xhYmVsJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW5kRGF0ZUxhYmVsUmVzb3VyY2VLZXkoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZENhbGN1bGF0b3IudHlwZSA9PT0gU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUuUmFuZ2UpIHtcbiAgICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZW5kX2RhdGVfbGFiZWwnO1xuICAgIH1cblxuICAgIHJldHVybiAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfYmVmb3JlX2RhdGVfbGFiZWwnO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZENhbGN1bGF0b3IoKTogU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FsY3VsYXRvckJ5SWQodGhpcy52YWx1ZS5jYWxjdWxhdG9ySWQpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGVSYW5nZVBpY2tlcklkID0gYHNreS1kYXRlLXJhbmdlLXBpY2tlci0ke3VuaXF1ZUlkKyt9YDtcblxuICBwdWJsaWMgY2FsY3VsYXRvcnM6IFNreURhdGVSYW5nZUNhbGN1bGF0b3JbXTtcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBwdWJsaWMgaXNSZWFkeSA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0VuZERhdGVQaWNrZXIgPSBmYWxzZTtcbiAgcHVibGljIHNob3dTdGFydERhdGVQaWNrZXIgPSBmYWxzZTtcblxuICBwcml2YXRlIGdldCBjYWxjdWxhdG9ySWRDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldCgnY2FsY3VsYXRvcklkJyk7XG4gIH1cblxuICBwcml2YXRlIGdldCBkZWZhdWx0Q2FsY3VsYXRvcigpOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yIHtcbiAgICByZXR1cm4gdGhpcy5jYWxjdWxhdG9yc1swXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGRlZmF1bHRWYWx1ZSgpOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdENhbGN1bGF0b3IuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGVuZERhdGVDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldCgnZW5kRGF0ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgc3RhcnREYXRlQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3N0YXJ0RGF0ZScpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdmFsdWUoKTogU2t5RGF0ZVJhbmdlQ2FsY3VsYXRpb24ge1xuICAgIGlmICh0aGlzLl92YWx1ZSAmJiB0aGlzLl92YWx1ZS5jYWxjdWxhdG9ySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuICBwcml2YXRlIHByZWZlcnJlZFNob3J0RGF0ZUZvcm1hdDogc3RyaW5nO1xuICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgX2NhbGN1bGF0b3JJZHM6IFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZFtdO1xuICBwcml2YXRlIF9kYXRlRm9ybWF0OiBzdHJpbmc7XG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZhbHVlOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRhdGVSYW5nZVNlcnZpY2U6IFNreURhdGVSYW5nZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBsb2NhbGVQcm92aWRlcjogU2t5QXBwTG9jYWxlUHJvdmlkZXIsXG4gICAgcHJpdmF0ZSB3aW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZixcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZVxuICApIHtcbiAgICB0aGlzLmxvY2FsZVByb3ZpZGVyXG4gICAgICAuZ2V0TG9jYWxlSW5mbygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGxvY2FsZUluZm8pID0+IHtcbiAgICAgICAgU2t5RGF0ZUZvcm1hdHRlci5zZXRMb2NhbGUobG9jYWxlSW5mby5sb2NhbGUpO1xuICAgICAgICB0aGlzLnByZWZlcnJlZFNob3J0RGF0ZUZvcm1hdCA9XG4gICAgICAgICAgU2t5RGF0ZUZvcm1hdHRlci5nZXRQcmVmZXJyZWRTaG9ydERhdGVGb3JtYXQoKTtcbiAgICAgIH0pO1xuXG4gICAgLy8gVXBkYXRlIGljb25zIHdoZW4gdGhlbWUgY2hhbmdlcy5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHRoZW1lU3ZjPy5zZXR0aW5nc0NoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuXG4gICAgdGhpcy51cGRhdGVDYWxjdWxhdG9ycygpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVycygpO1xuXG4gICAgICB0aGlzLmlzUmVhZHkgPSB0cnVlO1xuXG4gICAgICB0aGlzLnJlc2V0Rm9ybUdyb3VwVmFsdWUoKTtcbiAgICAgIHRoaXMuc2hvd1JlbGV2YW50Rm9ybUZpZWxkcygpO1xuXG4gICAgICAvLyBGaWxsIGluIGFueSB1bnByb3ZpZGVkIHZhbHVlcyBhZnRlciB0aGUgY2FsY3VsYXRvcnMgaGF2ZSBiZWVuIGluaXRpYWxpemVkLlxuICAgICAgLy8gRm9yIGV4YW1wbGUsIGlmIHRoZSBjb250cm9sIGlzIGluaXRpYWxpemVkIHdpdGggb25seSB0aGUgYGNhbGN1bGF0b3JJZGAsXG4gICAgICAvLyBhbGxvdyB0aGUgY2FsY3VsYXRvciB0byBmaWxsIGluIHRoZSBtaXNzaW5nIHN0YXJ0IGFuZCBlbmQgZGF0ZXMuXG4gICAgICBjb25zdCB7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9ID0gdGhpcy52YWx1ZTtcbiAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRDYWxjdWxhdG9yLmdldFZhbHVlKHN0YXJ0RGF0ZSwgZW5kRGF0ZSk7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRWYWx1ZSwgdGhpcy52YWx1ZSk7XG5cbiAgICAgIHRoaXMuc2V0VmFsdWUobmV3VmFsdWUsIGZhbHNlKTtcblxuICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gYWRkcmVzcyBhIGJ1ZyBpbiBBbmd1bGFyIDQuXG4gICAgICAvLyBXaGVuIGEgY29udHJvbCB2YWx1ZSBpcyBzZXQgaW50aWFsbHksIGl0cyB2YWx1ZSBpcyBub3QgcmVwcmVzZW50ZWQgb24gdGhlIHZpZXcuXG4gICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzEzNzkyXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy52YWx1ZSwge1xuICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jYWxjdWxhdG9ySWRzICYmIGNoYW5nZXMuY2FsY3VsYXRvcklkcy5maXJzdENoYW5nZSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMudXBkYXRlQ2FsY3VsYXRvcnMoKS50aGVuKCgpID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmNhbGN1bGF0b3JJZENvbnRyb2wudmFsdWU7XG5cbiAgICAgICAgLy8gTWFpbnRhaW4gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCB2YWx1ZXMgaWYgdGhlIGNhbGN1bGF0b3JzIGNoYW5nZSBhZnRlclxuICAgICAgICAvLyBhIHZhbHVlIGhhcyBiZWVuIGNob3Nlbi5cbiAgICAgICAgY29uc3QgZm91bmQgPSB0aGlzLmNhbGN1bGF0b3JzLmZpbmQoKGNhbGN1bGF0b3IpID0+IHtcbiAgICAgICAgICByZXR1cm4gY2FsY3VsYXRvci5jYWxjdWxhdG9ySWQgPT09IGlkO1xuICAgICAgICB9KTtcblxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmRlZmF1bHRDYWxjdWxhdG9yLmdldFZhbHVlKCk7XG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm1Hcm91cFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICB0aGlzLnNob3dSZWxldmFudEZvcm1GaWVsZHMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25GaWVsZEJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbik6IHZvaWQge1xuICAgIC8vIE9ubHkgdXBkYXRlIHRoZSB1bmRlcmx5aW5nIGNvbnRyb2xzIHdoZW4gdGhlIGNhbGN1bGF0b3JzIGFyZSByZWFkeS5cbiAgICBjb25zdCBub3RpZnlDaGFuZ2UgPSBmYWxzZTtcblxuICAgIC8vIChXZSBzdGlsbCBuZWVkIHRvIHNhdmUgdGhlIGluaXRpYWwgdmFsdWUgc2V0IGJ5IHRoZSBjb25zdW1lcidzIGZvcm0sIGhvd2V2ZXIuKVxuICAgIHRoaXMuc2V0VmFsdWUodmFsdWUsIG5vdGlmeUNoYW5nZSk7XG5cbiAgICBpZiAodGhpcy5pc1JlYWR5KSB7XG4gICAgICAvLyBXaGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgaXMgc2V0IHRvIGBudWxsYCxcbiAgICAgIC8vIHNldCBpdCB0byB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucmVzZXRGb3JtR3JvdXBWYWx1ZSgpO1xuICAgICAgdGhpcy5zaG93UmVsZXZhbnRGb3JtRmllbGRzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc1JlYWR5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgIGNvbnN0IGlkQ29udHJvbCA9IHRoaXMuY2FsY3VsYXRvcklkQ29udHJvbDtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLnNlbGVjdGVkQ2FsY3VsYXRvci52YWxpZGF0ZSh2YWx1ZSk7XG5cbiAgICBsZXQgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzO1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgZXJyb3JzID0ge1xuICAgICAgICBza3lEYXRlUmFuZ2U6IHtcbiAgICAgICAgICBjYWxjdWxhdG9ySWQ6IGlkQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICBlcnJvcnM6IHJlc3VsdCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGVycm9ycyA9IHRoaXMuc3RhcnREYXRlQ29udHJvbC5lcnJvcnMgfHwgdGhpcy5lbmREYXRlQ29udHJvbC5lcnJvcnM7XG4gICAgfVxuXG4gICAgaWYgKCFlcnJvcnMpIHtcbiAgICAgIC8vIENsZWFyIGFueSBlcnJvcnMgb24gdGhlIGNhbGN1bGF0b3Igc2VsZWN0LlxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW51bGwta2V5d29yZFxuICAgICAgaWRDb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZENvbnRyb2wuc2V0RXJyb3JzKGVycm9ycyk7XG4gICAgaWRDb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICBpZENvbnRyb2wubWFya0FzRGlydHkoKTtcblxuICAgIC8vIE5lZWQgdG8gbWFyayB0aGUgY29udHJvbCBhcyB0b3VjaGVkIGZvciB0aGUgZXJyb3IgbWVzc2FnZXMgdG8gYXBwZWFyLlxuICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICAvLyBOb3RpZnkgdGhlIHZpZXcgdG8gZGlzcGxheSBhbnkgZXJyb3JzLlxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoXG4gICAgZm46ICh2YWx1ZTogU2t5RGF0ZVJhbmdlQ2FsY3VsYXRpb24pID0+IFNreURhdGVSYW5nZUNhbGN1bGF0aW9uXG4gICk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gU2t5RGF0ZVJhbmdlQ2FsY3VsYXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VmFsdWUodmFsdWU6IFNreURhdGVSYW5nZUNhbGN1bGF0aW9uLCBub3RpZnlDaGFuZ2UgPSB0cnVlKTogdm9pZCB7XG4gICAgY29uc3QgaXNOZXdWYWx1ZSA9ICF0aGlzLmRhdGVSYW5nZXNFcXVhbCh0aGlzLl92YWx1ZSwgdmFsdWUpO1xuXG4gICAgaWYgKGlzTmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG5cbiAgICAgIGlmIChub3RpZnlDaGFuZ2UpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhdGNoVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy52YWx1ZSwgdmFsdWUpO1xuXG4gICAgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGNhbGN1bGF0b3JJZDogbmV3IEZvcm1Db250cm9sKCksXG4gICAgICBzdGFydERhdGU6IG5ldyBGb3JtQ29udHJvbCgpLFxuICAgICAgZW5kRGF0ZTogbmV3IEZvcm1Db250cm9sKCksXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuZGlzYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvd1JlbGV2YW50Rm9ybUZpZWxkcygpOiB2b2lkIHtcbiAgICBjb25zdCBjYWxjdWxhdG9yID0gdGhpcy5zZWxlY3RlZENhbGN1bGF0b3I7XG5cbiAgICBsZXQgc2hvd0VuZERhdGVQaWNrZXIgPSBmYWxzZTtcbiAgICBsZXQgc2hvd1N0YXJ0RGF0ZVBpY2tlciA9IGZhbHNlO1xuXG4gICAgc3dpdGNoIChjYWxjdWxhdG9yLnR5cGUpIHtcbiAgICAgIGNhc2UgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUuQmVmb3JlOlxuICAgICAgICBzaG93RW5kRGF0ZVBpY2tlciA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlIFNreURhdGVSYW5nZUNhbGN1bGF0b3JUeXBlLkFmdGVyOlxuICAgICAgICBzaG93U3RhcnREYXRlUGlja2VyID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgU2t5RGF0ZVJhbmdlQ2FsY3VsYXRvclR5cGUuUmFuZ2U6XG4gICAgICAgIHNob3dFbmREYXRlUGlja2VyID0gdHJ1ZTtcbiAgICAgICAgc2hvd1N0YXJ0RGF0ZVBpY2tlciA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICB0aGlzLnNob3dFbmREYXRlUGlja2VyID0gc2hvd0VuZERhdGVQaWNrZXI7XG4gICAgdGhpcy5zaG93U3RhcnREYXRlUGlja2VyID0gc2hvd1N0YXJ0RGF0ZVBpY2tlcjtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldEZvcm1Hcm91cFZhbHVlKHZhbHVlPzogU2t5RGF0ZVJhbmdlQ2FsY3VsYXRpb24pOiB2b2lkIHtcbiAgICAvLyBEbyBub3QgZW1pdCBhIHZhbHVlIGNoYW5nZSBldmVudCBvbiB0aGUgdW5kZXJseWluZyBmb3JtIGdyb3VwXG4gICAgLy8gYmVjYXVzZSB3ZSdyZSBhbHJlYWR5IHdhdGNoaW5nIGZvciBjaGFuZ2VzIHRoYXQgYXJlIHRyaWdnZXJlZCBieSB0aGUgZW5kIHVzZXIuXG4gICAgLy8gRm9yIGV4YW1wbGUsIGlmIHdlIGNoYW5nZSB0aGUgdmFsdWUgb2YgdGhlIGZvcm0gZ3JvdXAgaW50ZXJuYWxseSwgd2UgZG9uJ3Qgd2FudCB0aGUgZXZlbnRcbiAgICAvLyBsaXN0ZW5lcnMgdG8gYmUgdHJpZ2dlcmVkLCBhcyB0aG9zZSBhcmUgcmVzZXJ2ZWQgZm9yIHVzZXIgaW50ZXJhY3Rpb25zLlxuICAgIC8vIChTZWUgdGhlIGV2ZW50IGxpc3RlbmVycyBsaXN0ZWQgYmVsb3cuKVxuICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KHZhbHVlIHx8IHRoaXMudmFsdWUsIHtcbiAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIC8vIERldGVjdCBlcnJvcnMgZnJvbSB0aGUgZGF0ZSBwaWNrZXJzXG4gICAgLy8gd2hlbiBjb250cm9sIGlzIGluaXRpYWxpemVkIHdpdGggYSB2YWx1ZS5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RhcnREYXRlQ29udHJvbC5zdGF0dXNDaGFuZ2VzLFxuICAgICAgdGhpcy5lbmREYXRlQ29udHJvbC5zdGF0dXNDaGFuZ2VzLFxuICAgIF0pXG4gICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzLmluZGV4T2YoJ0lOVkFMSUQnKSA+IC0xKSB7XG4gICAgICAgICAgLy8gV2FpdCBmb3IgaW5pdGlhbCB2YWxpZGF0aW9uIHRvIGNvbXBsZXRlLlxuICAgICAgICAgIHRoaXMud2luZG93UmVmLm5hdGl2ZVdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAvLyBXYXRjaCBmb3Igc2VsZWN0ZWQgY2FsY3VsYXRvciBjaGFuZ2UuXG4gICAgdGhpcy5jYWxjdWxhdG9ySWRDb250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBpZCA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgICAgIC8vIGlmIHRoZSBjb21wb25lbnQgaXMgZGlzYWJsZWQgZHVyaW5nIGZvcm0gY3JlYXRpb24sIG51bGwgaXMgcGFzc2VkXG4gICAgICAgIC8vIGFzIHRoZSB2YWx1ZSBvZiB0aGUgY2FsY3VsYXRvciBpZCBjb250cm9sXG4gICAgICAgIC8vIG9ubHkgaGFuZGxlIHRoZSB2YWx1ZSBjaGFuZ2VzIGlmIHRoZSBjYWxjdWxhdG9yIGlkIGlzIGEgbnVtYmVyXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgIGlmICghaXNOYU4oaWQpKSB7XG4gICAgICAgICAgY29uc3QgY2FsY3VsYXRvciA9IHRoaXMuZ2V0Q2FsY3VsYXRvckJ5SWQoaWQpO1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gY2FsY3VsYXRvci5nZXRWYWx1ZSgpO1xuXG4gICAgICAgICAgdGhpcy5zZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5yZXNldEZvcm1Hcm91cFZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICB0aGlzLnNob3dSZWxldmFudEZvcm1GaWVsZHMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAvLyBXYXRjaCBmb3Igc3RhcnQgZGF0ZSB2YWx1ZSBjaGFuZ2VzLlxuICAgIHRoaXMuc3RhcnREYXRlQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoc3RhcnREYXRlKSA9PiB7XG4gICAgICAgIHRoaXMucGF0Y2hWYWx1ZSh7IHN0YXJ0RGF0ZSB9KTtcbiAgICAgIH0pO1xuXG4gICAgLy8gV2F0Y2ggZm9yIGVuZCBkYXRlIHZhbHVlIGNoYW5nZXMuXG4gICAgdGhpcy5lbmREYXRlQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoZW5kRGF0ZSkgPT4ge1xuICAgICAgICB0aGlzLnBhdGNoVmFsdWUoeyBlbmREYXRlIH0pO1xuICAgICAgfSk7XG5cbiAgICAvLyBEZXRlY3QgZXJyb3JzIGZyb20gdGhlIGRhdGUgaW5wdXRzIGFuZCB1cGRhdGUgbmctIGNsYXNzZXMgb24gcGlja2VyLlxuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdGFydERhdGVDb250cm9sLnN0YXR1c0NoYW5nZXMsXG4gICAgICB0aGlzLmVuZERhdGVDb250cm9sLnN0YXR1c0NoYW5nZXMsXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ2FsY3VsYXRvcnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVJhbmdlU2VydmljZVxuICAgICAgLmdldENhbGN1bGF0b3JzKHRoaXMuY2FsY3VsYXRvcklkcylcbiAgICAgIC50aGVuKChjYWxjdWxhdG9ycykgPT4ge1xuICAgICAgICB0aGlzLmNhbGN1bGF0b3JzID0gY2FsY3VsYXRvcnM7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FsY3VsYXRvckJ5SWQoXG4gICAgaWQ6IFNreURhdGVSYW5nZUNhbGN1bGF0b3JJZFxuICApOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdG9yIHtcbiAgICByZXR1cm4gdGhpcy5jYWxjdWxhdG9ycy5maW5kKChjYWxjdWxhdG9yKSA9PiB7XG4gICAgICByZXR1cm4gY2FsY3VsYXRvci5jYWxjdWxhdG9ySWQgPT09IGlkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkYXRlUmFuZ2VzRXF1YWwoXG4gICAgcmFuZ2VBOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbixcbiAgICByYW5nZUI6IFNreURhdGVSYW5nZUNhbGN1bGF0aW9uXG4gICk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyYW5nZUEpID09PSBKU09OLnN0cmluZ2lmeShyYW5nZUIpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHJpdmF0ZSBvbkNoYW5nZSA9IChfOiBTa3lEYXRlUmFuZ2VDYWxjdWxhdGlvbikgPT4ge307XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge307XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHByaXZhdGUgb25WYWxpZGF0b3JDaGFuZ2UgPSAoKSA9PiB7fTtcbn1cbiIsIjxkaXYgKm5nSWY9XCJpc1JlYWR5XCIgY2xhc3M9XCJza3ktZGF0ZS1yYW5nZS1waWNrZXJcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwic2t5LWRhdGUtcmFuZ2UtcGlja2VyLWZvcm0tZ3JvdXBcIj5cbiAgICA8c2t5LWlucHV0LWJveD5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCJcbiAgICAgICAgW2F0dHIuZm9yXT1cImRhdGVSYW5nZVBpY2tlcklkICsgJy1zZWxlY3QtY2FsY3VsYXRvcidcIlxuICAgICAgPlxuICAgICAgICB7eyBsYWJlbCB8fCAnc2t5dXhfZGF0ZV9yYW5nZV9waWNrZXJfZGVmYXVsdF9sYWJlbCcgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8c2VsZWN0XG4gICAgICAgIGNsYXNzPVwic2t5LWZvcm0tY29udHJvbFwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhbGN1bGF0b3JJZFwiXG4gICAgICAgIFthdHRyLmlkXT1cImRhdGVSYW5nZVBpY2tlcklkICsgJy1zZWxlY3QtY2FsY3VsYXRvcidcIlxuICAgICAgICAoYmx1cik9XCJvbkZpZWxkQmx1cigpXCJcbiAgICAgID5cbiAgICAgICAgPG9wdGlvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjYWxjdWxhdG9yIG9mIGNhbGN1bGF0b3JzXCJcbiAgICAgICAgICBbdmFsdWVdPVwiY2FsY3VsYXRvci5jYWxjdWxhdG9ySWRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY2FsY3VsYXRvci5zaG9ydERlc2NyaXB0aW9uIH19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9za3ktaW5wdXQtYm94PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic2t5LWRhdGUtcmFuZ2UtcGlja2VyLWZvcm0tZ3JvdXBcIiBbaGlkZGVuXT1cIiFzaG93U3RhcnREYXRlUGlja2VyXCI+XG4gICAgPHNreS1pbnB1dC1ib3g+XG4gICAgICA8bGFiZWxcbiAgICAgICAgY2xhc3M9XCJza3ktY29udHJvbC1sYWJlbFwiXG4gICAgICAgIFthdHRyLmZvcl09XCJkYXRlUmFuZ2VQaWNrZXJJZCArICctc3RhcnQtZGF0ZSdcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6IHN0YXJ0RGF0ZVJlcXVpcmVkIH1cIlxuICAgICAgPlxuICAgICAgICB7eyBzdGFydERhdGVMYWJlbFJlc291cmNlS2V5IHwgc2t5TGliUmVzb3VyY2VzIH19XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8c2t5LWRhdGVwaWNrZXI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0RGF0ZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzdGFydERhdGVMYWJlbFJlc291cmNlS2V5IHwgc2t5TGliUmVzb3VyY2VzXCJcbiAgICAgICAgICBbYXR0ci5pZF09XCJkYXRlUmFuZ2VQaWNrZXJJZCArICctc3RhcnQtZGF0ZSdcIlxuICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cImRhdGVGb3JtYXRcIlxuICAgICAgICAgIFtyZXF1aXJlZF09XCJzdGFydERhdGVSZXF1aXJlZFwiXG4gICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiXG4gICAgICAgICAgKGJsdXIpPVwib25GaWVsZEJsdXIoKVwiXG4gICAgICAgICAgc2t5RGF0ZXBpY2tlcklucHV0XG4gICAgICAgIC8+XG4gICAgICA8L3NreS1kYXRlcGlja2VyPlxuICAgIDwvc2t5LWlucHV0LWJveD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNreS1kYXRlLXJhbmdlLXBpY2tlci1mb3JtLWdyb3VwXCIgW2hpZGRlbl09XCIhc2hvd0VuZERhdGVQaWNrZXJcIj5cbiAgICA8c2t5LWlucHV0LWJveD5cbiAgICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cInNreS1jb250cm9sLWxhYmVsXCJcbiAgICAgICAgW2F0dHIuZm9yXT1cImRhdGVSYW5nZVBpY2tlcklkICsgJy1lbmQtZGF0ZSdcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCc6IGVuZERhdGVSZXF1aXJlZCB9XCJcbiAgICAgID5cbiAgICAgICAge3sgZW5kRGF0ZUxhYmVsUmVzb3VyY2VLZXkgfCBza3lMaWJSZXNvdXJjZXMgfX1cbiAgICAgIDwvbGFiZWw+XG5cbiAgICAgIDxza3ktZGF0ZXBpY2tlcj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW5kRGF0ZVwiXG4gICAgICAgICAgc2t5RGF0ZXBpY2tlcklucHV0XG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJlbmREYXRlTGFiZWxSZXNvdXJjZUtleSB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgW2F0dHIuaWRdPVwiZGF0ZVJhbmdlUGlja2VySWQgKyAnLWVuZC1kYXRlJ1wiXG4gICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwiZGF0ZUZvcm1hdFwiXG4gICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiXG4gICAgICAgICAgW3JlcXVpcmVkXT1cImVuZERhdGVSZXF1aXJlZFwiXG4gICAgICAgICAgKGJsdXIpPVwib25GaWVsZEJsdXIoKVwiXG4gICAgICAgIC8+XG4gICAgICA8L3NreS1kYXRlcGlja2VyPlxuICAgIDwvc2t5LWlucHV0LWJveD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { SkyInputBoxModule } from '@skyux/forms';
|
|
5
|
-
import { SkyI18nModule } from '@skyux/i18n';
|
|
6
|
-
import { SkyDatepickerModule } from '../datepicker/datepicker.module';
|
|
7
|
-
import { SkyDatetimeResourcesModule } from '../shared/sky-datetime-resources.module';
|
|
8
|
-
import { SkyDateRangePickerComponent } from './date-range-picker.component';
|
|
9
|
-
import { SkyDateRangeService } from './date-range.service';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export class SkyDateRangePickerModule {
|
|
12
|
-
}
|
|
13
|
-
SkyDateRangePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
-
SkyDateRangePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerModule, declarations: [SkyDateRangePickerComponent], imports: [CommonModule,
|
|
15
|
-
FormsModule,
|
|
16
|
-
ReactiveFormsModule,
|
|
17
|
-
SkyI18nModule,
|
|
18
|
-
SkyDatepickerModule,
|
|
19
|
-
SkyDatetimeResourcesModule,
|
|
20
|
-
SkyInputBoxModule], exports: [SkyDateRangePickerComponent] });
|
|
21
|
-
SkyDateRangePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerModule, providers: [SkyDateRangeService], imports: [[
|
|
22
|
-
CommonModule,
|
|
23
|
-
FormsModule,
|
|
24
|
-
ReactiveFormsModule,
|
|
25
|
-
SkyI18nModule,
|
|
26
|
-
SkyDatepickerModule,
|
|
27
|
-
SkyDatetimeResourcesModule,
|
|
28
|
-
SkyInputBoxModule,
|
|
29
|
-
]] });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyDateRangePickerModule, decorators: [{
|
|
31
|
-
type: NgModule,
|
|
32
|
-
args: [{
|
|
33
|
-
declarations: [SkyDateRangePickerComponent],
|
|
34
|
-
imports: [
|
|
35
|
-
CommonModule,
|
|
36
|
-
FormsModule,
|
|
37
|
-
ReactiveFormsModule,
|
|
38
|
-
SkyI18nModule,
|
|
39
|
-
SkyDatepickerModule,
|
|
40
|
-
SkyDatetimeResourcesModule,
|
|
41
|
-
SkyInputBoxModule,
|
|
42
|
-
],
|
|
43
|
-
exports: [SkyDateRangePickerComponent],
|
|
44
|
-
providers: [SkyDateRangeService],
|
|
45
|
-
}]
|
|
46
|
-
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0ZXRpbWUvc3JjL21vZHVsZXMvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVyRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFnQjNELE1BQU0sT0FBTyx3QkFBd0I7O3NIQUF4Qix3QkFBd0I7dUhBQXhCLHdCQUF3QixpQkFicEIsMkJBQTJCLGFBRXhDLFlBQVk7UUFDWixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixtQkFBbUI7UUFDbkIsMEJBQTBCO1FBQzFCLGlCQUFpQixhQUVULDJCQUEyQjt1SEFHMUIsd0JBQXdCLGFBRnhCLENBQUMsbUJBQW1CLENBQUMsWUFWdkI7WUFDUCxZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLDBCQUEwQjtZQUMxQixpQkFBaUI7U0FDbEI7NEZBSVUsd0JBQXdCO2tCQWRwQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO29CQUMzQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLDBCQUEwQjt3QkFDMUIsaUJBQWlCO3FCQUNsQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztvQkFDdEMsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFNreUlucHV0Qm94TW9kdWxlIH0gZnJvbSAnQHNreXV4L2Zvcm1zJztcblxuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJy4uL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci5tb2R1bGUnO1xuXG5pbXBvcnQgeyBTa3lEYXRldGltZVJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktZGF0ZXRpbWUtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreURhdGVSYW5nZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2t5RGF0ZVJhbmdlU2VydmljZSB9IGZyb20gJy4vZGF0ZS1yYW5nZS5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5RGF0ZVJhbmdlUGlja2VyQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUkxOG5Nb2R1bGUsXG4gICAgU2t5RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBTa3lEYXRldGltZVJlc291cmNlc01vZHVsZSxcbiAgICBTa3lJbnB1dEJveE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1NreURhdGVSYW5nZVBpY2tlckNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1NreURhdGVSYW5nZVNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXRlUmFuZ2VQaWNrZXJNb2R1bGUge31cbiJdfQ==
|